
/* ================= BASE ================= */
body { margin:0; font-family:'Pretendard';  }
a { text-decoration:none; color:inherit; }
ul,li { list-style:none; margin:0; padding:0; }

/* ================= LAYOUT ================= */
.content-section { max-width:1200px; margin: 60px auto; padding:0px 20px; }
.content-section h2{ padding-bottom: 10px; font-size: 24px; font-weight: 700; }
#curri { margin-bottom:100px; }

/* ================= COURSE HERO ================= */
.course-hero { position:relative; padding:200px 0 40px; }
.course-hero::before { content:""; position:absolute; inset:0; background:rgba(255,255,255,0.3); backdrop-filter:blur(30px); z-index:0; }

.course-hero .hero-inner { max-width:1200px; margin:0 auto; display:flex; gap:60px; padding:0 20px; position:relative; z-index:2; }
.course-hero .hero-info { flex:1; }
.course-hero .hero-preview { flex:.9; position:relative; }
.course-hero .hero-preview img { border-radius:12px; }

.course-hero .badge-wrap { display:flex; gap:8px; }
.course-hero .badge { padding:6px 12px; border-radius:999px; font-size:12px; font-weight:700; }
.course-hero .badge.best { background:#ef4444; color:#fff; }
.course-hero .badge.recommend { background:#2563eb; color:#fff; }

.course-hero .course-title { font-size:36px; font-weight:700; line-height:1.3; margin:16px 0; color:#111; }
.course-hero .course-desc { font-size:18px; margin-bottom:20px; color:#2e3135; }

/* ================= HERO RATING ================= */
.course-hero .rating-box { display:flex; align-items:center; gap:10px; }
.course-hero .rating-box strong { font-size:15px; font-weight:700; color:#111; }
.course-hero .rating-box .count { font-size:13px; font-weight:600; color:#000; }
.course-hero .rating-box .view_count { display: flex; align-items: center; font-size:13px; font-weight:600; color:#474747; }

.course-hero .star-svg-wrap { position:relative; width:100px; height:20px; }
.course-hero .star-bg,
.course-hero .star-fill { position:absolute; inset:0; display:flex; }
.course-hero .star-bg svg,
.course-hero .star-fill svg { width:20px; height:20px; flex-shrink:0; }
.course-hero .star-bg path { fill:#e5e7eb; }
.course-hero .star-fill { overflow:hidden; }
.course-hero .star-fill path { fill:#f5b301; }

/* ================= HERO KEYWORD ================= */
.course-hero .keyword-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.course-hero .keyword-list li { background:#212121; color:#fff; padding:3px 12px; border-radius:999px; font-size:13px; font-weight:500; }

/* ================= HERO BUTTON ================= */
.course-hero .preview-btn { width:100%; margin-top:10px; padding:12px 0; border-radius:8px; border:none; background:#ffffff; color:#000000; font-size:15px; font-weight:600; cursor:pointer; }
.course-hero .preview-btn:hover { background: #e9e9e9ff; }

/* ================= HERO SUMMARY ================= */
.course-hero .hero-summary { display:flex; flex-wrap:wrap; gap:16px; margin-top:20px; }
.course-hero .hero-summary .summary-item { background:rgba(255,255,255, 0.7); padding:10px 16px; border-radius:12px; color:#1c1c1c; font-size:14px; display:flex; border: 1px dashed #cbd5e1; flex-direction:column; align-items:center; }
.course-hero .hero-summary .summary-item .label { font-size:14px; font-weight:600; color:#000; }
.course-hero .hero-summary .summary-item strong { margin-top:4px; font-size:13px; font-weight:700; }

/* ================= TAB NAV ================= */
.tab-nav { position:sticky; top:70px; background:#2b2b2b; border-bottom:1px solid #333; }
.tab-nav ul { max-width:1200px; margin:0 auto; padding:16px 20px; display:flex; gap:30px; overflow-x:auto; }
.tab-nav ul::-webkit-scrollbar { display:none; }
.tab-link { font-weight:600; color:#fff; white-space:nowrap; padding-bottom:4px; border-bottom:2px solid transparent; transition:.3s; }
.tab-link:hover,
.tab-link.active { color:#fff; border-bottom-color:#2563eb; }

/* ================= CONTENT BOX ================= */
.content-box { padding:30px; border-radius:5px; line-height:1.8; box-shadow:0 4px 5px rgba(0,0,0,0.1); border: 1px dashed #cbd5e1;}

/* ================= CURRICULUM ================= */
.curriculum-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.curriculum-header h2{ font-size: 24px;    font-weight: 700; }

.curriculum-total { font-size:14px; color:#9ca3af; }
.curriculum-box { border-radius:14px; padding:24px; }
.curriculum { display:flex; flex-direction:column; gap:12px; }
.curriculum-item { display:flex; align-items:center; gap:12px; padding:12px 16px; border-radius:10px; transition:.2s; }
.curriculum-item .icon { flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.curriculum-item .title { flex:1; font-size:15px; font-weight:500;  }

/* ================= PREVIEW LAYER ================= */
#previewLayer { display:none; position:fixed; inset:0; background:rgba(0,0,0,.8); z-index:9999; align-items:center; justify-content:center; }
#previewLayer.active { display:flex; }
#previewContent { position:relative; width:90%; max-width:800px; }
.preview-close { position:absolute; top:-42px; right:-35px; width:36px; height:36px; border-radius:50%; color:#fff; font-size:54px; border:none; background:none; cursor:pointer; display:flex; align-items:center; justify-content:center; }

/* ================= RESPONSIVE ================= */
@media(max-width:1024px){
    .course-hero .hero-inner { gap:30px; }
    .course-hero .course-title { font-size:30px; }
}
@media(max-width:768px){
    .course-hero .hero-inner { flex-direction:column; }
    .course-hero .hero-preview { order:1; }
    .course-hero .hero-info { order:2; }
    .course-hero .course-title { font-size:24px; }
    .course-hero .course-desc { font-size:14px; }
    .tab-nav ul { gap:16px; }
}
@media(max-width:480px){
    .course-hero .hero-summary { flex-direction:column; }
}



/* review */
.rv-section-light{padding-top:60px;background-color:#ffffff;color:#1e293b;overflow:hidden;}
.rv-container{max-width:1200px;margin:0 auto;padding:0 20px;position:relative}
.rv-header-flex{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px}
.rv-title-area{display:flex;flex-direction:column;gap:8px}
.rv-tag-verified{align-self:start;background:#eef2ff;color:#2563EB;font-size:11px;font-weight:700;padding:4px 10px;border-radius:100px;}
.rv-main-title{font-size:30px;font-weight:800;color:#0f172a;margin:0;letter-spacing:-1px;line-height:1.2}
.rv-main-title span{color:#2563EB}
.rv-nav-group{display:flex;gap:10px;margin-bottom:4px}
.rv-arrow-btn{width:46px;height:46px;border-radius:12px;border:1px solid #e2e8f0;background:#ffffff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;color:#64748b;padding:0}
.rv-arrow-btn:hover{background:#f8fafc;color:#0f172a;border-color:#cbd5e1;transform:translateY(-2px)}
.rv-arrow-btn:disabled{opacity:0.3;cursor:not-allowed;transform:none}
.rv-viewport{position:relative;width:100%}
.rv-track{display:flex;gap:24px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:20px 5px 30px 5px}
.rv-track::-webkit-scrollbar{display:none}
.rv-card-premium{flex:0 0 380px;width:380px;background:#ffffff;border-radius:20px;padding:28px;border:1px solid #e2e8f0;display:flex;flex-direction:column;justify-content:between;min-height:240px;box-sizing:border-box;position:relative;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);box-shadow:0 4px 6px -1px rgba(0,0,0,0.02),0 2px 4px -1px rgba(0,0,0,0.01)}
.rv-card-premium:hover{transform:translateY(-6px);border-color:#2563EB;box-shadow:0 20px 25px -5px rgba(0,0,0,0.06),0 10px 10px -5px rgba(0,0,0,0.03)}
.rv-card-top{display:flex;justify-content:between;align-items:start;margin-bottom:20px}
.rv-user-meta{display:flex;flex-direction:column;gap:4px}
.rv-user-name{font-size:16px;font-weight:700;color:#0f172a;display:flex;align-items:center;gap:6px}
.rv-badge-pass{background:#10b981;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}
.rv-user-progress{font-size:12px;color:#64748b}
.rv-rating-zone{display:flex;flex-direction:column;align-items:end;gap:2px}
.rv-stars-gold{color:#f59e0b;font-size:15px;letter-spacing:-1px}
.rv-numeric-score{font-size:11px;font-weight:600;color:#94a3b8}
.rv-comment-body{font-size:14.5px;line-height:1.7;color:#475569;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:pre-line;margin-bottom:24px;height:98px}
.rv-card-footer{display:flex;justify-content:space-around;align-items:center;border-top:1px solid #f1f5f9;padding-top:16px;margin-top:auto}
.rv-date-text{font-size:12px;color:#94a3b8}
.rv-badge-verified-user{font-size:11px;color:#2563EB;font-weight:600;display:flex;align-items:center;gap:4px}
.rv-empty-state{background:#f8fafc;border-radius:24px;padding:60px 30px;text-align:center;border:2px dashed #cbd5e1;max-width:550px;margin:40px auto}
.rv-empty-state strong{display:block;font-size:20px;color:#0f172a;margin-bottom:10px;letter-spacing:-0.5px}
.rv-empty-state p{font-size:14px;color:#64748b;line-height:1.6;margin:0 0 20px 0}
.rv-empty-state .rv-btn-first{display:inline-block;background:#2563EB;color:#fff;font-size:13px;font-weight:700;padding:8px 16px;border-radius:8px;text-decoration:none;transition:background 0.2s}
.rv-empty-state .rv-btn-first:hover{background:#4338ca}

.btn-lecture{display:inline-block;width:100%;margin-top:10px;padding:15px 0;background:#2563eb;color:#fff;font-size:15px;font-weight:600;text-align:center;border-radius:8px;transition:.25s;}
.btn-lecture:hover{background:#1e40af;}


/* curation */
.svg-icon{display:inline-block;width:24px;height:24px;background-color:#6b6b6b;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;}
    .svg-icon.ai-assistant {
    -webkit-mask-image: url(/img/sub/mypage/ai-assistant.svg);
    mask-image: url(/img/sub/mypage/ai-assistant.svg);
}

.curation-course{margin:80px auto;}
.curation-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;}
.curation-header h2{font-size:28px;font-weight:700;color:#111;}
.curation-header p{margin-top:6px;font-size:15px;color:#777;}

.curation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}

.curation-card{position:relative;display:block;background:#fff;border-radius:18px;overflow:hidden;text-decoration:none;cursor:pointer;transition:.35s ease;box-shadow:0 8px 24px rgba(0,0,0,.08);}
.curation-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:#2563eb;transform:scaleX(0);transform-origin:left;transition:.35s;z-index:5;}
.curation-card:hover{transform:translateY(-10px);box-shadow:0 24px 50px rgba(37,99,235,.18);}
.curation-card:hover::before{transform:scaleX(1);}

.curation-card .thumb{position:relative;height:200px;overflow:hidden;}
.curation-card .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.35),transparent);opacity:0;transition:.35s;}
.curation-card:hover .thumb::after{opacity:1;}

.curation-card .thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:.5s;}
.curation-card:hover .thumb img{transform:scale(1.08);}

.curation-card .body{padding:20px;}

.curation-card h3{height:54px;overflow:hidden;font-size:18px;font-weight:700;line-height:1.5;color:#111;transition:.3s;}
.curation-card:hover h3{color:#212121;}

.curation-card .keywords{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;}
.curation-card .keywords span{padding:5px 12px;border-radius:30px;background:#eef4ff;color:#212121;font-size:12px;font-weight:600;transition:.25s;}
.curation-card:hover .keywords span{background:#212121;color:#fff;}

.curation-card .more{display:inline-flex;align-items:center;gap:6px;margin-top:18px;color:#212121;font-size:14px;font-weight:700;transition:.3s;}
.curation-card .more::after{content:"→";transition:.3s;}
.curation-card:hover .more{gap:12px;}
.curation-card:hover .more::after{transform:translateX(6px);}
.curation-card{z-index:10;}
.curation-card *{pointer-events:none;}
.curation-card img,
.curation-card .body,
.curation-card .keywords,
.curation-card h3,
.curation-card .more{
    pointer-events:none;
}
.curation-empty-state{background:#f8fafc;border:2px dashed #cbd5e1;border-radius:24px;padding:60px 30px;text-align:center;max-width:550px;margin:40px auto}
.curation-empty-state strong{display:block;font-size:20px;color:#0f172a;margin-bottom:10px;letter-spacing:-.5px}
.curation-empty-state p{margin:0;font-size:14px;color:#64748b;line-height:1.6}
@media(max-width:1024px){
    .curation-grid{grid-template-columns:repeat(2,1fr);}
}

@media(max-width:640px){
    .curation-grid{grid-template-columns:1fr;}
}