/*
 * LittleNest — global styles (mobile-first).
 * All classes prefixed .ln- to avoid clashes with plugins.
 * Animations: transform/opacity only; disabled under prefers-reduced-motion.
 */

/* ==========================================================================
   1. Base
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ln-header-h) + 16px);
}

body {
	margin: 0;
	background: var(--ln-bg);
	color: var(--ln-text);
	font-family: var(--ln-font-body);
	font-size: var(--ln-fs-base);
	line-height: var(--ln-lh);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
	padding-bottom: 72px; /* mobile CTA bar */
}

@media (min-width: 1024px) {
	body {
		padding-bottom: 0;
	}
}

img,
svg,
video,
iframe {
	max-width: 100%;
	display: block;
}

img {
	height: auto;
}

h1,
h2,
h3,
h4 {
	font-family: var(--ln-font-head);
	color: var(--ln-ink);
	line-height: 1.2;
	margin: 0 0 var(--ln-s2);
	letter-spacing: -0.01em;
	text-wrap: balance;
}

h1,
h2 {
	font-weight: 800;
}

h3,
h4 {
	font-weight: 600;
}

p {
	margin: 0 0 var(--ln-s2);
}

a {
	color: var(--ln-plum-800);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
	transition: color var(--ln-dur) var(--ln-ease);
}

a:hover {
	color: var(--ln-pink-700);
}

