/* Case Study report template - loaded only on single case_study pages (see functions.php).
   Restrained, report-style design: white page, hairline rules instead of boxes, plain ink numerals,
   sentence-case labels, flat surfaces. Uses the theme tokens in style.css; all classes use the csr- prefix. */

/* ---------- Hero ---------- */
.csr-hero{background:var(--bg);padding:44px 0 52px}
.csr-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center}
.csr-hero-media{position:relative;aspect-ratio:4/3;border-radius:var(--r-sm);overflow:hidden;background:var(--bg-2)}
.csr-hero-media img{display:block;width:100%;height:100%;object-fit:cover}
.csr-hero-badge{position:absolute;left:0;right:0;bottom:0;padding:14px 20px;background:rgba(6,14,28,.86);color:#fff;font-weight:600;font-size:.95rem;line-height:1.35}

/* "Case study · RMS 360": plain text label, not a pill */
.csr-hero .lg-tag{display:block;padding:0;background:none;border:0;border-radius:0;box-shadow:none}
.csr-hero .lg-tag-pip{display:none}
.csr-hero .lg-tag span{font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}

.csr-h1{margin:14px 0 16px;font-size:clamp(2rem,3.4vw,2.8rem);line-height:1.14;letter-spacing:-.022em;font-weight:700;color:var(--ink)}
.csr-dek{margin:0;max-width:58ch;font-size:1.1rem;line-height:1.65;color:var(--ink-2)}

/* facts line instead of pill chips */
.csr-chips{display:flex;flex-wrap:wrap;gap:4px 0;margin:22px 0 0}
.csr-chips .lg-meta-chip{padding:0;background:none;border:0;border-radius:0;font-family:var(--font-body);font-size:.92rem;line-height:1.5;color:var(--ink-2)}
.csr-chips .lg-meta-chip+.lg-meta-chip::before{content:"";display:inline-block;width:1px;height:.95em;margin:0 14px;background:var(--border-3);vertical-align:-.12em}
.csr-chip-note{font-style:italic;color:var(--ink-3)}
.csr-reportline{margin:16px 0 0;font-size:.84rem;line-height:1.6;color:var(--ink-3)}
.csr-actions{margin-top:22px}

.csr-contact{display:flex;align-items:center;gap:12px;margin-top:26px;padding:16px 0 0;width:100%;border-top:1px solid var(--border-2);font-size:.9rem;color:var(--ink-2)}
.csr-contact img{width:40px;height:40px;border-radius:50%;object-fit:cover}
.csr-contact strong{color:var(--ink)}
.csr-role{color:var(--ink-3)}
.csr-avatar{flex:none;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--bg-3);color:var(--ink);font-weight:700;font-size:.9rem}

