@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');

:root {
    /* Premium Corporate Colors */
    --primary-color: #002b5c;
    /* Deep Navy Blue */
    --accent-color: #0066cc;
    /* Trust Blue */
    --accent-light: #e6f0fa;
    --text-primary: #1a1a1a;
    --text-secondary: #555555;
    --bg-white: #ffffff;
    --bg-light: #f4f6f8;
    /* Light gray for background */
    --header-bg: rgba(255, 255, 255, 0.85);

    /* Typography */
    --font-main: 'Pretendard', 'Noto Sans KR', sans-serif;

    /* Spacing */
    --container-max-width: 1200px;
    --section-padding: 120px 0;

    /* Transitions */
    --transition-smooth: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: var(--font-main);
}

html {
    /* scroll-behavior: smooth 기능 해제하여 앵커 순간이동 허용 */
    overflow-x: hidden;
}

body {
    line-height: 1.6;
    color: var(--text-primary);
    background-color: var(--bg-white);
    overflow-x: hidden;
}

a {
    text-decoration: none;
    color: inherit;
    transition: var(--transition-smooth);
    -webkit-tap-highlight-color: transparent; /* 전역: 모바일 기기 터치 시 생기는 하늘색 기본 박스 제거 */
}

ul {
    list-style: none;
}

img {
    max-width: 100%;
    display: block;
}

.text-left {
    text-align: left !important;
}

.text-center {
    text-align: center !important;
}

.mt-30 {
    margin-top: 30px !important;
}

/* Layout Utilities */
.container {
    max-width: var(--container-max-width);
    width: 100%;
    margin: 0 auto;
    padding: 0 20px;
}

/* Visibility Utilities */
.mobile-only {
    display: none !important;
}

.pc-only {
    display: block;
}

.section {
    padding: 170px 0;
    min-height: 100vh;
    /* 100vh?먯꽌 90vh濡?異뺤냼?섏뿬 ?곹븯 ?щ갚 ?뺣낫 */
    display: flex;
    flex-direction: column;
    /* ?몃줈 ?뺣젹濡?蹂寃?*/
    justify-content: flex-start;
    /* ?섏쭅 以묒븰 ?뺣젹 */
    align-items: stretch;
    /* ?먯떇 而⑦뀒?대꼫媛 ?꾩껜 ??쓣 ?ъ슜?섏뿬 濡쒓퀬? ?섏쭅 ?뺣젹 蹂댁옣 */
    position: relative;
    scroll-margin-top: 80px;
}


@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.bg-light {
    background-color: var(--bg-light);
}

/* Buttons */
.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 16px 36px;
    background-color: var(--primary-color);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border-radius: 4px;
    border: 2px solid var(--primary-color);
    transition: var(--transition-smooth);
    cursor: pointer;
}

.btn-primary:hover {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    box-shadow: 0 8px 16px rgba(0, 102, 204, 0.3);
    transform: translateY(-2px);
}

.btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 16px 36px;
    background-color: transparent;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border-radius: 4px;
    border: 2px solid #fff;
    transition: var(--transition-smooth);
    cursor: pointer;
}

.btn-outline:hover {
    background-color: #fff;
    color: var(--primary-color);
}

/* Header Styling (Glassmorphism) */
/* Header Styling (Glassmorphism) */
header {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000;
    padding: 25px 0;
    transition: var(--transition-smooth);
    background-color: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

header * {
    color: #fff;
    /* Default to white for dark hero background */
}

header.scrolled * {
    color: var(--text-primary);
}

header#header.pc-only {
    display: flex;
}

header.scrolled {
    padding: 15px 0;
    background-color: var(--header-bg);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

header.scrolled * {
    color: var(--text-primary);
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo a {
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -0.5px;
}

header.scrolled .logo a {
    color: var(--primary-color);
}

.gnb ul {
    display: flex !important;
    flex-direction: row !important;
    gap: 18px;
    align-items: center;
}

.gnb a {
    color: inherit;
    font-weight: 600;
    font-size: 15px;
    position: relative;
    padding-bottom: 5px;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    display: inline-block;
}

.gnb a:hover {
    color: var(--accent-color) !important;
}

.gnb a:active {
    transform: scale(0.92);
    opacity: 0.8;
}

.gnb a:visited {
    color: inherit;
}

.gnb a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0;
    left: 0;
    background-color: var(--accent-color);
    transition: var(--transition-smooth);
}

.gnb a:hover::after,
.gnb a.active::after {
    width: 100%;
}

.gnb a.active {
    color: var(--accent-color) !important;
}

.header-tools {
    display: flex;
    gap: 20px;
    align-items: center;
}

.tool-icons {
    display: flex;
    gap: 15px;
    font-size: 20px;
}

.tool-icons button {
    background: none;
    border: none;
    cursor: pointer;
    transition: color 0.2s;
}

.tool-icons button:hover {
    color: var(--accent-color);
}

.btn-brand {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.5);
    padding: 8px 16px;
    font-weight: 500;
    border-radius: 20px;
    cursor: pointer;
    transition: var(--transition-smooth);
    font-size: 14px;
}

header.scrolled .btn-brand {
    color: var(--text-primary);
    border-color: #ccc;
}

.btn-brand:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #fff;
}

header.scrolled .btn-brand:hover {
    background: #f0f0f0;
    border-color: #999;
}

/* Hero Section */
.hero {
    height: 100vh;
    display: flex;
    align-items: center;
    position: relative;
}

.hero-video-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.hero-video-bg .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.3) 100%);
}

.hero-content {
    position: relative;
    z-index: 10;
    color: #fff;
    padding-top: 80px;
}

.hero-content h2 {
    font-size: 52px; /* 1줄 정렬을 위한 폰트 사이즈 축소 (64px -> 52px) */
    font-weight: 800;
    margin-bottom: 24px;
    letter-spacing: -2px; /* PC 버전 원상 복구 */
    white-space: nowrap; /* 폰트를 줄이면서 추가로 강제 1줄 정렬 보장 */
}

.hero-content p {
    font-size: 22px;
    font-weight: 300;
    margin-bottom: 50px;
    opacity: 0.9;
    max-width: 600px;
    line-height: 1.7;
}

/* Section Titles */
.section-title {
    text-align: center;
    /* 湲곕낯 以묒븰 ?좎? (?꾩슂???대옒?ㅻ줈 蹂寃? */
    margin-bottom: 60px;
    width: 100%;
}

/* ?뺣젹 ?좏떥由ы떚: 濡쒓퀬 ?쇱씤(container 醫뚯륫)怨??섏쭅 ?뺣젹??蹂댁옣 */
.text-left {
    text-align: left !important;
}

.text-right {
    text-align: right !important;
}

.text-center {
    text-align: center !important;
}

/* 紐⑤뱺 ?좏떥由ы떚媛 container ?대??먯꽌 濡쒓퀬? ?숈씪?좎쓣 ??꾨줉 ??*/
.section-title.text-left {
    text-align: left;
    padding-left: 0;
    /* 而⑦뀒?대꼫 ?⑤뵫??留욎떠 濡쒓퀬? ?쇱쭅??*/
}

.section-title h3 {
    font-size: 14px;
    color: var(--accent-color);
    letter-spacing: 2px;
    margin-bottom: 15px;
    font-weight: 700;
}

.section-title h2 {
    font-size: 42px;
    color: var(--text-primary);
    margin-bottom: 20px;
    font-weight: 700;
    /* 議댁옱媛??덇쾶 蹂寃?*/
    letter-spacing: -1.5px;
    line-height: 1.3;
}

.section-title p {
    font-size: 18px;
    color: var(--text-secondary);
    max-width: 700px;
    margin: 0;
    /* 醫뚯륫 ?뺣젹 ??留덉쭊 0 */
}

.section-title.text-center p {
    margin: 0 auto;
}

.section-title h2 strong {
    font-weight: 800;
}

.section-title p {
    font-size: 18px;
    color: var(--text-secondary);
}

/* 1. Company */
.company-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    /* 4媛?洹좊벑 遺꾪븷濡??덈? 寃뱀튂吏 ?딄쾶 */
    gap: 30px;
    text-align: center;
    margin-top: 60px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.stat-item h3 {
    font-size: 52px;
    /* 媛?낆꽦???꾪빐 ?댁쭩 議곗젅 */
    font-weight: 800;
    display: inline-block;
    color: var(--primary-color);
    letter-spacing: -2px;
}

.stat-item span {
    font-size: 24px;
    font-weight: 600;
    color: var(--accent-color);
}

.stat-item p {
    font-size: 16px;
    color: var(--text-secondary);
    margin-top: 5px;
    font-weight: 500;
}

/* 2. Services */
.service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.service-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: var(--transition-smooth);
    position: relative;
}

.service-card:hover {
    transform: translateY(-15px);
    box-shadow: 0 20px 40px rgba(0, 43, 92, 0.15);
}

.card-img {
    height: 240px;
    overflow: hidden;
}

.card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.service-card:hover .card-img img {
    transform: scale(1.05);
}

.card-content {
    padding: 40px;
    position: relative;
}

.card-content .icon {
    position: absolute;
    top: -30px;
    right: 40px;
    background: var(--accent-color);
    color: #fff;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    box-shadow: 0 5px 15px rgba(0, 102, 204, 0.4);
}

.card-content h4 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 20px;
    color: var(--primary-color);
}

