/* Outer edges, controls, and reading layouts use the same site tokens. */
.v2 { --ds-reading-width: 74ch; }
.v2 :is(.library-wrap,.book-wrap) {
  width:100%; max-width:var(--v2-max); margin-inline:auto; padding-inline:var(--v2-gutter);
}
.v2 :is(.pg-case,.pg-resd,.pg-tech,.pg-vs) :is(.pad,.pad-sm) { padding-block:var(--ds-section-gap); }
.v2 :is(.pg-case,.pg-resd) :is(.back,.crumb,.byline,.tags,.keypoints) { font-family:var(--ds-font); }
.v2 .pg-case .case-hero { margin:16px var(--v2-gutter) 0; border-radius:var(--ds-radius); overflow:hidden; }
.v2 .pg-case .case-hero>.wrap { padding:0 var(--ds-section-inset); }
.v2 .pg-case .head h1 { font-size:var(--ds-hero); line-height:1.08; }
.v2 .pg-case .body { grid-template-columns:minmax(0,1fr) minmax(240px,320px); gap:clamp(32px,6vw,88px); }
.v2 .pg-case .body>.prose { max-width:var(--ds-reading-width); min-width:0; width:100%; }
.v2 :is(.pg-case,.pg-resd) .prose { overflow-wrap:anywhere; font-size:var(--ds-copy); line-height:1.7; }
.v2 :is(.pg-case,.pg-resd) .prose h2 { font-size:var(--ds-feature-heading); line-height:1.2; }
.v2 :is(.pg-case,.pg-resd) .prose h3 { font-size:var(--ds-card-heading); line-height:1.25; }
.v2 :is(.pg-case,.pg-resd) .prose table { display:block; max-width:100%; overflow-x:auto; }
.v2 :is(.pg-case,.pg-resd) .prose :is(pre,img,iframe) { max-width:100%; }
.v2 .pg-case .kv>div { min-width:0; overflow-wrap:anywhere; }
.v2 .pg-case .side { min-width:0; }
.v2 .pg-case .notice { padding:var(--ds-card-padding); }
.v2 .pg-case .tight { padding-bottom:0; }
.v2 .pg-case .cta-row { gap:12px; margin-top:var(--ds-heading-gap); }
.v2 :is(.library-page,.contact-page) .btn { height:var(--ds-control-height); min-height:var(--ds-control-height); }
.v2 .library-page :is(.search-field input,.select-field select) { height:var(--ds-control-height); }
.v2 .book-text-link,.v2 .company-text-link { font-family:var(--ds-font); }
@media(max-width:860px) {
  .v2 .pg-case .body { grid-template-columns:minmax(0,1fr); gap:40px; }
  .v2 .pg-case .body>.prose { max-width:100%; }
  .v2 .pg-case .case-hero>.wrap { padding-inline:24px; }
}
@media(prefers-reduced-motion:no-preference) {
  .v2 :is(.resources-heading,.directory-heading,.contact-form-card,.pg-case .head) { animation:page-arrive 650ms var(--ds-ease) both; }
  @keyframes page-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
}

.v2 :is(.pg-case,.pg-resd,.pg-tech,.pg-vs,.pg-member) :is(.num,.eyebrow,.facts small) { font-family:var(--ds-font); }
