/* Galerie photographique inspirée de la sobriété de Bugatti. */
.p-catalogue .cat-ess { background:#111; color:#f2f2ee; }
.p-catalogue .cat-ess__grid { max-width:1600px; }
.p-catalogue .cat-ess__side { padding:0 clamp(22px,4.5vw,80px) 90px; }
.p-catalogue .cat-ess__bar { background:#111f; border-bottom:1px solid #303030; padding:24px 0; }
.p-catalogue .cat-ess__label { color:#989898; }
.p-catalogue .cat-ess__tabs { background:transparent; box-shadow:none; border-radius:0; padding:4px; gap:12px; }
.p-catalogue .cat-ess__tab { color:#aaa; font-size:13px; letter-spacing:.06em; border-radius:0; padding:12px 18px; }
.p-catalogue .cat-ess__tab.is-active { color:#fff; }
.p-catalogue .cat-ess__indicator { background:transparent; border-bottom:2px solid #229fd4; border-radius:0; box-shadow:none; }
.p-catalogue .cat-ess__tab span { background:#292929; color:#aaa; }
.p-catalogue .cat-ess__tab.is-active span { background:#17485c; color:#c3ebfc; }
.p-catalogue .cat-ess__devis { color:#eee; font-size:12px; }
.p-catalogue .cat-ess__head { max-width:740px; padding:72px 0 56px; }
.p-catalogue .cat-ess__kicker { color:#969696; letter-spacing:.18em; font-size:10px; }
.p-catalogue .cat-ess__title { color:#f4f4f0; font-size:clamp(36px,5vw,74px); font-weight:600; letter-spacing:-.04em; }
.p-catalogue .cat-ess__text { color:#aaa; font-size:15px; line-height:1.8; }
.p-catalogue .cat-ess__doc { color:#ddd; font-size:12px; font-weight:400; }
.p-catalogue .cat-ess__stream { grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px 32px; }
.p-catalogue .cat-ess__stream .cat-ess__item { grid-column:auto; margin:0; }
.p-catalogue .cat-ess__stream .cat-ess__item:nth-child(5n+1) { grid-column:1/-1; }
.p-catalogue .cat-ess__btn { aspect-ratio:4/3; background:#e8e9e8; border-radius:3px; box-shadow:none!important; transform:none; }
.p-catalogue .cat-ess__item:nth-child(5n+1) .cat-ess__btn { aspect-ratio:2/1; }
.p-catalogue .cat-ess__btn picture,.p-catalogue .cat-ess__btn img { width:100%; height:100%; }
.p-catalogue .cat-ess__btn img { object-fit:contain; transition:transform 1s cubic-bezier(.22,1,.36,1); }
.p-catalogue .cat-ess__cap { color:#aaa; border-bottom:0; margin-top:18px; padding:0; font-size:11px; letter-spacing:.12em; }
.p-catalogue .cat-ess__cap span { color:#eee; }
.p-catalogue .cat-ess__zoom { background:#111d; color:#fff; border:1px solid #ffffff60; border-radius:50%; width:42px; height:42px; right:20px; bottom:20px; opacity:0; }
@media(hover:hover) { .p-catalogue .cat-ess__btn:hover img { transform:scale(1.035); } .p-catalogue .cat-ess__btn:hover .cat-ess__zoom { opacity:1; } }
.p-catalogue .cat-ess__btn:focus-visible .cat-ess__zoom { opacity:1; }
@media(max-width:700px) { .p-catalogue .cat-ess__head { padding:40px 0; } .p-catalogue .cat-ess__stream { grid-template-columns:1fr; gap:38px; } .p-catalogue .cat-ess__stream .cat-ess__item { grid-column:1!important; } .p-catalogue .cat-ess__item:nth-child(5n+1) .cat-ess__btn { aspect-ratio:4/3; } .p-catalogue .cat-ess__zoom { opacity:1; width:34px; height:34px; right:12px; bottom:12px; } .p-catalogue .cat-ess__tab { padding:12px; } }
@media(prefers-reduced-motion:reduce) { .p-catalogue .cat-ess__btn img { transition:none; } }

/* Respecter le format réel des photos, sans bandes ajoutées. */
.p-catalogue .cat-ess__stream { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:42px 26px; }
.p-catalogue .cat-ess__stream .cat-ess__item:nth-child(5n+1) { grid-column:auto; }
.p-catalogue .cat-ess__btn,
.p-catalogue .cat-ess__item:nth-child(5n+1) .cat-ess__btn { aspect-ratio:auto; background:transparent; }
.p-catalogue .cat-ess__btn picture { display:block; width:100%; height:auto; }
.p-catalogue .cat-ess__btn img { display:block; width:100%; height:auto; object-fit:initial; }
@media(max-width:979px) { .p-catalogue .cat-ess__stream { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .p-catalogue .cat-ess__stream { grid-template-columns:1fr; gap:32px; } }
.p-catalogue .cat-ess { background:#fff; color:#172630; }
.p-catalogue .cat-ess__bar { background:#fffffff5; border-color:#e1e5e7; }
.p-catalogue .cat-ess__title,.p-catalogue .cat-ess__devis,.p-catalogue .cat-ess__cap span { color:#172630; }
.p-catalogue .cat-ess__text,.p-catalogue .cat-ess__kicker,.p-catalogue .cat-ess__label,.p-catalogue .cat-ess__cap { color:#65727a; }
.p-catalogue .cat-ess__tab { color:#65727a; }
.p-catalogue .cat-ess__tab.is-active,.p-catalogue .cat-ess__doc { color:#087eb8; }
.p-catalogue .cat-ess__tab span { background:#edf1f3; color:#65727a; }
.p-catalogue .cat-ess__tab.is-active span { background:#e0f1f9; color:#087eb8; }

/* Grandes vues en ouverture, détails compacts en fin de collection. */
.p-catalogue .cat-ess__stream { grid-template-columns:repeat(6,minmax(0,1fr)); gap:40px 28px; align-items:start; }
.p-catalogue .cat-ess__stream .cat-ess__item,
.p-catalogue .cat-ess__stream .cat-ess__item:nth-child(5n+1) { grid-column:span 2; }
.p-catalogue .cat-ess__stream .cat-ess__item:nth-child(-n+6) { grid-column:span 3; }
.p-catalogue .cat-ess__stream .cat-ess__btn { display:flex; align-items:center; justify-content:center; height:300px; aspect-ratio:auto; padding:18px; box-sizing:border-box; background:#fff; overflow:hidden; }
.p-catalogue .cat-ess__stream .cat-ess__item:nth-child(-n+6) .cat-ess__btn { height:430px; }
.p-catalogue .cat-ess__stream .cat-ess__btn img { display:block; width:100%; height:100%; object-fit:contain; }
.p-catalogue .cat-ess__cap { border-top:1px solid #e8ecee; padding-top:12px; margin-top:12px; }
@media(max-width:979px) {
 .p-catalogue .cat-ess__stream { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 20px; }
 .p-catalogue .cat-ess__stream .cat-ess__item,.p-catalogue .cat-ess__stream .cat-ess__item:nth-child(n) { grid-column:auto; }
 .p-catalogue .cat-ess__stream .cat-ess__item:nth-child(-n+6) .cat-ess__btn { height:350px; }
}
@media(max-width:600px) {
 .p-catalogue .cat-ess__stream { grid-template-columns:1fr; }
 .p-catalogue .cat-ess__stream .cat-ess__item:nth-child(n) { grid-column:1; }
 .p-catalogue .cat-ess__stream .cat-ess__item:nth-child(n) .cat-ess__btn { height:340px; }
}

/* Cartes blanches, rubans bleus et silhouettes organiques. */
.p-catalogue .cat-ess__stream { gap:34px 28px; }
.p-catalogue .cat-ess__stream .cat-ess__item { background:#fff; border:1px solid #e8edf0; border-radius:5px; box-shadow:0 10px 22px -12px #263c4b45; overflow:hidden; transition:box-shadow .4s; }
.p-catalogue .cat-ess__stream .cat-ess__btn { position:relative; isolation:isolate; padding:58px 28px 24px; background:white; border-radius:0; }
.p-catalogue .cat-ess__stream .cat-ess__item:nth-child(-n+6) .cat-ess__btn { padding:62px 34px 28px; }
.cat-photo-label { position:absolute; z-index:2; top:20px; left:0; padding:10px 26px 10px 18px; border-radius:0 24px 24px 0; background:linear-gradient(110deg,#087eac,#35b5d4); color:white; font-size:11px; letter-spacing:.12em; font-weight:700; text-transform:uppercase; }
.cat-photo-shape { position:absolute; z-index:-1; width:72%; height:66%; top:22%; right:7%; background:#eaf5f8; border-radius:42% 58% 49% 51% / 55% 36% 64% 45%; transform:rotate(-12deg); }
.cat-photo-shape::before,.cat-photo-shape::after { content:""; position:absolute; border-radius:50%; background:#cce8f0; }
.cat-photo-shape::before { width:22px; height:22px; left:-23px; bottom:14%; box-shadow:-18px -27px 0 -4px #b1dce8,-25px -49px 0 -7px #80c5da; }
.cat-photo-shape::after { width:36px; height:36px; right:-10px; top:5%; box-shadow:24px 32px 0 -8px #cce8f0; }
.p-catalogue .cat-ess__item:nth-child(even) .cat-photo-shape { right:20%; transform:rotate(20deg); border-radius:59% 41% 39% 61% / 45% 60% 40% 55%; background:#edf6f8; }
.p-catalogue .cat-ess__item:nth-child(3n) .cat-photo-label { left:auto; right:0; border-radius:24px 0 0 24px; padding:10px 18px 10px 26px; }
.p-catalogue .cat-ess__stream .cat-ess__btn img { position:relative; z-index:1; }
.p-catalogue .cat-ess__cap { margin:0 22px; padding:15px 0; border-top:1px solid #edf1f3; font-size:10px; }
@media(hover:hover) { .p-catalogue .cat-ess__stream .cat-ess__item:hover { box-shadow:0 18px 30px -14px #263c4b55; } }
@media(max-width:600px) { .p-catalogue .cat-ess__stream .cat-ess__item:nth-child(n) .cat-ess__btn { padding:58px 24px 24px; } }
.p-catalogue .cat-ess__head:has(.cat-ess__title--long) { max-width:920px; }
.p-catalogue .cat-ess__title--long { font-size:clamp(30px,3.6vw,54px); line-height:1.12; text-wrap:balance; }
.cat-details { margin-top:24px; max-width:740px; border-top:1px solid #e0e8ed; border-bottom:1px solid #e0e8ed; }
.cat-details summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 0; color:#087eb8; cursor:pointer; list-style:none; font-size:14px; font-weight:600; }
.cat-details summary::-webkit-details-marker { display:none; }
.cat-details summary span { font-size:24px; font-weight:400; transition:transform .25s; }
.cat-details[open] summary span { transform:rotate(45deg); }
.cat-details summary:focus-visible { outline:2px solid #087eb8; outline-offset:4px; }
.cat-details__body { padding:0 0 24px; color:#52636d; font-size:14px; line-height:1.8; }
.cat-details__body h4 { color:#172630; font-size:16px; margin:22px 0 8px; }
.cat-details__body p { margin:0 0 12px; }
