/* ============================================
   s-loop-08 - News Card (お知らせカード)
   ============================================ */

/* --- Card Container --- */
.s-loop-08 {
  container-type: inline-size;
  position: relative;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

/* --- Thumbnail Link --- */
.s-loop-08__thumb-link {
  display: block;
  position: relative;
}

/* --- Image Wrapper (16:9) --- */
.s-loop-08__image-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--color-bg-sub);
}

.s-loop-08__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity var(--transition-normal);
}

.s-loop-08:hover .s-loop-08__image {
  opacity: 0.85;
}

/* --- No-image Placeholder --- */
.s-loop-08__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.s-loop-08__placeholder-icon {
  font-size: var(--font-size-5-xl);
  color: var(--color-border);
}

@container (min-width: 600px) {
  .s-loop-08__placeholder-icon {
    font-size: var(--font-size-6-xl);
  }
}

/* --- Hover Overlay --- */
.s-loop-08__overlay {
  position: absolute;
  inset: 0;
  background: transparent;
  transition: background var(--transition-normal);
  pointer-events: none;
}

.s-loop-08:hover .s-loop-08__overlay {
  background: rgba(0, 0, 0, 0.08);
}

/* --- Badges (top-left) --- */
.s-loop-08__badges {
  position: absolute;
  top: var(--space-sm);
  left: var(--space-sm);
  display: flex;
  gap: var(--space-2-xs);
  z-index: 2;
}

/* --- Favorite Button (top-right) --- */
.s-loop-08__favorite {
  position: absolute;
  top: var(--space-xs);
  right: var(--space-xs);
  z-index: 3;
}

/* --- Content Body --- */
.s-loop-08__body {
  padding: var(--space-xl);
}

@container (min-width: 600px) {
  .s-loop-08__body {
    padding: var(--space-2-xl);
  }
}

/* --- Title Link --- */
.s-loop-08__title-link {
  display: block;
  margin-bottom: var(--space-sm);
  text-decoration: none;
  color: inherit;
}

/* --- Title --- */
.s-loop-08__title {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-compact);
  color: var(--color-text);
  transition: color var(--transition-fast);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@container (min-width: 600px) {
  .s-loop-08__title {
    font-size: var(--font-size-md);
  }
}

.s-loop-08:hover .s-loop-08__title {
  color: var(--color-primary);
}

/* --- Excerpt --- */
.s-loop-08__excerpt {
  font-size: var(--font-size-3-xs);
  line-height: var(--line-height-normal);
  color: var(--color-text-light);
  margin-bottom: var(--space-xl);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@container (min-width: 600px) {
  .s-loop-08__excerpt {
    font-size: var(--font-size-sm);
  }
}

/* --- Meta Row --- */
.s-loop-08__meta {
  display: flex;
  align-items: center;
  gap: var(--space-xl);
  font-size: var(--font-size-3-xs);
  color: var(--color-text-light);
}

/* --- Date --- */
.s-loop-08__date {
  display: flex;
  align-items: center;
  gap: var(--space-3-xs);
}

.s-loop-08__date-icon {
  font-size: var(--font-size-sm);
}
