.kocsoul-video {
  color: #fff;
  --kocsoul-card-width: 320px;
  --kocsoul-gap: 12px;
  --kocsoul-tag-color: #ff6b00;
  --kocsoul-visible-cards: 4;
}

.kocsoul-video-slider {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  overflow: visible;
}

.kocsoul-video-slider__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.kocsoul-video-slider__head h3 {
  margin: 0;
  font-size: 28px;
}

.kocsoul-video-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: transparent;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  line-height: 1;
  font-size: 34px;
  font-weight: 700;
}

.kocsoul-video-nav:hover,
.kocsoul-video-nav:focus,
.kocsoul-video-nav:active {
  color: #fff;
  background: #111;
  border-color: #333;
  box-shadow: none;
}

.kocsoul-video-nav.prev {
  left: -60px;
}

.kocsoul-video-nav.next {
  right: -60px;
}

.kocsoul-video-slider__viewport {
  position: relative;
  width: calc(var(--kocsoul-card-width) * var(--kocsoul-visible-cards) + (var(--kocsoul-gap) * (var(--kocsoul-visible-cards) - 1)));
  margin: 0 auto;
  flex: 0 0 auto;
}

.kocsoul-video-slider__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: var(--kocsoul-card-width);
  gap: var(--kocsoul-gap);
  overflow-x: auto;
  scroll-behavior: smooth;
  padding-bottom: 6px;
  scrollbar-width: none;
}

.kocsoul-video-slider__track::-webkit-scrollbar {
  display: none;
}

.kocsoul-video-card,
.kocsoul-video-list-item {
  border: 1px solid #2a2a2a;
  border-radius: 14px;
  background: #101010;
  color: #fff;
  text-align: left;
  cursor: pointer;
}

.kocsoul-video-card:hover,
.kocsoul-video-card:focus,
.kocsoul-video-card:active,
.kocsoul-video-list-item:hover,
.kocsoul-video-list-item:focus,
.kocsoul-video-list-item:active {
  color: #fff;
  background: #101010;
  border-color: #2a2a2a;
  text-decoration: none;
  box-shadow: none;
}

.kocsoul-video-card {
  padding: 0;
  overflow: hidden;
  display: block;
  /* min-height: calc(var(--kocsoul-card-width) * 1.58); */
}

.kocsoul-video-card .thumb,
.kocsoul-video-list-item .thumb {
  position: relative;
  display: block;
}

.kocsoul-video-card img,
.kocsoul-video-list-item img {
  width: 100%;
  display: block;
  border-radius: 0;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.kocsoul-video-card .play,
.kocsoul-video-list-item .play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: calc(var(--kocsoul-card-width) * 0.14);
  height: calc(var(--kocsoul-card-width) * 0.14);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
  color: transparent;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.kocsoul-video-card .play::before,
.kocsoul-video-list-item .play::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  margin-left: calc(var(--kocsoul-card-width) * 0.01);
  border-top: calc(var(--kocsoul-card-width) * 0.028) solid transparent;
  border-bottom: calc(var(--kocsoul-card-width) * 0.028) solid transparent;
  border-left: calc(var(--kocsoul-card-width) * 0.045) solid #fff;
}

.kocsoul-video-card .duration,
.kocsoul-video-list-item .duration {
  position: absolute;
  right: calc(var(--kocsoul-card-width) * 0.025);
  bottom: calc(var(--kocsoul-card-width) * 0.025);
  font-size: calc(var(--kocsoul-card-width) * 0.05);
  background: rgba(0, 0, 0, 0.7);
  padding: 2px calc(var(--kocsoul-card-width) * 0.02);
  border-radius: 6px;
}

