/* 部門別動画一覧 */
.dept-page {
  min-height: 620px;
  padding: clamp(28px, 5vw, 64px) 0 clamp(44px, 7vw, 88px);
}

.dept_bottom_line {
  border-bottom: 1px solid var(--color-line);
}

.dept-page .inner {
  max-width: var(--site-width);
}

.dept-title {
  margin-bottom: clamp(22px, 3vw, 38px);
  color: var(--color-white);
  text-align: center;
}

.dept_title_area_text {
  margin: var(--space-ll) 0;
  h3 {
    text-align: center;
    font-size: var(--fs-ll);
    margin-bottom: var(--space-m);
  }
  .dept_title_area_text_small {
    margin-top: var(--space-s);
    font-size: var(--fs-s);
  }
}

.dept-title__image-wrap {
  margin: 0;
  line-height: 1;
}

.dept-title__image {
  display: block;
  width: min(100%, 750px);
  height: auto;
  margin: 0 auto;
}

.dept-movie-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(10px, 1.6vw, 20px);
  width: 100%;
}

.dept-movie-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  background: #15235c;
  color: var(--color-white);
}

.dept-movie-link {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

.dept-movie-link:focus-visible,
.dept-comment-button:focus-visible {
  outline: 3px solid var(--color-white);
  outline-offset: -3px;
}

.dept-thumbnail {
  position: relative;
  overflow: hidden;
  aspect-ratio: 9 / 16;
  background: #9d9d9d;
}

.dept-thumbnail__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.2s ease;
}

.dept-movie-link:hover .dept-thumbnail__image,
.dept-movie-link:focus-visible .dept-thumbnail__image {
  opacity: 0.72;
}

.dept-status {
  position: absolute;
  z-index: 1;
  top: 8px;
  left: 8px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.dept-status span {
  display: flex;
  min-height: 18px;
  align-items: center;
  justify-content: center;
  padding: 2px 6px;
  border-radius: 4px;
  color: var(--color-white);
  font-size: 0.58rem;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}

.dept-status__viewed {
  background: #015fa8;
}
.dept-status__voted {
  background: #e2003e;
}
.dept-status__favorite {
  background: #783c8c;
}

.dept-movie-body {
  display: flex;
  min-height: 88px;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 10px;
}

.dept-movie-body__maker,
.dept-movie-body__title {
  margin: 0;
  color: var(--color-white);
}

.dept-movie-body__maker {
  margin-bottom: 4px;
  font-size: 0.62rem;
  font-weight: 400;
  line-height: 1.35;
}

.dept-movie-body__title {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.45;
}

.dept-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-top: auto;
  padding: 7px 10px 9px;
  border-top: 1px dotted rgba(255, 255, 255, 0.75);
}

.dept-card-votes {
  margin: 0;
  color: var(--color-white);
  font-size: 0.63rem;
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
}

.dept-comment-button {
  color: #fff000;
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .dept-page {
    min-height: 0;
    padding: 28px 0 42px;
  }

  .dept-page .inner {
    padding-right: 12px;
    padding-left: 12px;
  }

  .dept_title_area_text {
    margin: var(--space-m) 0;
    h3 {
      font-size: var(--fs-l);
    }
  }

  .dept-title {
    margin-bottom: 22px;
  }

  .dept-movie-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .dept-status {
    top: 5px;
    left: 5px;
    gap: 2px;
  }

  .dept-status span {
    min-height: 14px;
    padding: 2px 4px;
    font-size: 0.48rem;
  }

  .dept-movie-body {
    min-height: 74px;
    padding: 7px;
  }

  .dept-movie-body__maker {
    font-size: 0.55rem;
  }
  .dept-movie-body__title {
    font-size: 0.7rem;
  }
  .dept-card-footer {
    padding: 6px 7px 7px;
  }
  .dept-card-votes {
    font-size: 0.55rem;
  }
  .dept-comment-button {
    font-size: 0.54rem;
  }
}

/* 部門選択エリア */
.dept_category_area {
  padding: var(--space-ll) 0 var(--space-ll);
  display: flex;
}
.dept_category_large {
  width: calc((100% - (var(--space-m) * 2)) / 3);
  margin-right: var(--space-m);
  &:last-child {
    margin-right: 0;
  }
  div {
    font-weight: bold;
    color: var(--color-white);
    padding: var(--space-ss) 1em;
    font-size: var(--fs-ss);
    &.frozen {
      background-color: var(--color-pink);
    }
    &.ice {
      background-color: var(--color-blue);
    }
    &.pet {
      background-color: var(--color-orange);
    }
    &.keyword {
      background-color: var(--color-green);
    }
  }
  ul {
    list-style: none;
    li {
      width: 100%;
      border-top: 1px solid var(--color-line);
      font-size: var(--fs-s);
      &.border_bottom {
        border-bottom: 1px solid var(--color-line);
      }
      a {
        display: flex;
        justify-content: space-between;
        text-decoration: none;
        color: var(--color-black);
        padding: var(--space-ss) 0 var(--space-ss) 1em;
        img {
          max-width: 5px;
        }
      }
    }
  }
}

.dept_bnr_area {
  display: flex;
  padding: 0 0 var(--space-l) 0;
  a {
    width: calc((100% - var(--space-m)) / 2);
    margin-right: var(--space-m);
    &:last-child {
      margin-right: 0;
    }
  }
}

@media screen and (max-width: 767px) {
  .dept_category_area {
    padding: var(--space-m) 0;
    flex-direction: column;
  }
  .dept_category_large {
    width: 100%;
    margin-right: 0;
    div {
      padding: var(--space-ss) var(--space-s);
      font-size: var(--fs-s);
    }
    ul {
      li {
        border-top: 1px solid var(--color-line);
        font-size: var(--fs-s);
        &.border_bottom {
          border-bottom: 1px solid var(--color-line);
        }
        &:first-child {
          border-top: none;
        }
        a {
          padding: var(--space-s) 0 var(--space-s) var(--space-s);
          font-size: var(--fs-m);
        }
      }
    }
  }

  .dept_bnr_area {
    display: flex;
    flex-direction: column;
    padding: 0 0 var(--space-l) 0;
    a {
      width: 100%;
      margin-right: 0;
      &:last-child {
        margin-top: var(--space-s);
      }
    }
  }
}
