/* Case Studies: a publication built around the evidence. */
.case-shell { width: min(100rem, calc(100% - 4rem)); margin-inline: auto; }
.case-masthead { display: flex; justify-content: space-between; align-items: end; gap: 2rem; padding: clamp(4rem,7vw,7rem) 0 2.75rem; border-bottom: 1px solid var(--color-fg); }
.case-masthead h1 { margin: 0; font-size: clamp(3.6rem,8.5vw,9rem); line-height: .95; font-weight: 500; letter-spacing: -.07em; }
.case-masthead h1 span,.case-voices h2 span,.case-detail h1 span { color: var(--color-accent); }
.case-masthead p { flex: 0 0 auto; margin: 0 .25rem .35rem 0; color: var(--color-fg-soft); line-height: 1.6; }
.case-feature { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2.5rem,6vw,6rem); align-items: center; padding: 3rem 0; border-bottom: 1px solid var(--color-line); }
.case-feature__visual { display: flex; align-items: center; min-height: 26rem; background: #eff5fc; color: var(--color-fg); text-decoration: none; overflow: hidden; }
.case-feature__visual > img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; }
.case-feature__typographic { padding: 3rem; font-size: clamp(2rem,4vw,4rem); line-height: 1.1; letter-spacing: -.05em; }
.case-chart { width: 100%; padding: clamp(1.5rem,3vw,3.5rem); }
.case-chart > span { display: block; font-size: 1rem; font-weight: 600; margin-bottom: 3.5rem; }
.case-chart__row { display: grid; grid-template-columns: 3.5rem minmax(0,1fr); gap: .6rem 1rem; align-items: center; margin-bottom: 1.5rem; font-size: .9rem; }
.case-chart__row > div { height: 1.8rem; border-bottom: 1px solid #cbd8e8; }
.case-chart__row i { display: block; min-width: 3px; height: 100%; background: #087fe8; }
.case-chart__row:first-of-type i { background: #65788e; }
.case-chart__row strong { grid-column: 2; font-size: 1.5rem; font-weight: 500; letter-spacing: -.04em; }
.case-chart p { margin: 2.5rem 0 0; font-size: .875rem; color: #566477; }
.case-feature__copy h2 { margin: 0; max-width: 14ch; font-size: clamp(2.6rem,4vw,4.5rem); line-height: 1.02; font-weight: 500; letter-spacing: -.055em; }
.case-feature__copy h2 a { color: inherit; text-decoration: none; }
.case-feature__copy p { max-width: 34rem; margin: 1.5rem 0 2.5rem; color: var(--color-fg-soft); font-size: 1.1rem; line-height: 1.65; }
.case-link { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--color-line); padding-top: 1.2rem; color: var(--color-fg); text-decoration: none; font-weight: 600; }
.case-link span { color: var(--color-accent); font-size: 1.4rem; }
.case-link:hover,.case-feature__copy h2 a:hover { color: var(--color-accent-dark); }
.case-voices { display: grid; grid-template-columns: .7fr 1.3fr; gap: 2rem 5rem; padding: clamp(4rem,7vw,7rem) 0 clamp(5rem,9vw,9rem); }
.case-voices h2 { margin: .3rem 0 0; font-size: clamp(2.3rem,3.6vw,4rem); line-height: 1.05; font-weight: 500; letter-spacing: -.055em; }
.case-quote { grid-column: 2; margin: 0; padding-left: 2rem; border-left: 3px solid var(--color-accent); }
.case-voices h2 + .case-quote { grid-row: 1; }
.case-quote blockquote,.case-quote__content { margin: 0; font-size: clamp(1.5rem,2.2vw,2.5rem); font-weight: 450; line-height: 1.35; letter-spacing: -.025em; }
.case-quote figcaption { margin-top: 1.5rem; font-size: .9rem; line-height: 1.55; color: var(--color-fg-soft); }
.case-quote video,.case-quote iframe { max-width: 100%; }
.case-detail { padding-block: clamp(3rem,5vw,5rem) 7rem; }
.case-detail .guide-detail__back { margin-bottom: 3rem; font-size: .95rem; }
.case-detail__grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(22rem,.7fr); gap: clamp(3rem,6vw,7rem); align-items: start; }
.case-detail__grid--reading { grid-template-columns: minmax(0,50rem); }
.case-detail h1 { margin: 0; font-size: clamp(3rem,5.6vw,6.2rem); line-height: .99; font-weight: 500; letter-spacing: -.06em; }
.case-detail__intro { margin: 2rem 0; max-width: 42rem; color: var(--color-fg-soft); font-size: clamp(1.15rem,1.7vw,1.45rem); line-height: 1.55; }
.case-facts { display: flex; flex-wrap: wrap; gap: 2rem 4rem; padding: 1.5rem 0; border-block: 1px solid var(--color-line); }
.case-facts dt { margin-bottom: .5rem; color: var(--color-muted); font-size: .875rem; }
.case-facts dd { margin: 0; font-size: 1rem; }
.case-detail__body { max-width: 43rem; font-size: 1.0625rem; line-height: 1.75; color: var(--color-fg-soft); }
.case-detail__body h2 { margin: 2.8rem 0 1rem; font-size: clamp(1.8rem,2.5vw,2.6rem); font-weight: 500; letter-spacing: -.045em; line-height: 1.1; color: var(--color-fg); }
.case-detail__body p { margin-block: 1rem; }
.case-detail__form { top: 6rem; box-shadow: none; border-radius: .8rem; }
.case-detail__form > h2 { font-size: clamp(1.9rem,2.6vw,2.7rem); }
.case-resource-contents { padding: 0 0 1.4rem; margin: 1.4rem 0; border-bottom: 1px solid var(--color-line); list-style: none; }
.case-resource-contents li { margin-top: .65rem; font-size: .95rem; line-height: 1.45; }
.case-resource-contents li::before { content: '→'; color: var(--color-accent-dark); margin-right: .65rem; }
.case-detail__form .itwf-field > label,.case-detail__form fieldset > legend,.case-detail__form fieldset label { font-size: .875rem; }
.case-detail__form .case-delivery-note { margin: 1rem 0 0; font-size: .875rem; }
.case-library a:focus-visible,.case-detail a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 5px; }
.site-header__dropdown--wide { width: min(42rem,calc(100vw - 3rem)); }
.site-header__menu:last-child .site-header__dropdown--wide { left: auto; right: -7rem; transform: translateY(.6rem); }
.site-header__menu:last-child:hover .site-header__dropdown--wide,.site-header__menu:last-child:focus-within .site-header__dropdown--wide { transform: translateY(.25rem); }
@media (max-width: 1050px) {
 .case-masthead { align-items: start; flex-direction: column; }
 .case-detail__grid { gap: 2.5rem; grid-template-columns: minmax(0,1fr) minmax(20rem,.8fr); }
 .case-feature__visual { min-height: 23rem; }
}
@media (max-width: 800px) {
 .case-shell { width: calc(100% - 2rem); }
 .case-masthead { padding: 3rem 0 2rem; gap: 1.25rem; }
 .case-masthead h1 { font-size: clamp(3.1rem,11vw,5.5rem); }
 .case-feature { grid-template-columns: 1fr; gap: 2rem; padding-block: 2rem 3rem; }
 .case-feature__visual { min-height: 21rem; }
 .case-feature__copy h2 { max-width: 18ch; }
 .case-feature__copy p { margin-bottom: 2rem; }
 .case-voices { grid-template-columns: 1fr; gap: 2rem; }
 .case-quote,.case-voices h2 + .case-quote { grid-column: 1; grid-row: auto; padding-left: 1.25rem; }
 .case-detail__grid { grid-template-columns: 1fr; }
 .case-detail__form { position: static; }
}

/* Watchable client stories alongside the written case evidence. */
.case-voices:has(.case-quote--video) { grid-template-columns: 1fr; }
.case-voices:has(.case-quote--video) > h2 { margin-bottom: 1rem; }
.case-voices:has(.case-quote--video) .case-quote { grid-column: 1; grid-row: auto; }
.case-quote--video { padding: 0; border: 0; }
.case-quote--video > figcaption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.testimonial-feature { display: grid; grid-template-columns: minmax(16rem,24rem) minmax(0,1fr); gap: clamp(3rem,7vw,8rem); align-items: center; padding-bottom: clamp(3rem,6vw,6rem); margin-bottom: 1rem; border-bottom: 1px solid var(--color-line); }
.testimonial-feature video { display: block; width: 100%; height: auto; aspect-ratio: 9/16; background: #111318; border-radius: .65rem; }
.testimonial-feature__story h3 { margin: 0 0 .5rem; font-size: clamp(1.75rem,3vw,3rem); line-height: 1.1; letter-spacing: -.045em; font-weight: 500; }
.testimonial-feature__story p { max-width: 38rem; font-size: 1.0625rem; line-height: 1.6; letter-spacing: normal; color: var(--color-fg-soft); }
.testimonial-feature__story .testimonial-feature__practice { margin: 0 0 2.5rem; font-size: .95rem; }
.testimonial-feature__story blockquote { max-width: 20ch; margin: 0 0 2rem; font-size: clamp(2.25rem,4vw,4.5rem); line-height: 1.1; letter-spacing: -.05em; }
.testimonial-feature__story details { max-width: 40rem; margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--color-line); font-size: 1rem; letter-spacing: normal; }
.testimonial-feature__story summary { cursor: pointer; font-size: 1rem; font-weight: 600; }
.testimonial-feature__story summary:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 5px; }
@media(max-width:800px) {
 .testimonial-feature { grid-template-columns: 1fr; gap: 2rem; }
 .testimonial-feature video { width: min(100%,24rem); margin-inline: auto; }
 .testimonial-feature__story .testimonial-feature__practice { margin-bottom: 1.5rem; }
}

