/*
* 파일명: middle_layouts.css
* 위치: /wp-content/plugins/wp-auto-posting/assets/css/layouts/
* 기능: 미들 레이아웃 01-03번 전용 스타일
* 작성일: 2025-06-18
* 수정일: 2025-06-18
*/

/* =================================================
* 공통 기본 스타일
* ================================================= */

.middle-section {
   margin-bottom: 2rem;
   padding: 0;
}

/* 이미지 공통 스타일 */
.wpap-image img {
   width: 100%;
   height: auto;
   border-radius: 4px;
   display: block;
}

/* 컨텐츠 공통 스타일 */
.wpap-content {
   color: #333;
   line-height: 1.6;
   font-size: 1rem;
}

.wpap-content p {
   margin-bottom: 1rem;
}

.wpap-content p:last-child {
   margin-bottom: 0;
}

/* =================================================
* 레이아웃 01번 - 세로 배치형
* ================================================= */

[class*="wpap-layout01-"].wpap-layout01 {
   display: flex;
   flex-direction: column;
   gap: 1.5rem;
   padding: 1rem;
   background-color: #f9f9f9;
   border-radius: 8px;
}

.wpap-layout01 .wpap-block {
   display: flex;
   gap: 1rem;
   padding: 1rem;
   background-color: #ffffff;
   border: 1px solid #e0e0e0;
   border-radius: 6px;
   box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.wpap-layout01 .wpap-image {
   flex: 0 0 40%;
}

.wpap-layout01 .wpap-content {
   flex: 1;
   padding-left: 0.5rem;
}

/* =================================================
* 레이아웃 02번 - 혼합 배치형
* ================================================= */

[class*="wpap-layout02-"].wpap-layout02 {
   display: flex;
   flex-direction: column;
   gap: 1rem;
   padding: 1rem;
   background-color: #f8f9fa;
   border-radius: 8px;
}

/* 메인 블록 (첫 번째) */
.wpap-layout02 .wpap-main-block {
   display: flex;
   gap: 1rem;
   padding: 1rem;
   background-color: #ffffff;
   border: 1px solid #e0e0e0;
   border-radius: 6px;
   box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.wpap-layout02 .wpap-main-block .wpap-image {
   flex: 0 0 50%;
}

.wpap-layout02 .wpap-main-block .wpap-content {
   flex: 1;
   padding-left: 0.5rem;
}

/* 작은 이미지들 (2-4번째) */
.wpap-layout02 .wpap-small-images {
   display: flex;
   gap: 0.5rem;
   margin-bottom: 0.5rem;
}

.wpap-layout02 .wpap-small-image {
   flex: 1;
   border-radius: 4px;
   overflow: hidden;
}

/* 작은 컨텐츠들 (2-4번째) */
.wpap-layout02 .wpap-small-contents {
   display: flex;
   flex-direction: column;
   gap: 0.5rem;
}

.wpap-layout02 .wpap-small-content {
   padding: 0.75rem;
   background-color: #ffffff;
   border: 1px solid #e0e0e0;
   border-radius: 4px;
   box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

/* =================================================
* 레이아웃 03번 - 그리드형
* ================================================= */

[class*="wpap-layout03-"].wpap-layout03 {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 1rem;
   padding: 1rem;
   background-color: #f7f8fa;
   border-radius: 8px;
}

.wpap-layout03 .wpap-grid-item {
   padding: 1rem;
   background-color: #ffffff;
   border: 1px solid #e0e0e0;
   border-radius: 6px;
   box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.wpap-layout03 .wpap-image {
   margin-bottom: 0.75rem;
}

.wpap-layout03 .wpap-content {
   padding-top: 0.25rem;
}

/* =================================================
* 모바일 반응형 (768px 이하)
* ================================================= */

@media (max-width: 768px) {
   /* 레이아웃 01번 모바일 */
   .wpap-layout01 .wpap-block {
       flex-direction: column;
       gap: 0.75rem;
   }
   
   .wpap-layout01 .wpap-image {
       flex: none;
   }
   
   .wpap-layout01 .wpap-content {
       padding-left: 0;
   }
   
   /* 레이아웃 02번 모바일 */
   .wpap-layout02 .wpap-main-block {
       flex-direction: column;
       gap: 0.75rem;
   }
   
   .wpap-layout02 .wpap-main-block .wpap-image {
       flex: none;
   }
   
   .wpap-layout02 .wpap-main-block .wpap-content {
       padding-left: 0;
   }
   
   .wpap-layout02 .wpap-small-images {
       flex-direction: column;
       gap: 0.5rem;
   }
   
   /* 레이아웃 03번 모바일 */
   .wpap-layout03 {
       grid-template-columns: 1fr;
       gap: 0.75rem;
   }
}

/* =================================================
* 작은 모바일 (576px 이하)
* ================================================= */

@media (max-width: 576px) {
   .middle-section {
       margin-bottom: 1.5rem;
   }
   
   [class*="wpap-layout01-"].wpap-layout01,
   [class*="wpap-layout02-"].wpap-layout02,
   [class*="wpap-layout03-"].wpap-layout03 {
       padding: 0.75rem;
       gap: 1rem;
   }
   
   .wpap-layout01 .wpap-block,
   .wpap-layout02 .wpap-main-block,
   .wpap-layout03 .wpap-grid-item {
       padding: 0.75rem;
   }
   
   .wpap-layout02 .wpap-small-content {
       padding: 0.5rem;
   }
   
   .wpap-content {
       font-size: 0.95rem;
       line-height: 1.5;
   }
}


/* =================================================
 * 레이아웃 04번 - 지그재그 배치형
 * ================================================= */

[class*="wpap-layout04-"].wpap-layout04 {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 1rem;
    background-color: #fafbfc;
    border-radius: 8px;
}

.wpap-layout04 .wpap-zigzag-item {
    display: flex;
    gap: 1.5rem;
    padding: 1.5rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    border-left: 4px solid #007cba;
}

.wpap-layout04 .wpap-zigzag-reverse {
    flex-direction: row-reverse;
    border-left: none;
    border-right: 4px solid #28a745;
}

.wpap-layout04 .wpap-image {
    flex: 0 0 45%;
}

.wpap-layout04 .wpap-content {
    flex: 1;
}

/* =================================================
 * 레이아웃 05번 - 스텝 가이드형 (카드 스택 대신)
 * ================================================= */

[class*="wpap-layout05-"].wpap-layout05 {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 1.5rem;
    background-color: #f6f8fa;
    border-radius: 10px;
    border: 1px solid #e1e8ed;
}

.wpap-layout05 .wpap-step-item {
    background-color: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    border: 1px solid #e9ecef;
}

.wpap-layout05 .wpap-step-header {
    display: flex;
    align-items: center;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.wpap-layout05 .wpap-step-number {
    background-color: rgba(255, 255, 255, 0.2);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-weight: bold;
    font-size: 0.9rem;
    margin-right: 1rem;
    flex-shrink: 0;
}

.wpap-layout05 .wpap-step-line {
    flex: 1;
    height: 2px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.3) 0%, transparent 100%);
}

.wpap-layout05 .wpap-step-body {
    display: flex;
    gap: 1.5rem;
    padding: 1.5rem;
}

.wpap-layout05 .wpap-image {
    flex: 0 0 35%;
}

.wpap-layout05 .wpap-content {
    flex: 1;
    align-self: center;
}

/* 각 스텝별 다른 색상 */
.wpap-layout05 .wpap-step-item:nth-child(1) .wpap-step-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.wpap-layout05 .wpap-step-item:nth-child(2) .wpap-step-header {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.wpap-layout05 .wpap-step-item:nth-child(3) .wpap-step-header {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}

.wpap-layout05 .wpap-step-item:nth-child(4) .wpap-step-header {
    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
}


/* =================================================
 * 레이아웃 06번 - 타임라인형
 * ================================================= */

[class*="wpap-layout06-"].wpap-layout06 {
    position: relative;
    padding: 2rem 1rem;
    background-color: #f8f9fa;
    border-radius: 10px;
}

.wpap-layout06 .wpap-timeline-line {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 3px;
    background-color: #007cba;
    transform: translateX(-50%);
}

.wpap-layout06 .wpap-timeline-item {
    position: relative;
    margin-bottom: 3rem;
    width: 45%;
}

.wpap-layout06 .wpap-timeline-left {
    left: 0;
}

.wpap-layout06 .wpap-timeline-right {
    left: 55%;
}

.wpap-layout06 .wpap-timeline-marker {
    position: absolute;
    width: 15px;
    height: 15px;
    background-color: #007cba;
    border-radius: 50%;
    top: 20px;
}

.wpap-layout06 .wpap-timeline-left .wpap-timeline-marker {
    right: -32px;
}

.wpap-layout06 .wpap-timeline-right .wpap-timeline-marker {
    left: -32px;
}

.wpap-layout06 .wpap-timeline-content {
    padding: 1.5rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
}

.wpap-layout06 .wpap-image {
    margin-bottom: 1rem;
}

/* =================================================
 * 레이아웃 07번 - 매거진형 (높이 맞춤 개선)
 * ================================================= */
[class*="wpap-layout07-"].wpap-layout07 {
    display: flex;
    gap: 20px;
    margin: 30px 0;
    height: 500px; /* 전체 컨테이너 고정 높이 */
}

.wpap-layout07 .wpap-magazine-main {
    flex: 2;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    display: flex;
    flex-direction: column;
    height: 100%; /* 부모의 전체 높이 사용 */
}

.wpap-layout07 .wpap-magazine-main .wpap-image {
    height: 60%; /* 이미지 영역 60% */
    overflow: hidden;
}

.wpap-layout07 .wpap-magazine-main .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wpap-layout07 .wpap-magazine-main .wpap-content {
    padding: 20px;
    height: 40%; /* 텍스트 영역 40% */
    overflow-y: auto;
    font-size: 16px;
    line-height: 1.6;
}

.wpap-layout07 .wpap-magazine-sidebar {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: 100%; /* 부모의 전체 높이 사용 */
}

.wpap-layout07 .wpap-magazine-side {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    display: flex;
    height: calc(33.333% - 6.67px); /* 3개가 동일한 높이로 분할 (gap 고려) */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wpap-layout07 .wpap-magazine-side:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}

.wpap-layout07 .wpap-magazine-side .wpap-image {
    width: 120px;
    height: 100%;
    overflow: hidden;
    flex-shrink: 0;
}

.wpap-layout07 .wpap-magazine-side .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wpap-layout07 .wpap-magazine-side .wpap-content {
    padding: 15px;
    font-size: 14px;
    line-height: 1.5;
    overflow-y: auto;
    flex: 1;
}

/* 레이아웃 07 모바일 */
@media (max-width: 768px) {
    [class*="wpap-layout07-"].wpap-layout07 {
        flex-direction: column;
        height: auto;
    }
    
    .wpap-layout07 .wpap-magazine-main {
        height: 400px;
        margin-bottom: 20px;
    }
    
    .wpap-layout07 .wpap-magazine-sidebar {
        height: auto;
    }
    
    .wpap-layout07 .wpap-magazine-side {
        height: 120px;
    }
}

/* =================================================
 * 레이아웃 08번 - 모자이크형
 * ================================================= */

[class*="wpap-layout08-"].wpap-layout08 {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 1rem;
    padding: 1rem;
    background-color: #f5f7fa;
    border-radius: 10px;
    min-height: 400px;
}

.wpap-layout08 .wpap-size-large {
    grid-row: 1 / 3;
    grid-column: 1;
}

.wpap-layout08 .wpap-mosaic-item {
    padding: 1rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 3px 12px rgba(0,0,0,0.08);
    border: 1px solid #e2e8f0;
}

.wpap-layout08 .wpap-image {
    margin-bottom: 0.75rem;
}

.wpap-layout08 .wpap-size-small .wpap-content {
    font-size: 0.9rem;
}

/* =================================================
 * 모바일 반응형 (레이아웃 04-08)
 * ================================================= */

@media (max-width: 768px) {
    /* 레이아웃 04 모바일 */
    .wpap-layout04 .wpap-zigzag-item,
    .wpap-layout04 .wpap-zigzag-reverse {
        flex-direction: column;
        border-left: 4px solid #007cba;
        border-right: none;
    }
    
    /* 레이아웃 05 모바일 */
    .wpap-layout05 .wpap-step-body {
        flex-direction: column;
        gap: 1rem;
    }
    
    .wpap-layout05 .wpap-image {
        flex: none;
    }
    
    .wpap-layout05 .wpap-step-header {
        padding: 0.75rem 1rem;
    }
    
    .wpap-layout05 .wpap-step-number {
        font-size: 0.8rem;
        padding: 0.4rem 0.8rem;
    }
    
    /* 레이아웃 06 모바일 */
    .wpap-layout06 .wpap-timeline-line { display: none; }
    .wpap-layout06 .wpap-timeline-item {
        width: 100%;
        left: 0 !important;
    }
    .wpap-layout06 .wpap-timeline-marker { display: none; }
    

    
    /* 레이아웃 08 모바일 */
    .wpap-layout08 {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .wpap-layout08 .wpap-size-large {
        grid-row: auto;
        grid-column: auto;
    }
}


/* =================================================
 * 레이아웃 09번 - 북 페이지형 (단순한 좌우 펼침)
 * ================================================= */
[class*="wpap-book-layout-"].wpap-book-layout {
    padding: 2rem;
    background: #f8f6f0;
    border-radius: 8px;
}

/* 책 컨테이너 */
.wpap-book-layout .book-container {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
}

/* 책 척추 (중앙선) */
.wpap-book-layout .book-spine {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #8b7355;
    transform: translateX(-50%);
    z-index: 1;
}

/* 페이지 컨테이너 */
.wpap-book-layout .book-pages {
    display: block;
}

/* 개별 페이지 */
.wpap-book-layout .book-page {
    width: 48%;
    margin-bottom: 2rem;
    background: white;
    border: 1px solid #e0ddd4;
    box-shadow: 0 2px 8px rgba(139, 115, 85, 0.1);
    position: relative;
}

/* 좌측 페이지 */
.wpap-book-layout .page-left {
    float: left;
    margin-right: 4%;
    border-radius: 8px 0 0 8px;
}

/* 우측 페이지 */
.wpap-book-layout .page-right {
    float: right;
    border-radius: 0 8px 8px 0;
}

/* 페이지 내용 */
.wpap-book-layout .page-content {
    padding: 1.5rem;
}

/* 페이지 헤더 */
.wpap-book-layout .page-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #f0ede6;
}

.wpap-book-layout .page-number {
    background: #8b7355;
    color: white;
    font-weight: 600;
    font-size: 0.875rem;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    min-width: 32px;
    text-align: center;
}

.wpap-book-layout .page-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: #5a4d39;
    margin: 0;
    flex: 1;
}

/* 페이지 이미지 */
.wpap-book-layout .page-image {
    margin-bottom: 1rem;
    text-align: center;
}

.wpap-book-layout .page-image img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    border: 1px solid #e0ddd4;
}

/* 페이지 텍스트 */
.wpap-book-layout .page-text {
    color: #4a403a;
    line-height: 1.7;
    font-size: 0.95rem;
    text-align: justify;
}

.wpap-book-layout .page-text p {
    margin: 0 0 1rem 0;
}

.wpap-book-layout .page-text p:last-child {
    margin-bottom: 0;
}

/* 페이지 푸터 */
.wpap-book-layout .page-footer {
    margin-top: 1.5rem;
    padding-top: 1rem;
}

.wpap-book-layout .page-line {
    height: 1px;
    background: linear-gradient(to right, #e0ddd4, transparent);
}

/* 우측 페이지는 선이 반대 방향 */
.wpap-book-layout .page-right .page-line {
    background: linear-gradient(to left, #e0ddd4, transparent);
}

/* 플로트 해제 */
.wpap-book-layout .book-pages::after {
    content: '';
    display: table;
    clear: both;
}

/* 모바일 반응형 (768px 이하) */
@media (max-width: 768px) {
    [class*="wpap-book-layout-"].wpap-book-layout {
        padding: 1.5rem;
    }
    
    /* 모바일에서는 세로로 쌓기 */
    .wpap-book-layout .book-spine {
        display: none;
    }
    
    .wpap-book-layout .book-page {
        width: 100%;
        float: none;
        margin-right: 0;
        margin-bottom: 1.5rem;
        border-radius: 8px;
    }
    
    .wpap-book-layout .page-content {
        padding: 1.25rem;
    }
    
    .wpap-book-layout .page-title {
        font-size: 1rem;
    }
    
    .wpap-book-layout .page-text {
        font-size: 0.9rem;
    }
}

/*작은 모바일 (480px 이하) */
@media (max-width: 480px) {
    [class*="wpap-book-layout-"].wpap-book-layout {
        padding: 1rem;
    }
    
    .wpap-book-layout .page-content {
        padding: 1rem;
    }
    
    .wpap-book-layout .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .wpap-book-layout .page-number {
        align-self: flex-end;
    }
    
    .wpap-book-layout .page-title {
        font-size: 0.95rem;
    }
    
    .wpap-book-layout .page-text {
        font-size: 0.875rem;
        text-align: left;
    }
}

/* =================================================
 * 레이아웃 10번 - 블록 배치형 (상단 1개 + 중간 3개 + 하단 3개)
 * ================================================= */
[class*="wpap-layout10-"].wpap-layout10 {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin: 30px 0;
    padding: 20px;
    background: #f8f9fb;
    border-radius: 12px;
}

/* 상단 메인 섹션 */
.wpap-layout10 .wpap-top-section {
    display: flex;
    gap: 20px;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    min-height: 200px;
}

.wpap-layout10 .wpap-main-image {
    flex: 1;
    overflow: hidden;
}

.wpap-layout10 .wpap-main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wpap-layout10 .wpap-main-content {
    flex: 1.2;
    padding: 25px;
    display: flex;
    align-items: center;
    font-size: 16px;
    line-height: 1.6;
    color: #333;
}

/* 중간 이미지 섹션 */
.wpap-layout10 .wpap-middle-section {
    display: flex;
    gap: 15px;
    justify-content: space-between;
}

.wpap-layout10 .wpap-middle-item {
    flex: 1;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    height: 120px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wpap-layout10 .wpap-middle-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}

.wpap-layout10 .wpap-middle-item .wpap-image {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.wpap-layout10 .wpap-middle-item .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 하단 텍스트 섹션 */
.wpap-layout10 .wpap-bottom-section {
    display: flex;
    gap: 15px;
    justify-content: space-between;
}

.wpap-layout10 .wpap-bottom-item {
    flex: 1;
    background: #fff;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    min-height: 100px;
}

.wpap-layout10 .wpap-bottom-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}

.wpap-layout10 .wpap-bottom-item .wpap-content {
    font-size: 14px;
    line-height: 1.5;
    color: #555;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    [class*="wpap-layout10-"].wpap-layout10 {
        padding: 15px;
        gap: 15px;
    }
    
    .wpap-layout10 .wpap-top-section {
        flex-direction: column;
        min-height: auto;
    }
    
    .wpap-layout10 .wpap-main-image {
        height: 200px;
    }
    
    .wpap-layout10 .wpap-main-content {
        padding: 20px;
    }
    
    .wpap-layout10 .wpap-middle-section,
    .wpap-layout10 .wpap-bottom-section {
        flex-direction: column;
        gap: 10px;
    }
    
    .wpap-layout10 .wpap-middle-item {
        height: 150px;
    }
}


/* =================================================
 * 레이아웃 11번 - 단계별 계단형 (들여쓰기 계단 구조)
 * ================================================= */
[class*="wpap-layout11-"].wpap-layout11 {
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin: 30px 0;
    padding: 20px;
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    border-radius: 15px;
}

.wpap-layout11 .wpap-step-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background: #fff;
    padding: 25px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    position: relative;
}

.wpap-layout11 .wpap-step-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 25px rgba(0,0,0,0.15);
}

/* 계단형 들여쓰기 효과 */
.wpap-layout11 .wpap-step-1 {
    margin-left: 0;
}

.wpap-layout11 .wpap-step-2 {
    margin-left: 40px;
}

.wpap-layout11 .wpap-step-3 {
    margin-left: 80px;
}

.wpap-layout11 .wpap-step-4 {
    margin-left: 120px;
}

/* 단계 번호 */
.wpap-layout11 .wpap-step-number {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: bold;
    flex-shrink: 0;
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
}

/* 콘텐츠 영역 */
.wpap-layout11 .wpap-step-content {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    flex: 1;
}

/* 이미지 영역 (1.5배 확대) */
.wpap-layout11 .wpap-step-content .wpap-image {
    width: 180px; /* 기존 120px에서 180px로 1.5배 증가 */
    height: 135px; /* 기존 90px에서 135px로 1.5배 증가 */
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.wpap-layout11 .wpap-step-content .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.wpap-layout11 .wpap-step-item:hover .wpap-image img {
    transform: scale(1.05);
}

/* 텍스트 영역 */
.wpap-layout11 .wpap-step-content .wpap-content {
    flex: 1;
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    padding-top: 5px;
}

/* 연결선 효과 */
.wpap-layout11 .wpap-step-item:not(:last-child)::after {
    content: '';
    position: absolute;
    bottom: -25px;
    left: 65px; /* 번호 원 중앙에서 시작 */
    width: 2px;
    height: 20px;
    background: linear-gradient(to bottom, #667eea, #764ba2);
    z-index: 1;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    [class*="wpap-layout11-"].wpap-layout11 {
        padding: 15px;
        gap: 20px;
    }
    
    .wpap-layout11 .wpap-step-item {
        padding: 20px;
        margin-left: 0 !important; /* 모바일에서는 들여쓰기 제거 */
    }
    
    .wpap-layout11 .wpap-step-content {
        flex-direction: column;
        gap: 15px;
    }
    
    .wpap-layout11 .wpap-step-content .wpap-image {
        width: 100%;
        height: 200px;
    }
    
    .wpap-layout11 .wpap-step-number {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
    
    .wpap-layout11 .wpap-step-item:not(:last-child)::after {
        left: 45px;
    }
}

/* =================================================
 * 레이아웃 12번 - 플립 카드형
 * ================================================= */

[class*="wpap-layout12-"].wpap-layout12 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    padding: 1.5rem;
    background-color: #f8f9fa;
    border-radius: 12px;
}

.wpap-layout12 .wpap-flip-card {
    background-color: transparent;
    perspective: 1000px;
    height: 250px;
}

.wpap-layout12 .wpap-flip-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s;
    transform-style: preserve-3d;
}

.wpap-layout12 .wpap-flip-card:hover .wpap-flip-inner {
    transform: rotateY(180deg);
}

.wpap-layout12 .wpap-flip-front,
.wpap-layout12 .wpap-flip-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 1rem;
}

.wpap-layout12 .wpap-flip-front {
    background: linear-gradient(135deg, #74b9ff 0%, #0984e3 100%);
    color: white;
}

.wpap-layout12 .wpap-flip-back {
    background-color: #ffffff;
    color: #333;
    transform: rotateY(180deg);
    border: 1px solid #e9ecef;
}

.wpap-layout12 .wpap-flip-indicator {
    margin-top: 1rem;
    padding: 0.5rem 1rem;
    background-color: rgba(255,255,255,0.2);
    border-radius: 20px;
    font-size: 0.9rem;
}


/* 반응형 디자인 */
@media (max-width: 768px) {
    .wpap-layout12 {
        grid-template-columns: 1fr;
    }
    
    
}


/* =================================================
 * 레이아웃 13번 - 모던 글래스카드형 (유리 효과 + 그라데이션)
 * ================================================= */
[class*="wpap-layout13-"].wpap-layout13 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    margin: 40px 0;
    padding: 30px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 20px;
    position: relative;
    overflow: hidden;
}

/* 배경 장식 효과 */
[class*="wpap-layout13-"].wpap-layout13::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
    animation: float 20s infinite linear;
    pointer-events: none;
}

