.visual-gallery{
  margin-top:40px;
  padding:28px;
  border-radius:18px;
  background:rgba(246,244,251,0.03);
  border:1px solid var(--line, rgba(246,244,251,0.14));
}
.visual-gallery-title{
  font-size:clamp(20px,2.4vw,26px);
  text-transform:uppercase; line-height:1.1;
  margin-bottom:8px;
}
.visual-gallery-hint{
  font-size:13px; color:var(--grey-dim, rgba(248,250,252,0.52));
  margin-bottom:22px;
}

.visual-gallery-grid{
  display:grid;
  gap:10px;
  grid-auto-flow:dense;
}
.visual-gallery-item{
  margin:0; position:relative; overflow:hidden;
  border-radius:12px;
  background:#0c0e10;
  box-shadow:
    0 12px 28px -12px rgba(0,0,0,0.55),
    0 0 0 1px rgba(56,189,248,0.14);
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s;
}
.visual-gallery-item:hover{
  transform:translateY(-3px);
  box-shadow:
    0 20px 40px -14px rgba(0,0,0,0.65),
    0 0 0 1px rgba(56,189,248,0.35);
}
.visual-gallery-thumb{
  width:100%; height:100%; min-height:140px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; cursor:zoom-in;
  background:linear-gradient(180deg, #0c0e10, #060708);
}
.visual-gallery-thumb img{
  width:100%; height:100%;
  object-fit:cover; object-position:top center;
  display:block; transition:transform .45s cubic-bezier(.2,.7,.3,1);
}
.visual-gallery-item:hover .visual-gallery-thumb img{transform:scale(1.03);}
.visual-gallery-item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:28px 12px 10px;
  font-size:11px; line-height:1.4;
  color:rgba(26,15,24,0.92);
  background:linear-gradient(transparent, rgba(8,6,14,0.88));
  pointer-events:none;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}

/* 2 images — side by side */
.visual-gallery-grid[data-count="2"]{
  grid-template-columns:1fr 1fr;
  grid-template-rows:minmax(200px, 260px);
}
.visual-gallery-grid.visual-gallery-large[data-count="2"]{
  grid-template-rows:minmax(320px, 420px);
  gap:16px;
}
.visual-gallery-large .visual-gallery-thumb{min-height:320px;}
.visual-gallery-large .visual-gallery-thumb img{
  object-fit:contain;
  padding:10px;
}

/* 3 images — hero left, two stacked right */
.visual-gallery-grid[data-count="3"]{
  grid-template-columns:1.15fr 1fr;
  grid-template-rows:repeat(2, minmax(130px, 180px));
}
.visual-gallery-grid[data-count="3"] .visual-gallery-item:first-child{grid-row:span 2;}

/* 4 images — 2×2 */
.visual-gallery-grid[data-count="4"]{
  grid-template-columns:1fr 1fr;
  grid-template-rows:repeat(2, minmax(160px, 220px));
}

/* 5 images — wide hero on top, three below */
.visual-gallery-grid[data-count="5"]{
  grid-template-columns:repeat(3, 1fr);
  grid-template-rows:minmax(180px, 240px) minmax(140px, 190px);
}
.visual-gallery-grid[data-count="5"] .visual-gallery-item:first-child{grid-column:span 2;}

/* 6 images — 3×2 mosaic */
.visual-gallery-grid[data-count="6"]{
  grid-template-columns:repeat(3, 1fr);
  grid-template-rows:repeat(2, minmax(150px, 200px));
}

@media (max-width:700px){
  .visual-gallery{padding:20px 16px;}
  .visual-gallery-grid[data-count="2"],
  .visual-gallery-grid[data-count="4"]{
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
  }
  .visual-gallery-grid[data-count="3"]{
    grid-template-columns:1fr 1fr;
    grid-template-rows:minmax(160px, 200px) minmax(120px, 150px);
  }
  .visual-gallery-grid[data-count="3"] .visual-gallery-item:first-child{
    grid-row:span 1; grid-column:span 2;
  }
  .visual-gallery-grid[data-count="5"],
  .visual-gallery-grid[data-count="6"]{
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
  }
  .visual-gallery-grid[data-count="5"] .visual-gallery-item:first-child{grid-column:span 2;}
  .visual-gallery-thumb{min-height:120px;}
}

/* Simple row — no gallery frame, captions below */
.visual-row{margin-top:40px;}
.visual-row-title{
  font-size:clamp(20px,2.4vw,26px);
  text-transform:uppercase; line-height:1.1;
  margin-bottom:8px;
}
.visual-row-hint{
  font-size:13px; color:var(--grey-dim, rgba(248,250,252,0.52));
  margin-bottom:22px;
}
.visual-row-grid{
  display:flex;
  gap:24px;
  align-items:flex-start;
}
.visual-row-item{
  flex:1; min-width:0; margin:0;
}
.visual-row-item img{
  width:100%; height:auto; display:block;
  border-radius:14px; cursor:zoom-in;
  box-shadow:
    0 20px 44px -18px rgba(0,0,0,0.65),
    0 0 0 1px rgba(56,189,248,0.12);
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s;
}
.visual-row-item:hover img{
  transform:translateY(-4px);
  box-shadow:
    0 28px 52px -16px rgba(0,0,0,0.7),
    0 0 0 1px rgba(56,189,248,0.35);
}
.visual-row-item figcaption{
  position:static;
  margin-top:14px; padding:0;
  font-size:12.5px; line-height:1.5;
  color:var(--grey-dim, rgba(248,250,252,0.52));
  text-align:center;
  background:none;
  pointer-events:auto;
  display:block;
  -webkit-line-clamp:unset;
}
@media (max-width:700px){
  .visual-row-grid{flex-direction:column; gap:32px;}
}
.visual-row-grid.visual-row-stack{
  flex-direction:column;
  gap:48px;
  max-width:760px;
  margin:0 auto;
}
.visual-row-stack .visual-row-item{
  flex:none; width:100%;
}
