/*
 * Loving Arms Daycare & Preschool — brand styling.
 * Loads after the core Neve stylesheet, so these rules build on top of the
 * global color/typography defaults set in globals/utilities.php,
 * inc/core/settings/mods.php and inc/customizer/options/typography.php
 * rather than duplicating them.
 *
 * Tone: playful, rounded, hand-drawn — built for parents of young children,
 * not a corporate audience. Chunky "sticker" buttons, bouncy hovers, soft
 * floating shapes, wavy section dividers.
 */

:root {
	--la-radius: 22px;
	--la-ink: #1B2B29;
}

@media (prefers-reduced-motion: no-preference) {
	.la-animate { animation-duration: 0.6s; animation-fill-mode: both; }
}

@keyframes la-float {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50%      { transform: translateY(-16px) rotate(4deg); }
}
@keyframes la-float-slow {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50%      { transform: translateY(-10px) rotate(-5deg); }
}
@keyframes la-wiggle {
	0%, 100% { transform: rotate(-4deg); }
	50%      { transform: rotate(4deg); }
}
@keyframes la-pop-in {
	0%   { opacity: 0; transform: translateY(24px) scale(0.92); }
	100% { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes la-pulse {
	0%, 100% { transform: scale(1); }
	50%      { transform: scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* ---------- Header & navigation ---------- */

header.header {
	background: var(--nv-site-bg);
	transition: box-shadow 0.25s ease;
}

header.header.is-sticky,
header.header.nv-header-sticky-shadow {
	box-shadow: 0 4px 18px rgba(27, 43, 41, 0.1);
}

.site-logo,
.site-logo .brand {
	padding-top: 8px;
	padding-bottom: 8px;
}

.site-logo img {
	max-height: 68px;
	width: auto;
	transition: transform 0.3s ease;
}

.site-logo .brand:hover img {
	animation: la-wiggle 0.5s ease;
}

.site-logo .site-title {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	color: var(--nv-text-color);
}

/* Playful, rounded nav — bouncy hover instead of a corporate underline. */
.nv-nav-wrap .primary-menu-ul > li > a {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 16px;
	text-transform: none;
	letter-spacing: 0;
	padding: 10px 18px;
	border-radius: 999px;
	transition: transform 0.18s ease, background-color 0.18s ease, color 0.18s ease;
	display: inline-block;
}

.nv-nav-wrap .primary-menu-ul > li > a:hover,
.nv-nav-wrap .primary-menu-ul > li > a:focus {
	background: var(--nv-light-bg);
	color: var(--nv-secondary-accent);
	transform: translateY(-2px) rotate(-1deg);
}

.nv-nav-wrap .primary-menu-ul > li:nth-child(even) > a:hover {
	transform: translateY(-2px) rotate(1deg);
}

.nv-nav-wrap .primary-menu-ul > li.current-menu-item > a {
	color: var(--nv-primary-accent);
	background: var(--nv-light-bg);
}

/* Persistent enrollment CTA — chunky "sticker" button with a hard offset
   shadow that flattens on press, like a big friendly badge. */
header.header .button.button-primary {
	background: var(--nv-primary-accent);
	border: 3px solid var(--la-ink);
	color: var(--la-ink);
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 800;
	border-radius: 999px;
	padding: 9px 24px;
	box-shadow: 4px 4px 0 var(--la-ink);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

header.header .button.button-primary:hover,
header.header .button.button-primary:focus {
	background: #ffb703;
	transform: translate(2px, 2px);
	box-shadow: 2px 2px 0 var(--la-ink);
}

/* ---------- Homepage hero ---------- */

.loving-arms-hero {
	position: relative;
	overflow: hidden;
}

.loving-arms-hero.wp-block-cover::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(10, 16, 15, 0.75) 0%, rgba(10, 16, 15, 0.3) 55%, rgba(10, 16, 15, 0.08) 100%);
	pointer-events: none;
}

/* Soft floating blobs + shapes for a playful, hand-drawn feel. */
.loving-arms-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle 90px at 12% 22%, rgba(158, 203, 61, 0.55), transparent 70%),
		radial-gradient(circle 70px at 88% 18%, rgba(53, 191, 176, 0.5), transparent 70%),
		radial-gradient(circle 110px at 82% 78%, rgba(244, 89, 45, 0.4), transparent 70%);
	animation: la-float-slow 9s ease-in-out infinite;
}

.loving-arms-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 1;
}

