/* Editorial case layout. Opt in with body.case.case-page.
   The page supplies the canvas; product surfaces keep their native geometry. */
body.case.case-page{
  --case-max:1280px;
  --case-gutter:28px;
  --case-column-gap:40px;
  --case-section-space:72px;
  --case-row-space:64px;
  --case-copy-size:17px;
  --case-copy-leading:1.65;
  --case-measure:65ch;
}
body.case-page :is(.cx-wrap,.case-container,.bx-cta .bx-wrap,.bx-next .bx-wrap){
  box-sizing:border-box;width:100%;max-width:var(--case-max);
  margin-inline:auto;padding-inline:var(--case-gutter);
}
body.case-page :is(section,header.cx-hero,.cx-vis,.case-figure){overflow:visible;}
body.case-page :is(.cx-vis,.case-figure){min-width:0;margin:0;max-width:100%;}
body.case-page :is(.case-copy,.cx-txt){min-width:0;}
body.case-page .case-copy{max-width:var(--case-measure);}
body.case-page .cx-hero{padding:calc(var(--nav-h) + 44px) 0 48px;}
body.case-page .cx-hero__in{
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:var(--case-column-gap);align-items:center;
}
body.case-page .cx-hero__txt{order:0;}
body.case-page .cx-hero__txt .bx-eyebrow{
  display:block;font-size:12px;line-height:1.6;letter-spacing:.07em;
  max-width:50ch;margin:0 0 16px;
}
body.case-page .cx-hero__txt .bx-h1{
  margin:0 0 24px;font-size:clamp(38px,4.1vw,58px);line-height:1.09;
  letter-spacing:-.035em;max-width:18ch;text-wrap:balance;
}
body.case-page .cx-hero__txt .bx-summary{
  max-width:48ch;margin:0;font-size:var(--case-copy-size);
  line-height:var(--case-copy-leading);
}
body.case-page p.cx-actions{margin:24px 0 0;}
body.case-page .bx-demo-cta__btn{font-size:14px;line-height:1.45;min-height:44px;}
body.case-page .case-demo-note{margin-top:16px;font-size:13px;line-height:1.6;max-width:56ch;}
body.case-page .cx-preuves{margin:0;padding:0;border-bottom:0;}
body.case-page .cx-preuves__in{padding-block:24px;gap:24px;border-block:1px solid var(--cx-filet);}
body.case-page .ei-preuve{gap:8px;}
body.case-page .ei-preuve__n{font-size:32px;line-height:1.1;}
body.case-page .ei-preuve__l{font-size:13px;line-height:1.5;max-width:24ch;}
body.case-page .case-chapters-nav{
  position:sticky;top:calc(var(--case-nav-top,var(--nav-h)) - 1px);z-index:35;
  display:flex;align-items:center;gap:4px;flex-wrap:nowrap;
  width:100%;max-width:none;margin:0;
  padding:8px max(var(--case-gutter),calc((100% - var(--case-max))/2 + var(--case-gutter)));
  border:0;border-bottom:1px solid var(--cx-filet);background:var(--bg);
  box-shadow:0 5px 14px #02081908;overflow-x:auto;scrollbar-width:none;
}
body.case-page .case-chapters-nav::-webkit-scrollbar{display:none;}
body.case-page .case-chapters-nav a{
  position:relative;display:inline-flex;align-items:center;flex:0 0 auto;min-height:44px;
  padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.5;
  color:var(--text-secondary);text-decoration:none;white-space:nowrap;
}
body.case-page .case-chapters-nav a:hover{color:var(--text-primary);background:color-mix(in srgb,var(--text-primary) 4%,var(--bg));}
body.case-page .case-chapters-nav a[aria-current="location"]{
  color:var(--text-primary);font-weight:600;background:color-mix(in srgb,var(--hl) 11%,var(--bg));
}
body.case-page .case-chapters-nav a[aria-current="location"]::after{
  content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;border-radius:2px;background:var(--hl);
}
body.case-page .case-chapters-nav a:focus-visible{outline:2px solid var(--hl);outline-offset:-2px;}
body.case-page main > :is(.case-chapter,.bx-deep,.cx-band){
  margin-top:calc(var(--case-section-space) / 2);
  padding-top:calc(var(--case-section-space) / 2);
}
body.case-page main > :is(.case-chapter,.bx-deep,.cx-band)::before{
  left:max(var(--case-gutter),calc((100% - var(--case-max))/2 + var(--case-gutter)));
  width:40px;
}
body.case-page .case-chapter{scroll-margin-top:calc(var(--case-nav-top,var(--nav-h)) + var(--case-chapters-height,61px) + 24px);}
body.case-page .case-chapter > section{margin:0;padding:0;}
body.case-page .cx-rows{gap:var(--case-row-space);}
body.case-page .cx-row{
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:var(--case-column-gap);align-items:start;
}
body.case-page .cx-row--droite{grid-template-columns:minmax(0,7fr) minmax(0,5fr);}
body.case-page .cx-txt{gap:16px;}
body.case-page .cx-tete{gap:14px;align-items:center;margin:0;}
body.case-page .cx-tete__n{font-size:20px;line-height:1.2;}
body.case-page .cx-tete__k{font-size:11px;line-height:1.5;letter-spacing:.1em;}
body.case-page h2.cx-h2{
  font-size:clamp(28px,2.8vw,38px);line-height:1.18;letter-spacing:-.025em;
  max-width:26ch;
}
body.case-page :is(h3.cx-pb,h3.cx-h3){
  font-size:clamp(24px,2.2vw,30px);line-height:1.25;letter-spacing:-.02em;
  max-width:34ch;
}
body.case-page :is(.cx-list,.cx-pbp,.cx-txt > p,.cx-sec > p){
  font-size:var(--case-copy-size);line-height:var(--case-copy-leading);
  max-width:var(--case-measure);
}
body.case-page .cx-list{margin:0;gap:12px;}
body.case-page .cx-list li{font-size:inherit;line-height:inherit;max-width:inherit;}
body.case-page :is(.cx-txt > p,.cx-sec > p){margin-block:0;}
body.case-page .cx-sol{padding-left:16px;margin-top:4px;}
body.case-page p.cx-wow{font-size:18px;line-height:1.5;max-width:40ch;}
body.case-page .cx-clo{font-size:15px;line-height:1.65;}
body.case-page .cx-row--editorial{
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);width:100%;max-width:none;margin-inline:0;
}
body.case-page .cx-row--editorial .cx-txt{max-width:var(--case-measure);}
body.case-page .cx-sec{display:grid;gap:16px;}
body.case-page :is(.gallery-caption,.case-evidence-caption){
  margin:16px 0 0;font-size:13px;line-height:1.6;max-width:65ch;
}
body.case-page .case-focus{width:100%;max-width:none;justify-self:stretch;}
body.case-page .case-focus__source{font-size:12px;line-height:1.5;margin:0 0 12px;}
body.case-page .case-focus__open{margin-top:8px;font-size:13px;line-height:1.5;}
body.case-page .case-product-stage{margin-block:0;}
body.case-page .case-product-stage:focus-visible{outline:2px solid var(--hl);outline-offset:8px;}
body.case-page .case-evidence-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;
}
body.case-page .case-evidence-grid a{display:block;min-width:0;}
body.case-page .case-evidence-grid a:first-child{grid-column:1/-1;}
body.case-page .case-evidence-grid img{
  display:block;width:100%;height:auto;border-radius:5px;
  box-shadow:0 2px 6px #02081924,0 12px 28px #02081920;
}
body.case-page .case-evidence-grid a:focus-visible{outline:2px solid var(--hl);outline-offset:6px;}
/* An overview uses one real workspace at a time. Module controls are navigation,
   not eight competing previews squeezed into cards. */