ul[role="list"],
ol[role="list"] {
	list-style: none;
	margin: 0;
	padding: 0;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

:focus-visible {
	outline: 3px solid var(--ln-sun-500);
	outline-offset: 3px;
	border-radius: 6px;
}

.ln-main:focus {
	outline: none;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ln-skip {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 1000;
	padding: 12px 20px;
	background: var(--ln-sun-500);
	color: var(--ln-ink);
	font-weight: 800;
	border-radius: var(--ln-r-sm);
	transform: translateY(-150%);
	transition: transform 0.2s;
}

.ln-skip:focus {
	transform: none;
}

/* ==========================================================================
   2. Layout helpers
   ========================================================================== */
.ln-container {
	width: 100%;
	max-width: calc(var(--ln-container) + var(--ln-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--ln-gutter);
	position: relative;
}

.ln-container--narrow {
	max-width: calc(var(--ln-container-narrow) + var(--ln-gutter) * 2);
}

.ln-section {
	position: relative;
	padding-block: var(--ln-section);
	overflow-x: clip;
}

.ln-center {
	text-align: center;
}

.ln-center .ln-btn {
	margin-inline: auto;
}

.ln-hero + .ln-section,
.ln-hero + .ln-ann {
	padding-top: clamp(1.5rem, 4vw, 3.5rem);
}

.ln-404__actions .ln-btn,
.ln-cta-band__actions .ln-btn,
.ln-hero__actions .ln-btn {
	margin: 0;
}

.ln-prose + .ln-h3,
.ln-prose + .ln-checks {
	margin-top: var(--ln-s4);
}

p.ln-center {
	margin-top: var(--ln-s5);
	margin-bottom: 0;
}

.ln-split {
	display: grid;
	gap: var(--ln-s6);
	align-items: center;
}

@media (min-width: 900px) {
	.ln-split {
		grid-template-columns: 1fr 1fr;
		gap: clamp(2.5rem, 6vw, 6rem);
	}

	.ln-split--intro {
		grid-template-columns: 0.9fr 1.1fr;
	}

	.ln-split--wide-text {
		grid-template-columns: 1.4fr 0.8fr;
		align-items: start;
	}
}

@media (max-width: 899px) {
	.ln-split--reverse-mobile > :first-child {
		order: 2;
	}
}

.ln-grid {
	display: grid;
	gap: var(--ln-s4);
}

.ln-lead {
	font-size: var(--ln-fs-lead);
}

.ln-h3 {
	font-size: var(--ln-fs-h3);
}

.ln-note {
	display: flex;
	gap: 10px;
	align-items: center;
	font-weight: 700;
	color: var(--ln-violet-600);
}

.ln-note .ln-icon {
	flex: none;
}

.ln-notice {
	padding: var(--ln-s2);
	background: var(--ln-sun-100);
	border-radius: var(--ln-r-sm);
}

/* Prose (editor content) */
.ln-prose > *:last-child {
	margin-bottom: 0;
}

.ln-prose h2 {
	font-size: clamp(1.5rem, 1.4vw + 1rem, 2rem);
	margin-top: var(--ln-s5);
}

.ln-prose h3 {
	font-size: var(--ln-fs-h3);
	margin-top: var(--ln-s4);
}

.ln-prose ul,
.ln-prose ol {
	padding-left: 1.25em;
	margin: 0 0 var(--ln-s2);
}

.ln-prose li {
	margin-bottom: 6px;
}

.ln-prose li::marker {
	color: var(--ln-pink-500);
}

.ln-prose img {
	border-radius: var(--ln-r-md);
}

.ln-prose blockquote {
	margin: var(--ln-s4) 0;
	padding: var(--ln-s3) var(--ln-s4);
	border-left: 6px solid var(--ln-sun-500);
	background: var(--ln-sun-100);
	border-radius: 0 var(--ln-r-md) var(--ln-r-md) 0;
	font-size: var(--ln-fs-lead);
}

.ln-prose--center {
	max-width: 760px;
	margin: var(--ln-s6) auto 0;
	text-align: center;
}

/* ==========================================================================
   3. Buttons, pills, icon boxes
   ========================================================================== */
.ln-btn {
	--btn-bg: var(--ln-plum-800);
	--btn-fg: #fff;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 12px 26px;
	border: 2px solid transparent;
	border-radius: var(--ln-r-btn);
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.2;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	box-shadow: var(--ln-shadow-btn);
	transition: transform var(--ln-dur) var(--ln-ease-bounce), box-shadow var(--ln-dur) var(--ln-ease), background-color var(--ln-dur) var(--ln-ease), color var(--ln-dur) var(--ln-ease);
}

.ln-btn:hover,
.ln-btn:focus-visible {
	color: var(--btn-fg);
}

.ln-btn__icon {
	width: 18px;
	height: 18px;
	transition: transform var(--ln-dur) var(--ln-ease);
}

.ln-btn--primary {
	--btn-bg: var(--ln-plum-800);
}

.ln-btn--sun {
	--btn-bg: var(--ln-sun-500);
	--btn-fg: var(--ln-ink);
}

.ln-btn--light {
	--btn-bg: #fff;
	--btn-fg: var(--ln-ink);
}

.ln-btn--ghost {
	--btn-bg: transparent;
	--btn-fg: #fff;
	border-color: rgba(255, 255, 255, 0.7);
	box-shadow: none;
}

.ln-btn--ghost-dark {
	--btn-bg: transparent;
	--btn-fg: var(--ln-plum-800);
	border-color: var(--ln-plum-800);
	box-shadow: none;
}

.ln-btn:disabled {
	opacity: 0.7;
	cursor: progress;
}

@media (hover: hover) and (pointer: fine) {
	.ln-btn:hover {
		transform: translateY(-3px) rotate(-1deg);
		box-shadow: var(--ln-shadow-btn-hover);
	}

	.ln-btn:hover .ln-btn__icon {
		transform: translateX(4px);
	}

	.ln-btn--ghost:hover {
		background: rgba(255, 255, 255, 0.14);
		box-shadow: none;
	}

	.ln-btn--ghost-dark:hover {
		background: var(--ln-lavender-100);
		box-shadow: none;
	}
}

.ln-btn:active {
	transform: translateY(1px);
}

.ln-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 var(--ln-s2);
	padding: 6px 16px;
	border-radius: var(--ln-r-pill);
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: var(--ln-fs-xs);
	letter-spacing: 0.02em;
}

.ln-pill .ln-icon {
	width: 16px;
	height: 16px;
}

.ln-pill--glass {
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.3);
	backdrop-filter: blur(6px);
}

.ln-pill--age {
	background: var(--c-tint, var(--ln-lavender-100));
	color: var(--ln-ink);
}

.ln-iconbox {
	--ib: var(--ln-pink-300);
	flex: none;
	display: inline-grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 46% 54% 50% 50% / 54% 46% 54% 46%;
	background: var(--ib);
	color: #fff;
	box-shadow: inset 0 -5px 0 rgba(0, 0, 0, 0.08), 0 8px 18px -8px var(--ib);
	transition: transform 0.5s var(--ln-ease-bounce);
}

.ln-iconbox .ln-icon {
	width: 26px;
	height: 26px;
	stroke-width: 2.1;
}

.ln-iconbox--pink { --ib: #ff5fa8; }
.ln-iconbox--green { --ib: #7cc243; }
.ln-iconbox--yellow { --ib: #ffb100; }
.ln-iconbox--blue { --ib: #23a9ef; }
.ln-iconbox--purple { --ib: #8e5be8; }

.ln-round-btn {
	display: inline-grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 50%;
	background: #b9b6c4;
	color: #fff;
	cursor: pointer;
	box-shadow: 0 5px 0 -1px rgba(43, 38, 69, 0.18);
	transition: transform var(--ln-dur) var(--ln-ease-bounce), background-color var(--ln-dur);
}

.ln-round-btn--pink {
	background: var(--ln-pink-300);
}

.ln-round-btn .ln-icon {
	width: 20px;
	height: 20px;
}

@media (hover: hover) and (pointer: fine) {
	.ln-round-btn:hover {
		transform: translateY(-3px) scale(1.05);
		background: var(--ln-plum-800);
	}
}

.ln-round-btn[disabled] {
	opacity: 0.45;
	cursor: default;
}

/* Colour themes for cards (programs, team, steps) */
.ln-c-pink { --c: #ff5fa8; --c-tint: var(--ln-pink-100); --c-strong: var(--ln-pink-700); }
.ln-c-orange,
.ln-c-yellow { --c: #ffb100; --c-tint: var(--ln-sun-100); --c-strong: var(--ln-orange-700); }
.ln-c-green { --c: #7cc243; --c-tint: var(--ln-green-100); --c-strong: var(--ln-green-700); }
.ln-c-purple { --c: #8e5be8; --c-tint: var(--ln-lavender-100); --c-strong: var(--ln-violet-600); }
.ln-c-blue { --c: #23a9ef; --c-tint: var(--ln-sky-100); --c-strong: var(--ln-blue-700); }

/* ==========================================================================
   4. Section heads, decor, edges
   ========================================================================== */
.ln-head {
	margin-bottom: var(--ln-s5);
}

.ln-head--center {
	text-align: center;
	max-width: 720px;
	margin-inline: auto;
}

.ln-head__title {
	font-size: var(--ln-fs-h2);
	margin-bottom: var(--ln-s2);
	position: relative;
}

.ln-head__title::after {
	content: "";
	display: block;
	width: 56px;
	height: 8px;
	margin-top: 14px;
	border-radius: 8px;
	background: linear-gradient(90deg, var(--ln-pink-500) 0 33%, var(--ln-sun-500) 33% 66%, var(--ln-sky-500) 66%);
}

.ln-head--center .ln-head__title::after {
	margin-inline: auto;
}

.ln-head__text {
	font-size: var(--ln-fs-lead);
	color: var(--ln-muted);
	margin-bottom: 0;
}

.ln-decor {
	position: absolute;
	pointer-events: none;
	z-index: 0;
}

.ln-section > .ln-container {
	z-index: 1;
}

.ln-dot {
	position: absolute;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}

.ln-edge {
	position: absolute;
	left: 0;
	width: 100%;
	height: 28px;
	color: var(--edge, var(--band-bg, #fff));
	pointer-events: none;
	z-index: 1;
}

.ln-edge--top {
	top: -27px;
}

.ln-edge--bottom {
	bottom: -27px;
	transform: scaleY(-1);
}

@media (min-width: 768px) {
	.ln-edge {
		height: 40px;
	}

	.ln-edge--top {
		top: -39px;
	}

	.ln-edge--bottom {
		bottom: -39px;
	}
}

.ln-band {
	background: var(--band-bg);
	color: rgba(255, 255, 255, 0.9);
	overflow-x: clip;
	overflow-y: visible;
}

.ln-band .ln-head__title,
.ln-band h2,
.ln-band h3 {
	color: #fff;
}

.ln-band .ln-head__text {
	color: rgba(255, 255, 255, 0.85);
}

.ln-band--indigo {
	--band-bg: var(--ln-indigo-700);
}

.ln-band--violet {
	--band-bg: var(--ln-purple-700);
	background: radial-gradient(38% 55% at 82% 50%, #9d1fd6 0%, rgba(157, 31, 214, 0) 100%), var(--ln-purple-700);
	--edge: var(--ln-purple-700);
}

/* ==========================================================================
   5. Header & navigation
   ========================================================================== */
.ln-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	height: var(--ln-header-h);
	transition: background-color 0.35s var(--ln-ease), box-shadow 0.35s var(--ln-ease), height 0.35s var(--ln-ease);
}

.ln-header__inner {
	height: 100%;
	display: flex;
	align-items: center;
	gap: var(--ln-s2);
}

.ln-header.is-scrolled {
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 8px 30px -14px rgba(43, 38, 69, 0.28);
	backdrop-filter: saturate(1.4) blur(12px);
}

@media (min-width: 1024px) {
	.ln-header.is-scrolled {
		height: 72px;
	}
}

/* Logo */
.ln-logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: #fff;
	margin-right: auto;
	flex: none;
}

.ln-logo__mark {
	width: 46px;
	height: 46px;
	transition: transform 0.5s var(--ln-ease-bounce);
}

.ln-logo__text {
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}

.ln-logo__name {
	font-family: var(--ln-font-head);
	font-weight: 800;
	font-size: 1.125rem;
	letter-spacing: -0.01em;
}

.ln-logo__sub {
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: 0.625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.85;
	margin-top: 4px;
}

.ln-logo__img {
	max-height: 52px;
	width: auto;
}

@media (hover: hover) and (pointer: fine) {
	.ln-logo:hover .ln-logo__mark {
		transform: rotate(-8deg) scale(1.06);
	}
}

.ln-header.is-scrolled .ln-logo,
.ln-nav__top .ln-logo {
	color: var(--ln-ink);
}

.ln-header.is-scrolled .ln-logo__sub,
.ln-nav__top .ln-logo__sub {
	color: var(--ln-pink-700);
	opacity: 1;
}

.ln-header__cta {
	display: none;
	min-height: 46px;
	padding: 10px 22px;
}

.ln-header__cta .ln-btn__icon {
	display: none;
}

@media (min-width: 640px) {
	.ln-header__cta {
		display: inline-flex;
	}
}

/* Burger */
.ln-burger {
	display: inline-grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	cursor: pointer;
}

.ln-header.is-scrolled .ln-burger {
	background: var(--ln-lavender-100);
	color: var(--ln-ink);
}

/* Mobile nav panel */
.ln-nav {
	position: fixed;
	inset: 0 0 0 auto;
	z-index: 120;
	width: min(88vw, 380px);
	visibility: hidden;
	transform: translateX(100%);
	transition: transform 0.45s var(--ln-ease), visibility 0s linear 0.45s;
}

.ln-nav.is-open {
	visibility: visible;
	transform: none;
	transition: transform 0.45s var(--ln-ease), visibility 0s;
}

.ln-nav__panel {
	height: 100%;
	overflow-y: auto;
	background: #fff;
	padding: 16px 20px 32px;
	box-shadow: -20px 0 60px -20px rgba(43, 38, 69, 0.4);
	border-radius: 28px 0 0 28px;
	display: flex;
	flex-direction: column;
}

.ln-nav__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.ln-nav__close {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 14px;
	background: var(--ln-lavender-100);
	color: var(--ln-ink);
	cursor: pointer;
}

.ln-nav__overlay {
	position: fixed;
	inset: 0;
	z-index: 110;
	background: rgba(30, 20, 60, 0.45);
	backdrop-filter: blur(2px);
}

.ln-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ln-nav__list > li {
	position: relative;
	border-bottom: 1px solid var(--ln-line);
}

.ln-nav__link {
	display: flex;
	align-items: center;
	min-height: 52px;
	padding: 8px 52px 8px 4px;
	color: var(--ln-ink);
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: 1.0625rem;
	text-decoration: none;
}

.ln-nav .current-menu-item > .ln-nav__link,
.ln-nav .current-menu-ancestor > .ln-nav__link,
.ln-nav .current_page_item > .ln-nav__link {
	color: var(--ln-pink-700);
}

.ln-nav__sub-toggle {
	position: absolute;
	right: 0;
	top: 2px;
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: var(--ln-ink);
	cursor: pointer;
}

.ln-nav__sub-toggle .ln-icon {
	transition: transform 0.3s var(--ln-ease);
}

.ln-nav__sub-toggle[aria-expanded="true"] .ln-icon {
	transform: rotate(180deg);
}

.ln-nav .sub-menu {
	display: none;
	list-style: none;
	margin: 0 0 12px;
	padding: 4px 0 4px 14px;
	border-left: 3px solid var(--ln-pink-100);
}

.ln-nav .sub-menu.is-open {
	display: block;
}

.ln-nav .sub-menu a {
	display: block;
	padding: 10px 8px;
	min-height: 44px;
	color: var(--ln-text);
	text-decoration: none;
	font-weight: 700;
}

.ln-nav__extras {
	margin-top: auto;
	padding-top: 24px;
	display: grid;
	gap: 14px;
}

.ln-nav__call {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	font-weight: 800;
	color: var(--ln-ink);
	text-decoration: none;
}

body.ln-nav-open {
	overflow: hidden;
}

/* Desktop nav */
@media (min-width: 1200px) {
	.ln-burger,
	.ln-nav__top,
	.ln-nav__extras,
	.ln-nav__overlay {
		display: none !important;
	}

	.ln-nav {
		position: static;
		width: auto;
		visibility: visible;
		transform: none;
		transition: none;
		margin-right: 8px;
	}

	.ln-nav__panel {
		background: none;
		padding: 0;
		box-shadow: none;
		border-radius: 0;
		overflow: visible;
		display: block;
	}

	.ln-nav__list {
		display: flex;
		align-items: center;
		gap: 2px;
	}

	.ln-nav__list > li {
		border: 0;
	}

	.ln-nav__link {
		min-height: 44px;
		padding: 8px 14px;
		font-size: 0.9375rem;
		color: #fff;
		position: relative;
	}

	.ln-nav__link::after {
		content: "";
		position: absolute;
		left: 14px;
		right: 14px;
		bottom: 6px;
		height: 3px;
		border-radius: 3px;
		background: var(--ln-sun-500);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.35s var(--ln-ease);
	}

	.ln-nav__link:hover::after,
	.ln-nav .current-menu-item > .ln-nav__link::after,
	.ln-nav .current-menu-ancestor > .ln-nav__link::after,
	.ln-nav .current_page_item > .ln-nav__link::after {
		transform: scaleX(1);
	}

	.ln-nav .current-menu-item > .ln-nav__link,
	.ln-nav .current-menu-ancestor > .ln-nav__link,
	.ln-nav .current_page_item > .ln-nav__link,
	.ln-nav__link:hover {
		color: #fff;
	}

	.ln-header.is-scrolled .ln-nav__link {
		color: var(--ln-ink);
	}

	.ln-header.is-scrolled .current-menu-item > .ln-nav__link,
	.ln-header.is-scrolled .current-menu-ancestor > .ln-nav__link {
		color: var(--ln-pink-700);
	}

	.menu-item-has-children > .ln-nav__link {
		padding-right: 30px;
	}

	.ln-nav__sub-toggle {
		width: 28px;
		height: 28px;
		right: 2px;
		top: 50%;
		transform: translateY(-50%);
		color: inherit;
	}

	.ln-nav__list > li > .ln-nav__sub-toggle {
		color: #fff;
	}

	.ln-header.is-scrolled .ln-nav__list > li > .ln-nav__sub-toggle {
		color: var(--ln-ink);
	}

	.ln-nav__sub-toggle .ln-icon {
		width: 16px;
		height: 16px;
	}

	.ln-nav .sub-menu {
		display: block;
		position: absolute;
		top: calc(100% + 8px);
		left: 0;
		min-width: 230px;
		margin: 0;
		padding: 10px;
		border: 0;
		background: #fff;
		border-radius: 20px;
		box-shadow: var(--ln-shadow-lg);
		opacity: 0;
		visibility: hidden;
		transform: translateY(8px);
		transition: opacity 0.25s var(--ln-ease), transform 0.25s var(--ln-ease), visibility 0s linear 0.25s;
	}

	.ln-nav .sub-menu::before {
		content: "";
		position: absolute;
		inset: -12px 0 auto;
		height: 12px;
	}

	.ln-nav li:hover > .sub-menu,
	.ln-nav li:focus-within > .sub-menu,
	.ln-nav .sub-menu.is-open {
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: opacity 0.25s var(--ln-ease), transform 0.25s var(--ln-ease), visibility 0s;
	}

	.ln-nav .sub-menu a {
		border-radius: 12px;
		padding: 10px 14px;
		color: var(--ln-ink);
		transition: background-color 0.2s, color 0.2s, transform 0.2s var(--ln-ease);
	}

	.ln-nav .sub-menu a:hover {
		background: var(--ln-lavender-100);
		color: var(--ln-plum-800);
		transform: translateX(4px);
	}
}

/* ==========================================================================
   6. Hero
   ========================================================================== */
.ln-hero {
	--hero-bg: linear-gradient(135deg, #8a1fd6 0%, #6a10b8 50%, #4a0b92 100%);
	position: relative;
	isolation: isolate;
	color: #fff;
	background: var(--hero-bg);
	/*
	 * 1.3.0: the cloud edge is an SVG with a 6:1 ratio drawn at 160% width (mobile) or
	 * 106% width (768px+), so its height is 26.7% / 17.7% of the hero width.
	 * Padding percentages resolve against width too, so reserving exactly that height
	 * (plus a gap) keeps every line of text, the buttons and the photo clear of the
	 * clouds at any screen size. Previously a fixed max (10–12rem) let the clouds rise
	 * into the paragraph on wide screens.
	 */
	--ln-cloud-h: 26.7%;
	padding-top: calc(var(--ln-header-h) + clamp(1.5rem, 4vw, 3rem));
	padding-bottom: calc(var(--ln-cloud-h) + clamp(1.25rem, 3vw, 2.75rem));
	overflow: clip;
}

@media (min-width: 768px) {
	.ln-hero {
		--ln-cloud-h: 17.7%;
	}
}

.ln-hero--purple {
	--hero-bg: radial-gradient(60% 70% at 72% 35%, #b42be8 0%, rgba(180, 43, 232, 0) 70%), linear-gradient(135deg, #8a1fd6 0%, #6a10b8 50%, #4a0b92 100%);
}

.ln-hero--blue {
	--hero-bg: radial-gradient(55% 70% at 75% 30%, #3d8cf0 0%, rgba(61, 140, 240, 0) 70%), linear-gradient(120deg, #0e1b4d 0%, #1f3fb0 50%, #2b6fd8 100%);
}

.ln-hero--berry {
	--hero-bg: radial-gradient(55% 70% at 75% 35%, #d43a7a 0%, rgba(212, 58, 122, 0) 70%), linear-gradient(120deg, #4b1c78 0%, #8e1a6b 55%, #a8163f 100%);
}

.ln-hero--violet {
	--hero-bg: radial-gradient(55% 70% at 75% 30%, #8c6cf0 0%, rgba(140, 108, 240, 0) 70%), linear-gradient(120deg, #2a46b0 0%, #5a46d0 50%, #7a3fd0 100%);
}

.ln-hero--pink {
	--hero-bg: radial-gradient(55% 70% at 75% 35%, #ea4b9c 0%, rgba(234, 75, 156, 0) 70%), linear-gradient(120deg, #8f1063 0%, #b8127a 55%, #9c0f66 100%);
}

.ln-hero--slate {
	--hero-bg: radial-gradient(55% 70% at 75% 30%, #7d76b8 0%, rgba(125, 118, 184, 0) 70%), linear-gradient(120deg, #2e4a6b 0%, #4c5b8f 50%, #5e4e8c 100%);
}

.ln-hero__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
}

.ln-hero__watermark {
	position: absolute;
	right: -2vw;
	top: calc(var(--ln-header-h) - 2vw);
	font-family: var(--ln-font-head);
	font-weight: 800;
	font-size: clamp(7rem, 26vw, 24rem);
	line-height: 0.8;
	letter-spacing: -0.04em;
	color: rgba(255, 255, 255, 0.06);
	user-select: none;
}

.ln-hero__s1 { position: absolute; top: 22%; right: 6%; width: 20px; color: var(--ln-pink-500); }
.ln-hero__s2 { position: absolute; top: 58%; left: 46%; width: 16px; color: var(--ln-sky-300); animation-delay: -1.2s; }
.ln-hero__s3 { position: absolute; top: 34%; right: 3%; width: 14px; color: var(--ln-sky-500); animation-delay: -2.4s; }
.ln-hero__d1 { top: 40%; left: 42%; color: #ff6fb1; }
.ln-hero__d2 { top: 74%; left: 30%; color: #8fdbff; width: 6px; height: 6px; }
.ln-hero__d3 { top: 18%; left: 55%; color: #ffd25a; width: 6px; height: 6px; }

.ln-hero__planet {
	position: absolute;
	right: 4%;
	bottom: 12%;
	width: clamp(64px, 9vw, 120px);
}

.ln-hero__rocket {
	position: absolute;
	right: 2%;
	top: 46%;
	width: clamp(36px, 4.5vw, 62px);
	transform: rotate(32deg);
	display: none;
}

@media (min-width: 1200px) {
	.ln-hero__rocket {
		display: block;
	}
}

.ln-hero__inner {
	display: grid;
	gap: var(--ln-s4);
	align-items: center;
}

.ln-hero__content {
	position: relative;
	z-index: 2;
	max-width: 620px;
}

.ln-hero__title {
	color: #fff;
	font-size: var(--ln-fs-h1);
	line-height: 1.08;
	margin-bottom: var(--ln-s2);
	letter-spacing: -0.025em;
}

p.ln-hero__title {
	font-family: var(--ln-font-head);
	font-weight: 800;
}

.ln-hero__text {
	font-size: var(--ln-fs-lead);
	color: rgba(255, 255, 255, 0.92);
	max-width: 520px;
	margin-bottom: 0;
}

.ln-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: var(--ln-s4);
}

.ln-hero__media {
	position: relative;
	width: min(66vw, 260px);
	aspect-ratio: 1;
	margin-inline: auto;
}

.ln-hero__ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	animation: ln-spin 60s linear infinite;
	filter: drop-shadow(0 18px 30px rgba(20, 0, 60, 0.3));
}

.ln-hero__photo {
	position: absolute;
	inset: 15%;
	border-radius: 50%;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.1);
	box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.12);
}

.ln-hero__photo img,
.ln-hero__photo svg {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ln-hero__burst {
	position: absolute;
	width: 16%;
	color: #fff;
}

.ln-hero__burst--l {
	left: -12%;
	top: 4%;
}

.ln-hero__burst--r {
	right: -12%;
	top: 6%;
	transform: scaleX(-1);
}

.ln-hero__clouds {
	position: absolute;
	left: -30%;
	bottom: -2px;
	width: 160%;
	max-width: none;
	height: auto;
	color: var(--ln-bg);
	z-index: 1;
	animation: ln-drift 18s ease-in-out infinite alternate;
}

@media (min-width: 768px) {
	.ln-hero__clouds {
		left: -3%;
		width: 106%;
	}
}

/* Breadcrumbs */
.ln-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 0;
	list-style: none;
	margin: 0 0 var(--ln-s2);
	padding: 0;
	font-size: var(--ln-fs-sm);
	font-weight: 700;
}

.ln-crumbs li + li::before {
	content: "›";
	margin: 0 10px;
	opacity: 0.7;
}

.ln-crumbs a {
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
}

.ln-crumbs a:hover {
	color: #fff;
	text-decoration: underline;
}

.ln-crumbs [aria-current] {
	color: var(--ln-sun-300);
	display: inline-block;
	max-width: min(32ch, 70vw);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}

@media (min-width: 900px) {
	.ln-hero__inner {
		grid-template-columns: 1.1fr 0.9fr;
		gap: var(--ln-s6);
		min-height: 360px;
	}

	.ln-hero__media {
		width: min(100%, 420px);
		margin-right: 0;
	}
}

/* Home hero (bottom padding is cloud-aware on .ln-hero, see section 6). */

/* 1.3.0: photo sits on the same sun-cream as the old nest illustration, so there is
   no flash of purple while it loads and the studio backdrop blends into the ring. */
.ln-hero__photo--cream {
	background: var(--ln-sun-100);
}

.ln-hero__eyebrow {
	margin-bottom: var(--ln-s3);
}

.ln-hero__kicker {
	display: block;
	font-size: clamp(1rem, 0.6vw + 0.9rem, 1.25rem);
	font-weight: 600;
	letter-spacing: 0;
	color: var(--ln-sun-300);
	margin-bottom: 12px;
}

.ln-hero__big {
	display: block;
	font-size: var(--ln-fs-display);
	line-height: 1.02;
}

.ln-hero--home .ln-hero__media {
	width: min(84vw, 360px);
	margin-top: var(--ln-s3);
}

@media (min-width: 900px) {
	.ln-hero--home .ln-hero__inner {
		min-height: 560px;
	}

	.ln-hero--home .ln-hero__media {
		width: min(100%, 520px);
		margin-top: 0;
	}
}

.ln-hero__tag {
	position: absolute;
	z-index: 3;
	padding: 8px 14px;
	border-radius: 14px 18px 14px 16px;
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: clamp(0.75rem, 0.4vw + 0.65rem, 0.9375rem);
	line-height: 1.2;
	color: var(--ln-ink);
	box-shadow: 0 10px 24px -10px rgba(20, 0, 60, 0.5);
	white-space: nowrap;
	animation: ln-bob 5s ease-in-out infinite;
}

.ln-hero__tag--1 {
	top: 4%;
	left: -2%;
	background: var(--ln-sun-500);
	--r: -10deg;
}

.ln-hero__tag--2 {
	top: 30%;
	right: -6%;
	background: var(--ln-sky-300);
	--r: 12deg;
	animation-delay: -1.5s;
}

.ln-hero__tag--3 {
	bottom: 10%;
	right: 0;
	background: var(--ln-pink-300);
	--r: -6deg;
	animation-delay: -3s;
}

/* ==========================================================================
   7. Blob images
   ========================================================================== */
.ln-blob {
	--blob-bg: var(--ln-pink-100);
	--ring: var(--ln-sky-100);
	--dot: var(--ln-pink-300);
	position: relative;
	width: min(100%, 480px);
	aspect-ratio: 8 / 7;
	margin: 0 auto;
}

.ln-blob--blue { --blob-bg: var(--ln-sky-100); --ring: #ffe1ef; --dot: var(--ln-sun-500); }
.ln-blob--yellow { --blob-bg: var(--ln-sun-100); --ring: var(--ln-lavender-200); --dot: var(--ln-pink-300); }
.ln-blob--green { --blob-bg: var(--ln-green-100); --ring: var(--ln-sun-100); --dot: var(--ln-sky-500); }

.ln-blob__shape {
	position: absolute;
	inset: 0;
	border-radius: var(--ln-r-blob);
	overflow: hidden;
	background: var(--blob-bg);
	box-shadow: var(--ln-shadow-lg);
	z-index: 1;
	animation: ln-morph 16s ease-in-out infinite alternate;
}

.ln-blob__shape img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--ln-ease);
}

.ln-blob__svg {
	width: 84%;
	height: 84%;
	margin: 8%;
}

.ln-blob__ring {
	position: absolute;
	width: 62%;
	aspect-ratio: 1;
	left: -10%;
	bottom: -10%;
	border: clamp(10px, 1.6vw, 16px) solid var(--ring);
	border-radius: 50%;
	z-index: 0;
}

.ln-blob__dot {
	position: absolute;
	width: 18%;
	aspect-ratio: 1;
	top: -4%;
	left: 6%;
	border-radius: 50%;
	background: var(--dot);
	z-index: 2;
	animation: ln-bob 6s ease-in-out infinite;
}

@media (hover: hover) and (pointer: fine) {
	.ln-blob:hover .ln-blob__shape img {
		transform: scale(1.06);
	}
}

/* ==========================================================================
   8. Feature lists, checks, cards
   ========================================================================== */
.ln-features {
	display: grid;
	gap: var(--ln-s3);
	margin-bottom: var(--ln-s5) !important;
}

@media (min-width: 560px) {
	.ln-features {
		grid-template-columns: 1fr 1fr;
	}
}

.ln-feature {
	display: flex;
	gap: 16px;
	align-items: center;
}

.ln-feature__title {
	display: block;
	font-family: var(--ln-font-head);
	font-weight: 600;
	color: var(--ln-ink);
	line-height: 1.3;
	font-size: 1.0625rem;
}

.ln-feature__text {
	display: block;
	font-size: var(--ln-fs-sm);
	color: var(--ln-muted);
	line-height: 1.5;
	margin-top: 2px;
}

.ln-features--light .ln-feature__title {
	color: #fff;
	font-size: 1.125rem;
}

@media (hover: hover) and (pointer: fine) {
	.ln-feature:hover .ln-iconbox,
	.ln-fcard:hover .ln-iconbox,
	.ln-step:hover .ln-iconbox,
	.ln-album:hover .ln-iconbox,
	.ln-clist__item:hover .ln-iconbox {
		transform: rotate(-10deg) scale(1.08);
	}
}

.ln-checks {
	display: grid;
	gap: 12px;
	margin-bottom: var(--ln-s5) !important;
}

.ln-checks--2 {
	grid-template-columns: 1fr;
}

@media (min-width: 480px) {
	.ln-checks--2 {
		grid-template-columns: 1fr 1fr;
	}
}

.ln-checks li {
	display: flex;
	gap: 12px;
	align-items: center;
	font-family: var(--ln-font-head);
	font-weight: 600;
	color: var(--ln-ink);
	line-height: 1.35;
}

.ln-checks__pencil {
	flex: none;
	width: 40px;
	transform: rotate(-35deg);
}

.ln-checks__tick {
	flex: none;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--ln-green-100);
	color: var(--ln-green-700);
}

.ln-checks__tick .ln-icon {
	width: 18px;
	height: 18px;
	stroke-width: 3;
}

.ln-fcards {
	display: grid;
	gap: var(--ln-s3);
	margin-top: var(--ln-s5) !important;
}

@media (min-width: 560px) {
	.ln-fcards {
		grid-template-columns: 1fr 1fr;
	}
}

.ln-fcard {
	padding: var(--ln-s3);
	border-radius: var(--ln-r-md);
	background: #fff;
	border: 1px solid var(--ln-line);
	box-shadow: var(--ln-shadow-sm);
	transition: transform var(--ln-dur) var(--ln-ease), box-shadow var(--ln-dur) var(--ln-ease);
}

.ln-fcard__title {
	font-size: 1.0625rem;
	margin: 14px 0 6px;
}

.ln-fcard p {
	font-size: var(--ln-fs-sm);
	color: var(--ln-muted);
	margin: 0;
	line-height: 1.55;
}

@media (hover: hover) and (pointer: fine) {
	.ln-fcard:hover {
		transform: translateY(-6px);
		box-shadow: var(--ln-shadow-md);
	}
}

/* Program cards */
.ln-grid--programs {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: var(--ln-s5) var(--ln-s4);
}

.ln-pcard {
	text-align: center;
	display: flex;
	flex-direction: column;
	position: relative;
}

.ln-pcard__media {
	position: relative;
	display: block;
	aspect-ratio: 5 / 4;
	margin: 0 6% var(--ln-s3);
	border-radius: 34% 30% 32% 28% / 30% 34% 28% 32%;
	overflow: hidden;
	background: var(--c-tint);
	transform: rotate(-3deg);
	box-shadow: 10px 12px 0 -2px var(--ln-lavender-200), var(--ln-shadow-md);
	transition: transform 0.5s var(--ln-ease-bounce), box-shadow 0.5s var(--ln-ease);
}

.ln-pcard__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ln-ease);
}

.ln-pcard__art {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
}

.ln-pcard__art svg {
	width: 58%;
}

.ln-pcard__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
}

.ln-pcard__body .ln-pill {
	margin-bottom: 10px;
}

.ln-pcard__title {
	font-size: 1.375rem;
	font-weight: 800;
	margin-bottom: 6px;
}

.ln-pcard__title a {
	color: var(--c-strong);
	text-decoration: none;
}

.ln-pcard__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ln-pcard__text {
	font-size: var(--ln-fs-sm);
	color: var(--ln-muted);
	line-height: 1.55;
	max-width: 30ch;
}

.ln-pcard__more {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: var(--ln-fs-sm);
	color: var(--ln-plum-800);
}

.ln-pcard__more .ln-icon {
	width: 16px;
	height: 16px;
	transition: transform var(--ln-dur) var(--ln-ease);
}

.ln-pcard:focus-within .ln-pcard__media {
	outline: 3px solid var(--ln-sun-500);
	outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
	.ln-pcard:hover .ln-pcard__media {
		transform: rotate(0deg) translateY(-8px);
		box-shadow: 14px 18px 0 -2px var(--c-tint), var(--ln-shadow-lg);
	}

	.ln-pcard:hover .ln-pcard__media img {
		transform: scale(1.07);
	}

	.ln-pcard:hover .ln-pcard__more .ln-icon {
		transform: translateX(4px);
	}
}

.ln-programs__balloon {
	right: 4%;
	top: 6%;
	width: clamp(36px, 5vw, 60px);
	color: var(--ln-orange-500);
}

.ln-programs__kite {
	left: 3%;
	bottom: 8%;
	width: clamp(60px, 8vw, 110px);
}

.ln-programs--purple {
	--band-bg: var(--ln-purple-700);
	--edge: var(--ln-purple-700);
	background: radial-gradient(40% 50% at 15% 50%, #9d1fd6 0%, rgba(157, 31, 214, 0) 100%), radial-gradient(40% 50% at 88% 60%, #6a10b8 0%, rgba(106, 16, 184, 0) 100%), var(--ln-purple-700);
	color: rgba(255, 255, 255, 0.9);
}

.ln-programs--purple .ln-head__title,
.ln-programs--purple .ln-pcard__title a {
	color: #fff;
}

.ln-programs--purple .ln-head__text,
.ln-programs--purple .ln-pcard__text {
	color: rgba(255, 255, 255, 0.85);
}

.ln-programs--purple .ln-pcard__more {
	color: var(--ln-sun-300);
}

.ln-programs--purple .ln-pcard__media {
	box-shadow: 10px 12px 0 -2px rgba(255, 255, 255, 0.2), 0 20px 40px -20px rgba(0, 0, 0, 0.5);
}

/* Team cards */
.ln-grid--team {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
	gap: var(--ln-s6) var(--ln-s4);
}

.ln-tcard {
	text-align: center;
}

.ln-tcard__media {
	position: relative;
	width: min(100%, 240px);
	aspect-ratio: 1;
	margin: 0 auto var(--ln-s3);
}

.ln-tcard__media::before {
	content: "";
	position: absolute;
	inset: -4% -2% 2% 2%;
	border-radius: 58% 42% 50% 50% / 44% 58% 42% 56%;
	background: var(--c);
	transition: transform 0.6s var(--ln-ease-bounce);
}

.ln-tcard__media img,
.ln-tcard__initial {
	position: relative;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 44% 56% 50% 50% / 52% 44% 56% 48%;
	transition: transform 0.6s var(--ln-ease), border-radius 0.6s var(--ln-ease);
}

.ln-tcard__initial {
	display: grid;
	place-items: center;
	background: var(--c-tint);
	font-family: var(--ln-font-head);
	font-weight: 800;
	font-size: 4rem;
	color: var(--c-strong);
}

.ln-tcard__name {
	font-size: 1.3125rem;
	font-weight: 800;
	color: var(--ln-pink-700);
	margin-bottom: 4px;
}

.ln-tcard__role {
	color: var(--ln-muted);
	font-weight: 700;
	margin: 0;
	font-size: var(--ln-fs-sm);
}

.ln-tcard__qual {
	color: var(--ln-muted);
	font-size: var(--ln-fs-xs);
	margin: 4px 0 0;
}

@media (hover: hover) and (pointer: fine) {
	.ln-tcard:hover .ln-tcard__media::before {
		transform: rotate(12deg) scale(1.04);
	}

	.ln-tcard:hover .ln-tcard__media img {
		transform: translateY(-6px);
		border-radius: 50%;
	}
}

.ln-team__kite {
	left: 2%;
	top: 10%;
	width: clamp(60px, 7vw, 100px);
}

.ln-team__rings {
	right: -40px;
	bottom: 10%;
	width: clamp(120px, 16vw, 220px);
	color: #c9a6e8;
	opacity: 0.6;
}

/* News cards */
.ln-ncard {
	display: grid;
	gap: var(--ln-s3);
	align-items: start;
	padding: 14px;
	border-radius: var(--ln-r-lg);
	background: #fff;
	transition: transform var(--ln-dur) var(--ln-ease), box-shadow var(--ln-dur) var(--ln-ease);
	position: relative;
}

@media (min-width: 560px) {
	.ln-ncard {
		grid-template-columns: 44% 1fr;
	}
}

.ln-ncard__media {
	display: block;
	aspect-ratio: 4 / 3.4;
	border-radius: 30% 24% 26% 22% / 26% 30% 22% 28%;
	overflow: hidden;
	background: var(--ln-lavender-100);
	box-shadow: 6px 8px 0 -1px var(--ln-lavender-200);
}

.ln-ncard__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ln-ease);
}

.ln-ncard__art {
	display: grid;
	place-items: center;
	height: 100%;
}

.ln-ncard__art svg {
	width: 60%;
}

.ln-ncard__date {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--ln-fs-xs);
	color: var(--ln-muted);
	font-weight: 700;
	margin-bottom: 8px;
}

.ln-ncard__date .ln-icon {
	color: var(--ln-sky-500);
	width: 20px;
	height: 20px;
}

.ln-ncard__title {
	font-size: 1.125rem;
	line-height: 1.3;
	margin-bottom: 8px;
}

.ln-ncard__title a {
	color: var(--ln-ink);
	text-decoration: none;
	background: linear-gradient(var(--ln-sun-300), var(--ln-sun-300)) 0 100% / 0 6px no-repeat;
	transition: background-size 0.5s var(--ln-ease);
}

.ln-ncard__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.ln-ncard__text {
	font-size: var(--ln-fs-sm);
	color: var(--ln-muted);
	line-height: 1.6;
	margin: 0;
}

.ln-ncard:focus-within {
	outline: 3px solid var(--ln-sun-500);
	outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
	.ln-ncard:hover {
		transform: translateY(-6px);
		box-shadow: var(--ln-shadow-md);
	}

	.ln-ncard:hover .ln-ncard__media img {
		transform: scale(1.07);
	}

	.ln-ncard:hover .ln-ncard__title a {
		background-size: 100% 6px;
	}
}

/* ==========================================================================
   9. Carousels (CSS scroll-snap + tiny JS for buttons)
   ========================================================================== */
.ln-carousel {
	position: relative;
}

.ln-track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: var(--slide, 86%);
	gap: var(--ln-s3);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding: 12px 4px 24px;
	margin: -12px -4px 0;
}

.ln-track::-webkit-scrollbar {
	display: none;
}

.ln-track > * {
	scroll-snap-align: start;
}

.ln-carousel__controls {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin-top: var(--ln-s2);
}

.ln-team__track {
	--slide: 78%;
}

.ln-news__track {
	--slide: 92%;
}

@media (min-width: 640px) {
	.ln-team__track {
		--slide: calc((100% - var(--ln-s3)) / 2);
	}
}

@media (min-width: 1024px) {
	.ln-team__track {
		--slide: calc((100% - var(--ln-s3) * 2) / 3);
	}

	.ln-news__track {
		--slide: calc((100% - var(--ln-s3)) / 2);
	}
}

/* ==========================================================================
   10. Home sections
   ========================================================================== */
/* Announcements */
.ln-ann {
	padding-block: clamp(1rem, 3vw, 2.5rem) clamp(3rem, 6vw, 5rem);
}

.ln-ann__inner {
	display: grid;
	gap: var(--ln-s3);
	align-items: center;
}

.ln-ann__kid {
	width: 110px;
	margin-inline: auto;
}

.ln-ann__head {
	text-align: center;
}

.ln-ann__title {
	font-size: var(--ln-fs-h2);
	margin-bottom: var(--ln-s2);
}

.ln-ann__track {
	--slide: 100%;
	text-align: center;
}

.ln-ann__slide-title {
	font-size: var(--ln-fs-h3);
	color: var(--ln-pink-700);
	margin-bottom: 8px;
}

.ln-ann__slide p {
	color: var(--ln-muted);
}

.ln-ann__star {
	right: 12%;
	bottom: 18%;
	width: 18px;
	color: var(--ln-pink-500);
}

@media (min-width: 900px) {
	.ln-ann__inner {
		grid-template-columns: 150px 0.8fr 1.2fr;
		gap: var(--ln-s6);
	}

	.ln-ann__head,
	.ln-ann__track {
		text-align: left;
	}

	.ln-ann__head .ln-carousel__controls {
		justify-content: flex-start;
	}

	.ln-ann__kid {
		width: 140px;
	}
}

/* Why choose */
.ln-why__spark {
	left: 4%;
	top: 12%;
	width: 26px;
	color: var(--ln-pink-300);
}

.ln-why__planet {
	top: -6%;
	left: 6%;
	width: clamp(80px, 10vw, 130px);
	z-index: 3;
}

.ln-split__media {
	position: relative;
}

/* Programs feature band */
.ln-featprog {
	padding-block: clamp(4.5rem, 9vw, 7.5rem);
}

.ln-featprog__art {
	position: relative;
	width: min(80vw, 420px);
	aspect-ratio: 1;
	margin-inline: auto;
}

.ln-featprog__ring {
	position: absolute;
	inset: 0;
}

.ln-featprog__blocks {
	position: absolute;
	width: 52%;
	left: 24%;
	top: 26%;
}

.ln-featprog__palette {
	position: absolute;
	width: 30%;
	right: -4%;
	bottom: 2%;
}

.ln-featprog__rocket {
	position: absolute;
	width: 14%;
	left: 0;
	top: 4%;
	transform: rotate(-24deg);
}

.ln-proglist {
	display: grid;
	gap: 14px;
	margin-bottom: var(--ln-s5) !important;
}

@media (min-width: 560px) {
	.ln-proglist {
		grid-template-columns: 1fr 1fr;
	}
}

.ln-proglist__item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px;
	border-radius: 20px;
	color: #fff;
	text-decoration: none;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	transition: background-color var(--ln-dur), transform var(--ln-dur) var(--ln-ease);
}

.ln-proglist__item strong {
	display: block;
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: 1.0625rem;
}

.ln-proglist__item span span {
	font-size: var(--ln-fs-sm);
	color: rgba(255, 255, 255, 0.8);
}

.ln-proglist__icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--c);
	color: #fff;
	box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.08);
}

.ln-proglist__item:hover {
	color: #fff;
	background: rgba(255, 255, 255, 0.14);
	transform: translateX(6px);
}

/* Activities */
.ln-acts__art {
	position: relative;
	width: min(100%, 520px);
	aspect-ratio: 1 / 0.92;
	margin-inline: auto;
}

.ln-splash {
	position: absolute;
	inset: 6% 0 4% 6%;
	background: var(--ln-indigo-700);
	border-radius: 42% 58% 38% 62% / 52% 36% 64% 48%;
	box-shadow: -18px 14px 0 0 var(--ln-lavender-200);
	animation: ln-morph 18s ease-in-out infinite alternate;
}

.ln-acts__planet {
	position: absolute;
	width: 30%;
	top: 22%;
	right: 10%;
}

.ln-acts__sun {
	position: absolute;
	width: 18%;
	top: 0;
	left: 18%;
}

.ln-acts__star {
	position: absolute;
	width: 7%;
	top: 16%;
	left: 54%;
	color: #b9d8ff;
}

.ln-acts__palette {
	position: absolute;
	width: 26%;
	left: 0;
	bottom: 8%;
}

.ln-acts__kid {
	position: absolute;
	width: 38%;
	left: 34%;
	bottom: 0;
	filter: drop-shadow(0 18px 18px rgba(20, 0, 60, 0.3));
}

/* CTA band */
.ln-cta-band {
	position: relative;
	background: var(--ln-green-300);
	padding-block: clamp(3rem, 6vw, 4.5rem);
	margin-top: 40px;
}

.ln-cta-band__wave {
	color: var(--ln-green-300);
	height: 48px;
	top: -47px;
}

.ln-cta-band__inner {
	display: grid;
	gap: var(--ln-s3);
	align-items: center;
}

.ln-cta-band__title {
	font-size: clamp(1.5rem, 1.6vw + 1rem, 2.25rem);
	margin: 0;
}

.ln-cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ln-s3);
}

.ln-cta-band__phone {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: 1.125rem;
	color: var(--ln-ink);
	text-decoration: none;
	min-height: 44px;
}

@media (min-width: 1024px) {
	.ln-cta-band__inner {
		grid-template-columns: 1.3fr 1fr;
	}

	.ln-cta-band__actions {
		justify-content: flex-end;
	}
}

/* Gallery arches */
.ln-arches__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--ln-s3);
}

@media (min-width: 900px) {
	.ln-arches__list {
		grid-template-columns: repeat(4, 1fr);
	}
}

.ln-arches__item {
	aspect-ratio: 4 / 5;
	border-radius: 48% 48% 44% 44% / 38% 38% 30% 30%;
	overflow: hidden;
	background: var(--ln-lavender-100);
	box-shadow: var(--ln-shadow-md);
}

.ln-arches__item:nth-child(even) {
	transform: translateY(24px);
}

.ln-arches__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--ln-ease);
}