.loving-arms-hero h1 {
	font-family: var(--h1fontfamily, var(--headingsfontfamily));
	font-weight: 800;
	font-size: clamp(34px, 5.4vw, 54px);
	line-height: 1.12;
	color: #ffffff;
	max-width: 14ch;
	animation: la-pop-in 0.7s ease both;
}

.loving-arms-hero p {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 500;
	font-size: clamp(17px, 2vw, 20px);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.94);
	max-width: 46ch;
	margin-top: 16px;
	animation: la-pop-in 0.7s ease 0.1s both;
}

.loving-arms-hero .wp-block-buttons {
	margin-top: 26px;
	animation: la-pop-in 0.7s ease 0.2s both;
}

.loving-arms-hero .wp-block-button.is-style-primary .wp-block-button__link {
	background: var(--nv-primary-accent);
	color: var(--la-ink);
	font-weight: 800;
	border: 3px solid var(--la-ink);
	border-radius: 999px;
	padding: 13px 28px;
	box-shadow: 5px 5px 0 var(--la-ink);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.loving-arms-hero .wp-block-button.is-style-outline .wp-block-button__link {
	border: 3px solid #ffffff;
	color: #ffffff;
	font-weight: 800;
	border-radius: 999px;
	padding: 11px 26px;
	background: transparent;
	transition: transform 0.15s ease, background-color 0.15s ease;
}

.loving-arms-hero .wp-block-button .wp-block-button__link:hover {
	transform: translate(2px, 2px);
}

.loving-arms-hero .wp-block-button.is-style-primary .wp-block-button__link:hover {
	box-shadow: 2px 2px 0 var(--la-ink);
}

.loving-arms-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.15);
}

/* ---------- Widget: fun-facts / stats bar ---------- */
/* Drop a Group block with class "la-stats-bar" containing 3-4 nested
   Groups (class "la-stat") each holding a number + label. */

.la-stats-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: center;
	padding: 36px 24px;
	background: var(--nv-light-bg);
}

.la-stat {
	background: #ffffff;
	border: 3px solid var(--la-ink);
	border-radius: var(--la-radius);
	padding: 18px 26px;
	text-align: center;
	min-width: 150px;
	box-shadow: 5px 5px 0 var(--la-ink);
	opacity: 0;
	transform: translateY(24px) scale(0.92);
	transition: transform 0.5s ease, opacity 0.5s ease;
}

.la-stat.is-visible {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.la-stat:nth-child(2n) { border-color: var(--nv-secondary-accent); }
.la-stat:nth-child(3n) { border-color: var(--nv-primary-accent); }
.la-stat:nth-child(4n) { border-color: var(--nv-c-1); }

.la-stat .la-stat-number {
	display: block;
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 34px;
	color: var(--nv-primary-accent);
}

.la-stat .la-stat-label {
	display: block;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 13.5px;
	color: var(--la-ink);
	margin-top: 4px;
}

/* ---------- Widget: program cards ---------- */
/* A Columns block with class "la-program-cards"; each column gets class
   "la-program-card" plus one of la-card--orange / teal / blue / green. */

.la-program-cards {
	gap: 24px !important;
}

.la-program-card {
	border-radius: var(--la-radius);
	border: 3px solid var(--la-ink);
	padding: 28px 24px;
	text-align: center;
	background: #ffffff;
	box-shadow: 6px 6px 0 var(--la-ink);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.la-program-card:hover {
	transform: translate(-2px, -4px) rotate(-1deg);
	box-shadow: 8px 8px 0 var(--la-ink);
}

.la-program-card:nth-child(2n):hover {
	transform: translate(2px, -4px) rotate(1deg);
}

.la-program-card .la-card-icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 14px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 28px;
	border: 3px solid var(--la-ink);
	animation: la-float 4s ease-in-out infinite;
}

.la-program-card h3 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 20px;
	margin: 0 0 8px;
}

.la-program-card p {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 15px;
	color: var(--nv-text-color);
	margin: 0;
}

