/* ─── Hero ───────────────────────────────────────────────── */
.cs-hero {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.cs-hero-top {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.cs-meta { display: flex; align-items: center; gap: 12px; }

.cs-meta-line {
  display: block;
  width: 16px;
  height: 1px;
  background: var(--muted);
  flex-shrink: 0;
}

.cs-meta-text {
  font-family: var(--ui);
  font-size: 14px;
  line-height: 21px;
  font-weight: 400;
  color: var(--muted);
}

.cs-title {
  font-family: var(--serif-deck);
  font-size: clamp(32px, 4.57vw, 64px);
  line-height: 1.25;
  font-weight: 700;
  color: var(--black);
}

/* ─── Project meta (approach + team caption) ────────────── */
.cs-project-details {
  max-width: var(--max);
  margin-top: 40px;
  padding-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cs-project-text {
  font-family: var(--ui);
  font-size: 14px;
  line-height: 21px;
  font-weight: 400;
  color: var(--body);
  max-width: 620px;
}

/* ─── Section label ──────────────────────────────────────── */
.cs-label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--ui);
  font-size: 14px;
  line-height: 21px;
  font-weight: 400;
  color: var(--muted);
}

.cs-label::before {
  content: '';
  display: block;
  width: 16px;
  height: 1px;
  background: var(--muted);
  flex-shrink: 0;
}

/* ─── Section wrapper ────────────────────────────────────── */
.cs-section { max-width: var(--max); }

.cs-sep { padding-top: 64px; }

.cs-section-inner {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 940px;
}

.cs-section-inner--mb { margin-bottom: 48px; }

/* ─── Typography ─────────────────────────────────────────── */
.cs-h2 {
  font-family: var(--serif-text);
  font-size: clamp(28px, 2.86vw, 40px);
  line-height: 1.35;
  font-weight: 700;
  color: var(--black);
}

/* ─── Full-width image ───────────────────────────────────── */
.cs-full-img {
  width: 100%;
  max-width: var(--max);
}

.cs-full-img img {
  display: block;
  width: 100%;
  height: auto;
}

.cs-full-img--mb { margin-bottom: 0; margin-top: 32px; }

/* ─── Sketch grid ────────────────────────────────────────── */
.cs-sketch-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: var(--max);
  margin-top: 32px;
}

.cs-sketch-grid__row {
  display: grid;
  gap: 16px;
}

.cs-sketch-grid__row--3 { grid-template-columns: repeat(3, 1fr); }
.cs-sketch-grid__row--2 { grid-template-columns: repeat(2, 1fr); }

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

/* ─── Footer ─────────────────────────────────────────────── */
.cs-footer {
  max-width: var(--max);
  padding: 0 0 48px;
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}


/* ─── Responsive ─────────────────────────────────────────── */
@media (max-width: 720px) {
  .cs-title { font-size: 34px; line-height: 48px; }
  .cs-sep { padding-top: 48px; }
  .cs-h2 { font-size: 28px; }
  .cs-sketch-grid__row--3 { grid-template-columns: 1fr; }
  .cs-sketch-grid__row--2 { grid-template-columns: 1fr; }
  .cs-footer { margin-top: 48px; padding: 0 0 32px; }
}

@media (max-width: 600px) {
  .cs-nav { margin-bottom: 32px; }
}

/* ─── Sticky bar ─────────────────────────────────────────── */
.sticky-bar-inner {
  max-width: calc(1400px + clamp(20px, 3.43vw, 48px) * 2);
  margin: 0 auto;
  padding: 0 clamp(20px, 3.43vw, 48px);
  height: 48px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sticky-bar-name {
  font-family: var(--ui);
  font-size: 14px;
  font-weight: 400;
  line-height: 21px;
  color: var(--muted);
  text-decoration: none;
}

.sticky-bar-link {
  font-family: var(--ui);
  font-size: 14px;
  font-weight: 400;
  line-height: 21px;
  color: #000;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.15s ease;
}

/* ─── Let's Talk popup ───────────────────────────────────── */
.popup-label {
  font-family: var(--ui);
  font-size: 14px;
  font-weight: 400;
  line-height: 21px;
  color: #1A1A1A;
}
