/* --- 1. 기본 초기화 및 폰트 설정 --- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Noto Sans KR', sans-serif;
    color: #333;
    background-color: #fff;
    line-height: 1.6;
}

/* --- 2. 메인 타이틀 스타일 (요청 사항 반영) --- */
.partners-wrapper {
    max-width: 1200px;
    margin: 80px auto; /* 상단 여백 조절 */
    padding: 0 20px;
}

.main-title-modern.center {
    text-align: center;
    margin-bottom: 80px;
    position: relative;
}

.main-title-modern .sub-text {
    display: block;
    font-size: 15px;
    color: #888;
    font-weight: 500;
    letter-spacing: 5px;
    margin-bottom: 10px;
    text-transform: uppercase;
}

.main-title-modern .main-text {
    font-size: 46px;
    font-weight: 900;
    color: #222;
    line-height: 1;
    margin: 0;
    letter-spacing: -1.5px;
}

.main-title-modern.center::after {
    content: '';
    display: block;
    width: 70px;
    height: 4px;
    background: linear-gradient(90deg, #5d406d, #9c7bb5);
    margin: 25px auto 0;
    border-radius: 2px;
}

/* --- 3. 기존 서비스 섹션 간섭 차단 (핵심) --- */
#service { width: 100%; overflow: hidden; }

/* .sub_img(상단배너)와 .sub_img2(예외영역)에는 절대 적용되지 않도록 설정 */
#service section:not(.sub_img):not(.sub_img2) {
    padding: 170px 35px 40px 35px;
    text-align: center;
    border: 1px solid #dfdfdf;
    margin: 1%;
    width: 31.33%;
    box-sizing: border-box;
    min-height: 320px;
    float: left;
}

/* 상단 배너 및 탭 메뉴 영역 강제 초기화 (간섭 방지) */
#service .sub_img, 
#service .sub_img2,
#service .sub_img2 * {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    border: none !important;
    background: none !important;
    box-sizing: content-box;
}

/* --- 4. 파트너 로고 그리드 스타일 --- */
.partner-section { padding: 40px 0; }

.logo-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px;
    margin-top: 30px;
}

.logo-box {
    flex: 0 0 calc((100% - 60px) / 5);
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px; 
    background-color: #fff;
    border: 1px solid #eee;
    border-radius: 6px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.03);
    transition: all 0.3s ease;
}

.logo-box:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}

.logo-box img {
    max-width: 100%; 
    max-height: 100%;
    object-fit: contain;
}

/* --- 5. 반응형 (모바일 대응) --- */
@media (max-width: 1023px) {
    .main-title-modern .main-text { font-size: 38px; }
    .logo-box { flex: 0 0 calc((100% - 45px) / 4); }
}

@media (max-width: 768px) {
    #service section:not(.sub_img):not(.sub_img2) {
        width: 98% !important;
        float: none !important;
        margin: 10px auto !important;
    }
    .logo-box { flex: 0 0 calc((100% - 30px) / 3); }
    .main-title-modern .main-text { font-size: 32px; }
}