/* Case studies use the shared white, typographic design system. */
.case-studies-hero { display:grid; grid-template-columns:1.3fr 1fr; align-items:end; gap:80px; padding-block:104px 88px; }
.case-studies-hero h1,.cs-hero h1 { font-size:clamp(48px,5.5vw,78px); line-height:1.05; letter-spacing:-.055em; }
.case-studies-hero > p { max-width:370px; justify-self:end; font-size:16px; line-height:1.8; color:var(--secondary); }
.case-studies-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px 32px; padding-bottom:88px; }
.case-study-card { min-width:0; }
.case-study-link { display:block; height:100%; border-bottom:1px solid var(--line); padding-bottom:28px; border-radius:8px 8px 0 0; }
.case-study-image { aspect-ratio:16/10; overflow:hidden; border-radius:8px; background:var(--surface); border:1px solid var(--line); }
.case-study-image img { width:100%; height:100%; object-fit:cover; object-position:top; color:var(--secondary); }
.case-study-image-fallback { display:flex; align-items:center; justify-content:center; height:100%; padding:32px; text-align:center; color:var(--secondary); font-size:24px; letter-spacing:-.025em; }
.case-study-content { padding-top:28px; }
.case-study-content .eyebrow { margin-bottom:14px; }
.case-study-content h2 { font-size:clamp(25px,2.4vw,34px); letter-spacing:-.035em; }
.case-study-excerpt { margin-top:18px; color:var(--secondary); font-size:15px; line-height:1.8; }
.case-study-content .text-link { margin-top:22px; }
.case-study-stats { display:flex; flex-wrap:wrap; gap:24px 40px; margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.case-study-stats > div { display:flex; flex-direction:column-reverse; gap:5px; }
.case-study-stats dt { font-size:12px; color:var(--secondary); }
.case-study-stats dd { font-size:28px; letter-spacing:-.04em; line-height:1.2; }
.cs-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding-top:32px; font-size:12px; color:var(--secondary); }
.cs-breadcrumb a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.cs-hero { padding-block:56px 88px; }
.cs-hero-inner { max-width:960px; }
.cs-hero .hero-badge { display:block; margin-bottom:22px; color:var(--secondary); font-size:12px; }
.cs-hero h1 { color:#767676; }
.cs-hero h1 strong { color:var(--ink); font-weight:500; }
.cs-subtitle { max-width:700px; margin-top:28px; color:var(--secondary); font-size:18px; line-height:1.8; }
.cs-pills { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:24px 0 0; list-style:none; }
.cs-pill { padding:6px 11px; border:1px solid var(--line); border-radius:4px; font-size:11px; color:var(--secondary); line-height:1.5; }
.cs-hero-buttons,.cs-cta-buttons { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.cs-section,.cs-section-wide { padding-block:var(--section-space); }
.cs-hero + .cs-section { border-top:1px solid var(--line); }
.case-study-page h2 { max-width:850px; }
.case-study-page .highlight { color:#767676; }
.cs-overview-text,.cs-section-subtitle,.cs-section-subtitle-center { max-width:780px; margin-top:28px; color:var(--secondary); font-size:16px; line-height:1.8; }
.cs-overview-text strong { color:var(--ink); font-weight:500; }
.cs-divider { height:1px; margin:0; border:0; background:var(--line); }
.cs-problem-grid,.cs-solution-grid,.cs-results-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 32px; margin-top:48px; }
.cs-problem-card,.cs-solution-card,.cs-result-card { min-width:0; border-top:1px solid var(--line); padding-top:24px; }
.case-study-page h3 { font-size:21px; line-height:1.3; letter-spacing:-.025em; margin-bottom:12px; }
.cs-problem-card p,.cs-solution-card p,.cs-result-card p,.cs-gallery-info p { font-size:14px; line-height:1.8; color:var(--secondary); }
.cs-solution-card ul { margin:20px 0 0; padding-left:18px; color:var(--secondary); font-size:14px; line-height:1.8; }
.cs-solution-card li + li { margin-top:8px; }
.card-icon,.result-icon,.tech-icon { display:block; margin-bottom:20px; }
.card-icon img,.result-icon img,.tech-icon img { width:28px; height:28px; object-fit:contain; filter:brightness(.45); }
.cs-tech-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; margin-top:48px; }
.cs-tech-badge { padding-top:24px; border-top:1px solid var(--line); }
.cs-tech-badge h3 { font-size:17px; margin-bottom:8px; }
.cs-tech-badge p { font-size:13px; color:var(--secondary); }
.cs-results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cs-screenshot-block { margin-top:48px; }
.cs-screenshot-label { font-size:12px; margin-bottom:16px; color:var(--secondary); }
.cs-screenshot-img,.cs-gallery-img { overflow:hidden; background:var(--surface); border:1px solid var(--line); border-radius:8px; min-height:180px; color:var(--secondary); font-size:14px; }
.cs-screenshot-img img { width:100%; height:auto; }
.cs-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 32px; margin-top:48px; }
.cs-gallery-card { min-width:0; }
.cs-gallery-img { aspect-ratio:16/10; }
.cs-gallery-img img { width:100%; height:100%; object-fit:cover; object-position:top; }
.cs-gallery-info { padding-top:22px; }
.cs-gallery-info h3 { font-size:19px; }
.cs-testimonial { padding-block:64px; border-block:1px solid var(--line); }
.cs-quote-card { max-width:860px; }
.cs-quote-text { font-size:clamp(24px,2.7vw,36px); line-height:1.5; letter-spacing:-.03em; }
.cs-quote-author { margin-top:28px; font-size:14px; }
.cs-quote-role { margin-top:4px; font-size:12px; color:var(--secondary); }
.cs-cta { padding-block:88px; }
.cs-cta > p { max-width:620px; margin-top:24px; font-size:16px; line-height:1.8; color:var(--secondary); }
.case-studies-closing { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; border-top:1px solid var(--line); }
.case-studies-closing p { color:var(--secondary); font-size:16px; line-height:1.8; }
@media(hover:hover) and (pointer:fine) {
 .case-study-link:hover h2 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
}
/* Shared navigation and dialogs need their non-homepage responsive layout. */
@media(max-width:999px) {
 .navigation { height:76px; } .nav-links,.nav-actions { display:none; }
 .case-studies-hero,.case-studies-closing { gap:40px; padding-block:64px; }
 .cs-problem-grid,.cs-solution-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .cs-tech-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .cs-hero { padding-block:40px 64px; }
}
@media(max-width:699px) {
 .navigation { height:72px; }
 .case-studies-hero,.case-studies-closing { grid-template-columns:1fr; gap:28px; padding-block:48px; }
 .case-studies-hero > p { justify-self:start; max-width:none; }
 .case-studies-hero h1,.cs-hero h1 { font-size:clamp(38px,10vw,64px); overflow-wrap:anywhere; }
 .case-studies-grid,.cs-problem-grid,.cs-solution-grid,.cs-results-grid,.cs-gallery-grid { grid-template-columns:1fr; }
 .case-studies-grid { gap:40px; padding-bottom:48px; }
 .cs-section,.cs-section-wide,.cs-testimonial,.cs-cta { padding-block:48px; }
 .cs-subtitle { font-size:16px; }
 .cs-problem-grid,.cs-solution-grid,.cs-results-grid,.cs-tech-grid,.cs-gallery-grid { margin-top:32px; gap:28px; }
 .cs-tech-grid { gap:28px 20px; }
 .cs-tech-badge h3 { overflow-wrap:anywhere; }
 .cs-gallery-img { min-height:0; }
 .footer-top { grid-template-columns:1fr 1fr; gap:32px 24px; }
 .footer-brand { grid-column:1/-1; }
 .footer-bottom,.footer-bottom > div { flex-wrap:wrap; gap:16px; }
 .modal { padding:28px 24px; } .modal .form-row { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
