/* =========================================================
   Private Occasions — Elementor rebuild (post 32382)
   Layout helpers only; colours, type and spacing live in the
   Elementor widgets so they stay editable in the editor.
   ========================================================= */

/* Centred intro heading + copy under the eyebrow (Elementor's own margin rule
   sets all four sides, so the side margins need !important to centre). */
.pk-occasions .elementor-widget.pk-occasions-intro {
	max-width: 680px;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Three occasion cards: the column padding replaces Elementor's gap padding,
   so put the gap back on the flex container. */
.pk-occasions .elementor-inner-section > .elementor-container { gap: 28px; }

/* Occasion card: white card on the cream band, lifts on hover. */
.pk-occasion-card > .elementor-widget-wrap {
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.pk-occasion-card:hover > .elementor-widget-wrap {
	transform: translateY(-4px);
	box-shadow: 0 30px 50px -28px rgba(28, 35, 33, 0.45);
}
/* Tighter title-to-copy rhythm inside the card. */
.pk-occasion-card .elementor-widget-heading { margin-bottom: 10px !important; }
.pk-occasion-card .elementor-heading-title { margin: 0; }

/* Card photo: fixed 4:3 crop with a slow zoom on hover. */
.pk-occasion-card .pk-occasion-img .elementor-widget-container,
.pk-occasion-card .pk-occasion-img { overflow: hidden; border-radius: 12px; }
.pk-occasion-card .pk-occasion-img img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	border-radius: 12px;
	transition: transform 0.8s ease;
}
.pk-occasion-card:hover .pk-occasion-img img { transform: scale(1.05); }

@media (max-width: 1024px) {
	.pk-occasions .elementor-inner-section > .elementor-container { gap: 20px; }
}

/* ---------------- "How it works" band: numbered steps left, photo right ---------------- */
/* Each step is an inner section: a small circled number column + a text column. */
.pk-step > .elementor-container { align-items: flex-start; }
.pk-step-num .elementor-heading-title {
	width: 40px;
	height: 40px;
	border: 1px solid var(--accent, #966954);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	margin: 0;
}
.pk-step .elementor-widget-heading:not(.pk-step-num) { margin-bottom: 6px !important; }
.pk-step .elementor-widget-heading:not(.pk-step-num) .elementor-heading-title { margin: 0; }
.pk-step .elementor-widget-text-editor p { margin: 0; }

/* Right-hand photo: 4:5 crop, big radius, soft shadow. */
.pk-steps-photo img {
	width: 100%;
	aspect-ratio: 4 / 5;
	max-height: 560px;
	object-fit: cover;
	display: block;
	border-radius: 24px;
	box-shadow: 0 30px 60px -30px rgba(28, 35, 33, 0.45);
}
@media (max-width: 767px) {
	.pk-steps-photo img { aspect-ratio: 4 / 3; }
}

/* ---------------- Gallery: rows of three image widgets with an even gutter ---------------- */
/* Columns carry no padding so the grid stays flush with the 1200px container;
   the gutter lives on the flex row (horizontal) and between rows (vertical). */
.pk-gallery-row > .elementor-container { gap: 24px; }
.pk-gallery-row + .pk-gallery-row { margin-top: 24px; }
.pk-gallery-row .elementor-column { min-width: 0; }
.pk-gallery-item .elementor-widget-container,
.pk-gallery-item { overflow: hidden; border-radius: 14px; }
.pk-gallery-item a { display: block; }
.pk-gallery-item img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	border-radius: 14px;
	transition: transform 0.8s ease;
}
.pk-gallery-item:hover img { transform: scale(1.05); }
@media (max-width: 767px) {
	.pk-gallery-row > .elementor-container { gap: 14px; }
	.pk-gallery-row + .pk-gallery-row { margin-top: 14px; }
}