@keyframes float {
    0% { transform: rotate(0deg) translateX(20px) rotate(0deg); }
    100% { transform: rotate(360deg) translateX(20px) rotate(-360deg); }
}

/* 모던 글래스 카드 */
.wpap-layout13 .wpap-modern-card {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.wpap-layout13 .wpap-modern-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    background: rgba(255, 255, 255, 0.25);
}

/* 카드 이미지 영역 */
.wpap-layout13 .wpap-card-image {
    position: relative;
    height: 180px;
    overflow: hidden;
}

.wpap-layout13 .wpap-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.wpap-layout13 .wpap-modern-card:hover .wpap-card-image img {
    transform: scale(1.1);
}

/* 이미지 오버레이 */
.wpap-layout13 .wpap-card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 100%);
    display: flex;
    align-items: flex-end;
    padding: 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.wpap-layout13 .wpap-modern-card:hover .wpap-card-overlay {
    opacity: 1;
}

/* 카드 번호 */
.wpap-layout13 .wpap-card-number {
    font-size: 32px;
    font-weight: 900;
    color: white;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
    font-family: 'Arial Black', sans-serif;
}

/* 카드 콘텐츠 */
.wpap-layout13 .wpap-card-content {
    padding: 25px;
    position: relative;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
}

.wpap-layout13 .wpap-card-content .wpap-content {
    font-size: 15px;
    line-height: 1.6;
    color: #333;
    margin-bottom: 15px;
}

