/* common */
.h3_tit{font-size:28px;color:#000;font-weight:500;letter-spacing:-1px;position:relative;;margin:30px 0 20px 0}
.h3_tit:before{content:'';position:absolute;top:-7px;left:0;width:24px;height:4px;background:#2374ec}

/* table */
.table_type1{width:100%;padding-bottom:30px}
.table_type1 table{border-top:2px #536886 solid}
.table_type1 td,.table_type1 th{font-size:17px;border-bottom:1px #ddd solid;padding:4px 12px}
.table_type1 th{background:#f4f6f9;color:#445058;vertical-align:middle;font-weight:500;line-height:25px;height:55px}
.table_type1 td{padding:15px 12px;line-height:28px;text-align:center}



/* 인사말 */
.greeting{width:100%;overflow:hidden}
.greeting_top{position:relative;height:395px;background:url(../img/sub/greeting_top.jpg) no-repeat 50% 50%;background-size:cover}
.greeting_top:after{ position:absolute;bottom:0;right:150px;content:"";display:inline-block;width:576px;height:431px;background:url(../img/kor/sub/greeting_top.jpg) no-repeat;background-size:contain}
.director_txt{position:absolute;top:-28px;left:92px;display:inline-block;width:400px;height:auto;padding:85px 45px 75px;background:#2d4478 url(../img/kor/sub/sub06/sub0601_toptxt_bg.png) right top no-repeat}
.director_entxt{display:block;font-size:24px;color:#fff;font-weight:400;font-family:'ttl';line-height:1.3;margin-bottom:45px;letter-spacing:0; word-break:keep-all}
.director_tit{display:block;font-size:30px;color:#fff;line-height:1.4;font-weight:300;word-break:keep-all}

.director_cont{padding:55px 100px 0 100px;border-top:1px solid #ddd;border-bottom:1px solid #ddd;margin-bottom:35px}
.director_cont b{display:block;font-size:32px;font-weight:500;line-height:2em;margin-bottom:35px}
.director_cont p{margin-bottom:35px;font-size:18px}
.greeting_sign{display:block;text-align:right;font-weight:400;color:#999;font-size:16px;padding-right:20px}
.greeting_sign span{color:#555;font-weight:700;font-size:18px}

/* 마을소개 */

/* **CSS 충돌 회피 및 폰트 사이즈 18px, 상단 투명도 조정 적용** */

/* 모든 pikkut- 접두사 요소에 박스 모델 적용 */
*[class^='pikkut-'] {
    box-sizing: border-box;
    font-family: 'Noto Sans KR', sans-serif;
    line-height: 1.7; 
    color: #333;
}

/* -------------------- 본문 텍스트에 18px 강제 적용 -------------------- */
/* 기존 CSS와 충돌을 막기 위해 !important 사용 */
.pikkut-slogan, 
.pikkut-card p, 
.pikkut-sub-info, 
.pikkut-story-intro, 
.pikkut-identity-content p,
.pikkut-vision-box p {
    font-size: 18px !important; 
}
/* ------------------------------------------------------------------- */


/* 전체 섹션 타이틀 공통 스타일 */
.pikkut-section-title {
    text-align: center;
    font-size: 2em; 
    margin-bottom: 30px; 
    color: #2c5f2d; 
    padding-top: 50px; 
    font-weight: 700;
}

/* -------------------- SECTION 1: 메인 비주얼 (Hero Area) -------------------- */
.pikkut-hero-area {
    background: url('../img/visual/visual_img1.jpg') center/cover no-repeat; 
    min-height: 50vh; 
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 60px 20px; 
    position: relative; 
}

.pikkut-hero-area::before { 
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(44, 95, 45, 0.2); 
    z-index: 1;
}

.pikkut-hero-overlay {
    background-color: rgba(255, 255, 255, 0.75); /* **투명도 75%로 조정 (배경 이미지 연하게 비침)** */
    padding: 30px 40px;
    color: #333; 
    max-width: 700px; 
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.15);
    z-index: 2; 
    margin: 0 auto; 
}

.pikkut-title-eng {
    font-size: 1.1em; 
    letter-spacing: 4px;
    margin-bottom: 5px;
    color: #555;
    font-weight: 500;
}

.pikkut-main-heading {
    font-size: 2.3em; 
    margin-bottom: 15px;
    color: #2c5f2d; 
    font-weight: 700;
}

.pikkut-cta-button {
    display: inline-block;
    padding: 10px 25px;
    background-color: #e67e22; 
    color: white;
    text-decoration: none;
    border-radius: 5px;
    font-weight: 500;
    font-size: 1em; 
}

/* -------------------- SECTION 2: 체험 안내 -------------------- */
.pikkut-value-section {
    padding-bottom: 50px; 
    background-color: #f8f7f5; 
}

.pikkut-value-cards {
    display: flex;
    gap: 20px; 
    justify-content: center;
    max-width: 1100px; 
    margin: 0 auto; 
}

.pikkut-card {
    background-color: white;
    padding: 25px; 
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); 
    flex: 1; 
    text-align: center;
    max-width: 350px; 
}

.pikkut-card-icon {
    font-size: 2.5em; 
    display: block;
    margin-bottom: 10px;
    color: #2c5f2d;
}

.pikkut-card h3 {
    font-size: 1.15em; 
    margin-bottom: 10px;
    color: #333;
    font-weight: 600;
}

/* -------------------- SECTION 3: 스토리텔링 갤러리 -------------------- */
.pikkut-gallery-section {
    background-color: #f0f0ed; 
    padding-bottom: 50px;
}

.pikkut-story-intro {
    text-align: center;
    margin-bottom: 40px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    font-weight: 500;
    color: #444;
}

.pikkut-photo-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr); 
    gap: 10px; 
    max-width: 960px; 
    margin: 0 auto; 
}

.pikkut-gallery-item {
    overflow: hidden;
    border-radius: 5px;
    height: 200px; /* **추천 높이 유지** */
    position: relative;
    cursor: pointer;
}

.pikkut-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* **추천 비율 유지** */
    display: block;
    transition: transform 0.3s ease-in-out;
}

.pikkut-gallery-item:hover img {
    transform: scale(1.08); 
}

/* -------------------- SECTION 4: 마을의 위치, 역사, 비전 -------------------- */
.pikkut-identity-section {
    background-color: #f8f7f5; 
    padding-bottom: 50px;
}

.pikkut-identity-content {
    max-width: 850px;
    margin: 0 auto 30px;
    padding: 0 20px;
    text-align: justify;
    color: #444;
}

.pikkut-identity-content p {
    margin-bottom: 15px;
}

.pikkut-vision-box {
    background-color: #6a4128; 
    color: white;
    padding: 30px 20px; 
    text-align: center;
    font-weight: 500;
    margin-top: 40px; 
    max-width: 900px; 
    margin-left: auto;
    margin-right: auto;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* -------------------- FOOTER AREA -------------------- */
.pikkut-site-footer {
    background-color: #222;
    color: #bbb;
    padding: 30px 5%;
    text-align: center;
}

.pikkut-taepyeong-message {
    font-style: italic;
    margin-bottom: 15px;
    font-size: 16px !important; 
}

.pikkut-footer-info p {
    font-size: 14px !important; 
    line-height: 1.8;
}


/* ==================== 반응형 디자인 (Mobile) ==================== */
@media (max-width: 768px) {
    .pikkut-hero-area {
        min-height: 40vh; 
        padding: 40px 20px;
    }

    .pikkut-main-heading {
        font-size: 1.8em;
    }
    
    .pikkut-section-title {
        font-size: 1.5em; 
        margin-bottom: 25px;
        padding-top: 40px;
    }

    /* SECTION 2: 카드 세로 정렬 */
    .pikkut-value-cards {
        flex-direction: column;
        gap: 15px;
    }

    .pikkut-card {
        max-width: 100%;
        margin: 0 auto; 
    }
    
    /* 갤러리 2열 */
    .pikkut-photo-gallery {
        grid-template-columns: repeat(2, 1fr); 
        gap: 8px;
        max-width: 100%; 
    }

    .pikkut-gallery-item {
        height: 150px; /* **모바일 추천 높이 유지** */
    }
    
    .pikkut-identity-content {
        padding: 0 15px;
    }
    
    .pikkut-vision-box {
        padding: 25px 15px;
        margin-top: 30px;
    }
}

@media (max-width: 480px) {
    .pikkut-gallery-section {
        padding-top: 30px;
    }
    .pikkut-section-title {
        font-size: 1.3em; 
        margin-bottom: 20px;
    }
    /* 아주 좁은 화면에서는 갤러리 1열 */
    .pikkut-photo-gallery {
        grid-template-columns: 1fr; 
        max-width: 90%; 
    }
    .pikkut-gallery-item {
        height: 180px; /* **아주 좁은 모바일 추천 높이 유지** */
    }
}

/* 마을 유래 */
/* **CSS 충돌 회피 및 폰트 사이즈 18px 강제 적용 (기존 유지)** */

/* -------------------- SECTION 1: 메인 비주얼 (유래 페이지 전용) -------------------- */
/* 유래 페이지의 히어로 섹션 배경을 차별화할 경우 사용 (옵션) */
.pikkut-origin-hero {
    /* height나 background-image를 다르게 설정 가능 */
    /* background: url('origin-hero-image.jpg') center/cover no-repeat; */
    min-height: 40vh; /* 역사적 무게감에 맞춰 높이 약간 더 줄임 */
}


/* -------------------- SECTION 2: 역사 타임라인 -------------------- */
.pikkut-history-timeline {
    padding: 50px 5%;
    background-color: #fff;
}

.pikkut-timeline-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    padding-top: 20px;
}

/* 타임라인 연결선 */
.pikkut-timeline-container::before {
    content: '';
    position: absolute;
    top: 55px;
    left: 10%;
    right: 10%;
    height: 4px;
    background-color: #ccc;
    z-index: 1;
}

.pikkut-timeline-item {
    flex-basis: 30%; /* 아이템 간 간격 유지 */
    text-align: center;
    position: relative;
    padding-top: 40px;
    z-index: 2;
}

.pikkut-year {
    display: inline-block;
    padding: 8px 15px;
    background-color: #2c5f2d; /* 딥 그린 */
    color: white;
    border-radius: 5px;
    font-weight: 600;
    margin-bottom: 20px;
    position: relative;
}

.pikkut-year::after { /* 년도 아래 원형 마커 */
    content: '';
    position: absolute;
    bottom: -30px; 
    left: 50%;
    transform: translateX(-50%);
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: #2c5f2d;
    border: 3px solid #ccc;
}

.pikkut-event p {
    font-size: 18px !important;
    line-height: 1.6;
    color: #555;
    text-align: center;
}

.pikkut-event-main .pikkut-year {
    background-color: #a00; /* 주요 사건은 빨간색으로 강조 */
}
.pikkut-event-main .pikkut-year::after {
    background-color: #a00;
    border-color: #f0f0ed;
    width: 20px;
    height: 20px;
}


/* -------------------- SECTION 3: 마을 유래 설명 (요청 디자인에 맞게 전면 수정) -------------------- */
.pikkut-origin-details {
    padding: 50px 5%;
    background-color: #f0f0ed;
    text-align: center; /* 전체 섹션 내용을 중앙 정렬 */
    max-width: 1000px; /* 전체 섹션의 최대 너비 제한 */
    margin: 0 auto; /* 중앙 정렬 */
}

/* 유래 섹션 내 제목은 기존 스타일 유지 */
.pikkut-origin-details .pikkut-section-title {
    margin-bottom: 40px;
    padding-top: 0;
}

/* 첫 번째 단일 이미지 래퍼 */
.pikkut-single-image-wrapper {
    margin-bottom: 40px; /* 이미지 아래에 텍스트와의 간격 */
    max-width: 800px; /* 이미지 최대 폭 */
    margin-left: auto;
    margin-right: auto;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.pikkut-origin-image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

/* 글 내용 컨테이너 */
.pikkut-origin-text-content {
    max-width: 800px; /* 텍스트 내용의 최대 폭 */
    margin: 0 auto 50px; /* 중앙 정렬 및 아래 간격 */
    text-align: justify; /* 텍스트는 양쪽 정렬 */
    padding: 0 20px; /* 좌우 패딩 */
}


/* 기존 CSS와 충돌을 막기 위해 !important 사용 */
.pikkut-origin-text-content p {
    font-size: 18px !important; 
}
/* 하단 갤러리 (2개 이미지) */
.pikkut-gallery-two-col.pikkut-origin-bottom-images {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    max-width: 1000px;
    margin: 0 auto;
}

.pikkut-gallery-two-col.pikkut-origin-bottom-images .pikkut-gallery-item {
    height: 300px; /* 이미지 높이 */
    border-radius: 8px; /* 모서리 둥글게 */
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.pikkut-gallery-two-col.pikkut-origin-bottom-images .pikkut-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


/* ==================== 반응형 디자인 (Mobile/Tablet) ==================== */
@media (max-width: 768px) {
    .pikkut-hero-area {
        min-height: 40vh; 
        padding: 40px 20px;
    }

    .pikkut-main-heading {
        font-size: 1.8em;
    }
    
    .pikkut-section-title {
        font-size: 1.5em; 
        margin-bottom: 25px;
        padding-top: 40px;
    }

    /* 타임라인 세로 정렬 */
    .pikkut-timeline-container {
        flex-direction: column;
        align-items: stretch;
        padding-top: 0;
        padding-left: 20px; 
    }

    .pikkut-timeline-container::before {
        top: 0;
        bottom: 0;
        left: 20px;
        width: 4px;
        height: auto;
    }

    .pikkut-timeline-item {
        padding-top: 20px;
        text-align: left;
        max-width: 100%; 
        min-width: unset; 
    }
    
    .pikkut-year {
        font-size: 1em !important; 
        white-space: normal; 
    }

    .pikkut-year::after {
        left: -13px; 
        transform: none;
    }
    
    .pikkut-event p {
        padding-left: 10px;
        text-align: left !important;
        font-size: 16px !important; 
    }
    
    /* 마을 유래 섹션 모바일 조정 */
    .pikkut-origin-details {
        padding: 30px 2%; /* 모바일에서 좌우 패딩 조절 */
    }

    .pikkut-single-image-wrapper {
        margin-bottom: 30px;
        padding: 0 10px; /* 모바일에서 좌우 패딩 */
    }

    .pikkut-origin-text-content {
        margin-bottom: 30px;
        padding: 0 15px; /* 모바일에서 좌우 패딩 */
        text-align: left; /* 모바일에서는 양쪽 정렬보다 왼쪽 정렬이 더 가독성 높을 수 있음 */
    }

    .pikkut-gallery-two-col.pikkut-origin-bottom-images {
        grid-template-columns: 1fr; /* 하단 이미지 1열 정렬 */
        gap: 10px;
        padding: 0 15px; /* 모바일에서 좌우 패딩 */
    }
    
    .pikkut-gallery-two-col.pikkut-origin-bottom-images .pikkut-gallery-item {
        height: 200px; /* 모바일 이미지 높이 조정 */
    }

    /* 기타 모바일 설정 */
    .pikkut-value-cards {
        flex-direction: column;
        gap: 15px;
    }

    .pikkut-card {
        max-width: 100%;
        margin: 0 auto; 
    }
    
    .pikkut-identity-content {
        padding: 0 15px;
    }
    
    .pikkut-vision-box {
        padding: 25px 15px;
        margin-top: 30px;
    }
}

@media (max-width: 480px) {
    .pikkut-gallery-section {
        padding-top: 30px;
    }
    .pikkut-section-title {
        font-size: 1.3em; 
        margin-bottom: 20px;
    }
    
    .pikkut-photo-gallery {
        grid-template-columns: 1fr; 
        max-width: 90%; 
    }
    .pikkut-gallery-item {
        height: 180px; 
    }
    .pikkut-timeline-item {
        min-width: unset; 
    }
}

/* 마을 현황 */


/* ======================================================= */
/* ====== styles.css 파일 전체 (마을 현황 페이지 최종 버전 - 안정성 강화) ====== */
/* ======================================================= */



/* -------------------- 폰트 크기 및 줄 바꿈 강제 적용 (전체 본문 18px 기준) -------------------- */
/* 이 코드가 다른 CSS보다 우선하도록 최상위 컨테이너에 폰트 크기를 강력하게 설정합니다. */
.pikkut-status-section-wrap,
.pikkut-hero-overlay {
    font-size: 1.15em !important; /* 16px 기준 약 18.4px */
}

/* 개별 텍스트 요소는 상위 컨테이너 크기를 상속받고 줄바꿈만 확실히 처리 */
.pikkut-slogan,
.pikkut-status-text-content p,
.pikkut-composition-single-box p,
.pikkut-project-list ul li,
.pikkut-taepyeong-message {
    font-size: 1em !important; 
    line-height: 1.6 !important; 
    margin-bottom: 12px !important;
}

/* -------------------- 공통 타이틀 및 유틸리티 -------------------- */
.pikkut-main-heading {
    font-size: 2.3em !important;
    color: #2c5f2d !important;
    font-weight: 700 !important;
}

.pikkut-sub-section-title { /* 현황 페이지 내부 소제목 */
    font-size: 1.8em !important;
    color: #2c5f2d !important;
    font-weight: 700 !important;
    margin-bottom: 20px !important;
    padding-top: 30px !important;
    text-align: left !important;
    border-bottom: 2px solid #ddd !important;
    padding-bottom: 10px !important;
}

.pikkut-item-title { /* 구성 요소 제목 */
    font-size: 1.3em !important;
    color: #a00 !important; /* 그라데이션 박스 제목 색상 */
    font-weight: 700 !important;
    margin-bottom: 10px !important;
}

.mt-60 { margin-top: 60px !important; }



.pikkut-status-hero {
    min-height: 40vh !important;
    padding: 60px 20px !important;
}

.pikkut-hero-area::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(44, 95, 45, 0.2) !important;
    z-index: 1 !important;
}

.pikkut-hero-overlay {
    background-color: rgba(255, 255, 255, 0.75) !important;
    padding: 30px 40px !important;
    max-width: 700px !important;
    border-radius: 8px !important;
    box-shadow: 0 5px 15px rgba(0,0,0,0.15) !important;
    z-index: 2 !important;
    margin: 0 auto !important;
    width: auto !important;
}

/* -------------------- SECTION: 콘텐츠 컨테이너 (레이아웃 밀집도 강화) -------------------- */

.pikkut-status-section-wrap {
    padding: 40px 0 80px 0 !important;
    background-color: #fff !important;
}

.pikkut-content-container {
    max-width: 1200px !important; /* 전체 콘텐츠 너비를 축소 */
    margin: 0 auto !important;
    padding: 0 15px !important; /* 좌우 패딩 축소 */
}

/* -------------------- 현황 개요 및 지도 (글/지도 좌우 배치) -------------------- */

.pikkut-info-with-map {
    display: flex !important;
    gap: 20px !important;
    align-items: flex-start !important;
    margin-bottom: 30px !important;
    flex-wrap: wrap !important;
}

.pikkut-status-text-content {
    flex: 1 1 50% !important; 
    min-width: 300px !important;
    padding-right: 0 !important;
}

.pikkut-status-map-box {
    flex: 0 0 45% !important; /* 지도 박스 너비 고정 */
    max-width: 45% !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important;
}

.pikkut-status-map-box img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* -------------------- 마을의 구성 (단독 박스 + 그라데이션) -------------------- */

.pikkut-composition-box-wrap {
    max-width: 750px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

.pikkut-composition-single-box {
    background: linear-gradient(135deg, #ffffff 0%, #f7f7f5 100%) !important;
    border: none !important;
    padding: 20px !important; /* 내부 패딩 축소 */
    margin-bottom: 25px !important;
    border-radius: 6px !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08) !important;
    transition: all 0.4s ease !important;
    text-align: justify !important;
}

.pikkut-composition-single-box:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15) !important;
    transform: translateY(-3px) !important;
}

/* -------------------- 마을사업 추진현황 및 자매결연 (리스트 디자인) -------------------- */

.pikkut-project-list ul {
    list-style: none !important;
    padding-left: 0 !important;
    max-width: 750px !important;
    margin: 0 auto !important;
}

.pikkut-project-list ul li {
    padding-left: 0 !important;
    margin-bottom: 12px !important;
    border-bottom: 1px dashed #eee !important;
    padding-bottom: 8px !important;
}

.pikkut-project-list ul li::before {
    content: "\2713\0020" !important;
    color: #2c5f2d !important;
    font-weight: bold !important;
    margin-right: 8px !important;
    position: static !important;
}

.pikkut-year-bold {
    font-weight: bold !important;
    color: #333 !important;
    margin-right: 5px !important;
}

/* -------------------- 마을 안내도 (약도) -------------------- */

.pikkut-guide-map-wrapper {
    max-width: 700px !important;
    margin: 0 auto !important;
}

.pikkut-guide-map-wrapper img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border: 1px solid #ddd !important;
    border-radius: 5px !important;
}

/* -------------------- SECTION: 푸터 (전역) -------------------- */

.pikkut-site-footer {
    background-color: #222 !important;
    color: #bbb !important;
    padding: 30px 5% !important;
    text-align: center !important;
    margin-top: 0 !important;
}

.pikkut-taepyeong-message {
    font-style: italic !important;
    margin-bottom: 15px !important;
    font-size: 16px !important;
}

.pikkut-footer-info p {
    font-size: 14px !important;
    line-height: 1.8 !important;
}


/* ==================== 반응형 디자인 (Mobile/Tablet) ==================== */

@media (max-width: 768px) {
    .pikkut-status-hero {
        min-height: 30vh !important;
        padding: 40px 20px !important;
    }

    .pikkut-hero-overlay {
        padding: 20px 30px !important;
    }

    .pikkut-content-container {
        padding: 0 15px !important;
    }

    /* 현황 개요: 지도와 텍스트 세로 정렬 */
    .pikkut-info-with-map {
        flex-direction: column !important;
        gap: 20px !important;
    }

    .pikkut-status-map-box {
        flex: 1 !important;
        max-width: 100% !important;
        order: -1 !important; /* 지도를 텍스트 위로 이동 */
    }

    .pikkut-status-text-content {
        padding-right: 0 !important;
    }

    /* 마을 구성 박스 모바일 조정 */
    .pikkut-composition-box-wrap {
        padding: 0 5px !important;
    }
}

/* 연계 관광 */
/* ======================================================= */
/* ====== 연계 관광 페이지 (pikkut-tourism) 전용 CSS ====== */
/* ======================================================= */

/* ======================================================= */
/* ====== 연계 관광 페이지 폰트 크기 최종 보강 (18px) ====== */
/* ======================================================= */

/* 1. 최상위 컨테이너 폰트 크기 설정 (1.15em ≈ 18.4px) */
.pikkut-tourism-wrap {
    font-size: 1.15em !important; 
    line-height: 1.7 !important;
}

/* 2. 본문 텍스트 (p 태그)에 크기 상속 및 강제 적용 */
.pikkut-tourism-text-box p,
.pikkut-resource-item p {
    font-size: 1em !important; /* 상위 컨테이너 크기 상속 */
    line-height: 1.7 !important;
    margin-bottom: 15px !important;
    word-break: break-word !important; 
}

/* 3. 링크 박스 내 텍스트 크기 조정 */
.pikkut-link-box p {
    font-size: 1em !important; /* 18px 상속 */
    margin-bottom: 5px !important;
}

/* 4. 자원 아이템 설명 텍스트 (기존 폰트 사이즈가 너무 작아서 다시 명시) */
.pikkut-resource-item p {
    font-size: 0.9em !important; /* 아이템 설명은 18px보다 조금 작은 16.2px로 조정 */
    color: #666 !important;
    margin-top: 5px !important;
}

/* -------------------- 1. 히어로 및 개요 -------------------- */

.pikkut-tourism-hero {
    min-height: 40vh !important;
}

.pikkut-tourism-text-box {
    max-width: 800px !important;
    margin: 40px auto 0 !important; /* 상단 여백 추가 */
    padding: 0 15px !important;
    text-align: justify !important;
}

.pikkut-tourism-text-box p {
    margin-bottom: 15px !important;
}

/* 외부 링크 박스 디자인 */
.pikkut-link-box {
    margin-top: 30px !important;
    padding: 20px !important;
    border: 2px solid #2c5f2d !important;
    border-radius: 6px !important;
    background-color: #f7fcf7 !important;
    text-align: center !important;
}

.pikkut-external-link {
    display: inline-block !important;
    margin-top: 10px !important;
    padding: 8px 20px !important;
    background-color: #e67e22 !important;
    color: white !important;
    text-decoration: none !important;
    border-radius: 4px !important;
    font-weight: bold !important;
    transition: background-color 0.3s !important;
}

.pikkut-external-link:hover {
    background-color: #d35400 !important;
}


/* -------------------- 2. 지도 이미지 배치 -------------------- */

.pikkut-tourism-map-wrapper {
    max-width: 900px !important; /* 지도는 넓게 보여줌 */
    margin: 40px auto !important;
    padding: 0 15px !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important;
}

.pikkut-tourism-map {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}


/* -------------------- 3. 핵심 자원 아이콘 목록 -------------------- */

.pikkut-resource-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
    max-width: 1000px !important;
    margin: 30px auto 60px !important;
    padding: 0 15px !important;
}

.pikkut-resource-item {
    background-color: #fff !important;
    padding: 25px !important;
    border-radius: 8px !important;
    text-align: center !important;
    border: 1px solid #f0f0f0 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
    transition: transform 0.3s !important;
}

.pikkut-resource-item:hover {
    transform: translateY(-5px) !important;
}

.pikkut-resource-icon {
    font-size: 2.5em !important;
    color: #2c5f2d !important;
    display: block !important;
    margin-bottom: 10px !important;
}

.pikkut-resource-item .pikkut-item-title {
    color: #333 !important;
}

.pikkut-resource-item p {
    font-size: 0.9em !important; /* 아이템 내 설명은 14.4px로 살짝 작게 */
    margin-bottom: 0 !important;
    color: #666 !important;
}

/* -------------------- 모바일 반응형 조정 -------------------- */
@media (max-width: 768px) {
    .pikkut-resource-grid {
        grid-template-columns: 1fr !important; /* 모바일에서 1열로 변경 */
        gap: 20px !important;
        padding: 0 15px !important;
    }
}





/* 역사 문화체험 */


/* 기본 설정 */
:root {
    /* 색상 팔레트 */
    --color-primary: #5A6A90;    /* 고급스러운 네이비/블루 그레이 */
    --color-secondary: #C8AA6A;  /* 세련된 골드/베이지 */
    --color-background: #F8F8F8; /* 부드러운 배경색 */
    --color-text: #333333;       /* 기본 텍스트 색상 */
    --color-light-text: #666666; /* 보조 텍스트 색상 */
    --color-white: #FFFFFF;
}

/* body 태그 대신 최상위 컨테이너 클래스 사용 */
.experience-page {
    font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', Roboto, 'Noto Sans KR', sans-serif;
    /* 폰트 크기 18px 강제 적용 */
    font-size: 18px !important; 
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    /* body의 기본 스타일을 대체 */
    min-height: 100vh;
    margin: 0;
    padding: 20px 0;
}

/* 프로그램 전체를 감싸는 내부 래퍼 */
.program-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

/* 섹션 제목 */
.section-title {
    text-align: center;
    font-size: 2.5em; /* 18px * 2.5 = 45px */
    font-weight: 700;
    color: var(--color-primary);
    padding-bottom: 20px;
    margin-bottom: 40px;
    position: relative;
}

.section-title::after {
    content: '';
    display: block;
    width: 80px;
    height: 3px;
    background-color: var(--color-secondary); /* 골드 구분선 */
    margin: 10px auto 0;
    border-radius: 2px;
}

/* 체험 목록 그리드 레이아웃 (반응형) */
.experience-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
    gap: 30px;
}

/* 개별 체험 카드 디자인 */
.experience-card {
    background-color: var(--color-white);
    border-radius: 12px;
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.experience-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.15);
}

/* 체험 제목 영역 */
.card-header {
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: 20px;
    text-align: center;
}

.card-title {
    font-size: 1.4em; /* 18px * 1.4 = 25.2px */
    font-weight: 600;
    margin: 0;
    letter-spacing: -0.5px;
}

/* 체험 내용 영역 */
.card-content {
    padding: 20px;
    flex-grow: 1; 
}

/* 세부 정보 스타일 */
.detail-item {
    margin-bottom: 15px;
    border-left: 3px solid var(--color-secondary);
    padding-left: 15px;
}

.detail-item strong {
    display: block;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 3px;
    font-size: 1.05em; /* 18px * 1.05 = 18.9px */
}

.detail-item span {
    display: block;
    color: var(--color-light-text);
    font-size: 0.95em; /* 18px * 0.95 = 17.1px */
}

/* --- 예약 버튼 섹션 --- */
.reservation-area {
    text-align: center;
    margin-top: 60px; 
    padding-bottom: 20px;
}

.reservation-button {
    /* 기본 스타일 */
    display: inline-block;
    font-size: 1.333em;
    font-weight: 700;
    padding: 15px 40px;
    border-radius: 8px;
    text-decoration: none;
    letter-spacing: 1px;
    transition: background-color 0.3s, transform 0.2s, box-shadow 0.3s;
    
    /* 👇 기본 색상: 네이비 */
    background-color: var(--color-primary); /* 네이비/블루 그레이 */
    color: var(--color-white); /* 흰색 텍스트 */
    border: 2px solid var(--color-primary); 
    box-shadow: 0 5px 15px rgba(90, 106, 144, 0.4); /* 네이비 색상의 부드러운 그림자 */
}

.reservation-button:hover {
    /* 호버 효과: 골드 */
    background-color: var(--color-secondary); /* 골드/베이지 색상으로 강조 */
    color: var(--color-primary); /* 네이비 텍스트 */
    border-color: var(--color-secondary);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(200, 170, 106, 0.6); /* 골드 색상의 강한 그림자 */
}


/* 반응형 디자인 */
@media (max-width: 992px) {
    .section-title {
        font-size: 2em;
    }
}

@media (max-width: 768px) {
    .program-wrapper {
        padding: 0 10px;
    }
    .section-title {
        font-size: 1.8em;
        margin-bottom: 20px;
    }
    .experience-list {
        grid-template-columns: 1fr; /* 모바일에서는 1열 */
        gap: 20px;
    }
    .reservation-area {
        margin-top: 40px;
    }
    .reservation-button {
        width: 90%; /* 모바일에서 가로 폭을 넓게 */
        padding: 15px 0;
        font-size: 1.222em;
    }
}

/* ... (기존 .reservation-button 스타일까지는 그대로 유지) ... */


/* --- 이미지 갤러리 섹션 --- */
.image-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 기본적으로 3개 이미지 나란히 */
    gap: 20px; /* 이미지 사이 간격 */
    margin-top: 60px; /* 위쪽 섹션과의 간격 */
    padding-bottom: 40px; /* 페이지 하단 여백 */
}

.gallery-item {
    overflow: hidden; /* 이미지 오버플로우 방지 */
    border-radius: 8px; /* 부드러운 모서리 */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); /* 은은한 그림자 */
    transition: transform 0.3s ease;
}

