/* Editorial treatment for the utility-connections case study.
   The underlying figures remain shared with the portfolio; this file changes
   only their pace and framing on this page. */

.utility-editorial {
  --editorial-canvas: #fff;
  --editorial-figure: #f2f2f0;
  --editorial-ink: #181817;
  --editorial-line: #deded9;
  --editorial-muted: #6c6c67;
  --editorial-reading: 42rem;
  --editorial-wide: 68rem;
  background: var(--editorial-canvas);
  color: var(--editorial-ink);
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
}

.utility-editorial main {
  max-width: none;
  padding: 0;
}

.utility-editorial .cs-head {
  margin-inline: auto;
  max-width: 62rem;
  padding: clamp(5rem, 12vw, 10rem) 1.25rem clamp(4rem, 9vw, 7rem);
  text-align: center;
}

.utility-editorial .cs-head h1 {
  font-size: var(--type-display);
  font-weight: 500;
  letter-spacing: -0.075em;
  line-height: 0.92;
}

.utility-editorial .dek {
  color: #4c4c48;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  letter-spacing: -0.02em;
  line-height: 1.45;
  margin: 2.25rem auto 0;
  max-width: 40rem;
  text-wrap: balance;
}

.utility-editorial .byline {
  align-items: center;
  display: flex;
  font-size: 0.84rem;
  gap: 0.65rem;
  justify-content: center;
  margin-top: 2rem;
}

.utility-editorial .byline-org::before {
  content: "•";
  margin-inline-end: 0.65rem;
}

.utility-editorial .gate-wall,
.utility-editorial .gist,
.utility-editorial .block,
.utility-editorial .statbar,
.utility-editorial .results,
.utility-editorial .next {
  margin-inline: auto;
  max-width: var(--editorial-reading);
}

.utility-editorial .gate-wall {
  padding-inline: 1.25rem;
}

.utility-editorial .gist {
  padding: clamp(5rem, 10vw, 8rem) 1.25rem 2rem;
}

.utility-editorial .gist p {
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  letter-spacing: -0.025em;
  line-height: 1.45;
  text-indent: 0;
}

.utility-editorial .gist p + p {
  margin-top: 1.4rem;
}

.utility-editorial .hero {
  margin-inline: auto;
  max-width: var(--editorial-wide);
  padding: 0 1.25rem;
}

.utility-editorial .hero .frame {
  background: var(--editorial-figure);
}

.utility-editorial figcaption {
  color: var(--editorial-muted);
  font-size: 0.77rem;
  line-height: 1.45;
  margin: 0.8rem auto 0;
  max-width: var(--editorial-reading);
}

.utility-editorial .statbar {
  border-bottom: 1px solid var(--editorial-line);
  border-top: 1px solid var(--editorial-line);
  gap: 0;
  grid-template-columns: repeat(3, 1fr);
  margin-top: clamp(4rem, 8vw, 6rem);
  padding: 0 1.25rem;
}

.utility-editorial .statbar div {
  padding-block: 1.3rem;
}

.utility-editorial .statbar div + div {
  border-inline-start: 1px solid var(--editorial-line);
  padding-inline-start: 1.3rem;
}

.utility-editorial .statbar .stat {
  font-size: 2.2rem;
  font-weight: 500;
  letter-spacing: -0.06em;
}

.utility-editorial .statbar .dim {
  color: var(--editorial-muted);
  font-size: 0.75rem;
}

.utility-editorial .block {
  border: 0;
  display: block;
  padding: 0 1.25rem;
}

.utility-editorial .block h2 {
  font-size: var(--type-section);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 1;
  margin: 3em 0 0.4em;
}

.utility-editorial .tight {
  max-width: none;
}

.utility-editorial .tight p,
.utility-editorial .tight li {
  font-size: clamp(1.08rem, 1.6vw, 1.2rem);
  letter-spacing: -0.012em;
  line-height: 1.66;
}

.utility-editorial .tight > * + * {
  margin-top: 1.15em;
}

.utility-editorial .tight ul {
  gap: 0.45rem;
  margin-block: 1.5rem;
}

.utility-editorial .diagram,
.utility-editorial .spec-figure {
  background: var(--editorial-figure);
  border: 0;
  margin-block: clamp(3rem, 8vw, 6rem);
  margin-inline: auto;
  max-width: var(--editorial-wide);
  padding: clamp(1.5rem, 5vw, 4rem);
  width: calc(100% - 2.5rem);
}

.utility-editorial .diagram > :not(figcaption),
.utility-editorial .spec-figure > :not(figcaption) {
  margin-inline: auto;
  max-width: 58rem;
}

.utility-editorial .diagram figcaption,
.utility-editorial .spec-figure figcaption {
  margin-top: 1.25rem;
}

.utility-editorial .diagram + .block,
.utility-editorial .spec-figure + .block,
.utility-editorial .block:has(+ .diagram),
.utility-editorial .block:has(+ .spec-figure) {
  padding-block: 0;
}

.utility-editorial .spec-figure__stage {
  background: #e8e8e5;
}

.utility-editorial .results {
  margin-top: 2rem;
}

.utility-editorial .results div {
  border-color: var(--editorial-line);
  font-size: clamp(1.08rem, 1.6vw, 1.2rem);
  padding-block: 0.75rem;
}

.utility-editorial .next {
  border-top: 1px solid var(--editorial-line);
  margin-top: 7rem;
  padding: 2rem 1.25rem 8rem;
}

.utility-editorial body + .rule,
.utility-editorial > .rule {
  background: var(--editorial-line);
}

.utility-editorial .page-footer {
  max-width: 90rem;
  padding-inline: clamp(1.25rem, 4vw, 3rem);
}

@media (max-width: 45rem) {
  .utility-editorial .cs-head {
    text-align: start;
  }

  .utility-editorial .dek {
    margin-inline-start: 0;
    text-wrap: pretty;
  }

  .utility-editorial .byline {
    justify-content: flex-start;
  }

  .utility-editorial .statbar {
    grid-template-columns: 1fr;
  }

  .utility-editorial .statbar div + div {
    border-inline-start: 0;
    border-top: 1px solid var(--editorial-line);
    padding-inline-start: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .utility-editorial .reveal {
    animation: none;
  }
}
