/* =========================================================
   Shared section primitives: eyebrows, script accents,
   icon circles, photo placeholders, decorative blobs.
   ========================================================= */

.plu-eyebrow {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 0.5rem;
}

.plu-script {
	font-family: var(--wp--preset--font-family--pacifico);
	color: var(--wp--preset--color--purple-dark);
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.75rem);
	line-height: 1.3;
	margin: 0 0 0.25rem;
}

.plu-eyebrow-script {
	margin-bottom: 0.75rem;
}

.plu-icon-circle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 999px;
	margin-bottom: 1rem;
	flex-shrink: 0;
}

.plu-icon-circle svg {
	width: 26px;
	height: 26px;
}

.plu-icon-circle--sm {
	width: 44px;
	height: 44px;
	margin-bottom: 0.6rem;
}

.plu-icon-circle--sm svg {
	width: 20px;
	height: 20px;
}

.plu-icon-circle--purple {
	background: color-mix(in srgb, var(--wp--preset--color--purple) 10%, var(--wp--preset--color--white));
	color: var(--wp--preset--color--purple-dark);
}

.plu-icon-circle--teal {
	background: color-mix(in srgb, var(--wp--preset--color--teal) 6%, var(--wp--preset--color--white));
	color: var(--wp--preset--color--teal-dark);
}

.plu-icon-circle--gold {
	background: color-mix(in srgb, var(--wp--preset--color--gold) 8%, var(--wp--preset--color--white));
	color: #96650f;
}

.plu-icon-circle--aqua {
	background: color-mix(in srgb, var(--wp--preset--color--aqua) 10%, var(--wp--preset--color--white));
	color: var(--wp--preset--color--teal-dark);
}

.plu-icon-circle--coral {
	background: color-mix(in srgb, var(--wp--preset--color--coral) 8%, var(--wp--preset--color--white));
	color: #b2492f;
}

/* Photo placeholder: stands in for real photography (see IMAGES.md). Organic
   "blob" mask via asymmetric border-radius, per the plan's visual motifs. */
.plu-photo-placeholder {
	position: relative;
	aspect-ratio: 4 / 5;
	background: linear-gradient(160deg, color-mix(in srgb, var(--wp--preset--color--purple) 18%, var(--wp--preset--color--white)), color-mix(in srgb, var(--wp--preset--color--teal) 16%, var(--wp--preset--color--white)));
	border-radius: 63% 37% 54% 46% / 43% 37% 63% 57%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 2rem;
	text-align: center;
	color: var(--wp--preset--color--purple-dark);
	overflow: hidden;
}

.plu-photo-placeholder svg {
	width: 15%;
	max-width: 48px;
	height: auto;
	opacity: 0.7;
}

.plu-photo-placeholder span {
	font-size: 0.8rem;
	font-family: var(--wp--preset--font-family--nunito);
	max-width: 22ch;
	opacity: 0.85;
}

.plu-photo-placeholder--light {
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.15));
	color: var(--wp--preset--color--white);
}

.plu-blob {
	position: absolute;
	pointer-events: none;
}

/* =========================================================
   Hero-lite (inner-page header band, reused on every content page)
   ========================================================= */

.plu-hero-lite {
	padding-top: var(--wp--preset--spacing--60, 4rem);
	padding-bottom: var(--wp--preset--spacing--60, 4rem);
	text-align: center;
}

.plu-hero-lite .plu-script {
	justify-content: center;
}

/* =========================================================
   Hero
   ========================================================= */

.plu-hero {
	padding-top: var(--wp--preset--spacing--70, 6rem);
	padding-bottom: var(--wp--preset--spacing--70, 6rem);
}

.plu-hero__row {
	gap: var(--wp--preset--spacing--60, 4rem) !important;
}

.plu-hero__art {
	position: relative;
	max-width: 420px;
	margin: 0 auto;
	aspect-ratio: 1 / 1;
}

.plu-hero__blob {
	width: 78%;
}

.plu-hero__blob--purple {
	top: 0;
	right: 0;
}

.plu-hero__blob--teal {
	width: 55%;
	bottom: 0;
	left: 0;
}