.gallery-item:hover {
    transform: translateY(-5px); /* 호버 시 살짝 위로 이동 */
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);
}

.image-gallery img {
    width: 100%; /* 부모 요소 너비에 맞춤 */
    height: auto; /* 비율 유지 */
    display: block; /* 이미지 하단의 불필요한 공백 제거 */
    object-fit: cover; /* 이미지가 잘리더라도 영역을 채우도록 */
    aspect-ratio: 4 / 3; /* 4:3 비율 유지 (원본 이미지 비율에 따라 조정 가능) */
}


/* 반응형 디자인 (이미지 갤러리 부분) */
@media (max-width: 992px) {
    .image-gallery {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* 중간 크기 화면에서 유연하게 2열 또는 3열 */
        gap: 15px;
        margin-top: 50px;
    }
}

@media (max-width: 768px) {
    /* ... (기존 .program-wrapper, .section-title, .experience-list, .reservation-button 모바일 스타일은 그대로 유지) ... */

    .image-gallery {
        grid-template-columns: 1fr; /* 모바일에서는 1열 */
        gap: 15px;
        margin-top: 40px;
        padding-bottom: 20px;
    }
}

/* 그린 힐링 체험 */


/*
=====================================================
  [그린힐링 체험 테마] - 단일 CSS 파일 내에서 충돌 방지
=====================================================
*/