.card-content p {
    color: var(--text-secondary);
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 20px;
}

/* 2. Services Enhanced Toggle */
.service-card {
    cursor: pointer;
}

.service-details {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin-top: 0;
    transform: translateY(10px);
    transition: max-height 0s,
        margin-top 0s,
        opacity 2.5s ease,
        transform 2.5s ease;
}

.service-card.expanded .service-details {
    max-height: 600px;
    opacity: 1;
    margin-top: 30px;
    transform: translateY(0);
}

/* ?곸꽭 ??ぉ - 媛쒕퀎 ?좊땲硫붿씠???놁쓬, 而⑦뀒?대꼫 ?섏씠?쒕줈 ?숈떆 ?쒗쁽 */
.service-list li {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

.toggle-guide {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 600;
    color: var(--accent-color);
    transition: var(--transition-smooth);
}

.service-card.expanded .toggle-guide {
    opacity: 0.5;
}

.service-card.expanded .toggle-guide span {
    content: '?곸꽭 ?댁슜 ?リ린';
}

.toggle-guide i {
    transition: transform 0.4s;
}

.service-card.expanded .toggle-guide i {
    transform: rotate(180deg);
}

.service-list {
    border-top: 1px solid #eee;
    padding-top: 20px;
}

.service-list li {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    margin-bottom: 8px;
    color: var(--text-secondary);
}

.service-list li span.item {
    font-weight: 500;
    color: var(--text-primary);
}

.service-list li span.price {
    color: var(--accent-color);
    font-weight: 700;
}

.card-footer {
    margin-top: 20px;
    font-size: 13px;
    color: #999;
}

/* 3. People */
.people-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    margin-top: 40px;
}

.people-card {
    display: flex;
    align-items: center;
    gap: 30px;
    background: #fff;
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
}

.people-card .avatar {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.people-card .avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(50%);
    transition: var(--transition-smooth);
}

.people-card:hover .avatar img {
    filter: grayscale(0%);
    transform: scale(1.1);
}

.people-card .info h4 {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--primary-color);
}

.people-card .info p {
    font-size: 15px;
    color: var(--text-secondary);
}

/* 4. Partnership Section - Infinite Logo Slider */
.section-partners {
    padding: 100px 0;
    background: #fbfbfb;
    overflow: hidden;
}

.partner-marquee-container {
    margin-top: 60px;
    width: 100%;
    overflow: hidden;
}

.partner-marquee {
    display: flex !important;
    overflow: hidden;
    width: 100%;
    user-select: none;
    mask-image: linear-gradient(to right,
            hsl(0 0% 0% / 0),
            hsl(0 0% 0% / 1) 10%,
            hsl(0 0% 0% / 1) 90%,
            hsl(0 0% 0% / 0));
}

.marquee-content {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    flex-shrink: 0;
    gap: 30px;
    padding: 30px 0;
    animation: marquee-scroll 50s linear infinite;
}

.partner-marquee:hover .marquee-content {
    animation-play-state: paused;
}

.partner-item {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 270px;
    height: 120px;
    flex-shrink: 0;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    cursor: pointer;
}

.partner-item:hover {
    transform: translateY(-8px);
}

.partner-item img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.6;
    transition: all 0.4s ease;
}

.partner-item:hover img {
    filter: grayscale(0);
    opacity: 1;
}

@keyframes marquee-scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(calc(-50% - 15px));
    }

    /* gap/2 諛섏쁺 */
}

/* 5. Product Detail & Checkout Page */
.product-detail-area {
    padding: 120px 0;
    background: #fff;
}

.product-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}

.product-gallery {
    position: sticky;
    top: 120px;
}

.product-gallery .main-img {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #f8f9fa;
    border-radius: 12px;
    overflow: hidden;
}

.product-gallery .main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-info-sticky {
    padding: 20px 0;
}

.product-badges {
    display: flex;
    gap: 14px;
    margin-bottom: 20px;
}

.badge-item {
    padding: 4px 12px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.badge-speed {
    background: #e3f2fd;
    color: #1976d2;
}

.badge-simple {
    background: #f3e5f5;
    color: #7b1fa2;
}

.badge-group {
    background: #e8f5e9;
    color: #388e3c;
}

.product-title-group h1 {
    font-size: 36px;
    font-weight: 800;
    margin-bottom: 15px;
    color: var(--text-primary);
}

.product-price-item {
    font-size: 28px;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 1px solid #eee;
}

.option-group {
    margin-bottom: 30px;
}

.option-group label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 12px;
    color: #333;
}

.option-select {
    width: 100%;
    height: 55px;
    padding: 0 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-family: inherit;
    font-size: 15px;
    appearance: none;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 20px center;
    background-size: 18px;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.option-select:focus {
    border-color: var(--primary-color);
    outline: none;
}

.total-price-box {
    background: #f8f9fa;
    padding: 30px;
    border-radius: 12px;
    margin-bottom: 30px;
}

.total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.total-row span {
    font-size: 16px;
    font-weight: 600;
    color: #555;
}

.total-row strong {
    font-size: 32px;
    color: #000;
}

.total-row strong small {
    font-size: 18px;
    margin-left: 4px;
}

.product-actions {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 15px;
}

.btn-buy {
    height: 60px;
    background: var(--primary-color);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.btn-cart {
    height: 60px;
    background: #fff;
    color: #333;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.btn-buy:hover {
    background: #000;
}

.btn-cart:hover {
    border-color: #000;
    background: #f8f9fa;
}

/* Responsive */
@media (max-width: 992px) {
    .product-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .product-gallery {
        position: static;
    }
}

/* =========================================
   새로운 탭: SSGSuri (쓱수리) 서브 홈페이지 포털 (데이 테마)
   ========================================= */
#ssgsuri.section-ssgsuri {
    padding: 80px 0;
    min-height: 80vh;
    background-color: #f1f5f9 !important; /* 밝은 데이 배경 강제 적용 */
    color: #334155; 
}

/* 쓱수리 이미지 카드 버튼 영역 */
.ssg-image-cards-container {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
    margin: 30px -60px;
}

.ssg-img-card {
    border-radius: 20px; /* 애플 특유의 깊고 부드러운 Squircle 곡률 (5단 배열에 맞춰 곡률 살짝 축소) */
    padding: 30px 15px;
    text-align: center;
    color: #334155; 
    cursor: pointer;
    transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), box-shadow 0.4s cubic-bezier(0.1, 0.7, 0.1, 1); /* 0.3s에서 애플식 자연스러운 바운딩 애니메이션으로 교체 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 250px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.03); /* 기기가 허공에 둥둥 떠 있는 것처럼 한없이 옅고 넓게 깔리는 초프리미엄 미니멀리즘 그림자 */
    border: none; /* 플랫한 색테두리를 지우고 그라데이션 고유의 입체감 부각 */
}

.ssg-img-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.ssg-img-card h3 {
    font-size: 24px; /* 5칸 배열을 위해 기존 38px에서 축소 */
    font-weight: 800 !important; /* 애플 디자인 특유의 탄탄하고 깔끔한 세미볼드~볼드 웨이트 */
    margin-bottom: 12px;
    letter-spacing: -1px; /* 애플 특유의 꽉 조여진 밀도 높은 자간 */
    font-style: normal; /* 완벽한 단정함을 위한 정자체 */
    text-transform: capitalize; /* 캡처본 정품 느낌처럼 단어의 첫 글자만 대문자로 렌더링 (Speed, Simple, Group) */
    text-shadow: none; /* 미니멀리즘을 저해하는 모든 텍스트 그림자 효과 완전 삭제 */
}

/* 애플 기기 내장 최상위 폰트인 San Francisco 영역(-apple-system, BlinkMacSystemFont 등)을 최우선으로 호출 설정 */
.ssg-card-speed h3,
.ssg-card-simple h3,
.ssg-card-group h3,
.ssg-card-groupbuy h3,
.ssg-card-payment h3 { 
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Apple SD Gothic Neo", "Pretendard", "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important; 
}

.ssg-img-card .subtitle {
    font-size: 12px; /* 5칸 배열을 위해 14px에서 축소 */
    font-weight: 600;
    margin-bottom: 6px;
    color: #475569; /* 부제목도 중간 톤의 세련된 슬레이트 그레이로 */
    word-break: keep-all;
}

.ssg-img-card .desc {
    font-size: 14px; /* 5칸 배열을 위해 18px에서 축소 */
    font-weight: 700;
    color: #94a3b8; /* 설명 부분은 캡처본처럼 가장 연한 색상의 라이트 그레이로 배치 */
    word-break: keep-all;
}

