/* 코어 위젯 래퍼(.xe-widget-wrapper)의 overflow:hidden이 full-bleed 위젯
   (calc(50%-50vw) 브레이크아웃: 히어로·온라인예배)을 콘텐츠 폭으로 페인트-클리핑해
   양옆에 흰 기둥이 생긴다(레이아웃 rect는 정상이라 측정으론 안 잡힘 — 픽셀 검증으로 발견).
   홈 조립 래퍼에 한해 해제. 가로 오버플로는 html{overflow-x:clip}이 최종 차단. */
.ch-home .xe-widget-wrapper {
	overflow: visible;
}

/* 홈 전용: 환영+설교를 감싸는 전폭 테마 배경밴드. 두 위젯은 자체 배경을 버리고(T5)
   이 밴드 위에 투명 콘텐츠로 앉는다 — white→dark→white 급전환 해소. */
.ch-band {
	position: relative;
	/* 자체 스태킹 컨텍스트 — ::before(z1) 오버레이가 밖으로 새어 히어로(z1)와 경합하지 않게 봉인.
	   밴드(z0) < 히어로(z1) 순서 확정. */
	z-index: 0;
	/* 전폭 브레이크아웃(hero/youtube와 동일 기법) — 부모 .ch-main(1200)을 벗어나 뷰포트 폭으로. */
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	/* 히어로 곡선 이음: 히어로 하단 mask 투명 코너(90px 구간) 뒤로 밴드를 끌어올려
	   실제 밴드 배경(SVG+오버레이)이 비치게 한다. padding-top 동값 보상으로 콘텐츠 위치 불변.
	   높이는 히어로 mask 곡선 높이(90/60/40)와 브레이크포인트 동기. */
	margin-top: -90px;
	padding-top: 90px;
	background-color: var(--soft, #f3eeee);
	/* CSS url()은 스타일시트(css/home.css) 기준 상대경로 — 서브디렉터리 설치에도 안전
	   (document-root 절대경로 '/layouts/...'는 서브디렉터리 설치 시 깨짐). */
	background-image: url('../img/band-bg.svg');
	background-size: cover;
	background-position: center;
}
/* admin 설정 밴드 배경사진(band_image extra_var) — <img src>+|escape 조합(속성 경계 보호,
   subbanner_image와 동일 패턴). 미설정 시 .ch-band의 background-image(기본 SVG)가 노출. */
.ch-band__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* 밴드 위 밝은 오버레이 — 배경이 레퍼런스처럼 "은은히 보이도록" 완화(0.92/0.78 → 0.82/0.55).
   상단(환영 텍스트 구간)은 더 밝게 유지해 어두운 텍스트 대비 보전, 하단(설교 카드 구간)은
   카드가 불투명(AA 자체 보장)이라 배경 노출 여유가 큼. admin 사진(.ch-band__bg) 위에도
   동일하게 덮여(z-index 1) 텍스트 가독을 유지한다. */
.ch-band::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(243,238,238,0.7), rgba(243,238,238,0.55));
}
.ch-band__inner {
	position: relative;
	z-index: 2;
	/* 콘텐츠 폭이 정확히 1200이 되도록 gutter를 max-width에 포함(레퍼런스=auto 마진 모델).
	   Task 6(여백 모델 교정)과 동일 패턴. */
	max-width: calc(var(--content-max, 1200px) + 2 * var(--gutter, 24px));
	margin: 0 auto;
	padding-inline: var(--gutter);
}

/* 오버레이 헤더(80px)가 히어로 위에 얹히므로 히어로 텍스트 시작점을 그만큼 내림. */
@media (min-width: 840px) {
	.ch-wrap.is-home .chw-hero__inner {
		padding-top: 176px;
	}
}

/* 레퍼런스 정합: 소식(좌)+갤러리(우) 한 행 2컬럼. 각 위젯의 xe-widget-wrapper가
   그리드 아이템이 된다. 컬럼 안에서는 위젯 inner의 자체 중앙정렬/max-width가
   컬럼 폭에 자연 수렴(1200 초과 불가). 갤러리 그리드는 이 행 안에선 2열. */
.ch-home__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 48px;
	align-items: start;
}
.ch-home__row .chw-gallery__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 839px) {
	.ch-home__row {
		grid-template-columns: 1fr;
	}
	/* 히어로 곡선 높이 60px 구간과 동기 */
	.ch-band {
		margin-top: -60px;
		padding-top: 60px;
	}
}
@media (max-width: 599px) {
	/* 히어로 곡선 높이 40px 구간과 동기 */
	.ch-band {
		margin-top: -40px;
		padding-top: 40px;
	}
}
