/* ===== LICENSE PAGE ===== */
::-webkit-scrollbar { width:6px; background:#0A0A0A; }
::-webkit-scrollbar-track { background:#0A0A0A; }
::-webkit-scrollbar-thumb { background:rgba(120,120,120,0.4); border-radius:0; }

/* ── Hero Carousel ── */
.page-hero { background:var(--hero-bg, var(--black)); position:relative; height:547px; overflow:hidden; }
.page-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 10% 60%,rgba(232,97,60,0.12) 0%,transparent 55%), radial-gradient(ellipse at 90% 20%,rgba(232,97,60,0.05) 0%,transparent 50%); }
.hero-grid-lines { position:absolute; right:0; top:0; bottom:0; width:44%; background:repeating-linear-gradient(90deg,transparent 1px,transparent 59px,rgba(255,255,255,0.022) 59px,rgba(255,255,255,0.022) 60px); pointer-events:none; z-index:1; }
.hero-grid-lines::after { content:''; position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent 1px,transparent 59px,rgba(255,255,255,0.013) 59px,rgba(255,255,255,0.013) 60px); }
.hero-carousel { position:absolute; inset:0; }
.hero-slide { position:absolute; inset:0; padding-top:150px; display:flex; align-items:center; opacity:0; pointer-events:none; transition:opacity .8s ease; }
.hero-slide-bg { position:absolute; inset:0; background:var(--hero-bg, var(--black)); z-index:0; }
.hero-slide.active { opacity:1; pointer-events:auto; }
.hero-content { position:relative; z-index:2; padding:64px clamp(20px,3vw,60px); width:100%; max-width:1320px; margin:0 auto; }
.hero-eyebrow { font-size: 14px; font-weight:500; letter-spacing:2px; color:var(--accent); margin-bottom:16px; text-transform:uppercase; font-family:'Poppins',sans-serif; }
.hero-title { font-size:clamp(32px,4vw,52px); font-weight:800; color:var(--hero-text, var(--white)); line-height:1.15; letter-spacing:-1px; margin-bottom:16px; }
.hero-title span { color:var(--accent); }
.hero-desc { font-size: 17px; font-weight:330; color:var(--hero-text, rgba(255,255,255,0.5)); line-height:1.8; max-width:520px; }
.hero-instructor { display:flex; align-items:center; gap:7px; margin-top:14px; font-size:14px; color:var(--hero-text, rgba(255,255,255,.72)); }
.hero-instructor i { color:var(--hero-icon, var(--accent)); font-size:13px; }
.hero-meta { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:18px; }
.hero-meta .hero-slide-meta-item { display:flex; align-items:center; gap:6px; font-size:14px; color:var(--hero-text, rgba(255,255,255,.72)); }
.hero-meta .hero-slide-meta-item i { color:var(--hero-icon, var(--accent)); font-size:13px; }
.hero-price { margin-top:18px; font-family:'Poppins',sans-serif; font-size:30px; font-weight:700; color:var(--hero-text, var(--white)); }
.hero-price small { margin-left:4px; font-family:'Noto Sans KR',sans-serif; font-size:15px; font-weight:340; color:var(--hero-text, rgba(255,255,255,.72)); }
.hero-badge-row { display:flex; gap:12px; margin-top:28px; flex-wrap:wrap; }
.hero-badge { display:inline-flex; align-items:center; gap:6px; padding:6px 16px; border:1px solid var(--hero-badge-border, rgba(255,255,255,0.15)); font-size: 14px; color:var(--hero-text, rgba(255,255,255,0.6)); background:var(--hero-badge-bg, transparent); font-family:'Poppins',sans-serif; letter-spacing:0.5px; }
.hero-badge i { color:var(--hero-icon, var(--accent)); font-size: 12px; }
.hero-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:10; width:52px; height:52px; display:flex; align-items:center; justify-content:center; border:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); background:rgba(0,0,0,.35); backdrop-filter:blur(6px); color:rgba(255,255,255,.65); cursor:pointer; font-size:16px; transition:var(--transition-fast); }
.hero-arrow#heroPrev { left:24px; }
.hero-arrow#heroNext { right:24px; }
.hero-arrow:hover { box-shadow:inset 0 0 0 1px var(--accent); color:var(--white); background:rgba(232,97,60,.15); }
.hero-dots { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); z-index:10; display:flex; gap:8px; align-items:center; }
.hero-dot { width:6px; height:6px; padding:0; border:0; background:rgba(255,255,255,.3); cursor:pointer; transition:var(--transition-fast); }
.hero-dot.active { width:24px; background:var(--accent); }
.hero-progress { position:absolute; bottom:0; left:0; height:2px; background:var(--accent); z-index:10; animation:heroProgress 5s linear infinite; }
@keyframes heroProgress { from { width:0; } to { width:100%; } }

