@charset "UTF-8";
/* ============================================================
   MOMO IP 리뉴얼 공통 스타일 (header / footer / index / floating)
   - 새 디자인(Bootstrap 5 + Pretendard) 기반
   ============================================================ */

:root {
    --primary: #0BA65D;
    --primary-dark: #088c4e;
    --primary-light: #2ECC71;
    --dark: #111111;
    --gray-100: #f8f9fa;
    --gray-200: #e9ecef;
    --text-main: #222222;
    --text-muted: #666666;
    --radius-md: 12px;
    --radius-lg: 20px;
}

ㅠ

/* 리뉴얼 페이지(body.renew-body)에서만 적용 — 레거시 페이지 레이아웃 보호 */
body.renew-body,
body.renew-body .renew-wrap,
body.renew-body .top-bar,
body.renew-body .header-wrapper,
body.renew-body .header-main,
body.renew-body .main-nav,
body.renew-body .nav-item,
body.renew-body .mega-menu,
body.renew-body .logo-text,
body.renew-body .logo-sub,
body.renew-body .mega-mobile-auth,
body.renew-body .floating-bar,
body.renew-body .f-btn,
body.renew-body .bottom-banners,
body.renew-body .renew-footer {
    font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif !important;
}

/* 공용 헤더/푸터 + 게시판: 레거시(renew-body 미적용) 페이지에서도 Pretendard 적용 */
.top-bar,
.top-bar a,
.header-wrapper,
.header-main,
.main-nav,
.nav-item,
.mega-menu,
.logo-text,
.logo-sub,
.mega-mobile-auth,
.floating-bar,
.f-btn,
.bottom-banners,
.renew-footer,
.renew-footer *,
.board-renew-wrap,
.board-renew-wrap * {
    font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif !important;
}

body.renew-body {
    color: var(--text-main);
    overflow-x: hidden;
    letter-spacing: -0.02em;
    /* 단색 배경 — 흰색에 가까운 아주 연한 회색 (흰 카드가 떠 보이도록) */
    background: #f5f6f8;
}

/* 기존 CSS 미로드 시 SEO용 숨김 요소 처리 */
.renew-body .hide {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

/* 전역 리셋: 기존 default.css가 제공하던 a/ul 리셋을 리뉴얼 페이지 전체(헤더·푸터·본문)에 복원 */
/* .renew-wrap 도 포함 → 레거시(미리뉴얼) 페이지의 공용 하단배너 링크도 밑줄 제거 */
.renew-body a,
.renew-wrap a {
    text-decoration: none;
}

.renew-body a:hover,
.renew-wrap a:hover {
    text-decoration: none;
}

.renew-body ul,
.renew-wrap ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* ===== 기존 그누보드 팝업레이어(#hd_pop / newwin.inc.php) 복원 ===== */
/* 숨김 요소 (default.css 대체) */
.renew-body .sound_only,
.renew-body .msg_sound_only,
.renew-body #hd_pop h2 {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    font-size: 0;
    line-height: 0;
}

.renew-body #hd_pop {
    position: relative;
    z-index: 1000;
}

.renew-body .hd_pops {
    position: absolute;
    z-index: 1000;
}

.renew-body .hd_pops_con {
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    border-radius: 8px;
    background: #fff;
}

.renew-body .hd_pops_con img {
    max-width: 100%;
    display: block;
}

.renew-body .hd_pops_footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #222;
    color: #fff;
    padding: 8px 12px;
    border-radius: 0 0 8px 8px;
}

.renew-body .hd_pops_footer button {
    background: transparent;
    border: 0;
    color: #fff;
    font-size: 12px;
    cursor: pointer;
    padding: 4px 6px;
}

.renew-body .hd_pops_footer button:hover {
    color: var(--primary-light);
}

/* 1400px 컨테이너 고정 */
@media (min-width: 1400px) {

    .container,
    .container-lg,
    .container-md,
    .container-sm,
    .container-xl,
    .container-xxl {
        max-width: 1400px !important;
    }
}

/* 게시판: 레거시 #contents(979px 고정) 폭 제약 해제 → 공용 컨테이너(1400) 정렬 */
#contents:has(.board-renew-wrap) {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

/* Top Bar */
.top-bar {
    background-color: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    font-size: 13px;
    color: var(--text-muted);
    padding: 10px 0;
    font-weight: 500;
}

.top-bar a {
    margin-left: 20px;
    transition: color 0.2s ease;
}

.top-bar a:hover {
    color: var(--primary);
    font-weight: 600;
}

/* Header */
.header-wrapper {
    position: sticky;
    top: 0;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(15px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.03);
    transition: all 0.3s ease;
}

.header-main {
    padding: 18px 0;
}

.logo-text {
    font-size: 32px;
    font-weight: 900;
    letter-spacing: -1px;
    line-height: 1;
    color: var(--dark);
    background: linear-gradient(90deg, #111, #444);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.logo-sub {
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 600;
    margin-top: 4px;
    letter-spacing: 0;
}

.main-nav {
    display: flex;
    gap: 50px;
    font-weight: 700;
    font-size: 16px;
}

.main-nav .nav-item {
    cursor: pointer;
    padding: 25px 0;
    position: relative;
    color: var(--text-main);
    transition: color 0.2s;
}

.main-nav .nav-item:hover {
    color: var(--primary);
}

.main-nav .nav-item::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--primary), var(--primary-light));
    transition: width 0.3s ease;
    border-radius: 3px 3px 0 0;
}

.main-nav .nav-item:hover::after {
    width: 100%;
}

.hamburger-btn {
    background: #fff;
    color: var(--dark);
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    border-radius: 12px;
    cursor: pointer;
    border: 1px solid rgba(0, 0, 0, 0.1);
    transition: 0.3s;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.hamburger-btn:hover {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
    transform: translateY(-2px);
}

/* Mega Menu */
.mega-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(20px);
    color: var(--dark);
    padding: 40px 0;
    display: none;
    z-index: 1040;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.header-wrapper:hover .mega-menu {
    display: block;
    animation: slideDown 0.3s ease forwards;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.mega-menu h6 {
    font-weight: 800;
    margin-bottom: 20px;
    font-size: 16px;
    color: var(--dark);
    border-bottom: 2px solid var(--primary);
    padding-bottom: 10px;
    display: inline-block;
}

.mega-menu ul li {
    margin-bottom: 12px;
}

.mega-menu ul li a {
    font-size: 14px;
    color: var(--text-muted);
    font-weight: 500;
    transition: color 0.2s;
    display: flex;
    align-items: center;
    gap: 8px;
}

.mega-menu ul li a::before {
    width: 4px;
    height: 4px;
    background: #ccc;
    border-radius: 50%;
    transition: 0.2s;
}

.mega-menu ul li a:hover {
    color: var(--primary);
    font-weight: 700;
}

.mega-menu ul li a:hover::before {
    background: var(--primary);
    transform: scale(1.5);
}

.mega-col {
    padding: 0 30px;
    border-right: 1px solid rgba(0, 0, 0, 0.05);
}

.mega-col:last-child {
    border-right: none;
}

/* ====== Pricing Section (Perfect Height & Synchronized Hover) ====== */
.pricing-section {
    margin-top: 40px;
    padding-bottom: 8px;
    perspective: 1000px;
}

/* Ensures columns stretch vertically matching tallest */
.pricing-row {
    display: flex;
    align-items: stretch;
}

/* 모든 컬럼이 Flex 컨테이너가 되어 내부 요소를 꽉 채우도록 설정 */
.pricing-row>.col {
    display: flex;
    flex-direction: column;
}

/* The wrapper controls the hover transform for both card & badge */
.card-wrapper {
    position: relative;
    flex-grow: 1;
    width: 100%;
    padding-top: 18px;
    /* Safe space for the absolute badge */
    display: flex;
    flex-direction: column;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 1;
}

/* Hover Animation: Glow & Lift on the entire wrapper */
.card-wrapper:hover {
    transform: translateY(-15px);
    z-index: 10;
}

.pricing-card {
    background: #fff;
    border-radius: var(--radius-lg);
    padding: 28px 18px 24px;
    display: flex;
    flex-direction: column;
    position: relative;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.8);
    flex-grow: 1;
    width: 100%;
    overflow: hidden;
    /* For the shine effect */
    transition: box-shadow 0.4s, border-color 0.4s;
}

.card-wrapper:hover .pricing-card {
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
}

/* Shine Effect on Hover */
.pricing-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0) 100%);
    transform: skewX(-25deg);
    transition: 0.7s;
    z-index: 0;
    pointer-events: none;
}

.card-wrapper:hover .pricing-card::after {
    left: 200%;
}

/* 무지개 상단바 제거 → 깔끔한 카드 */
.pricing-card::before {
    display: none;
}

.pricing-card {
    border-color: #edf0f3;
}

/* 카드 그룹별 포인트 컬러: KT(파랑) / 기간사(초록) / 프록시(보라) */
.card-1 {
    --acc: #1e56c8;
    --acc2: #3b82f6;
    --acc-bg: #eff6ff;
    background: linear-gradient(180deg, #eff6ff, #ffffff 55%);
    border: 1.5px solid rgba(30, 86, 200, 0.25);
    box-shadow: 0 8px 28px rgba(30, 86, 200, 0.09);
}

.card-2 {
    --acc: #1e56c8;
    --acc2: #3b82f6;
    --acc-bg: #eff6ff;
    background: linear-gradient(180deg, #eff6ff, #ffffff 55%);
    border: 1.5px solid rgba(30, 86, 200, 0.18);
    box-shadow: 0 6px 20px rgba(30, 86, 200, 0.07);
}

.card-3 {
    --acc: #0BA65D;
    --acc2: #2ECC71;
    --acc-bg: #e9f8f0;
    background: linear-gradient(180deg, #f2fcf7, #ffffff 55%);
    border: 1.5px solid rgba(11, 166, 93, 0.32);
    box-shadow: 0 16px 40px rgba(11, 166, 93, 0.14);
}

.card-4 {
    --acc: #0BA65D;
    --acc2: #2ECC71;
    --acc-bg: #e9f8f0;
    background: linear-gradient(180deg, #f2fcf7, #ffffff 55%);
    border: 1.5px solid rgba(11, 166, 93, 0.22);
    box-shadow: 0 8px 24px rgba(11, 166, 93, 0.08);
}

.card-5 {
    --acc: #7c3aed;
    --acc2: #a78bfa;
    --acc-bg: #f5f3ff;
    background: linear-gradient(180deg, #f5f3ff, #ffffff 55%);
    border: 1.5px solid rgba(124, 58, 237, 0.22);
    box-shadow: 0 8px 24px rgba(124, 58, 237, 0.09);
}

/* BEST 카드 z-index */
.card-3-wrapper {
    z-index: 5;
}

/* 호버: 그룹 컬러로 강조 */
.card-wrapper:hover .card-1 {
    border-color: rgba(30, 86, 200, 0.42);
    box-shadow: 0 20px 44px rgba(30, 86, 200, 0.14);
}

.card-wrapper:hover .card-2 {
    border-color: rgba(30, 86, 200, 0.35);
    box-shadow: 0 20px 40px rgba(30, 86, 200, 0.12);
}

.card-3-wrapper:hover .card-3 {
    border-color: rgba(11, 166, 93, 0.5);
    box-shadow: 0 24px 50px rgba(11, 166, 93, 0.2);
}

.card-wrapper:hover .card-4 {
    border-color: rgba(11, 166, 93, 0.4);
    box-shadow: 0 20px 40px rgba(11, 166, 93, 0.14);
}

.card-wrapper:hover .card-5 {
    border-color: rgba(124, 58, 237, 0.4);
    box-shadow: 0 20px 44px rgba(124, 58, 237, 0.14);
}

/* 키워드 포인트 컬러 */
.pt-kt {
    color: #1e56c8;
}

.pt-isp {
    color: #0BA65D;
}

.pt-prx {
    color: #7c3aed;
}

/* 배지 — 세련된 정적 pill */
.badge-top {
    position: absolute;
    top: 2px;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    z-index: 20;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.14);
    letter-spacing: 0.5px;
}

.card-2-wrapper .badge-top {
    background: #111827;
    color: #fff;
}

.card-3-wrapper .badge-top {
    background: linear-gradient(135deg, #0BA65D, #2ECC71);
    color: #fff;
}

/* Card Content Inner Structuring */
.card-content-top {
    z-index: 2;
    position: relative;
}

.p-title {
    font-size: 25px;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 8px;
    white-space: nowrap;
    letter-spacing: -1px;
}

.p-sub {
    font-size: 13.5px;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 18px;
}

/* 가격 박스 — 카드 포인트 컬러로 은은하게 틴트 */
.p-price-box {
    background: var(--acc-bg);
    border-radius: 14px;
    padding: 18px 10px;
    margin-bottom: 20px;
    text-align: center;
    border: 0;
    transition: all 0.3s;
}

.p-price {
    font-size: 31px;
    font-weight: 900;
    margin-bottom: 8px;
    white-space: nowrap;
    letter-spacing: -1px;
    color: var(--dark);
}

.p-price span {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-muted);
}

.p-discount {
    display: inline-block;
    font-size: 12.5px;
    font-weight: 800;
    color: var(--acc);
    background: rgba(255, 255, 255, 0.75);
    padding: 4px 13px;
    border-radius: 999px;
}

/* Flex growth to ensure buttons are strictly aligned bottom */
.card-content-middle {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    z-index: 2;
    position: relative;
}

.p-info {
    margin-top: auto;
    margin-bottom: 22px;
    text-align: center;
    word-break: keep-all;
}

/* 타겟: 차분한 슬레이트 + 1줄(nowrap). 체크 아이콘은 카드 포인트색 */
.p-info-target {
    color: #64748B;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: -0.4px;
    margin: 0 0 10px;
    white-space: nowrap;
}

.p-info-target i {
    color: var(--acc);
    font-size: 15px;
    margin-right: 7px;
    vertical-align: -2px;
}

.p-info-desc {
    color: var(--dark);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: -0.4px;
    margin: 0;
}

/* 버튼 — 기본 라인, 호버 시 카드 포인트색으로 채움 */
.btn-action {
    width: 100%;
    padding: 14px 0;
    border-radius: 12px;
    font-size: 15.5px;
    font-weight: 800;
    text-align: center;
    cursor: pointer;
    transition: all 0.35s ease;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 9px;
    position: relative;
    z-index: 2;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--gray-200);
    color: var(--dark);
}

.btn-action i {
    transition: transform 0.3s;
}

.btn-action::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--acc), var(--acc2));
    z-index: -1;
    transition: opacity 0.35s;
    opacity: 0;
}

.card-wrapper:hover .btn-action {
    border-color: transparent;
    color: #fff;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--acc) 35%, transparent);
    transform: translateY(-2px);
}

.card-wrapper:hover .btn-action::before {
    opacity: 1;
}

.card-wrapper:hover .btn-action i {
    transform: translateX(5px);
}

/* BEST 카드 버튼도 다른 카드와 동일: 흰색 기본 → 호버 시 그린 채움 */

/* Notice & Login Section */
.middle-section {
    margin-top: 16px;
    align-items: stretch;
}

/* 3박스(공지/배너+로그인) 높이 강제 균등화: 칼럼을 flex로 만들어 자식이 칼럼 높이를 꽉 채움 */
.middle-section>[class*="col-"] {
    display: flex;
    flex-direction: column;
}

.middle-section>[class*="col-"]>.notice-panel,
.middle-section>[class*="col-"]>.row {
    flex: 1 1 auto;
}

.notice-panel {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(10px);
    border-radius: var(--radius-lg);
    padding: 40px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    height: 100%;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.notice-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
}

.notice-header h3 {
    font-size: 22px;
    font-weight: 800;
    margin: 0;
    color: var(--dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.notice-header h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 22px;
    background: var(--primary);
    border-radius: 3px;
}

.notice-header .more-btn {
    width: 36px;
    height: 36px;
    background: var(--gray-100);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--dark);
    font-size: 18px;
    transition: 0.3s;
}

.notice-header .more-btn:hover {
    background: var(--primary);
    color: #fff;
    transform: rotate(90deg);
}

.notice-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 15px;
    border-bottom: 1px dashed rgba(0, 0, 0, 0.08);
    font-size: 15px;
    transition: all 0.3s;
    border-radius: 8px;
}

.notice-list li:hover {
    background: #fff;
    transform: translateX(5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.03);
}

.notice-list li:last-child {
    border-bottom: none;
}

.notice-list li a {
    color: var(--text-main);
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    max-width: 75%;
}

.notice-status {
    color: var(--primary);
    font-weight: 800;
    margin-right: 10px;
}

.notice-date {
    color: var(--text-muted);
    font-size: 14px;
    font-weight: 500;
}