/* 카드 강조선 */
.wpap-layout13 .wpap-card-accent {
    width: 60px;
    height: 4px;
    background: linear-gradient(90deg, #667eea, #764ba2);
    border-radius: 2px;
    transition: width 0.3s ease;
}

.wpap-layout13 .wpap-modern-card:hover .wpap-card-accent {
    width: 100px;
}

/* 개별 카드 색상 차별화 */
.wpap-layout13 .wpap-card-1:hover {
    border-color: rgba(102, 126, 234, 0.4);
}

.wpap-layout13 .wpap-card-2:hover {
    border-color: rgba(118, 75, 162, 0.4);
}

.wpap-layout13 .wpap-card-3:hover {
    border-color: rgba(52, 152, 219, 0.4);
}

.wpap-layout13 .wpap-card-4:hover {
    border-color: rgba(231, 76, 60, 0.4);
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    [class*="wpap-layout13-"].wpap-layout13 {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 20px;
        margin: 20px 0;
    }
    
    .wpap-layout13 .wpap-card-image {
        height: 200px;
    }
    
    .wpap-layout13 .wpap-card-content {
        padding: 20px;
    }
    
    .wpap-layout13 .wpap-card-number {
        font-size: 24px;
    }
}

@media (max-width: 480px) {
    .wpap-layout13 .wpap-modern-card:hover {
        transform: translateY(-4px) scale(1.01);
    }
}

/* =================================================
 * 레이아웃 14번 - 미니멀 타임라인형 (좌우 교대 배치)
 * ================================================= */
[class*="wpap-layout14-"].wpap-layout14 {
    margin: 40px 0;
    padding: 30px 20px;
    background: #fafbfc;
    border-radius: 12px;
    border: 1px solid #e8eaed;
}

/* 타임라인 컨테이너 */
.wpap-layout14 .wpap-timeline-container {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
}

/* 중앙 타임라인 */
.wpap-layout14 .wpap-timeline-container::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, #e0e4e7, #c1c8cd);
    transform: translateX(-50%);
    z-index: 1;
}

