/* =========================================================
   case-study.css
   Case Study article page (A1 Telekom — 5G Playground Carinthia).
   Shared classes (.site-header, .site-footer, .btn, .container)
   live in style.css.
   ========================================================= */

/* ---------- breadcrumb ---------- */
.cs-breadcrumb {
  padding: 4px 0;
  font-size: 16px;
  color: rgba(0, 0, 0, 0.56);
}

.cs-breadcrumb a {
  color: rgba(0, 0, 0, 0.56);
}

.cs-breadcrumb a:hover {
  color: var(--color-deep-blue);
}

.cs-breadcrumb__current {
  color: var(--color-black);
}

/* ---------- hero ---------- */
.cs-hero {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 var(--container-pad);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 638px;
  gap: 52px;
  align-items: center;
  min-height: 500px;
}

.cs-hero__text {
  display: flex;
  flex-direction: column;
  gap: 48px;
  max-width: 550px;
}

.cs-hero__title {
  font-size: 40px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--color-black);
  margin: 0;
}

.cs-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.cs-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  border-radius: 8px;
  border: 1px solid var(--color-sky-blue);
  background: rgba(57, 205, 216, 0.1);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-black);
  white-space: nowrap;
}

.cs-hero__media {
  width: 638px;
  height: 500px;
  overflow: hidden;
}

.cs-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ---------- share bar ---------- */
.cs-share {
  padding: 28px 0 8px;
}

.cs-share__label {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-black);
  margin: 0 0 12px;
}

.cs-share__links {
  display: flex;
  gap: 12px;
}

.cs-share__links a {
  width: 33px;
  height: 33px;
  border-radius: 8px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-deep-blue);
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.cs-share__links a:hover {
  background: var(--color-deep-blue);
  border-color: var(--color-deep-blue);
  color: #fff;
}

/* ---------- shared section bits ---------- */
.cs-heading {
  font-size: 32px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--color-link-blue);
  margin: 0;
}

.cs-prose p {
  font-size: 18px;
  line-height: 1.4;
  color: var(--color-black);
  margin: 0;
}

/* ---------- full-width section + alternating image rows ---------- */
.cs-section {
  padding: 72px 0;
}

.cs-section--tight {
  padding: 56px 0;
}

.cs-row {
  display: grid;
  align-items: center;
  gap: 0;
}

.cs-row--image-right {
  grid-template-columns: minmax(0, 1fr) min(466px, 40%);
}

.cs-row--image-left {
  grid-template-columns: min(462px, 40%) minmax(0, 1fr);
}

.cs-row__text {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 64px 0;
}

.cs-row--image-right .cs-row__text {
  padding-left: var(--container-pad);
  padding-right: 56px;
}

.cs-row--image-left .cs-row__text {
  grid-column: 2;
  padding-right: var(--container-pad);
  padding-left: 56px;
}

.cs-row--image-left .cs-row__media {
  grid-column: 1;
  grid-row: 1;
}

.cs-row__media {
  align-self: stretch;
  min-height: 489px;
}

.cs-row__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cs-row--image-right .cs-row__media img {
  border-radius: 8px 0 0 8px;
}

.cs-row--image-left .cs-row__media img {
  border-radius: 0 8px 8px 0;
}

/* ---------- "What A1 wanted" goal cards ---------- */
.cs-goals-head {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 1240px;
}

.cs-goals-head__note {
  font-size: 18px;
  color: var(--color-black);
  margin: 0;
}

.cs-goals {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.cs-goal {
  border: 1px solid rgba(0, 0, 0, 0.5);
  border-radius: 8px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cs-goal__icon {
  width: 28px;
  height: 28px;
  border-radius: 3px;
  background: var(--color-link-blue);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cs-goal__icon svg {
  width: 14px;
  height: 14px;
  display: block;
}

.cs-goal p {
  font-size: 18px;
  line-height: 1.4;
  color: var(--color-black);
  margin: 0;
}

.cs-goal strong {
  font-weight: 500;
}

/* ---------- check-list items (challenge / solution / impact) ---------- */
.cs-checklist {
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  /* row-gap 32 (stacked items) / column-gap 24 (the two columns) */
  gap: 32px 24px;
}

.cs-checklist--single {
  grid-template-columns: 1fr;
  gap: 28px;
}

.cs-check {
  display: flex;
  gap: 26px;
  align-items: flex-start;
}

/* the challenge list uses a tighter icon gap in the Figma */
.cs-checklist--tight .cs-check {
  gap: 12px;
}

.cs-check > p,
.cs-check > div {
  flex: 1;
  min-width: 0;
}

.cs-check__icon {
  width: 21px;
  height: 21px;
  margin-top: 3px;
  flex-shrink: 0;
  color: var(--color-grass-green);
}

.cs-check__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.cs-check p {
  font-size: 18px;
  line-height: 1.4;
  color: var(--color-black);
  margin: 0;
}

.cs-check strong {
  color: var(--color-black);
  font-weight: 600;
}

/* nested research-ecosystem cards inside Impact */
.cs-mini-cards {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.cs-mini-cards li {
  border: 1px solid rgba(0, 0, 0, 0.5);
  border-radius: 8px;
  padding: 16px;
  font-size: 16px;
  line-height: 1.4;
  color: var(--color-black);
}

.cs-mini-cards strong {
  font-weight: 500;
}

.cs-intro {
  font-size: 18px;
  line-height: 1.4;
  color: var(--color-black);
  margin: 12px 0 0;
}

/* ---------- responsive ---------- */
/* matches the global breakpoint where --container-pad drops to 32px */
@media (max-width: 1024px) {
  .cs-hero,
  .cs-row--image-right,
  .cs-row--image-left {
    grid-template-columns: 1fr;
  }

  /* hero keeps its own horizontal padding; just add vertical breathing room */
  .cs-hero {
    min-height: 0;
    padding-top: 40px;
    padding-bottom: 40px;
    gap: 32px;
  }

  .cs-hero__text {
    max-width: none;
  }

  /* stacked media: full-width, natural height, no fixed/min height */
  .cs-hero__media,
  .cs-row__media {
    width: 100%;
    height: auto;
    min-height: 0;
  }

  .cs-hero__media img,
  .cs-row__media img {
    height: auto;
    max-height: 360px;
    border-radius: 0 !important;
  }

  .cs-row__text,
  .cs-row--image-right .cs-row__text,
  .cs-row--image-left .cs-row__text {
    padding: 40px var(--container-pad);
  }

  /* always show the text first, image below, for both row variants */
  .cs-row__text,
  .cs-row--image-left .cs-row__text {
    order: 1;
    grid-column: 1;
  }

  .cs-row__media,
  .cs-row--image-left .cs-row__media {
    order: 2;
    grid-column: 1;
    grid-row: auto;
  }

  .cs-section {
    padding: 48px 0;
  }

  .cs-section--tight {
    padding: 40px 0;
  }

  .cs-goals {
    grid-template-columns: 1fr 1fr;
  }

  .cs-checklist {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .cs-mini-cards {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .cs-hero__title {
    font-size: 30px;
  }

  .cs-heading {
    font-size: 26px;
  }

  .cs-goals {
    grid-template-columns: 1fr;
  }

  .cs-hero__media img,
  .cs-row__media img {
    max-height: 240px;
  }

  .cs-tag {
    font-size: 13px;
  }
}
