/* ============================================
   CASE PAGE
   ============================================ */

/* Next case CTA */
.next-case {
  display: block;
  text-decoration: none;
  border-top: 1px solid var(--border);
  padding: 56px 0;
  /* full width breakout */
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  transition: background 0.2s;
}

.next-case:hover {
  background: #D2FAE3;
}

.next-case:hover .next-case__arrow {
  transform: translateX(6px);
}

.next-case__inner {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px;
}

.next-case__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #17B26A;
}

.next-case__title {
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 400;
  letter-spacing: -0.02em;
  color: var(--black);
  display: flex;
  align-items: center;
  gap: 12px;
}

.next-case__arrow {
  font-size: 22px;
  color: var(--black);
  display: inline-block;
  transition: transform 0.2s;
}

@media (max-width: 768px) {
  .next-case {
    padding: 40px 0;
  }

  .next-case__inner {
    padding: 0 24px;
  }
}

/* Back button */
.nav-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--black);
  text-decoration: none;
  transition: gap 0.2s;
}

.nav-back:hover {
  gap: 12px;
}

.case {
  max-width: 1200px;
  margin: 0 auto;
}

/* ============================================
   HERO
   ============================================ */
.case-hero {
  padding: 64px 48px 0;
}

.case-hero__title {
  font-size: clamp(24px, 3.5vw, 44px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.03em;
  max-width: 820px;
  margin-bottom: 40px;
}

.case-hero__image {
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: var(--light-gray);
  min-height: 400px;
}

.case-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* ============================================
   OVERVIEW
   ============================================ */
.case-overview {
  display: grid;
  grid-template-columns: 180px 1fr 1fr;
  gap: 0;
  padding: 56px 48px;
  border-bottom: 1px solid var(--border);
}

.case-overview__col {
  padding-right: 48px;
}

.case-overview__col--label {
  border-right: 1px solid var(--border);
  margin-right: 48px;
}

.case-overview__heading {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 16px;
}

.case-overview__value {
  font-size: 15px;
  color: var(--black);
  font-weight: 400;
}

.case-overview__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.case-overview__list li {
  font-size: 15px;
  color: var(--black);
  line-height: 1.5;
  padding-left: 16px;
  position: relative;
}

.case-overview__list li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: var(--gray);
}

.case-overview__list li strong {
  font-weight: 600;
}

/* ============================================
   NDA NOTE
   ============================================ */
.case-nda {
  background: #0f0f0f;
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding: 64px 0;
}

.case-nda__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 0;
}

.case-nda__label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--white);
  padding-top: 2px;
}

.case-nda__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.case-nda__list li {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.5;
  padding-left: 18px;
  position: relative;
}

.case-nda__list li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: rgba(255, 255, 255, 0.4);
}

/* ============================================
   CONTENT AREA
   ============================================ */
.case-content {
  padding-bottom: 80px;
}

/* Sections */
.cs-section {
  padding: 80px 48px;
  border-top: 1px solid var(--border);
}

.cs-section--alt {
  background: var(--light-gray);
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding-left: max(48px, calc((100vw - 1200px) / 2 + 48px));
  padding-right: max(48px, calc((100vw - 1200px) / 2 + 48px));
}

.cs-section__header {
  margin-bottom: 48px;
  max-width: 720px;
}

.cs-section__body {
  max-width: 680px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 40px;
}

/* Labels & titles */
.cs-label {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 12px;
}

.cs-title {
  font-size: clamp(22px, 2.8vw, 36px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: var(--black);
  margin-bottom: 16px;
}

.cs-subtitle {
  font-size: 15px;
  line-height: 1.7;
  color: var(--gray);
  max-width: 640px;
}

.cs-text {
  font-size: 15px;
  line-height: 1.75;
  color: var(--black);
}

.cs-text--highlight {
  border-left: 3px solid var(--green);
  padding-left: 20px;
  color: var(--gray);
  font-style: italic;
}

/* Goals */
.cs-goals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  max-width: 800px;
}

.cs-goal {
  background: var(--white);
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cs-goal__number {
  font-size: 13px;
  font-weight: 600;
  color: var(--green);
  letter-spacing: 0.05em;
}

.cs-goal__text {
  font-size: 17px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--black);
}

