        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { 
            font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 
            line-height: 1.8; 
            color: #222; 
            background-color: #fff; 
			font-size: 16px;
        }
        ul { list-style: none; }
        a { text-decoration: none; color: inherit; }

        .container { max-width: 1400px; margin: 0 auto; padding: 0 0px; }

@media (max-width: 1023px) { /* 모바일,테블릿까지 */
        .container {  padding: 0 5px; }
}
        header {
            height: 70px;
            background-color: #f4f4f4;
            border-bottom: 1px solid #ddd;
            display: flex;
            align-items: center;
            position: sticky;
            top: 0;
            z-index: 1000;
        }
        header .container {
            width: 100%;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
.logo { 
    font-size: 26px; 
    font-weight: 800; 
}

/* 핵심: a 태그 내부에서 이미지와 글자를 가로 중앙 정렬 */
.logo a { 
    display: flex;           /* 가로로 나열 */
    align-items: center;     /* 세로 방향 중앙 정렬 */
    gap: 8px;                /* 이미지와 글자 사이 간격 */
    color: #444; 
    text-decoration: none;   /* 링크 밑줄 제거 */
}

/* 이미지가 찌그러지지 않도록 설정 */
.logo img { 
    display: block; 
    flex-shrink: 0; 
}

.logo span { 
    color: #ff6b6b; 
}

        nav { display: flex; align-items: center; }
        .main-menu { display: flex; margin-right: 20px; }
        .main-menu > li { 
            margin-left: 25px; 
            position: relative; 
            padding: 35px 0; 
            font-weight: 700; 
            font-size: 16px; 
            color: #333; 
            cursor: pointer;
        }
        .main-menu > li > a::after { content: ' ▾'; font-size: 16px; margin-left: 4px; color: #888; }
        
        .sub-menu {
            position: absolute;
            top: 70px;
            left: 50%;
            transform: translateX(-50%);
            background: #fff;
            border: 1px solid #eee;
            min-width: 170px;
            display: none;
            box-shadow: 0 8px 15px rgba(0,0,0,0.1);
            z-index: 100;
        }
        .sub-menu li { margin-left: 0 !important; border-bottom: 1px solid #f9f9f9; }
        .sub-menu li a { display: block; padding: 12px 20px; font-size: 14px; color: #666; font-weight: 500; }
        .sub-menu li a:hover { background: #fcfcfc; color: #ff6b6b; }
        .main-menu li:hover .sub-menu { display: block; }

        .menu-trigger {
            width: 30px; height: 20px;
            display: flex; flex-direction: column; justify-content: space-between;
            cursor: pointer; z-index: 1002;
        }
        .menu-trigger span { display: block; width: 100%; height: 3px; background-color: #444; transition: 0.3s; }

        .visual {
            height: 200px; background: #333;
            display: flex; flex-direction: column; justify-content: center; align-items: center; color: #fff; text-align: center;
        }
        .visual p { font-size: 32px; margin-bottom: 20px; font-weight: 800; }

@media (max-width: 1023px) { /* 모바일,테블릿까지 */
        .visual {
            height: 150px;
        }
        .visual p { font-size: 20px; }
}

        .visual-btn { padding: 12px 35px; background: #ff6b6b; color: #fff; border-radius: 5px; font-weight: 700; font-size: 16px; transition: 0.3s; }
        .visual-btn:hover { background: #e55b5b; }

        .trust-bar {
            background-color: #ff6b6b; color: #fff; text-align: center;
            padding: 15px 0; font-size: 18px; font-weight: bold;
        }

        section { padding: 80px 0; border-bottom: 1px solid #f0f0f0; }
        .section-title { font-size: 28px; font-weight: bold; margin-bottom: 40px; text-align: center; }
        .section-title span { color: #ff6b6b; display: block; font-size: 16px; margin-bottom: 10px; }

        .content-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 30px; }
        .card { background: #fdfdfd; padding: 40px; border-radius: 12px; border: 1px solid #eee; transition: 0.3s; }

@media (max-width: 1023px) { /* 모바일,테블릿까지 */
        section { padding: 30px 0;}
        .card { padding: 20px 15px; }
}

        .card h3 { color: #222; margin-bottom: 20px; font-size: 22px; border-left: 4px solid #ff6b6b; padding-left: 15px; font-weight: 800; }
        .card p { color: #444; font-size: 16px; text-align: justify; font-weight: 500; }

        /* 코스표 스타일 */
        .course-table-wrapper { overflow-x: auto; margin-top: 40px; }
       .course-table-wrapper table { width: 100%; border-collapse: collapse; min-width: 600px; }
        .course-table-wrapper th, td { border: 1px solid #eee; padding: 15px; text-align: center; font-size: 16px; }
        .course-table-wrapper th { background-color: #f4f4f4; font-weight: 800; color: #333; }
        .course-name { background-color: #fff9f9; font-weight: 800; color: #ff6b6b; }

        /* TOP 3 스타일 */
        .top3-item { margin-bottom: 25px; padding: 30px; background: #fcfcfc; border: 1px solid #eee; border-radius: 10px; }
        .top3-header { display: flex; align-items: center; margin-bottom: 15px; }
        .top3-num { font-size: 26px; font-weight: 900; color: #ff6b6b; margin-right: 15px; }
        .top3-title { font-size: 20px; font-weight: 800; }
        .price-info { font-size: 16px; color: #ff6b6b; margin-left: 10px; font-weight: 700; }

        /* 파트너 박스 */
        .partner-box { 
            background: #fff; border: 2px solid #ff6b6b; padding: 60px 20px; 
            border-radius: 20px; text-align: center; margin: 40px 0;
            box-shadow: 0 10px 30px rgba(255,107,107,0.1);
        }
        .partner-box b { font-size: 30px; font-weight: 800; margin-bottom: 20px; }
        .partner-btn { display: inline-block; padding: 15px 40px; background: #333; color: #fff; border-radius: 50px; font-weight: 700; font-size: 18px; margin-top: 20px; transition: 0.3s; }
        .partner-btn:hover { background: #ff6b6b; }

        footer { background: #222; color: #bbb; padding: 60px 0; text-align: center; font-size: 16px; }
        footer strong { color: #fff; }
        .copy { margin-top: 30px; border-top: 1px solid #333; padding-top: 20px; color: #777; }

        /* 사이드바 */
        .side-menu {
            position: fixed; top: 0; right: -320px; width: 320px; height: 100%;
            background: #fff; z-index: 1001; transition: 0.4s; padding-top: 100px;
            box-shadow: -10px 0 20px rgba(0,0,0,0.1); overflow-y: auto;
        }
        .side-menu.open { right: 0; }
        .side-menu-list > li { border-bottom: 1px solid #f5f5f5; }
        .side-menu-list > li > a { display: flex; justify-content: space-between; align-items: center; padding: 15px 30px; font-size: 18px; font-weight: 800; color: #333; }
        .side-menu-list > li > a::after { content: '▾'; font-size: 14px; color: #ccc; }
        .side-menu-list > li.active > a::after { transform: rotate(180deg); }
        .side-sub { background: #fcfcfc; padding: 10px 0; }
        .side-sub li a { display: block; padding: 10px 45px; font-size: 16px; color: #666; font-weight: 600; }
        .side-menu-list > li.active .side-sub { display: block; }
        .overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); display: none; z-index: 1000; }
        .overlay.active { display: block; }

        @media (max-width: 992px) {
            .main-menu { display: none; }
            .image-gallery { grid-template-columns: 1fr; }
        }

/* 카테고리 태그는 그대로 유지 */
.category-tags { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; padding: 20px 0; }
.tag { padding: 12px 25px; background: #444; color: #fff; border-radius: 30px; font-size: 16px; font-weight: bold; cursor: pointer; }

/* 갤러리 그리드 틀 유지 */
.image-gallery { 
    display: grid; 
    grid-template-columns: repeat(3, 1fr); 
    gap: 20px; 
    margin-top: 40px; 
}

/* ★ 핵심 수정: .gallery-item의 고정 비율과 중앙 정렬을 해제합니다 */
.gallery-item { 
    /* aspect-ratio: 16 / 9; <-- 이 줄을 지우거나 아래처럼 auto로 변경 */
    height: auto; 
    background-color: #fff; 
    border-radius: 8px; 
    display: flex; 
    flex-direction: column; /* 가로 중앙정렬 대신 위아래 나열로 변경 */
    overflow: hidden;
    border: 1px solid #eee; 
    transition: 0.3s;
}

/* 이미지에만 16:9 비율을 적용해서 틀을 유지합니다 */
.gallery-img { 
    width: 100%; 
    aspect-ratio: 16 / 9; 
    object-fit: cover; 
    background-color: #eee;
    display: block;
}

/* 새로 추가한 정보창 레이아웃 */
.gallery-info { padding: 15px; text-align: left; }
.shop-name { display: block; font-size: 18px; font-weight: 800; color: #222; margin-bottom: 10px; }
.shop-contact { display: flex; justify-content: space-between; align-items: center; }
.shop-tel { font-size: 18px; font-weight: 700; color: #ff6b6b; }
.call-btn { padding: 6px 12px; background: #444; color: #fff !important; border-radius: 5px; font-size: 13px; font-weight: bold; text-decoration: none; }

/* 모바일 1열 처리 */
@media (max-width: 768px) {
    .image-gallery { grid-template-columns: 1fr; }
}


.sr-only { /* h1, h2 동적일때 상단에 미리정의등에 사용 */
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0); /* 옛날 브라우저 대응 */
    clip-path: inset(50%); /* 현대 브라우저 대응 */
    border: 0;
    white-space: nowrap; /* 줄바꿈 방지 */
}

/* svg 기본크기 */
svg {
    width: 16px; 
    height: 16px;
    max-width: 100%;
}

/* symbol을 담고 있는 껍데기 SVG는 안보이게, 최초 로딩시 잠깐 보이는거 안보이게처리 */
svg[style*="display: none"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    position: absolute;
    overflow: hidden;
}

/* 닫기 버튼 스타일 */
    .side-close-btn {
        position: absolute;
        top: 20px;
        right: 20px;
        width: 30px;
        height: 30px;
        cursor: pointer;
        z-index: 1001;
    }
    .side-close-btn span {
        position: absolute;
        top: 14px;
        left: 0;
        width: 100%;
        height: 2px;
        background: #333; /* 버튼 색상 (어두운 테마면 #fff로 변경) */
        display: block;
    }
    .side-close-btn span:first-child { transform: rotate(45deg); }
    .side-close-btn span:last-child { transform: rotate(-45deg); }

    /* 메뉴 리스트 상단 여백 (닫기 버튼과 겹치지 않게) */
    .side-menu-list { margin-top: 5px !important; }