/*
 * Video library. Built on the theme's 2026 design tokens (--surface, --ink-1,
 * --accent-orange…). Plain CSS rather than tw- utilities, because the theme's
 * Tailwind build doesn't scan this plugin.
 */

.ssv { font-family: 'Manrope', sans-serif; color: var(--ink-2, #3d3c38); }
.ssv .r-title { color: var(--ink-1, #1a1a1a); margin: 0; }

/* ---------- player ---------- */
.ssv-player {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #252C39 center / cover no-repeat;
	overflow: hidden;
}
.ssv-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ssv-play {
	position: absolute; inset: 0; width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(to top, rgba(0,0,0,.45), rgba(0,0,0,.05) 60%);
	border: 0; padding: 0; cursor: pointer;
}
.ssv-play__icon {
	width: 84px; height: 84px; border-radius: 50%;
	background: var(--accent-orange, #EB6144);
	box-shadow: 0 6px 24px rgba(0,0,0,.35);
	position: relative; transition: transform .2s;
}
.ssv-play__icon::after {
	content: ''; position: absolute; left: 34px; top: 26px;
	border-style: solid; border-width: 16px 0 16px 26px;
	border-color: transparent transparent transparent #fff;
}
.ssv-play:hover .ssv-play__icon, .ssv-play:focus-visible .ssv-play__icon { transform: scale(1.08); }
.ssv-play:focus-visible { outline: 3px solid #fff; outline-offset: -6px; }
.ssv-player__note {
	position: absolute; left: 16px; bottom: 10px; margin: 0;
	font-size: 12px; color: rgba(255,255,255,.85); pointer-events: none;
}
.ssv-player.is-playing .ssv-player__note { display: none; }

.ssv-player--locked::before { content: ''; position: absolute; inset: 0; background: rgba(37,44,57,.86); }
.ssv-locked {
	position: relative; height: 100%;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	padding: 24px; text-align: center; color: #fff;
}
.ssv-locked p { margin: 0 0 1em; color: rgba(255,255,255,.9); }
.ssv-locked__title { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 22px; color: #fff !important; }
.ssv-locked__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.ssv-btn-outline {
	display: inline-flex; align-items: center;
	font-family: 'Montserrat', sans-serif; font-size: 13px; font-weight: 700;
	letter-spacing: .05em; text-transform: uppercase; text-decoration: none;
	color: #fff; border: 1.5px solid #fff; padding: calc(1rem - 1.5px) 1.6rem;
}
.ssv-btn-outline:hover { background: #fff; color: #252C39; }

/* ---------- single ---------- */
.ssv-single { max-width: 1280px; margin: 0 auto; padding: 56px 24px; }
@media (min-width: 1024px) { .ssv-single { padding: 64px 40px; } }
.ssv-single__body { display: grid; gap: 40px; margin-top: 40px; align-items: start; }
@media (min-width: 1024px) { .ssv-single__body { grid-template-columns: minmax(0, 1fr) 320px; gap: 64px; } }
.ssv-single__text { font-size: 16px; line-height: 1.75; min-width: 0; }
.ssv-single__lesson { margin-top: 28px; }
.ssv-details { border: 1px solid var(--rule, #dddbd3); background: var(--surface-2, #f5f4ef); padding: 24px; }
.ssv-details__title { font-family: 'Montserrat', sans-serif; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3, #666462); margin: 0 0 20px; }
.ssv-details dl { margin: 0; }
.ssv-details dt { font-family: 'Montserrat', sans-serif; font-size: 12px; font-weight: 600; color: var(--ink-3, #666462); margin: 0; }
.ssv-details dd { margin: 2px 0 16px; color: var(--ink-1, #1a1a1a); }
.ssv-details a { color: var(--link, #355075); }
.ssv-details__back { display: inline-block; font-size: 14px; margin-top: 4px; }

/* ---------- sections + grid ---------- */
.ssv-section { margin-top: 56px; }
.ssv-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.ssv-section__intro { margin: .5em 0 0; max-width: 60ch; }
.ssv-section__more { font-size: 14px; font-weight: 600; color: var(--link, #355075); white-space: nowrap; }
.ssv-count { margin: .4em 0 0; font-size: 14px; color: var(--ink-3, #666462); }
.ssv-empty { padding: 32px; border: 1px dashed var(--rule, #dddbd3); text-align: center; }

.ssv-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px 24px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.ssv-grid li { margin: 0; padding: 0; }
.ssv-card { display: block; text-decoration: none; color: inherit; }
.ssv-card__thumb {
	position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden;
	background: #252C39 linear-gradient(135deg, #252C39, #355075);
}
.ssv-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.ssv-card:hover .ssv-card__thumb img { transform: scale(1.04); }
.ssv-card.is-locked .ssv-card__thumb img { filter: grayscale(.6) brightness(.7); }
.ssv-badge, .ssv-card__duration {
	position: absolute; font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 700;
	padding: 4px 8px; color: #fff; line-height: 1.2;
}
.ssv-badge { top: 10px; left: 10px; background: var(--accent-orange, #EB6144); text-transform: uppercase; letter-spacing: .06em; }
.ssv-card__duration { bottom: 10px; right: 10px; background: rgba(0,0,0,.75); font-family: 'DM Mono', monospace; }
.ssv-card__series { display: block; margin-top: 12px; font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--accent-orange, #c0402a); }
.ssv-card__title { display: block; margin-top: 4px; font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 16px; line-height: 1.35; color: var(--ink-1, #1a1a1a); }
.ssv-card:hover .ssv-card__title { text-decoration: underline; }
.ssv-card:focus-visible { outline: 2px solid var(--link, #355075); outline-offset: 4px; }

/* [ss_videos heading="…"]: full section, same width and padding as the theme's blocks */
.ssv-band { background: var(--surface-2, #f5f4ef); margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.ssv-band__inner { max-width: 1280px; margin: 0 auto; padding: 80px 24px; }
@media (min-width: 1024px) { .ssv-band__inner { padding: 96px 40px; } }
.ssv-band .ssv-section__head { margin-bottom: 40px; }

/* ---------- filters ---------- */
/* Selectors are prefixed with .ssv so they beat the theme's global form and
   ul.page-numbers rules (13px text, select shadows, a border round the list). */
.ssv-library { padding-bottom: 80px; }
.ssv .ssv-filters {
	display: grid; gap: 16px; align-items: end;
	padding: 24px; background: var(--surface-2, #f5f4ef); border: 0;
}
@media (min-width: 900px) { .ssv .ssv-filters { grid-template-columns: minmax(0, 2fr) minmax(0, 1.3fr) minmax(0, 1fr) auto; padding: 28px 32px; } }
.ssv .ssv-filters label {
	display: block; margin: 0 0 8px;
	font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3, #666462);
}
.ssv .ssv-filters input,
.ssv .ssv-filters select {
	display: block; width: 100%; max-width: none; height: 52px; margin: 0; padding: 0 16px; box-sizing: border-box;
	font-family: 'Manrope', sans-serif; font-size: 15px; line-height: 1.2; color: var(--ink-1, #1a1a1a);
	background-color: #fff; border: 1px solid var(--rule, #dddbd3); border-radius: 0; box-shadow: none;
	transition: border-color .15s;
}
.ssv .ssv-filters select {
	-webkit-appearance: none; appearance: none; padding-right: 44px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23355075' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center;
}
.ssv .ssv-filters input::placeholder { color: var(--ink-3, #8a8880); }
.ssv .ssv-filters input:hover, .ssv .ssv-filters select:hover { border-color: var(--ink-3, #8a8880); }
.ssv .ssv-filters input:focus, .ssv .ssv-filters select:focus { outline: 2px solid var(--link, #355075); outline-offset: -1px; border-color: var(--link, #355075); }
.ssv .ssv-filters__actions { display: flex; align-items: center; gap: 16px; }
.ssv .ssv-filters .btn-primary { height: 52px; padding: 0 1.8rem; white-space: nowrap; }
.ssv .ssv-filters__clear { font-size: 14px; color: var(--link, #355075); white-space: nowrap; }

/* ---------- pagination ---------- */
.ssv .ssv-pagination { margin-top: 48px; }
.ssv .ssv-pagination ul { list-style: none; margin: 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ssv .ssv-pagination li { margin: 0; padding: 0; border: 0; }
.ssv .ssv-pagination a, .ssv .ssv-pagination span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; box-sizing: border-box;
	font-family: 'Montserrat', sans-serif; font-size: 14px; font-weight: 600; text-decoration: none;
	color: var(--ink-1, #1a1a1a); background: #fff; border: 1px solid var(--rule, #dddbd3);
	transition: border-color .15s, color .15s;
}
.ssv .ssv-pagination a:hover { border-color: var(--link, #355075); color: var(--link, #355075); }
.ssv .ssv-pagination .current { background: var(--btn-primary, #355075); border-color: var(--btn-primary, #355075); color: #fff; }
.ssv .ssv-pagination .dots { border: 0; background: none; min-width: 0; padding: 0 4px; }

@media (prefers-reduced-motion: reduce) {
	.ssv-card__thumb img, .ssv-play__icon { transition: none; }
}