/* Image placeholders */
.cs-image-placeholder {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: #e8e8e8;
  position: relative;
  margin-bottom: 40px;
}

.cs-image-placeholder img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: unset;
}

/* Show label when image is missing */
.cs-image-placeholder:not(:has(img[src]:not([src=""])))::after,
.cs-image-placeholder img[src=""] ~ *,
.cs-image-placeholder:empty::after {
  content: attr(data-label);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: var(--gray);
}

.cs-image-placeholder--model {
  min-height: 300px;
  margin-bottom: 0;
  border-radius: 8px;
}

/* Models (5 segmentations) */
.cs-models {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}

.cs-model {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--white);
  min-height: 320px;
}

.cs-model:nth-child(even) {
  direction: rtl;
}

.cs-model:nth-child(even) > * {
  direction: ltr;
}

.cs-model__info {
  padding: 40px 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  justify-content: center;
}

.cs-model__meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cs-model__number {
  font-size: 28px;
  font-weight: 300;
  color: var(--green);
  letter-spacing: -0.03em;
  line-height: 1;
}

.cs-model__detail {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cs-model__usecase,
.cs-model__example {
  font-size: 14px;
  line-height: 1.65;
  color: var(--gray);
}

.cs-model__usecase strong,
.cs-model__example strong {
  color: var(--black);
  font-weight: 500;
}

/* Steps */
.cs-steps {
  display: flex;
  flex-direction: column;
  gap: 72px;
}

.cs-step {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

.cs-step:nth-child(even) {
  direction: rtl;
}

.cs-step:nth-child(even) > * {
  direction: ltr;
}

.cs-step__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cs-step__label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--black);
}

/* Metrics bar */
.cs-metrics-bar {
  display: flex;
  gap: 0;
  margin-bottom: 48px;
}

.cs-metric-big {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-right: 48px;
}

.cs-metric-big--divider {
  padding-left: 48px;
  padding-right: 0;
  border-left: 1px solid var(--border);
}

.cs-metric-big__value {
  font-size: clamp(40px, 6vw, 72px);
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--black);
  line-height: 1;
}

.cs-metric-big__label {
  font-size: 13px;
  color: var(--gray);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Video */
.cs-video-placeholder {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: #1a1a1a;
  aspect-ratio: 16 / 9;
  position: relative;
}

.cs-video-placeholder video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  position: absolute;
  inset: 0;
}

/* Conclusion */
.cs-section--conclusion {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.cs-conclusion {
  font-size: clamp(17px, 2vw, 22px);
  line-height: 1.7;
  letter-spacing: -0.01em;
  color: var(--black);
  max-width: 820px;
  font-weight: 300;
}

/* Full width step (below a horizontal row) */
.cs-step--full {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 40px;
}

.cs-step--full .cs-image-placeholder {
  margin-bottom: 0;
}

/* Steps horizontal variant */
.cs-steps--horizontal {
  flex-direction: row;
  align-items: stretch;
}

.cs-steps--horizontal .cs-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
  grid-template-columns: unset;
  direction: ltr;
}

.cs-steps--horizontal .cs-step:nth-child(even) {
  direction: ltr;
}

.cs-steps--horizontal .cs-image-placeholder {
  margin-bottom: 0;
  flex: 1;
  min-height: 240px;
}

/* Hero description (case 3) */
.case-hero__desc {
  font-size: 14px;
  color: var(--gray);
  margin-bottom: 16px;
  max-width: 640px;
}

/* Pain grid */
.cs-pain-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 40px;
}

.cs-pain-card {
  background: var(--white);
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.cs-pain-card--dark {
  background: #0f0f0f;
}

.cs-pain-card--green {
  background: var(--green);
}

.cs-pain-card--green .cs-pain-card__tag {
  color: rgba(255,255,255,0.85);
}

.cs-pain-card--green .cs-pain-card__list li {
  color: #fff;
}

.cs-pain-card--green .cs-pain-card__list li::before {
  color: rgba(255,255,255,0.65);
}

.cs-pain-card__tag {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gray);
}

.cs-pain-card--dark .cs-pain-card__tag {
  color: rgba(255,255,255,0.4);
}