/* Animated Ad Banner */
.banner-ad {
    background: linear-gradient(45deg, #0f172a, #1e293b, #334155, #0f172a);
    background-size: 300% 300%;
    animation: gradientBG 10s ease infinite;
    color: #fff;
    border-radius: var(--radius-lg);
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 30px;
    position: relative;
    overflow: hidden;
    transition: transform 0.4s;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

.banner-ad::after {
    content: '';
    position: absolute;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    border-radius: 50%;
    top: -50px;
    left: -50px;
    animation: pulseBadge 4s infinite alternate;
}

.banner-ad:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

/* 기존 사이트 CSS(#contents h4 등)가 상속 흰색을 덮는 문제 방지 */
.banner-ad,
.banner-ad h4,
.banner-ad p,
.banner-ad span {
    color: #fff !important;
}

.banner-ad p[style*="ff4d4d"] {
    color: #ff4d4d !important;
}

/* ===== 광고 배너 롤링(Bootstrap Carousel) — Premium ===== */
/* col을 flex로 만들어 캐러셀에 확정 높이를 부여 → 두 슬라이드 높이 항상 동일 */
.renew-ad-col {
    display: flex;
    flex-direction: column;
}

.banner-carousel {
    flex: 1 1 auto;
    min-height: 280px;
}

.banner-carousel,
.banner-carousel .carousel-inner,
.banner-carousel .carousel-item {
    height: 100%;
}

.banner-carousel .carousel-inner {
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.banner-carousel .carousel-item .banner-ad {
    height: 100%;
    margin: 0;
}

/* 부드러운 가로 슬라이드 (기본보다 느리고 매끄럽게) */
.banner-carousel .carousel-item {
    transition: transform 0.85s cubic-bezier(0.45, 0.05, 0.15, 1);
}

/* 캐러셀 안에서는 카드 떠오름(translate) 비활성 — overflow로 잘리는 것 방지 */
.banner-carousel .banner-ad:hover {
    transform: none;
    box-shadow: none;
}

/* 공통 골격 — 고급 다크 테마 */
.banner-server,
.banner-traffic {
    position: relative;
    overflow: hidden;
    padding: 40px 30px !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    border-radius: var(--radius-lg);
    animation: none !important;
}

.banner-server {
    background: linear-gradient(160deg, #0c1526 0%, #18253f 55%, #0b1322 100%) !important;
}

.banner-traffic {
    background: linear-gradient(160deg, #06182e 0%, #0c2c50 55%, #051427 100%) !important;
}

/* 은은한 코너 글로우 */
.banner-server::before,
.banner-traffic::before {
    content: '';
    position: absolute;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    top: -130px;
    right: -120px;
    pointer-events: none;
    z-index: 0;
    animation: none;
}

.banner-server::before {
    background: radial-gradient(circle, rgba(16, 185, 129, 0.22) 0%, transparent 70%);
}

.banner-traffic::before {
    background: radial-gradient(circle, rgba(56, 189, 248, 0.22) 0%, transparent 70%);
}

/* 상단 미세 광택 라인 (base .banner-ad::after 의 blob을 덮어씀) */
.banner-server::after,
.banner-traffic::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    border-radius: 0;
    animation: none;
    z-index: 1;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
}

/* eyebrow (pill) */
.banner-ad .banner-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    z-index: 2;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.2px;
    padding: 6px 14px;
    border-radius: 30px;
    margin-bottom: 16px;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

.banner-server .banner-eyebrow {
    color: #5eead4 !important;
    background: rgba(16, 185, 129, 0.12);
}

.banner-traffic .banner-eyebrow {
    color: #7dd3fc !important;
    background: rgba(56, 189, 248, 0.12);
}

.banner-ad .banner-eyebrow i {
    font-size: 14px;
}

/* title */
.banner-ad .banner-title {
    font-size: 32px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.5px;
    margin: 0 0 18px;
    z-index: 2;
    word-break: keep-all;
    color: #fff !important;
}

.banner-server .banner-title .plus {
    margin: 0 7px;
    font-weight: 300;
    opacity: 0.55;
    font-size: 1em;
}

.banner-traffic .banner-title .hl {
    color: #38bdf8 !important;
    white-space: nowrap;
    font-size: 1em;
}

/* 두 슬라이드 제목 폰트 크기 동일 고정 */
.banner-server .banner-title,
.banner-traffic .banner-title {
    font-size: 32px;
}

/* price (slide1) */
.banner-ad .banner-price {
    display: flex;
    align-items: baseline;
    gap: 5px;
    z-index: 2;
    margin: 0 0 24px;
}

.banner-ad .banner-price .unit {
    font-size: 16px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.6) !important;
}

.banner-ad .banner-price strong {
    font-size: 42px;
    font-weight: 900;
    letter-spacing: -1.5px;
    color: #ffd27d !important;
    text-shadow: 0 2px 16px rgba(255, 193, 90, 0.35);
}

/* tel (slide2) */
.banner-ad .banner-tel {
    display: flex;
    align-items: center;
    gap: 9px;
    z-index: 2;
    margin: 0 0 24px;
    font-size: 26px;
    font-weight: 900;
    letter-spacing: -0.5px;
    color: #fff !important;
}

.banner-ad .banner-tel i {
    font-size: 21px;
    color: #7dd3fc !important;
}

/* CTA */
.banner-ad .banner-btn {
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 800;
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #fff !important;
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(4px);
    transition: all 0.35s ease;
}

.banner-ad .banner-btn i {
    transition: transform 0.3s;
}

.banner-server:hover .banner-btn {
    background: linear-gradient(135deg, #10b981, #0BA65D);
    border-color: transparent;
    box-shadow: 0 10px 24px rgba(16, 185, 129, 0.4);
}

.banner-traffic:hover .banner-btn {
    background: linear-gradient(135deg, #38bdf8, #0ea5e9);
    border-color: transparent;
    box-shadow: 0 10px 24px rgba(56, 189, 248, 0.4);
}

.banner-ad:hover .banner-btn i {
    transform: translateX(4px);
}

/* 인디케이터(점) */
.banner-indicators {
    margin-bottom: 14px;
    z-index: 3;
}

.banner-indicators [data-bs-target] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 0;
    margin: 0 4px;
    background: rgba(255, 255, 255, 0.4);
    opacity: 1;
    transition: all 0.3s;
}

.banner-indicators .active {
    width: 22px;
    border-radius: 4px;
    background: #fff;
}

/* Modern Login Box */
.login-box-wrapper {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(255, 255, 255, 0.5);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

.login-box {
    padding: 40px 35px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.login-input {
    margin-bottom: 12px;
    border-radius: 12px;
    border: 1px solid var(--gray-200);
    font-size: 14px;
    padding: 16px 20px;
    background-color: #f8fafc;
    transition: all 0.3s;
}

.login-input:focus {
    background-color: #fff;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(11, 166, 93, 0.1);
    outline: none;
}

.login-btn {
    background: linear-gradient(135deg, var(--dark), #333);
    color: #fff !important;
    width: 100%;
    border: none;
    padding: 18px;
    font-weight: 800;
    border-radius: 12px;
    margin-bottom: 15px;
    transition: all 0.3s;
    font-size: 16px;
}

.login-btn:hover {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(11, 166, 93, 0.3);
}

.login-links {
    font-size: 14px;
    color: var(--text-muted);
    text-align: center;
    font-weight: 600;
}

.login-links a:hover {
    color: var(--primary);
    text-decoration: underline;
}

.login-welcome {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    padding: 40px 35px;
}

.login-welcome .name {
    font-size: 22px;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 8px;
}

.login-welcome .name strong {
    color: var(--primary);
}

.login-welcome .desc {
    font-size: 14px;
    color: var(--text-muted);
    margin-bottom: 25px;
    font-weight: 600;
}

.ip-check {
    background: linear-gradient(to right, #f8fafc, #ffffff);
    padding: 20px 30px;
    font-size: 15px;
    color: var(--text-main);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    font-weight: 600;
}

.ip-check strong {
    color: var(--primary);
    font-size: 18px;
    font-weight: 900;
}

/* Floating Animated Icon Menu */
.icon-menu-section {
    margin-top: 80px;
    padding: 50px 0;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(15px);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(255, 255, 255, 0.8);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.03);
}

.icon-box {
    text-align: center;
    transition: 0.3s;
    cursor: pointer;
    padding: 20px 10px;
}

@keyframes floatUpDown {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

.icon-circle {
    width: 85px;
    height: 85px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    margin: 0 auto 20px;
    transition: all 0.4s;
    color: var(--dark);
    border-radius: 50%;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.02);
    animation: floatUpDown 4s ease-in-out infinite;
}

.icon-box:nth-child(1) .icon-circle {
    animation-delay: 0s;
}

.icon-box:nth-child(2) .icon-circle {
    animation-delay: 0.2s;
}

.icon-box:nth-child(3) .icon-circle {
    animation-delay: 0.4s;
}

.icon-box:nth-child(4) .icon-circle {
    animation-delay: 0.6s;
}

.icon-box:nth-child(5) .icon-circle {
    animation-delay: 0.8s;
}

.icon-box:hover .icon-circle {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    transform: scale(1.15);
    box-shadow: 0 15px 35px rgba(11, 166, 93, 0.4);
    animation-play-state: paused;
}

.icon-circle i {
    font-size: 36px;
}

.icon-box .title {
    font-size: 17px;
    font-weight: 800;
    color: var(--text-main);
    transition: 0.3s;
}

.icon-box:hover .title {
    color: var(--primary);
}

/* Bottom Banners */
.bottom-banners {
    margin-top: 80px;
    margin-bottom: 80px;
}

/* Gradient Chat Banner */
.banner-chat {
    background: linear-gradient(135deg, var(--primary) 0%, #058245 100%);
    color: white;
    border-radius: 100px;
    padding: 30px 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    cursor: pointer;
    margin-bottom: 40px;
    box-shadow: 0 20px 40px rgba(11, 166, 93, 0.25);
}

.banner-chat::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0));
    transform: skewX(-25deg);
    transition: 0.7s;
}

.banner-chat:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 25px 50px rgba(11, 166, 93, 0.35);
}

.banner-chat:hover::after {
    left: 200%;
}

.banner-chat .click-text {
    font-size: 26px;
    font-weight: 900;
    font-style: italic;
    opacity: 0.9;
}

.banner-chat .main-text {
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -1px;
}

.chat-icon-circle {
    background: #fff;
    border-radius: 50%;
    width: 75px;
    height: 75px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
    animation: pulseBadge 2s infinite alternate;
}

/* Remote Banner */
.banner-remote {
    background: rgba(255, 255, 255, 0.9);
    border: 2px solid #ff7a00;
    border-radius: var(--radius-lg);
    padding: 50px;
    display: flex;
    align-items: center;
    transition: all 0.4s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.banner-remote::before {
    content: '';
    position: absolute;
    right: -50px;
    bottom: -50px;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(255, 122, 0, 0.08) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.banner-remote:hover {
    box-shadow: 0 20px 50px rgba(255, 122, 0, 0.15);
    transform: translateY(-5px);
    border-color: #ff9500;
}

.remote-logo {
    font-size: 36px;
    color: #ff7a00;
    font-weight: 900;
    text-align: center;
    margin-right: 60px;
    position: relative;
    z-index: 2;
}

.remote-logo i {
    display: block;
    font-size: 64px;
    margin-bottom: 15px;
    background: -webkit-linear-gradient(45deg, #ff7a00, #ffb703);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.remote-content h3 {
    font-size: 28px;
    font-weight: 800;
    color: #ff7a00;
    margin-bottom: 25px;
    position: relative;
    z-index: 2;
}

.remote-content ul {
    font-size: 17px;
    font-weight: 600;
    color: var(--text-main);
    position: relative;
    z-index: 2;
}

.remote-content ul li {
    margin-bottom: 12px;
    display: flex;
    align-items: center;
}

.remote-content ul li i {
    color: #ff7a00;
    font-size: 22px;
    margin-right: 12px;
}

.remote-content strong {
    color: #ff7a00;
    font-weight: 800;
}

.btn-remote {
    background: linear-gradient(135deg, #ff7a00, #ff9500);
    color: #fff !important;
    border: none;
    padding: 18px 40px;
    font-weight: 800;
    border-radius: 50px;
    transition: all 0.3s;
    font-size: 17px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    position: relative;
    z-index: 2;
    box-shadow: 0 8px 20px rgba(255, 122, 0, 0.3);
}

.btn-remote:hover {
    transform: scale(1.05);
    box-shadow: 0 12px 30px rgba(255, 122, 0, 0.4);
    color: #fff !important;
}

/* Corporate Footer */
.renew-footer {
    background: #0a0a0a;
    color: #fff;
    padding: 80px 0;
    font-size: 15px;
}

.renew-footer .footer-logo {
    font-size: 30px;
    font-weight: 900;
    margin-bottom: 5px;
    color: #fff;
    letter-spacing: -1px;
}

.renew-footer .footer-links {
    margin-bottom: 30px;
    display: flex;
    gap: 25px;
    flex-wrap: wrap;
}

.renew-footer .footer-links a {
    color: #888;
    font-weight: 600;
    transition: 0.3s;
}

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

.renew-footer .footer-links a.highlight {
    color: var(--primary);
    font-weight: 800;
}

.renew-footer .footer-info {
    color: #666;
    line-height: 1.8;
    font-weight: 400;
}

.renew-footer .family-site {
    background: #1a1a1a;
    border: 1px solid #333;
    color: #ccc;
    padding: 15px 20px;
    border-radius: 8px;
    width: 200px;
    font-size: 14px;
    outline: none;
    cursor: pointer;
    transition: 0.3s;
}

.renew-footer .family-site:hover {
    border-color: #555;
    background: #222;
}

/* Animated Floating Bar */
.floating-bar {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9999;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-right: none;
    border-radius: 16px 0 0 16px;
    box-shadow: -10px 0 30px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.f-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 85px;
    padding: 18px 0;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 800;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    background: transparent;
    cursor: pointer;
}

.f-btn:last-child {
    border-bottom: none;
}

.f-btn i {
    font-size: 26px;
    margin-bottom: 8px;
    color: var(--dark);
    transition: all 0.3s ease;
}

.f-btn:hover {
    background: #fff;
    color: var(--primary);
    width: 95px;
}

.f-btn:hover i {
    color: var(--primary);
    transform: translateY(-3px) scale(1.1);
}

/* Chat button exception with Gradient */
.f-btn.f-chat {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
}

.f-btn.f-chat i {
    color: #fff;
}

.f-btn.f-chat:hover {
    width: 100px;
    padding-left: 10px;
}

/* ============================================================
   서브페이지 공통 (VPN / PROXY / 가상서버 / 사용방법 / 결제)
   - 메인과 동일 폭(.container), 동일 컨셉
   ============================================================ */
.sub-page {
    padding-top: 40px;
    padding-bottom: 80px;
}

.sub-hero {
    border-radius: var(--radius-lg);
    padding: 60px 50px;
    margin-bottom: 25px;
    background: linear-gradient(120deg, #0f172a, #1e293b, #0BA65D);
    background-size: 200% 200%;
    animation: gradientBG 12s ease infinite;
    color: #fff;
    position: relative;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}

.sub-hero::after {
    content: '';
    position: absolute;
    right: -60px;
    top: -60px;
    width: 260px;
    height: 260px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, transparent 70%);
    border-radius: 50%;
}

.sub-hero h2 {
    font-size: 38px;
    font-weight: 900;
    margin: 0;
    letter-spacing: -1px;
    position: relative;
    z-index: 2;
}

.sub-hero p {
    margin: 12px 0 0;
    color: rgba(255, 255, 255, 0.75);
    font-weight: 500;
    font-size: 16px;
    position: relative;
    z-index: 2;
}

.sub-breadcrumb {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 14px;
    color: var(--text-muted);
    margin-bottom: 45px;
    font-weight: 600;
    flex-wrap: wrap;
}

.sub-breadcrumb a {
    color: var(--text-muted);
}

.sub-breadcrumb a:hover {
    color: var(--primary);
}

.sub-breadcrumb .sep {
    color: #ccc;
}

.sub-breadcrumb .cur {
    color: var(--primary);
    font-weight: 800;
}

/* 사용방법 하위 페이지: 고정/유동/프록시 퀵 탭 */
.quick-tabs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 40px;
}

.quick-tabs .qt-btn {
    flex: 1;
    min-width: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    font-weight: 800;
    font-size: 14px;
    color: var(--text-muted);
    text-decoration: none;
    transition: all 0.2s;
}

.quick-tabs .qt-btn:hover {
    border-color: var(--primary);
    color: var(--primary);
    text-decoration: none;
}

.quick-tabs .qt-btn.active {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
    box-shadow: 0 10px 24px rgba(11, 166, 93, 0.25);
}

@media (max-width: 575.98px) {
    .quick-tabs {
        flex-direction: column;
    }
}

.sub-section-title {
    font-size: 30px;
    font-weight: 800;
    text-align: center;
    margin: 60px 0 8px;
    letter-spacing: -1px;
}

.sub-section-title:first-child {
    margin-top: 0;
}

.sub-section-desc {
    text-align: center;
    color: var(--text-muted);
    margin-bottom: 45px;
    font-weight: 600;
}

.sub-group-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 22px;
    font-weight: 800;
    margin: 50px 0 20px;
}

.sub-group-label::before {
    content: '';
    width: 6px;
    height: 22px;
    background: var(--primary);
    border-radius: 3px;
}

/* 서브페이지 제품 카드 (메인 카드 컨셉 축약형) */
.prod-card {
    background: #fff;
    border-radius: var(--radius-lg);
    padding: 32px 26px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.04);
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s, border-color 0.4s;
    position: relative;
    overflow: hidden;
}

.prod-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: linear-gradient(90deg, var(--primary), var(--primary-light));
}

.prod-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
    border-color: rgba(11, 166, 93, 0.25);
}

.prod-card .pc-tag {
    font-size: 13px;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 6px;
}

.prod-card .pc-title {
    font-size: 24px;
    font-weight: 800;
    margin-bottom: 12px;
    letter-spacing: -1px;
}

.prod-card .pc-desc {
    font-size: 15px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.6;
    flex-grow: 1;
    margin-bottom: 18px;
}

.prod-card .pc-price {
    font-size: 26px;
    font-weight: 900;
    margin-bottom: 18px;
    letter-spacing: -1px;
}

.prod-card .pc-price small {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-muted);
}

.prod-card .pc-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 14px 0;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    background: var(--gray-100);
    color: var(--dark);
    border: 1px solid var(--gray-200);
    transition: all 0.3s;
}

.prod-card:hover .pc-btn {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    border-color: transparent;
}

/* 서브페이지 특징 패널 (아이콘 띠를 하나의 패널 안에 담아 정돈) — 폭은 컨테이너 전체로 통일 */
.feature-panel {
    background: linear-gradient(180deg, #f1f5f9, #ffffff);
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: var(--radius-lg);
    padding: 45px 35px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.feature-panel .icon-box {
    cursor: default;
    padding: 10px;
}

.feature-panel .icon-circle {
    width: 84px;
    height: 84px;
    animation: none;
    background: linear-gradient(135deg, #0f172a, #1e293b);
    color: #fff;
}

.feature-panel .icon-circle i {
    font-size: 34px;
}

.feature-panel .icon-box .title {
    color: var(--primary);
    font-size: 18px;
}

/* 강조 포인트 */
.txt-point {
    color: var(--primary);
    font-weight: 800;
}

.pill-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    font-weight: 800;
    font-size: 14px;
    padding: 8px 20px;
    border-radius: 30px;
    box-shadow: 0 6px 15px rgba(11, 166, 93, 0.3);
}

/* 강조 콜아웃 (사용대상 등) */
.highlight-callout {
    background: linear-gradient(135deg, rgba(11, 166, 93, 0.08), rgba(46, 204, 113, 0.04));
    border: 2px solid rgba(11, 166, 93, 0.25);
    border-radius: var(--radius-lg);
    padding: 35px 40px;
    text-align: center;
}

.highlight-callout .hc-main {
    font-size: 22px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 14px;
    letter-spacing: -1px;
}

.highlight-callout ul {
    display: inline-block;
    text-align: left;
}

.highlight-callout ul li {
    color: var(--text-muted);
    font-size: 15px;
    font-weight: 500;
    line-height: 2;
}

.highlight-callout ul li i {
    color: var(--primary);
    margin-right: 8px;
}

/* 요금표 (강조형) */
.fee-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    border: 1px solid #e2e8f0;
    background: #fff;
}

.fee-table thead th {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: #fff !important;
    padding: 20px 16px;
    font-weight: 800;
    font-size: 17px;
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.15);
}

.fee-table thead th:last-child {
    border-right: 0;
}

.fee-table tbody td {
    padding: 16px;
    text-align: center;
    border-bottom: 1px solid #e8edf2;
    border-right: 1px solid #eef2f6;
    font-weight: 700;
    font-size: 16px;
    color: #1f2937;
    background: #fff;
}

.fee-table tbody td:last-child {
    border-right: 0;
}

.fee-table tbody tr:nth-child(even) td {
    background: #f8fafc;
}

.fee-table tbody tr:last-child td {
    border-bottom: 0;
}

.fee-table tbody tr:hover td {
    background: #eafaf1;
}

.fee-table .price-cell {
    font-size: 26px;
    font-weight: 900;
    color: var(--primary) !important;
    background: #f0fdf4 !important;
    border-right: 2px solid #d1fae5;
}

.fee-table .disc-cell {
    color: #E63946 !important;
    font-weight: 900;
    font-size: 17px;
}

/* 이용방법 스텝 플로우 */
.step-flow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.step-card {
    flex: 1;
    min-width: 200px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: var(--radius-lg);
    padding: 35px 20px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s, box-shadow 0.3s;
}

.step-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.1);
}

.step-num {
    width: 60px;
    height: 60px;
    margin: 0 auto 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 900;
    color: #fff;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    box-shadow: 0 10px 22px rgba(11, 166, 93, 0.35);
}

.step-card .sc-title {
    font-size: 19px;
    font-weight: 800;
    margin-bottom: 8px;
}

.step-card .sc-desc {
    font-size: 14px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.6;
}

.step-arrow {
    font-size: 30px;
    color: var(--primary);
    flex: 0 0 auto;
}

@media (max-width: 767px) {
    .step-arrow {
        transform: rotate(90deg);
    }
}

/* 서브페이지 안내 이미지 (이미지 기반 페이지를 카드 안에 깔끔히 배치) */

/* 서브페이지 안내 이미지 (이미지 기반 페이지를 카드 안에 깔끔히 배치) */
.sub-figure {
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.04);
    padding: 20px;
    margin-bottom: 30px;
    text-align: center;
    overflow: hidden;
}

.sub-figure img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
}

/* 결제 선택 카드 (가로형) */
.pay-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: var(--radius-lg);
    padding: 28px 34px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: all 0.35s;
    height: 100%;
    position: relative;
    overflow: hidden;
}

.pay-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 5px;
    height: 100%;
    background: linear-gradient(180deg, var(--primary), var(--primary-light));
}

.pay-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(11, 166, 93, 0.18);
    border-color: rgba(11, 166, 93, 0.3);
}

.pay-card .pay-info h3 {
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -1px;
    margin: 0 0 6px;
    color: var(--dark);
}

.pay-card .pay-info .pay-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--primary);
}

.pay-card .pay-go {
    flex: 0 0 auto;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    transition: all 0.35s;
}

.pay-card:hover .pay-go {
    transform: translateX(4px) scale(1.08);
    box-shadow: 0 8px 18px rgba(11, 166, 93, 0.4);
}

.pay-card .pay-go i {
    color: #fff;
}

/* 동영상 카드 */
.video-card {
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0, 0, 0, 0.05);
    padding: 18px;
    overflow: hidden;
}

.video-card .ratio {
    border-radius: var(--radius-md);
    overflow: hidden;
}

/* 동영상 섹션 좌측 리드 텍스트 */
.video-lead h3 {
    font-size: 38px;
    font-weight: 900;
    letter-spacing: -1.5px;
    line-height: 1.25;
    margin: 16px 0;
}

.video-lead h3 .txt-point {
    color: var(--primary);
}

.video-lead p {
    font-size: 18px;
    color: var(--text-muted);
    font-weight: 600;
    line-height: 1.7;
}

/* 설치 단계 (그리드형 번호 카드) */
.install-step {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: var(--radius-lg);
    padding: 30px 26px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    height: 100%;
    transition: transform 0.3s, box-shadow 0.3s;
    position: relative;
    overflow: hidden;
}

.install-step::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--primary-light));
}

.install-step:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(11, 166, 93, 0.15);
}

.install-step .is-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    font-size: 18px;
    font-weight: 900;
    color: #fff;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    box-shadow: 0 8px 18px rgba(11, 166, 93, 0.3);
    margin-bottom: 16px;
}

.install-step .is-title {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 8px;
    letter-spacing: -0.5px;
}

.install-step .is-desc {
    font-size: 14px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.6;
}

/* 단계 번갈아 포인트 컬러 (1·3·5·7 진한 그린 / 2·4·6·8 밝은 그린) — 가독성 */
.row>.col:nth-child(odd) .install-step::before {
    background: linear-gradient(90deg, #066d3d, #088c4e);
}

.row>.col:nth-child(odd) .install-step .is-num {
    background: linear-gradient(135deg, #066d3d, #088c4e);
    box-shadow: 0 8px 18px rgba(6, 109, 61, 0.35);
}

.row>.col:nth-child(odd) .install-step:hover {
    box-shadow: 0 18px 40px rgba(6, 109, 61, 0.18);
}

/* 설치 단계 — 컴팩트 플로우 (4개씩, 사이에 화살표) */
.iflow {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.istep {
    flex: 1 1 0;
    min-width: 150px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 16px;
    padding: 26px 18px;
    text-align: center;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s, box-shadow 0.3s;
    position: relative;
    overflow: hidden;
}

.istep::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--primary-light));
}

.istep:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 30px rgba(11, 166, 93, 0.15);
}

.istep .in-num {
    width: 40px;
    height: 40px;
    margin: 0 auto 12px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 900;
    color: #fff;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    box-shadow: 0 6px 14px rgba(11, 166, 93, 0.3);
}

.istep .in-title {
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 6px;
    letter-spacing: -0.5px;
}

.istep .in-desc {
    font-size: 12.5px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.5;
}