.la-card--orange .la-card-icon { background: rgba(244, 89, 45, 0.18); }
.la-card--teal   .la-card-icon { background: rgba(53, 191, 176, 0.2); }
.la-card--blue   .la-card-icon { background: rgba(35, 98, 167, 0.18); }
.la-card--green  .la-card-icon { background: rgba(158, 203, 61, 0.22); }

/* ---------- Floating call-to-action button ---------- */
/* Added via the wp_footer hook in functions.php. Hidden until the visitor
   scrolls past the hero (loving-arms-brand.js toggles .is-visible), so it
   stays out of the way of the hero's own buttons. The bob animation keeps
   running on the outer link (via transform); visibility uses opacity only
   so the two never fight over the same property. */

.la-floating-cta {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 999;
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--nv-c-1);
	color: var(--la-ink);
	border: 3px solid var(--la-ink);
	border-radius: 999px;
	padding: 12px 20px 12px 14px;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 800;
	font-size: 15px;
	text-decoration: none;
	box-shadow: 5px 5px 0 var(--la-ink);
	animation: la-float 3.2s ease-in-out infinite;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s ease, box-shadow 0.15s ease;
}

.la-floating-cta.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.la-floating-cta:hover {
	box-shadow: 2px 2px 0 var(--la-ink);
	color: var(--la-ink);
}

.la-floating-cta .la-cta-icon {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	flex: none;
}

/* ---------- Section heading helper ---------- */

.la-eyebrow {
	display: inline-block;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 800;
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nv-secondary-accent);
	margin-bottom: 8px;
}

.la-section-head {
	max-width: 680px;
	margin: 0 auto 40px;
	text-align: center;
}

.la-section-head h2 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: clamp(26px, 3.4vw, 36px);
	color: var(--la-ink);
}

/* ---------- Services ---------- */
/* Full Daycare / Preschool / Tuition write-ups with links to their pages.
   Update the href values to the real page slugs once they exist. */

.la-services {
	max-width: 1180px;
	margin: 70px auto;
	padding: 0 24px;
}

.la-services-grid {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
}

.la-service-card {
	flex: 1;
	min-width: 260px;
	border-radius: var(--la-radius);
	border: 3px solid var(--la-ink);
	background: #ffffff;
	padding: 30px 26px;
	box-shadow: 6px 6px 0 var(--la-ink);
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.la-service-card:hover {
	transform: translate(-2px, -4px) rotate(-1deg);
	box-shadow: 8px 8px 0 var(--la-ink);
}

.la-service-card:nth-child(2):hover {
	transform: translate(2px, -4px) rotate(1deg);
}

.la-service-card .la-card-icon {
	width: 60px;
	height: 60px;
	margin-bottom: 16px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 26px;
	border: 3px solid var(--la-ink);
	animation: la-float 4s ease-in-out infinite;
}

.la-service-card h3 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 21px;
	margin: 0 0 10px;
}

.la-service-card p {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 15px;
	color: var(--nv-text-color);
	margin: 0;
	flex: 1;
}

.la-service-card .la-service-cta {
	display: inline-block;
	align-self: flex-start;
	margin-top: 20px;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 800;
	font-size: 14.5px;
	color: var(--la-ink);
	background: var(--nv-light-bg);
	border: 3px solid var(--la-ink);
	border-radius: 999px;
	padding: 9px 20px;
	text-decoration: none;
	box-shadow: 4px 4px 0 var(--la-ink);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.la-service-card .la-service-cta:hover {
	transform: translate(2px, 2px);
	box-shadow: 2px 2px 0 var(--la-ink);
}

.la-service-card.la-card--orange .la-card-icon { background: rgba(244, 89, 45, 0.18); }
.la-service-card.la-card--green  .la-card-icon { background: rgba(158, 203, 61, 0.22); }
.la-service-card.la-card--blue   .la-card-icon { background: rgba(35, 98, 167, 0.18); }
.la-service-card.la-card--orange .la-service-cta:hover { background: var(--nv-primary-accent); }
.la-service-card.la-card--green  .la-service-cta:hover { background: var(--nv-c-1); }
.la-service-card.la-card--blue   .la-service-cta:hover { background: var(--nv-c-2); color: #fff; }

/* ---------- Testimonials (auto-scrolling marquee) ---------- */
/* The track's content is intentionally duplicated once in the markup so
   translateX(-50%) loops seamlessly. Pauses on hover/focus. */

.la-testimonials {
	max-width: 1180px;
	margin: 70px auto;
	padding: 0 0 10px;
	overflow: hidden;
}

.la-testimonials-viewport {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}

.la-testimonials-track {
	display: flex;
	gap: 20px;
	width: max-content;
	animation: la-marquee 42s linear infinite;
}

.la-testimonials:hover .la-testimonials-track,
.la-testimonials:focus-within .la-testimonials-track {
	animation-play-state: paused;
}

@keyframes la-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

.la-testimonial-card {
	width: 300px;
	flex: none;
	background: #ffffff;
	border: 3px solid var(--la-ink);
	border-radius: var(--la-radius);
	padding: 22px 22px 20px;
	box-shadow: 5px 5px 0 var(--la-ink);
}

.la-testimonial-card:nth-child(3n+1) { border-color: var(--nv-primary-accent); }
.la-testimonial-card:nth-child(3n+2) { border-color: var(--nv-secondary-accent); }
.la-testimonial-card:nth-child(3n)   { border-color: var(--nv-c-1); }

.la-testimonial-card .la-stars {
	color: #ffb703;
	font-size: 15px;
	letter-spacing: 2px;
}

.la-testimonial-card h4 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 16px;
	margin: 8px 0 8px;
	color: var(--la-ink);
}

.la-testimonial-card p {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--nv-text-color);
	margin: 0 0 14px;
}

