/* GC — Gallery ★  (handle: msw-gc-gallery) */
.gcg{
  --gcg-gold:#b8953a; --gcg-ink:#1c1914;
  --gcg-cols:4; --gcg-gap:12px; --gcg-r:14px; --gcg-row:190px;
  --gcg-ratio:1; --gcg-slide:300px; --gcg-ov:.55;
  --serif:'Cormorant Garamond','Times New Roman',Georgia,serif;
  --sans:'Montserrat','Helvetica Neue',Helvetica,Arial,sans-serif;
  font-family:var(--sans);
}
.gcg *{box-sizing:border-box}

/* Header */
.gcg__head{margin:0 auto 26px;max-width:720px}
.gcg__head--center{text-align:center}
.gcg__head--left{text-align:left;margin-left:0}
.gcg__eyebrow{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gcg-gold);font-weight:700}
.gcg__title{font-family:var(--serif);font-size:34px;line-height:1.15;color:var(--gcg-ink);font-weight:600;margin:.35em 0 .25em}
.gcg__sub{font-size:15px;color:#6b6255;line-height:1.6;margin:0}

/* Shared tile */
.gcg__item{position:relative;overflow:hidden;border-radius:var(--gcg-r);display:block;text-decoration:none;background:#efe7d6}
.gcg__img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.gcg__img--zoom:hover{transform:scale(1.07)}
.gcg__item:hover .gcg__img--zoom{transform:scale(1.07)}
.gcg__color{width:100%;height:100%;min-height:100%}
.gcg__ph{width:100%;height:100%;min-height:150px;display:flex;align-items:center;justify-content:center;color:#c9bda0;background:#efe7d6}
.gcg__ph svg{width:34px;height:34px}
.gcg__panel{width:100%;height:100%;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 20px;gap:8px}
.gcg__panel-h{font-family:var(--serif);font-size:23px;line-height:1.2;font-weight:600;letter-spacing:.5px}
.gcg__panel-s{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;opacity:.9}
.gcg__cap{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;
  background:linear-gradient(to top,rgba(20,15,10,var(--gcg-ov)),transparent);
  color:#fff;font-size:13px;font-weight:600;letter-spacing:.3px}

/* Reveal */
.gcg [data-gcg-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.gcg [data-gcg-reveal].is-in{opacity:1;transform:none}

/* ── Mosaic collage ── */
.gcg--mosaic .gcg__grid{
  display:grid;grid-template-columns:repeat(var(--gcg-cols),1fr);
  grid-auto-rows:var(--gcg-row);grid-auto-flow:dense;gap:var(--gcg-gap)}
.gcg--mosaic .is-wide{grid-column:span 2}
.gcg--mosaic .is-tall{grid-row:span 2}
.gcg--mosaic .is-large{grid-column:span 2;grid-row:span 2}

/* ── Masonry (Pinterest) ── */
.gcg--masonry .gcg__grid{column-count:var(--gcg-cols);column-gap:var(--gcg-gap)}
.gcg--masonry .gcg__item{break-inside:avoid;-webkit-column-break-inside:avoid;margin-bottom:var(--gcg-gap);width:100%}
.gcg--masonry .gcg__img{height:auto}
.gcg--masonry .gcg__panel,.gcg--masonry .gcg__color,.gcg--masonry .gcg__ph{min-height:190px}

/* ── Uniform grid ── */
.gcg--grid .gcg__grid{display:grid;grid-template-columns:repeat(var(--gcg-cols),1fr);gap:var(--gcg-gap)}
.gcg--grid .gcg__item{aspect-ratio:var(--gcg-ratio)}

/* ── Carousel ── */
.gcg--carousel .gcg__carousel-wrap{position:relative}
.gcg--carousel .gcg__track{display:flex;gap:var(--gcg-gap);overflow-x:auto;scroll-behavior:smooth;
  scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none}
.gcg--carousel .gcg__track::-webkit-scrollbar{display:none}
.gcg--carousel .gcg__item{flex:0 0 var(--gcg-slide);scroll-snap-align:start;aspect-ratio:var(--gcg-ratio,1)}
.gcg--carousel .gcg__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(255,255,255,.92);color:var(--gcg-ink);box-shadow:0 6px 20px rgba(29,25,19,.2);
  display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}
.gcg--carousel .gcg__nav:hover{background:var(--gcg-gold);color:#fff}
.gcg--carousel .gcg__nav svg{width:20px;height:20px}
.gcg--carousel .gcg__nav--prev{left:-6px}
.gcg--carousel .gcg__nav--next{right:-6px}

/* Responsive */
@media(max-width:900px){
  .gcg{--gcg-cols:3}
  .gcg__title{font-size:28px}
}
@media(max-width:600px){
  .gcg{--gcg-cols:2;--gcg-row:150px}
  .gcg--mosaic .is-large{grid-column:span 2;grid-row:span 2}
  .gcg--mosaic .is-wide{grid-column:span 2}
  .gcg__title{font-size:24px}
  .gcg--carousel .gcg__nav--prev{left:2px}
  .gcg--carousel .gcg__nav--next{right:2px}
}