.istep.dark::before {
    background: linear-gradient(90deg, #066d3d, #088c4e);
}

.istep.dark .in-num {
    background: linear-gradient(135deg, #066d3d, #088c4e);
    box-shadow: 0 6px 14px rgba(6, 109, 61, 0.35);
}

.iarrow {
    display: flex;
    align-items: center;
    color: var(--primary);
    font-size: 22px;
    flex: 0 0 auto;
}

@media (max-width: 767px) {
    .iarrow {
        transform: rotate(90deg);
        width: 100%;
        justify-content: center;
    }

    .istep {
        min-width: 130px;
    }
}

/* 안내 바 */
.info-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    background: linear-gradient(135deg, rgba(11, 166, 93, 0.08), rgba(46, 204, 113, 0.04));
    border: 1px solid rgba(11, 166, 93, 0.2);
    border-radius: var(--radius-md);
    padding: 18px 24px;
    font-weight: 600;
    color: var(--text-main);
    margin-bottom: 30px;
}

.info-bar i {
    color: var(--primary);
    font-size: 22px;
}

/* 공통 CTA 버튼 (메인 컨셉) */
.btn-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 36px;
    border-radius: 50px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    border: none;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(11, 166, 93, 0.3);
}

.btn-cta:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(11, 166, 93, 0.4);
    color: #fff !important;
}

.btn-cta.dark {
    background: linear-gradient(135deg, var(--dark), #333);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

/* 채널톡 unread 뱃지 (floating bar 우상단) */
.f-chat {
    position: relative;
}

.f-chat .badge {
    position: absolute;
    top: 8px;
    right: 12px;
}

.f-chat .badge .unread {
    background: #ff5c5c;
    color: #fff;
    border-radius: 12px;
    padding: 1px 6px;
    font-size: 11px;
    line-height: 16px;
}

.f-chat .badge:has(.unread:empty) {
    display: none;
}

/* 리뉴얼 메인 컨테이너가 그누보드 기존 레이아웃 폭 제한을 받지 않도록 */
#wrapper.renew-wrap,
.renew-wrap #container,
.renew-wrap #container_wr {
    max-width: none;
    width: auto;
}

/* ============================================================
   서브페이지 포인트 컬러 (초록 단색 → 멀티 액센트)
   그린은 브랜드 앵커로 유지, 섹션별 앰버/블루/퍼플/로즈 배분
   ============================================================ */
/* 섹션 라벨 바 색상 변형 */
.sub-group-label.accent-amber::before {
    background: #F59E0B;
}

.sub-group-label.accent-blue::before {
    background: #3B82F6;
}

.sub-group-label.accent-purple::before {
    background: #8B5CF6;
}

.sub-group-label.accent-rose::before {
    background: #F43F5E;
}

.sub-group-label.accent-teal::before {
    background: #14B8A6;
}

/* 특징 패널 아이콘 — 항목별 컬러 (Best/Internet/Quick/KT/APP) */
.sub-page .feature-panel .col:nth-child(1) .icon-circle {
    background: linear-gradient(135deg, #F59E0B, #FBBF24);
}

.sub-page .feature-panel .col:nth-child(1) .title {
    color: #F59E0B;
}

.sub-page .feature-panel .col:nth-child(2) .icon-circle {
    background: linear-gradient(135deg, #3B82F6, #60A5FA);
}

.sub-page .feature-panel .col:nth-child(2) .title {
    color: #3B82F6;
}

.sub-page .feature-panel .col:nth-child(3) .icon-circle {
    background: linear-gradient(135deg, #F43F5E, #FB7185);
}

.sub-page .feature-panel .col:nth-child(3) .title {
    color: #F43F5E;
}

.sub-page .feature-panel .col:nth-child(4) .icon-circle {
    background: linear-gradient(135deg, #0BA65D, #2ECC71);
}

.sub-page .feature-panel .col:nth-child(4) .title {
    color: #0BA65D;
}

.sub-page .feature-panel .col:nth-child(5) .icon-circle {
    background: linear-gradient(135deg, #8B5CF6, #A78BFA);
}

.sub-page .feature-panel .col:nth-child(5) .title {
    color: #8B5CF6;
}

.sub-page .feature-panel .col:nth-child(6) .icon-circle {
    background: linear-gradient(135deg, #0D9488, #2DD4BF);
}

.sub-page .feature-panel .col:nth-child(6) .title {
    color: #0D9488;
}

/* 이용방법 단계 번호 — 단계별 컬러 + 화살표는 중립 그레이 */
.sub-page .step-flow .step-card:nth-child(1) .step-num {
    background: linear-gradient(135deg, #3B82F6, #60A5FA);
    box-shadow: 0 10px 22px rgba(59, 130, 246, 0.35);
}

.sub-page .step-flow .step-card:nth-child(3) .step-num {
    background: linear-gradient(135deg, #8B5CF6, #A78BFA);
    box-shadow: 0 10px 22px rgba(139, 92, 246, 0.35);
}

.sub-page .step-flow .step-card:nth-child(5) .step-num {
    background: linear-gradient(135deg, #0BA65D, #2ECC71);
    box-shadow: 0 10px 22px rgba(11, 166, 93, 0.35);
}

.sub-page .step-arrow {
    color: #cbd5e1;
}

/* 배지 → 골드 포인트 (그린 일색 탈피) */
.sub-page .pill-badge {
    background: linear-gradient(135deg, #F59E0B, #FBBF24);
    box-shadow: 0 6px 15px rgba(245, 158, 11, 0.3);
}

/* 사용대상 콜아웃 → 블루 톤 */
.sub-page .highlight-callout {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.08), rgba(96, 165, 250, 0.04));
    border-color: rgba(59, 130, 246, 0.25);
}

.sub-page .highlight-callout .hc-main {
    color: #2563EB;
}

.sub-page .highlight-callout ul li i {
    color: #3B82F6;
}

/* 요금표 헤더 → 슬레이트(중립). 할인율(레드) 강조는 유지 */
.sub-page .fee-table thead th {
    background: linear-gradient(135deg, #1e293b, #334155);
}

/* 가격 셀 → 흰 배경 유지 + 포인트 컬러(블루)로 강조 */
.sub-page .fee-table .price-cell {
    color: #1d4ed8 !important;
    background: #fff !important;
    border-right: 1px solid #eef2f6;
}

/* 표 호버 → 색상 대신 셀이 살짝 떠오르는 효과 */
.sub-page .fee-table tbody td {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

/* 초록 호버 배경 제거(스트라이프는 유지) */
.sub-page .fee-table tbody tr:hover td {
    background: #fff;
}

.sub-page .fee-table tbody tr:nth-child(even):hover td {
    background: #f8fafc;
}

/* 떠오름은 '직접 올린 셀'에만 — rowspan(가격/개수) 셀 제외 → 가격 박스 호버 시 30일 안 뜸 */
.sub-page .fee-table tbody td:not([rowspan]):hover {
    background: #fff;
    box-shadow: 0 7px 18px rgba(0, 0, 0, 0.12);
    transform: translateY(-2px);
    position: relative;
    z-index: 2;
}

/* ── 설치 단계(istep, install 전용): 초록 배지 · 노랑 배지 교차 ── */
.sub-page .iflow .istep:nth-child(4n+1) {
    --acc1: var(--primary);
    --acc2: var(--primary-light);
}

/* 초록 */
.sub-page .iflow .istep:nth-child(4n+3) {
    --acc1: #F59E0B;
    --acc2: #FBBF24;
}

/* 노랑 */
.sub-page .istep::before {
    background: linear-gradient(90deg, var(--acc1, var(--primary)), var(--acc2, var(--primary-light)));
}

.sub-page .istep .in-num {
    background: linear-gradient(135deg, var(--acc1, var(--primary)), var(--acc2, var(--primary-light)));
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.18);
}

.sub-page .iarrow {
    color: #cbd5e1;
}

/* step-flow가 stretch라 화살표가 늘어날 때 아이콘을 세로 중앙으로 */
.sub-page .step-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── 결제/바로가기 카드(pay-card): 기본 그린 · 진한 그린 교차 (은은한 포인트) ── */
.sub-page .pay-card {
    --acc1: var(--primary);
    --acc2: var(--primary-light);
}

.sub-page .row>.col:nth-child(even) .pay-card {
    --acc1: #066d3d;
    --acc2: #0a8f4f;
}

.sub-page .pay-card::before {
    background: linear-gradient(180deg, var(--acc1), var(--acc2));
}

.sub-page .pay-card .pay-info .pay-price {
    color: var(--acc1);
}

.sub-page .pay-card .pay-go {
    background: linear-gradient(135deg, var(--acc1), var(--acc2));
}

.sub-page .pay-card:hover {
    border-color: var(--acc1);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.13);
}

.sub-page .pay-card:hover .pay-go {
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
}

/* ── 제품 상세: 사용대상 카드 그리드 ── */
.sub-page .use-card {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: var(--radius-lg);
    padding: 28px 22px;
    height: 100%;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
}

.sub-page .use-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10);
}

.sub-page .use-badge {
    display: inline-block;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    padding: 6px 22px;
    border-radius: 30px;
    margin-bottom: 18px;
}

.sub-page .use-icon {
    width: 74px;
    height: 74px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.sub-page .use-icon i {
    font-size: 32px;
    color: var(--primary);
}

.sub-page .use-icon .app-text {
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
}

.sub-page .use-list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: left;
    width: 100%;
    flex-grow: 1;
}

.sub-page .use-list li {
    font-size: 13.5px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 8px;
    padding-left: 14px;
    position: relative;
}

.sub-page .use-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--primary);
}

.sub-page .social-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 12px;
    justify-content: center;
    width: 100%;
}

.sub-page .social-tag {
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 9px;
    border-radius: 5px;
}

.sub-page .tag-nblog,
.sub-page .tag-nkin {
    background: #03c75a;
}

.sub-page .tag-insta {
    background: #e1306c;
}

.sub-page .tag-fb {
    background: #3b5998;
}

/* ── 제품 상세: 주의사항 박스 ── */
.sub-page .notice-box {
    background: #fafbfc;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-left: 4px solid #E63946;
    border-radius: 12px;
    padding: 22px 28px;
    margin-bottom: 20px;
}

.sub-page .notice-box ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sub-page .notice-box li {
    font-size: 13.5px;
    color: var(--text-muted);
    line-height: 1.95;
    font-weight: 500;
}

/* ── 제품 상세: 무료테스트 콜아웃 ── */
.sub-page .free-callout {
    text-align: center;
    background: linear-gradient(135deg, rgba(11, 166, 93, 0.08), rgba(46, 204, 113, 0.04));
    border: 1px dashed rgba(11, 166, 93, 0.35);
    border-radius: var(--radius-lg);
    padding: 36px 24px;
    margin-top: 44px;
}

.sub-page .free-callout .fc-main {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.5px;
    margin-bottom: 6px;
}

.sub-page .free-callout .fc-main b {
    color: var(--primary);
}

.sub-page .free-callout .fc-sub {
    color: var(--text-muted);
    font-weight: 700;
    margin-bottom: 22px;
}

/* ── 장비형 VPN: 탭 ── */
.sub-page .gx-tabs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 30px;
}

.sub-page .gx-tabs a {
    flex: 1;
    min-width: 140px;
    text-align: center;
    padding: 14px 16px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    background: #fff;
    border: 1px solid var(--gray-200);
    color: var(--text-main);
    transition: all 0.25s;
}

.sub-page .gx-tabs a.active,
.sub-page .gx-tabs a:hover {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    border-color: transparent;
    box-shadow: 0 8px 20px rgba(11, 166, 93, 0.3);
}

/* ── 장비형 VPN: 비교표 ── */
.sub-page .cmp-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    border: 1px solid #e2e8f0;
    background: #fff;
    font-size: 14px;
}

.sub-page .cmp-table th,
.sub-page .cmp-table td {
    padding: 15px 12px;
    text-align: center;
    border-bottom: 1px solid #eef2f6;
    border-right: 1px solid #eef2f6;
    vertical-align: middle;
    line-height: 1.45;
}

.sub-page .cmp-table th:last-child,
.sub-page .cmp-table td:last-child {
    border-right: 0;
}

.sub-page .cmp-table tbody tr:last-child td {
    border-bottom: 0;
}

.sub-page .cmp-table thead th {
    background: #1e293b;
    color: #fff !important;
    font-weight: 800;
    font-size: 14.5px;
}

.sub-page .cmp-table thead th.col-main {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
}

.sub-page .cmp-table .rowlabel {
    background: #f8fafc;
    font-weight: 700;
    color: #1f2937;
    white-space: nowrap;
}

.sub-page .cmp-table .col-main {
    background: rgba(11, 166, 93, 0.05);
    font-weight: 700;
    color: #1f2937;
}

.sub-page .cmp-table .col-other {
    color: var(--text-muted);
}

.sub-page .cmp-table .hi {
    background: #fffceb;
    font-weight: 800;
    color: #1f2937;
}

.sub-page .gw-badge {
    display: inline-block;
    background: var(--primary);
    color: #fff !important;
    font-weight: 800;
    font-size: 12.5px;
    padding: 6px 12px;
    border-radius: 8px;
    margin: 2px;
}

.sub-page .gw-more {
    display: inline-block;
    background: #1e293b;
    color: #fff !important;
    font-weight: 800;
    font-size: 12.5px;
    padding: 7px 16px;
    border-radius: 8px;
    margin-top: 6px;
}

/* ── 장비형 VPN: 활용 카드 ── */
.sub-page .gx-card {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: var(--radius-lg);
    padding: 30px 26px;
    height: 100%;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
}

.sub-page .gx-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10);
}

.sub-page .gx-card .gx-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    font-size: 17px;
    font-weight: 900;
    color: #fff;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    box-shadow: 0 8px 18px rgba(11, 166, 93, 0.3);
    margin-bottom: 14px;
}

.sub-page .gx-card .gx-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 12px;
    letter-spacing: -0.5px;
}

.sub-page .gx-card p {
    font-size: 14px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.7;
    margin: 0;
}

.sub-page .gx-card p+p {
    margin-top: 12px;
}

/* ── 이용방법/관리 단계 카드: 높이 통일 + 내용 세로 중앙정렬 ── */
.sub-page .step-flow {
    align-items: stretch;
}

.sub-page .step-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* ── 직결망 배지: 국가별 색 구분 ── */
.sub-page .gw-badge:nth-of-type(1) {
    background: #2563EB;
}

/* 중국 - 블루 */
.sub-page .gw-badge:nth-of-type(2) {
    background: #F59E0B;
}

/* 베트남 - 앰버 */
.sub-page .gw-badge:nth-of-type(3) {
    background: #E63946;
}

/* 필리핀 - 레드 */