/* 카드별 우아한 애플 감성 입체 빛반사 그라데이션 및 타이틀 포인트 컬러 지정 */
.ssg-card-speed {
    background: linear-gradient(to bottom, #fff6ee 0%, #ffffff 100%); /* 위에서 시그니처 톤이 시작해 아래로 은은히 사라지는 피치/오렌지 빛 그라데이션 */
}
.ssg-card-speed h3 { 
    color: #cc5500; /* 데이터 포인트를 알리는 진하고 조금 더 다운된 오렌지 컬러 부여 */
}

.ssg-card-simple {
    background: linear-gradient(to bottom, #f2f7fb 0%, #ffffff 100%); /* 위에서 시그니처 톤이 시작해 젤리처럼 떨어지는 스카이 아이스블루 빛 그라데이션 */
}
.ssg-card-simple h3 { 
    color: #1a5bae; /* 데이터 포인트를 알리는 차분하고 깊은 블루 컬러 부여 */
}

.ssg-card-group {
    background: linear-gradient(to bottom, #f0fbf4 0%, #ffffff 100%); /* 위에서 시그니처 톤이 시작해 부드럽게 감싸는 스프링 민트 빛 그라데이션 */
}
.ssg-card-group h3 { 
    color: #0d7a2b; /* 데이터 포인트를 알리는 묵직한 그린 컬러 부여 */
}

/* [NEW] 공동구매 카드 배경/텍스트 색상 (보라색) */
.ssg-card-groupbuy {
    background: linear-gradient(to bottom, #fbf4ff 0%, #ffffff 100%);
}
.ssg-card-groupbuy h3 { 
    color: #7e22ce; 
}

/* [NEW] 고객결제 카드 배경/텍스트 색상 (노란색) */
.ssg-card-payment {
    background: linear-gradient(to bottom, #fffaf0 0%, #ffffff 100%);
}
.ssg-card-payment h3 { 
    color: #b45309; 
}

/* 모바일 호환성 유지 (PC와 분리, 단일 열 배치) */
@media (max-width: 992px) {
    .ssg-image-cards-container {
        grid-template-columns: 1fr;
        gap: 10px; /* 기존 15px에서 10px로 축소하여 한 화면 안에 딱 맞게 셋팅 */
        margin: 10px 0;
    }
    .ssg-img-card {
        min-height: 95px; /* 기존 140px에서 대폭 하향 압축 (모바일 한 화면 맞춤형) */
        padding: 15px 20px; /* 위아래 내부 잉여 여백을 25px에서 15px로 극심하게 압축 */
    }
    .ssg-img-card h3 {
        font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Apple SD Gothic Neo", "Pretendard", "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
        font-size: 28px !important; /* 모바일에서 38px는 과하게 크므로, 본문(14px/16px)과 조화로운 24~28px 구간인 28px로 안정적인 셋팅 */
        font-weight: 800 !important;
        letter-spacing: -1px;
        text-transform: capitalize;
        font-style: normal; 
        margin-bottom: 12px;
    }
    .ssg-img-card .subtitle {
        font-size: 14px; /* 본문 텍스트도 모바일에 맞게 더 슬림하게 축소 */
    }
    .ssg-img-card .desc {
        font-size: 16px; /* 본문 텍스트도 모바일에 맞게 더 슬림하게 축소 */
    }
}
/* 6. 吏?띻??κ꼍??(ESG) */
.section-esg {
    position: relative;
    min-height: 90vh;
    /* ???붾㈃??ESG留?蹂댁씠?꾨줉 異⑸텇???믪씠 */
    display: flex;
    align-items: flex-start;
    /* 肄섑뀗痢좊? ?꾩そ??諛곗튂?섏뿬 ??댄????곗깋 ?щ갚??蹂댁씠?꾨줉 */
    justify-content: flex-start;
    /* ?몃줈 諛⑺뼢 ?꾩そ 諛곗튂 */
    padding: 80px 0 80px 0;
    /* ?꾩そ 理쒖냼 ?щ갚?쇰줈 ??댄???理쒕????꾩뿉 諛곗튂 */
    overflow: hidden;
    background-color: #fff;
}

.esg-bg {
    position: absolute;
    top: 320px;
    /* ??댄?+?ㅻ챸+踰꾪듉??紐⑤몢 ?곗깋 ?щ갚??蹂댁씠?꾨줉 異⑸텇???대┝ */
    left: 0;
    width: 100%;
    bottom: 60px;
    /* ?꾩븘???щ갚留뚰겮 諛곌꼍 異뺤냼 */
    border-radius: 12px;
    z-index: 1;
    overflow: hidden;
}

.esg-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 1;
}

.esg-bg .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.3) 100%);
    z-index: 2;
}

.esg-content {
    position: relative;
    z-index: 10;
    text-align: left;
    /* 醫뚯륫 ?뺣젹 ?곸슜 */
    width: 100%;
    color: var(--text-primary);
    /* ?댁뒪猷멸낵 ?숈씪??寃??怨꾩뿴 */
    max-width: 1200px;
    /* 而⑦뀒?대꼫 ?덈퉬 ?뺤옣 */
    margin: 0 auto;
    padding: 0 20px;
}

.esg-content h3 {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 15px;
    color: var(--accent-color);
    /* ?댁뒪猷?h3? ?숈씪???뚮???*/
    text-transform: uppercase;
}

.esg-content h2 {
    font-size: 42px;
    font-weight: 700;
    margin-bottom: 10px;
    line-height: 1.3;
    letter-spacing: -1.5px;
    color: var(--text-primary);
    /* 寃?뺤깋 ??댄? */
    word-break: keep-all;
    white-space: normal;
}

.esg-report-btn {
    position: absolute;
    bottom: 30px;
    right: 30px;
    z-index: 10;
    border-width: 1px;
    padding: 10px 24px;
    font-size: 13px;
    background: rgba(0, 0, 0, 0.4); /* 이미지 위 가독성 확보 */
}

.esg-content p {
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 30px;
    color: rgba(255, 255, 255, 0.9);
    /* 諛곌꼍?대?吏 ???곗깋 */
    font-weight: 400;
}

/* 6. Newsroom */
.section-flex-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 40px;
}

.news-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.news-main-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
}

.news-img {
    position: relative;
    height: 300px;
    overflow: hidden;
}

.news-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition-smooth);
}

.news-main-card:hover .news-img img {
    transform: scale(1.03);
}

.video-thumbnail .play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    transition: var(--transition-smooth);
}

.news-main-card:hover .video-thumbnail .play-btn {
    background: var(--accent-color);
}

.news-content {
    padding: 30px;
}

.tag {
    font-size: 12px;
    font-weight: 700;
    padding: 4px 10px;
    background: #eee;
    border-radius: 4px;
    color: var(--text-secondary);
    display: inline-block;
    margin-bottom: 15px;
}

.tag.blue {
    background: var(--accent-light);
    color: var(--accent-color);
}

.news-content h4 {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 10px;
}

.news-content p {
    color: var(--text-secondary);
    font-size: 14px;
}

.news-sub-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.news-list-item {
    display: flex;
    flex-direction: column;
    padding-bottom: 20px;
    border-bottom: 1px solid #ddd;
}

.news-list-item.border-none {
    border-bottom: none;
}

.news-list-item:hover h4 {
    color: var(--accent-color);
    text-decoration: underline;
}

.news-list-item h4 {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--text-primary);
}

.news-list-item p {
    color: var(--text-secondary);
    font-size: 14px;
}

/* 7. Insight */
.insight-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.insight-item {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transition: var(--transition-smooth);
    cursor: pointer;
}

.insight-item:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

.insight-item .img-box {
    height: 200px;
    overflow: hidden;
}

.insight-item .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.insight-item .text-box {
    padding: 25px;
}

.insight-item .date {
    font-size: 12px;
    font-weight: 700;
    color: var(--accent-color);
    margin-bottom: 10px;
}

.insight-item h4 {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
}

/* 8. Contact Banner */
.section-contact {
    padding: 80px 0;
}

.contact-banner {
    background: linear-gradient(135deg, var(--primary-color) 0%, #004488 100%);
    border-radius: 20px;
    padding: 60px 40px;
    color: #fff;
    box-shadow: 0 20px 40px rgba(0, 43, 92, 0.2);
}

.contact-banner h2 {
    font-size: 42px;
    font-weight: 300;
    margin-bottom: 15px;
}

.contact-banner h2 strong {
    font-weight: 800;
}

.contact-banner p {
    font-size: 18px;
    opacity: 0.9;
}

/* Modal Styling */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(5px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition-smooth);
}

.modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.modal-content {
    background: #fff;
    width: 100%;
    max-width: 500px;
    padding: 50px 40px;
    border-radius: 16px;
    position: relative;
    transform: translateY(20px);
    transition: var(--transition-smooth);
}

.modal-overlay.active .modal-content {
    transform: translateY(0);
}

.modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: var(--text-secondary);
}

.modal-content h2 {
    font-size: 28px;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 10px;
}

.modal-content p {
    color: var(--text-secondary);
    margin-bottom: 30px;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 8px;
    color: var(--text-primary);
}

.form-group input,
.form-group select {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 15px;
    outline: none;
    transition: var(--transition-smooth);
}

.form-group input:focus,
.form-group select:focus {
    border-color: var(--accent-color);
}

.btn-submit {
    width: 100%;
    background: var(--primary-color);
    color: #fff;
    padding: 16px;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    border-bottom: none;
}

.news-list-item:hover h4 {
    color: var(--accent-color);
    text-decoration: underline;
}

.news-list-item h4 {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--text-primary);
}

.news-list-item p {
    color: var(--text-secondary);
    font-size: 14px;
}

/* 7. Insight */
.insight-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.insight-item {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transition: var(--transition-smooth);
    cursor: pointer;
}

.insight-item:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

.insight-item .img-box {
    height: 200px;
    overflow: hidden;
}

.insight-item .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.insight-item .text-box {
    padding: 25px;
}

.insight-item .date {
    font-size: 12px;
    font-weight: 700;
    color: var(--accent-color);
    margin-bottom: 10px;
}

.insight-item h4 {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
}

/* 8. Contact Banner */
.section-contact {
    padding: 80px 0;
}

