/* 앨범 공통 — 그리드(3열 정사각 · 사진 사이 여백 없음)와 「좌우 여백까지 꽉 채우기」.
   감싸개 `.is-full` 이 그리드다. 세 유형 모두 꽉 채우면 `.is-bleed`, 아니면 `.is-inset` 이 붙는다
   (08~10 의 슬라이드는 감싸개가 없어 사진 줄 `.gal--slide` 에 `is-bleed` 만 직접 붙는다).
   템플릿은 감싸개에 `--gal-bleed`(섹션 좌우 여백 한 개 분량)만 준다.
   ⚠ 좌우 마진은 반드시 같아야 한다 — 한쪽만 넘치면 문서가 넓어져 모바일에서 지면이 흔들린다. */
.gal-wrap.is-full, .gallery-wrap.is-full{ align-self:stretch; width:auto; max-width:none; }
/* 그리드·비정형 — 꽉 채우면 섹션 여백만큼 양쪽으로 편다. */
.gal-wrap.is-bleed:not(.is-slide), .gallery-wrap.is-bleed:not(.is-slide){
  align-self:stretch; width:auto; max-width:none;
  margin-left:calc(var(--gal-bleed, 0px) * -1); margin-right:calc(var(--gal-bleed, 0px) * -1);
}
/* 슬라이드 — 꽉 채우면 **사진 한 장이 지면 폭을 다 쓴다**(옆 카드가 비치는 여백 · 간격 · 축소를 걷는다).
   끄면 템플릿의 원래 카드 캐러셀(가운데 카드 66% + 양옆이 비치는 모양) 그대로다.
   ⚠ 사진 줄은 템플릿이 원래부터 지면 끝까지 편다 — 여기서는 줄 안쪽만 바꾼다.
   ⚠ 01~07 은 감싸개(`.is-slide.is-bleed`), 08~10 은 감싸개가 없어 사진 줄에 `is-bleed` 가 직접 붙는다. */
.is-slide.is-bleed .gal--slide, .is-slide.is-bleed .gallery--slide, .gal--slide.is-bleed{
  gap:0; padding-left:0; padding-right:0;
}
.is-slide.is-bleed .gal--slide img, .is-slide.is-bleed .gallery--slide img{
  flex:0 0 100%; width:100%; transform:none; opacity:1;
}
.gal--slide.is-bleed .gs{ flex:0 0 100%; width:100%; margin-top:0; }
/* 접힌 앨범의 아래 끝은 **그러데이션 없이 그대로 자른다**(전 템플릿 · 더보기 버튼이 "더 있다"를 알린다 · 2026-10-17 지시).
   ⚠ 마스크로 흐리는 처리를 되살리지 말 것 — 템플릿마다 있던 것을 모두 걷었다. */
/* 기본(고객이 줄 수를 안 정했을 때) — 정확히 세 줄(= 지면 폭, 1:1)에서 자른다. 그리드·비정형 모두 같다(2026-10-17 지시).
   예전에는 그리드가 3.4줄이라 넷째 줄 머리가 비쳤다 — 편집기의 "기본 3줄"과 어긋났다. 더 있다는 건 더보기 버튼이 알린다.
   더보기 스크립트는 접힌 실제 높이(clientHeight)와 견주므로 이 값과 상관없이 맞는다(각 템플릿 check()). */
.gal-wrap:not([data-fold]):not(.expanded):not(.is-slide),
.gallery-wrap:not([data-fold]):not(.expanded):not(.is-slide){
  max-height:none !important; aspect-ratio:1/1 !important; overflow:hidden !important;   /* 템플릿마다 제 max-height 상수가 있어 !important 로 이긴다 */
}
/* 앨범 접기 — 고객이 고른 값(wedding_project.gallery_fold_rows)은 감싸개의 `data-fold` 로 온다. 속성이 없으면(기본) 위·템플릿의 접힘 그대로다.
   - `all` : 접지 않는다. 더보기 버튼도 뜨지 않는다 — 각 템플릿 check() 는 **접힌 상태의 실제 높이**를 재므로 접힘만 풀면 스스로 버튼을 감춘다.
   - 2~6   : 정사각 한 줄(= 지면 폭의 1/3)이 N 개 높이만큼만 보인다 — 감싸개에 `--gal-fold-ar: 3 / N`(서버가 준다)을 두고 aspect-ratio 로 자른다.
             비정형도 같은 높이로 자른다(폭이 바뀌어도 줄 수는 그대로다). 사진이 그 높이 안에 다 들어가면 check() 가 접힘을 풀고 버튼을 감춘다.
   ⚠ 템플릿마다 접힘 규칙(max-height 상수)이 달라 !important 로 이긴다. `.expanded`(펼친 상태)에는 걸리지 않는다. */
.gal-wrap[data-fold="all"], .gallery-wrap[data-fold="all"], .gal-fold[data-fold="all"]{
  max-height:none !important; aspect-ratio:auto !important; overflow:visible !important;
}
.gal-wrap[data-fold]:not([data-fold="all"]):not(.expanded):not(.is-slide),
.gallery-wrap[data-fold]:not([data-fold="all"]):not(.expanded):not(.is-slide),
.gal-fold[data-fold]:not([data-fold="all"]):not(.expanded){
  max-height:none !important; aspect-ratio:var(--gal-fold-ar) !important; overflow:hidden !important;
}
.gal.gal--full, .gallery.gallery--full{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
  width:100%; margin:0; padding:0;   /* 위 간격은 감싸개가 진다 — 안에 두면 접힌 정사각에서 셋째 줄이 잘린다 */
}
.gal.gal--full img, .gallery.gallery--full img{
  display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover;
  margin:0; border:0; border-radius:0; box-shadow:none; cursor:zoom-in;
}

/* 비정형 — 좌우 꽉(`is-bleed`)을 고르면 **그리드처럼 사진 사이 간격도 없다**(2026-10-10).
   스크립트(`_masonry.jspf`)가 단·행 크기를 계산된 column-gap/padding 에서 읽으므로 CSS 만 0 으로 주면 맞물림도 따라온다.
   끄면(`is-inset`) 템플릿의 원래 간격 그대로다. */
.gal-wrap.is-bleed .gal--masonry, .gallery-wrap.is-bleed .gallery--masonry{
  column-gap:0 !important; row-gap:0 !important; padding-left:0 !important; padding-right:0 !important;
}
.gal-wrap.is-bleed .gal--masonry img, .gallery-wrap.is-bleed .gallery--masonry img{ margin-bottom:0 !important; }