.plu-hero__peace {
	position: absolute;
	width: 20%;
	bottom: 8%;
	left: 10%;
}

.plu-hero__dots {
	position: absolute;
	width: 22%;
	top: -4%;
	left: 2%;
}

.plu-hero__photo {
	position: absolute;
	inset: 12% 10%;
	width: 60%;
	height: 70%;
	margin: auto;
}

.plu-hero__heart {
	position: absolute;
	width: 13%;
	bottom: 4%;
	right: 2%;
}

@media (prefers-reduced-motion: no-preference) {
	.plu-hero__heart,
	.plu-hero__peace {
		animation: plu-float 5s ease-in-out infinite;
	}
}

/* =========================================================
   Trust row: 4-up desktop, 2x2 tablet, 1-col mobile
   ========================================================= */

.plu-trust {
	padding-top: var(--wp--preset--spacing--60, 4rem);
	padding-bottom: var(--wp--preset--spacing--60, 4rem);
}

.plu-trust__row {
	text-align: center;
}

.plu-trust__item {
	display: flex;
	flex-direction: column;
	align-items: center;
}

@media (max-width: 960px) {
	.plu-trust__row.wp-block-columns {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: var(--wp--preset--spacing--40, 1.5rem);
	}

	.plu-trust__row.wp-block-columns > .plu-trust__item {
		flex-basis: auto !important;
		width: auto !important;
	}
}

@media (max-width: 599px) {
	.plu-trust__row.wp-block-columns {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   Services overview
   ========================================================= */

.plu-services-overview {
	padding-top: var(--wp--preset--spacing--70, 6rem);
	padding-bottom: var(--wp--preset--spacing--70, 6rem);
}

.plu-service-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--40, 1.5rem);
}

@media (max-width: 480px) {
	.plu-service-cards {
		grid-template-columns: 1fr;
	}
}

.plu-card {
	background: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--card, 16px);
	box-shadow: 0 6px 24px rgba(46, 42, 69, 0.08);
	padding: 1.5rem;
}

.plu-card__photo {
	aspect-ratio: 16 / 10;
	border-radius: var(--wp--custom--radius--card, 16px);
	margin-bottom: 1rem;
}

.plu-card__photo svg {
	width: 20%;
	max-width: 36px;
}

/* =========================================================
   Why families choose us
   ========================================================= */

.plu-why-choose {
	padding-top: var(--wp--preset--spacing--70, 6rem);
	padding-bottom: var(--wp--preset--spacing--70, 6rem);
}

.plu-why-choose__row {
	gap: var(--wp--preset--spacing--60, 4rem) !important;
}

.plu-why-choose__art {
	position: relative;
	max-width: 420px;
	margin: 0 auto;
	aspect-ratio: 1 / 1;
}

.plu-why-choose__art .plu-blob--coral {
	width: 75%;
	top: 0;
	left: 0;
}

.plu-why-choose__art .plu-blob--gold-outline {
	width: 55%;
	bottom: 0;
	right: 0;
}

.plu-why-choose__photo {
	position: absolute;
	inset: 10%;
	width: 62%;
	height: 72%;
	margin: auto;
}

.plu-checklist.wp-block-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.plu-checklist.wp-block-list li {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
}

.plu-checklist .plu-icon-circle {
	margin-bottom: 0;
}

/* =========================================================
   Testimonials
   ========================================================= */

.plu-testimonials {
	background: var(--wp--preset--color--cream);
	background: color-mix(in srgb, var(--wp--preset--color--purple) 8%, var(--wp--preset--color--cream));
	padding-top: var(--wp--preset--spacing--70, 6rem);
	padding-bottom: var(--wp--preset--spacing--70, 6rem);
}

.plu-testimonials__track {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40, 1.5rem);
	margin-top: var(--wp--preset--spacing--50, 2.5rem);
}

@media (max-width: 782px) {
	.plu-testimonials__track {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 0.75rem;
	}

	.plu-testimonials__track > .plu-testimonial-card {
		flex: 0 0 85%;
		scroll-snap-align: center;
	}
}