.la-testimonial-card .la-testimonial-name {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 14px;
	color: var(--la-ink);
}

.la-testimonial-name .la-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--nv-light-bg);
	border: 2px solid var(--la-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12.5px;
	font-weight: 800;
	flex: none;
}

@media (prefers-reduced-motion: reduce) {
	.la-testimonials-track { animation: none; }
}

/* ---------- Map ---------- */

.la-map-section {
	max-width: 900px;
	margin: 70px auto;
	padding: 0 24px;
	text-align: center;
}

.la-map-section h2 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: clamp(26px, 3.4vw, 36px);
	margin: 0 0 8px;
}

.la-map-section > p {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	color: var(--nv-text-color);
	margin: 0;
}

.la-map-frame {
	position: relative;
	width: 100%;
	padding-top: 52%;
	border-radius: var(--la-radius);
	border: 3px solid var(--la-ink);
	box-shadow: 6px 6px 0 var(--la-ink);
	overflow: hidden;
	margin: 26px 0 22px;
}

.la-map-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.la-map-directions {
	display: inline-block;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 800;
	font-size: 15px;
	color: var(--la-ink);
	background: var(--nv-primary-accent);
	border: 3px solid var(--la-ink);
	border-radius: 999px;
	padding: 11px 26px;
	text-decoration: none;
	box-shadow: 5px 5px 0 var(--la-ink);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.la-map-directions:hover {
	background: #ffb703;
	transform: translate(2px, 2px);
	box-shadow: 2px 2px 0 var(--la-ink);
}

/* ---------- Footer ---------- */

footer,
#colophon {
	position: relative;
	background: var(--nv-dark-bg);
	color: var(--nv-text-dark-bg);
	margin-top: 60px;
}

/* Wavy divider instead of a hard line between the page and the footer. */
footer::before,
#colophon::before {
	content: "";
	position: absolute;
	top: -39px;
	left: 0;
	width: 100%;
	height: 40px;
	background-color: var(--nv-dark-bg);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 20 C 150 0 300 40 450 20 C 600 0 750 40 900 20 C 1050 0 1150 30 1200 20 L1200 40 L0 40 Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 20 C 150 0 300 40 450 20 C 600 0 750 40 900 20 C 1050 0 1150 30 1200 20 L1200 40 L0 40 Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
}

footer .widget-area,
#colophon .widget-area {
	padding-top: 40px;
	padding-bottom: 32px;
}

footer .widget-title,
#colophon .widget-title {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 15px;
	letter-spacing: 0.03em;
	color: #ffffff;
	margin-bottom: 14px;
}

footer .widget-area .widget,
#colophon .widget-area .widget {
	margin-bottom: 20px;
}

footer .widget-area a,
#colophon .widget-area a {
	color: rgba(255, 255, 255, 0.88);
	text-decoration: none;
	transition: color 0.15s ease;
}

footer .widget-area a:hover,
#colophon .widget-area a:hover {
	color: #ffd166;
	text-decoration: underline;
}