/* 최상위 컨테이너 클래스: .healing-page */
.healing-page {
    /* 변수 선언 영역: 이 스타일 블록 안에서만 유효하여 다른 테마와 충돌을 막습니다. */
    --color-primary: #4A7C59;    /* 세련된 딥 그린 */
    --color-secondary: #9BC3A2;  /* 밝은 민트 그린/라이트 그린 */
    --color-background: #F8F8F8; /* 부드러운 배경색 */
    --color-text: #333333;
    --color-light-text: #666666;
    --color-white: #FFFFFF;

    /* 기본 스타일 적용 */
    font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', Roboto, 'Noto Sans KR', sans-serif;
    font-size: 18px !important; /* 폰트 크기 18px 강제 적용 */
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    min-height: 100vh;
    margin: 0;
    padding: 20px 0;
}

/* 프로그램 전체를 감싸는 내부 래퍼: .healing-wrapper */
.healing-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

/* 섹션 제목: .healing-title */
.healing-title {
    text-align: center;
    font-size: 2.5em; 
    font-weight: 700;
    color: var(--color-primary); /* 딥 그린 */
    padding-bottom: 20px;
    margin-bottom: 40px;
    position: relative;
}

.healing-title::after {
    content: '';
    display: block;
    width: 80px;
    height: 3px;
    background-color: var(--color-secondary); /* 라이트 그린 구분선 */
    margin: 10px auto 0;
    border-radius: 2px;
}