/* ── 활용 카드 번호/제목: 카드별 색 구분 ── */
.sub-page .row>.col:nth-child(1) .gx-num {
    background: linear-gradient(135deg, #3B82F6, #60A5FA);
    box-shadow: 0 8px 18px rgba(59, 130, 246, 0.3);
}

.sub-page .row>.col:nth-child(2) .gx-num {
    background: linear-gradient(135deg, #8B5CF6, #A78BFA);
    box-shadow: 0 8px 18px rgba(139, 92, 246, 0.3);
}

.sub-page .row>.col:nth-child(3) .gx-num {
    background: linear-gradient(135deg, #0BA65D, #2ECC71);
    box-shadow: 0 8px 18px rgba(11, 166, 93, 0.3);
}

.sub-page .row>.col:nth-child(1) .gx-title {
    color: #3B82F6;
}

.sub-page .row>.col:nth-child(2) .gx-title {
    color: #8B5CF6;
}

.sub-page .row>.col:nth-child(3) .gx-title {
    color: #0BA65D;
}

/* ── 비교표: 중간 컬럼 연한 톤 / BEST 리본 ── */
.sub-page .cmp-table .col-soft {
    background: #f3f4f8;
    color: #1f2937;
    font-weight: 700;
}

.sub-page .cmp-best {
    display: inline-block;
    background: #E63946;
    color: #fff !important;
    font-size: 11px;
    font-weight: 900;
    padding: 2px 10px;
    border-radius: 20px;
    margin-right: 6px;
    vertical-align: middle;
}

/* ── 프로그램 VPN: 상품 카드 ── */
.sub-page .prod-card .pc-list {
    list-style: none;
    padding: 0;
    margin: 0 0 14px;
    text-align: left;
    flex-grow: 1;
}

.sub-page .prod-card .pc-list li {
    font-size: 14px;
    color: var(--text-main);
    font-weight: 600;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.sub-page .prod-card .pc-list li i {
    color: var(--primary);
    font-size: 16px;
}

.sub-page .prod-card .pc-note {
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 500;
    margin: 0 0 16px;
    text-align: left;
    line-height: 1.5;
}

.sub-page .prod-card .pc-price small {
    color: #E63946;
    font-weight: 800;
}

.sub-page .gxp-cards .col:nth-child(1) .prod-card::before {
    background: linear-gradient(90deg, #0BA65D, #2ECC71);
}

.sub-page .gxp-cards .col:nth-child(2) .prod-card::before {
    background: linear-gradient(90deg, #1e3a8a, #3b82f6);
}

.sub-page .gxp-cards .col:nth-child(3) .prod-card::before {
    background: linear-gradient(90deg, #334155, #64748b);
}

/* ── 프록시서버: 장점 카드 아이콘 색 구분 ── */
.sub-page .adv-cards .col:nth-child(1) .use-icon {
    background: rgba(59, 130, 246, 0.12);
}

.sub-page .adv-cards .col:nth-child(1) .use-icon i {
    color: #3B82F6;
}

.sub-page .adv-cards .col:nth-child(2) .use-icon {
    background: rgba(245, 158, 11, 0.14);
}

.sub-page .adv-cards .col:nth-child(2) .use-icon i {
    color: #F59E0B;
}

.sub-page .adv-cards .col:nth-child(3) .use-icon {
    background: rgba(244, 63, 94, 0.12);
}

.sub-page .adv-cards .col:nth-child(3) .use-icon i {
    color: #F43F5E;
}

.sub-page .adv-cards .col:nth-child(4) .use-icon {
    background: rgba(11, 166, 93, 0.12);
}

.sub-page .adv-cards .col:nth-child(4) .use-icon i {
    color: #0BA65D;
}

/* ── 프록시: 프리미엄 배너 ── */
.sub-page .premium-banner {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 24px;
    background: linear-gradient(130deg, #1a3a8f 0%, #1e56c8 40%, #3b82f6 75%, #60a5fa 100%);
    color: #fff;
    border-radius: var(--radius-lg);
    padding: 30px 36px;
    margin-bottom: 55px;
    box-shadow: 0 16px 42px rgba(30, 86, 200, 0.38);
    transition: transform 0.3s, box-shadow 0.3s;
    border: 1px solid rgba(255, 255, 255, 0.12);
    text-decoration: none !important;
}

.sub-page .premium-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.14) 50%, transparent 100%);
    transform: translateX(-100%);
    transition: transform 0.6s ease;
    pointer-events: none;
}

.sub-page .premium-banner:hover::after {
    transform: translateX(150%);
}

.sub-page .premium-banner:hover {
    transform: translateY(-5px);
    box-shadow: 0 24px 54px rgba(30, 86, 200, 0.5);
}

.sub-page .pb-deco {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.07);
    pointer-events: none;
}

.sub-page .pb-deco-1 {
    width: 220px;
    height: 220px;
    top: -80px;
    right: 220px;
}

.sub-page .pb-deco-2 {
    width: 140px;
    height: 140px;
    bottom: -60px;
    right: 100px;
}

.sub-page .pb-icon-area {
    font-size: 56px;
    line-height: 1;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    filter: drop-shadow(0 3px 10px rgba(0, 0, 0, 0.2));
}

.sub-page .pb-content {
    flex: 1;
    position: relative;
    z-index: 1;
    min-width: 0;
}

.sub-page .pb-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 20px;
    padding: 3px 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.sub-page .pb-title {
    font-size: 26px;
    font-weight: 900;
    line-height: 1.2;
    margin-bottom: 10px;
    color: #fff;
}

.sub-page .pb-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sub-page .pb-spec {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 6px;
    padding: 4px 12px;
    font-size: 13px;
    font-weight: 700;
}

.sub-page .pb-action {
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.sub-page .pb-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    color: #1e56c8;
    border-radius: 10px;
    padding: 13px 26px;
    font-size: 15px;
    font-weight: 800;
    white-space: nowrap;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
    transition: transform 0.2s;
}

.sub-page .pb-btn i {
    font-size: 18px;
}

.sub-page .premium-banner:hover .pb-btn {
    transform: scale(1.05);
}

@media (max-width:575.98px) {
    .sub-page .premium-banner {
        flex-wrap: wrap;
        padding: 22px 20px;
        gap: 14px;
    }

    .sub-page .pb-icon-area {
        font-size: 40px;
    }

    .sub-page .pb-title {
        font-size: 20px;
    }

    .sub-page .pb-deco-1,
    .sub-page .pb-deco-2 {
        display: none;
    }

    .sub-page .pb-action {
        width: 100%;
    }

    .sub-page .pb-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ── 가상서버: 기술지원 띠배너 ── */
.sub-page .xen-strip {
    background: linear-gradient(120deg, #FF6A00, #FF2D55, #FF6A00);
    background-size: 200% 200%;
    animation: gradientBG 8s ease infinite;
    color: #fff;
    border-radius: var(--radius-lg);
    padding: 24px;
    text-align: center;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -0.5px;
    margin-bottom: 48px;
    box-shadow: 0 14px 34px rgba(255, 45, 85, 0.35);
}

.sub-page .xen-strip i {
    color: #FFE71B;
    margin-right: 6px;
}

@media (max-width: 767.98px) {
    .sub-page .xen-strip {
        font-size: 15px;
        padding: 18px 14px;
        margin-bottom: 32px;
        line-height: 1.45;
    }
}

/* 넓은 요금표(다열)는 모바일에서 가로 스크롤 — 칸이 세로로 쪼개지는 깨짐 방지 */
@media (max-width: 767.98px) {
    .sub-page .fee-table.wide {
        min-width: 660px;
    }
}

/* ── 가상서버: 공인IP 혜택 강조 배너 ── */
.sub-page .ip-benefit-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    background: linear-gradient(135deg, #0a8c4e 0%, #0BA65D 55%, #2ECC71 100%);
    border-radius: var(--radius-md);
    padding: 22px 32px;
    margin-bottom: 28px;
    box-shadow: 0 8px 28px rgba(11, 166, 93, 0.3);
    position: relative;
    overflow: hidden;
}

.sub-page .ip-benefit-bar::before {
    content: '';
    position: absolute;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.07);
    top: -80px;
    right: 60px;
    pointer-events: none;
}

.sub-page .ip-benefit-bar::after {
    content: '';
    position: absolute;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.05);
    bottom: -50px;
    left: 40px;
    pointer-events: none;
}

.sub-page .ip-benefit-bar .ipb-icon {
    font-size: 36px;
    color: #fff;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.2));
}

.sub-page .ip-benefit-bar .ipb-text {
    font-size: 19px;
    font-weight: 700;
    color: #fff;
    line-height: 1.5;
    position: relative;
    z-index: 1;
    text-align: center;
}

.sub-page .ip-benefit-bar .ipb-text strong {
    font-size: 22px;
    font-weight: 900;
    background: rgba(255, 255, 255, 0.22);
    border-radius: 6px;
    padding: 2px 10px;
    margin: 0 2px;
    white-space: nowrap;
}

@media (max-width:575.98px) {
    .sub-page .ip-benefit-bar {
        flex-direction: column;
        gap: 12px;
        padding: 18px 18px;
        text-align: center;
    }

    .sub-page .ip-benefit-bar .ipb-text {
        font-size: 16px;
    }

    .sub-page .ip-benefit-bar .ipb-text strong {
        font-size: 18px;
    }
}

/* ── 가상서버: 상단 일러스트(서버 ↔ 원격접속) SVG 애니메이션 ── */
.sub-page .xen-scene {
    width: 100%;
    max-width: 860px;
    margin: 6px auto 44px;
    padding: 10px;
}

.sub-page .xen-scene svg {
    width: 100%;
    height: auto;
    display: block;
}

.sub-page .xen-scene .xs-led {
    animation: xsBlink 1.6s ease-in-out infinite;
}

.sub-page .xen-scene .xs-led.b {
    animation-delay: 0.5s;
}

.sub-page .xen-scene .xs-led.c {
    animation-delay: 1s;
}

.sub-page .xen-scene .xs-pkt {
    animation: xsFlow 2.6s ease-in-out infinite;
}

.sub-page .xen-scene .xs-pkt.p2 {
    animation-delay: 0.9s;
}

.sub-page .xen-scene .xs-pkt.p3 {
    animation-delay: 1.8s;
}

.sub-page .xen-scene .xs-win {
    animation: xsWin 3s ease-in-out infinite;
}

.sub-page .xen-scene .xs-win.w2 {
    animation-delay: 0.6s;
}

.sub-page .xen-scene .xs-win.w3 {
    animation-delay: 1.2s;
}

@keyframes xsBlink {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.2;
    }
}

@keyframes xsFlow {
    0% {
        transform: translateX(0);
        opacity: 0;
    }

    12% {
        opacity: 1;
    }

    88% {
        opacity: 1;
    }

    100% {
        transform: translateX(122px);
        opacity: 0;
    }
}

@keyframes xsWin {

    0%,
    100% {
        opacity: 0.5;
    }

    50% {
        opacity: 1;
    }
}

/* 가상화 허브 중앙 펄스(젠서버) */
.sub-page .xen-scene .xs-core {
    transform-box: fill-box;
    transform-origin: center;
    animation: xsCore 2.8s ease-out infinite;
}

.sub-page .xen-scene .xs-core.c2 {
    animation-delay: 1.4s;
}

@keyframes xsCore {
    0% {
        transform: scale(0.55);
        opacity: 0.7;
    }

    100% {
        transform: scale(1.7);
        opacity: 0;
    }
}

/* 세로(위로) 흐르는 패킷 (젠서버 레이어형) */
.sub-page .xen-scene .xs-pktv {
    animation: xsFlowUp 2.4s ease-in-out infinite;
}

.sub-page .xen-scene .xs-pktv.p2 {
    animation-delay: 0.5s;
}

.sub-page .xen-scene .xs-pktv.p3 {
    animation-delay: 1s;
}

.sub-page .xen-scene .xs-pktv.p4 {
    animation-delay: 1.5s;
}

.sub-page .xen-scene .xs-pktv.p5 {
    animation-delay: 2s;
}

@keyframes xsFlowUp {
    0% {
        transform: translateY(0);
        opacity: 0;
    }

    16% {
        opacity: 1;
    }

    84% {
        opacity: 1;
    }

    100% {
        transform: translateY(-58px);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sub-page .xen-scene * {
        animation: none !important;
    }
}

/* ── 가상서버: 장점 포인트 카드 그리드 ── */
.sub-page .xen-point-card {
    display: flex;
    align-items: center;
    gap: 18px;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: var(--radius-md);
    padding: 20px 24px;
    height: 100%;
    transition: transform 0.22s, box-shadow 0.22s;
}

.sub-page .xen-point-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.09);
}

.sub-page .xen-point-card .xpc-icon {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(59, 130, 246, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sub-page .xen-point-card .xpc-icon i {
    font-size: 24px;
    color: #2563eb;
}

.sub-page .xen-point-card .xpc-text {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-main);
    line-height: 1.55;
}

.sub-page .xen-point-card .xpc-text strong {
    color: var(--primary);
}

.sub-page .xen-point-card.featured {
    border-color: rgba(11, 166, 93, 0.3);
    background: linear-gradient(135deg, rgba(11, 166, 93, 0.05), rgba(46, 204, 113, 0.03));
}

.sub-page .xen-point-card.featured .xpc-icon {
    width: 58px;
    height: 58px;
    background: rgba(11, 166, 93, 0.14);
}

.sub-page .xen-point-card.featured .xpc-icon i {
    font-size: 28px;
    color: #0BA65D;
}

.sub-page .xen-point-card.featured .xpc-text {
    font-size: 16px;
}

.sub-page .xen-point-cards .col:nth-child(2) .xpc-icon {
    background: rgba(245, 158, 11, 0.12);
}

.sub-page .xen-point-cards .col:nth-child(2) .xpc-icon i {
    color: #D97706;
}

.sub-page .xen-point-cards .col:nth-child(3) .xpc-icon {
    background: rgba(244, 63, 94, 0.1);
}

.sub-page .xen-point-cards .col:nth-child(3) .xpc-icon i {
    color: #E63946;
}

.sub-page .xen-point-cards .col:nth-child(4) .xpc-icon {
    background: rgba(139, 92, 246, 0.1);
}

.sub-page .xen-point-cards .col:nth-child(4) .xpc-icon i {
    color: #7C3AED;
}

@media (max-width:575.98px) {
    .sub-page .xen-point-card {
        padding: 16px 18px;
    }

    .sub-page .xen-point-card .xpc-text {
        font-size: 14px;
    }
}

/* ── 가상서버: 프리미엄 특징 카드 (밝은 톤 + 애니메이션 아이콘) ── */
.sub-page .xen-feature {
    display: flex;
    align-items: center;
    gap: 44px;
    background: linear-gradient(135deg, #ffffff, #f1f7f4);
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: var(--radius-lg);
    padding: 46px 50px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.06);
    position: relative;
    overflow: hidden;
}

.sub-page .xen-feature::before {
    content: '';
    position: absolute;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    top: -130px;
    right: -110px;
    background: radial-gradient(circle, rgba(11, 166, 93, 0.10) 0%, transparent 70%);
    pointer-events: none;
}

/* 애니메이션 아이콘 — 원형 배지가 둥실 떠오르고, 원격 신호 파동이 번지는 */
.sub-page .xf-visual {
    flex: 0 0 auto;
    width: 128px;
    height: 128px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 16px 34px rgba(11, 166, 93, 0.4);
    position: relative;
    z-index: 1;
    animation: xfFloat 3.4s ease-in-out infinite;
}

.sub-page .xf-visual::before,
.sub-page .xf-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(11, 166, 93, 0.5);
    animation: xfPulse 2.8s ease-out infinite;
}

.sub-page .xf-visual::after {
    animation-delay: 1.4s;
}

@keyframes xfFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

@keyframes xfPulse {
    0% {
        transform: scale(1);
        opacity: 0.6;
    }

    100% {
        transform: scale(1.75);
        opacity: 0;
    }
}

/* 화면 바 깜빡임 + 원격 신호 파동 */
.sub-page .xf-visual .led {
    animation: xfBlink 1.6s ease-in-out infinite;
}

.sub-page .xf-visual .sig {
    animation: xfSig 2.2s ease-in-out infinite;
}

.sub-page .xf-visual .sig2 {
    animation-delay: 0.35s;
}

@keyframes xfBlink {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.2;
    }
}

@keyframes xfSig {

    0%,
    100% {
        opacity: 0.25;
    }

    50% {
        opacity: 1;
    }
}

.sub-page .xf-body {
    z-index: 1;
    flex: 1;
}

.sub-page .xf-title {
    font-size: 24px;
    font-weight: 900;
    margin-bottom: 22px;
    letter-spacing: -0.5px;
    color: var(--dark);
}

.sub-page .xf-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 36px;
}

.sub-page .xf-list li {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 11px;
    color: var(--text-main);
}

.sub-page .xf-list li i {
    color: var(--primary);
    font-size: 21px;
    flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {

    .sub-page .xf-visual,
    .sub-page .xf-visual::after,
    .sub-page .xf-visual .led {
        animation: none;
    }
}

@media (max-width: 767.98px) {
    .sub-page .xen-feature {
        flex-direction: column;
        text-align: center;
        padding: 34px 26px;
        gap: 26px;
    }

    .sub-page .xf-visual {
        width: 104px;
        height: 104px;
        border-radius: 50%;
    }

    .sub-page .xf-title {
        font-size: 20px;
    }

    .sub-page .xf-list {
        grid-template-columns: 1fr;
        gap: 11px;
        text-align: left;
    }

    .sub-page .xf-list li {
        justify-content: flex-start;
        font-size: 15px;
    }
}

/* ── 프록시: 1:1 방식 흐름도 ── */
.sub-page .proxy-flow {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}

.sub-page .pf-box {
    flex: 1;
    min-width: 180px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 18px;
    font-weight: 800;
    color: #1f2937;
}

.sub-page .pf-box.pf-idc {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: #fff;
    border-color: transparent;
}

.sub-page .pf-box.pf-idc small {
    display: block;
    font-weight: 600;
    font-size: 13px;
    opacity: 0.9;
    margin-top: 6px;
}

.sub-page .pf-arrow {
    display: flex;
    align-items: center;
    color: var(--primary);
    font-size: 26px;
    flex: 0 0 auto;
}

@media (max-width: 767.98px) {
    .sub-page .proxy-flow {
        flex-direction: column;
    }

    .sub-page .pf-arrow {
        transform: rotate(90deg);
        justify-content: center;
    }
}

/* ============================================================
   사용방법: 앱(MomoIP 로그인) 목업 + 가이드 패널
   ============================================================ */
.sub-page .app-mock {
    max-width: 380px;
    margin: 0 auto;
    background: #eef1f6;
    border: 1px solid #d8dee9;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

.sub-page .app-titlebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #e2e6ee;
    color: #475569;
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 700;
    border-bottom: 1px solid #d0d6e0;
}

.sub-page .app-titlebar .ctrls {
    letter-spacing: 3px;
    color: #94a3b8;
}

.sub-page .app-brand {
    background: linear-gradient(135deg, #1b2456, #3a4aa0);
    color: #fff;
    padding: 12px 16px;
    font-weight: 900;
    font-size: 20px;
    letter-spacing: -0.5px;
}

.sub-page .app-brand small {
    font-size: 11px;
    font-weight: 600;
    opacity: 0.85;
    margin-left: 6px;
}

.sub-page .app-body {
    padding: 16px;
}

.sub-page .app-field {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 11px;
}

.sub-page .app-field .mk {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    animation: umPulse 1.8s infinite;
}

.sub-page .app-field .lbl {
    width: 78px;
    color: #1b2456;
    font-weight: 700;
    font-size: 12.5px;
}

.sub-page .app-select {
    flex: 1;
    border: 1px solid #b9c2d0;
    border-radius: 6px;
    padding: 6px 10px;
    background: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #1f2937;
    font-weight: 700;
    font-size: 12.5px;
}

.sub-page .app-select.dim {
    background: #e3e8f0;
    color: #98a2b3;
}

.sub-page .app-select i {
    color: #98a2b3;
}

.sub-page .app-radios {
    flex: 1;
    display: flex;
    gap: 10px;
    font-size: 12px;
    color: #64748b;
    font-weight: 600;
}

.sub-page .app-radios .on {
    color: var(--primary);
}

.sub-page .app-cred {
    display: flex;
    gap: 8px;
    margin: 2px 0 8px;
}

.sub-page .app-cred .fields {
    flex: 1;
}

.sub-page .app-inp {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.sub-page .app-inp span {
    width: 48px;
    font-size: 12px;
    color: #475569;
    font-weight: 700;
}

.sub-page .app-inp .box {
    flex: 1;
    height: 26px;
    border: 1px solid #b9c2d0;
    border-radius: 5px;
    background: #fff;
}

.sub-page .app-login {
    width: 66px;
    background: #2b3a55;
    color: #fff;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 13px;
}

.sub-page .app-subrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 11px;
    color: #64748b;
    font-weight: 600;
    margin-bottom: 10px;
}

.sub-page .app-tools {
    display: flex;
    gap: 4px;
    margin-bottom: 10px;
}

.sub-page .app-tools span {
    flex: 1;
    text-align: center;
    background: #dde3ec;
    border-radius: 5px;
    padding: 6px 2px;
    font-size: 10.5px;
    color: #475569;
    font-weight: 700;
}

.sub-page .app-notice {
    background: #fff;
    border: 1px solid #d8dee9;
    border-radius: 6px;
    padding: 10px 12px;
    margin-bottom: 10px;
}

.sub-page .app-notice .nh {
    color: var(--primary);
    font-weight: 800;
    font-size: 12px;
    margin-bottom: 6px;
}

.sub-page .app-notice .ni {
    font-size: 10.5px;
    color: #64748b;
    line-height: 1.8;
}

.sub-page .app-foot {
    display: flex;
    gap: 8px;
}

.sub-page .app-foot a {
    flex: 1;
    background: #2b3a55;
    color: #fff !important;
    border-radius: 6px;
    padding: 9px 0;
    text-align: center;
    font-weight: 800;
    font-size: 12.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: filter 0.2s;
}

.sub-page .app-foot a.rem {
    background: #3a4aa0;
}

.sub-page .app-foot a:hover {
    filter: brightness(1.15);
}

@keyframes umPulse {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(11, 166, 93, 0.5);
    }

    70% {
        box-shadow: 0 0 0 7px rgba(11, 166, 93, 0);
    }
}

.sub-page .guide-panel {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    height: 100%;
}

.sub-page .guide-head {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: #fff;
    font-weight: 800;
    font-size: 16px;
    padding: 14px 22px;
}

.sub-page .guide-body {
    padding: 24px 26px;
}

.sub-page .guide-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    counter-reset: gl;
}

.sub-page .guide-list li {
    position: relative;
    padding: 9px 0 9px 38px;
    font-size: 15px;
    font-weight: 600;
    color: var(--text-main);
    border-bottom: 1px dashed rgba(0, 0, 0, 0.07);
    counter-increment: gl;
}

.sub-page .guide-list li:last-child {
    border-bottom: 0;
}

.sub-page .guide-list li::before {
    content: counter(gl);
    position: absolute;
    left: 0;
    top: 8px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(11, 166, 93, 0.12);
    color: var(--primary);
    font-size: 12px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sub-page .guide-sub h5 {
    font-size: 15px;
    font-weight: 800;
    color: #1b2456;
    margin: 0 0 10px;
}

.sub-page .guide-sub p {
    font-size: 13.5px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.75;
    margin: 0 0 8px;
}

.sub-page .guide-sub .em {
    color: var(--primary);
    font-weight: 700;
}

@media (max-width: 991.98px) {
    .sub-page .app-mock {
        margin-bottom: 26px;
    }
}

/* 안드로이드: 폰 목업 (애니메이션) */
.sub-page .phone-mock {
    width: 250px;
    margin: 0 auto;
    background: #0f172a;
    border-radius: 40px;
    padding: 12px;
    box-shadow: 0 22px 50px rgba(0, 0, 0, 0.25);
}

.sub-page .phone-screen {
    background: #f3f5f9;
    border-radius: 30px;
    overflow: hidden;
    position: relative;
}

.sub-page .phone-notch {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 86px;
    height: 18px;
    background: #0f172a;
    border-radius: 0 0 12px 12px;
    z-index: 2;
}

.sub-page .ph-head {
    background: linear-gradient(135deg, #1b2456, #3a4aa0);
    color: #fff;
    padding: 28px 16px 16px;
    text-align: center;
}

.sub-page .ph-head .logo {
    font-size: 24px;
    font-weight: 900;
    letter-spacing: -0.5px;
}

.sub-page .ph-head .tel {
    font-size: 14px;
    font-weight: 700;
    margin-top: 4px;
    opacity: 0.95;
}

.sub-page .ph-body {
    padding: 16px;
}

.sub-page .ph-connect {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    margin: 6px auto 16px;
    background: radial-gradient(circle at 50% 38%, #34D399, var(--primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 32px;
    box-shadow: 0 10px 24px rgba(11, 166, 93, 0.4);
    animation: umPulse 1.8s infinite;
}

.sub-page .ph-connect i {
    animation: phSpin 4.5s linear infinite;
}

@keyframes phSpin {
    to {
        transform: rotate(360deg);
    }
}

.sub-page .ph-row {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 9px 12px;
    margin-bottom: 8px;
    font-size: 12.5px;
    font-weight: 600;
    color: #475569;
}

.sub-page .ph-row i {
    color: var(--primary);
    font-size: 15px;
}

.sub-page .ph-row .on {
    margin-left: auto;
    color: var(--primary);
    font-weight: 800;
    font-size: 11px;
}

.sub-page .ph-cta {
    background: var(--primary);
    color: #fff;
    text-align: center;
    border-radius: 8px;
    padding: 11px;
    font-weight: 800;
    font-size: 13px;
    margin-top: 4px;
}

/* APK 다운로드 배너 */
.sub-page .apk-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: linear-gradient(135deg, #1b2456, #3a4aa0);
    color: #fff;
    border-radius: var(--radius-lg);
    padding: 28px 34px;
    margin-bottom: 55px;
    box-shadow: 0 14px 34px rgba(27, 36, 86, 0.25);
}

.sub-page .apk-banner .apk-txt {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -0.5px;
}

.sub-page .apk-banner .apk-txt small {
    display: block;
    font-size: 13px;
    font-weight: 500;
    opacity: 0.8;
    margin-top: 4px;
}

.sub-page .apk-banner .apk-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--primary);
    color: #fff !important;
    padding: 15px 28px;
    border-radius: 30px;
    font-weight: 800;
    font-size: 15px;
    white-space: nowrap;
    transition: all 0.3s;
}

.sub-page .apk-banner .apk-btn:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {

    .sub-page .ph-connect,
    .sub-page .ph-connect i {
        animation: none;
    }
}

/* 안드로이드: 단계별 폰 목업 (상세) */
.sub-page .pstep {
    text-align: center;
}

.sub-page .pstep-no {
    display: inline-flex;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    box-shadow: 0 6px 14px rgba(11, 166, 93, 0.3);
}

.sub-page .pstep-cap {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-main);
    line-height: 1.45;
    margin-top: 14px;
    word-break: keep-all;
}

.sub-page .pmini {
    width: 100%;
    max-width: 216px;
    margin: 0 auto;
    background: #0f172a;
    border-radius: 30px;
    padding: 8px;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.20);
}

.sub-page .pmini .scr {
    background: #eef1f6;
    border-radius: 23px;
    overflow: hidden;
    position: relative;
    height: 384px;
    display: flex;
    flex-direction: column;
}

.sub-page .pmini .sb {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 14px 4px;
    font-size: 9px;
    font-weight: 700;
    color: #334155;
    flex-shrink: 0;
}

.sub-page .pmini .sb .ico i {
    margin-left: 3px;
}

.sub-page .pmini .hd {
    background: linear-gradient(135deg, #1b2456, #3a4aa0);
    color: #fff;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.sub-page .pmini .hd.ok {
    background: linear-gradient(135deg, #0BA65D, #2ECC71);
}

.sub-page .pmini .hd .ham {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.18);
    font-size: 13px;
}

.sub-page .pmini .hd .ttl {
    font-weight: 900;
    font-size: 15px;
    letter-spacing: -0.5px;
}

.sub-page .pmini .hd.white {
    background: #fff;
    color: #1f2937;
    justify-content: space-between;
    border-bottom: 1px solid #eef1f6;
}

.sub-page .pmini .hd.white .ham {
    background: transparent;
    color: #1f2937;
}

/* 서비스 리스트 화면 (신규 레이아웃) */
.sub-page .pmini .bd.svc2 {
    padding: 12px;
    gap: 10px;
    overflow: hidden;
}

.sub-page .pmini .svc2-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-shrink: 0;
}

