.hero { padding-top:30px; }
.hero-banner, .hero-banner picture { display:block; }
.hero-banner img { width:100%; height:auto; }
.popular-section { padding-top:10px; }
.category-section { padding-block:35px 50px; border-top:1px solid #eee; }
.reviews-section { border-top:1px solid #eee; }
.review-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.review-card { background:#f8f8f8; border-radius:12px; min-width:0; }
.review-card>a { display:block; height:100%; padding:24px; }
.review-card:hover { background:#eee; }
.review-card h3 { font-size:20px; line-height:1.6; letter-spacing:-.5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.review-author { display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:12px; margin-top:16px; }
.review-author .star_point { display:inline-block; } /* 기존 별점 이미지 60×12 */
.review-course { color:#b8481b; font-size:12px; margin:6px 0 16px; }
/* 후기 첨부 이미지(user_file_1, 기존 240×60) */
.review-image { width:auto; max-width:100%; height:auto; max-height:60px; margin-top:12px; border-radius:4px; }
.review-body { font-size:14px; color:#707070; line-height:1.7; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.reviews-more { display:block; width:220px; margin:25px auto 0; padding:17px 20px; text-align:center; background:#eee; border-radius:5px; font-size:18px; font-weight:600; }
.reviews-more:hover { background:#f8f8f8; color:#333; }
.contact-section { background:#f9f8fa; padding-block:55px 60px; }
.contact-heading { text-align:center; margin-bottom:36px; }
.contact-heading p { font-size:17px; color:#707070; margin-top:12px; }
.contact-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.contact-grid>a { display:block; background:#fff; color:#b8481b; font-size:22px; font-weight:550; text-align:center; padding:30px 18px; border-radius:20px; box-shadow:2px 4px 16px #00000014; }
.contact-grid>a:last-child { background:var(--color-brand); color:#fff; }
.contact-grid>a:hover { background:var(--color-brand); color:#fff; }
.contact-grid>a:last-child:hover { background:#fff; color:#b8481b; }
@media(max-width:1023px) {
    .review-card>a { padding:18px; }
    .review-card h3 { font-size:17px; }
    .review-body { font-size:13px; }
    .contact-grid { gap:16px; }
    .contact-grid>a { font-size:19px; }
}
@media(max-width:767px) {
    .hero { padding-top:18px; }
    .popular-section { padding-top:7px; }
    .category-section { padding-block:28px 36px; }
    .review-grid { display:flex; overflow-x:auto; gap:14px; padding-bottom:12px; scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; }
    .review-grid::-webkit-scrollbar { display:none; }
    .review-card { flex:0 0 85%; scroll-snap-align:start; }
    .review-card>a { padding:24px; }
    .review-card h3 { font-size:20px; }
    .review-body { font-size:14px; }
    .reviews-more { font-size:16px; width:200px; padding:14px; }
    .contact-section { padding-block:36px; }
    .contact-heading { margin-bottom:25px; }
    .contact-heading p { font-size:14px; }
    .contact-grid { grid-template-columns:1fr; gap:14px; }
    .contact-grid>a { font-size:18px; padding:23px 18px; border-radius:15px; }
}