/* ── Cert Tab Nav ── */
.cert-tab-nav { background:var(--dark); border-bottom:1px solid rgba(255,255,255,0.07); position:sticky; top:150px; z-index:100; }
.cert-tab-nav-inner { max-width:1320px; margin:0 auto; padding:0 40px; display:flex; gap:0; }
.cert-tab-btn { padding:20px 36px; background:none; border:none; border-bottom:3px solid transparent; color:rgba(255,255,255,0.45); font-size: 16px; font-weight:600; font-family:'Noto Sans KR',sans-serif; cursor:pointer; transition:var(--transition-fast); white-space:nowrap; margin-bottom:-1px; }
.cert-tab-btn:hover { color:rgba(255,255,255,0.8); }
.cert-tab-btn.active { color:var(--white); border-bottom-color:var(--accent); }
.tab-badge { display:inline-block; margin-left:8px; padding:2px 8px; background:var(--accent-soft); color:var(--accent); font-size: 12px; font-weight:500; font-family:'Poppins',sans-serif; vertical-align:middle; }

/* ── Cert Content ── */
.cert-content-wrap { background:var(--gray-100); min-height:600px; padding:60px 0 100px; }
.cert-panel { display:none; }
.cert-panel.active { display:block; }

/* Section common */
.section-label { font-size: 13px; font-weight:600; letter-spacing:2px; color:var(--accent); text-transform:uppercase; font-family:'Poppins',sans-serif; margin-bottom:10px; }
.section-title { font-size: 30px; font-weight:800; color:var(--black); letter-spacing:-0.5px; margin-bottom:8px; }
.section-head { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:28px; }

/* ── Cert Intro Card ── */
.cert-intro-section { margin-bottom:60px; }
.cert-intro-card { background:var(--white); border-top:3px solid var(--accent); padding:48px; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.cert-intro-name { font-size: 15px; font-weight:600; color:var(--accent); letter-spacing:1px; text-transform:uppercase; font-family:'Poppins',sans-serif; margin-bottom:8px; }
.cert-intro-title { font-size: 34px; font-weight:800; color:var(--black); letter-spacing:-0.5px; line-height:1.2; margin-bottom:16px; }
.cert-intro-body { font-size: 16px; color:var(--gray-600); line-height:1.9; font-weight:330; }
.cert-intro-right { display:flex; flex-direction:column; gap:0; }
.cert-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--gray-200); }
.cert-stat-item { padding:24px 20px; border-right:1px solid var(--gray-200); text-align:center; }
.cert-stat-item:last-child { border-right:none; }
.cert-stat-label { font-size: 13px; font-weight:600; color:var(--gray-400); text-transform:uppercase; letter-spacing:1px; font-family:'Poppins',sans-serif; margin-bottom:8px; }
.cert-stat-value { font-size: 24px; font-weight:800; color:var(--black); font-family:'Poppins',sans-serif; line-height:1; }
.cert-stat-value small { font-size: 14px; font-weight:400; color:var(--gray-500); font-family:'Noto Sans KR',sans-serif; }
.cert-issuer-row { margin-top:20px; padding:16px 20px; background:var(--gray-100); display:flex; align-items:center; gap:12px; }
.cert-issuer-row i { color:var(--accent); font-size: 16px; }
.cert-issuer-row span { font-size: 15px; color:var(--gray-600); }
.cert-issuer-row strong { color:var(--black); font-weight:600; }

