/* Case surfaces: existing tokens, Public Shell and button/title contracts. */
.cases-index h1 { font-size: clamp(2rem,3.5vw,2.75rem); line-height: 1.12; font-weight: 800; }
.cases-index-hero { padding-block: var(--mk-8) var(--mk-12); }
.cases-index-hero .breadcrumb { margin-block-end: var(--mk-12); }
.cases-copy { max-inline-size: 34rem; }
.cases-index .illustrated-band::before { background: linear-gradient(90deg,rgb(7 19 32 / 88%),rgb(7 19 32 / 48%) 50%,rgb(7 19 32 / 15%)); }
.cases-highlights { display: flex; flex-wrap: wrap; gap: var(--mk-4); list-style: none; padding: 0; margin-block-start: var(--mk-8); }
.cases-highlights li { display: flex; align-items: center; gap: var(--mk-2); flex: 1 1 8rem; font-size: var(--mk-small); }
.cases-highlights svg { flex: 0 0 2rem; }
.cases-index .detail-icon { color: var(--mk-blue); }
.cases-signature { font-style: italic; color: #e0eff9; font-size: var(--mk-body-lg); margin-inline-start: auto; max-inline-size: 15rem; text-shadow: 0 1px 4px var(--mk-ink); }
.cases-reason,.cases-process { display: grid; gap: var(--mk-8); }
.cases-reason-cards,.cases-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--mk-4); }
.cases-index .card { background: white; border: 1px solid var(--mk-line); border-radius: var(--mk-radius); padding: var(--mk-6); }
.cases-reason-cards h3,.cases-results h3,.cases-process-steps h3 { font-size: 1rem; }
.cases-reason-cards p,.cases-results p,.cases-process-steps p { font-size: var(--mk-small); }
.case-library-grid { display: grid; grid-auto-rows: 1fr; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--mk-6); }
.cases-index .case-index-card,.case-detail .case-index-card { padding: 0; overflow: hidden; }
.case-index-card > .stack { padding: var(--mk-4); }
.case-index-card h3 { font-size: var(--mk-h3); line-height: 1.3; }
.case-index-card p { font-size: var(--mk-small); }
.case-media { margin: 0; min-inline-size: 0; }
.case-media img { display: block; inline-size: 100%; block-size: auto; border-radius: var(--mk-radius); }
.case-media figcaption { font-size: var(--mk-meta); color: var(--mk-muted); padding: var(--mk-2) var(--mk-3); }
.case-tags { color: var(--mk-ink); padding: 0; margin: var(--mk-4) 0 0; display: flex; flex-wrap: wrap; gap: var(--mk-2); list-style: none; }
.case-tags li { background: var(--mk-light); font-size: var(--mk-meta); padding: .125rem .375rem; border-radius: var(--mk-pill); }
.case-filters { display: flex; gap: var(--mk-2); flex-wrap: wrap; }
.case-filters a { text-decoration: none; border: 1px solid var(--mk-line); border-radius: var(--mk-pill); padding: var(--mk-2) var(--mk-3); font-size: var(--mk-small); color: var(--mk-ink); }
.case-filters a[aria-current],.case-filters a:hover,.case-filters a:focus-visible { color: white; background: var(--mk-action-blue); }
.case-future-note { border: 1px dashed var(--mk-line); border-radius: var(--mk-radius); padding: var(--mk-6); }
.cases-process-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--mk-6); }
.cases-process-steps li { display: flex; flex-direction: column; gap: var(--mk-2); }
.cases-index [id] { scroll-margin-block-start: 6rem; }
@media (min-width: 64rem) {
    .cases-index .illustrated-band .container { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--mk-6); }
    .cases-index .breadcrumb { grid-column: 1 / -1; }
    .cases-index-hero .cases-highlights { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-block-start: var(--mk-2); }
    .cases-signature { align-self: center; }
    .cases-reason { grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); }
    .cases-reason-cards { grid-template-columns: repeat(auto-fit,minmax(min(100%,8rem),1fr)); }
    .case-library-many { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .cases-results { grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); }
    .cases-process-steps { grid-template-columns: repeat(5,minmax(0,1fr)); gap: var(--mk-6); }
}
@media (max-width: 63.999rem) {
    .cases-index .illustrated-band::before { background: rgb(7 19 32 / 85%); }
    .cases-signature { margin-block-start: var(--mk-8); }
}
@media (max-width: 39.999rem) {
    .case-library-grid,.cases-reason-cards,.cases-results { grid-template-columns: minmax(0,1fr); }
}

.cases-index :is(.card,.stack,li) { min-inline-size: 0; overflow-wrap: anywhere; }