.sub-page .pmini .svc2-head b {
    display: block;
    font-size: 12.5px;
    color: #1f2937;
    font-weight: 800;
}

.sub-page .pmini .svc2-head small {
    display: block;
    font-size: 9.5px;
    color: #94a3b8;
    font-weight: 600;
    margin-top: 2px;
}

.sub-page .pmini .svc2-multi {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 9.5px;
    color: #64748b;
    font-weight: 700;
    flex-shrink: 0;
    white-space: nowrap;
}

.sub-page .pmini .svc2-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
}

.sub-page .pmini .svc2-card {
    background: #eaf7ee;
    border-radius: 10px;
    padding: 10px 12px;
    opacity: 0.85;
    flex-shrink: 0;
}

.sub-page .pmini .svc2-card.focus {
    opacity: 1;
    box-shadow: 0 6px 16px rgba(11, 166, 93, 0.18);
}

.sub-page .pmini .svc2-top {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}

.sub-page .pmini .svc2-top b {
    font-size: 11.5px;
    color: #1f2937;
    font-weight: 800;
}

.sub-page .pmini .svc2-top small {
    font-size: 9px;
    color: #94a3b8;
    font-weight: 600;
}

.sub-page .pmini .svc2-mid {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sub-page .pmini .svc2-ip {
    font-size: 14px;
    font-weight: 800;
    color: #1f2937;
    flex: 1;
}

.sub-page .pmini .svc2-exp {
    font-size: 9px;
    color: #64748b;
    font-weight: 600;
    white-space: nowrap;
}

.sub-page .pmini .svc2-mid i {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    flex-shrink: 0;
}

.sub-page .pmini .svc2-srv {
    font-size: 9.5px;
    color: #64748b;
    font-weight: 600;
    margin-top: 6px;
}

.sub-page .pmini .bd {
    flex: 1;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
}

.sub-page .pmini .bd.dim {
    background: rgba(15, 23, 42, 0.30);
    justify-content: center;
    align-items: center;
}

.sub-page .pmini .bd.blue {
    background: #eef3fb;
}

.sub-page .pmini .nav3 {
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 8px 0;
    background: #dfe3ec;
    color: #9aa6b6;
    font-size: 13px;
    flex-shrink: 0;
}

.sub-page .pmini .tel {
    background: var(--primary);
    color: #fff;
    border-radius: 7px;
    text-align: center;
    font-weight: 800;
    font-size: 13px;
    padding: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.sub-page .pmini .row {
    background: #fff;
    border: 1px solid #dde3ec;
    border-radius: 7px;
    padding: 9px 10px;
    font-size: 11px;
    font-weight: 700;
    color: #475569;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.sub-page .pmini .row .v {
    color: #94a3b8;
    font-weight: 600;
}

.sub-page .pmini .row.sel {
    border-color: var(--primary);
    background: rgba(11, 166, 93, 0.08);
    color: var(--primary);
}

.sub-page .pmini .row.yel {
    background: #fff7cc;
    border-color: #f1d97a;
    color: #7a5d00;
}

.sub-page .pmini .gbtn {
    background: var(--primary);
    color: #fff;
    border-radius: 7px;
    text-align: center;
    font-weight: 800;
    font-size: 12px;
    padding: 11px;
}

.sub-page .pmini .obtn {
    background: #fff;
    border: 1px solid #cbd5e1;
    color: #475569;
    border-radius: 7px;
    text-align: center;
    font-weight: 700;
    font-size: 12px;
    padding: 10px;
}

.sub-page .pmini .home {
    flex: 1;
    background: linear-gradient(160deg, #cdd7ea, #9fb0d2);
    padding: 16px 12px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px 8px;
    align-content: flex-start;
}

.sub-page .pmini .home .ai {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.sub-page .pmini .home .ai .ic {
    width: 84%;
    aspect-ratio: 1;
    border-radius: 13px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 17px;
}

.sub-page .pmini .home .ai .lb {
    font-size: 8.5px;
    color: #fff;
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
    white-space: nowrap;
}

.sub-page .pmini .home .ai.mo .ic {
    background: linear-gradient(135deg, #0BA65D, #34D399);
    box-shadow: 0 0 0 3px #fff, 0 0 0 6px #0BA65D;
    animation: umPulse 1.6s infinite;
    font-weight: 900;
    font-size: 15px;
    letter-spacing: -0.5px;
}

.sub-page .pmini .home .ai.mo .lb {
    font-weight: 800;
}

.sub-page .pmini .dlg {
    background: #fff;
    border-radius: 12px;
    width: 90%;
    padding: 16px 14px;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.28);
}

.sub-page .pmini .dlg .dt {
    font-size: 12px;
    font-weight: 800;
    color: #1f2937;
    margin-bottom: 8px;
    text-align: center;
}

.sub-page .pmini .dlg .dd {
    font-size: 10px;
    color: #64748b;
    line-height: 1.55;
    text-align: center;
    margin-bottom: 14px;
}

.sub-page .pmini .dlg .db {
    display: flex;
    gap: 8px;
}

.sub-page .pmini .dlg .db>div {
    flex: 1;
}

.sub-page .pmini .kbd {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 3px;
    margin-top: auto;
    padding: 7px 4px;
    background: #c7cedb;
    border-radius: 6px;
}

.sub-page .pmini .kbd i {
    aspect-ratio: 1;
    background: #fff;
    border-radius: 3px;
    display: block;
}

.sub-page .pmini .log {
    background: #0f2a1a;
    border-radius: 8px;
    padding: 12px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.sub-page .pmini .log .lr {
    height: 6px;
    border-radius: 3px;
    background: rgba(52, 211, 153, 0.6);
}

.sub-page .pmini .okbig {
    text-align: center;
    color: var(--primary);
    font-size: 46px;
    line-height: 1;
    margin: 8px 0 12px;
}

.sub-page .pmini .focus {
    animation: umPulse 1.5s infinite;
}

/* 연결됨 화면 (신규 레이아웃) */
.sub-page .pmini .bd.green {
    background: linear-gradient(180deg, #eafcf3, #d7f2e3);
    justify-content: center;
    align-items: center;
}

.sub-page .pmini .conn-card {
    width: 100%;
    background: #fff;
    border-radius: 14px;
    padding: 20px 16px;
    text-align: center;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.sub-page .pmini .conn-ip {
    font-size: 19px;
    font-weight: 800;
    color: #1f2937;
    margin-bottom: 12px;
}

.sub-page .pmini .conn-row {
    font-size: 10.5px;
    color: #64748b;
    font-weight: 600;
    margin-bottom: 7px;
}

.sub-page .pmini .conn-row b {
    color: #1f2937;
    font-weight: 800;
    margin-left: 6px;
}

.sub-page .pmini .conn-btn {
    margin-top: 8px;
    background: #ef4444;
    color: #fff;
    border-radius: 18px;
    padding: 9px 0;
    font-weight: 800;
    font-size: 11.5px;
}

/* 좌측 드로어 메뉴 (슬라이드 인) */
.sub-page .pmini .bd.dim2 {
    background: rgba(15, 23, 42, 0.30);
    padding: 0;
}

.sub-page .pmini .drawer {
    width: 82%;
    height: 100%;
    background: #fff;
    box-shadow: 6px 0 22px rgba(0, 0, 0, 0.22);
    padding: 16px 14px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.sub-page .pmini .dw-logo {
    font-size: 22px;
    font-weight: 900;
    color: #1b2456;
    letter-spacing: -0.5px;
    margin-bottom: 10px;
}

.sub-page .pmini .dw-tel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.sub-page .pmini .dw-tel .t1 {
    display: block;
    font-size: 9px;
    color: #94a3b8;
    font-weight: 600;
}

.sub-page .pmini .dw-tel .t2 {
    display: block;
    font-size: 18px;
    font-weight: 900;
    color: #1b2456;
    letter-spacing: -0.5px;
}

.sub-page .pmini .dw-tel i {
    color: #cbd5e1;
    font-size: 18px;
}

.sub-page .pmini .dw-free {
    background: var(--primary);
    color: #fff;
    text-align: center;
    border-radius: 20px;
    padding: 9px;
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 14px;
}

.sub-page .pmini .dw-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sub-page .pmini .dmi {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 8px;
    font-size: 11.5px;
    font-weight: 700;
    color: #475569;
    border-radius: 7px;
}

.sub-page .pmini .dmi i {
    color: #94a3b8;
    font-size: 14px;
    width: 16px;
    text-align: center;
}

.sub-page .pmini .dmi.hot {
    background: #fff6e9;
    border: 1.5px dashed #f0a84d;
    color: #c2710c;
    animation: hotPulse 1.6s infinite;
}

.sub-page .pmini .dmi.hot i {
    color: #e8912b;
}

@keyframes hotPulse {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(240, 168, 77, 0.5);
    }

    70% {
        box-shadow: 0 0 0 6px rgba(240, 168, 77, 0);
    }
}

/* VPN 사용 앱 모드 선택 화면 */
.sub-page .pmini .vrow {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px;
    font-size: 12px;
    font-weight: 700;
    color: #1f2937;
    border-radius: 6px;
}

.sub-page .pmini .vrow .rb {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    border: 2px solid var(--primary);
    flex-shrink: 0;
    position: relative;
}

.sub-page .pmini .vrow .rb.o {
    border-color: #94a3b8;
}

.sub-page .pmini .vrow.sel {
    background: #d6ecfb;
    border: 1.5px dashed #e0566a;
    animation: redPulse 1.6s infinite;
}

.sub-page .pmini .vrow.sel .rb::after {
    content: '';
    position: absolute;
    inset: 2.5px;
    border-radius: 50%;
    background: var(--primary);
}

.sub-page .pmini .vload {
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.sub-page .pmini .vload i {
    font-size: 36px;
    color: var(--primary);
    animation: phSpin 1.2s linear infinite;
}

.sub-page .pmini .vload span {
    font-size: 11px;
    color: #64748b;
    font-weight: 600;
}

@keyframes redPulse {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(224, 86, 106, 0.45);
    }

    70% {
        box-shadow: 0 0 0 6px rgba(224, 86, 106, 0);
    }
}

/* ============================================================
   로그인 / 인증 카드
   ============================================================ */
.sub-page .auth-split {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 60px;
    padding: 20px 0 50px;
    flex-wrap: wrap;
}

.sub-page .auth-intro {
    flex: 1 1 0;
    max-width: 440px;
    min-width: 300px;
}

.sub-page .auth-intro .pill-badge {
    margin-bottom: 18px;
}

.sub-page .auth-intro h2 {
    font-size: 34px;
    font-weight: 900;
    letter-spacing: -1px;
    line-height: 1.32;
    margin: 0 0 24px;
    color: var(--dark);
}

.sub-page .auth-intro h2 .pt {
    color: var(--primary);
}

.sub-page .auth-intro ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sub-page .auth-intro li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-main);
    margin-bottom: 14px;
}

.sub-page .auth-intro li:last-child {
    margin-bottom: 0;
}

.sub-page .auth-intro li i {
    color: var(--primary);
    font-size: 20px;
    flex-shrink: 0;
}

.sub-page .auth-card {
    width: 100%;
    max-width: 440px;
    flex: 0 0 auto;
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.10);
    border: 1px solid rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

/* 진입 애니메이션: 카드 중앙 → 오른쪽 이동, 왼쪽 문구 뒤따라 등장 */
@keyframes authCardMove {
    from {
        transform: translateX(-250px);
    }

    to {
        transform: translateX(0);
    }
}

@keyframes authIntroIn {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (min-width: 992px) {
    .sub-page .auth-split .auth-card {
        animation: authCardMove 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.35s both;
    }

    .sub-page .auth-intro {
        animation: authIntroIn 0.8s ease 1s both;
    }
}

.sub-page .auth-head {
    background: linear-gradient(135deg, #0f172a, #1e293b, #0BA65D);
    background-size: 200% 200%;
    animation: gradientBG 12s ease infinite;
    color: #fff;
    padding: 40px 30px 32px;
    text-align: center;
}

.sub-page .auth-head .al {
    font-size: 34px;
    font-weight: 900;
    letter-spacing: -1px;
}

.sub-page .auth-head .as {
    font-size: 14px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    margin-top: 8px;
}

.sub-page .auth-body {
    padding: 32px 30px 28px;
}

.sub-page .auth-body .fl {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-main);
    margin: 0 0 6px;
}

.sub-page .auth-body .login-input {
    width: 100%;
    margin-bottom: 16px;
}

.sub-page .auth-saveid {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 600;
    margin: 2px 0 16px;
}

.sub-page .auth-saveid input {
    width: 16px;
    height: 16px;
    accent-color: var(--primary);
}

.sub-page .auth-cap {
    margin-bottom: 18px;
}

.sub-page .auth-cap img {
    max-width: 100%;
}

.sub-page .auth-foot {
    text-align: center;
    font-size: 14px;
    color: var(--text-muted);
    font-weight: 600;
    margin-top: 20px;
}

.sub-page .auth-foot a {
    color: var(--text-muted);
}

.sub-page .auth-foot a:hover {
    color: var(--primary);
    text-decoration: underline;
}

.sub-page .auth-foot .sep {
    margin: 0 10px;
    color: #ccc;
}

/* 비밀번호 변경 페이지 */
.sub-page .auth-wrap {
    display: flex;
    justify-content: center;
    padding: 10px 0 55px;
}

.sub-page .auth-wrap .auth-card {
    animation: authCardUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes authCardUp {
    from {
        opacity: 0;
        transform: translateY(28px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.sub-page .pw-notice {
    background: #fff8f5;
    border: 1px solid #ffd9c9;
    border-left: 4px solid #FF6B3D;
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 26px;
}

.sub-page .pw-notice .pwn-title {
    font-size: 15px;
    font-weight: 800;
    color: #d9480f;
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 10px;
}

.sub-page .pw-notice ul {
    margin: 0;
    padding-left: 18px;
}

.sub-page .pw-notice li {
    font-size: 12.5px;
    line-height: 1.65;
    color: #8a4b2f;
}

.sub-page .pw-hint {
    font-size: 12px;
    font-weight: 700;
    color: var(--primary);
    margin: -10px 0 16px;
}

.sub-page .pw-later {
    margin-top: 18px;
}

/* ===== 마이페이지 (myip_myinfo) ===== */
.sub-page .myinfo {
    margin-top: 6px;
}

/* 탭 네비게이션 */
.sub-page .tab {
    margin: 0 0 36px;
}

.sub-page .tab>ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sub-page .tab>ul>li {
    position: relative;
}

.sub-page .tab>ul>li>a {
    display: inline-flex;
    align-items: center;
    padding: 9px 17px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--gray-200);
    font-size: 13.5px;
    font-weight: 700;
    color: var(--text-muted);
    transition: all .2s;
}

.sub-page .tab>ul>li>a:hover {
    border-color: var(--primary);
    color: var(--primary);
    transform: translateY(-1px);
}

.sub-page .tab>ul>li>a.now {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    border-color: transparent;
    color: #fff;
    box-shadow: 0 6px 16px rgba(11, 166, 93, .28);
}

/* 탭 네비게이션 - 모바일 드롭다운 (기본은 숨김, 767px 이하에서만 노출) */
.sub-page .tab .tab-select {
    display: none;
}

@media (max-width: 767px) {
    .sub-page .tab>ul {
        display: none;
    }

    .sub-page .tab .tab-select {
        display: block;
        width: 100%;
        padding: 14px 44px 14px 18px;
        border-radius: 12px;
        border: 1.5px solid var(--primary);
        background-color: #fff;
        color: var(--primary);
        font-size: 14.5px;
        font-weight: 800;
        cursor: pointer;
        -webkit-appearance: none;
        appearance: none;
        box-shadow: 0 4px 14px rgba(11, 166, 93, .12);
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230BA65D' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 16px center;
        background-size: 16px;
    }

    .sub-page .tab .tab-select:focus {
        outline: none;
        box-shadow: 0 0 0 3px rgba(11, 166, 93, .18);
    }

    .sub-page .tab .tab-select option {
        color: var(--text-main);
        font-weight: 600;
    }
}


/* 종료일 맞추기 버튼 */
.sub-page .myinfo .buttonWrap {
    background: #fff;
    border: 1px solid var(--primary);
    color: var(--primary);
    font-weight: 700;
    font-size: 13px;
    padding: 9px 16px;
    border-radius: 9px;
    cursor: pointer;
    transition: all .2s;
    white-space: nowrap;
    line-height: 1.2;
}

.sub-page .myinfo .buttonWrap:hover {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 6px 16px rgba(11, 166, 93, .25);
}

/* 데이터 테이블 카드 */
.sub-page .myinfo .mt10 {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
    margin-top: 14px;
}

.sub-page .myinfo .table03 {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}

.sub-page .myinfo .table03 th,
.sub-page .myinfo .table03 td {
    padding: 13px 16px;
    font-size: 14px;
    border-bottom: 1px solid var(--gray-100);
    vertical-align: middle;
}

.sub-page .myinfo .table03 tr:last-child th,
.sub-page .myinfo .table03 tr:last-child td {
    border-bottom: 0;
}

/* 데이터 테이블 (열 헤더형: .tdcenter) */
.sub-page .myinfo .table03 thead th {
    background: #f7f9fb;
    color: var(--text-muted);
    font-weight: 700;
    font-size: 13px;
    border-bottom: 1px solid var(--gray-200);
}

.sub-page .myinfo .table03.tdcenter thead th {
    text-align: center;
}

.sub-page .myinfo .table03.tdcenter tbody td {
    text-align: center;
    color: var(--text-main);
}

.sub-page .myinfo .table03 tbody tr:hover td {
    background: #f6fdf9;
}

/* 기본정보 테이블 (행 라벨형) */
.sub-page .myinfo .table03:not(.tdcenter) th {
    background: #f7f9fb;
    color: var(--text-main);
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
    padding-left: 18px;
    padding-right: 18px;
}

.sub-page .myinfo .table03:not(.tdcenter) td {
    color: var(--text-main);
}

/* 소형 버튼/뱃지 (정보수정·회원탈퇴·사용중·종료) */
.sub-page .myinfo .myinfo-btn {
    width: auto;
    min-width: 56px;
    height: auto;
    padding: 5px 12px;
    border-radius: 7px;
    font-weight: 700;
    line-height: 1.3;
}

/* 서브아이디 생성 / 아이피 추가 행 (구매 페이지 공통) */
.sub-page .myinfo .subid-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.sub-page .myinfo .subid-inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 6px;
}

.sub-page .myinfo .subid-input {
    width: 140px;
}

.sub-page .myinfo .subid-note {
    display: inline;
    margin: 0 0 0 10px;
    padding: 0;
    list-style: none;
    color: #777;
}

.sub-page .myinfo .subid-note li {
    display: inline;
    margin-right: 10px;
}

.sub-page .myinfo .subid-payhelp {
    flex-shrink: 0;
}

.sub-page .myinfo .ipadd-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}



/* 마이페이지 반응형 (모바일) */
@media (max-width: 767px) {

    /* 서브아이디 생성 / 아이피 추가 행: 세로 스택 */
    .sub-page .myinfo .subid-row,
    .sub-page .myinfo .subid-inner,
    .sub-page .myinfo .ipadd-row {
        flex-direction: column;
        align-items: stretch;
    }

    .sub-page .myinfo .subid-input,
    .sub-page .myinfo .subid-inner .buttonWrap,
    .sub-page .myinfo .subid-payhelp .buttonWrap,
    .sub-page .myinfo .ipadd-row select,
    .sub-page .myinfo .ipadd-row .buttonWrap {
        width: 100% !important;
    }

    .sub-page .myinfo .subid-note {
        display: block;
        margin: 6px 0 0;
    }

    .sub-page .myinfo .subid-note li {
        display: block;
        margin: 0 0 4px;
    }

    /* 아이피 결제목록/상품선택 표: 래퍼 안에서만 가로 스크롤 (표 자체에 걸면 페이지 전체가 밀림) */
    .sub-page .myinfo .tbl-scroll {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* 라벨/값이 한 줄에 2쌍씩 들어간 표(포인트·교체권 등): 좁은 화면에서 세로로 스택 */
    .sub-page .myinfo .pair-table,
    .sub-page .myinfo .pair-table tbody,
    .sub-page .myinfo .pair-table tr {
        display: block;
        width: 100%;
    }

    .sub-page .myinfo .pair-table th,
    .sub-page .myinfo .pair-table td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
        white-space: normal;
    }

    .sub-page .myinfo .pair-table td.bggray {
        border-bottom: 0;
        padding-bottom: 4px;
    }

    .sub-page .myinfo .pair-table td:not(.bggray) {
        padding-top: 4px;
    }

    /* "일괄 기간선택" 줄: 데스크탑에서 표와 겹치도록 준 음수 마진이 모바일에서는 표와 너무 붙어 보여서 여백 확보 */
    .sub-page .myinfo .all-days-row {
        margin-bottom: 14px !important;
        flex-wrap: wrap;
    }

    /* 데이터 내역 표: 가로 스크롤 (셀 세로 줄바꿈 방지) */
    .sub-page .myinfo .mt10 {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .sub-page .myinfo .table03.tdcenter {
        min-width: 600px;
    }

    .sub-page .myinfo .table03.tdcenter th,
    .sub-page .myinfo .table03.tdcenter td {
        white-space: nowrap;
    }

    /* 기본정보 표(라벨/값): 세로 스택 */
    .sub-page .myinfo .table03:not(.tdcenter),
    .sub-page .myinfo .table03:not(.tdcenter) tbody,
    .sub-page .myinfo .table03:not(.tdcenter) tr {
        display: block;
        width: 100%;
    }

    .sub-page .myinfo .table03:not(.tdcenter) th,
    .sub-page .myinfo .table03:not(.tdcenter) td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
        white-space: normal;
    }

    .sub-page .myinfo .table03:not(.tdcenter) th {
        border-bottom: 0;
        padding-bottom: 4px;
    }

    .sub-page .myinfo .table03:not(.tdcenter) td {
        padding-top: 4px;
    }

    /* "종료일 맞추기" 헤더 줄: 세로 정렬 */
    .sub-page .myinfo div.m-t-40 {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 12px;
    }

    .sub-page .myinfo .buttonWrap {
        width: 100%;
    }
}

/* ===== 무료테스트 (freetest) ===== */
.sub-page .ft-card {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .05);
    display: flex;
    flex-direction: column;
}

.sub-page .ft-head {
    padding: 22px 24px;
    color: #fff;
}

.sub-page .ft-head.vpn {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
}

.sub-page .ft-head.proxy {
    background: linear-gradient(135deg, #2563EB, #3B82F6);
}

.sub-page .ft-head.global {
    background: linear-gradient(135deg, #0E9488, #14B8A6);
}

.sub-page .ft-title {
    font-size: 21px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

.sub-page .ft-title i {
    font-size: 20px;
    opacity: .92;
}

.sub-page .ft-win {
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    background: rgba(255, 255, 255, .22);
    padding: 4px 11px;
    border-radius: 999px;
}

.sub-page .ft-sub {
    font-size: 13px;
    font-weight: 600;
    opacity: .92;
    margin-top: 8px;
}

.sub-page .ft-body {
    padding: 22px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1 1 auto;
}

.sub-page .ft-notes {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sub-page .ft-notes li {
    position: relative;
    padding-left: 16px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-muted);
    font-weight: 600;
}

.sub-page .ft-notes li::before {
    content: "※";
    position: absolute;
    left: 0;
    color: var(--primary);
}

.sub-page .ft-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    text-align: left;
    color: #fff;
    border: 0;
    border-radius: 11px;
    padding: 15px 18px;
    font-size: 15.5px;
    font-weight: 800;
    cursor: pointer;
    transition: all .2s;
}

.sub-page .ft-btn .ft-btn-txt {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 8px;
}

.sub-page .ft-btn em {
    font-style: normal;
    font-size: 12.5px;
    font-weight: 700;
    background: rgba(255, 255, 255, .22);
    padding: 2px 9px;
    border-radius: 999px;
    white-space: nowrap;
}

.sub-page .ft-btn>i {
    font-size: 18px;
    flex: 0 0 auto;
}

.sub-page .ft-btn:hover {
    transform: translateY(-2px);
}

/* 카드별 버튼 색상 */
.sub-page .c-vpn .ft-btn {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    box-shadow: 0 6px 16px rgba(11, 166, 93, .22);
}

.sub-page .c-vpn .ft-btn:hover {
    box-shadow: 0 12px 24px rgba(11, 166, 93, .32);
}

.sub-page .c-proxy .ft-btn {
    background: linear-gradient(135deg, #2563EB, #3B82F6);
    box-shadow: 0 6px 16px rgba(37, 99, 235, .22);
}

.sub-page .c-proxy .ft-btn:hover {
    box-shadow: 0 12px 24px rgba(37, 99, 235, .32);
}

.sub-page .c-global .ft-btn {
    background: linear-gradient(135deg, #0E9488, #14B8A6);
    box-shadow: 0 6px 16px rgba(20, 184, 166, .22);
}

.sub-page .c-global .ft-btn:hover {
    box-shadow: 0 12px 24px rgba(20, 184, 166, .32);
}

/* 유동 IP 제공 안내 박스 */
.sub-page .ft-info {
    display: flex;
    align-items: center;
    gap: 4px;
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 16px 20px;
}

.sub-page .ft-info-left {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.sub-page .ft-info-left p {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-main);
}

.sub-page .ft-bracket {
    width: 9px;
    height: 64px;
    border-top: 3px solid var(--primary-light);
    border-bottom: 3px solid var(--primary-light);
    border-right: 3px solid var(--primary-light);
    border-radius: 0 6px 6px 0;
    margin: 0 16px;
    flex: 0 0 auto;
}

.sub-page .ft-info-right {
    font-size: 13.5px;
    font-weight: 800;
    color: var(--primary);
}

/* 무료테스트 전 안내 */
.sub-page .ft-caution {
    display: flex;
    align-items: center;
    gap: 44px;
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    padding: 44px 48px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .05);
}

.sub-page .ftc-text {
    flex: 1 1 auto;
}

.sub-page .ftc-text p {
    font-size: 19px;
    line-height: 1.85;
    color: var(--text-main);
    margin: 0 0 16px;
}

.sub-page .ftc-text p.muted {
    font-size: 17px;
    color: var(--text-muted);
}

.sub-page .ftc-text strong {
    color: var(--primary);
    font-weight: 800;
}

.sub-page .ftc-steps {
    list-style: none;
    margin: 26px 0 0;
    padding: 0;
}

.sub-page .ftc-steps li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 20px;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 14px;
}

.sub-page .ftc-steps em {
    flex: 0 0 auto;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 30px;
    height: 30px;
    background: var(--text-main);
    color: #fff;
    border-radius: 50%;
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
}

.sub-page .ftc-steps b {
    color: var(--primary);
    font-weight: 800;
}

.sub-page .ftc-mock {
    flex: 0 0 auto;
    width: 400px;
}

.sub-page .ftc-mock .app-mock {
    margin: 0;
    max-width: 400px;
}

.sub-page .ftc-mock .app-tools {
    justify-content: center;
}

.sub-page .ftc-mock .app-tools span {
    flex: 0 1 auto;
    white-space: nowrap;
    font-size: 9.5px;
    padding: 6px 7px;
}

/* 하단 강조 배너 */
.sub-page .ft-banner {
    margin-top: 24px;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    padding: 22px 20px;
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(11, 166, 93, .25);
}

.sub-page .ft-banner i {
    margin-right: 6px;
}

@media (max-width: 991px) {
    .sub-page .ft-caution {
        flex-direction: column;
        align-items: stretch;
        gap: 26px;
        padding: 26px 22px;
    }

    .sub-page .ftc-mock {
        width: 100%;
        max-width: 360px;
        margin: 0 auto;
    }
}

@media (max-width: 575px) {
    .sub-page .ft-banner {
        font-size: 15px;
    }

    .sub-page .ft-title {
        font-size: 19px;
    }

    .sub-page .ft-btn {
        font-size: 14px;
        padding: 13px 15px;
    }
}

/* ===== 결제내역 (myip_payment) ===== */
.sub-page .myinfo .commentarea {
    background: #f7f9fb;
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 18px 22px;
}

.sub-page .myinfo .commentarea ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sub-page .myinfo .commentarea li {
    font-size: 13.5px;
    line-height: 1.75;
    color: var(--text-muted);
    font-weight: 600;
}

.sub-page .myinfo .commentarea.mb20 {
    margin-bottom: 22px;
}

.sub-page .myinfo .commentarea.mt20 {
    margin-top: 22px;
}

.sub-page .pay-table-wrap {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
}

.sub-page .myinfo .tb2 {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}

.sub-page .myinfo .tb2 th,
.sub-page .myinfo .tb2 td {
    padding: 13px 14px;
    font-size: 14px;
    border-bottom: 1px solid var(--gray-100);
    vertical-align: middle;
}

.sub-page .myinfo .tb2 thead th {
    background: #f7f9fb;
    color: var(--text-muted);
    font-weight: 700;
    font-size: 13px;
    border-bottom: 1px solid var(--gray-200);
}

.sub-page .myinfo .tb2.tdcenter thead th,
.sub-page .myinfo .tb2.tdcenter tbody td,
.sub-page .myinfo .tb2.tdcenter tfoot td {
    text-align: center;
}

.sub-page .myinfo .tb2 tbody td {
    color: var(--text-main);
}

.sub-page .myinfo .tb2 tbody tr:last-child td {
    border-bottom: 0;
}

.sub-page .myinfo .tb2 tbody tr:hover td {
    background: #f6fdf9;
}

.sub-page .myinfo .tb2 button {
    background: #fff;
    border: 1px solid var(--primary);
    color: var(--primary);
    font-weight: 700;
    font-size: 12.5px;
    padding: 6px 13px;
    border-radius: 7px;
    cursor: pointer;
    transition: all .2s;
    white-space: nowrap;
}

.sub-page .myinfo .tb2 button:hover {
    background: var(--primary);
    color: #fff;
}

.sub-page .myinfo .tb2 td a {
    display: inline-block;
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    color: var(--text-main);
    font-weight: 700;
    font-size: 12.5px;
    padding: 6px 13px;
    border-radius: 7px;
}

.sub-page .myinfo .tb2 td a:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* ============================================================
   결제(buy) 페이지 전용 — 결제 요약/주의사항/버튼/섹션헤더
   (myip_buy·momo·premium·dynamic·coupon·proxy_* 공통 / 레거시 CSS 대체)
   ============================================================ */

/* 표 외곽 카드화 */
.sub-page .myinfo .tb2 {
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
}

.sub-page .myinfo .tb2+.tb2,
.sub-page .myinfo .tb2.mt40 {
    margin-top: 26px;
}

/* 섹션 헤더 셀 (thnumber: "새로운 고정IP 추가" / "결제수단 선택" / "결제 항목" 등) — tdcenter 표에서도 항상 좌측 */
.sub-page .myinfo .tb2 th.thnumber,
.sub-page .myinfo .tb2.tdcenter thead th.thnumber {
    background: #f7f9fb;
    text-align: left !important;
    padding: 16px 18px;
}

.sub-page .myinfo .tb2 th.thnumber strong {
    position: relative;
    padding-left: 14px;
    font-size: 16px;
    font-weight: 800;
    color: var(--text-main);
}

.sub-page .myinfo .tb2 th.thnumber strong::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    bottom: 2px;
    width: 5px;
    border-radius: 3px;
    background: linear-gradient(180deg, var(--primary), var(--primary-light));
}

/* 라벨 셀 */
.sub-page .myinfo .tb2 td.bggray {
    background: #f7f9fb;
    font-weight: 700;
    color: var(--text-main);
    white-space: nowrap;
}

/* 강조/가격 셀 */
.sub-page .myinfo .tb2 td.strong {
    font-weight: 800;
    color: var(--text-main);
}

.sub-page .myinfo .last_price_print {
    color: var(--primary);
    font-weight: 800;
}

/* 폼 요소 톤 통일 */
.sub-page .myinfo select,
.sub-page .myinfo input[type="text"],
.sub-page .myinfo input[type="number"],
.sub-page .myinfo input[type="email"] {
    border: 1px solid var(--gray-200);
    border-radius: 9px;
    padding: 8px 12px;
    font-size: 14px;
    background: #fff;
    color: var(--text-main);
    transition: all .2s;
}

.sub-page .myinfo select:focus,
.sub-page .myinfo input[type="text"]:focus,
.sub-page .myinfo input[type="number"]:focus,
.sub-page .myinfo input[type="email"]:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(11, 166, 93, .12);
    outline: none;
}

/* 결제 요약 박스 (buy_02 교체권 / buy_03 일반 — 공용) */
.sub-page .myinfo .buy_02,
.sub-page .myinfo .buy_03 {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
    padding: 26px 28px;
    margin-top: 26px;
}

.sub-page .myinfo .buy_02 .txt01,
.sub-page .myinfo .buy_03 .txt01 {
    font-size: 15px;
    font-weight: 800;
    color: var(--text-main);
    margin-bottom: 6px;
}

.sub-page .myinfo .buy_02 .txt02,
.sub-page .myinfo .buy_03 .txt02 {
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
    color: var(--text-muted);
    font-weight: 600;
    font-size: 14px;
}

.sub-page .myinfo .buy_02 .txt02 li,
.sub-page .myinfo .buy_03 .txt02 li {
    line-height: 1.7;
}

.sub-page .myinfo .buy_02 .txt03 {
    color: var(--text-muted);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.7;
    margin-bottom: 6px;
}

.sub-page .myinfo .buy_03 .txt04 {
    color: var(--text-muted);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.7;
}

/* 일반(buy_03) 총액 = txt05 / 교체권(buy_02) 총액 = txt04 : 상단 구분선 + 강조 */
.sub-page .myinfo .buy_02 .txt04,
.sub-page .myinfo .buy_03 .txt05 {
    margin-top: 16px;
    padding-top: 18px;
    border-top: 1px dashed var(--gray-200);
    font-size: 17px;
    font-weight: 800;
    color: var(--text-main);
}

.sub-page .myinfo .buy_02 .txt04 strong {
    margin-right: 10px;
}

.sub-page .myinfo .buy_02 .txt04 #good_last_total,
.sub-page .myinfo .buy_03 .txt05 #good_last_total {
    color: var(--primary);
    font-weight: 900;
}

/* 교체권 포인트 잔여 표기 */
.sub-page .myinfo .buy_02 .txt05 {
    margin-top: 8px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
}

/* 프록시 교체권 요약 (th.buy_01 > dl/dt/dd) */
.sub-page .myinfo .tb2 th.buy_01 {
    background: #fff;
    text-align: left;
    padding: 22px 24px;
}

.sub-page .myinfo .buy_01 dl {
    margin: 0;
}

.sub-page .myinfo .buy_01 dt {
    font-size: 15px;
    font-weight: 800;
    color: var(--text-main);
    margin-bottom: 10px;
}

.sub-page .myinfo .buy_01 dd {
    margin: 0;
    font-size: 14px;
    color: var(--text-muted);
    font-weight: 600;
    line-height: 1.8;
}

.sub-page .myinfo .buy_01 dd.total {
    font-size: 17px;
    font-weight: 900;
    color: var(--primary);
}

/* ============================================================
   회원가입 폼 (myip_register_form) — 겉 디자인 리뉴얼
   ============================================================ */
.sub-page .myinfo .form {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
    padding: 34px 36px;
}

.sub-page .myinfo .form>.title01 {
    margin: 0 0 20px;
    font-size: 18px;
}

.sub-page .myinfo .caution {
    background: #f7f9fb;
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 18px 22px;
    margin: 0 0 24px;
    list-style: none;
}

.sub-page .myinfo .caution li {
    position: relative;
    padding-left: 15px;
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 600;
    line-height: 1.9;
}

.sub-page .myinfo .caution li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 11px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--primary);
}

/* 입력 표 (table02) */
.sub-page .myinfo .table02 {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    overflow: hidden;
}

.sub-page .myinfo .table02 th,
.sub-page .myinfo .table02 td {
    padding: 14px 16px;
    font-size: 14px;
    border-bottom: 1px solid var(--gray-100);
    vertical-align: middle;
    text-align: left;
}

.sub-page .myinfo .table02 th {
    background: #f7f9fb;
    font-weight: 700;
    color: var(--text-main);
    white-space: nowrap;
    width: 160px;
}

.sub-page .myinfo .table02 tr:last-child th,
.sub-page .myinfo .table02 tr:last-child td {
    border-bottom: 0;
}

/* 입력 필드 (.ed) + select */
.sub-page .myinfo .ed,
.sub-page .myinfo .form select,
.sub-page .myinfo .form input[type="text"],
.sub-page .myinfo .form input[type="password"] {
    border: 1px solid var(--gray-200);
    border-radius: 9px;
    padding: 9px 12px;
    font-size: 14px;
    background: #fff;
    color: var(--text-main);
    transition: all .2s;
    max-width: 100%;
}

.sub-page .myinfo .ed:focus,
.sub-page .myinfo .form select:focus,
.sub-page .myinfo .form input[type="text"]:focus,
.sub-page .myinfo .form input[type="password"]:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(11, 166, 93, .12);
    outline: none;
}

/* 가입/수정/취소 버튼 */
.sub-page .myinfo .form .btns {
    justify-content: center;
    margin-top: 30px;
}

.sub-page .myinfo .form .btns button {
    padding: 15px 40px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 16px;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all .3s;
}

.sub-page .myinfo .form .btns .submit,
.sub-page .myinfo .form .btns .modify {
    background: linear-gradient(135deg, var(--primary), var(--primary-light)) !important;
    color: #fff;
    box-shadow: 0 8px 20px rgba(11, 166, 93, .3);
    border: none !important;
}

.sub-page .myinfo .form .btns .submit:hover,
.sub-page .myinfo .form .btns .modify:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(11, 166, 93, .4);
}

.sub-page .myinfo .form .btns .cancel {
    background: #fff;
    color: var(--text-main);
    border-color: var(--gray-200);
}

.sub-page .myinfo .form .btns .cancel:hover {
    border-color: var(--text-muted);
}

/* 주의사항 박스 (confirm_box) */
.sub-page .myinfo #confirm_box {
    background: #fafbfc;
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    padding: 24px 28px;
    margin-top: 26px;
}