/* 타임라인 아이템 */
.wpap-layout14 .wpap-timeline-item {
    position: relative;
    margin-bottom: 50px;
    display: flex;
    align-items: center;
}

.wpap-layout14 .wpap-timeline-item:last-child {
    margin-bottom: 0;
}

/* 좌측 배치 */
.wpap-layout14 .wpap-item-left {
    justify-content: flex-end;
    padding-right: 60px;
}

.wpap-layout14 .wpap-item-left .wpap-timeline-content {
    text-align: right;
}

/* 우측 배치 */
.wpap-layout14 .wpap-item-right {
    justify-content: flex-start;
    padding-left: 60px;
}

.wpap-layout14 .wpap-item-right .wpap-timeline-content {
    text-align: left;
}

/* 콘텐츠 영역 */
.wpap-layout14 .wpap-timeline-content {
    max-width: 320px;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    border: 1px solid #f0f2f5;
}

.wpap-layout14 .wpap-timeline-content:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

/* 콘텐츠 래퍼 */
.wpap-layout14 .wpap-content-wrapper {
    padding: 20px;
}

/* 이미지 영역 */
.wpap-layout14 .wpap-content-wrapper .wpap-image {
    width: 100%;
    height: 140px;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 15px;
    background: #f8f9fa;
}