/* A single collection, with cases and testimonials given equal editorial weight. */
.proof-masthead { align-items: end; padding-top: clamp(3.5rem,6vw,6rem); }
.proof-masthead h1 { font-size: clamp(3.2rem,7.7vw,8rem); line-height: .98; }
.proof-masthead h1 span { display: block; color: var(--color-accent-dark,#006ccc); }
.proof-masthead > p { flex: 0 1 19rem; max-width: 19rem; margin-bottom: .35rem; font-size: 1.0625rem; }
.proof-filters { display: flex; flex-wrap: wrap; gap: 2.5rem; border-bottom: 1px solid var(--color-line); }
.proof-filters[hidden],.proof-entry[hidden] { display: none !important; }
.proof-filters button { position: relative; padding: 1.4rem 0; border: 0; border-radius: 0; background: transparent; color: var(--color-fg-soft); font: inherit; font-size: 1rem; cursor: pointer; }
.proof-filters button span { margin-left: .5rem; color: var(--color-muted); font-size: .875rem; }
.proof-filters button[aria-pressed=true] { color: var(--color-fg); font-weight: 600; }
.proof-filters button[aria-pressed=true]::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: var(--color-accent); }
.proof-filters button:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 4px; }
.proof-feed { padding-bottom: clamp(4rem,7vw,7rem); }
.proof-entry { scroll-margin-top: 6rem; }
.proof-entry__type { margin: 0 0 1.5rem; color: var(--color-fg-soft); font-size: .875rem; line-height: 1.4; font-weight: 500; letter-spacing: 0; }
.proof-entry__type > span { margin-left: 1rem; padding-left: 1rem; border-left: 1px solid var(--color-line); }
.proof-testimonial { padding: clamp(2.5rem,5vw,5rem) 0; border-bottom: 1px solid var(--color-line); }
.proof-testimonial .testimonial-feature { grid-template-columns: minmax(0,1fr) minmax(15rem,22rem); gap: clamp(3rem,8vw,9rem); padding: 0; margin: 0; border: 0; }
.proof-testimonial .testimonial-feature video { grid-column: 2; grid-row: 1; width: 100%; max-height: 37rem; object-fit: contain; background: #111318; border-radius: .65rem; }
.proof-testimonial .testimonial-feature__story { grid-column: 1; grid-row: 1; max-width: 44rem; }
.proof-testimonial .testimonial-feature__story h3 { font-size: clamp(1.5rem,2.2vw,2.1rem); }
.proof-testimonial .testimonial-feature__story blockquote { font-size: clamp(2.5rem,4.8vw,5.1rem); max-width: 20ch; margin-block: 2rem; }
.proof-testimonial__content > p,.proof-testimonial__content > blockquote { max-width: 48rem; font-size: clamp(1.75rem,3vw,3rem); line-height: 1.3; }
.proof-testimonial__attribution { color: var(--color-fg-soft); font-size: 1rem; }
.proof-feed .case-feature { padding-block: clamp(3rem,6vw,6rem); }
.proof-feed .case-feature__copy .proof-entry__type { margin: 0 0 1.5rem; font-size: .875rem; }
.proof-pullquote { margin: 0; padding: clamp(3rem,6vw,6rem); background: #f1f6fc; border-bottom: 1px solid var(--color-line); }
.proof-pullquote blockquote { margin: 0; max-width: 29ch; font-size: clamp(2rem,3.8vw,4rem); font-weight: 450; line-height: 1.15; letter-spacing: -.045em; }
.proof-pullquote figcaption { margin-top: 2rem; font-size: .95rem; line-height: 1.5; color: var(--color-fg-soft); }
@media(max-width:1050px) {
 .proof-masthead > p { flex-basis: auto; max-width: 28rem; }
}
@media(max-width:800px) {
 .proof-masthead h1 { font-size: clamp(2.7rem,10vw,5rem); }
 .proof-masthead > p { font-size: 1rem; }
 .proof-filters { gap: 1.5rem; }
 .proof-filters button { font-size: .9rem; padding-block: 1.2rem; }
 .proof-filters button span { margin-left: .25rem; }
 .proof-testimonial .testimonial-feature { display: flex; flex-direction: column; gap: 2rem; align-items: stretch; }
 .proof-testimonial .testimonial-feature video { width: min(100%,22rem); max-height: none; margin-inline: auto; }
 .proof-testimonial .testimonial-feature__story blockquote { font-size: clamp(2rem,7.5vw,3rem); }
 .proof-pullquote { padding: 2rem 1.5rem; }
}
@media(max-width:1050px) {
 .proof-masthead { align-items: flex-start; }
}

/* Image and story share a single linked card. */
.proof-feed .case-feature--connected { display: block; border-bottom: 0; }
.case-card { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); overflow: hidden; border: 1px solid #dce3ec; border-radius: .85rem; background: #fff; color: var(--color-fg); text-decoration: none; transition: border-color .2s ease; }
.case-card .case-feature__visual { min-height: 100%; border-right: 1px solid #dce3ec; }
.case-card .case-feature__visual > img { display: block; min-height: 100%; aspect-ratio: 4/3; object-fit: cover; }
.case-card .case-feature__copy { padding: clamp(2rem,4vw,4rem); }
.case-card .case-feature__copy h2 { max-width: 15ch; font-size: clamp(2.2rem,3.5vw,3.9rem); }
.case-card .case-feature__copy > p:not(.proof-entry__type) { font-size: 1rem; margin-bottom: 2rem; }
.case-card:hover { border-color: var(--color-accent); }
.case-card:hover h2,.case-card:hover .case-link { color: var(--color-accent-dark); }
.case-card:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 5px; }
@media(max-width:800px) {
 .case-card { grid-template-columns: 1fr; }
 .case-card .case-feature__visual { min-height: 20rem; border-right: 0; border-bottom: 1px solid #dce3ec; }
 .case-card .case-feature__copy { padding: 1.75rem 1.5rem; }
}
@media(prefers-reduced-motion:reduce) { .case-card { transition: none; } }