.contact-banner {
    background: linear-gradient(135deg, var(--primary-color) 0%, #004488 100%);
    border-radius: 20px;
    padding: 60px 40px;
    color: #fff;
    box-shadow: 0 20px 40px rgba(0, 43, 92, 0.2);
}

.contact-banner h2 {
    font-size: 42px;
    font-weight: 300;
    margin-bottom: 15px;
}

.contact-banner h2 strong {
    font-weight: 800;
}

.contact-banner p {
    font-size: 18px;
    opacity: 0.9;
}

/* Modal Styling */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(5px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition-smooth);
}

.modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.modal-content {
    background: #fff;
    width: 100%;
    max-width: 500px;
    padding: 50px 40px;
    border-radius: 16px;
    position: relative;
    transform: translateY(20px);
    transition: var(--transition-smooth);
}

.modal-overlay.active .modal-content {
    transform: translateY(0);
}

.modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: var(--text-secondary);
}

.modal-content h2 {
    font-size: 28px;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 10px;
}

.modal-content p {
    color: var(--text-secondary);
    margin-bottom: 30px;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 8px;
    color: var(--text-primary);
}

.form-group input,
.form-group select {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 15px;
    outline: none;
    transition: var(--transition-smooth);
}

.form-group input:focus,
.form-group select:focus {
    border-color: var(--accent-color);
}

.btn-submit {
    width: 100%;
    background: var(--primary-color);
    color: #fff;
    padding: 16px;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 10px;
    transition: var(--transition-smooth);
}

.btn-submit:hover {
    background: var(--accent-color);
}

/* Footer */
#footer {
    background: #111;
    color: #888;
    padding: 80px 0 40px;
    font-size: 14px;
}

.footer-top {
    display: flex;
    justify-content: space-between;
    margin-bottom: 60px;
    border-bottom: 1px solid #333;
    padding-bottom: 60px;
}

.footer-info p {
    margin-bottom: 8px;
}

.footer-logo {
    font-size: 36px;
    font-weight: 800;
    color: #fff;
    margin-bottom: 20px;
    letter-spacing: -1px;
}

.footer-links {
    display: flex;
    gap: 80px;
}

.footer-links h4 {
    color: #fff;
    font-size: 16px;
    margin-bottom: 20px;
}

.link-col {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.link-col a:hover {
    color: #fff;
}

.footer-bank-info .account {
    font-family: 'Inter', sans-serif;
    color: #fff !important;
    font-size: 14px;
    margin-bottom: 5px;
    white-space: nowrap !important;
    font-weight: 600;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sns-links-footer {
    display: flex;
    gap: 15px;
    font-size: 24px;
}

.sns-links-footer a:hover {
    color: #fff;
}

/* Scroll Animations */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s cubic-bezier(0.2, 0.8, 0.2, 1), transform 1s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.delay-1 {
    transition-delay: 0.2s;
}

.delay-2 {
    transition-delay: 0.4s;
}

.delay-3 {
    transition-delay: 0.6s;
}

/* PC 전용 껍데기 레이아웃 덮어쓰기 (중앙정렬 해제 및 페이드 동작 삽입) */
#login.section,
#join.section {
    justify-content: flex-start; /* 플렉스 중앙 정렬 속성을 파괴하고 무조건 위에서부터 렌더링 */
}

#login.section {
    padding-top: 12vh; /* 상단에서 약간만 떨어트려 회원가입 탭의 위치와 엇비슷하게 맞춤 */
}

#login.section.active,
#join.section.active {
    animation: fadeIn 0.4s ease-out; /* 다른 탭들처럼 부드럽게 등장하도록 애니메이션 속성 강제 부여 */
}

/* 로그인 창 내부 전용 다이어트 스케일링 (회원가입 창과 전체 세로 높이를 똑같이 맞추기 위한 64px 감량 작업) */
#login .auth-header {
    margin-bottom: 25px; /* 헤더 여백: 기존 40px -> 25px (-15px 축소) */
}
#login .social-btn {
    height: 46px; /* 두꺼운 소셜 버튼: 기존 58px -> 46px (-12px x 2 = -24px 축소) */
    font-size: 15px; /* 버튼 비율에 맞춰 폰트도 살짝 콤팩트하게 */
}
#login .auth-divider {
    margin-bottom: 20px; /* 구분선 아래 여백: 기존 35px -> 20px (-15px 축소) */
}
#login .auth-footer {
    margin-top: 25px; /* 하단 풋터 위 여백: 기존 35px -> 25px (-10px 축소) */
} /* 도합 약 64px 수직 길이 감소로 회원가입 창과 세로 높이 완벽 일치 */

/* ============================================================
   AUTH PAGES (LOGIN / JOIN) - PC VERSION
   ============================================================ */
.auth-container {
    max-width: 500px;
    margin: 40px auto 80px auto; /* auto 상향꼼수를 롤백하고 정상 여백으로 되돌림 */
    padding: 60px 40px;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
    text-align: center;
}

.auth-header {
    margin-bottom: 40px;
}

.auth-header h2 {
    font-size: 34px;
    font-weight: 800;
    color: var(--primary-color);
    margin-bottom: 12px;
    letter-spacing: -1.5px;
}

.auth-header p {
    color: var(--text-secondary);
    font-size: 24px;
    font-weight: 500;
}

.social-auth-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 30px;
}

.social-btn {
    width: 100%;
    height: 58px;
    border-radius: 12px;
    border: none;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.social-btn.naver {
    background-color: #03C75A;
    color: #fff;
}

.social-btn.kakao {
    background-color: #FEE500;
    color: #000;
}

.social-btn:hover {
    opacity: 0.95;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.auth-divider {
    position: relative;
    text-align: center;
    margin-bottom: 35px;
}

.auth-divider::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1px;
    background: #eee;
}

.auth-divider span {
    position: relative;
    background: #fff;
    padding: 0 20px;
    font-size: 14px;
    color: #aaa;
    font-weight: 500;
}

.auth-form {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.auth-input {
    width: 100%;
    height: 58px;
    padding: 0 25px;
    border: 1px solid #e1e1e1;
    border-radius: 12px;
    font-size: 16px;
    font-family: inherit;
    transition: var(--transition-smooth);
    background-color: #f9f9f9;
}

.auth-input:focus {
    border-color: var(--primary-color);
    background-color: #fff;
    outline: none;
    box-shadow: 0 0 0 4px rgba(0, 43, 92, 0.08);
}

.btn-auth-submit {
    height: 62px;
    background: var(--primary-color);
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition-smooth);
    margin-top: 15px;
}

.btn-auth-submit:hover {
    background: #001a3d;
    box-shadow: 0 10px 25px rgba(0, 43, 92, 0.2);
    transform: translateY(-2px);
}

.auth-footer {
    margin-top: 35px;
    font-size: 15px;
    color: #777;
}

.auth-footer a {
    color: var(--primary-color);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1.5px solid var(--primary-color);
    padding-bottom: 1px;
}

.auth-footer a:hover {
    color: var(--accent-color);
    border-color: var(--accent-color);
}

/* ============================================================
   PREMIUM CHECKOUT UI (CAPTURE 3 + CAPTURE 4 FIX)
   ============================================================ */
.payment-method-container {
    margin: 40px 0;
    background: #fff;
    padding: 30px;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
}

.checkout-section-title {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 14px;
}

/* 4-Column Grid per Capture 3 Layout */
.payment-grid-premium {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
}

.payment-tile {
    position: relative !important;
    height: 110px !important;
    background: #ffffff !important;
    border: 1px solid #e5e8eb !important;
    border-radius: 12px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    padding: 10px !important;
    overflow: visible !important;
}

.payment-tile:hover {
    border-color: #cbd5e1 !important;
    background: #fdfdfd !important;
}

.payment-tile.active {
    border: 2px solid #1a1a1a !important;
    background: #ffffff !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05) !important;
    z-index: 2;
}

/* Logo Wrap & Sizing - AUTHENTIC LOGO CONTROL */
.payment-logo-wrap {
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-bottom: 8px !important;
    width: 100% !important;
}

.payment-tile .logo-svg {
    height: 100% !important;
    width: auto !important;
    max-width: 90% !important;
}

.payment-tile span {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #333 !important;
    margin-top: 2px !important;
}

/* Point Badge (2% ?곷┰) */
.point-badge {
    position: absolute !important;
    top: -10px !important;
    right: 10px !important;
    background: #0085FF !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    padding: 4px 10px !important;
    border-radius: 20px !important;
    box-shadow: 0 4px 10px rgba(0, 133, 255, 0.3) !important;
    z-index: 5;
}

/* Support Icon/Check-mark */
.payment-tile .check-icon {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    font-size: 16px !important;
    color: #03c75a !important;
    display: none !important;
}

.payment-tile.active .check-icon {
    display: block !important;
}

/* Purchase Details */
.pay-details-area {
    margin-top: 25px !important;
    padding: 25px !important;
    background: #f8fafc !important;
    border-radius: 16px !important;
    display: none !important;
}

.pay-details-area.active {
    display: block !important;
}

.form-row {
    margin-bottom: 15px;
}

.form-row label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 8px;
}

.select-premium {
    width: 100%;
    height: 48px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0 15px;
    font-size: 14px;
}