/* hero layout variants (chosen per post in "Case Study: Hero Layout") */
.csr-hero--image-right .csr-hero-media{order:2}
.csr-hero--text-left,.csr-hero--text-center{padding:60px 0 60px}
.csr-hero--text-left .csr-hero-grid,.csr-hero--text-center .csr-hero-grid{grid-template-columns:minmax(0,880px);justify-content:start}
.csr-hero--text-center .csr-hero-grid{justify-content:center;text-align:center}
.csr-hero--text-left .csr-h1,.csr-hero--text-center .csr-h1{font-size:clamp(2.2rem,4.1vw,3.3rem);line-height:1.1}
.csr-hero-result{margin:26px 0 0;padding:2px 0 2px 20px;border-left:3px solid var(--ink);font-size:clamp(1.3rem,2.4vw,1.75rem);font-weight:700;letter-spacing:-.015em;line-height:1.25;color:var(--ink)}
.csr-hero-result span{display:block;margin-bottom:6px;font-size:.74rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.csr-hero-result+.csr-dek{margin-top:22px}
.csr-hero--text-center .csr-hero-result{max-width:640px;margin:26px auto 0;padding:18px 0;border-left:0;border-top:1px solid var(--border-3);border-bottom:1px solid var(--border-3)}
.csr-hero--text-center .csr-dek{margin-left:auto;margin-right:auto}
.csr-hero--text-center .csr-chips{justify-content:center}
.csr-hero--text-center .csr-contact{justify-content:center}

/* ---------- Key figures ---------- */
.csr-kpis{background:var(--bg);border-top:1px solid var(--border-3);border-bottom:1px solid var(--border-3);padding:34px 0}
.csr-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:24px 0}
.csr-kpi{padding:2px 28px;border-left:1px solid var(--border-2)}
.csr-kpi:first-child{border-left:0;padding-left:0}
.csr-kpi strong{display:block;font-size:clamp(1.9rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;font-weight:600;color:var(--ink)}
.csr-kpi span{display:block;margin-top:8px;font-size:.86rem;line-height:1.4;color:var(--ink-3)}

/* ---------- The story in brief: three ruled columns, no cards ---------- */
.csr-story{background:var(--bg);padding:68px 0 28px}
.csr-eyebrow{margin:0 0 22px;font-size:1.35rem;font-weight:700;letter-spacing:-.012em;color:var(--ink)}
.csr-story-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));border-top:2px solid var(--ink)}
.csr-story-card{padding:24px 32px 6px 0}
.csr-story-card+.csr-story-card{padding-left:32px;border-left:1px solid var(--border-2)}
.csr-story-card h2{margin:0 0 14px;font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.csr-story-card p{margin:0 0 12px;font-size:1.02rem;line-height:1.75;color:var(--ink-2)}
.csr-story-card p:last-child{margin-bottom:0}

/* ---------- Report body ---------- */
.csr-body{background:var(--bg);padding:64px 0 72px}
.csr-body-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:64px;align-items:start}
.csr-article{min-width:0}
.csr-prose{max-width:760px}
.csr-prose h2,.csr-section>h2{scroll-margin-top:110px}
.csr-prose>h2:not(:first-child){margin-top:2.2em}
.csr-section{margin-top:64px;scroll-margin-top:110px}
.csr-article>.csr-section:first-child{margin-top:0}
.csr-prose+.csr-section{margin-top:64px}
.csr-section>h2{margin:0 0 26px;padding-bottom:12px;border-bottom:1px solid var(--border-3);font-size:1.6rem;line-height:1.2;letter-spacing:-.015em;color:var(--ink)}

/* engagement timeline */
.csr-timeline{list-style:none;margin:0;padding:0}
.csr-timeline li{position:relative;padding:0 0 30px 32px}
.csr-timeline li::before{content:"";position:absolute;left:0;top:7px;width:11px;height:11px;border-radius:50%;background:var(--ink)}
.csr-timeline li::after{content:"";position:absolute;left:5px;top:24px;bottom:0;width:1px;background:var(--border-3)}
.csr-timeline li:last-child{padding-bottom:0}
.csr-timeline li:last-child::after{display:none}
.csr-tl-period{display:block;margin-bottom:3px;font-size:.82rem;font-weight:600;color:var(--ink-3)}
.csr-timeline h3{margin:0 0 8px;font-size:1.12rem;color:var(--ink)}
.csr-timeline p{margin:0;max-width:62ch;font-size:1rem;line-height:1.75;color:var(--ink-2)}