footer .widget-area .textwidget ul li,
#colophon .widget-area .textwidget ul li,
footer .widget-area ul.wp-block-list li,
#colophon .widget-area ul.wp-block-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
	line-height: 1.5;
}

footer .nv-social-icons a,
#colophon .nv-social-icons a,
footer .footer-social a,
#colophon .footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	color: #ffffff;
	margin-right: 8px;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

footer .nv-social-icons a:hover,
#colophon .nv-social-icons a:hover,
footer .footer-social a:hover,
#colophon .footer-social a:hover {
	background: #ffd166;
	color: var(--la-ink);
	transform: translateY(-3px) rotate(-6deg);
}

footer .builder-item,
#colophon .builder-item {
	padding-top: 8px;
	padding-bottom: 8px;
}

/* =====================================================================
   Inner pages: About, Services detail pages, Contact, Privacy, Blog
   ===================================================================== */

/* ---------- Page hero banner (shorter than the homepage hero) ---------- */

.la-page-hero {
	position: relative;
	overflow: hidden;
	padding: 64px 24px;
	text-align: center;
	background:
		radial-gradient(circle 100px at 10% 20%, rgba(158, 203, 61, 0.35), transparent 70%),
		radial-gradient(circle 90px at 90% 15%, rgba(53, 191, 176, 0.35), transparent 70%),
		radial-gradient(circle 120px at 85% 90%, rgba(244, 89, 45, 0.28), transparent 70%),
		var(--nv-light-bg);
}

.la-page-hero .la-eyebrow { color: var(--nv-primary-accent); }

.la-page-hero h1 {
	font-family: var(--h1fontfamily, var(--headingsfontfamily));
	font-weight: 800;
	font-size: clamp(30px, 4.6vw, 46px);
	color: var(--la-ink);
	max-width: 16ch;
	margin: 0 auto;
}

.la-page-hero p {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: clamp(16px, 1.6vw, 18px);
	color: var(--nv-text-color);
	max-width: 56ch;
	margin: 14px auto 0;
}

/* ---------- Prose / content blocks (About, Privacy) ---------- */

.la-content {
	max-width: 760px;
	margin: 56px auto;
	padding: 0 24px;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 16.5px;
	line-height: 1.75;
	color: var(--nv-text-color);
}

.la-content h2 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: clamp(22px, 2.8vw, 28px);
	color: var(--la-ink);
	margin: 44px 0 14px;
}

.la-content h2:first-child { margin-top: 0; }

.la-content p { margin: 0 0 16px; }

.la-content ul,
.la-content ol {
	margin: 0 0 16px;
	padding-left: 22px;
}

.la-content li { margin-bottom: 8px; }

.la-content a { color: var(--nv-secondary-accent); font-weight: 700; }

.la-pull-quote {
	position: relative;
	margin: 36px 0;
	padding: 26px 28px;
	background: #ffffff;
	border: 3px solid var(--la-ink);
	border-radius: var(--la-radius);
	box-shadow: 6px 6px 0 var(--la-ink);
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 700;
	font-size: 19px;
	line-height: 1.5;
	color: var(--la-ink);
}

.la-pull-quote cite {
	display: block;
	margin-top: 12px;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 13.5px;
	font-style: normal;
	color: var(--nv-secondary-accent);
}

/* ---------- Team grid (About Us — staff) ---------- */

.la-team {
	max-width: 1000px;
	margin: 60px auto;
	padding: 0 24px;
}

.la-team-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	justify-content: center;
}