@media (hover: hover) and (pointer: fine) {
	.ln-arches__item:hover img {
		transform: scale(1.08) rotate(1deg);
	}
}

.ln-arches__rings {
	left: -50px;
	top: 20%;
	width: 180px;
	color: var(--ln-sky-300);
	opacity: 0.6;
}

/* Testimonials */
.ln-testi {
	--band-bg: var(--ln-pink-700);
	--edge: var(--ln-pink-700);
	background: var(--ln-pink-700);
	color: #fff;
	padding-block: clamp(4rem, 8vw, 6rem);
	overflow-x: clip;
	overflow-y: visible;
}

.ln-testi__inner {
	display: grid;
	gap: var(--ln-s4);
	align-items: center;
}

.ln-testi__intro {
	text-align: center;
	position: relative;
}

.ln-testi__sun {
	width: 70px;
	margin: 0 auto 10px;
}

.ln-testi__title {
	color: #fff;
	font-size: var(--ln-fs-h2);
	margin-bottom: var(--ln-s2);
}

.ln-testi .ln-round-btn {
	background: rgba(255, 255, 255, 0.25);
}

.ln-testi .ln-round-btn--pink {
	background: var(--ln-pink-300);
	color: var(--ln-ink);
}

.ln-testi__track {
	--slide: 100%;
}

