/* HLV Section 03 only. */
.sofl-front-page .hlv-playlist-section { padding:40px 0; }
.hlv-playlist-section .hlv-playlist-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; text-align:left; margin-bottom:clamp(28px,3vw,44px); }
.hlv-playlist-section .hlv-playlist-heading > div { flex:1; min-width:0; }
.sofl-front-page.sofl-public-hlv .hlv-playlist-section h2 { margin:14px 0; }
.sofl-front-page main .hlv-playlist-section .hlv-playlist-heading p { max-width:780px; margin-inline:0; }
.hlv-playlist-section .hlv-playlist-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.hlv-playlist-section .hlv-playlist-card { display:flex; flex-direction:column; min-width:0; background:#fff; border:1px solid #edf1f6; border-radius:18px; overflow:hidden; box-shadow:0 8px 24px #0f23410f,0 2px 6px #0f234106; transition:transform 200ms,box-shadow 200ms; }
.hlv-playlist-section .hlv-playlist-card:hover { transform:translateY(-3px); box-shadow:0 14px 34px #0f23411a,0 4px 12px #0f23410a; }
.hlv-playlist-section .hlv-playlist-image { display:block; aspect-ratio:16/9; position:relative; }
.hlv-playlist-section .hlv-playlist-image img { display:block; width:100%; height:100%; object-fit:cover; }
.hlv-playlist-section .hlv-playlist-image > span { position:absolute; top:14px; right:14px; display:inline-flex; align-items:center; gap:7px; padding:8px 12px; border-radius:22px; background:#031725bb; color:#fff; font-size:12px; }
.hlv-playlist-section .hlv-playlist-body { display:flex; flex-direction:column; flex:1; padding:20px; }
.sofl-front-page.sofl-public-hlv .hlv-playlist-section h3 { font-family: var(--public-font-heading); color:#07234b; font-size:24px; line-height:1.2; margin:0 0 10px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.hlv-playlist-section h3 a { color:inherit; text-decoration:none; }
.hlv-playlist-section .hlv-playlist-body > p { margin:0 0 18px; display:block; overflow-wrap:anywhere; }
.hlv-playlist-section .hlv-playlist-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; }
.hlv-playlist-section .hlv-playlist-meta { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:#173b6a; }
.hlv-playlist-section .hlv-playlist-meta span { display:inline-flex; gap:7px; align-items:center; }
.hlv-playlist-section .hlv-playlist-meta span + span { border-left:1px solid #dce5f0; padding-left:10px; }
.sofl-front-page .hlv-playlist-section .approved-button { min-height:44px; gap:10px; }
.hlv-playlist-section .hlv-playlist-pagination-wrap { display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:24px; font-size:13px; color:#607699; }
.hlv-playlist-section .hlv-playlist-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; }
.hlv-playlist-section .hlv-playlist-pagination :is(a,span) { display:grid; place-items:center; min-width:42px; min-height:44px; border:1px solid #e0e5ed; border-radius:50%; color:#07234b; background:#fff; }
.hlv-playlist-section .hlv-playlist-pagination [aria-current=page] { background:#ffda75; border-color:#ffda75; }
.hlv-playlist-section .hlv-playlist-pagination [aria-disabled=true] { color:#a2adbd; }
@media(max-width:1199px) { .hlv-playlist-section .hlv-playlist-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .hlv-playlist-section .hlv-playlist-grid { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .hlv-playlist-section .hlv-playlist-card { transition:none; }.hlv-playlist-section .hlv-playlist-card:hover { transform:none; } }
/* Shared listing card defaults also work inside the Student portal. Public design
   tokens take precedence where present; this is the same card, not a section variant. */
.hlv-playlist-section :where(.hlv-playlist-card) { width:100%; }
.hlv-playlist-section :where(.hlv-playlist-card h3) { font-family:var(--public-font-heading,var(--font-heading,inherit)); font-size:22px; line-height:1.25; font-weight:700; color:#07234b; margin:0 0 10px; overflow-wrap:anywhere; }
.hlv-playlist-section :where(.hlv-playlist-body > p) { color:var(--public-description-color,#566f96); font-size:var(--public-description-size,16px); line-height:var(--public-description-leading,1.6); overflow-wrap:anywhere; }
.hlv-playlist-section :where(.approved-button) { display:inline-flex; align-items:center; justify-content:center; padding:12px 22px; border:1px solid #f2b600; border-radius:10px; font-family:var(--public-font-body,var(--font-body,inherit)); font-size:16px; font-weight:600; line-height:1.4; gap:10px; text-decoration:none; color:#08264c; background:linear-gradient(110deg,#ffe58b,#ffcd45); }
.hlv-playlist-section :where(.approved-button:hover) { color:#08264c; filter:brightness(.98); }
.hlv-playlist-section .hlv-playlist-footer > .approved-button { margin-left:auto; }

/* Public HLV section 4 editorial carousel. Other playlist layouts keep their grid. */
.sofl-public-hlv #video-playlists { padding-block:var(--public-section-space); }
.sofl-public-hlv #video-playlists .hlv-playlist-carousel { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:4px 1px 18px; }
.sofl-public-hlv .hlv-playlist-carousel::-webkit-scrollbar { display:none; }
.sofl-public-hlv .hlv-playlist-carousel > .hlv-playlist-card { flex:0 0 calc((100% - 48px)/3); min-width:0; scroll-snap-align:start; }
.sofl-public-hlv .hlv-playlist-editorial .hlv-playlist-body { padding:22px; }
.sofl-public-hlv .hlv-playlist-editorial .hlv-playlist-footer { border-top:1px solid #e2e8f0; padding-top:18px; }
.sofl-public-hlv .hlv-playlist-editorial .hlv-playlist-meta { gap:18px; font-size:16px; color:#08264c; }
.sofl-public-hlv .hlv-playlist-editorial .hlv-playlist-meta span + span { padding-left:18px; }
.sofl-public-hlv .hlv-playlist-editorial .hlv-playlist-meta i { font-size:20px; }
.sofl-public-hlv .hlv-playlist-carousel-controls { display:flex; align-items:center; gap:14px; margin-top:10px; }
.sofl-public-hlv .hlv-playlist-progress { position:relative; flex:1; height:9px; border-radius:9px; background:#e8ebef; overflow:hidden; }
.sofl-public-hlv .hlv-playlist-progress > span { position:absolute; inset-block:0; left:0; width:33.333%; background:#bb8c2b; border-radius:inherit; }
.sofl-public-hlv .hlv-playlist-carousel-controls button { display:grid; place-items:center; width:48px; height:48px; flex-shrink:0; border:1px solid #bb8c2b; border-radius:50%; background:#fff; color:#08264c; font-size:20px; }
.sofl-public-hlv .hlv-playlist-carousel-controls button:disabled { border-color:#dfe5ed; color:#bdc5d0; background:#f5f6f8; }
.sofl-public-hlv .hlv-playlist-account { --public-description-color:#fff; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:32px; margin-top:32px; padding:clamp(28px,3vw,48px); border:1px solid #bb8c2b; border-radius:20px; background:#061e34; }
.sofl-public-hlv #latest-videos .hlv-playlist-account h2 {
    margin: 0 0 14px;
    color: #fff;
    font-size: clamp(27px,2.6vw,40px);
    line-height: 1.2;
}
.sofl-public-hlv .hlv-playlist-account p { margin:0; font-size:18px; line-height:1.55; }
.sofl-public-hlv .hlv-playlist-account-actions { display:flex; flex-direction:column; gap:14px; align-items:stretch; min-width:270px; }
.sofl-public-hlv .hlv-playlist-account-actions p { font-size:14px; text-align:center; }
.sofl-public-hlv .hlv-playlist-account-actions p a { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.sofl-public-hlv #video-playlists :is(a,button,[tabindex]):focus-visible { outline:3px solid #bb8c2b; outline-offset:3px; }
@media(max-width:1199px) { .sofl-public-hlv .hlv-playlist-carousel > .hlv-playlist-card { flex-basis:calc((100% - 24px)/2); } }
@media(max-width:991px) { .sofl-public-hlv .hlv-playlist-account { grid-template-columns:minmax(0,1fr); gap:24px; } .sofl-public-hlv .hlv-playlist-account-actions { justify-self:start; min-width:0; } }
@media(max-width:767px) { .sofl-public-hlv .hlv-playlist-carousel > .hlv-playlist-card { flex-basis:100%; } .sofl-public-hlv .hlv-playlist-account-actions { justify-self:stretch; } }

.sofl-public-hlv #video-playlists .hlv-playlist-pagination-wrap > span { display:none; }
.sofl-public-hlv #video-playlists .hlv-playlist-pagination-wrap:not(:has(nav)) { display:none; }

.hlv-playlist-heading > .approved-button { flex-shrink:0; }
@media(max-width:767.98px) { .hlv-playlist-section .hlv-playlist-heading { flex-direction:column; align-items:flex-start; gap:16px; } }