@media (max-width: 992px) {
    .payment-grid-premium {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 480px) {
    .payment-grid-premium {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    .payment-tile {
        height: 100px !important;
    }
}

/* ============================================================
   PREMIUM CHECKOUT UI (FINAL STABLE VERSION)
   ============================================================ */
.payment-method-container {
    margin: 40px 0;
    background: #fff;
    padding: 0;
    border-radius: 20px;
}

.checkout-section-title {
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 14px;
}

/* 4-Column Grid per Capture 5 & 6 */
.payment-grid-premium {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
}

.payment-tile {
    position: relative !important;
    height: 70px !important;
    background: #ffffff !important;
    border: 1px solid #e5e8f0 !important;
    border-radius: 12px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    padding: 8px !important;
    text-align: center;
}

.payment-tile:hover {
    border-color: #cbd5e1 !important;
}

.payment-tile.active {
    border: 2px solid #000000 !important;
    background: #ffffff !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Logo Sizing - STRICT CONTROL for IMG & SVG */
.payment-logo-wrap {
    height: 22px !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-bottom: 6px !important;
}

.payment-logo-wrap img,
.payment-logo-wrap svg {
    max-height: 100% !important;
    width: auto !important;
    max-width: 90% !important;
    display: block !important;
    margin: 0 auto !important;
}

.payment-tile span {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #333 !important;
    display: block !important;
}

/* Form Area */
.pay-details-area {
    margin-top: 25px !important;
    padding: 25px !important;
    background: #f8fafc !important;
    border-radius: 16px !important;
    display: none !important;
}

.pay-details-area.active {
    display: block !important;
}

.form-row {
    margin-bottom: 15px;
}

.form-row label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 8px;
}

.select-premium {
    width: 100%;
    height: 48px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0 15px;
    font-size: 14px;
}


/* ============================================================
   MOBILE OPTIMIZATION (Unified & Clean)
   ============================================================ */
@media (max-width: 768px) {
    .pc-only {
        display: none !important;
    }

    .mobile-only {
        display: block !important;
    }

    .m-tab-content {
        display: none !important;
    }

    /* 쓱수리탭 모바일 최적화 (다크 테마) */
    .section-ssgsuri {
        padding: 40px 0;
    }

    .ssg-sub-nav {
        gap: 14px;
        margin: 20px 0 30px 0;
    }
    
    .ssg-tab-btn {
        padding: 10px 16px;
        font-size: 14px;
        flex: 1 1 calc(33.333% - 8px);
        text-align: center;
    }

    .ssgsuri-card {
        border-radius: 16px;
        margin: 0 10px;
    }

    .ssgsuri-img-header {
        height: 180px !important;
    }

    .ssgsuri-content-dark {
        padding: 24px;
    }
    
    .ssgsuri-content-dark h4 {
        font-size: 22px;
    }

    body {
        display: flex !important;
        flex-direction: column !important;
        min-height: 100vh !important;
        height: auto !important; /* 고정 높이 해제 */
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important; /* 위아래 전체 터치 스크롤 100% 허용 */
    }

    main {
        flex: 1 !important;
        display: flex !important;
        flex-direction: column !important;
        padding-top: 0 !important;
        min-height: 0 !important; /* 내부 요소 축소를 위한 필수 설정 */
    }

    .m-tab-content.active {
        flex: 1 !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important;
        align-items: center !important;
        padding-top: 140px !important; /* 모바일 전 탭 260px 여백의 50% 상향 복구 및 일괄 적용 완료 */
        padding-bottom: 20px !important; /* 바닥에 딱 붙지 않게 약간의 마진 제공 */
        min-height: 0 !important; /* 푸터가 밀리지 않게 높이 축소 허용 */
    }
    /* 🌟 스페셜 커스텀: 서비스, 뉴스룸, 인사이트 탭 전용 상단 여백 100px 강제 적용 */
    #service.m-tab-content.active,
    #newsroom.m-tab-content.active,
    #insight.m-tab-content.active {
        padding-top: 100px !important;
    }

    /* 홈 탭(히어로)만 30px 추가 하향 조정 (확실한 이동을 위해 transform 사용) */
    #home .hero-content {
        transform: translateY(30px) !important;
    }

    /* 모바일 탭 전환 시 화면 노출(display: block)과 동시에 나타나기(IntersectionObserver)가 겹쳐 애니메이션이 씹히는 버그 방어 */
    /* 탭이 활성화될 때마다 무조건 mFadeUp 키프레임 애니메이션을 재점화하여 다른 탭처럼 스르륵 나타나게 처리 */
    @keyframes mFadeUp {
        0% { opacity: 0; transform: translateY(30px); }
        100% { opacity: 1; transform: translateY(0); }
    }
    
    .m-tab-content.active .reveal {
        animation: mFadeUp 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) forwards !important;
        opacity: 0; 
    }
    .m-tab-content.active .reveal.delay-1 { animation-delay: 0.1s !important; }
    .m-tab-content.active .reveal.delay-2 { animation-delay: 0.2s !important; }
    .m-tab-content.active .reveal.delay-3 { animation-delay: 0.3s !important; }

    /* Typography - Greatly reduced for mobile */
    h1,
    .hero-content h2,
    .section-title h2 {
        font-size: 19px !important;
        line-height: 1.2 !important;
        margin-bottom: 8px !important;
    }
    
    .hero-content h2 {
        letter-spacing: -0.5px !important; /* 모바일 전용 자간 확장 튜닝 */
        white-space: normal !important; /* 모바일은 좁기 때문에 1줄 고정을 강제로 해제하여 다음 줄로 넘어가게 보존 */
    }

    h3 {
        font-size: 14px !important;
    }

    /* 모든 탭의 타이틀을 인사이트(Insight) 탭 기준으로 완벽 동기화 (사용자 요청) */
    .section-title {
        margin-top: 0 !important;
        margin-bottom: 15px !important;
        text-align: left !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .section-title h3 {
        font-size: 13px !important;
        font-weight: 800 !important;
        color: var(--primary-color) !important;
        letter-spacing: 2px !important;
        margin-bottom: 8px !important;
        text-align: left !important;
        display: block !important;
    }

    .section-title h2 {
        font-size: 22px !important;
        line-height: 1.3 !important;
        letter-spacing: -1px !important;
        text-align: left !important;
        justify-content: flex-start !important;
        margin-bottom: 0 !important;
    }

    p,
    span,
    a,
    label,
    .gnb a {
        font-size: 12px !important;
        line-height: 1.4 !important;
    }

    .hero-content p {
        font-size: 11px !important;
        margin-bottom: 15px !important;
    }

    /* 최신 최적화 값 유지 */
    br:not(.m-br) {
        display: none !important;
    }

    .m-br {
        display: block !important;
    }

    /* Horizontal Grids Fix */
    /* 서비스 탭 전용 내부 스크롤 영역 (하단 여백 및 가시성 보정) */
    .service-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important;
        max-height: calc(100vh - 265px) !important; /* 늘어난 상단 공간(160px)만큼 스크롤 박스 높이를 하단으로 대폭 연장 */
        overflow-y: auto !important;
        padding: 5px 5px 150px 5px !important; /* 하단 150px 공간 확보 */
        -webkit-overflow-scrolling: touch;
    }

    .people-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px 10px !important;
    }

    /* 인사이트 가시성 완전 복원 (reveal 애니메이션 클래스 무력화) */
    #insight .reveal {
        opacity: 1 !important;
        transform: none !important;
        visibility: visible !important;
    }

    /* 인사이트 전용 1열 및 내부 스크롤 (푸터 고정 방식) */
    #insight .insight-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important; /* 간격 축소 */
        max-height: calc(100vh - 250px) !important; /* 상단 여백 축소분(160px)만큼 스크롤 높이 추가 확보 */
        overflow-y: auto !important;
        padding: 5px 5px 150px 5px !important;
        -webkit-overflow-scrolling: touch;
        margin-top: -10px !important; /* 타이틀과 더 밀착 */
    }

    #insight .insight-item {
        width: 100% !important;
        display: block !important;
        background: #fff !important; /* 배경 복원 */
        border-radius: 16px !important;
        overflow: hidden !important;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05) !important;
        margin-bottom: 25px !important;
        opacity: 1 !important;
        visibility: visible !important;
        flex-shrink: 0 !important; /* 찌그러짐 방지 */
    }

    #insight .img-box {
        height: 180px !important; /* 가로 세로 비율 고려하여 조정 */
        width: 100% !important;
        overflow: hidden !important;
    }

    #insight .img-box img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
    }

    #insight .text-box {
        padding: 20px !important; /* 텍스트 여백 복원 */
    }

    #insight .text-box h4 {
        font-size: 16px !important;
        line-height: 1.5 !important;
        color: #000 !important;
        margin-top: 8px !important;
    }
    
    #insight .section-title {
        margin-top: 0 !important; /* 상단 강제 밀착 해제 */
        margin-bottom: 15px !important; /* 타이틀 하단 여백은 적정 수준 유지 */
    }

    /* 뉴스룸 가시성 완전 복원 (reveal 애니메이션 클래스 강제 무력화) */
    #newsroom .reveal {
        opacity: 1 !important;
        transform: none !important;
        visibility: visible !important;
    }

    /* 뉴스룸 전용 1열 및 내부 스크롤 (푸터 고정 방식) */
    #newsroom .news-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important; /* 내부 간격 소폭 축소 */
        max-height: calc(100vh - 240px) !important; /* 상단 여백 삭감치(160px)를 온전히 스크롤 영역으로 환원 */
        overflow-y: auto !important;
        padding: 10px 10px 150px 10px !important;
        -webkit-overflow-scrolling: touch;
        margin-top: -15px !important; /* 버튼과의 여백 줄이기 */
    }

    /* 메인 카드 강제 노출 보정 (ID 선택자 포함하여 우선순위 극대화) */
    #newsroom .news-main-card {
        display: block !important;
        width: 100% !important;
        min-height: 280px !important; /* 높이 여유 확보 */
        opacity: 1 !important;
        visibility: visible !important;
        margin-bottom: 25px !important;
    }
    
    #newsroom .news-img {
        display: block !important;
        height: 200px !important; /* 카메라 이미지가 잘 보이도록 200px 지정 */
        width: 100% !important;
        border-radius: 12px !important;
        overflow: hidden !important;
        background: #f0f0f0 !important;
    }

    #newsroom .news-img img {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    #newsroom .news-sub-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important;
        width: 100% !important;
    }

    #newsroom .btn-primary {
        padding: 5px 12px !important;
        font-size: 10px !important;
        width: auto !important;
        white-space: nowrap !important; /* 1줄 유지 */
        align-self: flex-end !important;
        border-radius: 20px !important;
        min-height: auto !important;
        margin-bottom: 5px !important; /* 하단 여백 축소 */
    }

    .people-card {
        text-align: center !important;
        padding: 20px 10px !important;
    }

    .people-img {
        width: 70px !important;
        height: 70px !important;
        margin: 0 auto 15px !important;
        border-radius: 50% !important;
        overflow: hidden !important;
    }

    .people-img img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .people-card .info h4 {
        display: inline-block !important;
        text-align: left !important;
        /* 따옴표 내어쓰기 (Hanging Punctuation) */
        text-indent: -0.45em !important;
        padding-left: 0.45em !important;
        font-size: 11px !important; /* 2줄 보장을 위해 약간 더 축소 */
        line-height: 1.5 !important;
        margin-bottom: 8px !important;
        word-break: keep-all !important;
    }

    .people-card .info p {
        font-size: 11px !important;
        color: #888 !important;
    }

    /* 회사소개 통계 수치 고유 스타일 (타 탭 영향 차단) */
    .company-stats-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 40px 15px !important; /* 상하 간격 40px로 확대하여 겹침 원천 차단 */
        margin-top: 50px !important;
    }

    .stat-item {
        text-align: center !important;
        padding: 5px !important;
    }

    .stat-item h3 {
        font-size: 20px !important; /* 요청에 따라 20px로 조정 */
        font-weight: 800 !important;
        margin-bottom: 8px !important;
        color: var(--primary-color) !important;
        letter-spacing: 0.3px !important; /* 자간 0.3px로 미세 조정 */
    }

    .stat-item p {
        font-size: 13px !important;
        color: #666 !important;
        margin: 0 !important;
        white-space: nowrap !important;
    }

    .service-card,
    .people-card {
        padding: 12px !important;
        border-radius: 10px !important;
    }

    .people-card {
        flex-direction: column !important;
        text-align: center;
    }

    .people-card .avatar {
        width: 60px !important;
        height: 60px !important;
        margin: 0 auto 8px !important;
    }

    /* Layout Adjustments */
    .container {
        padding: 0 15px !important;
    }

    .section {
        padding: 40px 0 !important;
        min-height: auto !important;
    }

    /* Mobile Header & GNB (Compact) */
    #m-header {
        height: 52px; /* 로고 크기에 맞춰 헤더 높이 최적화 */
        display: flex;
        align-items: center;
        position: fixed;
        top: 0;
        width: 100%;
        background: #ffffff; /* 흰색 배경 롤백 */
        z-index: 1001;
        padding: 0 15px;
        border-bottom: 1px solid #eee; /* 하단 회색 테두리 복구 */
    }

    .m-logo a {
        font-size: 22px !important; /* 부담스럽지 않은 아담한 크기로 축소 */
        font-weight: 900 !important;
        color: var(--primary-color) !important; /* 흰색 배경 전용 고급 네이비 컬러 */
        letter-spacing: -0.5px !important;
        display: flex;
        align-items: baseline;
        gap: 2px;
        transform: translateY(10px) !important; /* 🌟 붕 떠 있던 로고를 하단 테두리 선 바로 위로 완벽하게 끌어내려 안착시킵니다. */
    }

    .m-logo a span {
        font-size: 11px !important; /* 메인 로고의 절반 사이즈로 극적인 비율 튜닝 */
        font-weight: 600 !important;
        color: #475569 !important; /* 눈에 편안한 차분한 다크 슬레이트 회색 */
        display: inline-block !important;
    }

    #m-gnb {
        position: fixed;
        top: 52px; /* 헤더 높이 변경에 맞춰 위치 조정 */
        left: 0;
        width: 100%;
        background: #fdfdfd;
        border-bottom: 1px solid #eee;
        z-index: 1000;
        padding: 5px;
    }

    #m-gnb ul {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 4px;
        padding: 0;
    }

    #m-gnb ul li a {
        font-size: 12.5px !important; /* 메뉴 폰트 크기 상향 */
        padding: 8px 1px; /* 텍스트 너비 확보를 위해 좌우 패딩 미세 축소 */
        background: #fff;
        border: 1px solid #eee;
        border-radius: 6px;
        display: block;
        text-align: center;
        line-height: 1.2;
        font-weight: 700; /* 폰트 두께 강화 */
        color: #333; /* 가독성을 위해 색상 소폭 어둡게 */
        transition: all 0.25s cubic-bezier(0.25, 0.8, 0.25, 1);
    }

    /* 누를 때(Click) 약간 눌리는 듯한 느낌이나 튀어오르는(scale) 동작을 전부 삭제하여 지긋하게 유지 */
    #m-gnb ul li a:active {
        background: #f1f5f9;
        transform: none; /* 스케일 변경 금지 */
    }

    /* 선택되었을 때(Active) */
    #m-gnb ul li a.active {
        background: #f8fafc !important; /* 아주 부드러운 회백색 점등 */
        color: var(--primary-color) !important; /* 텍스트 진한 네이비 강조 */
        border-color: #cbd5e1;
        font-weight: 700 !important;
        /* 기존의 튀어오르거나 팝업되는 모든 애니메이션 완전히 제거 */
    }

    main {
        padding-top: 0 !important; /* .m-tab-content에서 padding-top을 제어하므로 중복 제거 */
    }

    /* 서비스 탭 기준 모든 탭 상단 높이 통일 (220px) */
    section.m-tab-content {
        padding: 220px 10px 0 !important; /* 하단 패딩 제거 (푸터 여백 중복 방지) */
    }

    /* ESG 섹션 간격 조정 (되겠습니다. 와 이미지 사이 여백 확보) */
    .esg-bg {
        top: 360px !important; /* 기존 320px에서 40px 추가 하향 */
    }
    .esg-content p {
        margin-bottom: 40px !important; /* 텍스트 하단 여백 추가 */
    }
    
    .esg-report-btn {
        bottom: 15px !important;
        right: 15px !important;
        padding: 8px 16px !important;
        font-size: 11px !important;
    }

    /* Hero Adjust (One-View Fit) */
    section.m-hero.m-tab-content {
        min-height: 280px !important;
        padding: 0 20px !important;
        margin: 0 !important;
        display: none !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        text-align: left !important;
        position: relative !important;
        overflow: hidden !important;
    }

    /* 홈 탭(#home)만 단독으로 정렬 설정을 강화하여 타 탭 영향 차단 */
    section#home.hero.m-tab-content.active,
    section#home.m-hero.m-tab-content.active {
        display: flex !important;
        flex: 1 !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        height: auto !important;
        min-height: 60vh !important; /* 확실한 세로 중앙 정렬을 위해 높이 대폭 확보 */
        padding-top: 0 !important; /* 상단 패딩 제거 */
    }

    .hero-content, .m-hero-content {
        padding: 0 !important;
        margin: 0 auto !important;
        width: fit-content !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        text-align: left !important;
    }

    /* Animation Disabled temporarily for Debugging */
    .m-hero-content {
        opacity: 1 !important;
        visibility: visible !important;
    }

    .m-hero-content h1 {
        display: none !important;
    }

    .hero-content h2, .m-hero-content h2 {
        display: block !important;
        font-size: 20px !important;
        margin: 0 0 25px 0 !important; /* 제목-본문 간격 대폭 확대 */
        line-height: 1.5 !important;
        color: #fff !important; /* 어두운 배경 대비 화이트로 변경 */
        text-shadow: 0 2px 4px rgba(0,0,0,0.3) !important; /* 시인성 확보를 위한 그림자 추가 */
    }

    .hero-content p, .m-hero-content p {
        display: block !important;
        margin: 0 0 50px 0 !important; /* 본문-버튼 간격 대폭 확대 (여유 있는 배치) */
        font-size: 11px !important;
        line-height: 1.8 !important;
        color: rgba(255,255,255,0.9) !important; /* 본문은 살짝 투명한 화이트로 고급스럽게 */
        text-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
        opacity: 1 !important;
        word-break: keep-all !important;
    }

    .hero-btns {
        display: flex !important;
        flex-direction: row !important;
        gap: 8px !important;
        width: 100% !important;
        margin: 0 !important;
        justify-content: flex-start !important;
        animation: mFadeUp 0.8s ease-out 0.6s both;
    }

    .hero-btns a {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 10px 25px !important;
        font-size: 11px !important;
        text-align: center;
        margin: 0 !important;
        box-shadow: 0 4px 12px rgba(0, 43, 92, 0.15) !important;
        transition: transform 0.3s ease !important;
    }

    .hero-btns a:active {
        transform: scale(0.95);
    }

    /* Integrated Sections (Login/Join/Product) Fix */
    .section-flex-header {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 15px !important;
        margin-bottom: 20px !important;
    }

    #contact .section-title h2 {
        font-size: 20px !important;
        margin-bottom: 10px !important;
    }

    #contact .section-title p {
        font-size: 11.5px !important;
        line-height: 1.6 !important;
        color: #666 !important;
        margin-bottom: 20px !important;
    }

    #contact .btn-primary {
        width: auto !important; /* 글자 길이에 맞게 자동 조절 */
        display: inline-flex !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 8px 16px !important;
        font-size: 12px !important;
        border-radius: 20px !important; /* 뉴스룸 버튼과 통일감 부여 */
        align-self: flex-end !important; /* 우측 정렬 */
        margin: 0 0 0 auto !important; /* 강제 우측 밀착 */
    }


    .m-product-box {
        display: flex !important;
        flex-direction: column !important;
        overflow-y: auto !important; /* 내부 스크롤 허용 */
        flex: 1 !important;
        padding-bottom: 150px !important; /* 하단 결제 영역 가시성 확보 */
        -webkit-overflow-scrolling: touch !important;
    }

    .m-prod-img {
        width: 100% !important;
        max-height: 250px !important; /* 이미지 크기 제한하여 하단 내용 노출 */
        object-fit: cover !important;
        border-radius: 12px !important;
        margin-bottom: 20px !important;
        flex-shrink: 0 !important;
    }

    #product .section-title {
        text-align: left !important;
        margin-bottom: 20px !important;
    }

    #product    .m-prod-info {
        padding: 0 5px !important; /* 좌우 여백 정돈 */
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
    }

    /* 프리미엄 3D 결제 진행 버튼 (최종 보정: 슬림 & 중앙 정렬) */
    .m-btn-primary {
        width: auto !important;
        min-width: 160px !important;
        margin: 25px auto 0 !important; /* 위 여백 주고 중앙 정렬 */
        padding: 10px 30px !important; /* 상하를 줄여 슬림하게, 좌우를 늘려 세련되게 */
        background: linear-gradient(135deg, var(--primary-color) 0%, #004488 100%) !important;
        color: #fff !important;
        border: none !important;
        border-radius: 50px !important;
        font-size: 14px !important;
        font-weight: 800 !important;
        letter-spacing: 0.5px !important;
        /* 3D 깊이감 (살짝 슬림하게) */
        box-shadow: 0 4px 0 #002D88, 0 8px 15px rgba(0, 51, 153, 0.2) !important;
        transition: all 0.1s ease !important;
        cursor: pointer !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        align-self: center !important; /* 중앙 배치 */
        position: relative !important;
        top: 0 !important;
        text-shadow: 0 1px 2px rgba(0,0,0,0.2) !important;
    }

    .m-btn-primary:active {
        top: 3px !important;
        box-shadow: 0 1px 0 #002D88, 0 3px 8px rgba(0, 51, 153, 0.15) !important;
        transform: scale(0.98) !important;
    }

    .m-btn-primary::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(rgba(255,255,255,0.2), transparent);
        border-radius: 16px;
        pointer-events: none;
    }

    /* 프리미엄 배지 스타일 */
    .m-badges {
        display: flex !important;
        gap: 6px !important;
        margin-bottom: 12px !important;
    }

    .m-badge {
        font-size: 10px !important;
        font-weight: 700 !important;
        padding: 4px 10px !important;
        border-radius: 50px !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
    }

    .m-badge:nth-child(1) { background: #E6F0FF !important; color: #0066CC !important; }
    .m-badge:nth-child(2) { background: #FFF0E6 !important; color: #FF6600 !important; }

    .m-prod-desc {
        font-size: 13px !important;
        color: #888 !important;
        margin-bottom: 6px !important;
        font-weight: 500 !important;
    }

    .m-prod-price {
        font-size: 24px !important;
        font-weight: 800 !important;
        color: #222 !important;
        margin-bottom: 20px !important;
    }

    .m-prod-price span {
        font-size: 28px !important;
    }

    /* 현대적인 옵션 선택창 */
    .m-option-group {
        margin-bottom: 25px !important;
    }

    .m-option-group label {
        display: block !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        color: #444 !important;
        margin-bottom: 8px !important;
    }

    #m-option-selector {
        width: 100% !important;
        padding: 12px 15px !important;
        border: 1.5px solid #eee !important;
        border-radius: 10px !important;
        font-size: 14px !important;
        color: #333 !important;
        background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 12px center !important;
        background-size: 16px !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        transition: border-color 0.2s !important;
    }

    #m-option-selector:focus {
        border-color: var(--primary-color) !important;
        outline: none !important;
    }

    /* 모바일 결제 수단 영역 스타일 */
    .m-payment-area {
        margin-top: 25px !important;
        padding-top: 20px !important;
        border-top: 1px solid #eee !important;
    }

    .m-payment-label {
        display: block !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        color: #333 !important;
        margin-bottom: 15px !important;
    }

    .m-payment-grid {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important; /* 4열로 컴팩트하게 배치 */
        gap: 8px !important;
        margin-bottom: 30px !important;
    }

    .m-pay-tile {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 12px 5px !important; /* 공간 절약 */
        background: #fff !important;
        border: 1.5px solid #f2f2f2 !important;
        border-radius: 10px !important;
        transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
        cursor: pointer !important;
    }

    .m-pay-tile img {
        height: 22px !important; /* 폰트에 맞춰 아이콘 크기 상향 */
        width: auto !important;
        margin-bottom: 8px !important;
        object-fit: contain !important;
        opacity: 0.9 !important; /* 더 선명하게 보정 */
    }

    .m-pay-tile span {
        font-size: 10.5px !important; /* 가독성을 위해 소폭 상향 */
        font-weight: 700 !important;
        color: #777 !important;
        white-space: nowrap !important;
    }

    .m-pay-tile.active {
        background: #fff !important;
        border-color: var(--primary-color) !important;
        box-shadow: 0 4px 12px rgba(0, 102, 204, 0.1) !important;
    }

    .m-pay-tile.active span {
        color: var(--primary-color) !important;
        font-weight: 700 !important;
    }

    .m-pay-tile.active img {
        filter: none !important;
    }

    /* Tab 2 (Company) - Standardized Top Alignment (Inherits from .m-tab-content.active) */

    /* 서비스 탭(#services) 내부 스크롤 및 여백 최적화 */
    #services.m-tab-content.active,
    #newsroom.m-tab-content.active,
    #insight.m-tab-content.active,
    #product.m-tab-content.active,
    #login.m-tab-content.active,
    #join.m-tab-content.active {
        display: flex !important;
        flex-direction: column !important;
        padding-top: 260px !important; /* 모든 스크롤 탭 여백을 260px로 더 넉넉하게 하향 조절 */
        flex: 1 !important;
        min-height: 0 !important;
        height: 100% !important; /* 높이 고정하여 내부 스크롤 활성화 */
        overflow: hidden !important;
    }

    #product .container {
        flex: 1 !important;
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
        min-height: 0 !important;
    }

    #services .m-container {
        flex: 1 !important;
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
        padding-bottom: 20px !important;
    }

    #services .section-title {
        margin-bottom: 20px !important;
        flex-shrink: 0 !important;
    }

    .service-card {
        width: 100% !important;
        margin-bottom: 10px !important;
        flex-shrink: 0 !important;
    }

    #company .m-stats-list {
        margin-top: 30px !important;
    }

    /* Tab 3 (Services) - Standardized Top Alignment & Dynamic Accordion */
    #services.m-tab-content.active {
        height: auto !important; /* 확장 고려 */
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    #services .service-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        width: 100% !important;
        max-width: 450px !important; /* 너무 퍼지지 않게 */
        margin: 0 auto !important;
    }
    #services .service-card {
        padding: 0 !important;
        border-radius: 16px !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        background: #fff !important;
        border: 1px solid #f0f0f0 !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05) !important;
        transition: all 0.4s ease !important;
    }
    #services .card-img {
        display: block !important; /* 이미지 복원 */
        height: 100px !important; /* 컴팩트한 높이 */
    }
    #services .card-content {
        padding: 15px !important;
        text-align: left !important; /* 가로 배열 유지 */
    }
    #services .card-content .icon {
        position: absolute !important;
        top: -20px !important;
        right: 20px !important;
        width: 40px !important;
        height: 40px !important;
        font-size: 20px !important;
        margin: 0 !important;
        background: var(--accent-color) !important;
        color: #fff !important;
        box-shadow: 0 4px 10px rgba(0,102,204,0.3) !important;
    }
    #services .card-content h4 {
        font-size: 16px !important;
        font-weight: 700 !important;
        margin-bottom: 8px !important;
    }
    #services .card-content p {
        font-size: 12px !important;
        line-height: 1.5 !important;
        color: #666 !important;
        margin-bottom: 8px !important;
    }
    
    /* Dynamic Accordion Logic */
    #services .service-details {
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
        margin-top: 0 !important;
    }
    #services .service-card.expanded .service-details {
        max-height: 500px !important;
        opacity: 1 !important;
        margin-top: 15px !important;
        border-top: 1px solid #f5f5f5 !important;
        padding-top: 15px !important;
        display: block !important;
    }
    #services .toggle-guide {
        display: flex !important; /* 안내 문구 복원 */
        justify-content: flex-end !important;
        font-size: 11px !important;
        color: var(--accent-color) !important;
        margin-top: 5px !important;
    }
    #services .service-card.expanded .toggle-guide i {
        transform: rotate(180deg) !important;
    }

    /* Mobile Footer Optimization (User Request: Padding 30px) */
    #m-footer {
        padding: 15px 15px 30px !important; /* 하단 여백 30px 적용 */
        text-align: center !important;
        background-color: #fff !important;
        margin-top: auto !important; /* 컨텐츠가 적어도 바닥에 붙도록 강제 */
    }

    .m-footer-info h4 {
        font-size: 11px !important;
        /* 축소 */
        margin-bottom: 2px !important;
    }

    .m-footer-info p {
        font-size: 9px !important;
        /* 축소 */
        margin-bottom: 2px !important;
    }

    .m-cs {
        gap: 4px !important;
        font-size: 9px !important;
        /* 축소 */
        margin-bottom: 3px !important;
        /* 축소 */
    }

    .m-cs strong {
        font-size: 10px !important;
    }

    /* 축소 */
    .m-copy {
        font-size: 8px !important;
        padding-top: 3px !important;
        margin-bottom: 0 !important; /* p 태그의 기본 하단 마진을 완전히 제거하여 10px 여백 유지 */
    }

    /* ============================================================ */
    /* 로그인/회원가입 최종 슬림화 (스타일 시트 최하단에서 우선순위 강제) */
    /* ============================================================ */
    #login.m-tab-content.active,
    #join.m-tab-content.active {
        padding-top: 240px !important; /* 상단 여백을 충분히 늘려 헤더와의 간격 확보 */
        padding-bottom: 250px !important;
        display: flex !important;
        flex-direction: column !important;
        overflow-y: auto !important;
    }

    #login .auth-container,
    #join .auth-container {
        max-width: 320px !important;
        margin: 0 auto !important;
        padding: 15px 20px 20px !important; /* 카드 전체 높이를 줄이기 위해 패딩 추가 축소 */
        border-radius: 16px !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05) !important;
    }

    .auth-header h2 { font-size: 22px !important; margin-bottom: 2px !important; }
    .auth-header p { font-size: 11px !important; margin-bottom: 10px !important; }

    .social-auth-group { gap: 5px !important; margin-bottom: 10px !important; }
    .social-btn {
        height: 42px !important; /* PC용 58px 강제 무력화 */
        padding: 0 !important;
        font-size: 14px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .auth-divider { margin: 10px 0 !important; font-size: 10px !important; }
    .auth-input {
        height: 44px !important; /* PC용 58px 강제 무력화 */
        padding: 0 15px !important;
        font-size: 14px !important;
    }

    .btn-auth-submit {
        height: 46px !important; /* PC용 62px 강제 무력화 */
        padding: 0 !important;
        font-size: 15px !important;
        margin-top: 2px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* 모바일 결제창 정밀 보정 (이미지 매칭) */
    .cash-receipt-box {
        padding: 15px !important;
        background: #fdfdfd !important;
        border: 1px solid #f0f0f0 !important;
    }
    .cash-receipt-box span {
        font-size: 15px !important;
        color: #000 !important;
    }
    .cash-receipt-box label {
        font-size: 13px !important;
        color: #666 !important;
    }
    .product-actions {
        grid-template-columns: 1.6fr 1fr !important;
        gap: 10px !important;
    }
    .btn-buy, .btn-cart {
        height: 54px !important;
        font-size: 16px !important;
    }
    .btn-buy {
        background: #002b5c !important; /* 이미지와 매칭되는 짙은 네이비 */
    }
    .btn-cart {
        border: 1px solid #ddd !important;
        color: #000 !important;
    }
    .product-info-footer i {
        color: #ccc !important;
    }
    .product-info-footer p {
        color: #777 !important;
        letter-spacing: -0.5px;
    }

    /* 모바일 전용 줄바꿈 활성화 */
    .m-br {
        display: block !important;
        content: "";
        margin-top: 0;
    }
}

/* PC에서는 모바일 전용 줄바꿈 숨김 */
.m-br {
    display: none;
}

/* ========================================================
   [신규 기능] 브랜드필름 모달 및 갤러리 슬라이드 디자인 (PC/모바일 공용)
======================================================== */
.video-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 43, 92, 0.45); /* FM 메인 브랜드 네이비 컬러를 은은하게 깐 반투명 배경 */
    backdrop-filter: blur(12px); /* 뒤쪽의 본문이 뽀얗게 비치는 고급 글래스모피즘(유리 장막) 효과 */
    -webkit-backdrop-filter: blur(12px); /* 모바일(아이폰 등) 웹킷 호환 방어 */
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
}
.video-modal.active {
    opacity: 1;
    visibility: visible;
}
.video-close {
    position: absolute;
    top: 30px;
    right: 30px;
    background: none;
    border: none;
    color: white;
    font-size: 40px;
    cursor: pointer;
    z-index: 10001;
    transition: transform 0.3s;
}
.video-close:hover {
    transform: scale(1.1);
    color: var(--accent-color);
}
.video-slider {
    position: relative;
    width: 90%;
    max-width: 1200px;
    height: 80vh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}