.ln-testi__slide {
	margin: 0;
	position: relative;
}

.ln-testi__quote {
	width: 56px;
	height: 56px;
	color: var(--ln-pink-300);
	margin-bottom: 8px;
}

.ln-testi__slide blockquote {
	margin: 0 0 var(--ln-s3);
	font-size: var(--ln-fs-lead);
	line-height: 1.7;
}

.ln-testi__slide figcaption {
	color: #fff;
}

.ln-testi__slide figcaption strong {
	display: block;
	font-family: var(--ln-font-head);
	font-size: 1.25rem;
}

.ln-testi__slide figcaption span {
	color: rgba(255, 255, 255, 0.85);
	font-size: var(--ln-fs-sm);
}

@media (min-width: 900px) {
	.ln-testi__inner {
		grid-template-columns: 0.7fr 1.3fr;
		gap: var(--ln-s8);
	}
}

/* News */
.ln-news__cloud {
	left: -6%;
	top: 40%;
	width: 160px;
	color: var(--ln-sky-100);
}

/* ==========================================================================
   11. Inner page sections
   ========================================================================== */
.ln-intro__tri {
	top: 8%;
	left: 56%;
	width: 22px;
	color: var(--ln-pink-500);
}

.ln-intro__cross {
	top: 20%;
	right: 8%;
	width: 22px;
	color: var(--ln-sky-500);
}