/* ── Exam Table ── */
.exam-section { margin-bottom:60px; }
.exam-table-wrap { overflow-x:auto; }
.exam-table { width:100%; border-collapse:collapse; background:var(--white); }
.exam-table thead th { background:var(--black); color:var(--white); font-size: 14px; font-weight:600; letter-spacing:0.5px; padding:16px 20px; text-align:center; font-family:'Poppins','Noto Sans KR',sans-serif; }
.exam-table tbody td { padding:16px 20px; font-size: 15px; color:var(--gray-700); border-bottom:1px solid var(--gray-200); text-align:center; vertical-align:middle; }
.exam-table tbody tr:last-child td { border-bottom:none; }
.exam-table tbody tr:hover td { background:var(--gray-100); }
.exam-table .td-label { font-weight:700; color:var(--black); background:var(--gray-100); text-align:left; min-width:140px; }
.exam-note { margin-top:12px; padding:14px 20px; background:rgba(232,97,60,0.05); border-left:3px solid var(--accent); font-size: 14px; color:var(--gray-500); line-height:1.7; }

/* ── Subject Table ── */
.subject-section { margin-bottom:60px; }
.subject-table-wrap { overflow-x:auto; }
.subject-table { width:100%; border-collapse:collapse; background:var(--white); min-width:780px; }
.subject-table thead th { background:var(--black); color:var(--white); font-size: 14px; font-weight:600; letter-spacing:0.5px; padding:16px 24px; text-align:center; font-family:'Poppins','Noto Sans KR',sans-serif; }
.subject-table tbody td { padding:18px 24px; font-size: 15px; color:var(--gray-700); border-bottom:1px solid var(--gray-200); vertical-align:middle; }
.subject-table tbody tr:last-child td { border-bottom:none; }
.subject-table .td-subject-no { width:60px; text-align:center; font-family:'Poppins',sans-serif; font-weight:700; color:var(--accent); font-size: 16px; }
.subject-table .td-subject-name { font-weight:700; color:var(--black); }
.subject-table .td-count { text-align:center; font-family:'Poppins',sans-serif; font-weight:600; color:var(--black); }
.subject-table .td-score { text-align:center; font-family:'Poppins',sans-serif; font-weight:600; color:var(--black); }
.subject-table .td-pass { text-align:center; font-size: 14px; color:var(--gray-500); }
.subject-table .td-type { font-size: 14px; color:var(--gray-500); }
.subject-table .td-topic { font-weight:600; color:var(--black); background:var(--gray-100); white-space:nowrap; text-align:left; }
.subject-table .td-detail { font-size: 14px; color:var(--gray-600); line-height:1.9; text-align:left; border-right:1px solid var(--gray-200); }

