/* GG Small Gatherings ("Small, Meaningful Gatherings") ------------------------------------ */
.gg-small-gatherings {
	background: #FDF6EC;
	border-radius: 20px;
	padding: 50px 40px;
	box-sizing: border-box;
	font-family: var(--gg-font-sans, 'Poppins', sans-serif);
	text-align: center;
	overflow: hidden; /* guards against any decorative flourish causing horizontal overflow */
	--gg-hover-lift: -6px;
	--gg-hover-scale: 1;
}

.gg-small-gatherings__inner {
	max-width: 1280px;
	margin: 0 auto;
}

/* ---------------- Top decoration ---------------- */
.gg-small-gatherings__top-deco {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #D9A441;
	margin-bottom: 10px;
}

.gg-small-gatherings__top-line {
	width: 70px;
	height: 1px;
	background: currentColor;
	opacity: 0.6;
}

.gg-small-gatherings__top-deco .gg-icon-svg {
	width: 16px;
	height: 16px;
}

.gg-small-gatherings__eyebrow {
	display: block;
	margin-bottom: 8px;
}

.gg-small-gatherings__heading {
	margin: 0 0 14px;
	color: #152744;
	font-family: var(--gg-font-serif, 'Playfair Display', serif);
	font-size: 42px;
	line-height: 1.2;
}

.gg-small-gatherings__heading-underline {
	display: block;
	width: 60px;
	height: 2px;
	background: #D9A441;
	margin: 0 auto 22px;
}

.gg-small-gatherings__description {
	max-width: 640px;
	margin: 0 auto 40px;
	color: #33404f;
	font-size: 17px;
	line-height: 1.6;
}

/* ---------------- Cards ---------------- */
.gg-small-gatherings__cards {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 22px;
}

.gg-small-gatherings__card {
	flex: 1 1 0;
	max-width: 18.4%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #FFFFFF;
	border: 1px solid #EFE6D8;
	border-radius: 16px;
	padding: 34px 24px 30px;
	box-sizing: border-box;
	text-align: center;
	text-decoration: none;
	color: inherit;
	transition-property: transform, box-shadow, background-color, border-color;
	transition-timing-function: ease;
	transition-duration: 300ms;
}

.gg-small-gatherings--hover-on .gg-small-gatherings__card:hover {
	transform: translateY(var(--gg-hover-lift)) scale(var(--gg-hover-scale));
	box-shadow: 0 18px 34px rgba(20, 30, 50, 0.12);
}

.gg-small-gatherings__icon-circle {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
	flex: 0 0 auto;
	transition: transform 300ms ease, background-color 300ms ease;
}

.gg-small-gatherings__card-icon {
	display: inline-flex;
	color: #152744;
	transition: color 300ms ease, transform 300ms ease;
}

.gg-small-gatherings__card-icon .gg-icon-svg {
	width: 38px;
	height: 38px;
}

/* Icon circle + icon hover motion, tied to the "Hover Icon Animation" select control. */
.gg-small-gatherings--hover-icon-scale .gg-small-gatherings__card:hover .gg-small-gatherings__icon-circle {
	transform: scale(1.08);
}
.gg-small-gatherings--hover-icon-rotate .gg-small-gatherings__card:hover .gg-small-gatherings__card-icon {
	transform: rotate(8deg);
}
@media (prefers-reduced-motion: no-preference) {
	.gg-small-gatherings--hover-icon-float .gg-small-gatherings__card:hover .gg-small-gatherings__icon-circle {
		animation: gg-small-gatherings-float 1.6s ease-in-out infinite;
	}
}

@keyframes gg-small-gatherings-float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-5px); }
}

.gg-small-gatherings__card-title {
	margin: 0 0 10px;
	font-family: var(--gg-font-serif, 'Playfair Display', serif);
	font-size: 21px;
	font-weight: 700;
	color: #152744;
	transition: color 300ms ease;
}

.gg-small-gatherings__card-divider {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #D9A441;
	margin-bottom: 12px;
}

.gg-small-gatherings__card-divider-line {
	width: 26px;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
}

.gg-small-gatherings__card-divider .gg-icon-svg {
	width: 12px;
	height: 12px;
}

.gg-small-gatherings__card-desc {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: #5b6472;
	transition: color 300ms ease;
}

.gg-small-gatherings__card-bottom {
	display: inline-flex;
	margin-top: 20px;
	opacity: 0.7;
}