.ln-intro__zig {
	top: 30%;
	right: 6%;
	width: 36px;
	color: #19b3a6;
}

/* Values band */
.ln-values {
	padding-block: clamp(4.5rem, 9vw, 7rem);
}

.ln-values__balloon {
	left: 3%;
	top: 22%;
	width: clamp(34px, 4vw, 54px);
	color: #ff5d7a;
}

/* Online */
.ln-online__rainbow {
	left: 4%;
	top: 34%;
	width: clamp(70px, 9vw, 120px);
}

.ln-online__zig {
	right: 6%;
	top: 30%;
	width: 36px;
	color: #19b3a6;
}

.ln-online__feat {
	margin-top: var(--ln-s5);
}

.ln-online__tablet svg {
	width: min(100%, 520px);
	margin-inline: auto;
	filter: drop-shadow(0 30px 40px rgba(43, 38, 69, 0.22));
}

.ln-stats__blobs {
	position: relative;
	width: min(100%, 440px);
	aspect-ratio: 1;
	margin-inline: auto;
}

.ln-stats__blobs::before {
	content: "";
	position: absolute;
	inset: 8%;
	border-radius: 50%;
	border: 14px dashed #ffd6ea;
	animation: ln-spin 50s linear infinite;
}

.ln-stat {
	position: absolute;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: 10px;
	box-shadow: var(--ln-shadow-md);
}

.ln-stat__num {
	font-family: var(--ln-font-head);
	font-weight: 800;
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1;
}