/* ── Course Section ── */
.course-section { margin-bottom:0; }
.course-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; margin-top:32px; }
.course-card { background:var(--white); transition:var(--transition); cursor:pointer; text-decoration:none; display:flex; flex-direction:column; }
.course-card:hover { transform:translateY(-4px); box-shadow:0 16px 48px rgba(0,0,0,0.12); }
.course-card-thumb { width:100%; aspect-ratio:16/9; background:var(--dark); position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.course-thumb-bg { position:absolute; inset:0; background:linear-gradient(135deg,var(--dark) 0%,var(--gray-900) 100%); }
.course-thumb-pattern { position:absolute; inset:0; background:repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(255,255,255,0.015) 20px,rgba(255,255,255,0.015) 40px); }
.course-thumb-play { position:relative; z-index:2; width:52px; height:52px; background:rgba(232,97,60,0.2); border:1px solid rgba(232,97,60,0.4); display:flex; align-items:center; justify-content:center; color:var(--accent); font-size: 20px; transition:var(--transition-fast); }
.course-card:hover .course-thumb-play { background:var(--accent); color:var(--white); }
.course-thumb-label { position:absolute; top:16px; left:16px; z-index:2; padding:4px 10px; background:var(--accent); font-size: 12px; font-weight:600; color:var(--white); font-family:'Poppins',sans-serif; letter-spacing:0.5px; }
.course-card-body { padding:24px; flex:1; display:flex; flex-direction:column; }
.course-card-cat { font-size: 13px; font-weight:600; color:var(--accent); letter-spacing:1px; text-transform:uppercase; font-family:'Poppins',sans-serif; margin-bottom:8px; }
.course-card-title { font-size: 18px; font-weight:700; color:var(--black); line-height:1.4; margin-bottom:12px; }
.course-card-instructor { font-size: 14px; color:var(--gray-500); margin-bottom:16px; }
.course-card-instructor i { color:var(--accent); margin-right:4px; }
.course-card-meta { display:flex; gap:16px; margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid var(--gray-200); flex-wrap:wrap; }
.course-meta-item { display:flex; align-items:center; gap:5px; font-size: 14px; color:var(--gray-500); }
.course-meta-item i { color:var(--accent); font-size: 12px; }
.course-card-footer { display:flex; align-items:center; justify-content:space-between; margin-top:auto; }
.course-price { font-family:'Poppins',sans-serif; font-size: 24px; font-weight:700; color:var(--black); }
.course-price small { font-size: 14px; font-weight:400; color:var(--gray-500); margin-left:2px; }
.course-btn { padding:10px 20px; background:var(--black); color:var(--white); font-size: 14px; font-weight:600; font-family:'Poppins',sans-serif; letter-spacing:0.5px; border:none; cursor:pointer; transition:var(--transition-fast); text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.course-btn:hover { background:var(--accent); }
.course-empty { text-align:center; padding:80px 40px; background:var(--white); }
.course-empty-icon { width:72px; height:72px; margin:0 auto 20px; background:var(--gray-100); display:flex; align-items:center; justify-content:center; font-size: 30px; color:var(--gray-300); }
.course-empty-title { font-size: 20px; font-weight:700; color:var(--gray-700); margin-bottom:8px; }
.course-empty-desc { font-size: 15px; color:var(--gray-400); line-height:1.7; }

/* ── Reveal ── */
.reveal { opacity:0; transform:translateY(24px); transition:opacity 0.7s ease,transform 0.7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── Responsive ── */
@media (max-width:1024px) {
    /* gongae.css와 동일 사유: 콘텐츠가 min-height보다 크면 잘리고, .hero-content의
       비대칭 세로 패딩 때문에 상하 중앙 정렬도 안 됨. 여유 있게 올리고 세로 패딩 제거. */
    .page-hero { height:auto; min-height:560px; }
    .hero-content { padding:0 40px; }
    .hero-arrow { display:none !important; }
    .cert-intro-card { grid-template-columns:1fr; gap:32px; }
}
@media (max-width:768px) {
    .hero-arrow { display:none !important; }
    /* 768px 이하는 헤더가 60px로 줄어드므로 .hero-slide의 150px 여백도 해제. */
    .hero-slide { padding-top:0; }
    .cert-tab-nav { top:60px; }
    .cert-tab-nav-inner { padding:0 20px; overflow-x:auto; }
    .cert-tab-btn { padding:16px 20px; font-size: 15px; }
    .cert-content-wrap { padding:40px 0 60px; }
    .cert-intro-card { padding:28px; }
    .hero-content { padding:0 24px; }
    .hero-title { font-size: 30px; }
    .course-grid { grid-template-columns:1fr; }
}