/* Shared CaseStudyDetail; all variation is validated content, never case-specific CSS. */
.case-detail h1 { font-size: clamp(2rem,4vw,3rem); line-height: 1.12; }
.case-detail h2 { max-inline-size: 42rem; }
.case-detail-hero .breadcrumb { margin-block-end: var(--mk-8); }
.case-proposition { font-size: var(--mk-h3); font-weight: 700; line-height: 1.3; color: var(--mk-blue); }
.case-split { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--mk-8); align-items: center; }
.case-detail-tags,.case-applied-services { display: flex; flex-wrap: wrap; gap: var(--mk-3); padding: 0; list-style: none; }
.case-detail-tags li { border: 1px solid var(--mk-line); border-radius: var(--mk-pill); padding: .125rem .5rem; font-size: var(--mk-small); }
.case-detail .surface-dark .case-media figcaption { color: #c4d3e1; }
.case-handwritten { font-size: var(--mk-body-lg); font-style: italic; color: var(--mk-blue); }
.case-note { border-inline-start: 3px solid var(--mk-blue); padding-inline-start: var(--mk-4); font-size: var(--mk-small); }
.case-timeline { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,8rem),1fr)); gap: var(--mk-6); }
.case-timeline li { position: relative; border-block-start: 2px solid var(--mk-blue); padding-block-start: var(--mk-3); }
.case-timeline p { font-size: var(--mk-small); }
.case-step { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border: 1px solid var(--mk-blue); border-radius: 50%; color: var(--mk-blue); margin-block-end: var(--mk-3); font-weight: 800; }
.case-outcomes { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr)); gap: var(--mk-6); }
.case-outcomes h3 { color: var(--mk-action-blue); font-size: var(--mk-h3); }
/* One agency-perspective panel for all validated highlight sections. */
.case-section-highlight { position: relative; isolation: isolate; overflow: hidden; text-align: center; padding-block: var(--mk-24); background: linear-gradient(135deg,var(--mk-white),var(--mk-light)); }
.case-section-highlight::before,.case-section-highlight::after { content: ""; position: absolute; z-index: -1; inline-size: 36rem; aspect-ratio: 1; border-radius: 50%; background: color-mix(in srgb,var(--mk-blue) 4%,transparent); pointer-events: none; }
.case-section-highlight::before { inset-block-start: -24rem; inset-inline-end: -20rem; }
.case-section-highlight::after { inset-block-end: -24rem; inset-inline-start: -20rem; }
.case-featured-panel { position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--mk-6); padding: var(--mk-16) var(--mk-8); border: 1px solid color-mix(in srgb,var(--mk-blue) 18%,var(--mk-white)); border-radius: var(--mk-6); background: rgb(255 255 255 / 65%); box-shadow: 0 1rem 4rem rgb(24 127 250 / 7%); }
.case-featured-ornament { position: absolute; inset-block-start: -2.75rem; inset-inline-start: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: var(--mk-6); color: var(--mk-blue); }
.case-featured-ornament::before,.case-featured-ornament::after { content: ""; inline-size: 4rem; block-size: 1px; background: color-mix(in srgb,var(--mk-blue) 45%,var(--mk-white)); }
.case-featured-ornament span { display: grid; place-items: center; inline-size: 5.5rem; block-size: 5.5rem; border-radius: 50%; background: var(--mk-light); font: 800 5rem/1 Georgia,serif; padding-block-start: 1.5rem; }
.case-featured-panel > .eyebrow { border: 0; padding: 0; display: flex; align-items: center; gap: var(--mk-3); margin: var(--mk-4) 0 0; }
.case-featured-panel > .eyebrow::before { content: ""; inline-size: 1.75rem; block-size: 2px; background: var(--mk-blue); }
.case-detail .case-featured-panel h2 { max-inline-size: 42rem; margin: 0; font-size: clamp(1.75rem,3vw,2.5rem); line-height: 1.2; font-weight: 800; }
.case-featured-copy { max-inline-size: var(--mk-reading); font-size: var(--mk-body-lg); }
.case-featured-copy > * + * { margin-block-start: var(--mk-4); }
.case-attribution { display: grid; justify-items: center; gap: var(--mk-6); font-weight: 700; font-size: var(--mk-body-lg); }
.case-attribution::before { content: ""; inline-size: 3rem; block-size: 1px; background: color-mix(in srgb,var(--mk-blue) 35%,var(--mk-white)); }
.case-featured-panel .case-handwritten { max-inline-size: var(--mk-reading); font-size: var(--mk-h3); }
@media (max-width:39.999rem) {
    .case-featured-panel { padding: var(--mk-12) var(--mk-4) var(--mk-8); gap: var(--mk-6); }
    .case-featured-ornament { gap: var(--mk-3); }
    .case-featured-ornament::before,.case-featured-ornament::after { inline-size: 2rem; }
}
.case-final::before { background: linear-gradient(90deg,rgb(7 19 32 / 94%),rgb(7 19 32 / 65%)); }
.case-detail [id] { scroll-margin-block-start: 6rem; }
.case-detail :is(.stack,.card,li) { min-inline-size: 0; overflow-wrap: anywhere; }
@media (min-width:64rem) { .case-split { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:39.999rem) { .case-timeline { grid-template-columns: minmax(0,1fr); } .case-timeline li { display: grid; grid-template-columns: 2.75rem minmax(0,1fr); gap: var(--mk-3); border-block-start: 0; border-inline-start: 2px solid var(--mk-blue); padding-inline-start: var(--mk-3); } }

/* R3: shared case presentation, independent of case identity and commercial logic. */
.case-index-card { display: flex; flex-direction: column; }
.case-card-body { display: flex; flex-direction: column; flex: 1; }
.case-card-body > .button { margin-block-start: auto; align-self: flex-start; }
.case-card-body > p { margin-block-end: var(--mk-6); }
.cases-process > .stack { max-inline-size: var(--mk-reading); }
.cases-index .cases-process-steps li { overflow-wrap: normal; word-break: normal; }
.cases-process-steps svg { flex: 0 0 36px; }
.case-feature-list { list-style: none; margin: 0; padding: var(--mk-6); border: 1px solid var(--mk-line); border-radius: var(--mk-radius); display: grid; gap: var(--mk-6); }
.case-feature-list li { display: grid; grid-template-columns: 2rem minmax(0,1fr); align-items: start; gap: var(--mk-4); line-height: 1.65; }
.case-feature-list li + li { border-block-start: 1px solid var(--mk-line); padding-block-start: var(--mk-6); }
.case-feature-list svg,.case-metric-card svg { color: var(--mk-blue); }
.case-section-solution .case-media { margin-block-start: var(--mk-8); }
.case-section-solution .case-media figcaption { padding-block-start: var(--mk-4); padding-inline: 0; }
.case-cta-benefits { gap: var(--mk-6); }
@media (max-width:39.999rem) { .cases-process-steps { grid-template-columns: minmax(0,1fr); } }

/* One editorial row; alternation is positional, never a client-specific template. */
.cases-featured-heading { padding-block: var(--mk-8); }
.cases-featured-heading .section-heading { max-inline-size: none; margin-block: var(--mk-3) 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--mk-4); }
.cases-featured-heading h2 { max-inline-size: none; font-size: var(--mk-h3); }
.featured-case-row { padding-block: var(--mk-16); background: var(--mk-white); }
.featured-case-row:nth-of-type(even) { background: var(--mk-light); }
.featured-case-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--mk-8); align-items: center; }
.featured-case-copy { min-inline-size: 0; container-type: inline-size; }
.featured-case-copy h3 { font-size: var(--mk-h2); line-height: 1.2; margin-block-start: var(--mk-2); }
.featured-case-copy .eyebrow { font-size: var(--mk-meta); }
.featured-case-copy .case-tags { margin-block-start: var(--mk-3); }
.featured-case-summary { margin-block-start: var(--mk-4); }
.featured-case-overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--mk-4); padding-block-start: var(--mk-6); margin-block: var(--mk-6); border-block-start: 1px solid var(--mk-line); }
.featured-case-overview > div { min-inline-size: 0; }
.featured-case-overview > div + div { border-inline-start: 1px solid var(--mk-line); padding-inline-start: var(--mk-4); }
.featured-case-overview dt { display: flex; align-items: start; gap: var(--mk-2); font-size: var(--mk-meta); font-weight: 700; }
.featured-case-overview svg { flex: 0 0 24px; color: var(--mk-blue); }
.featured-case-overview dd { margin: var(--mk-2) 0 0; font-size: var(--mk-small); line-height: 1.5; }
.featured-case-row .case-media figcaption { padding-inline: 0; }
@media (min-width:64rem) {
    .featured-case-layout { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); }
    .featured-case-row-reverse .featured-case-layout { grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); }
    .featured-case-row-reverse .case-media { grid-column: 2; grid-row: 1; }
    .featured-case-row-reverse .featured-case-copy { grid-column: 1; grid-row: 1; }
}
@media (max-width:39.999rem) {
    .featured-case-overview { grid-template-columns: minmax(0,1fr); }
    .featured-case-overview > div + div { border-inline-start: 0; padding-inline-start: 0; border-block-start: 1px solid var(--mk-line); padding-block-start: var(--mk-4); }
}

@container (max-width:28rem) {
    .featured-case-overview { grid-template-columns: minmax(0,1fr); }
    .featured-case-overview > div + div { border-inline-start: 0; padding-inline-start: 0; border-block-start: 1px solid var(--mk-line); padding-block-start: var(--mk-4); }
}

.case-library-single { grid-template-columns: minmax(0,1fr); }