.la-team-card {
	width: 200px;
	text-align: center;
	background: #ffffff;
	border: 3px solid var(--la-ink);
	border-radius: var(--la-radius);
	padding: 20px 16px 22px;
	box-shadow: 5px 5px 0 var(--la-ink);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.la-team-card:hover {
	transform: translate(-2px, -4px) rotate(-1deg);
	box-shadow: 7px 7px 0 var(--la-ink);
}

.la-team-card .la-avatar-lg {
	width: 84px;
	height: 84px;
	margin: 0 auto 12px;
	border-radius: 50%;
	border: 3px solid var(--la-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 22px;
	color: var(--la-ink);
	animation: la-float 5s ease-in-out infinite;
}

.la-team-card:nth-child(4n+1) .la-avatar-lg { background: rgba(244, 89, 45, 0.2); }
.la-team-card:nth-child(4n+2) .la-avatar-lg { background: rgba(53, 191, 176, 0.22); }
.la-team-card:nth-child(4n+3) .la-avatar-lg { background: rgba(158, 203, 61, 0.24); }
.la-team-card:nth-child(4n)   .la-avatar-lg { background: rgba(35, 98, 167, 0.2); }

.la-team-card h4 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 16px;
	margin: 0 0 4px;
}

.la-team-card span {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 13px;
	font-weight: 700;
	color: var(--nv-secondary-accent);
}

/* ---------- Closing CTA band (About / service pages) ---------- */

.la-cta-band {
	text-align: center;
	padding: 56px 24px;
	margin-top: 60px;
	background: var(--nv-dark-bg);
	color: #ffffff;
}

.la-cta-band h2 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: clamp(24px, 3vw, 32px);
	margin: 0 0 10px;
	color: #ffffff;
}

.la-cta-band p {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	margin: 0 0 22px;
	color: rgba(255, 255, 255, 0.9);
}

.la-cta-band .la-service-cta,
.la-cta-band .btn-primary {
	background: var(--nv-primary-accent);
	color: var(--la-ink);
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 800;
	border: 3px solid var(--la-ink);
	border-radius: 999px;
	padding: 13px 28px;
	text-decoration: none;
	display: inline-block;
	box-shadow: 5px 5px 0 var(--la-ink);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.la-cta-band .la-service-cta:hover,
.la-cta-band .btn-primary:hover {
	background: #ffb703;
	transform: translate(2px, 2px);
	box-shadow: 2px 2px 0 var(--la-ink);
}

/* ---------- Service detail page (Daycare / Preschool / Tuition) ---------- */

.la-service-detail {
	max-width: 900px;
	margin: 56px auto;
	padding: 0 24px;
}

.la-service-detail .la-back-link {
	display: inline-block;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 14px;
	color: var(--nv-secondary-accent);
	text-decoration: none;
	margin-bottom: 18px;
}

.la-service-detail .la-back-link:hover { text-decoration: underline; }

.la-feature-list {
	list-style: none;
	margin: 24px 0;
	padding: 0;
	display: grid;
	gap: 12px;
}

.la-feature-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 16px;
	line-height: 1.5;
}

.la-feature-list .la-check {
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--nv-c-1);
	border: 2px solid var(--la-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	color: var(--la-ink);
	font-weight: 800;
}

/* ---------- Contact page ---------- */

.la-contact-cards {
	max-width: 1000px;
	margin: 56px auto;
	padding: 0 24px;
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
	justify-content: center;
}

.la-contact-cards .la-contact-card {
	flex: 1;
	min-width: 220px;
	text-align: center;
	background: #ffffff;
	border: 3px solid var(--la-ink);
	border-radius: var(--la-radius);
	padding: 26px 20px;
	box-shadow: 5px 5px 0 var(--la-ink);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.la-contact-cards .la-contact-card:hover {
	transform: translate(-2px, -4px) rotate(-1deg);
	box-shadow: 7px 7px 0 var(--la-ink);
}

.la-contact-card .la-card-icon {
	width: 54px;
	height: 54px;
	margin: 0 auto 12px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	border: 3px solid var(--la-ink);
}

.la-contact-card h4 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 16px;
	margin: 0 0 6px;
}

.la-contact-card a,
.la-contact-card span {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 14.5px;
	color: var(--nv-text-color);
	text-decoration: none;
}

.la-contact-card a:hover { color: var(--nv-secondary-accent); }

/* Inquiry form */

.la-form-wrap {
	max-width: 640px;
	margin: 20px auto 56px;
	padding: 0 24px;
}

.la-form {
	background: #ffffff;
	border: 3px solid var(--la-ink);
	border-radius: var(--la-radius);
	padding: 32px 28px;
	box-shadow: 6px 6px 0 var(--la-ink);
	display: grid;
	gap: 16px;
}

.la-form .la-form-row {
	display: grid;
	gap: 16px;
	grid-template-columns: 1fr 1fr;
}

.la-form label {
	display: block;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 13.5px;
	color: var(--la-ink);
	margin-bottom: 6px;
}

