/* ============================================================
   JDW Masonry Gallery Widget
   ============================================================ */

.jdw-masonry-section{
  background:#1A1816;
  padding:80px 40px;
}

/* ---------- Heading ---------- */
.jdw-masonry-head{
  max-width:840px;
  margin:0 auto 50px;
}
.jdw-masonry-head.jdw-align-center{ text-align:center; }
.jdw-masonry-head.jdw-align-left  { text-align:left;  margin-left:0; }
.jdw-masonry-head.jdw-align-right { text-align:right; margin-right:0; }

.jdw-masonry-eyebrow{
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:500; letter-spacing:.34em;
  text-transform:uppercase; color:#A8884C;
  margin:0 0 16px;
}
.jdw-masonry-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(28px,4vw,42px); font-weight:500;
  color:#F7F4ED;
  margin:0 0 14px; letter-spacing:.01em; line-height:1.2;
}
.jdw-masonry-subtitle{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-style:italic; font-size:18px;
  color:rgba(247,244,237,.7);
  margin:0; line-height:1.6;
}

/* ---------- Masonry grid (CSS columns) ---------- */
.jdw-masonry{
  column-count:3;
  column-gap:24px;
  max-width:1400px;
  margin:0 auto;
}
.jdw-masonry figure{
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  margin:0 0 24px;
  display:block;
}

/* Trigger wrapper (button or anchor — no default styling) */
.jdw-mas-trigger,
.jdw-masonry figure > a{
  background:none;
  border:0;
  padding:0;
  margin:0;
  width:100%;
  cursor:pointer;
  display:block;
  text-decoration:none;
  overflow:hidden;
}

.jdw-masonry img{
  width:100%;
  height:auto;
  display:block;
  transition:transform .6s ease, filter .35s ease, opacity .35s ease;
}

/* Hover effects */
.jdw-hover-zoom .jdw-masonry figure:hover img{ transform:scale(1.04); }
.jdw-hover-bright .jdw-masonry figure:hover img{ filter:brightness(1.12); }
.jdw-hover-dim:hover .jdw-masonry figure img{ opacity:.55; }
.jdw-hover-dim .jdw-masonry figure:hover img{ opacity:1; }

.jdw-masonry figcaption{
  font-family:'Montserrat',sans-serif;
  font-size:10px;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#C9B98F;
  margin-top:12px;
  line-height:1.5;
}

/* ---------- Lightbox ---------- */
.jdw-lb{
  position:fixed;
  inset:0;
  z-index:10000;
  background:rgba(10,9,8,.95);
  display:none;
  align-items:center;
  justify-content:center;
  padding:60px 80px;
}
.jdw-lb.is-open{ display:flex; }

.jdw-lb-figure{
  max-width:1100px;
  max-height:100%;
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
}
.jdw-lb-figure img{
  max-width:100%;
  max-height:calc(100vh - 180px);
  object-fit:contain;
  display:block;
}
.jdw-lb-caption{
  font-family:'Montserrat',sans-serif;
  font-size:11px;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#C9B98F;
  text-align:center;
  margin:0;
}
.jdw-lb-caption:empty{ display:none; }

.jdw-lb-btn{
  position:absolute;
  background:transparent;
  border:0;
  color:#F7F4ED;
  cursor:pointer;
  padding:10px 14px;
  transition:color .25s ease, transform .25s ease;
  line-height:1;
}
.jdw-lb-btn:hover{ color:#A8884C; }

.jdw-lb-close{
  top:24px;
  right:30px;
  font-size:32px;
  font-weight:200;
}
.jdw-lb-prev,
.jdw-lb-next{
  top:50%;
  transform:translateY(-50%);
  font-size:26px;
  width:54px;
  height:54px;
  border:1px solid rgba(247,244,237,.2);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.jdw-lb-prev:hover,
.jdw-lb-next:hover{
  border-color:#A8884C;
  transform:translateY(-50%) scale(1.05);
}
.jdw-lb-prev{ left:30px; }
.jdw-lb-next{ right:30px; }

body.jdw-lb-open{ overflow:hidden; }

/* ---------- Responsive ---------- */
@media (max-width:780px){
  .jdw-masonry-section{ padding:60px 20px; }
  .jdw-masonry-head{ margin-bottom:36px; }
  .jdw-masonry figcaption{ font-size:9px; letter-spacing:.22em; }
  .jdw-lb{ padding:50px 16px; }
  .jdw-lb-close{ top:14px; right:14px; font-size:28px; }
  .jdw-lb-prev{ left:8px; }
  .jdw-lb-next{ right:8px; }
  .jdw-lb-prev, .jdw-lb-next{ width:42px; height:42px; font-size:20px; }
}

@media (max-width:480px){
  .jdw-masonry-section{ padding:50px 16px; }
  .jdw-lb-figure img{ max-height:calc(100vh - 140px); }
}

@media (prefers-reduced-motion: reduce){
  .jdw-masonry img,
  .jdw-lb-btn{
    transition:none;
  }
}