/* before / after table */
.csr-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border-3);border-radius:var(--r-sm);background:#fff}
.csr-table-wrap:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.csr-table{width:100%;min-width:520px;border-collapse:collapse;font-size:.98rem}
.csr-table caption{caption-side:top;text-align:left;padding:14px 20px;font-size:.85rem;color:var(--ink-3);border-bottom:1px solid var(--border-2)}
.csr-table thead th{padding:12px 20px;background:var(--bg-2);text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.csr-table tbody th,.csr-table tbody td{padding:15px 20px;text-align:left;border-top:1px solid var(--border-2);color:var(--ink-2);vertical-align:middle}
.csr-table tbody th{color:var(--ink);font-weight:600}
.csr-table tbody td{white-space:nowrap}
.csr-delta{font-weight:700;color:var(--ink)}
.csr-delta-up{color:color-mix(in srgb,var(--green-l) 50%,#000)}
.csr-delta-down{color:var(--orange)}
.csr-note{margin:16px 0 0;max-width:68ch;font-size:.86rem;line-height:1.65;color:var(--ink-3)}

/* proof screenshots */
.csr-proof-intro{margin:-6px 0 22px;max-width:62ch;font-size:.95rem;line-height:1.65;color:var(--ink-3)}
.csr-proof-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.csr-proof-grid.is-single{grid-template-columns:minmax(0,1fr)}
.csr-proof{margin:0;background:var(--bg-2);border:1px solid var(--border-3);border-radius:var(--r-sm);overflow:hidden}
.csr-proof img{display:block;max-width:100%;height:auto;margin:0 auto}
.csr-proof figcaption{padding:12px 16px 14px;font-size:.84rem;line-height:1.5;color:var(--ink-3);border-top:1px solid var(--border-2)}

/* client quote */
.csr-quote{margin:64px 0 0;padding:4px 0 4px 28px;border-left:3px solid var(--ink)}
.csr-quote blockquote{margin:0}
.csr-quote blockquote p{margin:0 0 14px;font-size:1.3rem;line-height:1.55;letter-spacing:-.005em;color:var(--ink);font-weight:500}
.csr-quote blockquote p:last-child{margin-bottom:0}
.csr-quote figcaption{display:flex;align-items:center;gap:12px;margin-top:20px;font-size:.88rem;color:var(--ink-3);line-height:1.45}
.csr-quote figcaption strong{color:var(--ink)}
.csr-quote figcaption img{width:44px;height:44px;border-radius:50%;object-fit:cover}

/* key takeaways: ruled list, not boxes */
.csr-takeaways{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;counter-reset:csr-t}
.csr-takeaways li{counter-increment:csr-t;padding:20px 0 22px;border-top:1px solid var(--border-3)}
.csr-takeaways li::before{content:counter(csr-t) ".";display:block;margin-bottom:6px;font-size:.84rem;font-weight:700;color:var(--ink-3)}
.csr-takeaways h3{margin:0 0 8px;font-size:1.05rem;line-height:1.35;color:var(--ink)}
.csr-takeaways p{margin:0;font-size:.95rem;line-height:1.7;color:var(--ink-2)}

/* team */
.csr-team-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.csr-team-grid.is-single{grid-template-columns:minmax(0,1fr)}
.csr-person{display:flex;gap:16px;align-items:flex-start;padding:20px;background:#fff;border:1px solid var(--border-3);border-radius:var(--r-sm)}
.csr-person-photo{flex:none;width:68px;height:68px;border-radius:50%;object-fit:cover;background:var(--bg-2)}
.csr-person>.csr-avatar{width:68px;height:68px;font-size:1.35rem}
.csr-person-body{min-width:0;flex:1}
.csr-person-name{display:block;font-size:1.02rem;font-weight:700;line-height:1.3;color:var(--ink)}
.csr-person-role{display:block;margin-top:2px;font-size:.84rem;line-height:1.4;color:var(--ink-3)}
.csr-person-body p{margin:10px 0 0;font-size:.9rem;line-height:1.65;color:var(--ink-2)}
.csr-person-link{display:inline-flex;align-items:center;gap:7px;margin-top:14px;padding:5px 12px 5px 10px;border:1px solid var(--border-3);border-radius:var(--r-sm);font-size:.78rem;font-weight:600;color:var(--ink-2);text-decoration:none;transition:border-color var(--t),color var(--t)}
.csr-person-link svg{width:14px;height:14px;fill:currentColor}
.csr-person-link:hover{border-color:var(--ink);color:var(--ink)}
.csr-person-link:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* plain tables in the written report look like .sp-table without needing the class */
.csr-prose table{margin:22px 0;font-size:.92rem;border-collapse:collapse}
.csr-prose th{background:var(--bg-2);text-align:left;padding:11px 16px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--ink-3);border-bottom:2px solid var(--border-3)}
.csr-prose td{padding:12px 16px;border-bottom:1px solid var(--border-2);color:var(--ink-2);vertical-align:top}
.csr-prose tr:last-child td{border-bottom:0}

/* ---------- Aside ---------- */
.csr-aside{display:grid;gap:18px;align-content:start}
.csr-card{background:var(--bg);border:1px solid var(--border-3);border-radius:var(--r-sm);padding:18px 20px}
.csr-card-label{margin-bottom:12px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.csr-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.csr-toc a{display:flex;gap:10px;padding:7px 10px;margin:0 -10px;border-radius:var(--r-sm);font-size:.88rem;line-height:1.4;color:var(--ink-2);text-decoration:none;transition:background var(--t),color var(--t)}
.csr-toc a span{flex:none;padding-top:2px;font-size:.72rem;font-weight:700;color:var(--ink-4)}
.csr-toc a:hover,.csr-toc a.is-active{background:var(--bg-2);color:var(--ink)}
.csr-toc a.is-active{font-weight:600}
.csr-toc a:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.csr-facts{margin:0;display:grid;gap:14px}
.csr-facts dt{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.csr-facts dd{margin:3px 0 0;font-size:.93rem;line-height:1.45;color:var(--ink);font-weight:500}
.csr-tags{display:flex;flex-wrap:wrap;gap:6px}
.csr-tags span{padding:3px 10px;border:1px solid var(--border-3);border-radius:var(--r-sm);background:var(--bg);font-size:.76rem;font-weight:500;color:var(--ink-2)}

/* ---------- Related ---------- */
.csr-related{background:var(--bg-2);padding:72px 0;border-top:1px solid var(--border-2)}
.csr-related-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.csr-related-head h2{margin:0;font-size:1.6rem;letter-spacing:-.015em;color:var(--ink)}
.csr-related-head a{font-size:.9rem;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* no written report yet: show the side panels as a tidy row instead of a lone right column */
.csr-body-grid.is-aside-only{grid-template-columns:minmax(0,1fr)}
.csr-body-grid.is-aside-only .csr-aside{position:static;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.csr-body:has(.is-aside-only){padding:56px 0}

/* ---------- Responsive ---------- */
@media (min-width:1101px) and (min-height:860px){
  .csr-aside{position:sticky;top:108px}
}
@media (max-width:1100px){
  .csr-body-grid{grid-template-columns:minmax(0,1fr);gap:48px}
  .csr-aside{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
  .csr-toc{order:-1}
}
@media (max-width:900px){
  .csr-hero-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .csr-body{padding:52px 0 48px}
  .csr-story{padding:52px 0 16px}
  .csr-story-grid{grid-template-columns:minmax(0,1fr)}
  .csr-story-card,.csr-story-card+.csr-story-card{padding:22px 0 6px;border-left:0}
  .csr-story-card+.csr-story-card{border-top:1px solid var(--border-2)}
}
@media (max-width:640px){
  .csr-takeaways,.csr-team-grid{grid-template-columns:minmax(0,1fr)}
  .csr-person{padding:18px}
  .csr-quote{padding-left:20px;margin-top:48px}
  .csr-quote blockquote p{font-size:1.12rem}
  .csr-kpi{padding:2px 16px}
  .csr-kpi:nth-child(odd){border-left:0;padding-left:0}
  .csr-chips .lg-meta-chip+.lg-meta-chip::before{margin:0 10px}
}
@media (prefers-reduced-motion:reduce){
  .csr-toc a,.csr-person-link{transition:none}
}
@media print{
  .csr-aside,.csr-related,.csr-actions,.cta-section{display:none}
  .csr-body-grid,.csr-hero-grid{display:block}
}

/* related cards: same restrained treatment (the shared .cs-card styles stay untouched elsewhere) */
.csr-related .cs-card{border-radius:var(--r-sm);box-shadow:none;border-color:var(--border-3)}
.csr-related .solution-tag{padding:0;background:none;border:0;border-radius:0;font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.csr-related .cs-card-result{font-family:var(--font-body);font-weight:700;color:var(--ink)}
.csr-related .cs-card-location{font-family:var(--font-body)}
@media (max-width:640px){.csr-proof-grid{grid-template-columns:minmax(0,1fr)}}