.wpap-layout14 .wpap-content-wrapper .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.wpap-layout14 .wpap-timeline-content:hover .wpap-image img {
    transform: scale(1.05);
}

/* 텍스트 영역 */
.wpap-layout14 .wpap-content-wrapper .wpap-content {
    font-size: 14px;
    line-height: 1.6;
    color: #4a5568;
}

/* 타임라인 마커 */
.wpap-layout14 .wpap-timeline-marker {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
}

.wpap-layout14 .wpap-marker-dot {
    width: 40px;
    height: 40px;
    background: #ffffff;
    border: 3px solid #8b9dc3;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
    color: #8b9dc3;
    transition: all 0.3s ease;
}

.wpap-layout14 .wpap-timeline-item:hover .wpap-marker-dot {
    background: #8b9dc3;
    color: white;
    transform: scale(1.1);
}

/* 개별 마커 색상 */
.wpap-layout14 .wpap-timeline-item:nth-child(1) .wpap-marker-dot {
    border-color: #6c7b7f;
}

.wpap-layout14 .wpap-timeline-item:nth-child(2) .wpap-marker-dot {
    border-color: #8d9db6;
}

.wpap-layout14 .wpap-timeline-item:nth-child(3) .wpap-marker-dot {
    border-color: #9aabbd;
}

.wpap-layout14 .wpap-timeline-item:nth-child(4) .wpap-marker-dot {
    border-color: #a7b8c9;
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    [class*="wpap-layout14-"].wpap-layout14 {
        padding: 20px 15px;
    }
    
    .wpap-layout14 .wpap-timeline-container::before {
        left: 30px;
    }
    
    .wpap-layout14 .wpap-timeline-item {
        flex-direction: row;
        padding-left: 70px !important;
        padding-right: 0 !important;
        margin-bottom: 30px;
    }
    
    .wpap-layout14 .wpap-timeline-content {
        max-width: none;
        text-align: left !important;
    }
    
    .wpap-layout14 .wpap-timeline-marker {
        left: 30px;
    }
    
    .wpap-layout14 .wpap-marker-dot {
        width: 30px;
        height: 30px;
        font-size: 12px;
    }
}

/* =================================================
 * 레이아웃 15번 - 미니멀 피라미드형 (1-2-1 구조)
 * ================================================= */
