:root {
  --gap: 16px;
  --card-bg: #ffffff;
  --card-border: #e6e6e6;
}

/* CONTAINER */
.carousel {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 8px 48px; /* room for buttons */
}

/* VIEWPORT */
.carousel__viewport {
  overflow: hidden;
}

/* TRACK — VERSION FLEXBOX (compatible JS) */
.carousel__track {
  display: flex;
  gap: var(--gap);
  align-items: stretch;
  will-change: transform;
  transition: transform 350ms ease;
  padding: 0;
  margin: 0;
  list-style: none;
}

/* SLIDES */
.carousel__slide {
  flex: 0 0 calc((100% - 2 * var(--gap)) / 3); /* 3 visibles */
}

@media (max-width: 768px) {
  .carousel__slide {
    flex: 0 0 100%; /* 1 visible */
  }
}

/* CARD */
.card {
  height: 100%;
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 10px;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto auto 1fr;
}

.card img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.card h3 {
  margin: 12px 12px 4px;
  font-size: 1,5rem;
  font-weight: 800;
}

.card p {
  margin: 0 12px 12px;
  font-size: 1rem;
  color: #829bb7;
}

.card-date {
    font-style: italic;
    font-size: 0,8rem;
    font-weight: 600;
}

/* BUTTONS */
.carousel__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  inline-size: 36px;
  block-size: 36px;
  border: none;
  border-radius: 50%;
  background: #0b1f33;
  color: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 24px;
  opacity: 0.95;
}

.carousel__btn:hover { opacity: 1; }
.carousel__btn:focus { outline: 2px solid #66afe9; outline-offset: 2px; }

.carousel__btn--prev { left: 8px; }
.carousel__btn--next { right: 8px; }