.ln-stat__label {
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: clamp(0.8125rem, 0.8vw + 0.6rem, 1rem);
	line-height: 1.25;
	margin-top: 6px;
	max-width: 14ch;
}

.ln-stat--sky {
	width: 50%;
	aspect-ratio: 1;
	top: 0;
	left: 0;
	background: var(--ln-sky-100);
	color: var(--ln-ink);
	border-radius: 54% 46% 48% 52% / 50% 54% 46% 50%;
}

.ln-stat--blue {
	width: 48%;
	aspect-ratio: 1.15;
	top: 26%;
	right: 0;
	background: var(--ln-blue-600);
	color: #fff;
	border-radius: 62% 38% 46% 54% / 46% 58% 42% 54%;
}

.ln-stat--ink {
	width: 46%;
	aspect-ratio: 1.05;
	bottom: 0;
	left: 16%;
	background: #2e1a6b;
	color: #fff;
	border-radius: 48% 52% 60% 40% / 56% 46% 54% 44%;
}

.ln-stats__photo {
	max-width: 260px;
	margin-top: var(--ln-s4);
}

.ln-progress__art {
	width: min(100%, 440px);
	margin-inline: auto;
	filter: drop-shadow(0 24px 40px rgba(43, 38, 69, 0.18));
}

/* Steps (Admissions) */
.ln-steps {
	display: grid;
	gap: var(--ln-s4);
	counter-reset: step;
	position: relative;
}

@media (min-width: 640px) {
	.ln-steps {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 1024px) {
	.ln-steps {
		grid-template-columns: repeat(4, 1fr);
	}

	.ln-steps::before {
		content: "";
		position: absolute;
		top: 84px;
		left: 12%;
		right: 12%;
		border-top: 3px dashed var(--ln-lavender-200);
		z-index: 0;
	}
}

.ln-step {
	position: relative;
	z-index: 1;
	padding: var(--ln-s4) var(--ln-s3);
	border-radius: var(--ln-r-lg);
	background: #fff;
	border: 1px solid var(--ln-line);
	box-shadow: var(--ln-shadow-sm);
	text-align: center;
	transition: transform var(--ln-dur) var(--ln-ease), box-shadow var(--ln-dur) var(--ln-ease);
}

.ln-step__num {
	display: block;
	font-family: var(--ln-font-head);
	font-weight: 800;
	font-size: 0.875rem;
	letter-spacing: 0.12em;
	color: var(--c-strong);
	margin-bottom: 10px;
}

.ln-step__title {
	font-size: 1.1875rem;
	margin: 16px 0 6px;
}

.ln-step p {
	margin: 0;
	font-size: var(--ln-fs-sm);
	color: var(--ln-muted);
	line-height: 1.55;
}

@media (hover: hover) and (pointer: fine) {
	.ln-step:hover {
		transform: translateY(-8px);
		box-shadow: 0 0 0 3px var(--c-tint), var(--ln-shadow-md);
	}
}

.ln-steps-sec__kite {
	right: 3%;
	top: 6%;
	width: clamp(60px, 7vw, 100px);
}

/* Fees card */
.ln-fees {
	padding-top: 0;
}

.ln-fees__card {
	display: grid;
	gap: var(--ln-s3);
	align-items: center;
	padding: clamp(1.5rem, 4vw, 3rem);
	border-radius: var(--ln-r-xl);
	background: linear-gradient(120deg, var(--ln-lavender-100), var(--ln-sky-100));
	position: relative;
}

.ln-fees__card p {
	margin: 0;
}

.ln-fees__title {
	font-size: clamp(1.5rem, 1.2vw + 1rem, 2rem);
	margin-bottom: 8px;
}

.ln-fees__art {
	width: 110px;
}

@media (min-width: 900px) {
	.ln-fees__card {
		grid-template-columns: auto 1fr auto;
		gap: var(--ln-s5);
	}
}

/* FAQ accordion */
.ln-accordion {
	display: grid;
	gap: 14px;
}

.ln-acc {
	border-radius: var(--ln-r-md);
	background: #fff;
	border: 1px solid var(--ln-line);
	box-shadow: var(--ln-shadow-sm);
	transition: box-shadow var(--ln-dur) var(--ln-ease), border-color var(--ln-dur);
}

.ln-acc[open] {
	border-color: var(--ln-lavender-200);
	box-shadow: var(--ln-shadow-md);
}

.ln-acc__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ln-s2);
	padding: 18px 22px;
	cursor: pointer;
	list-style: none;
	min-height: 56px;
}

.ln-acc__q::-webkit-details-marker {
	display: none;
}

.ln-acc__q h3 {
	margin: 0;
	font-size: 1.0625rem;
}

.ln-acc__icon {
	flex: none;
	position: relative;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--ln-pink-100);
	transition: transform 0.35s var(--ln-ease), background-color 0.35s;
}

.ln-acc__icon::before,
.ln-acc__icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 14px;
	height: 3px;
	margin: -1.5px 0 0 -7px;
	border-radius: 2px;
	background: var(--ln-pink-700);
}

.ln-acc__icon::after {
	transform: rotate(90deg);
	transition: transform 0.35s var(--ln-ease);
}

.ln-acc[open] .ln-acc__icon {
	transform: rotate(180deg);
	background: var(--ln-sun-100);
}

.ln-acc[open] .ln-acc__icon::after {
	transform: rotate(0);
}

.ln-acc__a {
	padding: 0 22px 20px;
	color: var(--ln-text);
}

.ln-acc__a p:last-child {
	margin: 0;
}

.ln-faq__rainbow {
	left: 4%;
	top: 10%;
	width: clamp(70px, 9vw, 120px);
}

/* Numbered (Programs approach) */
.ln-numbered {
	display: grid;
	gap: var(--ln-s3);
}

@media (min-width: 560px) {
	.ln-numbered {
		grid-template-columns: 1fr 1fr;
	}
}

.ln-numbered__item {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}

.ln-numbered__num {
	flex: none;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: var(--c-tint);
	color: var(--c-strong);
	font-family: var(--ln-font-head);
	font-weight: 800;
	font-size: 1.375rem;
	transition: transform 0.5s var(--ln-ease-bounce);
}

.ln-numbered__title {
	font-size: 1.125rem;
	color: var(--c-strong);
	margin: 4px 0 4px;
}

.ln-numbered p {
	margin: 0;
	font-size: var(--ln-fs-sm);
	color: var(--ln-muted);
	line-height: 1.55;
}

@media (hover: hover) and (pointer: fine) {
	.ln-numbered__item:hover .ln-numbered__num {
		transform: rotate(-8deg) scale(1.1);
	}
}

/* Program single */
.ln-facts {
	position: sticky;
	top: calc(var(--ln-header-h) + 24px);
	padding: var(--ln-s4);
	border-radius: var(--ln-r-lg);
	background: #fff;
	border: 1px solid var(--ln-line);
	box-shadow: var(--ln-shadow-md);
	border-top: 8px solid var(--c);
}

.ln-facts__title {
	font-size: 1.375rem;
}

.ln-facts dl {
	margin: 0 0 var(--ln-s3);
}

.ln-facts dl > div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px dashed var(--ln-line);
}

.ln-facts dt {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	color: var(--ln-muted);
}

.ln-facts dt .ln-icon {
	color: var(--c-strong);
	width: 20px;
	height: 20px;
}

.ln-facts dd {
	margin: 0;
	text-align: right;
	font-weight: 800;
	color: var(--ln-ink);
}

.ln-facts .ln-btn {
	width: 100%;
}

.ln-facts__link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: 14px;
	font-weight: 700;
	min-height: 44px;
}

.ln-facts__link .ln-icon {
	width: 16px;
}

.ln-prog-overview__rainbow {
	right: 3%;
	bottom: 6%;
	width: clamp(70px, 9vw, 120px);
}

.ln-day {
	--band-bg: var(--ln-sun-100);
	--edge: var(--ln-sun-100);
	background: var(--ln-sun-100);
	overflow-y: visible;
}

.ln-timeline {
	position: relative;
	display: grid;
	gap: 14px;
	padding-left: 34px !important;
}

.ln-timeline::before {
	content: "";
	position: absolute;
	left: 11px;
	top: 10px;
	bottom: 10px;
	border-left: 3px dashed #f2c766;
}

.ln-timeline__item {
	position: relative;
	display: grid;
	gap: 2px;
	padding: 16px 20px;
	border-radius: var(--ln-r-md);
	background: #fff;
	box-shadow: var(--ln-shadow-sm);
	transition: transform var(--ln-dur) var(--ln-ease);
}

@media (min-width: 640px) {
	.ln-timeline__item {
		grid-template-columns: 160px 1fr;
		gap: 16px;
		align-items: center;
	}
}

.ln-timeline__dot {
	position: absolute;
	left: -30px;
	top: 50%;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	border-radius: 50%;
	background: var(--ln-pink-300);
	box-shadow: 0 0 0 5px #fff;
}

.ln-timeline__item:nth-child(4n + 2) .ln-timeline__dot { background: var(--ln-sky-500); }
.ln-timeline__item:nth-child(4n + 3) .ln-timeline__dot { background: var(--ln-green-500); }
.ln-timeline__item:nth-child(4n + 4) .ln-timeline__dot { background: var(--ln-sun-500); }

.ln-timeline__time {
	font-family: var(--ln-font-head);
	font-weight: 600;
	color: var(--ln-ink);
}

@media (hover: hover) and (pointer: fine) {
	.ln-timeline__item:hover {
		transform: translateX(6px);
	}
}

/* Albums (gallery intro) */
.ln-albums {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--ln-s3);
	margin-top: var(--ln-s4) !important;
}

.ln-album {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 14px;
	text-align: center;
	font-family: var(--ln-font-head);
	font-weight: 600;
	color: var(--ln-ink);
	text-decoration: none;
	border-radius: var(--ln-r-md);
	transition: background-color var(--ln-dur);
}

.ln-album:hover {
	background: var(--ln-bg-soft);
	color: var(--ln-ink);
}

/* Contact list */
.ln-clist {
	display: grid;
	gap: 18px;
}

.ln-clist__item {
	display: flex;
	gap: 16px;
	align-items: center;
}

.ln-clist__item .ln-iconbox {
	width: 50px;
	height: 50px;
}

.ln-clist__body {
	display: flex;
	flex-direction: column;
	line-height: 1.35;
}

.ln-clist__label {
	font-size: var(--ln-fs-xs);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ln-muted);
}

