.cs-main { overflow: hidden; }

.cs-container {
  margin: 0 auto;
  max-width: 1440px;
  padding-left: 24px;
  padding-right: 24px;
}

.cs-breadcrumb {
  align-items: center;
  color: var(--tp-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  gap: 9px;
  padding-top: 36px;
}

.cs-breadcrumb a { text-decoration: none; }
.cs-breadcrumb a:hover { color: var(--tp-ink); }
.cs-breadcrumb span[aria-hidden="true"] { color: #aaa; }

.cs-hero { padding-bottom: 84px; }

.cs-hero-grid {
  align-items: center;
  display: grid;
  gap: clamp(28px, 3.5vw, 54px);
  grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
  padding-top: 52px;
}

.cs-hero-copy { max-width: 720px; }

.cs-hero h1,
.cs-section-heading h2,
.cs-article h2,
.cs-related h2 {
  font-weight: 600;
  letter-spacing: -.072em;
  margin: 0;
}

.cs-hero h1 {
  font-size: clamp(48px, 5vw, 74px);
  line-height: .95;
}

.cs-hero h1 em,
.cs-section-heading h2 em,
.cs-article h2 em,
.cs-related h2 em {
  font-family: "Source Serif 4", "Source Serif 4 Fallback", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  letter-spacing: -.075em;
}

.cs-kicker {
  color: var(--tp-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 11px;
  letter-spacing: .04em;
  margin: 0 0 18px;
  text-transform: uppercase;
}

.cs-lede {
  color: var(--tp-muted);
  font-size: 18px;
  line-height: 1.58;
  margin: 28px 0 0;
  max-width: 670px;
}

.cs-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
}

.cs-hero-media {
  background: #fff;
  border: 6px solid #f8f8f8;
  border-radius: 21px;
  box-shadow: var(--tp-shadow);
  overflow: hidden;
  padding: 10px;
}

.cs-hero-media img {
  aspect-ratio: 815 / 612;
  border-radius: 12px;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.cs-hero-media--natural img { aspect-ratio: auto; }

.cs-hero-media figcaption {
  color: var(--tp-muted);
  font-size: 11px;
  line-height: 1.45;
  padding: 13px 5px 3px;
}

.cs-stats {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  margin: 66px 0 0;
}

.cs-stat {
  border-top: 1px solid var(--tp-line);
  padding: 18px 0 0;
}

.cs-stat strong {
  display: block;
  font-size: clamp(23px, 2.2vw, 32px);
  font-weight: 600;
  letter-spacing: -.055em;
}

.cs-stat span {
  color: var(--tp-muted);
  display: block;
  font-size: 12px;
  line-height: 1.45;
  margin-top: 7px;
}

.cs-claim-note {
  color: var(--tp-muted);
  font-size: 11px;
  line-height: 1.55;
  margin: 16px 0 0 auto;
  max-width: 550px;
  text-align: right;
}

.cs-section { padding-bottom: 112px; padding-top: 112px; }

.cs-section-heading { max-width: 820px; }

.cs-section-heading h2,
.cs-related h2 {
  font-size: clamp(44px, 5.4vw, 72px);
  line-height: .98;
}

.cs-section-heading > p {
  color: var(--tp-muted);
  font-size: 17px;
  line-height: 1.55;
  margin: 22px 0 0;
  max-width: 680px;
}

.cs-snapshot {
  background: #fff;
  border: 6px solid #f8f8f8;
  border-radius: 19px;
  box-shadow: var(--tp-shadow);
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 44px;
  overflow: hidden;
}

.cs-snapshot div {
  min-height: 142px;
  padding: 28px;
}

.cs-snapshot div:nth-child(n + 4) { border-top: 1px solid var(--tp-line); }
.cs-snapshot div:not(:nth-child(3n + 1)) { border-left: 1px solid var(--tp-line); }

.cs-snapshot dt {
  color: var(--tp-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 10px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.cs-snapshot dd {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.35;
  margin: 18px 0 0;
}

.cs-snapshot a { text-underline-offset: 4px; }

.cs-story {
  background: #fff;
  padding-bottom: 120px;
  padding-top: 120px;
}

.cs-story-shell {
  display: grid;
  gap: clamp(45px, 7vw, 96px);
  grid-template-columns: 210px minmax(0, 880px);
  justify-content: center;
}

.cs-toc {
  align-self: start;
  border-top: 1px solid var(--tp-line);
  display: grid;
  padding-top: 16px;
  position: sticky;
  top: 24px;
}

.cs-toc strong {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 10px;
  letter-spacing: .05em;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.cs-toc a {
  border-radius: 8px;
  color: var(--tp-muted);
  font-size: 12px;
  line-height: 1.25;
  padding: 8px 9px;
  text-decoration: none;
}

.cs-toc a:hover { background: var(--tp-bg); color: var(--tp-ink); }

.cs-article { min-width: 0; }

.cs-article section + section { margin-top: 86px; }

.cs-article h2 {
  font-size: clamp(39px, 4.6vw, 62px);
  line-height: 1;
  scroll-margin-top: 26px;
}

.cs-article h3 {
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: 1.08;
  margin: 38px 0 0;
}

.cs-article p,
.cs-article li {
  color: #555;
  font-size: 17px;
  line-height: 1.75;
}

.cs-article p { margin: 24px 0 0; }
.cs-article strong { color: var(--tp-ink); }
.cs-article p a { color: var(--tp-ink); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.cs-article p a:hover { opacity: .66; }
.cs-article p a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.cs-list {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 30px 0 0;
  padding: 0;
}

.cs-list li {
  border-top: 1px solid var(--tp-line);
  display: grid;
  gap: 18px;
  grid-template-columns: 38px minmax(0, 1fr);
  padding: 20px 0;
}

.cs-list li:last-child { border-bottom: 1px solid var(--tp-line); }

.cs-list b {
  color: var(--tp-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 11px;
  font-weight: 500;
  padding-top: 5px;
}

.cs-list span { min-width: 0; }

.cs-callout {
  background: var(--tp-accent);
  border-radius: 20px;
  color: var(--tp-on-accent);
  margin-top: 34px;
  padding: clamp(30px, 5vw, 52px);
}

.cs-callout > span {
  color: var(--tp-on-accent-muted);
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 10px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.cs-callout strong {
  color: #fff;
  display: block;
  font-size: clamp(28px, 3.3vw, 43px);
  letter-spacing: -.06em;
  line-height: 1.05;
  margin-top: 28px;
}

.cs-callout p { color: var(--tp-on-accent-muted); margin-bottom: 0; }

.cs-capabilities {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 34px;
}

.cs-capability {
  background: var(--tp-bg);
  border-radius: 16px;
  min-height: 180px;
  padding: 26px;
}

.cs-capability span {
  color: var(--tp-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 10px;
}

.cs-capability h3 { font-size: 23px; margin-top: 50px; }
.cs-capability p { font-size: 14px; line-height: 1.55; margin-top: 10px; }

.cs-gallery-wrap {
  background: #0d0e0d;
  border-radius: 24px;
  margin-left: max(-96px, calc((760px - 100vw) / 2));
  margin-right: max(-96px, calc((760px - 100vw) / 2));
  padding: clamp(26px, 5vw, 54px);
}

.cs-gallery-intro {
  align-items: end;
  color: #fff;
  display: flex;
  gap: 40px;
  justify-content: space-between;
  margin-bottom: 35px;
}

.cs-gallery-intro h2 { color: #fff; }
.cs-gallery-intro p { color: #999; margin: 0; max-width: 380px; }

.cs-gallery {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cs-gallery--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cs-gallery--one { grid-template-columns: minmax(0, 1fr); }

.cs-gallery figure {
  background: #191a19;
  border: 1px solid #2a2b2a;
  border-radius: 17px;
  margin: 0;
  overflow: hidden;
  padding: 12px;
}

.cs-gallery img {
  border-radius: 10px;
  display: block;
  height: auto;
  width: 100%;
}

.cs-gallery figcaption {
  color: #999;
  font-size: 11px;
  line-height: 1.45;
  padding: 13px 3px 2px;
}

.cs-source-list {
  border-top: 1px solid var(--tp-line);
  list-style: none;
  margin: 30px 0 0;
  padding: 0;
}

.cs-source-list li {
  border-bottom: 1px solid var(--tp-line);
  font-size: 14px;
  line-height: 1.55;
  padding: 17px 0;
}

.cs-source-list a { color: var(--tp-ink); font-weight: 600; text-underline-offset: 4px; }

.cs-related { padding-bottom: 112px; padding-top: 112px; }
.cs-related-head { align-items: end; display: flex; gap: 40px; justify-content: space-between; }
.cs-related-head > p { color: var(--tp-muted); line-height: 1.55; margin: 0; max-width: 380px; }

.cs-related-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 42px;
}

.cs-related-card {
  background: #fff;
  border: 6px solid #f8f8f8;
  border-radius: 18px;
  box-shadow: var(--tp-shadow);
  display: flex;
  flex-direction: column;
  min-height: 300px;
  padding: 30px;
  text-decoration: none;
  transition: transform .2s ease;
}

.cs-related-card:hover { transform: translateY(-3px); }
.cs-related-card > span { color: var(--tp-muted); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 10px; text-transform: uppercase; }
.cs-related-card h3 { font-size: clamp(29px, 3.3vw, 44px); letter-spacing: -.06em; line-height: 1.03; margin: auto 0 0; }
.cs-related-card small { color: var(--tp-muted); display: block; font-size: 11px; margin-top: 18px; }

@media (max-width: 1247px) {
  .cs-gallery-wrap { margin-left: 0; margin-right: 0; }
}

@media (max-width: 940px) {
  .cs-hero-grid { grid-template-columns: 1fr; }
  .cs-hero-media { max-width: 760px; }
  .cs-story-shell { grid-template-columns: 1fr; }
  .cs-toc { display: none; }
  .cs-gallery-wrap { margin-left: 0; margin-right: 0; }
}

@media (max-width: 700px) {
  .cs-container { padding-left: 20px; padding-right: 20px; }
  .cs-breadcrumb { padding-top: 22px; }
  .cs-hero { padding-bottom: 70px; }
  .cs-hero-grid { gap: 44px; padding-top: 48px; }
  .cs-hero h1 { font-size: clamp(40px, 10vw, 52px); }
  .cs-lede { font-size: 16px; }
  .cs-actions { display: grid; }
  .cs-actions .tp-button { width: 100%; }
  .cs-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 50px; }
  .cs-stat { min-height: 108px; }
  .cs-claim-note { text-align: left; }
  .cs-section { padding-bottom: 82px; padding-top: 82px; }
  .cs-section-heading h2, .cs-related h2 { font-size: clamp(42px, 12vw, 55px); }
  .cs-snapshot { grid-template-columns: 1fr; }
  .cs-snapshot div { min-height: 0; }
  .cs-snapshot div:not(:first-child) { border-left: 0; border-top: 1px solid var(--tp-line); }
  .cs-story { padding-bottom: 86px; padding-top: 86px; }
  .cs-article section + section { margin-top: 70px; }
  .cs-article h2 { font-size: clamp(38px, 11vw, 51px); }
  .cs-article p, .cs-article li { font-size: 16px; }
  .cs-capabilities { grid-template-columns: 1fr; }
  .cs-gallery-wrap { border-radius: 0; margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; }
  .cs-gallery-intro { align-items: flex-start; flex-direction: column; }
  .cs-gallery, .cs-gallery--two, .cs-gallery--one { grid-template-columns: 1fr; }
  .cs-gallery figure { padding: 10px; }
  .cs-related { padding-bottom: 82px; padding-top: 82px; }
  .cs-related-head { align-items: flex-start; flex-direction: column; }
  .cs-related-grid { grid-template-columns: 1fr; }
  .cs-related-card { min-height: 260px; }
}

@media (max-width: 460px) {
  body[data-case-study="moneypocket"] .cs-hero h1 { font-size: clamp(50px, 15vw, 64px); }
}

@media (prefers-reduced-motion: reduce) {
  .cs-related-card { transition: none; }
}
