/* ==========================================================================
   CABALION — Portfolio (galerie masonry + filtres) & page projet
   ========================================================================== */
.cab-portfolio{max-width:1180px;margin:0 auto;padding:clamp(40px,7vh,90px) 24px 90px;}
.cab-portfolio-head{margin-bottom:26px;}
.cab-page-title{font-family:var(--font-mono);font-weight:700;text-transform:uppercase;font-size:clamp(2.2rem,6vw,4rem);line-height:.95;color:var(--light);margin:0;}
.cab-portfolio-sub{color:var(--soft);font-family:var(--font-mono);font-size:.9rem;margin:12px 0 0;}

/* Filtres */
.cab-filters{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between;margin-bottom:26px;}
.cab-filter-group{display:flex;flex-wrap:wrap;gap:8px;}
.cab-fbtn{font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--soft);background:transparent;border:1px solid var(--line);padding:9px 16px;border-radius:999px;cursor:pointer;transition:color .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease);}
.cab-fbtn:hover{color:var(--light);border-color:var(--mut);}
.cab-fbtn.is-active{background:var(--light);color:var(--bg-0);border-color:var(--light);}
.cab-filter-group--ctx .cab-fbtn{font-size:.7rem;padding:8px 13px;}

/* Grille masonry */
.cab-grid{column-count:3;column-gap:18px;}
@media(max-width:900px){.cab-grid{column-count:2;}}
@media(max-width:560px){.cab-grid{column-count:1;}}
.cab-proj{position:relative;display:block;width:100%;margin:0 0 18px;border-radius:16px;overflow:hidden;background:var(--bg-1);text-decoration:none;break-inside:avoid;border:1px solid var(--line);}
.cab-proj.is-hidden{display:none;}
.cab-proj-media{position:relative;overflow:hidden;line-height:0;background:var(--bg-2);min-height:120px;}
.cab-proj-media img{width:100%;display:block;transition:transform .6s var(--ease);}
.cab-proj:hover .cab-proj-media img{transform:scale(1.06);}
.cab-proj-info{position:absolute;inset:auto 0 0 0;padding:16px 16px 15px;background:linear-gradient(to top, rgba(6,20,27,.94) 0%, rgba(6,20,27,.55) 55%, rgba(6,20,27,0) 100%);}
.cab-proj-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.cab-badge{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.07em;text-transform:uppercase;padding:4px 9px;border-radius:999px;border:1px solid rgba(204,208,207,.45);color:#CCD0CF;background:rgba(6,20,27,.35);}
.cab-badge--ctx{background:rgba(204,208,207,.92);color:#06141B;border-color:transparent;}
.cab-proj-title{font-family:var(--font-mono);color:#E9ECEB;font-size:1.02rem;font-weight:700;text-transform:uppercase;line-height:1.18;margin:0;}
.cab-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(6,20,27,.55);border:1px solid rgba(204,208,207,.6);transition:background .25s,transform .3s var(--ease);}
.cab-proj:hover .cab-play{transform:translate(-50%,-50%) scale(1.08);background:rgba(6,20,27,.78);}
.cab-play::after{content:'';position:absolute;top:50%;left:55%;transform:translate(-50%,-50%);border-style:solid;border-width:8px 0 8px 14px;border-color:transparent transparent transparent #CCD0CF;}
.cab-empty{text-align:center;color:var(--soft);font-family:var(--font-mono);padding:40px 0;}

/* Page projet */
.cab-single{max-width:900px;margin:0 auto;padding:clamp(34px,6vh,80px) 24px 90px;}
.cab-back{display:inline-block;font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--soft);text-decoration:none;transition:color .2s;}
.cab-back:hover{color:var(--light);}
.cab-single-title{font-family:var(--font-mono);font-size:clamp(1.8rem,5vw,3rem);text-transform:uppercase;color:var(--light);margin:16px 0 26px;line-height:1;}
.cab-single-media{text-align:center;}.cab-single-media img{display:block;width:100%;max-width:760px;height:auto;margin:0 auto;border-radius:16px;}
.cab-embed{position:relative;padding-bottom:56.25%;height:0;border-radius:16px;overflow:hidden;background:var(--bg-2);}
.cab-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.cab-single-content{color:var(--soft);font-size:1.05rem;line-height:1.75;margin-top:28px;max-width:680px;}
.cab-single-content p{margin:0 0 1.2em;}

/* ===== Carrousel projet ===== */
.cab-carousel{position:relative;margin:0 auto;max-width:760px;}
.cab-carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;border-radius:16px;background:var(--bg-1);scrollbar-width:none;-ms-overflow-style:none;}
.cab-carousel-track::-webkit-scrollbar{height:0;width:0;}
.cab-slide{flex:0 0 100%;scroll-snap-align:center;display:flex;align-items:center;justify-content:center;padding:10px;}
.cab-slide img{max-width:100%;max-height:74vh;width:auto;height:auto;border-radius:10px;display:block;}
.cab-car-prev,.cab-car-next{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid var(--mut);background:rgba(6,20,27,.6);color:var(--light);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .2s,border-color .2s;z-index:2;}
.cab-car-prev:hover,.cab-car-next:hover{border-color:var(--soft);background:rgba(6,20,27,.85);}
.cab-car-prev{left:10px;}
.cab-car-next{right:10px;}
.cab-car-dots{display:flex;gap:7px;justify-content:center;margin-top:16px;flex-wrap:wrap;}
.cab-car-dot{width:8px;height:8px;border-radius:50%;background:var(--mut);border:0;cursor:pointer;padding:0;transition:background .2s,transform .2s;}
.cab-car-dot.is-active{background:var(--light);transform:scale(1.3);}
.cab-embed--second{margin-top:18px;}

/* Indicateur multi-images (carrousel) */
.cab-multi{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:#E9ECEB;background:rgba(6,20,27,.6);border:1px solid rgba(204,208,207,.4);padding:5px 10px;border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2;line-height:1;}
.cab-multi svg{width:14px;height:14px;display:block;}

/* ===== Page Événement ===== */
.cab-event-single{max-width:920px;}
.cab-event-eyebrow{display:inline-block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin:14px 0 0;}
.cab-event{margin-top:14px;}
.cab-event-intro{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;color:var(--soft);margin:0 0 44px;}
.cab-event-sec{margin:0 0 56px;}
.cab-event-h2{font-family:var(--font-mono);text-transform:uppercase;color:var(--light);font-size:clamp(1.2rem,2.6vw,1.7rem);letter-spacing:.02em;margin:0 0 22px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.cab-event-figure{margin:0;}
.cab-event-figure img{width:100%;max-width:520px;height:auto;border-radius:14px;display:block;margin:0 auto;}
.cab-event-quote{margin:0;font-size:clamp(1.05rem,2.2vw,1.3rem);line-height:1.65;color:var(--light);font-weight:300;border-left:3px solid var(--soft);padding:4px 0 4px 24px;}
.cab-event-row{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;margin:0 0 26px;}
.cab-event-row--rev .cab-event-row-media{order:2;}
.cab-event-row-media img{width:100%;height:100%;max-height:400px;object-fit:cover;border-radius:14px;display:block;}
.cab-event-row-text h3{font-family:var(--font-mono);color:var(--light);font-size:1.02rem;text-transform:uppercase;margin:0 0 12px;line-height:1.3;}
.cab-event-row-text p{color:var(--soft);line-height:1.7;margin:0;font-size:.98rem;}
@media(max-width:700px){.cab-event-row{grid-template-columns:1fr;}.cab-event-row--rev .cab-event-row-media{order:0;}}
.cab-single-link{margin:24px 0 0;}

.cab-proj-video{width:100%;display:block;}
.cab-video{width:100%;height:auto;display:block;border-radius:16px;background:var(--bg-2);}
.cab-video + .cab-video{margin-top:18px;}
