/* ============================================================
   PAGE — WEDDINGS (portfolio + filterable gallery)
   ============================================================ */

.wed-filter{
  display:flex; flex-wrap:wrap; gap:.6rem 1rem;
  align-items:center; justify-content:space-between;
  padding-bottom: clamp(1.4rem,3vw,2.2rem);
  border-bottom:1px solid var(--line);
  margin-bottom: clamp(1.8rem,4vw,3.2rem);
}
.wed-filter__count{ font-size:var(--t-xs); letter-spacing:.2em; text-transform:uppercase; color:var(--text-mut); }

/* ---------------- Story list ---------------- */
.wed-list{ display:grid; gap: clamp(2.6rem, 7vw, 7rem); }

.wed-item{
  display:grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr);
  gap: clamp(1.4rem,4vw,4rem); align-items:center;
}
.wed-item:nth-child(even){ grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); }
.wed-item:nth-child(even) .wed-item__media{ order:2; }
@media (max-width:900px){
  .wed-item, .wed-item:nth-child(even){ grid-template-columns:1fr; gap:1.4rem; }
  .wed-item:nth-child(even) .wed-item__media{ order:0; }
}

.wed-item.is-hidden{ display:none; }

.wed-item__media{ position:relative; overflow:hidden; border-radius: var(--r-lg); display:block; }
.wed-item__media .frame{ aspect-ratio: 4/3; border-radius: var(--r-lg); }
@media (max-width:900px){ .wed-item__media .frame{ aspect-ratio: 4/5; } }

.wed-item__idx{
  position:absolute; top: clamp(.9rem,2vw,1.6rem); left: clamp(.9rem,2vw,1.6rem); z-index:3;
  font-family:var(--f-mono); font-size:var(--t-xs); letter-spacing:.2em;
  color:#fff; background: rgba(12,10,9,.42);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  padding:.45em .85em; border-radius: var(--r-pill);
  border:1px solid rgba(255,255,255,.2);
}

.wed-item__body{ display:grid; gap:1rem; align-content:center; }
.wed-item__tags{ display:flex; flex-wrap:wrap; gap:.5rem; }
.wed-item h2{
  font-size: clamp(1.75rem, 4vw, 3.1rem); line-height:1.04;
  transition: color .4s var(--e-out);
}
.wed-item__media:hover ~ .wed-item__body h2,
.wed-item__body:hover h2{ color: var(--accent); }
.wed-item__place{
  font-size:var(--t-xs); letter-spacing:.2em; text-transform:uppercase; color:var(--text-mut);
}
.wed-item__note{ color: var(--text-soft); max-width: 46ch; }
.wed-item__facts{
  display:flex; flex-wrap:wrap; gap:.8rem 2rem; margin-top:.5rem;
  padding-top:1.1rem; border-top:1px solid var(--line-soft);
}
.wed-item__fact{ display:grid; gap:.2rem; }
.wed-item__fact .k{ font-size:9.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--text-mut); }
.wed-item__fact .v{ font-family:var(--f-display); font-size:var(--t-base); }

/* ---------------- Masonry gallery ---------------- */
.masonry{
  columns: 4; column-gap: clamp(.7rem,1.4vw,1.2rem);
}
@media (max-width:1180px){ .masonry{ columns:3; } }
@media (max-width:800px){  .masonry{ columns:2; } }
@media (max-width:480px){  .masonry{ columns:1; } }

.masonry__item{
  break-inside: avoid; margin-bottom: clamp(.7rem,1.4vw,1.2rem);
  border-radius: var(--r-sm); overflow:hidden; cursor:pointer;
  position:relative; display:block;
}
.masonry__item img{ width:100%; height:auto; display:block; transition: transform 1.1s var(--e-out); }
.masonry__item:hover img{ transform: scale(1.045); }
.masonry__item .mask{
  position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(180deg, transparent 55%, rgba(10,8,7,.5));
  opacity:0; transition: opacity .45s var(--e-out);
}
.masonry__item:hover .mask{ opacity:1; }
.masonry__item.is-hidden{ display:none; }

/* ---------------- Coverage strip ---------------- */
.cover-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: clamp(1rem,2vw,1.8rem); }
@media (max-width:900px){ .cover-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .cover-grid{ grid-template-columns:1fr; } }
.cover-cell{
  padding: clamp(1.2rem,2.2vw,1.8rem); border:1px solid var(--line-soft);
  border-radius: var(--r-md); background: var(--surface);
  display:grid; align-content:start; gap:.5rem; height:100%;
}
.cover-cell h4{ margin-bottom:.5rem; }
.cover-cell p{ font-size:var(--t-sm); color:var(--text-mut); }