.sub-page .myinfo #confirm_box .body>ul {
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
}

.sub-page .myinfo #confirm_box .body>ul>li {
    position: relative;
    padding-left: 15px;
    font-size: 13.5px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.95;
}

.sub-page .myinfo #confirm_box .body>ul>li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 11px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--primary);
}

/* 환불정책 박스 (refund) */
.sub-page .myinfo .refund {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-left: 4px solid #E63946;
    border-radius: 12px;
    padding: 18px 24px;
    margin: 16px 0;
}

.sub-page .myinfo .refund h5 {
    font-size: 15px;
    font-weight: 800;
    margin: 0 0 10px;
    color: var(--text-main);
}

.sub-page .myinfo .refund ul {
    margin: 0;
    padding-left: 20px;
}

.sub-page .myinfo .refund li {
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.85;
    font-weight: 500;
}

/* 동의 체크 */
.sub-page .myinfo .agree {
    margin: 14px 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-main);
}

.sub-page .myinfo .agree label {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    cursor: pointer;
    line-height: 1.5;
}

/* 결제하기 / 취소하기 버튼 */
.sub-page .myinfo .btns {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.sub-page .myinfo .btns .ml10 {
    margin-left: 0;
}

.sub-page .myinfo .btn_payment,
.sub-page .myinfo .btn_cancel {
    padding: 16px 36px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 16px;
    cursor: pointer;
    transition: all .3s;
    border: 1px solid transparent;
}

.sub-page .myinfo .btn_payment {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff;
    box-shadow: 0 8px 20px rgba(11, 166, 93, .3);
}

.sub-page .myinfo .btn_payment:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(11, 166, 93, .4);
}

.sub-page .myinfo .btn_cancel {
    background: #fff;
    color: var(--text-main);
    border-color: var(--gray-200);
}

.sub-page .myinfo .btn_cancel:hover {
    border-color: var(--text-muted);
}

/* myip_buy 인라인 결제버튼 톤 맞춤 */
.sub-page .myinfo #payment-button {
    background: linear-gradient(135deg, var(--primary), var(--primary-light)) !important;
    border-radius: 12px !important;
}

/* 상단 안내문 (help) — 안내 리스트 박스 */
.sub-page .myinfo .help {
    background: #f7f9fb;
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 18px 22px;
    margin-bottom: 26px;
}

.sub-page .myinfo .help ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sub-page .myinfo .help li {
    position: relative;
    padding-left: 15px;
    font-size: 13.5px;
    line-height: 1.9;
    color: var(--text-muted);
    font-weight: 600;
}

.sub-page .myinfo .help li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--primary);
}

.sub-page .myinfo .help a {
    color: var(--primary);
    font-weight: 700;
}

/* 서브아이디 생성 입력칸 — 인라인(width100·height16) 보정 + 버튼과 간격 */
.sub-page .myinfo #add_sub_id {
    width: 170px !important;
    height: 40px !important;
    padding: 0 13px !important;
    margin-right: 10px;
    border: 1px solid var(--gray-200) !important;
    border-radius: 9px;
    font-size: 14px;
    background: #fff;
}

.sub-page .myinfo #add_sub_id:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(11, 166, 93, .12);
    outline: none;
}

.sub-page .myinfo #add_sub_id+.buttonWrap {
    margin-left: 0;
}

/* 상품 선택표(product_table) — 상품정보 1줄 표시 (글자단위 줄바꿈 방지) */
.sub-page .myinfo #product_table tbody td:nth-child(2),
.sub-page .myinfo #product_table thead td:nth-child(2) {
    white-space: nowrap;
}

/* 결제기간·종료일 컬럼은 폭 축소해 상품정보에 공간 양보 */
.sub-page .myinfo #product_table td:nth-child(3),
.sub-page .myinfo #product_table td:nth-child(4) {
    width: 150px;
    white-space: nowrap;
}

/* ===== 게시판(board) 리뉴얼 ===== */
.board-renew-wrap {
    padding-top: 34px;
    padding-bottom: 0;
}

.board-renew-wrap #bo_list {
    width: 100% !important;
}

/* 상단 버튼줄 */
.board-renew-wrap .bo_fx {
    margin-bottom: 14px;
}

.board-renew-wrap .bo_fx::after {
    content: "";
    display: block;
    clear: both;
}

/* 하단 버튼줄(폼 내부)은 표와 간격 확보 */
.board-renew-wrap #fboardlist .bo_fx {
    margin-top: 20px;
    margin-bottom: 0;
}

/* 카테고리 탭 (FAQ 등 분류 사용 게시판) */
.board-renew-wrap #bo_cate {
    margin-bottom: 18px;
}

.board-renew-wrap #bo_cate ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
}

.board-renew-wrap #bo_cate ul::after {
    display: none;
}

.board-renew-wrap #bo_cate li {
    float: none;
    margin: 0;
    list-style: none;
}

.board-renew-wrap #bo_cate a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 60px;
    margin: 0;
    padding: 9px 18px;
    border: 1px solid var(--gray-200);
    border-radius: 999px;
    background: #fff;
    color: var(--text-muted);
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.2;
    transition: all .2s;
}