.plu-testimonial-card {
	background: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--card, 16px);
	box-shadow: 0 6px 24px rgba(46, 42, 69, 0.08);
	padding: 2rem;
}

.plu-testimonial-card__quote {
	width: 40px;
	height: auto;
	margin-bottom: 1rem;
}

.plu-testimonial-card__attribution {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	color: var(--wp--preset--color--purple-dark);
	margin-top: 1rem;
}

/* =========================================================
   Mission CTA banner
   ========================================================= */

.plu-mission-cta {
	padding-top: var(--wp--preset--spacing--70, 6rem);
	padding-bottom: var(--wp--preset--spacing--70, 6rem);
}

.plu-mission-cta__row {
	gap: var(--wp--preset--spacing--60, 4rem) !important;
}

.plu-mission-cta__mark {
	width: 72px;
	height: 72px;
	margin-bottom: 1.5rem;
}

.plu-mission-cta__line {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
	margin: 0;
}

.plu-mission-cta .wp-block-buttons {
	margin-top: 1.5rem;
}

.plu-mission-cta__art {
	position: relative;
	max-width: 420px;
	margin: 0 auto;
	aspect-ratio: 1 / 1;
}

.plu-mission-cta__art .plu-blob--coral {
	width: 70%;
	top: 0;
	right: 0;
}

.plu-mission-cta__art .plu-blob--gold {
	width: 50%;
	bottom: 0;
	left: 0;
}

.plu-mission-cta__photo {
	position: absolute;
	inset: 10%;
	width: 62%;
	height: 72%;
	margin: auto;
}

/* =========================================================
   Generic inner-page section rhythm + shared card grids
   (About Us, Our Services, For Families, Careers, Contact)
   ========================================================= */

.plu-section {
	padding-top: var(--wp--preset--spacing--70, 6rem);
	padding-bottom: var(--wp--preset--spacing--70, 6rem);
}

.plu-service-detail .wp-block-buttons {
	margin-top: 1.5rem;
}

.plu-inline-cta {
	border-radius: var(--wp--custom--radius--card, 16px);
	text-align: center;
	padding: var(--wp--preset--spacing--60, 4rem) var(--wp--preset--spacing--40, 1.5rem);
}

.plu-value-cards,
.plu-approach-grid,
.plu-team-grid {
	text-align: center;
	margin-top: var(--wp--preset--spacing--50, 2.5rem) !important;
}

.plu-value-card,
.plu-team-card {
	display: flex;
	flex-direction: column;
	align-items: center;
}

@media (max-width: 960px) {
	.plu-value-cards.wp-block-columns,
	.plu-approach-grid.wp-block-columns,
	.plu-team-grid.wp-block-columns {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: var(--wp--preset--spacing--40, 1.5rem);
	}

	.plu-value-cards.wp-block-columns > div,
	.plu-approach-grid.wp-block-columns > div,
	.plu-team-grid.wp-block-columns > div {
		flex-basis: auto !important;
		width: auto !important;
	}
}

@media (max-width: 599px) {
	.plu-value-cards.wp-block-columns,
	.plu-approach-grid.wp-block-columns,
	.plu-team-grid.wp-block-columns {
		grid-template-columns: 1fr;
	}
}

.plu-team-card__photo {
	width: 140px;
	height: 140px;
	aspect-ratio: 1 / 1;
	border-radius: 999px;
	margin-bottom: 1rem;
}

.plu-team-card__photo svg {
	width: 30%;
}

/* =========================================================
   Numbered step list (For Families "what to expect")
   ========================================================= */

.plu-steps.wp-block-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.plu-steps.wp-block-list li {
	display: flex;
	align-items: flex-start;
	gap: 1.25rem;
}

.plu-step-number {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: var(--wp--preset--color--purple-dark);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 700;
}

/* =========================================================
   FAQ accordion: native details/summary, fully keyboard operable
   ========================================================= */

.plu-faq {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 2rem;
}

.plu-faq__item {
	background: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--card, 16px);
	padding: 0.25rem 1.5rem;
}