.ln-clist__body a,
.ln-clist__body > span:last-child {
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: 1.0625rem;
	color: var(--ln-ink);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.ln-clist__body a:hover {
	color: var(--ln-pink-700);
	text-decoration: underline;
}

/* Map facade */
.ln-map {
	position: relative;
}

.ln-map__facade {
	position: relative;
	min-height: 440px;
	display: grid;
	place-items: center;
	padding: var(--ln-s5) var(--ln-gutter);
	background-color: #eef0f4;
	background-image:
		linear-gradient(115deg, transparent 47%, #fff 47% 49%, transparent 49%),
		linear-gradient(25deg, transparent 58%, #fff 58% 59.5%, transparent 59.5%),
		linear-gradient(160deg, transparent 30%, #dfe3ea 30% 31%, transparent 31%),
		repeating-linear-gradient(0deg, transparent 0 46px, #e2e5ec 46px 48px),
		repeating-linear-gradient(90deg, transparent 0 62px, #e2e5ec 62px 64px);
}

.ln-map__facade iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ln-map__card {
	position: relative;
	max-width: 440px;
	padding: var(--ln-s4);
	border-radius: var(--ln-r-lg);
	background: #fff;
	text-align: center;
	box-shadow: var(--ln-shadow-lg);
}

.ln-map__card .ln-iconbox {
	margin-bottom: 12px;
}

.ln-map__name {
	font-family: var(--ln-font-head);
	font-weight: 800;
	font-size: 1.25rem;
	color: var(--ln-ink);
	margin-bottom: 4px;
}

.ln-map__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: var(--ln-s3);
}

.ln-map__note {
	font-size: var(--ln-fs-xs);
	color: var(--ln-muted);
	margin: var(--ln-s2) 0 0;
}

.ln-map.is-loaded .ln-map__card {
	display: none;
}

/* Empty states */
.ln-empty {
	max-width: 520px;
	margin-inline: auto;
	text-align: center;
	padding: var(--ln-s5);
	border-radius: var(--ln-r-xl);
	background: var(--ln-bg-soft);
	border: 2px dashed var(--ln-lavender-200);
}

.ln-empty__art {
	width: 160px;
	margin: 0 auto var(--ln-s3);
}

/* Default page */
.ln-page__rainbow {
	right: 3%;
	top: 6%;
	width: clamp(70px, 9vw, 110px);
}

/* 404 */
.ln-404 {
	padding-top: clamp(2rem, 4vw, 3rem);
}

.ln-404__num {
	display: flex;
	justify-content: center;
	gap: 0.04em;
	font-family: var(--ln-font-head);
	font-weight: 800;
	font-size: clamp(7rem, 22vw, 14rem);
	line-height: 1;
	margin: 0 0 var(--ln-s3);
}

.ln-404__num span {
	color: var(--ln-pink-500);
	text-shadow: -0.05em 0.04em 0 var(--ln-sun-300);
	animation: ln-bob 3.2s ease-in-out infinite;
}

.ln-404__num span:nth-child(2) {
	animation-delay: -1s;
	color: var(--ln-violet-600);
}

.ln-404__num span:nth-child(3) {
	animation-delay: -2s;
}

.ln-404__title {
	font-size: clamp(1.5rem, 1.6vw + 1rem, 2.25rem);
}

.ln-404__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin: var(--ln-s4) 0;
}

.ln-404__search {
	max-width: 420px;
	margin-inline: auto;
}

/* Search form */
.ln-search {
	display: flex;
	align-items: center;
	border: 2px solid var(--ln-sun-300);
	border-radius: var(--ln-r-pill);
	background: #fff;
	padding: 4px 4px 4px 18px;
	transition: border-color var(--ln-dur), box-shadow var(--ln-dur);
}

.ln-search:focus-within {
	border-color: var(--ln-violet-600);
	box-shadow: 0 0 0 4px var(--ln-lavender-100);
}

.ln-search input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: none;
	min-height: 44px;
	outline: none;
}

.ln-search button {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--ln-lavender-100);
	color: var(--ln-ink);
	cursor: pointer;
}

/* ==========================================================================
   12. Enquiry form section
   ========================================================================== */
.ln-enquiry {
	position: relative;
	z-index: 3;
	padding-bottom: 0;
	margin-bottom: calc(-1 * clamp(40px, 7vw, 110px));
	overflow: visible;
}

.ln-enquiry__inner {
	display: grid;
	gap: var(--ln-s4);
	align-items: end;
}

.ln-enquiry__art {
	position: relative;
	width: min(70vw, 300px);
	aspect-ratio: 1 / 1.05;
	margin-inline: auto;
	order: 2;
}

.ln-enquiry__kid {
	position: absolute;
	width: 64%;
	left: 18%;
	bottom: 0;
	filter: drop-shadow(0 24px 18px rgba(43, 38, 69, 0.25));
}

.ln-enquiry__blocks {
	position: absolute;
	width: 36%;
	right: 0;
	bottom: 0;
}

.ln-enquiry__planet {
	position: absolute;
	width: 34%;
	right: 4%;
	top: 4%;
}

.ln-enquiry__star {
	position: absolute;
	width: 9%;
	left: 6%;
	top: 10%;
	color: var(--ln-pink-500);
}

.ln-enquiry__plane {
	position: absolute;
	width: 26%;
	left: 0;
	top: 30%;
}

.ln-enquiry__card {
	position: relative;
	padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 4.5rem);
	background: var(--ln-sun-500);
	border-radius: 46% 54% 42% 58% / 10% 12% 10% 12%;
	box-shadow: 0 30px 60px -30px rgba(176, 78, 0, 0.6);
	color: var(--ln-ink);
}

@media (min-width: 640px) {
	.ln-enquiry__card {
		border-radius: 52% 48% 46% 54% / 18% 20% 16% 18%;
		padding-top: clamp(3rem, 6vw, 5rem);
		padding-bottom: clamp(3rem, 6vw, 5rem);
	}
}

.ln-enquiry__balloon {
	position: absolute;
	top: -60px;
	right: 6%;
	width: 50px;
	color: var(--ln-orange-500);
}

.ln-enquiry__title {
	text-align: center;
	font-size: var(--ln-fs-h2);
	margin-bottom: 8px;
}

.ln-enquiry__text {
	text-align: center;
	max-width: 46ch;
	margin: 0 auto var(--ln-s4);
	font-weight: 600;
}

@media (min-width: 1024px) {
	.ln-enquiry__inner {
		grid-template-columns: 0.75fr 1.25fr;
	}

	.ln-enquiry__art {
		order: 0;
		width: 100%;
		max-width: 400px;
		margin-bottom: 40px;
	}
}

/* Form */
.ln-form {
	max-width: 640px;
	margin-inline: auto;
}

.ln-form__grid {
	display: grid;
	gap: 16px;
}

@media (min-width: 640px) {
	.ln-form__grid {
		grid-template-columns: 1fr 1fr;
		gap: 18px 20px;
	}

	.ln-field--full {
		grid-column: 1 / -1;
	}
}

.ln-field label {
	display: block;
	margin-bottom: 6px;
	font-weight: 800;
	font-size: var(--ln-fs-sm);
	color: var(--ln-ink);
}

.ln-field input,
.ln-field select,
.ln-field textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 16px;
	border: 2px solid rgba(43, 38, 69, 0.12);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--ln-ink);
	transition: border-color var(--ln-dur), box-shadow var(--ln-dur), background-color var(--ln-dur);
	appearance: none;
}

.ln-field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%232b2645' stroke-width='2.4' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 44px;
}

.ln-field textarea {
	min-height: 96px;
	resize: vertical;
}

.ln-field input:focus,
.ln-field select:focus,
.ln-field textarea:focus {
	outline: none;
	border-color: var(--ln-plum-800);
	background: #fff;
	box-shadow: 0 0 0 4px rgba(62, 42, 133, 0.18);
}

.ln-field [aria-invalid="true"] {
	border-color: var(--ln-error);
	background: #fff;
}

.ln-field__error {
	margin: 6px 0 0;
	padding: 4px 10px;
	display: inline-block;
	border-radius: 8px;
	background: #fff;
	color: var(--ln-error);
	font-size: var(--ln-fs-xs);
	font-weight: 800;
}

.ln-field__error:empty {
	display: none;
}

.ln-field--check {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px;
	align-items: start;
	margin-top: 20px;
}

.ln-field--check input {
	width: 24px;
	height: 24px;
	min-height: 0;
	margin: 2px 0 0;
	padding: 0;
	accent-color: var(--ln-plum-800);
	appearance: auto;
}

.ln-field--check label {
	font-weight: 600;
	margin: 0;
	line-height: 1.5;
}

.ln-field--check .ln-field__error {
	grid-column: 2;
}

.ln-form__note {
	font-size: var(--ln-fs-xs);
	margin: 14px 0 0;
	font-weight: 600;
}

.ln-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ln-form__submit {
	display: flex;
	width: 100%;
	margin-top: var(--ln-s3);
}

@media (min-width: 640px) {
	.ln-form__submit {
		width: auto;
		margin-left: auto;
		min-width: 220px;
	}
}

.ln-form__status:focus {
	outline: none;
}

.ln-form__success,
.ln-form__fail {
	padding: 16px 20px;
	border-radius: 16px;
	font-weight: 800;
	margin-bottom: var(--ln-s3);
}

.ln-form__success {
	background: #fff;
	color: var(--ln-success);
	border-left: 6px solid var(--ln-green-500);
}

.ln-form__fail {
	background: #fff;
	color: var(--ln-error);
	border-left: 6px solid var(--ln-error);
}

.ln-form.is-sent .ln-form__grid,
.ln-form.is-sent .ln-field--check,
.ln-form.is-sent .ln-form__note,
.ln-form.is-sent .ln-form__submit {
	display: none;
}

/* ==========================================================================
   13. Footer
   ========================================================================== */
.ln-footer {
	position: relative;
	color: #d9d5f2;
	margin-top: clamp(4rem, 8vw, 6rem);
}

.ln-main:has(> .ln-enquiry:last-child) + .ln-footer {
	margin-top: 0;
}

.ln-footer__wave {
	position: relative;
	height: clamp(90px, 12vw, 180px);
}

.ln-footer__wave-svg {
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 100%;
	height: 100%;
	color: var(--ln-navy);
}

.ln-footer__kid {
	position: absolute;
	left: 6%;
	bottom: 10%;
	width: clamp(64px, 8vw, 110px);
	z-index: 1;
}

.ln-footer__pencil {
	position: absolute;
	right: 10%;
	bottom: -10%;
	width: clamp(60px, 7vw, 100px);
	transform: rotate(-40deg);
	z-index: 1;
	display: none;
}

@media (min-width: 768px) {
	.ln-footer__pencil {
		display: block;
	}
}

.ln-footer__body {
	background: var(--ln-navy);
	padding: var(--ln-s4) 0 var(--ln-s3);
}

.ln-footer__grid {
	display: grid;
	gap: var(--ln-s5);
}

@media (min-width: 640px) {
	.ln-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 1024px) {
	.ln-footer__grid {
		grid-template-columns: 1.4fr 0.8fr 1fr 1fr;
		gap: var(--ln-s6);
	}
}

.ln-footer .ln-logo {
	color: #fff;
	margin-bottom: var(--ln-s2);
}

.ln-footer .ln-logo__sub {
	color: var(--ln-sun-300);
}

.ln-footer__brand p {
	max-width: 36ch;
}

