/* Keep the horizontal gallery's copy, photographs and controls in separate
   layout rows. No fixed top/bottom offsets may consume the photograph area. */
@media (min-width:951px){
 .industry-scene{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:calc(100svh - var(--pj-sticky-height,124px));min-height:0;max-height:1026px;padding:0}
 .industry-scene.industry-scene .industry-heading{position:relative;inset:auto;width:auto;min-width:0;padding:clamp(20px,3.5svh,38px) var(--pad) clamp(16px,2.5svh,28px)}
 .industry-scene.industry-scene .industry-heading h2,.pj-language-fr .industry-scene.industry-scene .industry-heading h2{font-size:clamp(36px,6svh,68px);line-height:1.08;margin-top:12px;max-width:75%}
 .industry-scene.industry-scene .industry-heading>p:last-child,.pj-language-fr .industry-scene.industry-scene .industry-heading>p:last-child{position:absolute;left:auto;right:var(--pad);top:clamp(40px,7svh,72px);width:200px;max-width:22%;margin:0;font-size:12px;line-height:1.6}
 .industry-scene .industry-media{position:relative;inset:auto;min-height:0;width:100%;height:100%;overflow:hidden;contain:paint}
 .industry-media #industry-canvas{inset:0;width:100%;height:100%}
 .industry-media #industry-canvas canvas{display:block;width:100%;height:100%}
 .industry-scene.css-ribbon .industry-media .industry-fallback{position:absolute;inset:10px 0;height:auto;overflow:visible;padding:0}
 .industry-scene .industry-media .industry-card{height:100%;min-height:0}
 .industry-scene .industry-controls{position:relative;inset:auto;height:auto;padding:18px var(--pad) 22px;min-width:0}
 .industry-controls .industry-current{position:relative;inset:auto;gap:18px;min-height:38px}
 .industry-controls .industry-active-link{font-size:clamp(21px,2vw,28px);min-width:0;line-height:1.25}
 .industry-controls .industry-count{flex-shrink:0}
 .industry-controls .ribbon-controls{flex-shrink:0}
 .industry-controls .industry-progress{position:relative;inset:auto;margin:17px 0 18px}
 .industry-controls .industry-index{position:relative;inset:auto;gap:18px}
 .industry-controls .industry-index a{font-size:10px;max-width:none}
 .industry-controls .industry-index a>span{font-size:9px;margin-bottom:6px}
}
/* Retain the original vertical-scroll choreography on short laptop windows.
   Compact only the copy/control rows; never replace the pin with a swipe rail. */
@media (min-width:951px) and (max-height:639px){
 .industry-scene.industry-scene .industry-heading{padding:12px var(--pad)}
 .industry-scene.industry-scene .industry-heading h2,.pj-language-fr .industry-scene.industry-scene .industry-heading h2{font-size:32px;line-height:1.04;margin-top:8px}
 .industry-scene.industry-scene .industry-heading>p:last-child,.pj-language-fr .industry-scene.industry-scene .industry-heading>p:last-child{top:32px;font-size:11px}
 .industry-scene .industry-controls{padding:10px var(--pad) 12px}
 .industry-controls .industry-current{min-height:34px}
 .industry-controls .industry-active-link{font-size:20px}
 .industry-controls .industry-progress{margin:10px 0}
 .industry-controls .industry-index{gap:14px}
 .industry-controls .industry-index a{font-size:9px;line-height:1.3}
 .industry-controls .industry-index a>span{font-size:8px;margin-bottom:3px}
}
.industry-scene.css-ribbon .industry-fallback{scrollbar-width:none;scroll-snap-type:none}
.industry-scene.css-ribbon .industry-fallback::-webkit-scrollbar{display:none}
/* Native scroll snapping includes rail padding, so the last card can centre. */
.industry-fallback{scroll-padding-inline:var(--pad)}
.industry-card{scroll-margin-inline:0}
.ribbon-controls button:disabled{opacity:.35;cursor:default}
.ribbon-controls button:focus-visible{outline:2px solid var(--peach);outline-offset:4px}