.board-renew-wrap #bo_cate a:hover {
    border-color: var(--primary);
    color: var(--primary);
    transform: translateY(-1px);
}

.board-renew-wrap #bo_cate #bo_cate_on {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    border-color: transparent;
    color: #fff;
    box-shadow: 0 6px 16px rgba(11, 166, 93, .28);
}

/* 목록 테이블 카드 */
.board-renew-wrap #bo_list .tbl_head01 {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
}

.board-renew-wrap #bo_list .tbl_head01 table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}

.board-renew-wrap #bo_list .tbl_head01 caption {
    display: none;
}

.board-renew-wrap #bo_list .tbl_head01 thead th {
    background: #f7f9fb;
    border-top: 0;
    border-bottom: 1px solid var(--gray-200);
    padding: 15px 10px;
    font-size: 13.5px;
    font-weight: 800;
    color: var(--text-muted);
}

.board-renew-wrap #bo_list .tbl_head01 tbody td {
    padding: 14px 10px;
    font-size: 14px;
    color: var(--text-main);
    border-bottom: 1px solid var(--gray-100);
    text-align: center;
    vertical-align: middle;
}

.board-renew-wrap #bo_list .tbl_head01 tbody tr:last-child td {
    border-bottom: 0;
}

.board-renew-wrap #bo_list .tbl_head01 tbody tr:hover td {
    background: #f6fdf9;
}

.board-renew-wrap #bo_list .tbl_head01 .td_subject {
    text-align: left;
}

.board-renew-wrap #bo_list .tbl_head01 .td_subject a {
    color: var(--text-main);
    font-weight: 600;
}

.board-renew-wrap #bo_list .tbl_head01 .td_subject a:hover {
    color: var(--primary);
}

.board-renew-wrap #bo_list .tbl_head01 .td_name {
    color: var(--text-muted);
}

.board-renew-wrap #bo_list .tbl_head01 .td_date {
    color: var(--text-muted);
}

.board-renew-wrap #bo_list .tbl_head01 a {
    color: inherit;
}

/* 공지 / 열람중 / 번호 */
.board-renew-wrap #bo_list .bo_notice td {
    background: #eef9f2;
}

.board-renew-wrap #bo_list .bo_notice td:first-child {
    box-shadow: inset 3px 0 0 var(--primary);
}

.board-renew-wrap #bo_list .bo_notice td a {
    font-weight: 800;
}

.board-renew-wrap #bo_list .td_num strong {
    display: inline-block;
    background: var(--primary);
    color: #fff;
    font-size: 11.5px;
    font-weight: 800;
    padding: 3px 10px;
    border-radius: 999px;
    white-space: nowrap;
}

.board-renew-wrap #bo_list td.td_num {
    width: 64px;
    white-space: nowrap;
}

.board-renew-wrap .bo_current {
    color: var(--primary);
    font-weight: 800;
}

.board-renew-wrap .empty_table {
    padding: 56px 0 !important;
    color: var(--text-muted);
    border-bottom: 0;
}

.board-renew-wrap .td_chk {
    width: 40px;
}

.board-renew-wrap .td_date {
    width: 78px;
}

/* 하단 버튼 (선택삭제/복사/이동, 목록/글쓰기) */
.board-renew-wrap .btn_bo_adm {
    display: flex;
    gap: 8px;
    float: left;
}

.board-renew-wrap .btn_bo_adm li {
    float: none;
    margin: 0;
}

.board-renew-wrap .btn_bo_adm input {
    padding: 10px 18px;
    border: 0;
    border-radius: 9px;
    background: #ef4444;
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
    transition: opacity .2s;
}

.board-renew-wrap .btn_bo_adm input:hover {
    opacity: .88;
}

.board-renew-wrap .btn_bo_adm li:nth-child(2) input {
    background: #64748b;
}

.board-renew-wrap .btn_bo_adm li:nth-child(3) input {
    background: var(--primary);
}

.board-renew-wrap .btn_bo_user {
    display: flex;
    gap: 8px;
    float: right;
}

.board-renew-wrap .btn_bo_user li {
    float: none;
    margin: 0;
}

.board-renew-wrap .btn_bo_user a {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 9px;
    font-weight: 700;
    font-size: 13px;
}

.board-renew-wrap #bo_list a.btn_b01 {
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    color: var(--text-main);
}

.board-renew-wrap #bo_list a.btn_b02 {
    background: var(--primary);
    color: #fff;
}

.board-renew-wrap #bo_list a.btn_admin {
    background: #1f2937;
    color: #fff;
}

/* 페이지네이션 */
.board-renew-wrap .pg_wrap {
    clear: both;
    margin: 30px 0;
    text-align: center;
}

.board-renew-wrap .pg_page,
.board-renew-wrap .pg_current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 11px;
    border-radius: 10px;
    font-weight: 700;
    line-height: 1;
    margin: 0 3px;
}

.board-renew-wrap .pg_page {
    background: #fff;
    border: 1px solid var(--gray-200);
    color: var(--text-main);
}

.board-renew-wrap .pg_page:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.board-renew-wrap .pg_current {
    background: var(--primary);
    border: 1px solid var(--primary);
    color: #fff;
}

/* 검색 */
.board-renew-wrap #bo_sch {
    margin-top: 28px;
    text-align: center;
}

.board-renew-wrap #bo_sch form {
    display: inline-flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}

.board-renew-wrap #bo_sch select {
    height: 44px;
    border: 1px solid var(--gray-200);
    border-radius: 9px;
    padding: 0 12px;
    font-size: 14px;
    background: #fff;
}

.board-renew-wrap #bo_sch .frm_input {
    width: 240px !important;
    height: 44px;
    border: 1px solid var(--gray-200) !important;
    border-radius: 9px;
    padding: 0 14px;
    font-size: 14px;
    background: #fff !important;
}

.board-renew-wrap #bo_sch .btn_submit {
    height: 44px;
    padding: 0 24px;
    border: 0;
    border-radius: 9px;
    background: var(--primary);
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
}

/* 게시판 반응형 (모바일: 표 가로 스크롤) */
@media (max-width: 767px) {
    .board-renew-wrap #bo_list .tbl_head01 {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .board-renew-wrap #bo_list .tbl_head01 table {
        min-width: 560px;
    }

    .board-renew-wrap .btn_bo_adm,
    .board-renew-wrap .btn_bo_user {
        float: none;
        flex-wrap: wrap;
    }

    .board-renew-wrap .bo_fx {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        justify-content: space-between;
    }

    .board-renew-wrap #bo_sch .frm_input {
        width: 60% !important;
    }

    .renew-footer {
        padding: 48px 0;
    }

    .renew-footer .family-site {
        width: 100%;
    }
}

/* 캡차(자동등록방지) 리뉴얼 스타일 */
.sub-page #captcha {
    border: 0;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.sub-page #captcha legend {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sub-page #captcha #captcha_img {
    height: 46px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    vertical-align: middle;
    background: #fff;
}

.sub-page #captcha #captcha_mp3,
.sub-page #captcha #captcha_reload {
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-main);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.2s;
}

.sub-page #captcha #captcha_mp3:hover,
.sub-page #captcha #captcha_reload:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.sub-page #captcha #captcha_mp3 span,
.sub-page #captcha #captcha_reload span {
    display: none;
}

.sub-page #captcha #captcha_key {
    flex: 1 1 100%;
    margin: 6px 0 0;
    border-radius: 10px;
    border: 1px solid var(--gray-200);
    font-size: 14px;
    padding: 13px 16px;
    background: #f8fafc;
    transition: all 0.3s;
}

.sub-page #captcha #captcha_key:focus {
    background: #fff;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(11, 166, 93, 0.1);
    outline: none;
}

.sub-page #captcha #captcha_info {
    flex: 1 1 100%;
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 500;
}

/* 회원가입 약관동의 */
.sub-page .reg-narrow {
    width: 100%;
}

.sub-page .reg-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 44px;
}

.sub-page .reg-steps .rs {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #94a3b8;
}

.sub-page .reg-steps .rs .n {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #94a3b8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
}

.sub-page .reg-steps .rs.on {
    color: var(--primary);
}

.sub-page .reg-steps .rs.on .n {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 6px 14px rgba(11, 166, 93, 0.3);
}

.sub-page .reg-steps .rs-line {
    width: 42px;
    height: 2px;
    background: #e2e8f0;
}

.sub-page .terms-box {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 20px 22px;
    max-height: 240px;
    overflow-y: auto;
    font-size: 13.5px;
    color: var(--text-muted);
    line-height: 1.7;
    margin-bottom: 14px;
}

.sub-page .terms-box * {
    max-width: 100%;
}

.sub-page .agree-check {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 15px;
    font-weight: 600;
    color: var(--text-main);
    margin-bottom: 36px;
    cursor: pointer;
}

.sub-page .agree-check input {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
    flex-shrink: 0;
}

.sub-page .reg-btns {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-top: 6px;
}

.sub-page .reg-btns .btn-cta {
    min-width: 160px;
}

/* 원격지원 iframe 카드 */
.sub-page .remote-frame {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    padding: 12px;
    overflow: hidden;
    margin-bottom: 10px;
}

.sub-page .remote-frame iframe {
    display: block;
    width: 100%;
    height: 725px;
    border: 0;
    border-radius: 12px;
    background: #f8fafc;
}

@media (max-width: 767.98px) {
    .sub-page .remote-frame iframe {
        height: 620px;
    }
}

.sub-page .phone-lg .pl-screens .pmini.active .drawer {
    animation: drawerIn 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes drawerIn {
    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(0);
    }
}