.kocsoul-video-card .thumb-date,
.kocsoul-video-list-item .thumb-date {
  position: absolute;
  left: 0;
  bottom: 0;
  background: #1d8af0;
  color: #fff;
  font-weight: 700;
  padding: calc(var(--kocsoul-card-width) * 0.018) calc(var(--kocsoul-card-width) * 0.04);
  font-size: calc(var(--kocsoul-card-width) * 0.062);
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.kocsoul-video-list-item .thumb-date {
  padding: 6px 12px;
  font-size: 14px;
}

.kocsoul-video-card .badge {
  display: inline-flex;
  margin: calc(var(--kocsoul-card-width) * 0.038) calc(var(--kocsoul-card-width) * 0.044) calc(var(--kocsoul-card-width) * 0.03);
  border: 1px solid var(--kocsoul-tag-color);
  color: var(--kocsoul-tag-color);
  border-radius: 6px;
  padding: calc(var(--kocsoul-card-width) * 0.01) calc(var(--kocsoul-card-width) * 0.03);
  font-size: calc(var(--kocsoul-card-width) * 0.062);
  font-weight: 700;
  line-height: 1;
}

.kocsoul-video-card .title {
  display: block;
  font-weight: 800;
  margin: 0 calc(var(--kocsoul-card-width) * 0.044) calc(var(--kocsoul-card-width) * 0.03);
  font-size: var(--kocsoul-title-size, calc(var(--kocsoul-card-width) * 0.11));
  line-height: 1.2;
}

.kocsoul-video-card .meta {
  display: flex;
  align-items: center;
  gap: calc(var(--kocsoul-card-width) * 0.037);
  color: #d2d2d2;
  margin: 0 calc(var(--kocsoul-card-width) * 0.044) calc(var(--kocsoul-card-width) * 0.03);
  font-size: calc(var(--kocsoul-card-width) * 0.072);
  font-weight: 600;
}

.kocsoul-video-card .meta .branch {
  position: relative;
  padding-left: calc(var(--kocsoul-card-width) * 0.075);
}

.kocsoul-video-card .meta .branch::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: calc(var(--kocsoul-card-width) * 0.034);
  height: calc(var(--kocsoul-card-width) * 0.034);
  border-radius: 50%;
  background: var(--kocsoul-tag-color);
  transform: translateY(-50%);
}

.kocsoul-video-card .meta .date {
  position: relative;
  padding-left: calc(var(--kocsoul-card-width) * 0.037);
}

.kocsoul-video-card .meta .date::before {
  content: "|";
  position: absolute;
  left: 0;
  top: 50%;
  color: #757575;
  transform: translateY(-50%);
}

.kocsoul-video-card .desc {
  display: block;
  color: #b8b8b8;
  margin: 0 calc(var(--kocsoul-card-width) * 0.044) calc(var(--kocsoul-card-width) * 0.05);
  font-size: calc(var(--kocsoul-card-width) * 0.072);
  line-height: 1.38;
}

.kocsoul-video-list {
  display: grid;
  gap: var(--kocsoul-gap, 14px);
}

.kocsoul-video-list-item {
  display: grid;
  grid-template-columns: 300px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 10px;
}

.kocsoul-video-list-item .content .title {
  display: block;
  font-size: var(--kocsoul-title-size, 30px);
  font-weight: 800;
  margin-bottom: 6px;
}

.kocsoul-video-list-item .content .meta {
  display: block;
  color: var(--kocsoul-tag-color);
  margin-bottom: 8px;
  font-weight: 700;
}

.kocsoul-video-list-item .content .desc {
  display: block;
  color: #e4e4e4;
  margin-bottom: 9px;
}

.kocsoul-video-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.kocsoul-video-tags span {
  border: 1px solid var(--kocsoul-tag-color);
  color: var(--kocsoul-tag-color);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 13px;
}

.kocsoul-video-modal[hidden] {
  display: none !important;
}

.kocsoul-video-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
}

.kocsoul-video-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
}

.kocsoul-video-modal__dialog {
  position: relative;
  max-width: 900px;
  width: calc(100% - 80px);
  margin: 40px auto;
  background: #0f0f0f;
  border: 1px solid #2b2b2b;
  border-radius: 16px;
  padding: 16px;
}

.kocsoul-video-modal__close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: #1f1f1f;
  color: #fff;
  font-size: 21px;
  cursor: pointer;
}

.kocsoul-video-modal__player-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  overflow: hidden;
  border-radius: 12px;
}

.kocsoul-video-modal__iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.kocsoul-video-modal__meta {
  margin-top: 16px;
}

.kocsoul-video-modal__title {
  margin: 0 0 6px;
  font-size: 34px;
}

.kocsoul-video-modal__sub {
  margin: 0 0 10px;
  color: var(--kocsoul-tag-color, #f48226);
}

.kocsoul-video-modal__desc {
  margin: 0 0 10px;
  color: #ddd;
}

@media (max-width: 1400px) {
  .kocsoul-video-list-item {
    grid-template-columns: 1fr;
  }

  .kocsoul-video-list-item .content .title {
    font-size: var(--kocsoul-title-size, 24px);
  }
}

/* 800px ~ 1023px: 2개 */
@media (min-width: 800px) and (max-width: 1023px) {
  .kocsoul-video-slider__viewport {
    width: calc(var(--kocsoul-card-width) * 2 + (var(--kocsoul-gap) * 1));
  }
}

/* 724px ~ 799px: 3개 */
@media (min-width: 724px) and (max-width: 799px) {
  .kocsoul-video-slider__viewport {
    width: calc(var(--kocsoul-card-width) * 3 + (var(--kocsoul-gap) * 2));
  }
}

/* 767px 이하: 1개 */
@media (max-width: 767px) {
  .kocsoul-video-slider__viewport {
    width: var(--kocsoul-card-width);
  }
}