/* 체험 목록 그리드 레이아웃: .healing-list */
.healing-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
    gap: 30px;
}

/* 개별 체험 카드 디자인: .healing-card */
.healing-card {
    background-color: var(--color-white);
    border-radius: 12px;
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.healing-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.15);
}

/* 체험 제목 영역: .card-healing-header */
.card-healing-header {
    background-color: var(--color-primary); /* 딥 그린 배경 */
    color: var(--color-white);
    padding: 20px;
    text-align: center;
}

/* 체험 제목: .card-healing-title */
.card-healing-title {
    font-size: 1.4em; 
    font-weight: 600;
    margin: 0;
    letter-spacing: -0.5px;
}

/* 체험 내용 영역: .card-healing-content */
.card-healing-content {
    padding: 20px;
    flex-grow: 1; 
}

/* 세부 정보 스타일: .healing-detail-item */
.healing-detail-item {
    margin-bottom: 15px;
    border-left: 3px solid var(--color-secondary); /* 라이트 그린 포인트 */
    padding-left: 15px;
}

.healing-detail-item strong {
    display: block;
    font-weight: 700;
    color: var(--color-primary); /* 딥 그린 */
    margin-bottom: 3px;
    font-size: 1.05em; 
}

.healing-detail-item span {
    display: block;
    color: var(--color-light-text);
    font-size: 0.95em; 
}


/* --- 예약 버튼 섹션: .healing-reservation-area --- */
.healing-reservation-area {
    text-align: center;
    margin-top: 60px; 
    padding-bottom: 20px;
}

/* 버튼: .green-reservation-button (그린 테마 적용) */
.green-reservation-button {
    display: inline-block;
    font-size: 1.333em;
    font-weight: 700;
    padding: 15px 40px;
    border-radius: 8px;
    text-decoration: none;
    letter-spacing: 1px;
    transition: background-color 0.3s, transform 0.2s, box-shadow 0.3s;
    
    /* 기본 색상: 딥 그린 */
    background-color: var(--color-primary); 
    color: var(--color-white); 
    border: 2px solid var(--color-primary); 
    box-shadow: 0 5px 15px rgba(74, 124, 89, 0.4); 
}

.green-reservation-button:hover {
    /* 호버 색상: 라이트 그린으로 강조 */
    background-color: var(--color-secondary); 
    color: var(--color-primary); 
    border-color: var(--color-secondary);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(155, 195, 162, 0.6); 
}


/* --- 이미지 갤러리 섹션: .green-image-gallery --- */
.green-image-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr); 
    gap: 20px; 
    margin-top: 60px; 
    padding-bottom: 40px; 
}

/* 갤러리 아이템: .gallery-green-item */
.gallery-green-item {
    overflow: hidden; 
    border-radius: 8px; 
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); 
    transition: transform 0.3s ease;
}

.gallery-green-item:hover {
    transform: translateY(-5px); 
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);
}

.green-image-gallery img {
    width: 100%; 
    height: auto; 
    display: block; 
    object-fit: cover; 
    aspect-ratio: 4 / 3; 
}


/* --- 반응형 디자인 --- */
@media (max-width: 992px) {
    .healing-title {
        font-size: 2em;
    }
    .green-image-gallery {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 15px;
        margin-top: 50px;
    }
}

@media (max-width: 768px) {
    .healing-wrapper {
        padding: 0 10px;
    }
    .healing-title {
        font-size: 1.8em;
        margin-bottom: 20px;
    }
    .healing-list {
        grid-template-columns: 1fr; 
        gap: 20px;
    }
    .healing-reservation-area {
        margin-top: 40px;
    }
    .green-reservation-button {
        width: 90%; 
        padding: 15px 0;
        font-size: 1.222em;
    }
    .green-image-gallery {
        grid-template-columns: 1fr; 
        gap: 15px;
        margin-top: 40px;
        padding-bottom: 20px;
    }
}

/* 향토음식 체험 */
/*
=====================================================
  [향토음식 체험 테마] - 단일 CSS 파일 내에서 충돌 방지
=====================================================
*/

/* 최상위 컨테이너 클래스: .food-page */
.food-page {
    /* 변수 선언 영역: 이 스타일 블록 안에서만 유효하여 다른 테마와 충돌을 막습니다. */
    --color-primary: #B3583C;    /* 깊은 오렌지 브라운/고추장 색 */
    --color-secondary: #E8A77E;  /* 따뜻한 살구색/베이지 (약과/곡물) */
    --color-background: #F8F8F8;
    --color-text: #333333;
    --color-light-text: #666666;
    --color-white: #FFFFFF;

    /* 기본 스타일 적용 */
    font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', Roboto, 'Noto Sans KR', sans-serif;
    font-size: 18px !important; 
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    min-height: 100vh;
    margin: 0;
    padding: 20px 0;
}

/* 프로그램 전체를 감싸는 내부 래퍼: .food-wrapper */
.food-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

/* 섹션 제목: .food-title */
.food-title {
    text-align: center;
    font-size: 2.5em; 
    font-weight: 700;
    color: var(--color-primary); /* 오렌지 브라운 */
    padding-bottom: 20px;
    margin-bottom: 40px;
    position: relative;
}

.food-title::after {
    content: '';
    display: block;
    width: 80px;
    height: 3px;
    background-color: var(--color-secondary); /* 살구색 구분선 */
    margin: 10px auto 0;
    border-radius: 2px;
}

/* 체험 목록 그리드 레이아웃: .food-list */
.food-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
    gap: 30px;
}

/* 개별 체험 카드 디자인: .food-card */
.food-card {
    background-color: var(--color-white);
    border-radius: 12px;
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.food-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.15);
}

/* 체험 제목 영역: .card-food-header */
.card-food-header {
    background-color: var(--color-primary); /* 오렌지 브라운 배경 */
    color: var(--color-white);
    padding: 20px;
    text-align: center;
}

/* 체험 제목: .card-food-title */
.card-food-title {
    font-size: 1.4em; 
    font-weight: 600;
    margin: 0;
    letter-spacing: -0.5px;
}

/* 체험 내용 영역: .card-food-content */
.card-food-content {
    padding: 20px;
    flex-grow: 1; 
}

/* 세부 정보 스타일: .food-detail-item */
.food-detail-item {
    margin-bottom: 15px;
    border-left: 3px solid var(--color-secondary); /* 살구색 포인트 */
    padding-left: 15px;
}

.food-detail-item strong {
    display: block;
    font-weight: 700;
    color: var(--color-primary); /* 오렌지 브라운 */
    margin-bottom: 3px;
    font-size: 1.05em; 
}

.food-detail-item span {
    display: block;
    color: var(--color-light-text);
    font-size: 0.95em; 
}


/* --- 예약 버튼 섹션: .food-reservation-area --- */
.food-reservation-area {
    text-align: center;
    margin-top: 60px; 
    padding-bottom: 20px;
}

/* 버튼: .food-reservation-button (음식 테마 색상 적용) */
.food-reservation-button {
    display: inline-block;
    font-size: 1.333em;
    font-weight: 700;
    padding: 15px 40px;
    border-radius: 8px;
    text-decoration: none;
    letter-spacing: 1px;
    transition: background-color 0.3s, transform 0.2s, box-shadow 0.3s;
    
    /* 기본 색상: 오렌지 브라운 */
    background-color: var(--color-primary); 
    color: var(--color-white); 
    border: 2px solid var(--color-primary); 
    box-shadow: 0 5px 15px rgba(179, 88, 60, 0.4); 
}

.food-reservation-button:hover {
    /* 호버 색상: 살구색으로 강조 */
    background-color: var(--color-secondary); 
    color: var(--color-primary); 
    border-color: var(--color-secondary);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(232, 167, 126, 0.6); 
}


/* --- 이미지 갤러리 섹션: .food-image-gallery --- */
.food-image-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr); 
    gap: 20px; 
    margin-top: 60px; 
    padding-bottom: 40px; 
}

