.cpg-wrap{width:100%;--cpg-ease:cubic-bezier(.22,1,.36,1)}.cpg-top{display:flex;align-items:flex-end;justify-content:space-between;gap:38px;margin-bottom:32px}.cpg-heading{max-width:650px}.cpg-eyebrow{margin:0 0 11px;font-size:11px;font-weight:700;letter-spacing:.23em}.cpg-title{margin:0;font-size:clamp(38px,4.5vw,68px);font-weight:400;line-height:1.06;letter-spacing:-.035em}.cpg-subtitle{margin:10px 0 0;font-size:17px;font-style:italic;line-height:1.55}.cpg-filters{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.cpg-filter{appearance:none;border:1px solid;border-radius:999px;background:transparent;padding:12px 18px;font-size:10px;font-weight:600;line-height:1;text-transform:uppercase;letter-spacing:.11em;cursor:pointer;white-space:nowrap;transition:color .3s,background-color .3s,border-color .3s,transform .3s}.cpg-filter:hover,.cpg-filter:focus-visible{transform:translateY(-2px)}.cpg-filter:focus-visible{outline:2px solid currentColor;outline-offset:3px}.cpg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;grid-auto-flow:dense;align-items:start}.cpg-item{min-width:0;transition:opacity .38s ease,transform .45s var(--cpg-ease)}.cpg-item.is-hiding{opacity:0;transform:scale(.965);pointer-events:none}.cpg-item.is-hidden{display:none}.cpg-card{position:relative;display:block;width:100%;height:420px;padding:0;border:0;overflow:hidden;background:#ddd;cursor:pointer;color:#fff;text-align:left}.cpg-size-short{height:330px}.cpg-size-tall{height:510px}.cpg-card>img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .9s var(--cpg-ease),filter .6s ease}.cpg-card-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:26px;opacity:.82;transition:opacity .45s ease}.cpg-card-overlay small{display:block;margin-bottom:8px;font-size:9px;font-weight:700;line-height:1.2;letter-spacing:.2em;text-transform:uppercase;transform:translateY(8px);opacity:0;transition:.45s var(--cpg-ease)}.cpg-card-overlay h3{margin:0;font-size:clamp(19px,1.8vw,29px);font-weight:400;line-height:1.15;transform:translateY(8px);transition:transform .45s var(--cpg-ease)}.cpg-open{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border:1px solid rgba(255,255,255,.8);border-radius:50%;font-size:19px;opacity:0;transform:translateY(12px);transition:.45s var(--cpg-ease)}.cpg-card:hover>img,.cpg-card:focus-visible>img{transform:scale(1.055);filter:saturate(.92)}.cpg-card:hover .cpg-card-overlay,.cpg-card:focus-visible .cpg-card-overlay{opacity:1}.cpg-card:hover .cpg-card-overlay small,.cpg-card:focus-visible .cpg-card-overlay small,.cpg-card:hover .cpg-open,.cpg-card:focus-visible .cpg-open{opacity:1;transform:translateY(0)}.cpg-card:hover h3,.cpg-card:focus-visible h3{transform:translateY(0)}.cpg-card:focus-visible{outline:3px solid #fff;outline-offset:-5px}.cpg-play{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:68px;height:68px;border:1px solid rgba(255,255,255,.85);border-radius:50%;background:rgba(28,22,18,.48);backdrop-filter:blur(5px);transform:translate(-50%,-50%);transition:transform .35s var(--cpg-ease),background .35s}.cpg-card:hover .cpg-play{transform:translate(-50%,-50%) scale(1.08);background:rgba(28,22,18,.72)}.cpg-triangle{display:block;width:0;height:0;margin-left:4px;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid currentColor}.cpg-animate{animation-duration:.75s;animation-delay:var(--cpg-delay);animation-fill-mode:both;animation-timing-function:var(--cpg-ease)}[data-animation=fade-up] .cpg-animate{animation-name:cpgFadeUp}[data-animation=zoom] .cpg-animate{animation-name:cpgZoom}[data-animation=fade] .cpg-animate{animation-name:cpgFade}@keyframes cpgFadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes cpgZoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes cpgFade{from{opacity:0}to{opacity:1}}.cpg-lightbox{position:fixed;z-index:999999;inset:0;display:flex;align-items:center;justify-content:center;padding:50px;background:rgba(13,10,8,.94);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}.cpg-lightbox.is-open{opacity:1;visibility:visible}.cpg-lightbox-inner{width:min(1180px,92vw);transform:translateY(18px) scale(.985);transition:transform .45s var(--cpg-ease)}.cpg-lightbox.is-open .cpg-lightbox-inner{transform:none}.cpg-lightbox-media{display:flex;align-items:center;justify-content:center;width:100%;height:min(74vh,780px)}.cpg-lightbox-media img,.cpg-lightbox-media video,.cpg-lightbox-media iframe{display:block;max-width:100%;max-height:100%;border:0}.cpg-lightbox-media iframe,.cpg-lightbox-media video{width:100%;height:100%;background:#000}.cpg-lightbox-title{margin-top:14px;color:#fff;font-size:16px;text-align:center}.cpg-close{position:absolute;z-index:2;right:25px;top:17px;width:48px;height:48px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:transparent;color:#fff;font-size:34px;line-height:1;cursor:pointer;transition:transform .3s,background .3s}.cpg-close:hover{transform:rotate(90deg);background:rgba(255,255,255,.12)}body.cpg-lock{overflow:hidden}@media(max-width:1024px){.cpg-top{align-items:flex-start;flex-direction:column}.cpg-filters{justify-content:flex-start}.cpg-card{height:390px}.cpg-size-short{height:310px}.cpg-size-tall{height:470px}}@media(max-width:767px){.cpg-top{gap:22px;margin-bottom:24px}.cpg-title{font-size:41px}.cpg-subtitle{font-size:15px}.cpg-filters{width:100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:none}.cpg-filters::-webkit-scrollbar{display:none}.cpg-filter{padding:11px 15px}.cpg-grid{grid-template-columns:1fr}.cpg-card,.cpg-size-short,.cpg-size-tall{height:390px}.cpg-card-overlay{padding:20px}.cpg-card-overlay small,.cpg-open{opacity:1;transform:none}.cpg-lightbox{padding:20px}.cpg-lightbox-media{height:62vh}.cpg-close{right:12px;top:12px}}@media(prefers-reduced-motion:reduce){.cpg-animate{animation:none!important}.cpg-item,.cpg-card>img,.cpg-card-overlay *,.cpg-lightbox,.cpg-lightbox-inner{transition:none!important}}
/* v1.0.1: Lock gallery captions against theme heading/color overrides. */
.cpg-card .cpg-card-overlay,
.cpg-card .cpg-card-overlay *{color:#fff!important}
.cpg-card .cpg-card-overlay h3{margin:0!important;font-size:clamp(15px,1.25vw,20px)!important;font-weight:400!important;line-height:1.25!important;letter-spacing:0!important;text-transform:none!important;color:#fff!important;text-shadow:0 1px 8px rgba(0,0,0,.65)}
.cpg-card .cpg-card-overlay small{font-size:8px!important;color:#fff!important;text-shadow:0 1px 6px rgba(0,0,0,.65)}
@media(max-width:767px){.cpg-card .cpg-card-overlay h3{font-size:17px!important}}

/* v1.1.0: Slider display style — an alternative to the masonry Grid,
   useful when this gallery sits in a narrow column (e.g. next to text). */
.cpg-slider {
	position: relative;
}

.cpg-slider-viewport {
	overflow: hidden;
}

.cpg-track {
	--cpg-slider-items: 3;
	--cpg-slider-gap: 18px;
	display: flex;
	gap: var(--cpg-slider-gap);
	transition: transform var(--cpg-slider-transition, 600ms) var(--cpg-ease);
}

.cpg-slide {
	flex: 0 0 calc((100% - (var(--cpg-slider-items) - 1) * var(--cpg-slider-gap)) / var(--cpg-slider-items));
	min-width: 0;
}

.cpg-slide .cpg-card {
	width: 100%;
}

/* Items hidden by the category filter must not still occupy a flex slot,
   otherwise the track would show gaps instead of packing tightly. */
.cpg-slide.is-hidden {
	display: none;
}

.cpg-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 1px solid #D7B997;
	border-radius: 50%;
	background: #FFFFFF;
	color: #332D29;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	appearance: none;
	transition: background-color .3s, color .3s, border-color .3s, box-shadow .3s;
}

.cpg-slider-arrow:hover,
.cpg-slider-arrow:focus-visible {
	background: #29231F;
	border-color: #29231F;
	color: #FFFFFF;
}

.cpg-slider-arrow:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.cpg-slider-arrow[disabled] {
	opacity: .35;
	cursor: default;
	pointer-events: none;
}

.cpg-slider-prev { left: -22px; }
.cpg-slider-next { right: -22px; }

@media (max-width: 1024px) {
	.cpg-slider-prev { left: 6px; }
	.cpg-slider-next { right: 6px; }
	.cpg-slider-arrow { width: 42px; height: 42px; font-size: 16px; }
}

@media (max-width: 767px) {
	.cpg-slider-arrow { width: 38px; height: 38px; font-size: 14px; }
	.cpg-slider-prev { left: 4px; }
	.cpg-slider-next { right: 4px; }
}

/* v1.2.0: Hover-to-switch layout — left column has the heading + a
   vertical list of category tabs; right column shows one dedicated
   slider per category, swapping in on hover (or tap on touch devices). */
.cpg-hover-layout {
	display: flex;
	align-items: flex-start;
	gap: 48px;
}

.cpg-hover-left {
	flex: 0 0 300px;
	position: sticky;
	top: 24px;
}

.cpg-hover-right {
	flex: 1;
	min-width: 0;
}

.cpg-filters-vertical {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	margin-top: 26px;
}

.cpg-filters-vertical .cpg-filter {
	width: 100%;
	border: none;
	border-radius: 0;
	border-bottom: 1px solid rgba(51, 45, 41, 0.12);
	padding: 14px 4px;
	text-align: left;
	font-size: 12px;
}

.cpg-filters-vertical .cpg-filter:hover,
.cpg-filters-vertical .cpg-filter:focus-visible,
.cpg-filters-vertical .cpg-filter.is-active {
	background: transparent;
	transform: translateX(6px);
}

.cpg-filters-vertical .cpg-filter.is-active,
.cpg-filters-vertical .cpg-filter:hover,
.cpg-filters-vertical .cpg-filter:focus-visible {
	color: #B35C32;
}

.cpg-hover-right .cpg-slider-panel {
	display: none;
}

.cpg-hover-right .cpg-slider-panel.is-active {
	display: block;
}

@media (max-width: 1024px) {
	.cpg-hover-layout {
		flex-direction: column;
		gap: 24px;
	}
	.cpg-hover-left {
		position: static;
		flex-basis: auto;
		width: 100%;
	}
	.cpg-filters-vertical {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 10px;
		margin-top: 18px;
	}
	.cpg-filters-vertical .cpg-filter {
		width: auto;
		border: 1px solid #D7B997;
		border-radius: 999px;
		padding: 11px 16px;
	}
	.cpg-filters-vertical .cpg-filter:hover,
	.cpg-filters-vertical .cpg-filter:focus-visible,
	.cpg-filters-vertical .cpg-filter.is-active {
		transform: translateY(-2px);
		background: #29231F;
		border-color: #29231F;
		color: #FFFFFF;
	}
}
