.rfl-gallery{
    background:#fff;
    color:var(--rfl-ink);
    padding:140px 0;
    position:relative;
}

.rfl-gallery__head{
    max-width:1400px;
    margin:0 auto 80px;
}
.rfl-gallery__head-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    flex-wrap:wrap;
    margin-bottom:30px;
}
.rfl-gallery__count{
    display:inline-flex;
    align-items:baseline;
    gap:10px;
    color:var(--rfl-ink-60);
    font-size:11px;
    letter-spacing:.28em;
    text-transform:uppercase;
}
.rfl-gallery__count span:first-child{
    font-family:var(--rfl-serif);
    font-style:italic;
    font-size:30px;
    color:var(--rfl-gold);
    letter-spacing:0;
}
.rfl-gallery__title{margin:0 0 28px;color:var(--rfl-ink);max-width:18ch;}
.rfl-gallery__title em{font-style:italic;color:var(--rfl-gold);}
.rfl-gallery__lead{margin:0;color:var(--rfl-ink-60);max-width:60ch;}

.rfl-gallery__filters{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:38px;
    padding-top:34px;
    border-top:1px solid var(--rfl-line);
}
.rfl-gallery__filter{
    appearance:none;
    background:transparent;
    border:1px solid var(--rfl-line);
    color:var(--rfl-ink);
    padding:10px 22px;
    border-radius:999px;
    font-family:var(--rfl-sans);
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    cursor:pointer;
    transition:all .35s var(--rfl-ease);
}
.rfl-gallery__filter:hover{border-color:var(--rfl-gold);color:var(--rfl-gold);}
.rfl-gallery__filter.is-active{
    background:var(--rfl-ink);
    border-color:var(--rfl-ink);
    color:#fff;
}

.rfl-gallery__item.is-dim{opacity:.18;filter:saturate(.4);pointer-events:none;}

/* The bento grid — clean 12-col, 3 rows: 7+5 / 4+4+4 / 5+7 */
.rfl-gallery__grid{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    grid-auto-rows:200px;
    gap:18px;
}

.rfl-gallery__item{
    position:relative;
    overflow:hidden;
    border-radius:var(--rfl-radius-m);
    background:#f6f3ec;
    text-decoration:none;
    color:#fff;
    cursor:zoom-in;
    transform:translateZ(0);
    box-shadow:0 30px 50px -34px rgba(0,0,0,.2);
}
.rfl-gallery__item img,
.rfl-gallery__video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform 1.4s var(--rfl-ease),filter .8s var(--rfl-ease);
}
.rfl-gallery__item:hover img,
.rfl-gallery__item:hover .rfl-gallery__video{
    transform:scale(1.06);
    filter:brightness(.78);
}

.rfl-gallery__item--lg{grid-column:span 7;grid-row:span 2;}
.rfl-gallery__item--md{grid-column:span 5;grid-row:span 2;}
.rfl-gallery__item--sm{grid-column:span 4;grid-row:span 2;}

.rfl-gallery__overlay{
    position:absolute;
    inset:auto 0 0 0;
    padding:28px 26px 24px;
    display:flex;
    align-items:flex-end;
    gap:14px;
    background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));
    transform:translateY(20%);
    opacity:0;
    transition:transform .6s var(--rfl-ease),opacity .6s var(--rfl-ease);
}
.rfl-gallery__item:hover .rfl-gallery__overlay{transform:translateY(0);opacity:1;}

.rfl-gallery__tag{
    display:inline-block;
    padding:6px 12px;
    background:var(--rfl-gold);
    color:var(--rfl-ink);
    border-radius:999px;
    font-size:10px;
    font-weight:600;
    letter-spacing:.22em;
    text-transform:uppercase;
}
.rfl-gallery__label{
    flex:1;
    font-family:var(--rfl-serif);
    font-size:24px;
    font-weight:500;
    color:#fff;
}
.rfl-gallery__icon{
    width:42px;height:42px;
    display:grid;place-items:center;
    border:1px solid rgba(255,255,255,.4);
    border-radius:50%;
    color:#fff;
    transition:background .35s var(--rfl-ease),color .35s var(--rfl-ease);
}
.rfl-gallery__icon svg{width:18px;height:18px;}
.rfl-gallery__item:hover .rfl-gallery__icon{
    background:var(--rfl-gold);
    border-color:var(--rfl-gold);
    color:var(--rfl-ink);
}
.rfl-gallery__icon--play svg{margin-left:2px;}