.la-form input,
.la-form select,
.la-form textarea {
	width: 100%;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 15px;
	color: var(--la-ink);
	background: var(--nv-light-bg);
	border: 2.5px solid var(--la-ink);
	border-radius: 14px;
	padding: 11px 14px;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.la-form textarea { resize: vertical; min-height: 110px; }

.la-form input:focus,
.la-form select:focus,
.la-form textarea:focus {
	outline: none;
	box-shadow: 3px 3px 0 var(--nv-secondary-accent);
	transform: translate(-1px, -1px);
}

.la-form button[type="submit"] {
	justify-self: start;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 800;
	font-size: 15.5px;
	color: var(--la-ink);
	background: var(--nv-primary-accent);
	border: 3px solid var(--la-ink);
	border-radius: 999px;
	padding: 12px 28px;
	cursor: pointer;
	box-shadow: 5px 5px 0 var(--la-ink);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.la-form button[type="submit"]:hover {
	background: #ffb703;
	transform: translate(2px, 2px);
	box-shadow: 2px 2px 0 var(--la-ink);
}

.la-form-note {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 13px;
	color: var(--nv-text-color);
	margin-top: -4px;
}

.la-form-success,
.la-form-error {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 14.5px;
	border-radius: 14px;
	padding: 12px 16px;
	margin-bottom: 4px;
}

.la-form-success {
	background: rgba(158, 203, 61, 0.22);
	border: 2px solid var(--nv-c-1);
	color: var(--la-ink);
}

.la-form-error {
	background: rgba(244, 89, 45, 0.15);
	border: 2px solid var(--nv-primary-accent);
	color: var(--la-ink);
}

@media (max-width: 620px) {
	.la-form .la-form-row { grid-template-columns: 1fr; }
}

/* ---------- Blog listing ---------- */

.la-blog-grid {
	max-width: 1180px;
	margin: 50px auto 70px;
	padding: 0 24px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
}

.la-blog-card {
	background: #ffffff;
	border: 3px solid var(--la-ink);
	border-radius: var(--la-radius);
	overflow: hidden;
	box-shadow: 6px 6px 0 var(--la-ink);
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.la-blog-card:hover {
	transform: translate(-2px, -4px) rotate(-1deg);
	box-shadow: 8px 8px 0 var(--la-ink);
}

.la-blog-card .la-blog-thumb {
	aspect-ratio: 16 / 10;
	background: var(--nv-light-bg) center/cover no-repeat;
	border-bottom: 3px solid var(--la-ink);
}

.la-blog-card .la-blog-thumb.la-blog-thumb--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 40px;
}

.la-blog-card-body {
	padding: 20px 20px 22px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.la-blog-card .la-blog-date {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 12.5px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nv-secondary-accent);
	margin-bottom: 8px;
}

.la-blog-card h3 {
	font-family: var(--headingsfontfamily, var(--bodyfontfamily));
	font-weight: 800;
	font-size: 19px;
	margin: 0 0 10px;
	line-height: 1.3;
}

.la-blog-card h3 a {
	color: var(--la-ink);
	text-decoration: none;
}

.la-blog-card h3 a:hover { color: var(--nv-secondary-accent); }

.la-blog-card p {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-size: 14.5px;
	color: var(--nv-text-color);
	margin: 0 0 16px;
	flex: 1;
}

.la-blog-card .la-service-cta {
	align-self: flex-start;
}

.la-blog-empty {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
	padding: 40px 24px;
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	color: var(--nv-text-color);
}

.la-blog-pagination {
	max-width: 1180px;
	margin: 0 auto 70px;
	padding: 0 24px;
	display: flex;
	justify-content: center;
	gap: 10px;
}

.la-blog-pagination a,
.la-blog-pagination span {
	font-family: var(--bodyfontfamily, var(--nv-fallback-ff));
	font-weight: 700;
	font-size: 14px;
	color: var(--la-ink);
	background: #ffffff;
	border: 2.5px solid var(--la-ink);
	border-radius: 999px;
	padding: 8px 16px;
	text-decoration: none;
}

.la-blog-pagination .current {
	background: var(--nv-primary-accent);
}

.la-blog-pagination a:hover {
	background: var(--nv-light-bg);
}

@media (max-width: 900px) {
	.la-blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
	.la-blog-grid { grid-template-columns: 1fr; }
}
