/* Local proposal: the approved page layouts and illustration system stay intact. */
.editorial .narrative-opening { padding-bottom: 42px; }
.narrative-opening .story-intro { max-width: 900px; margin: 24px 0 0; font-size: 20px; line-height: 1.6; }
.editorial.narrative-product .product-introduction .lead { max-width: 520px; font-size: 23px; line-height: 1.45; }
.narrative-product .inline-product-name { color: #173e35; font-weight: 700; white-space: nowrap; border-bottom: 1px solid #bd5436; padding-bottom: .06em; }
.narrative-product .launch-note { max-width: 460px; font-size: 12px; line-height: 1.7; }
.narrative-product .launch-note strong { font-weight: 500; color: var(--ink); }
.editorial .narrative-case { padding: 58px 0; }
.case-heading { display: grid; grid-template-columns: 1.05fr 1fr; gap: 8%; align-items: end; }
.case-heading h2 { font-size: clamp(34px, 3.8vw, 52px); line-height: 1.15; max-width: 600px; }
.case-heading p { font-size: 17px; margin: 0; max-width: 510px; }
.case-route { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin-top: 34px; }
.case-route a { display: flex; gap: 14px; align-items: baseline; padding-top: 16px; border-top: 1px solid var(--line); font-size: 15px; }
.case-route span { font-size: 11px; color: var(--accent); }
.case-route b { margin-left: auto; color: var(--accent); font-weight: 400; }
.workspace-overview { display: grid; grid-template-columns: .65fr 1.35fr; gap: 6%; align-items: center; }
.workspace-overview .workspace-copy h2 { font-size: clamp(30px, 3.3vw, 45px); margin: 18px 0 20px; }
.workspace-overview .workspace-copy p { max-width: 390px; font-size: 16px; }
.workspace-overview .workspace-copy .screenshot-note { font-size: 12px; line-height: 1.65; }
.narrative-product .product-detail { scroll-margin-top: 25px; }
.case-question { color: var(--accent); font-size: 12px !important; line-height: 1.5 !important; letter-spacing: .015em; margin: 0 0 15px; }
.editorial .giving-back { padding: 64px 0; }
.contribution-heading { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8%; align-items: end; }
.contribution-heading h2 { font-size: clamp(34px, 4vw, 54px); max-width: 620px; }
.contribution-heading p { font-size: 17px; margin: 0; max-width: 500px; }
.contribution-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; margin-top: 38px; }
.contribution-grid article { border-top: 1px solid var(--line); padding-top: 23px; }
.contribution-grid h3 { font-size: 22px; line-height: 1.3; margin: 0 0 13px; }
.contribution-grid p { font-size: 15px; line-height: 1.7; margin: 0; }
.contribution-footer { display: flex; gap: 40px; justify-content: space-between; align-items: center; margin-top: 36px; }
.contribution-footer p { max-width: 720px; font-size: 15px; margin: 0; }
.contribution-footer a { white-space: nowrap; color: var(--accent); }
.editorial .next-application { display: grid; grid-template-columns: .7fr 1.3fr; gap: 6%; padding: 35px 0; }
.next-application h2 { font-size: 24px; margin-top: 10px; }
.next-application p { font-size: 15px; margin: 0; max-width: 660px; }
@media (max-width: 850px) {
  .workspace-overview { grid-template-columns: 1fr; gap: 24px; }
  .workspace-overview .workspace-copy p { max-width: 680px; }
}
@media (max-width: 600px) {
  .editorial .narrative-opening { padding-bottom: 35px; }
  .narrative-opening .story-intro { font-size: 17px; margin-top: 20px; }
  .editorial.narrative-product .product-introduction .lead { font-size: 21px; }
  .case-heading, .contribution-heading { grid-template-columns: 1fr; gap: 22px; }
  .case-heading h2, .contribution-heading h2 { font-size: 34px; }
  .case-heading p, .contribution-heading p { font-size: 16px; }
  .case-route { grid-template-columns: 1fr; gap: 15px; margin-top: 26px; }
  .case-route a { padding-top: 14px; }
  .editorial .narrative-case, .editorial .giving-back { padding: 38px 0; }
  .contribution-grid { grid-template-columns: 1fr; gap: 24px; margin-top: 28px; }
  .contribution-footer { flex-direction: column; align-items: flex-start; gap: 20px; margin-top: 26px; }
  .editorial .next-application { grid-template-columns: 1fr; gap: 18px; }
}