/* Video-specific tile additions */
.rfl-gallery__item--video{cursor:default;}
.rfl-gallery__item--video::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(0,0,0,.18),transparent 30%,transparent 70%,rgba(0,0,0,.35));
    z-index:1;
    pointer-events:none;
}
.rfl-gallery__item--video .rfl-gallery__overlay{z-index:2;}
.rfl-gallery__live{
    position:absolute;
    top:18px;left:18px;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:7px 14px;
    background:rgba(0,0,0,.7);
    backdrop-filter:blur(8px);
    color:#fff;
    border-radius:999px;
    font-family:var(--rfl-sans);
    font-size:10px;
    font-weight:600;
    letter-spacing:.28em;
    text-transform:uppercase;
}
.rfl-gallery__live-dot{
    width:8px;height:8px;
    border-radius:50%;
    background:#ff4d4d;
    box-shadow:0 0 0 0 rgba(255,77,77,.6);
    animation:rflGalleryLive 1.6s ease-out infinite;
}
@keyframes rflGalleryLive{
    0%{box-shadow:0 0 0 0 rgba(255,77,77,.6);}
    70%{box-shadow:0 0 0 12px rgba(255,77,77,0);}
    100%{box-shadow:0 0 0 0 rgba(255,77,77,0);}
}

/* Lightbox — kept dark for image viewing */
.rfl-gallery__lightbox{
    position:fixed;
    inset:0;
    z-index:9999;
    background:rgba(0,0,0,.92);
    display:none;
    align-items:center;
    justify-content:center;
    padding:60px;
}
.rfl-gallery__lightbox.is-open{display:flex;}
.rfl-gallery__lb-figure{
    margin:0;
    max-width:1200px;
    width:100%;
    max-height:84vh;
    display:flex;
    align-items:center;
    justify-content:center;
}
.rfl-gallery__lb-figure img{
    max-width:100%;
    max-height:84vh;
    object-fit:contain;
    border-radius:var(--rfl-radius-m);
}
.rfl-gallery__lb-close,
.rfl-gallery__lb-nav{
    position:absolute;
    width:54px;height:54px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.3);
    background:transparent;
    color:#fff;
    display:grid;
    place-items:center;
    cursor:pointer;
    transition:background .35s var(--rfl-ease),border-color .35s var(--rfl-ease);
}
.rfl-gallery__lb-close{top:30px;right:30px;}
.rfl-gallery__lb-nav--prev{left:30px;top:50%;transform:translateY(-50%);}
.rfl-gallery__lb-nav--next{right:30px;top:50%;transform:translateY(-50%);}
.rfl-gallery__lb-close:hover,
.rfl-gallery__lb-nav:hover{background:var(--rfl-gold);border-color:var(--rfl-gold);color:var(--rfl-ink);}
.rfl-gallery__lb-close svg,
.rfl-gallery__lb-nav svg{width:22px;height:22px;}

@media (max-width:1024px){
    .rfl-gallery{padding:100px 0;}
    .rfl-gallery__grid{grid-auto-rows:160px;}
    .rfl-gallery__item--lg{grid-column:span 12;grid-row:span 2;}
    .rfl-gallery__item--md{grid-column:span 6;grid-row:span 2;}
    .rfl-gallery__item--sm{grid-column:span 6;grid-row:span 2;}
}
@media (max-width:560px){
    .rfl-gallery__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px;gap:10px;}
    .rfl-gallery__item--lg,
    .rfl-gallery__item--md,
    .rfl-gallery__item--sm{grid-column:span 2;grid-row:span 2;}
    .rfl-gallery__overlay{transform:none;opacity:1;}
    .rfl-gallery__lb-close,
    .rfl-gallery__lb-nav{width:46px;height:46px;}
    .rfl-gallery__lb-close{top:18px;right:18px;}
    .rfl-gallery__lb-nav--prev{left:14px;}
    .rfl-gallery__lb-nav--next{right:14px;}
    .rfl-gallery__live{top:12px;left:12px;font-size:9px;padding:5px 10px;}
}
