/* -------------------------------------------------------------------------- */
/*                                   Spacing                                  */
/* -------------------------------------------------------------------------- */

/* --------------------------------- Margin --------------------------------- */
.entry-content > .nfd-my-0,
.is-root-container > .nfd-my-0 {
	margin-top: 0;
	margin-bottom: 0;
}

/* Horizontally stack children. RTL supported. */
.nfd-overlap-children-sm > *:not(:first-child) {
	margin-inline-start: -1rem;
}

/* Grid */
.nfd-grid-cols-1-2-1 {
	grid-template-columns: 1fr 2fr 1fr;
}

/* --------------------------------- Padding -------------------------------- */
/* Padding - LG */
.nfd-p-lg {
	padding: var(--nfd-cp-spacing-y-lg) var(--nfd-cp-spacing-x-lg);
}

.nfd-px-lg {
	padding-left: var(--nfd-cp-spacing-x-lg);
	padding-right: var(--nfd-cp-spacing-x-lg);
}

.nfd-py-lg {
	padding-top: var(--nfd-cp-spacing-y-lg);
	padding-bottom: var(--nfd-cp-spacing-y-lg);
}

.nfd-pt-lg {
	padding-top: var(--nfd-cp-spacing-y-lg);
}

/* Padding - MD */
.nfd-p-md {
	padding: var(--nfd-cp-spacing-y-md) var(--nfd-cp-spacing-x-md);
}

.nfd-px-md {
	padding-left: var(--nfd-cp-spacing-x-md);
	padding-right: var(--nfd-cp-spacing-x-md);
}

.nfd-py-md {
	padding-top: var(--nfd-cp-spacing-y-md);
	padding-bottom: var(--nfd-cp-spacing-y-md);
}

/* Padding for elements that are meant to be stacked */
.nfd-py-stack {
	padding-top: var(--nfd-cp-p-stack, 0.75rem);
	padding-bottom: var(--nfd-cp-p-stack, 0.75rem);
}

/* Base horizontal padding - inherit from theme to keep consistency */
.nfd-px-base {
	padding-left: var(--nfd-cp-p-base, 2.375rem);
	padding-right: var(--nfd-cp-p-base, 2.375rem);
}

.nfd-pb-lg {
	padding-bottom: var(--nfd-cp-spacing-y-lg);
}

.nfd-pb-md {
	padding-bottom: var(--nfd-cp-spacing-y-md);
}

/* ---------------------------- Override defaults --------------------------- */
.nfd-container.nfd-p-md:not([style*="padding"]),
.nfd-container.nfd-p-lg:not([style*="padding"]),
.nfd-container.nfd-px-md:not([style*="padding"]),
.nfd-container.nfd-px-lg:not([style*="padding"]) {
	padding-left: var(--nfd-cp-p-base, 2.375rem);
	padding-right: var(--nfd-cp-p-base, 2.375rem);
}

/* Content width */
.nfd-container:not(.is-layout-constrained)
	> :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: var(--nfd-cp-container, 1140px);
	margin-left: auto;
	margin-right: auto;
}

.nfd-container:not(.is-layout-constrained) > :where(.alignwide) {
	max-width: calc(var(--nfd-cp-container, 1140px) + 116px);
}

@media (max-width: 782px) {
	.nfd-container:not(.is-layout-constrained) > :where(.alignwide) {
		max-width: var(--nfd-cp-container, 1140px);
	}
}

/* Remove columns horizontal padding (TT3 adds padding to columns by default) */
.nfd-container:not([style*="padding"])
	> *:not([style*="padding"]):not([class*="nfd-p-"]):not([class*="nfd-px-"]) {
	padding-left: 0;
	padding-right: 0;
}

/* Remove vertical margin on spacer or nfd-container elements between two NFD patterns */
.nfd-container:has(+ .wp-block-spacer:not([style*="margin"]) + .nfd-container)
	+ .wp-block-spacer,
.nfd-container:has(+ .nfd-container + .nfd-container) + .nfd-container {
	margin-top: 0;
	margin-bottom: 0;
}