/* 갤러리 아이템: .gallery-food-item */
.gallery-food-item {
    overflow: hidden; 
    border-radius: 8px; 
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); 
    transition: transform 0.3s ease;
}

.gallery-food-item:hover {
    transform: translateY(-5px); 
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);
}

.food-image-gallery img {
    width: 100%; 
    height: auto; 
    display: block; 
    object-fit: cover; 
    aspect-ratio: 4 / 3; 
}


/* --- 반응형 디자인 --- */
@media (max-width: 992px) {
    .food-title {
        font-size: 2em;
    }
    .food-image-gallery {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 15px;
        margin-top: 50px;
    }
}

@media (max-width: 768px) {
    .food-wrapper {
        padding: 0 10px;
    }
    .food-title {
        font-size: 1.8em;
        margin-bottom: 20px;
    }
    .food-list {
        grid-template-columns: 1fr; 
        gap: 20px;
    }
    .food-reservation-area {
        margin-top: 40px;
    }
    .food-reservation-button {
        width: 90%; 
        padding: 15px 0;
        font-size: 1.222em;
    }
    .food-image-gallery {
        grid-template-columns: 1fr; 
        gap: 15px;
        margin-top: 40px;
        padding-bottom: 20px;
    }
}

/* 당일 프로그램 */
/*
=====================================================
  [체험 프로그램 시간표] - 반응형 테이블 스타일
=====================================================
*/

/* 최상위 컨테이너 클래스: .schedule-page */
.schedule-page {
    /* 이 테마의 색상을 명시적으로 정의 (예시: 이전 역사문화 테마 색상 재활용) */
    --color-primary-schedule: #5A6A90; /* 네이비 */
    --color-secondary-schedule: #C8AA6A; /* 골드 */
    --color-background: #F8F8F8;
    --color-text: #333333;

    font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', Roboto, 'Noto Sans KR', sans-serif;
    font-size: 18px !important;
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    padding: 20px 0;
}

.schedule-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

/* 그룹 제목 스타일 */
.schedule-group-title {
    font-size: 1.8em; 
    font-weight: 700;
    color: var(--color-primary-schedule);
    margin-top: 40px;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--color-secondary-schedule);
    padding-bottom: 5px;
}

/* 구분선 */
.schedule-wrapper hr {
    border: 0;
    border-top: 1px solid #ddd;
    margin: 40px 0;
}


/* --- 반응형 테이블 (데스크톱/태블릿) --- */

