/**
 * 강의/전자책 카드: 제목·본문 항상 노출 + 회전 외곽선 (강의수강·전자책 전용)
 */
@keyframes card-border-spin {
    to { transform: rotate(360deg); }
}
/* 회전하는 외곽선 (호버 시 색 채우기 아님) - 이미지·본문 포함 카드 전체에 적용 */
body .card.course-card,
body .card.ebook-card {
    border: none !important;
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    padding: 3px;
    box-sizing: border-box;
}
body .card.course-card::before,
body .card.ebook-card::before {
    content: "";
    position: absolute;
    inset: -50%;
    width: 200%;
    height: 200%;
    left: -50%;
    top: -50%;
    background: conic-gradient(from 0deg, var(--accent-color), var(--accent-color-5), var(--accent-color-4), var(--accent-color-5), var(--accent-color));
    animation: card-border-spin linear infinite;
    z-index: 0;
}
/* 카드마다 속도·시작 시점 다르게 (일정하게 흐르지 않도록) */
.col:nth-child(1) .card.course-card::before,
.col:nth-child(1) .card.ebook-card::before { animation-duration: 4s; animation-delay: 0s; }
.col:nth-child(2) .card.course-card::before,
.col:nth-child(2) .card.ebook-card::before { animation-duration: 5s; animation-delay: -1.2s; }
.col:nth-child(3) .card.course-card::before,
.col:nth-child(3) .card.ebook-card::before { animation-duration: 4.5s; animation-delay: -2.8s; }
.col:nth-child(4) .card.course-card::before,
.col:nth-child(4) .card.ebook-card::before { animation-duration: 5.5s; animation-delay: -0.5s; }
.col:nth-child(5) .card.course-card::before,
.col:nth-child(5) .card.ebook-card::before { animation-duration: 4.2s; animation-delay: -3s; }
.col:nth-child(6) .card.course-card::before,
.col:nth-child(6) .card.ebook-card::before { animation-duration: 5.2s; animation-delay: -1.5s; }
body .card.course-card::after,
body .card.ebook-card::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 17px;
    background: var(--bs-dark, #1a1a1a);
    z-index: 1;
}
body .card.course-card .card-media,
body .card.course-card .card-body,
body .card.ebook-card .card-media,
body .card.ebook-card .card-body {
    position: relative;
    z-index: 2;
    box-sizing: border-box;
}
body .card.course-card .card-media,
body .card.ebook-card .card-media {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: 17px 17px 0 0;
    overflow: hidden;
}
/* 카드 표지 링크가 1:1 영역을 채우도록 */
body .card.course-card .card-media a,
body .card.ebook-card .card-media a {
    display: block;
    width: 100%;
    height: 100%;
}
body .card.course-card .card-media img,
body .card.ebook-card .card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 17px 17px 0 0;
}
body .card.course-card .card-body,
body .card.ebook-card .card-body {
    border-radius: 0 0 17px 17px;
}
body .card.course-card .card-body,
body .card.ebook-card .card-body {
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    transform: none !important;
    min-height: auto !important;
    height: auto !important;
    overflow: visible !important;
}
body .card.course-card .card-title-wrap,
body .card.ebook-card .card-title-wrap {
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
}
body .card.course-card .card-title,
body .card.ebook-card .card-title,
body .card.course-card .card-title a,
body .card.ebook-card .card-title a {
    opacity: 1 !important;
    visibility: visible !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #f0f0f0 !important;
}
body .card.course-card .card-title a:hover,
body .card.ebook-card .card-title a:hover {
    color: var(--accent-color, #DDF247) !important;
}

/* 강사(작성자) 이미지/이름 크기 확대: 강의수강 + 전자책 카드 공통 */
body .card.course-card .author-row .avatar,
body .card.ebook-card .author-row .avatar {
    width: 44px !important;
    height: 44px !important;
}

body .card.course-card .author-row .author-name,
body .card.ebook-card .author-row .author-name {
    font-size: 1.05rem !important;
    color: var(--bs-secondary, #888) !important;
}