[class*="wpap-layout15-"].wpap-layout15 {
    margin: 40px 0;
    padding: 30px;
    background: #fafbfc;
    border-radius: 12px;
    border: 1px solid #e8eaed;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

/* 상단 섹션 (1개) */
.wpap-layout15 .wpap-pyramid-top {
    display: flex;
    justify-content: center;
    margin-bottom: 25px;
}

/* 중간 섹션 (2개) */
.wpap-layout15 .wpap-pyramid-middle {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-bottom: 25px;
}

/* 하단 섹션 (1개) */
.wpap-layout15 .wpap-pyramid-bottom {
    display: flex;
    justify-content: center;
}

/* 피라미드 카드 공통 스타일 */
.wpap-layout15 .wpap-pyramid-card {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    border: 1px solid #f0f2f5;
    overflow: hidden;
}

.wpap-layout15 .wpap-pyramid-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

/* 단일 카드 (상단, 하단) */
.wpap-layout15 .wpap-card-single {
    width: 380px;
    max-width: 100%;
}

/* 이중 카드 (중간) */
.wpap-layout15 .wpap-card-dual {
    width: 280px;
    max-width: 100%;
}

/* 이미지 영역 */
.wpap-layout15 .wpap-pyramid-card .wpap-image {
    width: 100%;
    height: 160px;
    overflow: hidden;
    background: #f8f9fa;
}

.wpap-layout15 .wpap-card-dual .wpap-image {
    height: 140px;
}

.wpap-layout15 .wpap-pyramid-card .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.wpap-layout15 .wpap-pyramid-card:hover .wpap-image img {
    transform: scale(1.05);
}

/* 텍스트 영역 */
.wpap-layout15 .wpap-pyramid-card .wpap-content {
    padding: 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #4a5568;
}

.wpap-layout15 .wpap-card-dual .wpap-content {
    padding: 18px;
    font-size: 13px;
}

/* 피라미드 연결 효과 */
.wpap-layout15 .wpap-pyramid-top::after {
    content: '';
    position: absolute;
    width: 2px;
    height: 15px;
    background: linear-gradient(to bottom, #d0d7de, transparent);
    left: 50%;
    transform: translateX(-50%);
    margin-top: 200px;
    z-index: 1;
}

.wpap-layout15 .wpap-pyramid-middle::after {
    content: '';
    position: absolute;
    width: 2px;
    height: 15px;
    background: linear-gradient(to bottom, #d0d7de, transparent);
    left: 50%;
    transform: translateX(-50%);
    margin-top: 200px;
    z-index: 1;
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    [class*="wpap-layout15-"].wpap-layout15 {
        padding: 20px 15px;
        margin: 20px 0;
    }
    
    .wpap-layout15 .wpap-pyramid-middle {
        flex-direction: column;
        align-items: center;
        gap: 15px;
    }
    
    .wpap-layout15 .wpap-card-single,
    .wpap-layout15 .wpap-card-dual {
        width: 100%;
        max-width: 320px;
    }
    
    .wpap-layout15 .wpap-pyramid-card .wpap-image {
        height: 180px;
    }
    
    .wpap-layout15 .wpap-pyramid-top::after,
    .wpap-layout15 .wpap-pyramid-middle::after {
        display: none;
    }
}

/* =================================================
 * 레이아웃 16번 - 소프트 체크형 (흰 배경 최적화)
 * ================================================= */
[class*="wpap-layout16-"].wpap-layout16 {
    margin: 40px 0;
    padding: 25px;
    background: #f8f9fb;
    border-radius: 12px;
    border: 1px solid #e8eaed;
}

/* 체커 아이템 공통 스타일 */
.wpap-layout16 .wpap-checker-item {
    display: flex;
    align-items: center;
    gap: 25px;
    margin-bottom: 30px;
    padding: 25px;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    border: 1px solid #f0f2f5;
    transition: all 0.3s ease;
}

.wpap-layout16 .wpap-checker-item:last-child {
    margin-bottom: 0;
}

.wpap-layout16 .wpap-checker-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* 일반 레이아웃 (이미지 좌측, 텍스트 우측) */
.wpap-layout16 .wpap-checker-normal {
    flex-direction: row;
}

/* 역순 레이아웃 (텍스트 좌측, 이미지 우측) */
.wpap-layout16 .wpap-checker-reverse {
    flex-direction: row-reverse;
}

/* 이미지 영역 */
.wpap-layout16 .wpap-checker-item .wpap-image {
    flex: 0 0 200px;
    height: 140px;
    border-radius: 8px;
    overflow: hidden;
    background: #f8f9fa;
}

.wpap-layout16 .wpap-checker-item .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.wpap-layout16 .wpap-checker-item:hover .wpap-image img {
    transform: scale(1.05);
}

/* 텍스트 영역 */
.wpap-layout16 .wpap-checker-item .wpap-content {
    flex: 1;
    font-size: 15px;
    line-height: 1.6;
    color: #4a5568;
}

/* 패턴별 미묘한 차별화 */
.wpap-layout16 .wpap-pattern-a {
    border-left: 3px solid #a0aec0;
}

.wpap-layout16 .wpap-pattern-b {
    border-left: 3px solid #cbd5e0;
}

.wpap-layout16 .wpap-pattern-a:hover {
    border-left-color: #718096;
}

.wpap-layout16 .wpap-pattern-b:hover {
    border-left-color: #a0aec0;
}

/* 좌측 정렬 텍스트 (역순 레이아웃) */
.wpap-layout16 .wpap-checker-reverse .wpap-content {
    text-align: left;
    padding-right: 10px;
}

/* 우측 정렬 텍스트 (일반 레이아웃) */
.wpap-layout16 .wpap-checker-normal .wpap-content {
    text-align: left;
    padding-left: 10px;
}

/* 연결 라인 효과 (선택사항) */
.wpap-layout16 .wpap-checker-item:not(:last-child)::after {
    content: '';
    position: absolute;
    width: 1px;
    height: 20px;
    background: linear-gradient(to bottom, #e2e8f0, transparent);
    left: 50%;
    transform: translateX(-50%);
    margin-top: 180px;
    z-index: 1;
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    [class*="wpap-layout16-"].wpap-layout16 {
        padding: 20px 15px;
        margin: 20px 0;
    }
    
    .wpap-layout16 .wpap-checker-item {
        flex-direction: column !important;
        gap: 20px;
        padding: 20px;
        margin-bottom: 20px;
    }
    
    .wpap-layout16 .wpap-checker-item .wpap-image {
        flex: none;
        width: 100%;
        height: 200px;
    }
    
    .wpap-layout16 .wpap-checker-item .wpap-content {
        text-align: left !important;
        padding: 0;
    }
    
    .wpap-layout16 .wpap-checker-item:not(:last-child)::after {
        display: none;
    }
}

@media (max-width: 480px) {
    .wpap-layout16 .wpap-checker-item .wpap-image {
        height: 180px;
    }
}

/* =================================================
 * 레이아웃 17번 - 미니멀 플로우형 (순환 배치)
 * ================================================= */
[class*="wpap-layout17-"].wpap-layout17 {
    margin: 40px 0;
    padding: 30px;
    background: #f8f9fb;
    border-radius: 12px;
    border: 1px solid #e8eaed;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    position: relative;
}

/* 중앙 연결선 효과 */
[class*="wpap-layout17-"].wpap-layout17::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 60px;
    height: 60px;
    background: linear-gradient(45deg, #e2e8f0, #cbd5e0);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

[class*="wpap-layout17-"].wpap-layout17::after {
    content: '⚡';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    font-size: 24px;
    color: #718096;
}

/* 플로우 아이템 */
.wpap-layout17 .wpap-flow-item {
    position: relative;
}

/* 플로우 카드 */
.wpap-layout17 .wpap-flow-card {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    border: 1px solid #f0f2f5;
    overflow: hidden;
    transition: all 0.3s ease;
    position: relative;
}

.wpap-layout17 .wpap-flow-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

/* 카드 번호 */
.wpap-layout17 .wpap-card-number {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 32px;
    height: 32px;
    background: rgba(113, 128, 150, 0.9);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
    z-index: 3;
    backdrop-filter: blur(5px);
}

/* 이미지 영역 */
.wpap-layout17 .wpap-flow-card .wpap-image {
    width: 100%;
    height: 140px;
    overflow: hidden;
    background: #f8f9fa;
}

.wpap-layout17 .wpap-flow-card .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.wpap-layout17 .wpap-flow-card:hover .wpap-image img {
    transform: scale(1.05);
}

/* 텍스트 영역 */
.wpap-layout17 .wpap-flow-card .wpap-content {
    padding: 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #4a5568;
}

/* 개별 아이템 위치별 스타일 */
.wpap-layout17 .wpap-item-1 {
    grid-column: 1;
    grid-row: 1;
}

.wpap-layout17 .wpap-item-2 {
    grid-column: 2;
    grid-row: 1;
}

.wpap-layout17 .wpap-item-3 {
    grid-column: 1;
    grid-row: 2;
}

.wpap-layout17 .wpap-item-4 {
    grid-column: 2;
    grid-row: 2;
}

/* 연결선 효과 */
.wpap-layout17 .wpap-item-1::after {
    content: '';
    position: absolute;
    bottom: -12px;
    right: -12px;
    width: 24px;
    height: 24px;
    border-right: 2px solid #e2e8f0;
    border-bottom: 2px solid #e2e8f0;
    border-radius: 0 0 12px 0;
}

.wpap-layout17 .wpap-item-2::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: -12px;
    width: 24px;
    height: 24px;
    border-left: 2px solid #e2e8f0;
    border-bottom: 2px solid #e2e8f0;
    border-radius: 0 0 0 12px;
}

.wpap-layout17 .wpap-item-3::after {
    content: '';
    position: absolute;
    top: -12px;
    right: -12px;
    width: 24px;
    height: 24px;
    border-right: 2px solid #e2e8f0;
    border-top: 2px solid #e2e8f0;
    border-radius: 0 12px 0 0;
}

.wpap-layout17 .wpap-item-4::after {
    content: '';
    position: absolute;
    top: -12px;
    left: -12px;
    width: 24px;
    height: 24px;
    border-left: 2px solid #e2e8f0;
    border-top: 2px solid #e2e8f0;
    border-radius: 12px 0 0 0;
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    [class*="wpap-layout17-"].wpap-layout17 {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 20px 15px;
        margin: 20px 0;
    }
    
    [class*="wpap-layout17-"].wpap-layout17::before,
    [class*="wpap-layout17-"].wpap-layout17::after {
        display: none;
    }
    
    .wpap-layout17 .wpap-item-1,
    .wpap-layout17 .wpap-item-2,
    .wpap-layout17 .wpap-item-3,
    .wpap-layout17 .wpap-item-4 {
        grid-column: 1;
    }
    
    .wpap-layout17 .wpap-item-1::after,
    .wpap-layout17 .wpap-item-2::after,
    .wpap-layout17 .wpap-item-3::after,
    .wpap-layout17 .wpap-item-4::after {
        display: none;
    }
    
    .wpap-layout17 .wpap-flow-card .wpap-image {
        height: 160px;
    }
}

/* =================================================
 * 레이아웃 18번 - 소프트 분할 스크린형 (이미지 확대)
 * ================================================= */
[class*="wpap-layout18-"].wpap-layout18 {
    margin: 40px 0;
    padding: 20px;
    background: #f8f9fb;
    border-radius: 12px;
    border: 1px solid #e8eaed;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 20px;
    min-height: 500px;
}

/* 스크린 쿼드 */
.wpap-layout18 .wpap-screen-quad {
    background: #ffffff !important;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    border: 1px solid #f0f2f5;
    overflow: hidden;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
}

.wpap-layout18 .wpap-screen-quad:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

/* 스크린 헤더 (윈도우 바 효과) */
.wpap-layout18 .wpap-screen-header {
    height: 40px;
    background: linear-gradient(135deg, #f1f3f4, #e8eaed);
    display: flex;
    align-items: center;
    padding: 0 15px;
    border-bottom: 1px solid #e0e4e7;
    gap: 8px;
}

/* 스크린 닷 (창 컨트롤 버튼) */
.wpap-layout18 .wpap-screen-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #cbd5e0;
    transition: background-color 0.3s ease;
}

.wpap-layout18 .wpap-screen-dot:nth-child(1) {
    background: #fed7d7;
}

.wpap-layout18 .wpap-screen-dot:nth-child(2) {
    background: #fef5e7;
}

.wpap-layout18 .wpap-screen-dot:nth-child(3) {
    background: #d4edda;
}

.wpap-layout18 .wpap-screen-quad:hover .wpap-screen-dot:nth-child(1) {
    background: #fc8181;
}

.wpap-layout18 .wpap-screen-quad:hover .wpap-screen-dot:nth-child(2) {
    background: #f6e05e;
}

.wpap-layout18 .wpap-screen-quad:hover .wpap-screen-dot:nth-child(3) {
    background: #68d391;
}

/* 스크린 바디 */
.wpap-layout18 .wpap-screen-body {
    flex: 1;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* 이미지 영역 (크기 확대) */
.wpap-layout18 .wpap-screen-body .wpap-image {
    width: 100%;
    height: 180px; /* 기존보다 1.5배 확대 */
    border-radius: 8px;
    overflow: hidden;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
}

.wpap-layout18 .wpap-screen-body .wpap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.wpap-layout18 .wpap-screen-quad:hover .wpap-image img {
    transform: scale(1.05);
}

/* 텍스트 영역 */
.wpap-layout18 .wpap-screen-body .wpap-content {
    flex: 1;
    font-size: 14px;
    line-height: 1.6;
    color: #4a5568;
    overflow-y: auto;
}

/* 개별 쿼드 미묘한 차별화 */
.wpap-layout18 .wpap-quad-1 {
    border-top: 3px solid #cbd5e0;
}

.wpap-layout18 .wpap-quad-2 {
    border-top: 3px solid #d6bcfa;
}

.wpap-layout18 .wpap-quad-3 {
    border-top: 3px solid #9ae6b4;
}

.wpap-layout18 .wpap-quad-4 {
    border-top: 3px solid #fbb6ce;
}

.wpap-layout18 .wpap-quad-1:hover {
    border-top-color: #a0aec0;
}

.wpap-layout18 .wpap-quad-2:hover {
    border-top-color: #b794f6;
}

.wpap-layout18 .wpap-quad-3:hover {
    border-top-color: #68d391;
}

.wpap-layout18 .wpap-quad-4:hover {
    border-top-color: #f687b3;
}

/* 그리드 위치 고정 */
.wpap-layout18 .wpap-quad-1 {
    grid-column: 1;
    grid-row: 1;
}

.wpap-layout18 .wpap-quad-2 {
    grid-column: 2;
    grid-row: 1;
}

.wpap-layout18 .wpap-quad-3 {
    grid-column: 1;
    grid-row: 2;
}

.wpap-layout18 .wpap-quad-4 {
    grid-column: 2;
    grid-row: 2;
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    [class*="wpap-layout18-"].wpap-layout18 {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, auto);
        gap: 15px;
        padding: 15px;
        margin: 20px 0;
        min-height: auto;
    }
    
    .wpap-layout18 .wpap-quad-1,
    .wpap-layout18 .wpap-quad-2,
    .wpap-layout18 .wpap-quad-3,
    .wpap-layout18 .wpap-quad-4 {
        grid-column: 1;
    }
    
    .wpap-layout18 .wpap-quad-1 {
        grid-row: 1;
    }
    
    .wpap-layout18 .wpap-quad-2 {
        grid-row: 2;
    }
    
    .wpap-layout18 .wpap-quad-3 {
        grid-row: 3;
    }
    
    .wpap-layout18 .wpap-quad-4 {
        grid-row: 4;
    }
    
    .wpap-layout18 .wpap-screen-body .wpap-image {
        height: 160px;
    }
    
    .wpap-layout18 .wpap-screen-body {
        padding: 15px;
    }
}

@media (max-width: 480px) {
    .wpap-layout18 .wpap-screen-body .wpap-image {
        height: 140px;
    }
}


/* =================================================
 * 레이아웃 19번 - 소프트 갤러리 슬라이드형 (흰 배경 최적화)
 * ================================================= */
[class*="wpap-layout19-"].wpap-layout19 {
    margin: 40px 0;
    padding: 25px;
    background: #f8f9fb;
    border-radius: 12px;
    border: 1px solid #e8eaed;
}

/* 갤러리 헤더 */
.wpap-layout19 .wpap-gallery-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding: 15px 20px;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border: 1px solid #f0f2f5;
}

/* 갤러리 타이틀 */
.wpap-layout19 .wpap-gallery-title {
    font-size: 16px;
    font-weight: 600;
    color: #4a5568;
}

/* 갤러리 컨트롤 */
.wpap-layout19 .wpap-gallery-controls {
    display: flex;
    gap: 8px;
}

.wpap-layout19 .wpap-control-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #cbd5e0;
    transition: all 0.3s ease;
    cursor: pointer;
}

.wpap-layout19 .wpap-control-dot.active {
    background: #718096;
    transform: scale(1.2);
}

.wpap-layout19 .wpap-control-dot:hover {
    background: #a0aec0;
}

/* 메인 갤러리 */
.wpap-layout19 .wpap-gallery-main {
    margin-bottom: 20px;
}

.wpap-layout19 .wpap-main-frame {
    position: relative;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #f0f2f5;
}

.wpap-layout19 .wpap-main-frame img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.wpap-layout19 .wpap-main-frame:hover img {
    transform: scale(1.02);
}

/* 메인 오버레이 */
.wpap-layout19 .wpap-main-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,0.6));
    padding: 30px 25px 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.wpap-layout19 .wpap-main-frame:hover .wpap-main-overlay {
    opacity: 1;
}