/* 안드로이드: 큰 폰 애니메이션 데모 */
.sub-page .demo-wrap {
    display: flex;
    gap: 48px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.sub-page .phone-lg {
    width: 300px;
    flex: 0 0 auto;
    background: #0f172a;
    border-radius: 44px;
    padding: 11px;
    box-shadow: 0 26px 60px rgba(0, 0, 0, 0.26);
    position: relative;
}

.sub-page .phone-lg .pl-screens {
    position: relative;
    height: 564px;
    border-radius: 33px;
    overflow: hidden;
    background: #eef1f6;
}

.sub-page .phone-lg .pl-screens .pmini {
    position: absolute;
    inset: 0;
    max-width: none;
    width: auto;
    margin: 0;
    padding: 0;
    background: none;
    box-shadow: none;
    border-radius: 0;
    opacity: 0;
    transition: opacity 0.55s ease;
    pointer-events: none;
}

.sub-page .phone-lg .pl-screens .pmini.active {
    opacity: 1;
}

.sub-page .phone-lg .pl-screens .pmini .scr {
    height: 100%;
    border-radius: 0;
    box-shadow: none;
}

.sub-page .demo-side {
    flex: 1;
    min-width: 280px;
    max-width: 1000px;
}

.sub-page .demo-steps {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: ds;
}

.sub-page .demo-steps li {
    position: relative;
    padding: 12px 0 12px 46px;
    font-size: 15px;
    font-weight: 600;
    color: #9aa6b6;
    counter-increment: ds;
    transition: color 0.3s;
    border-bottom: 1px dashed rgba(0, 0, 0, 0.07);
}

.sub-page .demo-steps li:last-child {
    border-bottom: 0;
}

.sub-page .demo-steps li::before {
    content: counter(ds);
    position: absolute;
    left: 0;
    top: 9px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #94a3b8;
    font-weight: 800;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.sub-page .demo-steps li.on {
    color: var(--text-main);
}

.sub-page .demo-steps li.on::before {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 6px 14px rgba(11, 166, 93, 0.35);
    transform: scale(1.08);
}

@media (max-width: 575.98px) {
    .sub-page .phone-lg {
        width: 262px;
    }

    .sub-page .phone-lg .pl-screens {
        height: 492px;
    }
}

/* ============================================================
   사용방법: MomoIP 위젯 앱(신규 UI) 애니메이션 데모 - 유동/고정 IP
   ============================================================ */
.sub-page .wapp-lg {
    width: 320px;
    flex: 0 0 auto;
    background: #fff;
    border-radius: 16px;
    padding: 8px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 26px 60px rgba(0, 0, 0, 0.22);
    position: relative;
}

.sub-page .wapp-screens {
    position: relative;
    height: 490px;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}

.sub-page .wapp-screens .wscr {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    background: #fff;
    opacity: 0;
    transition: opacity 0.55s ease;
    pointer-events: none;
}

.sub-page .wapp-screens .wscr.active {
    opacity: 1;
}

.sub-page .wapp-tb {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 10px;
    border-bottom: 1px solid #eef1f6;
    font-size: 10.5px;
    color: #64748b;
    font-weight: 700;
    flex: 0 0 auto;
}

.sub-page .wapp-tb>i {
    font-size: 14px;
    color: #64748b;
}

.sub-page .wapp-tb .w-home {
    color: var(--primary);
    margin-left: auto;
}

.sub-page .wapp-tb .w-tb-select {
    border: 1px solid #d8dee9;
    border-radius: 5px;
    padding: 3px 6px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 9px;
    color: #475569;
}

.sub-page .wapp-tb .w-tb-multi {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 9px;
    margin-left: auto;
    white-space: nowrap;
}

.sub-page .wapp-tb .w-tb-refresh {
    background: #ef4444;
    color: #fff;
    border-radius: 5px;
    padding: 3px 7px;
    font-size: 9px;
    display: flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
}

.sub-page .wapp-tb .w-tool {
    flex: 1;
    background: #12b76a;
    color: #fff;
    border-radius: 8px;
    padding: 7px 2px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    font-size: 9px;
    font-weight: 700;
}

.sub-page .wapp-tb .w-tool i {
    font-size: 14px;
    color: #fff;
}

.sub-page .wapp-tb .w-tool.w-danger {
    background: #ef4444;
}

.sub-page .wscr-pad {
    padding: 16px;
    flex: 1;
    overflow: hidden;
}

/* 로그인 화면 */
.sub-page .w-login {
    padding-top: 34px;
}

.sub-page .w-logo {
    text-align: center;
    font-size: 26px;
    font-weight: 900;
    color: #111827;
    letter-spacing: -0.5px;
    margin-bottom: 28px;
}

.sub-page .w-logo span {
    color: var(--primary);
}

.sub-page .w-inp {
    margin-bottom: 10px;
}

.sub-page .w-inp input {
    width: 100%;
    height: 34px;
    border: 1px solid #d8dee9;
    border-radius: 8px;
    padding: 0 12px;
    font-size: 12px;
    background: #f8fafc;
    color: #475569;
}

.sub-page .w-chkrow {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: #475569;
    font-weight: 600;
    margin: 4px 0 16px;
}

.sub-page .w-chk {
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid #cbd5e1;
    display: inline-flex;
    flex-shrink: 0;
    position: relative;
}

.sub-page .w-chk.on {
    background: var(--primary);
    border-color: var(--primary);
}

.sub-page .w-chk.on::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 1px;
    width: 4px;
    height: 8px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.sub-page .w-linkrow {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: #334155;
    font-weight: 600;
    margin-bottom: 22px;
}

.sub-page .w-linkrow .w-red {
    color: #ef4444;
}

.sub-page .w-login-btn {
    background: linear-gradient(135deg, var(--primary), #0d8a4f);
    color: #fff;
    border-radius: 10px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 14px;
    box-shadow: 0 10px 20px rgba(11, 166, 93, 0.28);
}

/* 서비스 목록 화면 */
.sub-page .w-svclist {
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sub-page .w-svc-card {
    background: linear-gradient(135deg, #12b76a, #0a8f52);
    border-radius: 10px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    opacity: 0.8;
    transition: opacity 0.3s, transform 0.3s;
}

.sub-page .w-svc-card.focus {
    opacity: 1;
    transform: scale(1.03);
    box-shadow: 0 10px 22px rgba(10, 143, 82, 0.35);
}

.sub-page .w-svc-l {
    flex: 0 0 auto;
    min-width: 78px;
}

.sub-page .w-svc-l b {
    display: block;
    font-size: 12px;
}

.sub-page .w-svc-l small {
    font-size: 9px;
    opacity: 0.8;
}

.sub-page .w-svc-m {
    flex: 1;
    font-size: 9px;
    line-height: 1.6;
    opacity: 0.9;
}

.sub-page .w-svc-r {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 8.5px;
    text-align: right;
    opacity: 0.9;
}

.sub-page .w-svc-r i {
    font-size: 22px;
    color: #ef4444;
    background: #fff;
    border-radius: 50%;
    flex-shrink: 0;
}

/* 사용/연결 화면 */
.sub-page .w-cur {
    background: linear-gradient(135deg, #12b76a, #0a8f52);
    border-radius: 10px;
    padding: 12px 14px;
    color: #fff;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.sub-page .w-cur-ip {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 4px;
}

.sub-page .w-cur-meta {
    font-size: 9.5px;
    opacity: 0.9;
}

.sub-page .w-cur-r {
    font-size: 9px;
    opacity: 0.9;
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex-shrink: 0;
    white-space: nowrap;
}

.sub-page .w-filter {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 9.5px;
    color: #64748b;
    margin-bottom: 8px;
}

.sub-page .w-filter input {
    flex: 1;
    height: 22px;
    border: 1px solid #d8dee9;
    border-radius: 5px;
    padding: 0 6px;
    font-size: 9.5px;
    min-width: 0;
}

.sub-page .w-filter .w-sel,
.sub-page .w-filter .w-reset {
    border: 1px solid #d8dee9;
    border-radius: 5px;
    padding: 3px 6px;
    display: flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
    flex-shrink: 0;
}

.sub-page .w-iplist {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.sub-page .w-ip-row {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f8fafc;
    border: 1px solid #eef1f6;
    border-radius: 6px;
    padding: 7px 10px;
    font-size: 10.5px;
    font-weight: 700;
    color: #334155;
}

.sub-page .w-ip-row em {
    margin-left: auto;
    font-style: normal;
    font-weight: 600;
    font-size: 9.5px;
    color: #94a3b8;
}

.sub-page .w-ip-row.active {
    background: #dcfce7;
    border-color: #86efac;
}

.sub-page .w-ip-row.active em {
    color: var(--primary);
}

.sub-page .w-ip-row i {
    color: #f97316;
    font-size: 13px;
    flex-shrink: 0;
}

.sub-page .w-ip-row.active i {
    color: var(--primary) !important;
}

/* 자동변경 다이얼로그 */
.sub-page .w-dim {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sub-page .w-dialog {
    width: 84%;
    background: #fff;
    border-radius: 12px;
    padding: 16px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.sub-page .w-dialog-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 800;
    font-size: 13px;
    color: #1f2937;
    margin-bottom: 16px;
}

.sub-page .w-dialog-row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    color: #475569;
    font-weight: 700;
    margin-bottom: 16px;
}

.sub-page .w-dialog-row b {
    margin-left: auto;
    color: var(--primary);
}

.sub-page .w-toggle {
    width: 32px;
    height: 18px;
    border-radius: 10px;
    background: #cbd5e1;
    position: relative;
    flex-shrink: 0;
}

.sub-page .w-toggle::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    transition: left 0.2s;
}

.sub-page .w-toggle.on {
    background: var(--primary);
}

.sub-page .w-toggle.on::after {
    left: 16px;
}

.sub-page .w-toggle.lg {
    margin-left: auto;
}

.sub-page .w-range {
    flex: 1;
    height: 4px;
    border-radius: 2px;
    background: #e2e8f0;
    position: relative;
}

.sub-page .w-range i {
    position: absolute;
    left: 20%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--primary);
    box-shadow: 0 2px 6px rgba(11, 166, 93, 0.4);
}

.sub-page .w-dialog-actions {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}

.sub-page .w-btn-primary {
    flex: 1;
    background: var(--primary);
    color: #fff;
    border-radius: 7px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 12.5px;
}

.sub-page .w-btn-text {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    font-weight: 700;
    font-size: 12.5px;
}

/* 고정IP: 단일 접속 화면 (아이피 1개만 사용) */
.sub-page .wscr-pad.w-single-connect {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 30px;
    background: linear-gradient(180deg, #ffffff 0%, #eafcf3 100%);
}

.sub-page .w-big-ip {
    font-size: 21px;
    font-weight: 800;
    color: #111827;
    margin-bottom: 14px;
}

.sub-page .w-memo-input {
    width: 100%;
    height: 30px;
    border: 1px solid #d8dee9;
    border-radius: 7px;
    padding: 0 10px;
    font-size: 10.5px;
    color: #94a3b8;
    background: #fff;
    margin-bottom: 20px;
}

.sub-page .w-info-card {
    background: #fff;
    border: 1px solid #eef1f6;
    border-radius: 10px;
    padding: 12px 16px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
    width: 100%;
}

.sub-page .w-info-row {
    display: flex;
    justify-content: space-between;
    font-size: 10.5px;
    color: #64748b;
    font-weight: 600;
    padding: 4px 0;
}

.sub-page .w-info-row b {
    color: #1f2937;
    font-weight: 800;
}

.sub-page .w-disconnect-btn {
    margin-top: 10px;
    background: #ef4444;
    color: #fff;
    border-radius: 7px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-weight: 800;
    font-size: 11.5px;
}

/* 고정IP: 멀티사용 체크 후 접속화면 (아이피 2개 이상) */
.sub-page .w-filter .w-refresh {
    background: var(--primary);
    color: #fff;
    border-radius: 5px;
    padding: 3px 8px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 9px;
    white-space: nowrap;
    flex-shrink: 0;
}

.sub-page .w-ip-row.memo {
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
}

.sub-page .w-ip-row.memo .w-ip-top {
    display: flex;
    align-items: center;
    gap: 6px;
}

.sub-page .w-ip-row.memo .w-ip-top small {
    font-weight: 600;
    color: #94a3b8;
    font-size: 9px;
}

.sub-page .w-ip-row.memo .w-ip-top em {
    margin-left: auto;
}

.sub-page .w-ip-row.memo input {
    height: 22px;
    border: 1px solid #e2e8f0;
    border-radius: 5px;
    padding: 0 8px;
    font-size: 9px;
    color: #94a3b8;
    background: #fff;
}

/* 프록시: IP/포트 탭 리스트 화면 */
.sub-page .w-savebtn {
    background: var(--primary);
    color: #fff;
    border-radius: 5px;
    padding: 3px 8px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 9px;
    white-space: nowrap;
    flex-shrink: 0;
}

.sub-page .w-proxy-tabs {
    display: flex;
    border-bottom: 1px solid #eef1f6;
    flex: 0 0 auto;
}

.sub-page .w-proxy-tabs span {
    flex: 1;
    text-align: center;
    padding: 9px 0;
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    border-bottom: 2px solid transparent;
}

.sub-page .w-proxy-tabs span.active {
    color: var(--primary);
    border-color: var(--primary);
}

.sub-page .w-proxy-table {
    padding: 8px 14px;
    overflow: hidden;
}

.sub-page .w-proxy-thead,
.sub-page .w-proxy-row {
    display: flex;
    align-items: center;
    font-size: 10px;
    padding: 7px 4px;
}

.sub-page .w-proxy-thead {
    color: #94a3b8;
    font-weight: 700;
    border-bottom: 1px solid #eef1f6;
}

.sub-page .w-proxy-row {
    color: #334155;
    font-weight: 600;
    border-bottom: 1px dashed #f1f5f9;
}

.sub-page .w-proxy-col-ip {
    flex: 1.4;
}

.sub-page .w-proxy-col-port {
    flex: 0.8;
}

.sub-page .w-proxy-col-exp {
    flex: 1.8;
    font-size: 9px;
    color: #64748b;
    font-weight: 600;
}

/* 프록시 수동연결: 윈도우 대화상자 목업 */
.sub-page .win-dlg {
    max-width: 420px;
    margin: 0 auto;
    background: #f0f0f0;
    border: 1px solid #8f8f8f;
    border-radius: 4px;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
    overflow: hidden;
}

.sub-page .win-dlg-tb {
    background: linear-gradient(180deg, #4f9ee8, #2a6fc9);
    color: #fff;
    font-size: 12.5px;
    font-weight: 700;
    padding: 6px 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.sub-page .win-dlg-tb .win-dlg-ctrls {
    margin-left: auto;
    letter-spacing: 4px;
    opacity: 0.85;
    font-size: 11px;
}

.sub-page .win-dlg-tabs {
    display: flex;
    background: #e4e4e4;
    border-bottom: 1px solid #b8b8b8;
    padding: 6px 6px 0;
    gap: 2px;
    overflow: hidden;
}

.sub-page .win-dlg-tabs span {
    padding: 5px 8px;
    font-size: 10px;
    color: #444;
    background: #d7d7d7;
    border: 1px solid #b8b8b8;
    border-bottom: none;
    border-radius: 3px 3px 0 0;
    white-space: nowrap;
}

.sub-page .win-dlg-tabs span.active {
    background: #f0f0f0;
    color: #1f2937;
    font-weight: 700;
}

.sub-page .win-dlg-body {
    background: #f0f0f0;
    padding: 16px 14px;
}

.sub-page .win-dlg.small .win-dlg-body {
    padding: 14px;
}

.sub-page .win-group {
    position: relative;
    border: 1px solid #adadad;
    border-radius: 3px;
    padding: 16px 12px 12px;
    margin-bottom: 12px;
    background: #f0f0f0;
}

.sub-page .win-group:last-child {
    margin-bottom: 0;
}

.sub-page .win-group.focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(11, 166, 93, 0.15);
}

.sub-page .win-group::before {
    content: attr(data-label);
    position: absolute;
    top: -8px;
    left: 10px;
    background: #f0f0f0;
    padding: 0 6px;
    font-size: 10px;
    color: #333;
    font-weight: 700;
}

.sub-page .win-hint {
    font-size: 10px;
    color: #555;
    line-height: 1.6;
    margin-bottom: 10px;
}

.sub-page .win-btn-row {
    text-align: right;
}

.sub-page .win-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 5px 14px;
    background: linear-gradient(180deg, #fdfdfd, #e2e2e2);
    border: 1px solid #adadad;
    border-radius: 3px;
    font-size: 10.5px;
    color: #1f2937;
    font-weight: 600;
    position: relative;
}

.sub-page .win-btn.primary {
    border-color: #2a6fc9;
    background: linear-gradient(180deg, #eaf3ff, #cfe4fb);
    font-weight: 800;
}

.sub-page .win-btn.focus {
    box-shadow: 0 0 0 2px rgba(11, 166, 93, 0.35);
}

.sub-page .win-cursor {
    position: absolute;
    right: -14px;
    bottom: -10px;
    color: #1f2937;
    font-size: 15px;
}

.sub-page .win-chkrow {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 10.5px;
    color: #222;
    font-weight: 600;
    margin-bottom: 8px;
}

.sub-page .win-chkrow.sub {
    margin: 8px 0 0;
}

.sub-page .win-chk {
    width: 13px;
    height: 13px;
    border: 1px solid #8a8a8a;
    background: #fff;
    border-radius: 2px;
    flex-shrink: 0;
    position: relative;
}

.sub-page .win-chk.on::after {
    content: '';
    position: absolute;
    left: 3px;
    top: 0;
    width: 4px;
    height: 8px;
    border: solid #1f7a3d;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.sub-page .win-proxy-row {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 10.5px;
    color: #222;
    font-weight: 600;
    margin: 4px 0 2px 20px;
    flex-wrap: wrap;
}

.sub-page .win-field {
    background: #fff;
    border: 1px solid #8a8a8a;
    border-radius: 2px;
    padding: 3px 8px;
    font-weight: 700;
    color: #111;
    min-width: 90px;
}

.sub-page .win-field.sm {
    min-width: 48px;
}

.sub-page .win-dlg-foot {
    background: #f0f0f0;
    border-top: 1px solid #d7d7d7;
    padding: 10px 14px;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* 프록시 수동연결: 브라우저 IP 확인 목업 */
.sub-page .win-browser {
    max-width: 420px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #d8dee9;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.14);
}

.sub-page .win-browser-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    background: #f1f3f5;
    border-bottom: 1px solid #e2e6ee;
    padding: 8px 12px;
    font-size: 11px;
    color: #475569;
    font-weight: 700;
}

.sub-page .win-browser-bar .ms-auto {
    margin-left: auto;
}

.sub-page .win-browser-body {
    padding: 26px 18px;
    text-align: center;
}

.sub-page .win-ip-display {
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 10px;
}

.sub-page .win-ip-sub {
    font-size: 9.5px;
    color: #94a3b8;
    line-height: 1.6;
    margin-bottom: 16px;
}

.sub-page .win-ip-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary);
    color: #fff;
    border-radius: 6px;
    padding: 8px 20px;
    font-weight: 800;
    font-size: 11.5px;
}

/* 프록시 수동연결: 제어판 / 탐색기 창 목업 */
.sub-page .win-explorer {
    max-width: 420px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #b8b8b8;
    border-radius: 4px;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
    overflow: hidden;
}

.sub-page .win-exp-tb {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, #fbfbfb, #e9e9e9);
    border-bottom: 1px solid #d4d4d4;
    padding: 7px 10px;
    font-size: 11.5px;
    font-weight: 700;
    color: #333;
}

.sub-page .win-exp-addr {
    display: flex;
    align-items: center;
    gap: 6px;
    background: #fff;
    border-bottom: 1px solid #e2e2e2;
    padding: 6px 10px;
    font-size: 9.5px;
    color: #666;
}

.sub-page .win-exp-addr i {
    font-size: 10px;
    color: #999;
}

.sub-page .win-exp-crumb {
    background: #f4f4f4;
    border: 1px solid #e2e2e2;
    border-radius: 3px;
    padding: 2px 8px;
    color: #333;
    font-weight: 600;
}

.sub-page .win-exp-body {
    padding: 12px 14px;
}

.sub-page .win-exp-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 800;
    color: #1f2937;
    margin-bottom: 10px;
}

.sub-page .win-exp-view {
    font-size: 9px;
    font-weight: 600;
    color: #777;
}

.sub-page .win-cp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.sub-page .win-cp-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 6px;
    border: 2px dashed transparent;
    border-radius: 4px;
}

.sub-page .win-cp-item i {
    font-size: 20px;
    color: #2a6fc9;
    flex-shrink: 0;
    margin-top: 1px;
}

.sub-page .win-cp-item b {
    display: block;
    font-size: 10px;
    color: #1f2937;
    font-weight: 700;
}

.sub-page .win-cp-item small {
    display: block;
    font-size: 8.5px;
    color: #7a7a7a;
    line-height: 1.5;
}

.sub-page .win-cp-item.focus,
.sub-page .win-cp-section.focus {
    border-color: #ef4444;
    background: #fff6f6;
}

.sub-page .win-exp-split {
    display: flex;
}

.sub-page .win-exp-side {
    flex: 0 0 108px;
    border-right: 1px solid #eee;
    padding: 12px 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sub-page .win-exp-side a {
    font-size: 9px;
    color: #2a6fc9;
    font-weight: 600;
}

.sub-page .win-exp-side a.on {
    color: #1f2937;
    font-weight: 800;
}

.sub-page .win-exp-main {
    flex: 1;
    padding: 12px 12px 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sub-page .win-cp-section {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px;
    border: 2px dashed transparent;
    border-radius: 4px;
}

.sub-page .win-cp-section i {
    font-size: 22px;
    color: #2a6fc9;
    flex-shrink: 0;
    margin-top: 1px;
}

.sub-page .win-cp-section b {
    display: block;
    font-size: 10.5px;
    color: #1f2937;
    font-weight: 700;
    margin-bottom: 2px;
}

.sub-page .win-cp-section small {
    font-size: 8.5px;
    color: #7a7a7a;
    line-height: 1.6;
}

.sub-page .win-cp-section small a {
    color: #2a6fc9;
}

@media (max-width: 575.98px) {
    .sub-page .win-cp-grid {
        grid-template-columns: 1fr;
    }

    .sub-page .win-exp-split {
        flex-direction: column;
    }

    .sub-page .win-exp-side {
        flex-direction: row;
        flex-wrap: wrap;
        border-right: 0;
        border-bottom: 1px solid #eee;
    }
}

/* 프록시 수동연결 데모: 넓은 윈도우 목업을 담는 스테이지 (wapp-lg 변형) */
.sub-page .wapp-lg.win-stage {
    width: 480px;
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
}

.sub-page .wapp-lg.win-stage .wapp-screens {
    height: 410px;
    background: transparent;
    border-radius: 0;
    overflow: visible;
}

.sub-page .wapp-lg.win-stage .wapp-screens .wscr {
    align-items: center;
    justify-content: center;
    padding: 10px;
    background: transparent;
}

.sub-page .wapp-lg.win-stage .wapp-screens .wscr>* {
    transform: scale(1.12);
}

@media (max-width: 575.98px) {
    .sub-page .wapp-lg.win-stage {
        width: 100%;
        max-width: 380px;
    }

    .sub-page .wapp-lg.win-stage .wapp-screens {
        height: 340px;
    }

    .sub-page .wapp-lg.win-stage .wapp-screens .wscr>* {
        transform: scale(0.88);
    }
}

@media (max-width: 575.98px) {
    .sub-page .wapp-lg {
        width: 262px;
    }

    .sub-page .wapp-screens {
        height: 430px;
    }
}

/* ============================================================
   모바일 반응형 (2026 renew)
   ============================================================ */

/* 햄버거 메뉴 상단 로그인/회원 버튼 (모바일 전용, d-lg-none) */
.mega-mobile-auth {
    display: flex;
    gap: 10px;
    margin-bottom: 24px;
}

.mega-mobile-auth .m-auth-btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 15px 0;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    transition: all 0.25s;
}

.mega-mobile-auth .m-auth-primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(11, 166, 93, 0.3);
}

.mega-mobile-auth .m-auth-ghost {
    background: var(--gray-100);
    color: var(--dark) !important;
    border: 1px solid var(--gray-200);
}

.mega-mobile-auth .m-auth-btn:active {
    transform: scale(0.97);
}

/* ≤ 991px : 햄버거가 노출되는 구간 */
@media (max-width: 991.98px) {

    /* 로그인 폼은 숨기고(햄버거 메뉴 로그인으로 대체), 광고 배너는 전체폭 */
    .renew-login-col {
        display: none !important;
    }

    .renew-ad-col {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    /* 로그인 col이 사라져 높이 기준이 없어지므로 캐러셀에 확정 높이 부여 → 두 슬라이드 동일 */
    .banner-carousel {
        flex: 0 0 auto;
        height: 300px;
        min-height: 0;
    }

    .banner-carousel .carousel-inner,
    .banner-carousel .carousel-item {
        height: 100%;
    }

    .banner-carousel .carousel-item .banner-ad {
        height: 100%;
        min-height: 0;
    }

    /* 햄버거 메가메뉴: 가로 7컬럼 → 세로 스택, 스크롤 가능한 드롭다운 */
    .mega-menu {
        padding: 20px 0 28px;
        max-height: calc(100vh - 80px);
        overflow-y: auto;
    }

    .header-wrapper:hover .mega-menu {
        display: none;
    }

    /* 모바일은 hover 자동노출 끔(클릭 토글만) */
    .mega-menu .container {
        padding-left: 18px;
        padding-right: 18px;
    }

    .mega-menu .row {
        flex-direction: column;
    }

    .mega-col {
        width: 100%;
        border-right: none;
        padding: 0;
        margin-bottom: 24px;
    }

    /* 카테고리 헤더: 그린 액센트 바 + 또렷한 라벨 */
    .mega-col h6 {
        display: flex;
        align-items: center;
        gap: 8px;
        width: auto;
        font-size: 15px;
        font-weight: 800;
        color: var(--dark);
        border-bottom: none;
        padding-bottom: 0;
        margin-bottom: 12px;
    }

    .mega-col h6::before {
        content: '';
        display: inline-block;
        width: 5px;
        height: 16px;
        background: var(--primary);
        border-radius: 3px;
    }

    /* 하위 링크: 2열 칩(버튼) 그리드 — 터치 친화 */
    .mega-col ul {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .mega-col ul li {
        margin-bottom: 0;
    }

    .mega-col ul li a {
        display: flex;
        align-items: center;
        text-align: left;
        gap: 0;
        font-size: 14px;
        font-weight: 600;
        line-height: 1.3;
        color: var(--text-main);
        background: var(--gray-100);
        border: 1px solid var(--gray-200);
        border-radius: 12px;
        padding: 12px 14px;
        min-height: 48px;
        word-break: keep-all;
        transition: background 0.2s, color 0.2s, border-color 0.2s;
    }

    .mega-col ul li a::before {
        display: none;
    }

    /* 작은 점 불릿 제거 */
    .mega-col ul li a:hover,
    .mega-col ul li a:active {
        background: rgba(11, 166, 93, 0.1);
        border-color: var(--primary);
        color: var(--primary);
        font-weight: 700;
        transform: none;
    }
}

/* ≤ 767px : 폰 구간 */
@media (max-width: 767.98px) {

    /* 우측 세로 플로팅 바(테스트/결제/로그인/채팅) 숨김 */
    .floating-bar {
        display: none !important;
    }

    /* 섹션 상단 여백 축소 (모바일에서 섹션 간 큰 갭 제거) */
    .middle-section {
        margin-top: 24px;
    }

    .icon-menu-section {
        margin-top: 28px;
        padding: 30px 0;
    }

    .bottom-banners {
        margin-top: 36px;
        margin-bottom: 40px;
    }

    /* 채팅 상담 배너: 아이콘 좌 + 텍스트 우, 컴팩트 가로 배너 */
    .banner-chat {
        flex-direction: row;
        justify-content: center;
        align-items: center;
        gap: 14px;
        padding: 18px 20px;
        border-radius: 18px;
        margin-bottom: 24px;
        text-align: left;
    }

    .banner-chat .d-flex {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 2px !important;
    }

    .banner-chat .click-text {
        font-size: 14px;
    }

    .banner-chat .main-text {
        font-size: 15px;
        letter-spacing: -0.5px;
        line-height: 1.35;
        word-break: keep-all;
    }

    .chat-icon-circle {
        width: 50px;
        height: 50px;
        order: -1;
        flex-shrink: 0;
    }

    .chat-icon-circle i {
        font-size: 24px !important;
    }

    /* RemoteT 배너: 가로 flex → 세로 스택, 패딩 축소 */
    .banner-remote {
        flex-direction: column;
        align-items: stretch;
        padding: 30px 24px;
        text-align: center;
    }

    .remote-content h3 {
        font-size: 20px;
        margin-bottom: 18px;
    }

    .remote-content ul {
        font-size: 14px;
    }

    .remote-content ul li {
        justify-content: flex-start;
    }

    .banner-remote .ms-md-4 {
        margin-left: 0 !important;
    }

    .btn-remote {
        width: 100%;
        justify-content: center;
        padding: 16px 0;
    }

    /* ===== 서브페이지(상품안내 등) 모바일 ===== */
    .sub-page {
        padding-top: 22px;
        padding-bottom: 50px;
    }

    .sub-hero {
        padding: 30px 22px;
        margin-bottom: 20px;
    }

    .sub-hero h2 {
        font-size: 26px;
    }

    .sub-hero p {
        font-size: 13.5px;
    }

    .sub-breadcrumb {
        margin-bottom: 30px;
    }

    .sub-section-title {
        font-size: 23px;
        margin: 40px 0 6px;
    }

    .sub-section-desc {
        font-size: 14px;
        margin-bottom: 28px;
    }

    .sub-group-label {
        font-size: 18px;
        margin: 36px 0 16px;
    }

    .feature-panel {
        padding: 26px 16px;
    }

    .feature-panel .icon-circle {
        width: 62px;
        height: 62px;
    }

    .feature-panel .icon-circle i {
        font-size: 26px;
    }

    .feature-panel .icon-box .title {
        font-size: 16px;
    }

    .feature-panel .icon-box p {
        font-size: 12.5px !important;
    }

    .highlight-callout {
        padding: 24px 20px;
    }

    .highlight-callout .hc-main {
        font-size: 17px;
    }

    .highlight-callout ul li {
        font-size: 14px;
        line-height: 1.8;
    }

    /* 요금표: 폰트·패딩 축소해 4열이 화면에 맞게 */
    .fee-table thead th {
        padding: 14px 6px;
        font-size: 13px;
    }

    .fee-table tbody td {
        padding: 12px 6px;
        font-size: 14px;
    }

    .fee-table .price-cell {
        font-size: 17px;
    }

    /* 이용방법 단계: 세로 스택 (가로 flex → 세로) */
    .step-flow {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .step-card {
        flex: none;
        width: 100%;
        min-width: 0;
        padding: 24px 20px;
    }

    .step-card .sc-title {
        font-size: 17px;
    }

    .step-card .sc-desc {
        font-size: 13.5px;
    }

    /* 화살표: 요소 전체 회전(X) → 아이콘만 아래로, 카드 사이 중앙 배치 */
    .step-arrow {
        transform: none;
        display: flex;
        width: 100%;
        justify-content: center;
        padding: 10px 0;
    }

    .step-arrow i {
        display: inline-block;
        transform: rotate(90deg);
    }

    /* CTA 버튼 세로 스택 (전체폭) */
    .sub-page .btn-cta {
        display: flex;
        width: 100%;
        justify-content: center;
        margin: 0 0 10px !important;
    }

    /* 설치 단계 가로 흐름(iflow): 세로 스택 + 화살표 보정(요소 회전 X, 아이콘만) */
    .iflow {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin-bottom: 12px;
    }

    .istep {
        flex: none;
        width: 100%;
        min-width: 0;
    }

    .iarrow {
        transform: none;
        display: flex;
        width: 100%;
        justify-content: center;
        padding: 8px 0;
    }

    .iarrow i {
        display: inline-block;
        transform: rotate(90deg);
    }

    /* 동영상 리드 텍스트 */
    .video-lead h3 {
        font-size: 26px;
        margin: 12px 0;
    }

    .video-lead p {
        font-size: 15px;
    }

    .video-card {
        padding: 12px;
    }

    /* 결제/바로가기 카드 */
    .pay-card {
        padding: 20px 22px;
        gap: 14px;
    }

    .pay-card .pay-info h3 {
        font-size: 18px;
    }

    .pay-card .pay-go {
        width: 44px;
        height: 44px;
        font-size: 18px;
    }

    /* 안내바 */
    .info-bar {
        padding: 14px 16px;
        font-size: 14px;
        align-items: flex-start;
    }
}

/* ============================================================
   브랜드 포인트 (정적) — 헤더/푸터 그린 라인 · 선택색 · 로고 IP
   ============================================================ */

/* ② 푸터 상단 그린 라인 */
.renew-footer {
    position: relative;
}

.renew-footer::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--primary), var(--primary-light));
    pointer-events: none;
}

/* ③ 텍스트 드래그(선택) 색상 — 연그린 */
body.renew-body ::selection,
.renew-footer ::selection,
.header-wrapper ::selection,
.top-bar ::selection {
    background: rgba(11, 166, 93, 0.20);
    color: var(--dark);
}

/* ④ 로고 'IP' 그린 포인트 (logo-text 그라데이션 위에 덮어쓰기) */
.logo-text .logo-accent {
    -webkit-text-fill-color: var(--primary);
    color: var(--primary);
}
