.news-carousel {
  --news-gap: 1rem;
  margin-top: 0.5rem;
  outline: none;
  position: relative;
}

.news-carousel:focus-visible {
  border-radius: var(--qfd-radius);
  box-shadow: 0 0 0 2px var(--qfd-cyan);
}

.news-viewport {
  border-radius: calc(var(--qfd-radius) + 0.15rem);
  overflow: hidden;
}

.news-carousel .news-grid {
  display: flex;
  gap: 0;
  grid-template-columns: none;
  transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.news-carousel .news-tile {
  cursor: pointer;
  display: grid;
  flex: 0 0 100%;
  grid-template-columns: minmax(16rem, 0.9fr) minmax(0, 1.1fr);
  min-height: clamp(18rem, 28vw, 25rem);
  opacity: 0.55;
  transform: none;
  transition: opacity 450ms ease, border-color 250ms ease;
}

.news-carousel .news-tile.is-active { opacity: 1; }
.news-carousel .news-tile:hover { transform: none; }
.news-carousel .news-tile:hover h3 { color: var(--qfd-cyan); }
.news-carousel .news-tile picture,
.news-carousel .news-tile .news-img { height: 100%; }
.news-carousel .news-tile .news-body { align-self: center; padding: clamp(1.5rem, 4vw, 3.5rem); }
.news-carousel .news-tile h3 { font-size: clamp(1.4rem, 2.8vw, 2.5rem) !important; letter-spacing: -0.045em; line-height: 1.12; margin: 0.55rem 0 1rem; max-width: 18ch; }
.news-carousel .news-tile p { font-size: clamp(0.82rem, 1.25vw, 1rem) !important; line-height: 1.75; margin-bottom: 1.5rem; max-width: 42rem; }
.news-carousel .news-tile .news-date { font-size: 0.67rem; }

.news-controls {
  align-items: center;
  display: grid;
  gap: 1rem;
  grid-template-columns: auto 1fr auto;
  margin-top: 1rem;
}

.news-arrows { display: flex; gap: 0.5rem; }
.news-arrow {
  align-items: center;
  background: rgba(8, 21, 31, 0.82);
  border: 1px solid var(--qfd-line);
  border-radius: 50%;
  color: var(--qfd-text);
  cursor: pointer;
  display: flex;
  font-size: 1rem;
  height: 2.5rem;
  justify-content: center;
  padding: 0;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
  width: 2.5rem;
}
.news-arrow:hover, .news-arrow:focus-visible { background: rgba(101, 214, 232, 0.08); border-color: var(--qfd-cyan); color: var(--qfd-cyan); outline: none; }

.news-dots { align-items: center; display: flex; gap: 0.5rem; justify-content: center; }
.news-dot {
  background: rgba(229, 241, 246, 0.25);
  border: 0;
  border-radius: 99px;
  cursor: pointer;
  height: 0.35rem;
  padding: 0;
  transition: background 0.25s, width 0.35s;
  width: 0.35rem;
}
.news-dot.is-active { background: var(--qfd-cyan); width: 2rem; }
.news-dot:focus-visible { box-shadow: 0 0 0 2px var(--qfd-cyan); outline: none; }
.news-status { color: var(--qfd-muted); font-size: 0.68rem; font-variant-numeric: tabular-nums; letter-spacing: 0.12em; min-width: 3.4rem; text-align: right; }
.news-carousel.is-paused .news-status:before { color: var(--qfd-cyan); content: "Ⅱ  "; }

@media (max-width: 736px) {
  .news-carousel .news-tile { display: block; min-height: 0; }
  .news-carousel .news-tile picture,
  .news-carousel .news-tile .news-img { height: 12rem; }
  .news-carousel .news-tile .news-body { padding: 1.35rem; }
  .news-carousel .news-tile h3 { font-size: 1.35rem !important; }
  .news-controls { grid-template-columns: auto 1fr auto; }
}

@media (prefers-reduced-motion: reduce) {
  .news-carousel .news-grid { transition: none; }
}