body.case-page .case-product-gallery{width:100%;min-width:0;margin-top:32px;}
body.case-page .case-gallery__nav{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;
  border-block:1px solid var(--cx-filet);margin:0 0 28px;padding:0;
}
body.case-page .case-gallery__nav :is(button,a){
  display:flex;align-items:baseline;gap:10px;min-width:0;min-height:54px;
  padding:15px 14px;border:0;border-bottom:2px solid transparent;border-radius:0;
  background:none;color:var(--text-secondary);font:inherit;font-size:14px;
  font-weight:500;line-height:1.45;text-align:left;text-decoration:none;cursor:pointer;
}
body.case-page .case-gallery__nav :is(button,a) > span:first-child:not(:only-child){
  flex:0 0 auto;color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums;
}
body.case-page .case-gallery__nav [aria-selected="true"]{
  color:var(--text-primary);border-bottom-color:var(--hl);
  background:color-mix(in srgb,var(--hl) 8%,transparent);
}
body.case-page .case-gallery__nav :is(button,a):hover{color:var(--text-primary);background:color-mix(in srgb,var(--fg) 4%,transparent);}
body.case-page .case-gallery__nav :is(button,a):focus-visible{outline:2px solid var(--hl);outline-offset:-4px;}
body.case-page .case-gallery__panel{min-width:0;padding:0;margin:0;border:0;outline-offset:8px;}
body.case-page .case-gallery__panel[hidden]{display:none!important;}
body.case-page .case-product-gallery [data-case-gallery-status]{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0;
}
body.case-page .case-gallery__header{
  display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
  margin:0 0 24px;min-width:0;
}
body.case-page .case-gallery__header :is(h3,h4){margin:0 0 8px;font-size:22px;line-height:1.3;letter-spacing:-.015em;}
body.case-page .case-gallery__header p{margin:0;max-width:65ch;font-size:15px;line-height:1.65;color:var(--text-secondary);}
body.case-page .case-gallery__header > a{flex:0 0 auto;min-height:44px;padding-block:10px;font-size:13px;line-height:1.5;text-underline-offset:4px;}
body.case-page .case-gallery__screen{width:100%;max-width:1120px;margin:0 auto;overflow:visible;}
body.case-page .case-gallery__screen .screen-stage{width:100%;margin:0;}
body.case-page .case-gallery__screen + .case-focus__open{display:inline-flex;min-height:44px;align-items:center;}
body.case-page .case-solution__intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--case-column-gap);align-items:start;}
body.case-page .case-solution__intro p{margin:0;font-size:var(--case-copy-size);line-height:var(--case-copy-leading);max-width:65ch;color:var(--text-secondary);}
body.case-page .case-solution__intro .case-focus__source{font-size:12px;margin-bottom:12px;}
body.case-page .portfolio-reference .bxa-quote{max-width:1040px;text-align:center;}
body.case-page .portfolio-reference .bxa-quote__src{max-width:none;margin-inline:auto;}
body.case-page .portfolio-reference blockquote{font-size:clamp(23px,2.4vw,32px);line-height:1.45;letter-spacing:-.015em;}
body.case-page :is(.bx-cta,.bx-next){padding-block:48px;}
@media(min-width:981px){
  body.case-page .sc[data-sc="sp-acces"]{grid-template-columns:repeat(3,minmax(0,1fr));--cols:3;gap:14px;}
  body.case-page .spa{padding:16px 14px;gap:12px;}
  body.case-page .spa-h :is(s,b){font-size:13px;line-height:1.4;}
  body.case-page .spa-nom{padding-top:10px;gap:6px;}
  body.case-page .spa-nom :is(dt,dd){font-size:11px;line-height:1.5;}
  body.case-page .spa-q :is(b,span){font-size:12px;line-height:1.5;white-space:normal;}
  body.case-page .spp-lab{font-size:12px;line-height:1.5;}
  body.case-page .spp-morts span{font-size:11px;line-height:1.4;}
  body.case-page .spp-temps li b{font-size:12px;line-height:1.4;}
  body.case-page .spp-temps li span{font-size:11px;line-height:1.4;}
}
@media(max-width:1100px){body.case.case-page{--case-column-gap:28px;}}
@media(max-width:980px){
  body.case-page .cx-hero__in,body.case-page .cx-row,body.case-page .cx-row--droite{grid-template-columns:minmax(0,1fr);gap:28px;}
  body.case-page .cx-hero__txt,body.case-page .cx-row--droite :is(.cx-txt,.cx-vis){order:initial;}
  body.case-page .cx-hero__txt .bx-h1{max-width:24ch;}
  body.case-page .cx-hero__txt .bx-summary{max-width:65ch;}
  body.case-page .cx-hero .cx-vis{max-width:820px;margin-inline:auto;width:100%;}
  body.case-page .cx-row--editorial{grid-template-columns:minmax(0,1fr);max-width:none;}
  body.case-page .cx-txt{max-width:65ch;}
  body.case-page .case-solution__intro{grid-template-columns:minmax(0,1fr);gap:20px;}
}
@media(max-width:600px){
  body.case.case-page{--case-gutter:18px;--case-section-space:48px;--case-row-space:44px;--case-copy-size:16px;}
  body.case-page .cx-hero{padding-top:calc(var(--nav-h) + 28px);padding-bottom:32px;}
  body.case-page .cx-hero__txt .bx-h1{font-size:38px;line-height:1.1;margin-bottom:20px;}
  body.case-page .cx-hero__txt .bx-eyebrow{font-size:11px;margin-bottom:14px;}
  body.case-page .cx-preuves__in{padding-block:20px;gap:20px;}
  body.case-page .ei-preuve__n{font-size:28px;}
  body.case-page .ei-preuve__l{font-size:12px;}
  body.case-page .case-chapters-nav{gap:4px;padding-block:6px;}
  body.case-page .case-chapters-nav a{min-height:44px;font-size:12px;padding-inline:12px;}
  body.case-page .cx-vis{width:100%;margin-inline:0;}
  body.case-page .cx-tete__k{font-size:10px;}
  body.case-page h2.cx-h2{font-size:28px;}
  body.case-page .case-gallery__nav{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px;}
  body.case-page .case-gallery__nav :is(button,a){padding:12px 10px;min-height:50px;font-size:13px;gap:8px;}
  body.case-page .case-gallery__header{display:grid;gap:8px;margin-bottom:20px;}
  body.case-page .case-gallery__header :is(h3,h4){font-size:21px;}
  body.case-page .case-gallery__header > a{justify-self:start;}
  body.case-page .case-evidence-grid{gap:12px;}
  body.case-page :is(.bx-cta,.bx-next){padding-block:32px;}
}

/* Historical interfaces retain their pixels; only the documentary arrangement changes. */
body.case-page .case-evidence-stack{position:relative;width:100%;aspect-ratio:1.13;isolation:isolate;}
body.case-page .case-evidence-stack>a{position:absolute;width:82%;aspect-ratio:16/9;box-sizing:border-box;display:block;border-radius:5px;background:#fff;box-shadow:0 2px 5px #0208191a,0 10px 24px #02081926;}
body.case-page .case-evidence-stack>a:nth-child(1){left:0;top:0;z-index:1;}
body.case-page .case-evidence-stack>a:nth-child(2){left:8%;top:24%;z-index:2;}
body.case-page .case-evidence-stack>a:nth-child(3){left:16%;top:48%;z-index:3;}
body.case-page .case-evidence-stack>a>img{display:block;width:100%;height:100%;object-fit:contain;border:0;border-radius:inherit;box-shadow:none;}
body.case-page .case-evidence-stack>a:focus-visible{z-index:4;outline:2px solid var(--hl);outline-offset:5px;}