.gg-small-gatherings__card-bottom .gg-icon-svg {
	width: 30px;
	height: auto;
}

/* ---------------- Bottom divider ---------------- */
.gg-small-gatherings__bottom-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: 44px;
}

.gg-small-gatherings__bottom-line {
	flex: 1 1 auto;
	max-width: 160px;
	height: 1px;
	background: #2F8C82;
	opacity: 0.4;
}

.gg-small-gatherings__bottom-leaf {
	display: inline-flex;
	color: #2F8C82;
}

.gg-small-gatherings__bottom-leaf--flip svg {
	transform: scaleX(-1);
}

.gg-small-gatherings__bottom-leaf .gg-icon-svg {
	width: 26px;
	height: auto;
}

.gg-small-gatherings__bottom-heart {
	display: inline-flex;
	color: #F0705C;
}

.gg-small-gatherings__bottom-heart .gg-icon-svg {
	width: 20px;
	height: 20px;
}

/* ---------------- Entrance animation ---------------- */
@media (prefers-reduced-motion: no-preference) {
	.gg-small-gatherings--animate.gg-small-gatherings--js-ready .gg-small-gatherings__heading,
	.gg-small-gatherings--animate.gg-small-gatherings--js-ready .gg-small-gatherings__card {
		opacity: 0;
	}

	.gg-small-gatherings--animate.gg-small-gatherings--in-view .gg-small-gatherings__heading {
		animation-name: gg-small-gatherings-fade-up;
		animation-duration: var(--gg-anim-duration, 550ms);
		animation-timing-function: ease;
		animation-fill-mode: both;
	}

	.gg-small-gatherings--animate.gg-small-gatherings--in-view .gg-small-gatherings__card {
		animation-duration: var(--gg-anim-duration, 550ms);
		animation-timing-function: ease;
		animation-fill-mode: both;
		animation-delay: var(--gg-card-delay, 0ms);
	}
}

.gg-small-gatherings--anim-type-fade.gg-small-gatherings--in-view .gg-small-gatherings__card { animation-name: gg-small-gatherings-fade; }
.gg-small-gatherings--anim-type-fade-up.gg-small-gatherings--in-view .gg-small-gatherings__card { animation-name: gg-small-gatherings-fade-up; }
.gg-small-gatherings--anim-type-fade-down.gg-small-gatherings--in-view .gg-small-gatherings__card { animation-name: gg-small-gatherings-fade-down; }
.gg-small-gatherings--anim-type-fade-left.gg-small-gatherings--in-view .gg-small-gatherings__card { animation-name: gg-small-gatherings-fade-left; }
.gg-small-gatherings--anim-type-fade-right.gg-small-gatherings--in-view .gg-small-gatherings__card { animation-name: gg-small-gatherings-fade-right; }
.gg-small-gatherings--anim-type-zoom-in.gg-small-gatherings--in-view .gg-small-gatherings__card { animation-name: gg-small-gatherings-zoom-in; }

@keyframes gg-small-gatherings-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gg-small-gatherings-fade-up { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gg-small-gatherings-fade-down { from { opacity: 0; transform: translateY(-22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gg-small-gatherings-fade-left { from { opacity: 0; transform: translateX(22px); } to { opacity: 1; transform: translateX(0); } }
@keyframes gg-small-gatherings-fade-right { from { opacity: 0; transform: translateX(-22px); } to { opacity: 1; transform: translateX(0); } }
@keyframes gg-small-gatherings-zoom-in { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); } }

/* ---------------- Responsive ---------------- */
@media (max-width: 1100px) {
	.gg-small-gatherings__card {
		max-width: 31%; /* ~3 across */
	}
}

@media (max-width: 900px) {
	.gg-small-gatherings { padding: 40px 28px; }
	.gg-small-gatherings__heading { font-size: 32px; }
	.gg-small-gatherings__card {
		max-width: 47%; /* ~2 across, with the 5th wrapping alone onto its own row */
	}
}

@media (max-width: 640px) {
	.gg-small-gatherings { padding: 32px 20px; border-radius: 16px; }
	.gg-small-gatherings__heading { font-size: 26px; }
	.gg-small-gatherings__description { font-size: 15px; }
	.gg-small-gatherings__card {
		max-width: 100%;
		flex-basis: 100%;
	}
	.gg-small-gatherings__bottom-line {
		max-width: 40px;
	}
}
