/* Cases v2.5 — editorial archive and individual case studies. */
.post-type-archive-tolsky_case,
.single-tolsky_case { background:#0d0e10; color:#b8b0a2; }

.post-type-archive-tolsky_case main,
.single-tolsky_case main,
.case-single,
.case-single * { min-width:0; }
.post-type-archive-tolsky_case main * { min-width:0; }
.post-type-archive-tolsky_case h1,
.post-type-archive-tolsky_case h2,
.post-type-archive-tolsky_case h3,
.single-tolsky_case h1,
.single-tolsky_case h2,
.single-tolsky_case h3 { overflow-wrap:anywhere; }

.case-archive-hero,
.case-single-hero { padding:154px 0 82px; background:#0d0e10; border-bottom:1px solid rgba(255,255,255,.08); overflow:hidden; }
.case-archive-hero__grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); gap:80px; align-items:end; }
.case-archive-hero h1,
.case-single-hero h1 { color:#fff; font-family:var(--ff-display); font-weight:400; line-height:.92; overflow-wrap:anywhere; }
.case-archive-hero h1 { font-size:clamp(58px,8vw,112px); }
.case-archive-hero h1 span,
.case-single-hero h1 span,
.case-library h2 span,
.case-chapter h2 span,
.case-contact h2 span,
.case-calculator h2 span,
.case-related h2 span,
.case-archive-cta h2 span { color:#e8b860; }
.case-archive-hero__intro { padding:28px 0 4px; border-top:1px solid #c8963c; }
.case-archive-hero__intro > p { color:#d2cbc0; font-size:18px; line-height:1.65; }
.case-archive-hero__index { display:flex; align-items:flex-end; gap:18px; margin-top:36px; }
.case-archive-hero__index strong { color:#e8b860; font:400 72px/.75 var(--ff-display); }
.case-archive-hero__index span { color:#b8b0a2; font:600 10px/1.55 var(--ff-mono); letter-spacing:.11em; text-transform:uppercase; }

.case-featured { padding:0 0 90px; background:#0d0e10; }
.case-featured__card { position:relative; display:grid; grid-template-columns:70px minmax(0,1fr) minmax(245px,.55fr); gap:38px; align-items:stretch; padding:54px; color:#f0ebe2; background:linear-gradient(125deg,#202329 0%,#151719 70%); border:1px solid rgba(232,184,96,.22); border-top:3px solid #c8963c; overflow:hidden; }
.case-featured__card::after { content:''; position:absolute; right:-100px; bottom:-140px; width:390px; height:390px; border:1px solid rgba(232,184,96,.1); border-radius:50%; box-shadow:0 0 0 60px rgba(232,184,96,.025),0 0 0 120px rgba(232,184,96,.015); pointer-events:none; }
.case-featured__card:hover { opacity:1; border-color:rgba(232,184,96,.48); }
.case-featured__number { color:#a99f92; font:600 12px/1 var(--ff-mono); letter-spacing:.15em; }
.case-kicker { display:block; color:#d2a64f; font:600 10px/1.45 var(--ff-mono); letter-spacing:.14em; text-transform:uppercase; overflow-wrap:anywhere; }
.case-featured__copy { position:relative; z-index:1; }
.case-featured__copy h2 { margin:20px 0 18px; color:#fff; font:400 clamp(48px,6vw,80px)/.9 var(--ff-display); }
.case-featured__copy p { max-width:620px; color:#c5beb3; font-size:17px; line-height:1.65; }
.case-text-link { display:inline-flex; gap:12px; margin-top:30px; color:#e8b860; font:600 11px/1 var(--ff-mono); letter-spacing:.12em; text-transform:uppercase; }
.case-featured__metric { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; padding:10px 0 10px 38px; border-left:1px solid rgba(255,255,255,.1); }
.case-featured__metric strong { color:#e8b860; font:400 clamp(72px,8vw,118px)/.75 var(--ff-display); white-space:nowrap; }
.case-featured__metric > span { max-width:190px; margin-top:18px; color:#f0ebe2; font:600 12px/1.5 var(--ff-mono); text-transform:uppercase; letter-spacing:.08em; }
.case-featured__metric small { margin-top:28px; color:#a99f92; font:400 10px/1.5 var(--ff-mono); }

.case-library { padding:90px 0 112px; color:#23201c; background:#f0ebe2; }
.case-library__head { display:grid; grid-template-columns:minmax(280px,.65fr) minmax(0,1fr); gap:70px; align-items:end; margin-bottom:54px; }
.case-library h2 { color:#121315; font:400 clamp(54px,6vw,78px)/.9 var(--ff-display); }
.case-library .section-overline { color:#74501a; }
.case-filters { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.case-filter { appearance:none; padding:10px 13px; color:#5f574d; background:transparent; border:1px solid rgba(18,19,21,.16); border-radius:999px; font:600 9px/1 var(--ff-mono); letter-spacing:.07em; text-transform:uppercase; cursor:pointer; }
.case-filter:hover,.case-filter.is-active { color:#fff; background:#141618; border-color:#141618; }
.case-editorial-list { border-top:1px solid rgba(18,19,21,.2); }
.case-editorial { border-bottom:1px solid rgba(18,19,21,.16); }
.case-editorial[hidden] { display:none; }
.case-editorial > a { display:grid; grid-template-columns:54px minmax(180px,.75fr) minmax(260px,1.2fr) minmax(130px,.4fr) 34px; gap:28px; align-items:center; min-height:154px; padding:24px 16px 24px 0; color:#17181a; }
.case-editorial > a:hover { opacity:1; background:rgba(255,255,255,.38); }
.case-editorial__number { color:#5b554e; font:600 10px/1 var(--ff-mono); }
.case-editorial__title > span { color:#74501a; font:600 9px/1.4 var(--ff-mono); letter-spacing:.1em; text-transform:uppercase; }
.case-editorial__title h3 { margin-top:10px; color:#121315; font:400 34px/.95 var(--ff-display); overflow-wrap:anywhere; }
.case-editorial__summary { color:#5b554e; font-size:14px; line-height:1.65; }
.case-editorial__result { display:flex; flex-direction:column; }
.case-editorial__result strong { color:#74501a; font:400 43px/.95 var(--ff-display); white-space:nowrap; }
.case-editorial__result span { margin-top:6px; color:#5b554e; font:600 9px/1.4 var(--ff-mono); text-transform:uppercase; }
.case-editorial__arrow { color:#74501a; font-size:22px; transition:transform .2s ease; }
.case-editorial > a:hover .case-editorial__arrow { transform:translate(4px,-4px); }
.case-filter-empty { padding:50px 0; color:#5b554e; }

.case-archive-cta { padding:98px 0; background:#151719; border-top:1px solid rgba(255,255,255,.08); }
.case-archive-cta__inner { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.case-archive-cta h2 { color:#fff; font:400 clamp(54px,6vw,80px)/.9 var(--ff-display); }
.case-archive-cta p { max-width:500px; color:#c5beb3; font-size:17px; }
.case-archive-cta .btn { margin-top:28px; }

/* Single case */
.case-breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:48px; color:#a99f92; font:600 9px/1.5 var(--ff-mono); letter-spacing:.08em; text-transform:uppercase; }
.case-breadcrumbs a { color:#a99f92; }
.case-breadcrumbs span[aria-current] { color:#d2a64f; }
.case-single-hero__grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(270px,.5fr); gap:72px; align-items:end; }
.case-single-hero h1 { max-width:870px; margin-top:25px; font-size:clamp(50px,7vw,91px); }
.case-single-hero__lead { max-width:760px; margin-top:30px; color:#d0c9be; font-size:19px; line-height:1.7; }
.case-single-hero__metric { position:relative; padding:34px 0 12px 38px; border-left:2px solid #c8963c; }
.case-single-hero__metric > span { color:#b8b0a2; font:600 9px/1 var(--ff-mono); letter-spacing:.15em; text-transform:uppercase; }
.case-single-hero__metric strong { display:block; margin:22px 0 8px; color:#e8b860; font:400 clamp(70px,8vw,112px)/.74 var(--ff-display); white-space:nowrap; }
.case-single-hero__metric p { color:#f0ebe2; font:600 11px/1.5 var(--ff-mono); letter-spacing:.08em; text-transform:uppercase; }
.case-single-hero__metric small { display:block; margin-top:28px; color:#a99f92; font:400 10px/1.5 var(--ff-mono); }

.case-story { padding:110px 0; color:#2a2723; background:#f0ebe2; }
.case-story__grid { display:grid; grid-template-columns:190px minmax(0,790px); gap:90px; justify-content:start; }
.case-story__rail { position:sticky; top:105px; align-self:start; display:flex; flex-direction:column; gap:18px; padding-left:20px; border-left:1px solid rgba(18,19,21,.2); }
.case-story__rail span { color:#5b554e; font:600 9px/1.5 var(--ff-mono); letter-spacing:.11em; text-transform:uppercase; }
.case-story__body { min-width:0; }
.case-chapter { padding:0 0 100px; }
.case-chapter + .case-chapter { padding-top:100px; border-top:1px solid rgba(18,19,21,.15); }
.case-chapter:last-child { padding-bottom:0; }
.case-chapter__label { margin-bottom:24px; color:#74501a; font:600 10px/1 var(--ff-mono); letter-spacing:.16em; text-transform:uppercase; }
.case-chapter h2 { color:#141516; font:400 clamp(48px,6vw,72px)/.91 var(--ff-display); }
.case-chapter > p:not(.case-data-note):not(.case-proof__intro) { max-width:720px; margin-top:32px; color:#3d3934; font-size:19px; line-height:1.75; }
.case-actions { margin-top:42px; border-top:1px solid rgba(18,19,21,.17); }
.case-actions li { display:grid; grid-template-columns:55px minmax(0,1fr); gap:20px; padding:24px 0; border-bottom:1px solid rgba(18,19,21,.14); }
.case-actions li > span { color:#74501a; font:600 10px/1.8 var(--ff-mono); }
.case-actions p { color:#36322e; font-size:16px; line-height:1.65; }
.case-result-lead { font-size:22px !important; color:#24211e !important; }
.case-stat-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:44px; background:rgba(18,19,21,.16); border:1px solid rgba(18,19,21,.16); }
.case-stat-grid > div { display:flex; flex-direction:column; min-height:150px; padding:28px; background:#e7e0d5; }
.case-stat-grid strong { color:#74501a; font:400 clamp(42px,5vw,62px)/.9 var(--ff-display); overflow-wrap:anywhere; }
.case-stat-grid span { margin-top:auto; padding-top:20px; color:#625b52; font:600 9px/1.5 var(--ff-mono); letter-spacing:.09em; text-transform:uppercase; }
.case-chapter blockquote { position:relative; margin-top:44px; padding:28px 34px 28px 64px; color:#f0ebe2; background:#17191c; font-size:16px; line-height:1.75; border-left:3px solid #c8963c; }
.case-chapter blockquote::before { content:'“'; position:absolute; left:22px; top:15px; color:#e8b860; font:400 52px/1 var(--ff-display); }

.case-bars { margin-top:42px; padding:32px; background:#17191c; }
.case-bars__row { display:grid; grid-template-columns:minmax(100px,150px) minmax(120px,1fr) 80px; gap:18px; align-items:center; min-height:47px; }
.case-bars__row > span { color:#c8c0b5; font:600 10px/1.35 var(--ff-mono); overflow-wrap:anywhere; }
.case-bars__row > div { height:8px; background:rgba(255,255,255,.08); overflow:hidden; }
.case-bars__row i { display:block; height:100%; min-width:0; background:linear-gradient(90deg,#a8792c,#e8b860); }
.case-bars__row strong { color:#f0ebe2; font:600 11px/1 var(--ff-mono); text-align:right; white-space:nowrap; }
.case-data-note { margin-top:18px; padding-left:18px; color:#655e55; font-size:13px; line-height:1.65; border-left:2px solid #b7822f; }

.case-proof__intro { margin-top:28px; color:#595249; font-size:15px; }
.case-proof__gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:38px; }
.case-proof__gallery:has(figure:only-child) { grid-template-columns:1fr; }
.case-proof figure { min-width:0; }
.case-proof__button { position:relative; display:block; width:100%; padding:0; overflow:hidden; color:#fff; background:#151719; border:1px solid rgba(18,19,21,.22); cursor:zoom-in; }
.case-proof__button img { width:100%; aspect-ratio:16/8; object-fit:cover; object-position:top left; transition:transform .25s ease; }
.case-proof__button:hover img { transform:scale(1.015); }
.case-proof__button span { position:absolute; right:12px; bottom:12px; padding:8px 10px; color:#fff; background:rgba(13,14,16,.9); font:600 8px/1 var(--ff-mono); letter-spacing:.09em; text-transform:uppercase; }
.case-proof figcaption { margin-top:10px; color:#6e665c; font-size:12px; line-height:1.55; }

.case-contact { padding:92px 0; background:#17191c; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); }
.case-contact__inner { display:grid; grid-template-columns:1.1fr .9fr; gap:80px; align-items:center; }
.case-contact h2 { max-width:660px; color:#fff; font:400 clamp(46px,6vw,74px)/.92 var(--ff-display); overflow-wrap:anywhere; }
.case-contact p { color:#c4bcb0; font-size:17px; }
.case-contact .btn { margin-top:28px; }

.case-calculator { padding:104px 0; color:#b8b0a2; background:#0d0e10; }
.case-calculator__heading { margin-bottom:50px; }
.case-calculator h2 { max-width:830px; color:#fff; font:400 clamp(50px,6vw,78px)/.91 var(--ff-display); }
.case-calculator__heading > p { max-width:690px; margin-top:24px; color:#aaa297; font-size:16px; }
.case-calculator__shell { width:min(1180px,calc(100% - 36px)); margin-inline:auto; }
.case-calculator .calculator-home__unavailable { color:#f0ebe2; }
.case-calculator .calculator-home__unavailable span { color:#b8b0a2; }

.case-related { padding:100px 0 120px; color:#24211e; background:#f0ebe2; }
.case-related__head { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:44px; }
.case-related h2 { color:#141516; font:400 clamp(48px,5vw,68px)/.9 var(--ff-display); }
.case-related__head > a { color:#81591c; font:600 10px/1 var(--ff-mono); letter-spacing:.1em; text-transform:uppercase; }
.case-related__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:rgba(18,19,21,.15); border:1px solid rgba(18,19,21,.15); }
.case-related__grid > a { min-height:260px; padding:34px; color:#222; background:#e7e0d5; }
.case-related__grid > a:hover { opacity:1; background:#ded4c5; }
.case-related__grid span { color:#74501a; font:600 9px/1 var(--ff-mono); text-transform:uppercase; letter-spacing:.1em; }
.case-related__grid h3 { margin:18px 0 38px; color:#17181a; font:400 37px/.95 var(--ff-display); }
.case-related__grid strong { display:block; color:#74501a; font:400 54px/.9 var(--ff-display); }
.case-related__grid p { margin-top:8px; color:#625b52; font:600 9px/1.4 var(--ff-mono); text-transform:uppercase; }

.case-lightbox { position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:60px 28px 28px; background:rgba(5,6,7,.94); }
.case-lightbox[hidden] { display:none; }
.case-lightbox img { max-width:min(1500px,96vw); max-height:88vh; width:auto; height:auto; object-fit:contain; background:#fff; box-shadow:0 28px 90px rgba(0,0,0,.75); }
.case-lightbox__close { position:absolute; top:18px; right:24px; width:42px; height:42px; color:#fff; background:#202327; border:1px solid rgba(255,255,255,.18); font:300 30px/1 var(--ff-body); cursor:pointer; }

@media (max-width:960px) {
  .case-archive-hero__grid,.case-single-hero__grid,.case-archive-cta__inner,.case-contact__inner { grid-template-columns:1fr; gap:48px; }
  .case-featured__card { grid-template-columns:44px minmax(0,1fr); }
  .case-featured__metric { grid-column:2; padding:30px 0 0; border-left:0; border-top:1px solid rgba(255,255,255,.1); }
  .case-library__head { grid-template-columns:1fr; gap:36px; }
  .case-filters { justify-content:flex-start; }
  .case-editorial > a { grid-template-columns:40px minmax(180px,.8fr) minmax(240px,1fr) minmax(120px,.4fr); }
  .case-editorial__arrow { display:none; }
  .case-story__grid { grid-template-columns:140px minmax(0,1fr); gap:50px; }
}

@media (max-width:760px) {
  .case-archive-hero,.case-single-hero { padding:120px 0 62px; }
  .case-archive-hero__intro > p,.case-single-hero__lead { font-size:16px; }
  .case-featured { padding-bottom:70px; }
  .case-featured__card { grid-template-columns:1fr; gap:22px; padding:34px 26px; }
  .case-featured__number { grid-column:1; }
  .case-featured__metric { grid-column:1; }
  .case-editorial > a { grid-template-columns:38px minmax(0,1fr) minmax(110px,.36fr); gap:15px; min-height:135px; padding-right:0; }
  .case-editorial__title { grid-column:2; }
  .case-editorial__summary { display:none; }
  .case-editorial__result { grid-column:3; grid-row:1; }
  .case-editorial__result strong { font-size:34px; }
  .case-editorial__title h3 { font-size:29px; }
  .case-library,.case-story,.case-calculator,.case-related { padding:76px 0; }
  .case-story__grid { grid-template-columns:1fr; gap:0; }
  .case-story__rail { display:none; }
  .case-chapter { padding-bottom:72px; }
  .case-chapter + .case-chapter { padding-top:72px; }
  .case-proof__gallery,.case-related__grid { grid-template-columns:1fr; }
  .case-contact { padding:72px 0; }
}

@media (max-width:520px) {
  .case-archive-hero h1 { font-size:50px; }
  .case-single-hero h1 { font-size:44px; }
  .case-archive-hero__index strong { font-size:58px; }
  .case-featured__copy h2 { font-size:44px; }
  .case-featured__metric strong,.case-single-hero__metric strong { font-size:72px; white-space:normal; overflow-wrap:anywhere; }
  .case-library h2,.case-chapter h2,.case-contact h2,.case-calculator h2,.case-related h2,.case-archive-cta h2 { font-size:43px; }
  .case-filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:8px; scrollbar-width:thin; }
  .case-filter { flex:0 0 auto; }
  .case-editorial > a { grid-template-columns:30px minmax(0,1fr); padding:24px 0; }
  .case-editorial__result { grid-column:2; grid-row:auto; margin-top:2px; }
  .case-stat-grid { grid-template-columns:1fr; }
  .case-stat-grid > div { min-height:120px; }
  .case-bars { padding:22px 16px; }
  .case-bars__row { grid-template-columns:84px minmax(60px,1fr) 64px; gap:10px; }
  .case-actions li { grid-template-columns:38px minmax(0,1fr); }
  .case-chapter blockquote { padding:26px 24px 26px 50px; }
  .case-related__head { align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion:reduce) {
  .case-editorial__arrow,.case-proof__button img { transition:none; }
}