.video-slide {
    position: absolute;
    /* 넓은 박스가 아닌 실제 사진 비율에만 딱 달라붙게 중앙 정렬 트릭 사용 */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    border-radius: 16px; /* 모든 사진의 모서리 부드러운 라운딩 처리 */
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4); /* 대기업 팝업 특유의 진한 원근감 섀도우 추가 */
    opacity: 0;
    transition: opacity 1s ease-in-out; /* 1초간 스무스하게 넘어가는 크로스페이드 */
}
.video-slide.active {
    opacity: 1;
}

/* 모바일 전용 슬라이드 위치 및 레이아웃 최적화 */
@media (max-width: 768px) {
    .video-close { top: 20px; right: 20px; font-size: 32px; }
    .video-slider { width: 100%; height: 60vh; }
    
    /* [단독] 모바일 화면 전용 여백 확보 및 모서리 최적화 튜닝 */
    .video-slide {
        max-width: 85%; /* 좁은 폰 화면에서 좌우가 달라붙지 않게 여유 공간 부여 */
        max-height: 85%;
        border-radius: 12px; /* 스마트폰 앱처럼 12px 소형 라운딩 깎기 */
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); /* 아이폰 등을 고려한 최적화 섀도우 */
        -webkit-box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); /* 웹킷(사파리) 엔진 호환 방어용 그림자 */
    }
}