.cs-pain-card__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cs-pain-card__list li {
  font-size: 14px;
  line-height: 1.65;
  color: var(--black);
  padding-left: 16px;
  position: relative;
}

.cs-pain-card--dark .cs-pain-card__list li {
  color: rgba(255,255,255,0.75);
}

.cs-pain-card__list li::before {
  content: '—';
  position: absolute;
  left: 0;
  color: var(--gray);
  font-size: 12px;
}

.cs-pain-card--dark .cs-pain-card__list li::before {
  color: rgba(255,255,255,0.25);
}

/* Pillars */
.cs-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 40px;
}

.cs-pillar {
  background: var(--white);
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cs-pillar__number {
  font-size: 13px;
  font-weight: 600;
  color: var(--green);
  letter-spacing: 0.05em;
}

.cs-pillar__title {
  font-size: 17px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--black);
}

.cs-pillar__body {
  font-size: 14px;
  line-height: 1.65;
  color: var(--gray);
}

/* Trade-offs */
.cs-tradeoffs {
  border-top: 1px solid var(--border);
  padding-top: 40px;
  margin-top: 8px;
}

.cs-tradeoffs__title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 28px;
}

.cs-tradeoff-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.cs-tradeoff {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 48px;
  padding: 24px 0;
  border-bottom: 1px solid var(--border);
  align-items: start;
}

.cs-tradeoff__versus {
  font-size: 15px;
  font-weight: 500;
  color: var(--black);
  letter-spacing: -0.01em;
}

.cs-tradeoff__versus em {
  font-style: normal;
  color: var(--gray);
  font-weight: 400;
}

.cs-tradeoff__body {
  font-size: 14px;
  line-height: 1.65;
  color: var(--gray);
}

/* Questions (escopo) */
.cs-questions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  margin-top: 8px;
}

.cs-question {
  background: var(--white);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cs-question__number {
  font-size: 32px;
  font-weight: 300;
  color: var(--green);
  letter-spacing: -0.04em;
  line-height: 1;
}

.cs-question__text {
  font-size: 15px;
  line-height: 1.6;
  color: var(--black);
}

/* Split layout (iOS ou Android) */
.cs-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  margin-bottom: 40px;
}

.cs-split__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cs-image-placeholder--half {
  min-height: 320px;
  margin-bottom: 0;
}

/* Result grid (2 images side by side) */
.cs-result-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 16px;
}

.cs-image-placeholder--result {
  min-height: 320px;
  margin-bottom: 0;
}

/* ============================================
   RESPONSIVE — content
   ============================================ */
@media (max-width: 900px) {
  .cs-section {
    padding: 56px 24px;
  }

  .cs-section--alt {
    padding-left: 24px;
    padding-right: 24px;
  }

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

  .cs-model {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .cs-model:nth-child(even) {
    direction: ltr;
  }

  .cs-step {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .cs-step:nth-child(even) {
    direction: ltr;
  }

  .cs-image-placeholder {
    min-height: 240px;
  }

  .cs-image-placeholder--model {
    min-height: 200px;
  }

  .cs-video-placeholder {
    min-height: 280px;
  }

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

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

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

  .cs-tradeoff {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .cs-split {
    grid-template-columns: 1fr;
    gap: 24px;
  }

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

  .cs-steps--horizontal {
    flex-direction: column;
  }
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
  .case-hero {
    padding: 40px 24px 0;
  }

  .case-hero__image {
    border-radius: 0;
    margin: 0 -24px;
    width: calc(100% + 48px);
    min-height: unset;
    background: none;
  }

  .case-hero__image img {
    border-radius: 0;
    height: auto;
  }

  .cs-image-placeholder {
    margin: 0 -24px;
    width: calc(100% + 48px);
    border-radius: 0;
    min-height: unset;
    background: none;
  }

  .cs-image-placeholder--model {
    min-height: unset;
    background: none;
  }

  .cs-image-placeholder img {
    border-radius: 0;
    height: auto;
    width: 100%;
    display: block;
  }

  .case-overview {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 40px 24px;
  }

  .case-overview__col--label {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding-bottom: 32px;
    margin-right: 0;
  }

  .case-nda {
    padding: 48px 0;
  }

  .case-nda__inner {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 0 24px;
  }

  .case-content {
    padding: 48px 24px;
  }
}