.responsive-table {
    width: 100%;
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.table-header,
.table-row {
    display: flex;
    justify-content: space-between;
    padding: 15px 20px;
}

.table-header {
    background-color: var(--color-primary-schedule);
    color: white;
    font-weight: 700;
    font-size: 1em; /* 18px */
    letter-spacing: 0.5px;
    text-align: center;
}

.table-row {
    border-top: 1px solid #eee;
    transition: background-color 0.2s;
    font-size: 0.95em; /* 약 17px */
}

.table-row:hover {
    background-color: #f9f9f9;
}

/* 컬럼 너비 설정 (데스크톱 기준) */
.col-time {
    width: 20%;
    text-align: center;
}
.col-event {
    width: 35%;
}
.col-note {
    width: 45%;
    color: var(--color-light-text, #666);
}

/* 각 컬럼 스타일 */
.table-header > div,
.table-row > div {
    padding: 0 5px;
}


/* --- 반응형 모바일 최적화 --- */

@media (max-width: 768px) {
    
    .schedule-group-title {
        font-size: 1.6em;
        margin-top: 30px;
        margin-bottom: 15px;
    }

    .table-header {
        display: none; /* 모바일에서는 헤더 숨김 */
    }

    .table-row {
        display: block; /* 행을 블록 요소로 변경 */
        margin-bottom: 15px;
        border: 1px solid #ddd;
        border-radius: 8px;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
        padding: 10px 15px;
    }
    
    .table-row > div {
        display: block;
        width: 100%; /* 너비 전체 사용 */
        padding: 5px 0;
        text-align: left;
    }

    /* data-label 속성을 활용하여 모바일 카드에 라벨 표시 */
    .table-row > div:before {
        content: attr(data-label) ": ";
        font-weight: 700;
        color: var(--color-primary-schedule);
        display: inline-block;
        width: 60px; /* 라벨 너비 고정 */
        margin-right: 5px;
        font-size: 0.9em;
    }

    /* 비고는 라벨을 제거하고 내용을 강조 */
    .col-note {
        padding-top: 10px;
        border-top: 1px dashed #eee;
        margin-top: 5px;
        color: var(--color-text); /* 비고 내용을 일반 텍스트 색상으로 강조 */
        font-size: 0.9em;
    }

    .col-note:before {
        content: ""; /* 모바일에서 비고 라벨 제거 */
        width: 0;
        margin-right: 0;
    }

    .col-time {
        font-weight: 700; /* 시간은 모바일에서 강조 */
    }
}

/*
=====================================================
  [체험예약 바로가기 버튼] - 시간표 섹션용
=====================================================
*/

/* 예약 버튼 섹션: .schedule-reservation-area */
.schedule-reservation-area {
    text-align: center;
    margin-top: 40px; 
    padding-bottom: 40px;
}

/* 버튼: .schedule-reservation-button */
.schedule-reservation-button {
    /* 기본 스타일 */
    display: inline-block;
    font-size: 1.333em; 
    font-weight: 700;
    padding: 15px 40px;
    border-radius: 8px;
    text-decoration: none;
    letter-spacing: 1px;
    transition: background-color 0.3s, transform 0.2s, box-shadow 0.3s;

    /* 색상: 네이비 기본, 골드 호버 (시간표 테마 색상 변수 사용) */
    background-color: var(--color-primary-schedule); /* 네이비 */
    color: var(--color-white, #fff); 
    border: 2px solid var(--color-primary-schedule); 
    box-shadow: 0 5px 15px rgba(90, 106, 144, 0.4); 
}

.schedule-reservation-button:hover {
    /* 호버 색상: 골드 */
    background-color: var(--color-secondary-schedule); 
    color: var(--color-primary-schedule); /* 네이비 텍스트 */
    border-color: var(--color-secondary-schedule);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(200, 170, 106, 0.6); 
}

/* --- 반응형 디자인 (버튼) --- */
@media (max-width: 768px) {
    .schedule-reservation-area {
        margin-top: 30px;
    }
    .schedule-reservation-button {
        width: 90%; 
        padding: 15px 0;
        font-size: 1.222em;
    }
}
/* 1박 2일 */

/*
=====================================================
  [1박 2일 체험 프로그램 시간표] - 반응형 테이블 스타일 (수정 안정화본)
=====================================================
*/

/* 최상위 컨테이너 클래스: .twoday-page */
.twoday-page {
  --color-primary-twoday: #38761D;  /* 짙은 녹색 (제목/헤더) */
  --color-secondary-twoday: #6AA84F; /* 밝은 녹색 (포인트) */
  --color-background: #F8F8F8;
  --color-text: #333333;
  --color-white: #FFFFFF;

  font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', Roboto, 'Noto Sans KR', sans-serif;
  font-size: 18px !important;
  line-height: 1.6;
  color: var(--color-text);
  background-color: var(--color-background);
  padding: 20px 0;
}

.twoday-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

/* 제목 스타일 */
.twoday-title {
  font-size: 2.2em;
  font-weight: 700;
  color: var(--color-primary-twoday);
  text-align: center;
  padding-bottom: 20px;
  margin-bottom: 30px;
  border-bottom: 3px solid var(--color-secondary-twoday);
}

/* --- 반응형 테이블 (데스크톱/태블릿) --- */
.responsive-twoday-table {
  width: 100%;
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
  display: table;           /* 데스크톱에서 table처럼 보이도록 */
  border-collapse: collapse;
}

.twoday-table-header,
.twoday-table-row {
  display: table-row;       /* 행(Row) */
}

.twoday-table-header {
  background-color: var(--color-primary-twoday);
  color: var(--color-white);
  font-weight: 700;
  font-size: 1em;
  text-align: center;
}

.twoday-table-header > div {
  display: table-cell;
  padding: 15px 10px;
  vertical-align: middle;
}

.twoday-table-row {
  border-top: 1px solid #eee;
  transition: background-color 0.2s;
  font-size: 0.95em;
}

.twoday-table-row:hover { background-color: #f9f9f9; }

/* 1일차/2일차 데이터 그룹 (데스크톱에서 셀처럼 보이게) */
/* ⚠ display: contents 는 일부 브라우저/보조기기 이슈가 있어 유지하되 모바일에선 확실히 덮어씀 */
.twoday-table-row .day-group {
  display: contents;
}

.twoday-table-row .day-group > div {
  display: table-cell;
  padding: 15px 10px;
  vertical-align: middle;
  border-right: 1px solid #eee;
}
.twoday-table-row .day-group:last-child > div:last-child { border-right: none; }

/* 컬럼 너비 (데스크톱 기준) */
.col-time { width: 15%; text-align: center; font-weight: 600; }
.col-event { width: 35%; }

/* --- 예약 버튼 섹션 --- */
.twoday-reservation-area { text-align: center; margin-top: 40px; padding-bottom: 40px; }
.twoday-reservation-button {
  display: inline-block;
  font-size: 1.333em;
  font-weight: 700;
  padding: 15px 40px;
  border-radius: 8px;
  text-decoration: none;
  letter-spacing: 1px;
  transition: background-color .3s, transform .2s, box-shadow .3s;
  background-color: var(--color-primary-twoday);
  color: var(--color-white);
  border: 2px solid var(--color-primary-twoday);
  box-shadow: 0 5px 15px rgba(56,118,29,.4);
}
.twoday-reservation-button:hover {
  background-color: var(--color-secondary-twoday);
  color: var(--color-primary-twoday);
  border-color: var(--color-secondary-twoday);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(106,168,79,.6);
}

/* ================================
   모바일 최적화 (768px 이하)
   - 구조 의존 제거
   - .day1/.day2 또는 [data-day="1|2"]로 순서 고정
   - 라벨은 data-label 기반 (누락 대비 예외 처리)
================================== */
@media (max-width: 768px) {
  .twoday-title { font-size: 1.8em; padding-bottom: 10px; margin-bottom: 20px; }

  .responsive-twoday-table {
    display: block;    /* 모바일에서 카드형으로 */
    box-shadow: none;
    border-radius: 0;
    width: 100%;
  }

  .twoday-table-header { display: none; }

  .twoday-table-row {
    display: flex;
    flex-direction: column;   /* 카드 내부 수직 쌓기 */
    align-items: stretch;
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,.05);
    padding: 0;
    overflow: hidden;         /* 경계 밖 잘림 방지 */
  }

  /* 그룹을 명시적으로 블록화 */
  .day-group {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 10px 15px;
    gap: 6px;
  }

  /* ✅ 순서 고정: .day1 / .day2 또는 [data-day="1|2"] 지원 */
  .day-group.day1,
  .day-group[data-day="1"] { order: 1; background-color: #f7fbf4; border-bottom: 1px solid #ddd; }
  .day-group.day2,
  .day-group[data-day="2"] { order: 2; background-color: #ffffff; }
  /* 누락 대비: 분류 불가 항목은 항상 마지막 */
  .day-group:not(.day1):not(.day2):not([data-day]) { order: 3; }

  /* 그룹 내부 셀 공통 */
  .day-group > div {
    display: flex;
    align-items: baseline;
    width: 100%;
    padding: 4px 0;
    border: 0;
    min-width: 0;
  }

  /* ✅ 라벨: 구조 의존 제거, data-label 우선 */
  .day-group > div[data-label]::before {
    content: attr(data-label) ": ";
    font-weight: 700;
    color: var(--color-primary-twoday);
    display: inline-block;
    min-width: 88px;   /* 라벨 폭 고정으로 정렬 안정화 */
    margin-right: 6px;
    font-size: .9em;
    flex: 0 0 auto;
  }

  /* 특정 컬럼 텍스트 보정 */
  .col-time { font-weight: 600; } /* 시간은 살짝 강조 */
  .col-event { font-weight: 500; }

  /* 카드 간 여백 */
  .twoday-table-row + .twoday-table-row { margin-top: 16px; }

  .twoday-reservation-button { width: 90%; padding: 15px 0; font-size: 1.222em; }
}

/* ============ 접근성/유틸 ============ */
/* 라벨이 없는 예외 케이스 대비(필요 시 주석 해제)
.day-group > div:not([data-label])::before {
  content: "정보: ";
  font-weight: 700;
  color: var(--color-primary-twoday);
  display: inline-block;
  min-width: 88px;
  margin-right: 6px;
  font-size: .9em;
}
*/

/* 이용안내 */

/*
=====================================================
  [이용안내 디자인] - 단일 CSS 파일 내에서 충돌 방지
=====================================================
*/

/* 최상위 컨테이너 클래스: .info-page */
.info-page {
    /* 변수 선언 영역 (로컬) */
    --color-primary-info: #3C6E97;    /* 신뢰감을 주는 파랑/네이비 */
    --color-secondary-info: #85C0E6;  /* 밝은 파랑/스카이 블루 */
    --color-background: #F8F8F8;
    --color-text: #333333;
    --color-white: #FFFFFF;
    --color-error: #B33C3C; /* 경고/주목 색상 */

    /* 기본 스타일 적용 */
    font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', Roboto, 'Noto Sans KR', sans-serif;
    font-size: 18px !important; 
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    padding: 20px 0;
}

.info-wrapper {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 15px;
}

.info-title {
    font-size: 2.2em; 
    font-weight: 700;
    color: var(--color-primary-info);
    padding-bottom: 10px;
    margin-bottom: 30px;
    border-bottom: 3px solid var(--color-secondary-info);
}

.info-subtitle {
    font-size: 1.5em; /* 약 27px */
    font-weight: 700;
    color: var(--color-primary-info);
    margin-top: 40px;
    margin-bottom: 15px;
    border-left: 5px solid var(--color-secondary-info);
    padding-left: 10px;
}

.info-subtitle-small {
    font-size: 1.2em;
    font-weight: 700;
    color: var(--color-text);
    margin-top: 25px;
    margin-bottom: 10px;
}

/* 소개 및 전화번호 강조 */
.info-intro {
    margin-bottom: 30px;
}
.info-intro p {
    margin: 5px 0;
}
.phone-number {
    font-weight: 800;
    color: var(--color-primary-info);
    font-size: 1.1em;
}

/* 예약 전 전화 문의 CTA */
.call-to-action {
    background-color: var(--color-secondary-info);
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    margin-top: 20px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.call-to-action p {
    margin: 0;
    color: var(--color-primary-info);
    font-size: 1.2em;
}

/* --- 예약 진행 단계 카드 (4열 그리드) --- */
.reservation-steps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.step-card {
    background-color: var(--color-white);
    border: 1px solid var(--color-secondary-info);
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
}

.step-icon {
    font-size: 2.5em;
    color: var(--color-primary-info);
    display: block;
    margin-bottom: 10px;
}

.step-title {
    font-weight: 700;
    color: var(--color-primary-info);
    margin-top: 0;
    margin-bottom: 5px;
    font-size: 1.05em;
}

.step-desc {
    font-size: 0.9em;
    color: var(--color-light-text);
    margin: 0;
}

/* --- 유의사항 리스트 --- */
.info-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.info-list li {
    padding: 8px 0;
    border-bottom: 1px dashed #eee;
    padding-left: 25px;
    position: relative;
    font-size: 0.95em;
}
.info-list li:before {
    content: '▪';
    color: var(--color-secondary-info);
    font-size: 1.2em;
    position: absolute;
    left: 0;
}
.info-list li strong {
    color: var(--color-primary-info);
}


/* --- 환불 규정 섹션 --- */
.refund-policy-section {
    margin-top: 30px;
}
.refund-note {
    font-size: 0.9em;
    margin: 10px 0;
    padding-left: 10px;
    border-left: 3px solid var(--color-secondary-info);
}

/* 강조 박스 스타일 */
.highlight-box {
    padding: 20px;
    border-radius: 8px;
    margin: 20px 0;
}
.highlight-box ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.highlight-box li {
    padding: 8px 0;
    font-weight: 600;
    font-size: 1em;
}
.highlight-box li strong {
    color: var(--color-error); /* 환불/취소 금액 강조 */
    font-size: 1.1em;
}

/* 체험 환불 박스 */
.refund-experience {
    background-color: #fce7e7; /* 붉은 계열 경고 배경 */
    border: 1px solid var(--color-error);
}
.refund-experience p {
    font-weight: 700;
    color: var(--color-error);
    margin-top: 0;
    border-bottom: 1px dotted var(--color-error);
    padding-bottom: 10px;
    margin-bottom: 10px;
}

/* 숙박 환불 박스 */
.refund-lodging {
    background-color: #e7f7fc; /* 밝은 파랑 계열 배경 */
    border: 1px solid var(--color-secondary-info);
}
.refund-lodging li strong {
    color: var(--color-primary-info); /* 숙박 환불은 메인 색상으로 강조 */
}


/* --- 반응형 모바일 최적화 --- */

@media (max-width: 768px) {
    .info-title {
        font-size: 1.8em;
    }
    .info-subtitle {
        font-size: 1.3em;
    }
    .reservation-steps-grid {
        grid-template-columns: 1fr; /* 모바일에서 1열로 변경 */
    }
    .step-card {
        padding: 15px;
    }
    .step-icon {
        font-size: 2em;
    }
    .info-wrapper {
        padding: 0 10px;
    }
}

@media (max-width: 500px) {
    .call-to-action p {
        font-size: 1.1em;
    }
}

/* 시설안내 */

/*
=====================================================
  [숙박 시설 안내 디자인] - 단일 CSS 파일 내에서 충돌 방지
=====================================================
*/

/* 최상위 컨테이너 클래스: .lodging-page */
.lodging-page {
    /* 변수 선언 영역 (로컬): 안정감과 휴식을 주는 흙색/갈색 계열 */
    --color-primary-lodging: #6F493D;    /* 짙은 갈색/흙색 */
    --color-secondary-lodging: #B48F7A;  /* 밝은 베이지/브라운 */
    --color-background: #F8F8F8;
    --color-text: #333333;
    --color-light-text: #666666;
    --color-white: #FFFFFF;

    font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', Roboto, 'Noto Sans KR', sans-serif;
    font-size: 18px !important; 
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    padding: 20px 0;
}

.lodging-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

.lodging-title {
    font-size: 2.2em; 
    font-weight: 700;
    color: var(--color-primary-lodging);
    padding-bottom: 10px;
    margin-bottom: 30px;
    border-bottom: 3px solid var(--color-secondary-lodging);
}

.lodging-subtitle {
    font-size: 1.5em; 
    font-weight: 700;
    color: var(--color-primary-lodging);
    margin-top: 40px;
    margin-bottom: 15px;
    border-left: 5px solid var(--color-secondary-lodging);
    padding-left: 10px;
}

.lodging-subheading {
    font-size: 1.2em;
    font-weight: 700;
    color: var(--color-text);
    margin-top: 25px;
    margin-bottom: 10px;
    padding-left: 10px;
}

/* --- 객실 정보 테이블 --- */

.lodging-table {
    background-color: var(--color-white);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    /* 데스크톱/태블릿: Flex로 테이블처럼 보이게 설정 */
    display: flex;
    flex-direction: column;
}

.lodging-table .table-header,
.lodging-table .table-row {
    display: flex;
    justify-content: space-between;
    padding: 15px 10px;
}

.lodging-table .table-header {
    background-color: var(--color-primary-lodging);
    color: var(--color-white);
    font-weight: 700;
    font-size: 0.95em; 
    text-align: center;
}

.lodging-table .table-row {
    border-top: 1px solid #eee;
    transition: background-color 0.2s;
    font-size: 0.9em;
}

.lodging-table .table-row:hover {
    background-color: #fcfcfc;
}

/* 민박 행 강조 (구분을 위해) */
.lodging-minbak {
    background-color: #fffaf7;
    font-weight: 600;
}

/* 테이블 컬럼 너비 설정 (데스크톱 기준) */
.lodging-table .table-header > div,
.lodging-table .table-row > div {
    padding: 0 5px;
    text-align: center;
}
.col-room { width: 15%; text-align: left !important; font-weight: 600; }
.col-size { width: 8%; }
.col-capacity-base, .col-capacity-max { width: 20%; }
.col-features { width: 30%;  }
.col-price { 
    width: 31%; 
    font-weight: 700; 
    font-size: 1.05em; 
}


/* --- 유의사항 리스트 --- */
.lodging-list {
    list-style: none;
    padding: 0;
    margin-top: 10px;
}
.lodging-list li {
    padding: 10px 0;
    border-bottom: 1px dashed #eee;
    padding-left: 25px;
    position: relative;
    font-size: 0.95em;
}
.lodging-list li:before {
    content: '▪';
    color: var(--color-secondary-lodging);
    font-size: 1.2em;
    position: absolute;
    left: 0;
}
.lodging-list li strong {
    color: var(--color-primary-lodging);
}


/* --- 반응형 모바일 최적화 (객실 테이블) --- */

@media (max-width: 768px) {
    .lodging-table {
        display: block;
        box-shadow: none;
        border-radius: 0;
    }
    
    .lodging-table .table-header {
        display: none; /* 모바일에서 헤더 숨김 */
    }

    .lodging-table .table-row {
        display: block; /* 행을 블록 요소로 변경 */
        margin-bottom: 15px;
        border: 1px solid #ddd;
        border-radius: 8px;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
        padding: 10px 15px;
    }

    .lodging-table .table-row > div {
        display: block;
        width: 100%;
        padding: 5px 0;
        text-align: left !important; /* 모바일 텍스트 왼쪽 정렬 */
        font-size: 0.95em;
    }

    /* data-label 속성을 활용하여 모바일 카드에 라벨 표시 */
    .lodging-table .table-row > div:before {
        content: attr(data-label) ": ";
        font-weight: 700;
        color: var(--color-primary-lodging);
        display: inline-block;
        width: 80px; 
        margin-right: 5px;
        font-size: 0.9em;
    }
    
    .lodging-table .col-room { 
        font-size: 1.1em;
        font-weight: 700;
        color: var(--color-primary-lodging);
        margin-bottom: 5px;
        border-bottom: 1px solid #f0f0f0;
    }
    .lodging-table .col-room:before { content: ""; width: 0; margin: 0;}
    
    .lodging-table .col-price:before {
        content: attr(data-label);
    }
    .lodging-table .col-price {
        font-size: 1.1em;
        padding-top: 10px;
    }
}

/* 체험프로그램안내 */

/*
=====================================================
  [체험 프로그램 안내 디자인] - PC/모바일 호환성 최종본
  (단일 CSS 파일 내에서 .program-page 클래스에 적용)
=====================================================
*/

/* 최상위 컨테이너 클래스: .program-page */
.program-page {
  /* 변수 선언 영역 (로컬) - 파란색 계열 사용 */
  --color-primary-program: #007bff;     /* 메인 파랑 (Header, 제목) */
  --color-secondary-program: #5c6c8d;   /* 서브 네이비 (테이블 외곽선/라벨) */
  --color-background: #F8F8F8;
  --color-text: #333333;
  --color-white: #FFFFFF;
  --color-highlight-price: #dc3545;     /* 가격 강조 빨강 */
  --color-category-bg: #e6f3ff;         /* 카테고리 배경색 */
  --color-sub-category-bg: #f0f8ff;     /* 서브 카테고리 배경색 */
  --color-light-text: #666666;          /* 공통 사용 */

  font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', Roboto, 'Noto Sans KR', sans-serif;
  font-size: 18px !important;
  line-height: 1.6;
  color: var(--color-text);
  background-color: var(--color-background);
  padding: 20px 0;
}

.program-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

.program-title {
  font-size: 2.2em;
  font-weight: 700;
  color: var(--color-primary-program);
  padding-bottom: 10px;
  margin-bottom: 30px;
  border-bottom: 3px solid var(--color-secondary-program);
}

/* --- PC 환경 테이블 스타일 (HTML <table> 기반) --- */

.responsive-table-container {
  overflow-x: auto;
  margin-bottom: 40px;
}

.program-table {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--color-white);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
  border: 1px solid #ddd;
  font-size: 0.9em;
}

.program-table th,
.program-table td {
  padding: 12px 10px;
  border: 1px solid #ddd;
  vertical-align: middle;
  text-align: center;
  line-height: 1.4;
}

/* 테이블 헤더 */
.program-table thead th {
  background-color: var(--color-primary-program);
  color: var(--color-white);
  font-weight: 700;
  border-color: var(--color-primary-program);
}
.col-price-header { background-color: #0096FF; }
.col-price-sub, .col-time-sub { background-color: #0096FF; }

/* 폰트 스타일 */
.program-table tbody td { color: var(--color-text); }
.program-table tbody tr:hover { background-color: #f8f8f8; }

/* 병합 셀 스타일 */
.col-main {
  background-color: var(--color-category-bg);
  font-weight: 700;
  color: var(--color-primary-program);
  width: 10%;
}
.col-type {
  background-color: var(--color-sub-category-bg);
  font-weight: 600;
  width: 15%;
}

/* 가격 및 시간 강조 */
.col-price {
  font-weight: 700;
  color: var(--color-highlight-price);
}
.col-price-call {
  font-weight: 700;
  color: var(--color-primary-program);
  background-color: #fff8e8;
}

/* 프로그램명 정렬 */
.col-name {
  text-align: left !important;
  width: 25%;
}

/* 분리선 */
.program-divider {
  background-color: #eee !important;
  height: 10px;
  padding: 0 !important;
  border: none;
}

/* ================================
   모바일 최적화 (TABLE -> CARD 변환)
   nth-child 의존 제거 / 클래스 기반
================================== */
@media (max-width: 768px) {

  /* 기본 카드화 */
  .program-table { border: none; width: 100%; }
  .program-table thead { display: none; }

  .program-table tbody,
  .program-table tr,
  .program-table td {
    display: block;
    width: 100%;
    border: none;
  }

  .program-table tr {
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
    padding: 0;
    background-color: var(--color-white);
  }

  .program-table td {
    padding: 8px 15px;
    text-align: left !important;
    font-size: 0.95em;
    border-top: 1px dashed #eee;
  }

  /* rowspan/그룹 셀 숨김: 열 인덱스 혼선 제거 */
  .program-table td[rowspan] { display: none !important; }
  .program-table .col-main,
  .program-table .col-type { display: none !important; }

  /* 프로그램명: 항상 동일 스타일 적용 */
  .program-table .col-name {
    font-size: 1.2em !important;
    font-weight: 800;
    color: var(--color-primary-program) !important;
    padding-top: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid #f0f0f0;
  }
  .program-table .col-name:before { content: ""; } /* 라벨 비표시 */

  /* 상세 필드(계절/최소인원/가격/시간/문의) 레이아웃 */
  .program-table .col-season,
  .program-table .col-min,
  .program-table .col-price,
  .program-table .col-time,
  .program-table .col-price-call {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 15px;
    border-top: none;
    font-size: 0.95em;
  }

  /* data-label 우선 사용 */
  .program-table td[data-label]:before {
    content: attr(data-label) ": ";
    font-weight: 700;
    color: var(--color-secondary-program);
    display: inline-block;
    min-width: 84px;
    margin-right: 2px;
    font-size: 0.9em;
    flex: 0 0 auto;
  }

  /* data-label 누락 대비 기본 라벨 */
  .program-table .col-season:not([data-label]):before { content: "계절: "; }
  .program-table .col-min:not([data-label]):before    { content: "최소인원: "; }
  .program-table .col-price:not([data-label]):before  { content: "가격(원)/인: "; }
  .program-table .col-time:not([data-label]):before   { content: "시간: "; }

  /* 가격/문의(colspan=2) 전용 라벨 및 스타일 */
  .program-table .col-price-call {
    background-color: #f7faff;
    border-top: 1px solid #e0e0e0;
    font-weight: 700;
    font-size: 1em;
    color: var(--color-primary-program) !important;
  }
  .program-table .col-price-call:before {
    content: "가격/문의: ";
    font-weight: 700;
    color: var(--color-secondary-program);
    display: inline-block;
    min-width: 100px;
    margin-right: 2px;
    font-size: 0.9em;
    flex: 0 0 auto;
  }

  /* 숫자 가격 강조 유지 */
  .program-table .col-price { color: var(--color-highlight-price) !important; }

  /* 카드 사이 분리선 비표시 */
  .program-divider { display: none !important; }
}


/* 연혁 */
.history_top{position:relative;height:395px;margin-top:35px;background:url(../img/sub/history_top.jpg) no-repeat 50% 50%;background-size:cover}
.history_wrap{display:flex;margin-top:40px;width:100%;padding:0 40px}
.history_title{width:37%;margin-right:13%}
.history_title .year{font-weight:700;color:#000;font-size:65px;font-family:sans-serif;}
.history_title .year2{margin:-40px 0 0 0;text-align:right}
.history_title .goal_tit{font-size:20px;padding-top:10px}
.his_year_list{width:100%;padding-top:50px;overflow:hidden}
.his_year_list li{width:100%;float:left;padding:0 0 10px 0}

.his_year_list li:first-child{border-top:0;}
.his_year_list li:after {content:"";display:block;clear:both}
.his_year_list h4{float:left;font-family:sans-serif;width:14%;font-size:30px;display:inline-block;margin:0;text-align:left;vertical-align:top;
    font-weight:600;color:#203c92;line-height:normal !important}
.his_year_list li.tabmenu_ul{position:relative;float:left;width:88%;padding:10px 0 15px 0;margin-top:-3px}

.his_year_list .year_wrap{float:left;width:85%;position:relative;margin-bottom:55px}
.his_year_list .year_wrap:before{content:'';position:absolute;top:0;left:-20px;width:7px;height:100%;background:#efefef}

.his_year_list .year_wrap dl dt.month{font-family:sans-serif;color:#203c92;display:inline-block;vertical-align:top;width:12%;font-weight:bold;float:left;font-size:20px;line-height:34px}
.his_year_list .year_wrap dl dd.text{display:inline-block;width:88%;vertical-align:top;float:left;font-size:18px;line-height:34px;text-align:left}

/* 조직도 */
.organization{position:relative;width:100%;overflow:hidden;margin:20px 0}
.organization::after{content:'';position:absolute;top:20%;left:50%;background:#ddd;width:1px;height:75px;transform:translate(-50%);
    z-index:-1}
.organization::before{content:'';position:absolute;top:29.3%;left:50%;z-index:-1;background:#ddd;width:82%;height:1px;transform:translate(-50%)}
.organization .head_org{width:180px;height:180px;border-radius:50%;background:#203c92;margin:0 auto}
.organization .head_org span{line-height:180px;display:block;text-align:center;font-size:28px;font-weight:bold;color:#fff}
.organization .org_list{margin-top:64px;}
.organization .org_list li{float:left;width:18%;margin-right:2.5%;}
.organization .org_list li:last-child{margin-right:0}
.organization .org_list li .org_depth1{position:relative;text-align:center;background:#3d88c3;color:#fff;border:0;font-size:20px;
    height:70px;line-height:70px;margin-bottom:20px}
.organization .org_list li .org_depth1:after{content:'';position:absolute;top:-48%;left:50%;background:#ddd;width:1px;height:35px;transform:translate(-50%);
    z-index:-1}
.organization .org_list li p{width:100%;display:flex;align-items: center;justify-content: center;border:1px solid #ddd;color:#666;margin-top:-1px;padding:0 20px;
    font-size:17px;height:65px;
    text-align:center}
    
/* 비전 및 목표 */
.vision_wrap{width:100%;overflow:hidden}
.vision_wrap .vision_tit{width:100%;padding:30px 12px 45px 12px;text-align:center;border-radius:30px;font-size:32px;color:#203c92;letter-spacing:-1px}
.vision_wrap .vision_txt{width:100%;text-align:center;border:4px solid #2d4478;border-radius:150px}
.vision_wrap .vision_txt strong{display:inline-block;text-align:center;padding:10px 30px 12px 30px;background:#2d4478;border-radius:0 0 30px 30px;font-size:17px;color:#fff}
.vision_wrap .vision_txt p{font-size:28px;color:#000;text-align:center;padding:15px 0 35px 0}

.vision_txt{position:relative}
.bs_value{position:relative;margin:0 auto}
.bs_value ul{display:flex;padding:40px 0}
.bs_value ul li{width:25%;text-align:center;border-right:1px dotted #ccc;font-size:17px;letter-spacing:0}
.bs_value ul li:last-child{border:none}
.bs_value span{display:block;color:#000;font-size:28px;font-weight:normal;letter-spacing:-1px}

.strategy li{display:flex;padding-bottom:30px}
.strategy_title{border-radius:50%;width:230px;height:230px;background:#f8f8f8;color:#000;position:relative;display:flex;align-items:center;justify-content:center}
.strategy_title span.num{position:absolute;top:20px;left:0;width:45px;height:45px;font-size:17px;font-weight:bold;background:#2d4478;line-height:45px;color:#fff;text-align:center;border-radius:50%;display:block}
.strategy_title p{padding:0 20px;text-align:center;font-size:24px;letter-spacing:-1px}
.strategy_text{width:calc(100% - 230px);padding-left:40px }
.strategy_text ul{display:flex;justify-content:center;flex-direction:column;width:100%;border:4px solid #ddd;border-radius:200px;padding:0 80px;font-size:20px;
    line-height:35px;min-height:230px}
.strategy_text li{padding-bottom:0}

/* 오시는길 */
.map_box{width:100%;height:500px;position:relative;}
.location_box{background:rgba(255,255,255,0.9);position:absolute;bottom:0;right:0;z-index:999;padding:30px;min-width:500px}
.location_box p{font-size:18px;line-height:36px;text-align:left}
.location_box span{font-weight:bold;width:120px;color:#555;display:inline-block;padding-left:15px}

/* 사업소개 */
.business{width:100%;overflow:hidden}
.business_top{color:#fff;position:relative;padding:85px 120px;height:395px;margin-top:35px;background:url(../img/sub/business_top.jpg) no-repeat 50% 50%;background-size:cover;margin-bottom:40px}
.business_top h3{font-size:38px;line-height:50px;padding-bottom:20px}
.business_top p{width:50%}
.business_list{overflow:hidden;margin-bottom:40px}
.business_list .bs_img{float:left;width:600px;height:420px}
.business_list .bs_img img{width:100%}
.business_list .bs_txt{float:left;width:calc(100% - 600px);padding:65px 0px 0 70px}
.business_list .bs_txt h3{position:relative;font-size:35px;letter-spacing:-1px;color:#222;font-weight:400}
.business_list .bs_txt b{color:#203c92}
.business_list .bs_txt h3:after{content:'';position:absolute;left:-70px;top:130px;width:100%;height:1px;background-color:#ccc}
.business_list .bs_txt p{padding:70px 50px 0 0px}

.business_r .bs_img{float:right}
.business_r .bs_txt {padding-left:0}
.business_r .bs_txt h3:after{left:0px !important}
    
/* 사업영역	 */
.bs_area_list {display:flex;flex-wrap:wrap;margin-top: 25px}
.bs_area_list li {width:calc(50% - 15px);border:1px solid #ddd;padding:45px 53px;margin-bottom:25px;max-height:700px;overflow:hidden}
.bs_area_list li:nth-of-type(2n-1) {margin-right:30px;}
.bs_area_list li > span{color:#16cae5;font-weight: 800;}
.bs_area_list li > strong {font-size:30px;display:block;color:#000;margin: 0 0 23px;font-weight:500}
.bs_area_list li > p {font-size:18px;line-height:28px}

/**************************** responsive ****************************/

@media screen and (max-width:690px){
/******* mobile ******/

    /* 인사말 */
    .director_txt{width:100%;top:220px;left:0;right:0;margin:0 auto}
    .greeting_top{height:220px}
    .director_entxt{font-size:16px;margin-bottom:10px}
    .director_tit{font-size:24px;line-height:34px}
    .director_tit br{display:none}
    .director_txt{padding:25px 45px 25px 20px}
    .director_cont{padding:200px 20px 0 20px}
    .director_cont b{font-size:24px;line-height:34px}    

    /* 연혁 */
    .history_top{height:220px}
    .history_title{width:100%}
    .history_title .year{font-size:37px;line-height:43px}
    .history_title .year2{margin:0;text-align:left}
    .history_wrap{flex-wrap:wrap;padding:0 20px}
    .his_year_list h4{width:100%;font-size:24px;padding-bottom:8px}
    .his_year_list .year_wrap{width:100%}
    .his_year_list .year_wrap dl dt.month{width:100%}
    .his_year_list .year_wrap dl dd.text{width:100%}   
    
    /* 조직도 */
    .organization .org_list li{width:100%}
    .organization::before{display:none}
    .organization::after{top:5%}
    .organization .org_list{margin-top:50px}
    .organization .org_list li .org_depth1:after{display:none}
    .organization .head_org {width:130px;height:130px}
    .organization .head_org span{line-height:130px;font-size:23px}

        
    /* 비전 및 목표 */
    .vision_wrap .vision_tit{font-size:28px;padding:30px 12px 25px 12px}
    .vision_wrap .vision_txt p{font-size:23px}
    .bs_value ul{flex-wrap:wrap}
    .bs_value ul li{width:50%;padding-bottom:20px}
    .bs_value ul li:nth-of-type(2){border-right:none}
    .bs_value span{font-size:24px}

    .strategy_title{width:100%;height:100%;border-radius:8px;padding:20px 0;flex-wrap:wrap}
    .strategy li{flex-wrap:wrap}
    .strategy_title span.num{position:static}
    .strategy_text{width:100%;padding-left:0}
    .strategy_title p{font-size:23px;padding:0 5px;}
    .strategy_title span.num{width:30px;height:30px;line-height:30px;font-size:14px}
    .strategy_text ul{border-radius:8px;padding:0 30px;align-items:center}

    /* 오시는길 */
    .location_box{min-width:auto;width:100%;padding:20px 15px}

    /* 사업소개 */
    .business_top{height:420px;padding:50px 35px}
    .business_top h3{font-size:28px}
    .business_top p{width:100%}
    .business_list .bs_img{width:100%;overflow:hidden}
    .business_list .bs_img img{height:100%}
    .business_list .bs_txt{width:100%;padding:30px 0px 0 20px}
    .business_list .bs_txt h3{font-size:28px;line-height:38px}
    .business_list .bs_txt h3:after{display:none}
    .business_list .bs_txt h3 br{display:none}
    .business_list .bs_txt p{padding:20px 20px 0 0px}

    /* 사업영역	 */
    .bs_area_list li{width:100%}
    .bs_area_list li:nth-of-type(2n-1){margin-right:0}
}

/****** tablet ******/
@media screen and (min-width:691px) and (max-width:899px){

    /* 인사말 */
    .director_txt{width:100%;top:250px;left:0;right:0;margin:0 auto}
    .greeting_top{height:250px}
    .director_entxt{font-size:16px;margin-bottom:10px}
    .director_txt{padding:25px 45px 25px}
    .director_cont{padding:280px 45px 0 45px}

    /* 연혁 */
    .history_top{height:220px}
    .history_title{width:100%}
    .history_title .year{font-size:37px;line-height:43px}
    .history_title .year2{margin:0;text-align:left}
    .history_wrap{flex-wrap:wrap;padding:0 20px}
    .his_year_list h4{width:100%;font-size:24px;padding-bottom:8px}
    .his_year_list .year_wrap{width:100%}

    /* 조직도 */
    .organization .org_list li{width:100%}
    .organization::before{display:none}
    .organization::after{top:7%}
    .organization .org_list{margin-top:50px}
    .organization .org_list li .org_depth1:after{display:none}

     /* 사업소개 */
     .business_top{height:420px;padding:70px 45px}
     .business_list .bs_img{width:100%;overflow:hidden}     
     .business_list .bs_txt{width:100%;padding:30px 0px 0 20px}
     .business_list .bs_txt h3{font-size:28px;line-height:38px}
     .business_list .bs_txt h3:after{display:none}
     .business_list .bs_txt h3 br{display:none}
     .business_list .bs_txt p{padding:20px 20px 0 0px}



}

/****** desktop ******/
@media screen and (min-width:899px) and (max-width:1200px){   

    /* 연혁 */
    .history_title{width:33%;margin-right:10%}
    .history_title .year{font-size:50px}
    .history_title .year2{margin:-25px 0 0 0}
    .his_year_list h4{font-size:24px}

    /* 조직도 */
    .organization .org_list li p{line-height:20px;padding:8px 0;max-height:110px}

    /* 사업소개 */
    .business_list .bs_txt{padding:30px 0px 0 20px}
    .business_list .bs_img{width:500px;height:300px}
    .business_list .bs_txt h3{font-size:28px;line-height:38px}
    .business_list .bs_txt h3:after{display:none}
    .business_list .bs_txt h3 br{display:none}
    .business_list .bs_txt p{padding:20px 20px 0 0px}


}


@media screen and (max-width:319px){

    /* 인사말 */
    .greeting_sign{padding-right:20px}

    /* 연혁 */
    .his_year_list{padding:0 5px 0 10px !important}
    .his_year_list h4{font-size:22px;padding:0 0 10px 0;width:100%}
    .his_year_list .year_wrap:before{display:none}
    .his_year_list .year_wrap{width:100%}
    .his_year_list .year_wrap dl {float:left;margin-bottom:10px}
    .his_year_list .year_wrap dl dt.month{width:100%;padding-bottom:4px}
    .his_year_list .year_wrap dl dd.text{font-size:17px;width:100%;line-height:25px;word-break:keep-all}

}