.plu-faq__question {
	list-style: none;
	cursor: pointer;
	padding: 1rem 2rem 1rem 0;
	position: relative;
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
}

.plu-faq__question::-webkit-details-marker {
	display: none;
}

.plu-faq__question::after {
	content: "";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--wp--preset--color--purple-dark);
	border-bottom: 2px solid var(--wp--preset--color--purple-dark);
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.15s ease;
}

.plu-faq__item[open] .plu-faq__question::after {
	transform: translateY(-30%) rotate(-135deg);
}

.plu-faq__answer {
	padding-bottom: 1.25rem;
}

.plu-faq__answer p {
	margin: 0;
}

@media (prefers-reduced-motion: reduce) {
	.plu-faq__question::after {
		transition: none;
	}
}

/* =========================================================
   Resources page: category chips + post grid
   ========================================================= */

.plu-resource-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 2.5rem;
}

.plu-chip {
	display: inline-block;
	padding: 0.5rem 1.25rem;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
}

.plu-chip--purple {
	background: color-mix(in srgb, var(--wp--preset--color--purple) 10%, var(--wp--preset--color--white));
	color: var(--wp--preset--color--purple-dark);
}

.plu-chip--teal {
	background: color-mix(in srgb, var(--wp--preset--color--teal) 6%, var(--wp--preset--color--white));
	color: var(--wp--preset--color--teal-dark);
}

.plu-chip--gold {
	background: color-mix(in srgb, var(--wp--preset--color--gold) 8%, var(--wp--preset--color--white));
	color: #96650f;
}

.plu-chip:hover {
	text-decoration: underline;
}

.plu-resource-grid.wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40, 1.5rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (max-width: 960px) {
	.plu-resource-grid.wp-block-post-template {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 599px) {
	.plu-resource-grid.wp-block-post-template {
		grid-template-columns: 1fr;
	}
}

.plu-resource-card {
	background: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--card, 16px);
	box-shadow: 0 6px 24px rgba(46, 42, 69, 0.08);
	padding: 1.5rem;
}

.plu-resource-card .plu-eyebrow {
	margin-bottom: 0.5rem;
}

.plu-resource-card h3 a {
	text-decoration: none;
}

/* =========================================================
   Contact page
   ========================================================= */

.plu-contact-info {
	background: var(--wp--preset--color--cream);
	border-radius: var(--wp--custom--radius--card, 16px);
	padding: 2rem;
}

.plu-contact-info__list {
	margin-top: 1.25rem;
}

.plu-contact-info__note {
	margin-top: 1.5rem;
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	color: var(--wp--preset--color--purple-dark);
}

/* Fluent Forms brand alignment: Poppins labels, pill submit button,
   visible focus rings, brand-colored inline errors. */
.fluentform fieldset,
.ff-el-group {
	margin-bottom: 1.25rem;
}

.fluentform label,
.ff-el-input--label label {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}

.fluentform input[type="text"],
.fluentform input[type="email"],
.fluentform input[type="tel"],
.fluentform select,
.fluentform textarea {
	font-family: var(--wp--preset--font-family--nunito);
	border-radius: 10px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink) 25%, transparent);
	padding: 0.75rem 1rem;
}

.fluentform input:focus-visible,
.fluentform select:focus-visible,
.fluentform textarea:focus-visible {
	outline: 2px solid var(--wp--preset--color--purple-dark);
	outline-offset: 2px;
}

.fluentform .ff-btn,
.fluentform button[type="submit"] {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	border-radius: 999px !important;
	padding: 0.85rem 2rem !important;
}

.fluentform .error,
.fluentform .text-danger {
	color: #b2492f;
}

.plu-flag-notice {
	border-radius: var(--wp--custom--radius--card, 16px);
	padding: 1.25rem 1.75rem;
	margin-bottom: 2rem;
}

/* =========================================================
   Slim CTA band (above footer)
   ========================================================= */

.plu-cta-band {
	padding-top: var(--wp--preset--spacing--60, 4rem);
	padding-bottom: var(--wp--preset--spacing--60, 4rem);
	text-align: center;
}