/* ---------- Accreditation badge ("Accredited by The Little Nest Playschool") ---------- */
.ln-accr {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: var(--ln-s3) 0 0;
	font-family: var(--ln-font-head);
	font-size: var(--ln-fs-xs);
	line-height: 1.4;
}

.ln-accr > .ln-icon {
	flex: none;
	width: 20px;
	height: 20px;
}

.ln-accr--card .ln-iconbox {
	width: 48px;
	height: 48px;
}

.ln-accr--card .ln-iconbox .ln-icon {
	width: 24px;
	height: 24px;
}

.ln-accr__label {
	font-weight: 600;
	opacity: 0.9;
}

.ln-accr__org {
	font-weight: 800;
}

.ln-accr a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color 0.2s ease;
}

/* On the coloured home hero, beside the "Enrolment open" pill. */
.ln-hero__badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 12px;
	margin-bottom: var(--ln-s3);
}

.ln-hero__badges > * {
	margin: 0;
}

.ln-accr--glass {
	padding: 6px 16px 6px 12px;
	border-radius: var(--ln-r-pill);
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: #fff;
	backdrop-filter: blur(6px);
}

.ln-accr--glass .ln-icon {
	color: var(--ln-sun-300);
}

/* Footer (navy). */
.ln-accr--light {
	margin-top: var(--ln-s2);
	color: #fff;
}

.ln-accr--light .ln-icon,
.ln-accr--light .ln-accr__org {
	color: var(--ln-sun-300);
}

/* About page card. */
.ln-accr--card {
	display: flex;
	align-items: flex-start;
	gap: var(--ln-s2);
	margin: var(--ln-s3) 0;
	padding: var(--ln-s2) var(--ln-s3);
	border-radius: var(--ln-r-md, 20px);
	background: var(--ln-lavender-100);
	border: 1px solid var(--ln-lavender-200);
	color: var(--ln-ink);
	font-family: var(--ln-font-body);
	font-size: var(--ln-fs-base);
	transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.3s ease;
}

.ln-accr--card .ln-accr__line {
	margin: 0;
	font-family: var(--ln-font-head);
	font-size: var(--ln-fs-sm);
	color: var(--ln-ink);
}

.ln-accr--card .ln-accr__org {
	color: var(--ln-plum-800);
}

.ln-accr--card .ln-accr__text {
	margin: 4px 0 0;
	color: var(--ln-text);
	font-size: var(--ln-fs-sm);
}

@media (hover: hover) and (pointer: fine) {
	.ln-accr--card:hover {
		transform: translateY(-3px);
		box-shadow: 0 12px 28px rgba(62, 42, 133, 0.12);
	}

	.ln-accr a:hover {
		color: var(--ln-sun-300);
	}

	.ln-accr--card a:hover {
		color: var(--ln-pink-700);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ln-accr--card {
		transition: none;
	}

	.ln-accr--card:hover {
		transform: none;
	}
}

.ln-footer__title {
	color: #fff;
	font-size: 1.0625rem;
	margin-bottom: var(--ln-s2);
}

.ln-footer a {
	color: #fff;
	text-decoration: none;
}

.ln-footer a:hover {
	color: var(--ln-sun-300);
}

.ln-footer__links,
.ln-footer .ln-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 4px;
}

.ln-footer__links a,
.ln-footer .ln-nav__link {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0;
	font-family: var(--ln-font-body);
	font-weight: 600;
	font-size: 1rem;
	color: #d9d5f2;
	transition: color var(--ln-dur), transform var(--ln-dur) var(--ln-ease);
}

.ln-footer__links a:hover {
	transform: translateX(4px);
}

.ln-footer__address {
	font-style: normal;
	margin-bottom: 12px;
}

.ln-footer__address strong {
	color: #fff;
}

.ln-footer__meta,
.ln-footer__link,
.ln-footer__contact a {
	display: flex;
	gap: 10px;
	align-items: center;
	min-height: 40px;
}

.ln-footer__meta .ln-icon,
.ln-footer__link .ln-icon,
.ln-footer__contact .ln-icon {
	width: 20px;
	height: 20px;
	color: var(--ln-sun-300);
	flex: none;
}

.ln-footer__contact {
	display: grid;
	gap: 2px;
	margin-bottom: var(--ln-s3) !important;
}

.ln-footer .ln-btn--sun,
.ln-footer .ln-btn--sun:hover {
	color: var(--ln-ink);
}

.ln-social {
	display: flex;
	gap: 10px;
}

.ln-social a {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	transition: background-color var(--ln-dur), transform var(--ln-dur) var(--ln-ease-bounce);
}

.ln-social a:hover {
	background: var(--ln-pink-500);
	color: #fff;
	transform: translateY(-4px) rotate(-6deg);
}

.ln-social .ln-icon {
	width: 20px;
	height: 20px;
}

.ln-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	justify-content: space-between;
	align-items: center;
	margin-top: var(--ln-s6);
	padding-top: var(--ln-s3);
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-size: var(--ln-fs-sm);
	color: #b9b4e8;
}

.ln-footer__bottom p {
	margin: 0;
}

.ln-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ln-footer__legal a {
	color: #d9d5f2;
	display: inline-flex;
	min-height: 44px;
	align-items: center;
}

/* Mobile CTA bar */
.ln-mobilebar {
	position: fixed;
	left: 10px;
	right: 10px;
	bottom: calc(10px + env(safe-area-inset-bottom));
	z-index: 90;
	display: flex;
	gap: 6px;
	padding: 6px;
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 16px 40px -12px rgba(43, 38, 69, 0.45);
	backdrop-filter: blur(10px);
	transform: translateY(140%);
	transition: transform 0.45s var(--ln-ease);
}

.ln-mobilebar.is-visible {
	transform: none;
}

.ln-mobilebar__item {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	border-radius: 16px;
	color: var(--ln-ink);
	font-family: var(--ln-font-head);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
	background: var(--ln-lavender-100);
}

.ln-mobilebar__item .ln-icon {
	width: 20px;
	height: 20px;
}

.ln-mobilebar__item--cta {
	flex: 1.6;
	background: var(--ln-sun-500);
}

@media (min-width: 1024px) {
	.ln-mobilebar {
		display: none;
	}
}

/* Cookie banner (littlenest-core) */
.ln-consent {
	position: fixed;
	left: 12px;
	right: 12px;
	bottom: calc(84px + env(safe-area-inset-bottom));
	z-index: 95;
	max-width: 560px;
	padding: 20px;
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--ln-shadow-lg);
	font-size: var(--ln-fs-sm);
}

.ln-consent__actions {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
}

.ln-consent .ln-btn {
	min-height: 44px;
	padding: 8px 18px;
}

.ln-consent .ln-btn--ghost {
	--btn-fg: var(--ln-ink);
	border-color: var(--ln-line);
}

@media (min-width: 1024px) {
	.ln-consent {
		bottom: 24px;
		left: 24px;
	}
}

/* ==========================================================================
   14. Motion: scroll reveal + playful floats
   ========================================================================== */
.ln-js .ln-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity var(--ln-dur-reveal) var(--ln-ease), transform var(--ln-dur-reveal) var(--ln-ease);
	transition-delay: var(--d, 0ms);
}

.ln-js .ln-reveal--left {
	transform: translateX(-36px);
}

.ln-js .ln-reveal--right {
	transform: translateX(36px);
}

.ln-js .ln-reveal--up {
	transform: translateY(40px) scale(0.98);
}

.ln-js .ln-reveal.is-visible {
	opacity: 1;
	transform: none;
}

.ln-float--bob { animation: ln-bob 6s ease-in-out infinite; }
.ln-float--bob-slow { animation: ln-bob 9s ease-in-out infinite; }
.ln-float--sway { animation: ln-sway 6s ease-in-out infinite; transform-origin: 50% 0; }
.ln-float--twinkle { animation: ln-twinkle 3.2s ease-in-out infinite; }
.ln-float--spin { animation: ln-spin 24s linear infinite; }
.ln-float--spin-slow { animation: ln-spin 70s linear infinite; }
.ln-float--wave { animation: ln-wave 4s ease-in-out infinite; transform-origin: 50% 100%; }
.ln-float--rocket { animation: ln-rocket 7s ease-in-out infinite; }
.ln-float--fly { animation: ln-fly 8s ease-in-out infinite; }
.ln-float--drift { animation: ln-drift 14s ease-in-out infinite alternate; }

@keyframes ln-bob {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -12px; }
}

@keyframes ln-sway {
	0%, 100% { rotate: -5deg; }
	50% { rotate: 5deg; }
}

@keyframes ln-twinkle {
	0%, 100% { opacity: 1; scale: 1; }
	50% { opacity: 0.35; scale: 0.7; }
}

@keyframes ln-spin {
	to { rotate: 360deg; }
}

@keyframes ln-wave {
	0%, 100% { rotate: -3deg; }
	50% { rotate: 3deg; }
}

@keyframes ln-rocket {
	0%, 100% { translate: 0 0; }
	50% { translate: -8px -18px; }
}

@keyframes ln-fly {
	0%, 100% { translate: 0 0; rotate: 0deg; }
	50% { translate: 14px -14px; rotate: -6deg; }
}

@keyframes ln-drift {
	from { translate: -1.5% 0; }
	to { translate: 1.5% 0; }
}

@keyframes ln-morph {
	0% { border-radius: 62% 38% 54% 46% / 48% 56% 44% 52%; }
	50% { border-radius: 48% 52% 40% 60% / 58% 44% 56% 42%; }
	100% { border-radius: 56% 44% 62% 38% / 42% 60% 40% 58%; }
}

/* Hero tags keep their tilt while bobbing (rotate via individual property). */
.ln-hero__tag {
	rotate: var(--r, 0deg);
}

/* Pause decorative motion when the tab is hidden or the element is off-screen (JS toggles). */
.ln-paused .ln-float,
.ln-paused .ln-hero__ring,
.ln-paused .ln-hero__clouds {
	animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation: none !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0ms !important;
	}

	.ln-js .ln-reveal {
		opacity: 1;
		transform: none;
	}
}

/* ==========================================================================
   15. Small-screen decor tidy-up (no overflow, less clutter)
   ========================================================================== */
@media (max-width: 767px) {
	.ln-decor,
	.ln-hero__s3,
	.ln-hero__d3,
	.ln-hero__burst {
		display: none;
	}

	.ln-hero__planet {
		bottom: 18%;
		right: 2%;
	}

	.ln-hero__tag--2 {
		right: -2%;
	}

	.ln-arches__item:nth-child(even) {
		transform: none;
	}
}

/* WordPress core alignment helpers */
.alignleft { float: left; margin: 0 var(--ln-s3) var(--ln-s2) 0; }
.alignright { float: right; margin: 0 0 var(--ln-s2) var(--ln-s3); }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption-text,
figcaption { font-size: var(--ln-fs-sm); color: var(--ln-muted); }
.sticky,
.bypostauthor,
.gallery-caption { outline: 0; }