.wpap-layout19 .wpap-main-content {
    color: white;
    font-size: 14px;
    line-height: 1.5;
}

/* 썸네일 갤러리 */
.wpap-layout19 .wpap-gallery-thumbs {
    display: flex;
    gap: 15px;
    justify-content: space-between;
}

/* 개별 썸네일 */
.wpap-layout19 .wpap-gallery-thumb {
    flex: 1;
}

.wpap-layout19 .wpap-thumb-frame {
    position: relative;
    background: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    border: 1px solid #f0f2f5;
    margin-bottom: 10px;
    transition: all 0.3s ease;
}

.wpap-layout19 .wpap-thumb-frame:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.wpap-layout19 .wpap-thumb-frame img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.wpap-layout19 .wpap-thumb-frame:hover img {
    transform: scale(1.05);
}

/* 썸네일 오버레이 */
.wpap-layout19 .wpap-thumb-overlay {
    position: absolute;
    top: 10px;
    right: 10px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.wpap-layout19 .wpap-thumb-frame:hover .wpap-thumb-overlay {
    opacity: 1;
}

.wpap-layout19 .wpap-thumb-number {
    background: rgba(113, 128, 150, 0.9);
    color: white;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: bold;
    backdrop-filter: blur(5px);
}

/* 썸네일 콘텐츠 */
.wpap-layout19 .wpap-thumb-content {
    padding: 12px 8px;
    font-size: 13px;
    line-height: 1.5;
    color: #4a5568;
    text-align: center;
    background: #ffffff;
    border-radius: 6px;
    border: 1px solid #f0f2f5;
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    [class*="wpap-layout19-"].wpap-layout19 {
        padding: 20px 15px;
        margin: 20px 0;
    }
    
    .wpap-layout19 .wpap-gallery-header {
        flex-direction: column;
        gap: 10px;
        text-align: center;
        padding: 15px;
    }
    
    .wpap-layout19 .wpap-main-frame img {
        height: 250px;
    }
    
    .wpap-layout19 .wpap-gallery-thumbs {
        flex-direction: column;
        gap: 15px;
    }
    
    .wpap-layout19 .wpap-gallery-thumb {
        max-width: none;
    }
    
    .wpap-layout19 .wpap-thumb-frame {
        display: flex;
        gap: 15px;
        padding: 15px;
    }
    
    .wpap-layout19 .wpap-thumb-frame img {
        width: 100px;
        height: 80px;
        flex-shrink: 0;
    }
    
    .wpap-layout19 .wpap-thumb-content {
        flex: 1;
        padding: 0;
        background: none;
        border: none;
        text-align: left;
        display: flex;
        align-items: center;
    }
    
    .wpap-layout19 .wpap-thumb-overlay {
        top: 5px;
        right: 5px;
    }
}

@media (max-width: 480px) {
    .wpap-layout19 .wpap-main-frame img {
        height: 200px;
    }
    
    .wpap-layout19 .wpap-gallery-title {
        font-size: 14px;
    }
}

/* =================================================
 * 레이아웃 20번 - 미니멀 갤러리형
 * ================================================= */
[class*="wpap-gallery-"].wpap-minimal-gallery {
    padding: 2.5rem;
    background: #fafafa;
    border-radius: 0;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* 갤러리 헤더 */
.wpap-minimal-gallery .gallery-header {
    text-align: center;
    margin-bottom: 3rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e8e8e8;
}

.wpap-minimal-gallery .gallery-title {
    font-size: 2rem;
    font-weight: 300;
    color: #2c2c2c;
    margin: 0 0 0.5rem 0;
    letter-spacing: 0.02em;
}

.wpap-minimal-gallery .gallery-subtitle {
    font-size: 1rem;
    color: #888;
    font-weight: 400;
    margin: 0;
}

/* 갤러리 그리드 */
.wpap-minimal-gallery .gallery-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: auto auto;
    gap: 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

/* 갤러리 아이템 */
.wpap-minimal-gallery .gallery-item {
    background: white;
    border: 1px solid #efefef;
    overflow: hidden;
    position: relative;
}

/* 첫 번째 아이템 (대형) */
.wpap-minimal-gallery .featured-item {
    grid-row: span 2;
}

/* 일반 아이템 */
.wpap-minimal-gallery .regular-item {
    grid-row: span 1;
}

/* 아이템 래퍼 */
.wpap-minimal-gallery .item-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* 이미지 프레임 */
.wpap-minimal-gallery .gallery-image-frame {
    position: relative;
    overflow: hidden;
    background: #f8f8f8;
}

/* 대형 아이템의 이미지 */
.wpap-minimal-gallery .featured-item .gallery-image-frame {
    height: 300px;
}

/* 일반 아이템의 이미지 */
.wpap-minimal-gallery .regular-item .gallery-image-frame {
    height: 120px;
}

.wpap-minimal-gallery .gallery-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 아이템 콘텐츠 */
.wpap-minimal-gallery .item-content {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative;
}

/* 일반 아이템의 콘텐츠 패딩 조정 */
.wpap-minimal-gallery .regular-item .item-content {
    padding: 1rem;
}

/* 아이템 메타 */
.wpap-minimal-gallery .item-meta {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1rem;
    align-items: center;
}

.wpap-minimal-gallery .item-tag {
    background: #2c2c2c;
    color: white;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.25rem 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.wpap-minimal-gallery .item-category {
    color: #888;
    font-size: 0.875rem;
    font-weight: 400;
}

/* 아이템 텍스트 */
.wpap-minimal-gallery .item-text {
    color: #444;
    line-height: 1.6;
    flex: 1;
    font-size: 0.95rem;
}

.wpap-minimal-gallery .item-text p {
    margin: 0 0 1rem 0;
}

.wpap-minimal-gallery .item-text p:last-child {
    margin-bottom: 0;
}

/* 대형 아이템 텍스트 크기 조정 */
.wpap-minimal-gallery .featured-item .item-text {
    font-size: 1rem;
}

/* 일반 아이템 텍스트 크기 조정 */
.wpap-minimal-gallery .regular-item .item-text {
    font-size: 0.875rem;
}

/* 아이템 번호 */
.wpap-minimal-gallery .item-number {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: rgba(255, 255, 255, 0.9);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: #666;
    border: 1px solid #e8e8e8;
}

/* 갤러리 푸터 */
.wpap-minimal-gallery .gallery-footer {
    margin-top: 3rem;
    text-align: center;
}

.wpap-minimal-gallery .separator-line {
    width: 60px;
    height: 2px;
    background: #2c2c2c;
    margin: 0 auto;
}

/* 모바일 반응형 (768px 이하) */
@media (max-width: 768px) {
    [class*="wpap-gallery-"].wpap-minimal-gallery {
        padding: 1.5rem;
    }
    
    .wpap-minimal-gallery .gallery-header {
        margin-bottom: 2rem;
        padding-bottom: 1rem;
    }
    
    .wpap-minimal-gallery .gallery-title {
        font-size: 1.5rem;
    }
    
    .wpap-minimal-gallery .gallery-subtitle {
        font-size: 0.9rem;
    }
    
    /* 모바일에서는 단일 컬럼 */
    .wpap-minimal-gallery .gallery-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .wpap-minimal-gallery .featured-item,
    .wpap-minimal-gallery .regular-item {
        grid-row: span 1;
    }
    
    /* 모바일에서 이미지 높이 통일 */
    .wpap-minimal-gallery .gallery-image-frame {
        height: 180px !important;
    }
    
    .wpap-minimal-gallery .item-content {
        padding: 1.25rem !important;
    }
    
    .wpap-minimal-gallery .item-text {
        font-size: 0.9rem !important;
    }
}

/* 작은 모바일 (480px 이하) */
@media (max-width: 480px) {
    [class*="wpap-gallery-"].wpap-minimal-gallery {
        padding: 1rem;
    }
    
    .wpap-minimal-gallery .gallery-title {
        font-size: 1.25rem;
    }
    
    .wpap-minimal-gallery .gallery-grid {
        gap: 0.75rem;
    }
    
    .wpap-minimal-gallery .gallery-image-frame {
        height: 140px !important;
    }
    
    .wpap-minimal-gallery .item-content {
        padding: 1rem !important;
    }
    
    .wpap-minimal-gallery .item-meta {
        margin-bottom: 0.75rem;
        gap: 0.5rem;
    }
    
    .wpap-minimal-gallery .item-tag {
        font-size: 0.7rem;
        padding: 0.2rem 0.5rem;
    }
    
    .wpap-minimal-gallery .item-category {
        font-size: 0.8rem;
    }
    
    .wpap-minimal-gallery .item-text {
        font-size: 0.85rem !important;
        line-height: 1.5;
    }
    
    .wpap-minimal-gallery .item-number {
        width: 28px;
        height: 28px;
        font-size: 0.7rem;
    }
    
    .wpap-minimal-gallery .gallery-footer {
        margin-top: 2rem;
    }
}