/* PC 화면 전용 인터페이스 최적화 (모바일 제외 보존 구역) */
@media (min-width: 769px) {
    /* HTML 전체 캐시로 인해 btn-nowrap-pc가 무시되는 현상 타파, 
       기존에 캐시되어 있는 부모 아이디(#newsroom)를 역추적해 강제 1줄 후킹 */
    #newsroom .btn-primary {
        white-space: nowrap !important;
        min-width: fit-content;
    }
}



/* [FIX] PC 전용 상단 여백 완벽 통일 (모바일 영향 방지) */
@media (min-width: 769px) {
    /* 기존 하드코딩된 예외 탭들을 130px로 강제 통일 (인사이트와 동일) */
    #ssgsuri, .section-ssgsuri, #partnership, .section-partners, #people, .section-people, #contact, .section-contact {
        padding: 170px 0 !important;
    }
    
    /* 서비스, 뉴스룸, 로그인, 회원가입은 100px로 일치 */
    #services, .section-business, #newsroom, .section-newsroom, #login, #join {
        padding: 100px 0 !important;
    }
}

/* =========================================
   Custom Select Dropdown Styles
========================================= */
.custom-select-wrapper {
    position: relative;
    user-select: none;
    width: 100%;
}
.custom-select-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    font-size: 15px;
    color: #333;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
}
.custom-select-trigger:after {
    content: '';
    width: 8px; height: 8px;
    border-right: 2px solid #64748b;
    border-bottom: 2px solid #64748b;
    transform: translateY(-3px) rotate(45deg);
    transition: transform 0.2s;
}
.custom-select-wrapper.open .custom-select-trigger:after {
    transform: translateY(3px) rotate(-135deg);
}
.custom-select-options {
    position: absolute;
    top: calc(100% + 5px);
    left: 0; right: 0;
    max-height: 250px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.2s ease;
}
.custom-select-wrapper.open .custom-select-options {
    opacity: 1; visibility: visible; transform: translateY(0);
}
.custom-option {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    cursor: pointer;
    font-size: 14px;
    border-bottom: 1px solid #f1f5f9;
    transition: background 0.1s;
}
.custom-option:last-child {
    border-bottom: none;
}
.custom-option:hover {
    background-color: #f8fafc;
}
.custom-option.selected {
    background-color: #eff6ff;
    color: #1d4ed8;
    font-weight: 600;
}
.custom-option-name {
    color: #334155;
    font-weight: 500;
}
.custom-option-price {
    color: #0f172a;
    font-size: 13.5px;
}
