/* Shared photographic presentation; leave interactive 3D canvases and UI overlays intact. */
:root{--product-studio:radial-gradient(ellipse at 45% 30%,#fff 15%,#f6f9fc 65%,#eaf1f8 100%)}
main :is(.product-family-image img,.editorial-card-image img,.home-family-photo,.range-card img,#product-photo,.grid .visual>img,.safebox-photo-hero figure>img,.range-photo-intro>img,.store-model-preview>img,.store-model-preview>a>img,.gun-module-photo img){
  -webkit-mask-image:none;mask-image:none;
}
main :is(.product-family-card,.range-card,.tool-module-card,.service-radio-cards article){background:#fff}
main :is(.product-family-card,.range-card,.tool-module-card,.service-radio-cards article,.catalog article)>.store-model-preview{padding:0;overflow:hidden;background:var(--product-studio)}
main :is(.product-family-image,.range-card>.store-model-preview>a:not(.store-model-link)){display:block;padding:0;margin:0;overflow:hidden}

/* Photographs use their original proportions, all the way to the card edges. */
/* Homepage: edge-to-edge photos, with a crop limited to background margins. */
#solutions .product-family-image{aspect-ratio:3/2;overflow:hidden}
#solutions .product-family-image img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(var(--family-photo-zoom,1));transform-origin:center}
#solutions .product-family-image[href="/armoires-a-cles/"]{--family-photo-zoom:1.08}
#solutions .product-family-image[href="/equipements/"]{--family-photo-zoom:1.04}
#solutions .product-family-image[href="/outillage/"]{--family-photo-zoom:1.1}

#gammes .product-family-image img,
main .editorial-card-image img{display:block;width:100%;height:auto;margin:0;border:0;border-radius:0;transform:none}
main .editorial-card-image{height:auto;background:var(--product-studio)}
main .safebox-photo-hero figure{border-radius:12px;overflow:hidden;background:var(--product-studio)}
main .safebox-photo-hero figure>img{border-radius:0}

/* Tall cutouts share a generous, consistent studio frame rather than an oversized page. */
#gammes .product-family-image[href="/safecombi/"],
#gammes .product-family-image[href="/safeslidebox/"],
main .range-card>.store-model-preview>a:not(.store-model-link){aspect-ratio:4/5;background:var(--product-studio)}
#gammes .product-family-image[href="/safecombi/"] img,
#gammes .product-family-image[href="/safeslidebox/"] img,
main .range-card>.store-model-preview>a:not(.store-model-link)>img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transform:none}
/* Slide 42 has generous side margins: fill the frame height while keeping the cabinet whole. */
#gammes .product-family-image[href="/safeslidebox/"] img{object-fit:cover;object-position:center}
main .product-media{background:var(--product-studio)}
/* Combi 14: crop the studio margins only, retaining the complete cabinet. */
main .range-card>.store-model-preview>a:not(.store-model-link)>img[src*="COMBI14-6C"]{object-fit:cover;transform:scale(1.03);transform-origin:center}
main #product-photo-wrap:has(img[src*="COMBI14-6C"]){aspect-ratio:4/5;overflow:hidden}
main #product-photo-wrap>img#product-photo[src*="COMBI14-6C"]{height:100%;max-height:none;object-fit:cover;transform:scale(1.03);transform-origin:center}
main #product-photo{height:clamp(420px,65vw,780px);object-fit:contain;mix-blend-mode:multiply}

/* Key cabinets: enlarge the image area and avoid clipping on hover. */
main .grid:has(>article[data-kind]){grid-template-columns:repeat(2,minmax(0,1fr))}
main .grid article[data-kind] .visual{height:auto;aspect-ratio:6/5;overflow:hidden;background:#edf1f4}
main .grid article[data-kind] .visual img{display:block;width:100%;height:100%;object-fit:contain;transform:none}

/* Radio catalog and secondary product photographs follow the same edge-to-edge rule. */
main .catalog .store-model-preview>img{width:100%;height:auto;display:block}
/* Gun cabinets: use the height of a tighter portrait frame, cropping only the studio sides. */
main #armes .gun-module-photo{aspect-ratio:2/3}
main #armes .gun-module-photo img{height:100%;object-fit:cover;object-position:center}
main .equipment-photo-hero:has(.gun-hero-actions) .store-model-preview{overflow:hidden;border-radius:12px}
main .equipment-photo-hero:has(.gun-hero-actions) .store-model-preview>img{transform:scale(1.12);transform-origin:51% 54%}
main .equipment-real-grid .equipment-detail-preview>img,
main .equipment-detail-preview>img,
main .tool-detail-preview>img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
/* Give the drawer and tall-locker illustrations most of their presentation cards. */
main .equipment-real-grid article{padding:0;gap:0;overflow:hidden;align-items:center;background:var(--product-studio)}
main .equipment-real-grid article>.equipment-detail-preview{align-self:center;padding:0;overflow:hidden}
main .equipment-real-grid article>.equipment-detail-preview+div{padding:22px}
main .equipment-real-grid .equipment-detail-preview:has(img[src*="safeboxgun-f2-photo"]){aspect-ratio:2/3}
main .equipment-real-grid .equipment-detail-preview>img[src*="safeboxgun-f2-photo"]{height:100%;object-fit:cover}
@media(min-width:1181px){
  main .equipment-real-grid article{grid-template-columns:60% minmax(0,1fr)}
  main .equipment-real-grid article>.equipment-detail-preview+div{padding:18px}
  main .equipment-real-grid article>.equipment-detail-preview:has(img[src*="safeboxgun-f2-photo"]){align-self:stretch;aspect-ratio:auto}
}
main .equipment-real-grid article:has(img[src*="tiroir-reference-inox"]){grid-template-columns:1fr;align-content:start}
main .equipment-real-grid a[href="/equipements/modeles-3d.php?module=T16"]{display:block;min-height:56px;margin-top:20px;padding:16px 20px;border:1px solid #0059da;border-radius:10px;background:linear-gradient(115deg,#071c4a,#0068f4);box-shadow:0 6px 16px #0049ae26;color:#fff;font-size:18px;font-weight:700;line-height:1.4;text-align:center;text-decoration:none;transition:box-shadow .2s,filter .2s}
main .equipment-real-grid a[href="/equipements/modeles-3d.php?module=T16"]:hover{filter:brightness(1.1);box-shadow:0 8px 20px #0049ae40}
main .equipment-real-grid a[href="/equipements/modeles-3d.php?module=T16"]:focus-visible{outline:3px solid #0068f4;outline-offset:4px}
main .equipment-real-grid a[href="/equipements/modeles-3d.php?module=T16"] .product-name{color:#fff}
main .equipment-real-grid a[href="/equipements/modeles-3d.php?module=T16"] .product-name-end{color:#d6eeff}
@media(max-width:650px){
  main .grid:has(>article[data-kind]){grid-template-columns:1fr}
  main #product-photo{height:auto;max-height:620px}
}
