:root {
	--cream: #f6f1e8;
	--cream-2: #efe6d6;
	--paper: #fffdf9;
	--ink: #1c1712;
	--muted: #5e564c;
	--forest: #121c17;
	--gold: #e2ae3a;
	--gold-2: #c8922a;
	--line: rgba(28, 23, 18, 0.12);
	--serif: "Fraunces", Georgia, serif;
	--sans: "Outfit", "Avenir Next", "Segoe UI", sans-serif;
	--script: "Great Vibes", cursive;
	--max: 1120px;
	--header: 84px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 1.05rem;
	line-height: 1.6;
	font-weight: 400;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; }

h1, h2, h3, h4, .fl-heading-text {
	font-family: var(--serif);
	font-weight: 560;
	letter-spacing: -0.03em;
	line-height: 1.05;
}

p { margin: 0 0 0.9rem; }

.skip-link {
	position: absolute;
	left: 12px;
	top: -40px;
	background: var(--gold);
	color: var(--ink);
	padding: 8px 12px;
	z-index: 100;
}
.skip-link:focus { top: 12px; }

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 40;
	height: var(--header);
	background: #fffdf9;
	color: var(--ink);
	border-bottom: 1px solid rgba(28, 23, 18, 0.06);
}

.site-header.is-scrolled,
.site-header.is-open {
	background: rgba(246, 241, 232, 0.96);
	color: var(--ink);
	border-bottom-color: var(--line);
}

.header-inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 24px;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.logo {
	font-family: var(--script);
	font-size: 2.7rem;
	line-height: 1;
	text-decoration: none;
	color: inherit;
	white-space: nowrap;
}

.logo-heart {
	font-size: 0.42em;
	color: var(--gold);
	margin-left: 1px;
	vertical-align: super;
}

.nav-list,
.footer-menu,
.social-list {
	display: flex;
	align-items: center;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nav-list a {
	text-decoration: none;
	font-weight: 500;
	font-size: 0.98rem;
}

.nav-list .current-menu-item > a,
.nav-list .current_page_item > a {
	box-shadow: inset 0 -2px 0 var(--gold);
}

.menu-book > a,
.nav-list .menu-book > a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--gold);
	color: var(--ink) !important;
	font-weight: 650;
}

.nav-toggle {
	display: none;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1px solid var(--line);
	background: transparent;
	color: inherit;
}

.nav-toggle-bars,
.nav-toggle-bars::before,
.nav-toggle-bars::after {
	display: block;
	width: 18px;
	height: 1.5px;
	background: currentColor;
	position: relative;
}
.nav-toggle-bars::before,
.nav-toggle-bars::after {
	content: "";
	position: absolute;
	left: 0;
}
.nav-toggle-bars::before { top: -6px; }
.nav-toggle-bars::after { top: 6px; }

.fl-builder-content { overflow: hidden; }

.fl-row { margin-left: 0; margin-right: 0; }
.fl-row-content-wrap { padding-left: 24px; padding-right: 24px; }

.fl-row.hero > .fl-row-content-wrap {
	position: relative;
	min-height: 0;
	padding: 0 !important;
	background-color: #0c0b0a !important;
	overflow: visible;
}

.fl-row.hero > .fl-row-content-wrap::before { display: none; }

.fl-row.hero .fl-row-content {
	max-width: none !important;
	width: 100% !important;
	padding: 0 !important;
	position: relative;
	z-index: 1;
	overflow: visible;
}

.fl-row.hero .fl-col-group,
.fl-row.hero .fl-col,
.fl-row.hero .fl-col-content {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	overflow: visible;
}

.fl-row.hero .fl-module,
.fl-row.hero .fl-module-content {
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible;
}

.fl-row.band > .fl-row-content-wrap,
.fl-row.band-dark > .fl-row-content-wrap,
.fl-row.page-hero > .fl-row-content-wrap,
.fl-row.split > .fl-row-content-wrap { padding-top: 84px; padding-bottom: 84px; }

.fl-row.tight > .fl-row-content-wrap { padding-top: 28px; padding-bottom: 36px; }

.fl-row.hero .fl-col-group,
.fl-row.split .fl-col-group,
.fl-row.page-hero .fl-col-group { align-items: center; }

.hero-stage {
	position: relative;
	display: grid;
	grid-template-columns: minmax(320px, 1.1fr) minmax(300px, 1fr) 6.75rem;
	align-items: stretch;
	min-height: 520px;
	height: clamp(520px, 62vh, 620px);
	width: 100%;
	background: #0c0b0a;
	overflow: hidden;
}

.hero-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 36px clamp(20px, 3vw, 40px) 36px clamp(28px, 5.5vw, 80px);
	max-width: 34rem;
}

.hero-title {
	margin: 0 0 12px;
	font-family: var(--serif);
	font-size: clamp(2.6rem, 4vw, 3.85rem);
	line-height: 0.96;
	color: #f7f1e8;
	font-weight: 600;
	letter-spacing: -0.03em;
}
.hero-title .script {
	display: inline-block;
	margin-top: 0.02em;
	margin-left: -0.05em;
	font-family: var(--script);
	font-weight: 400;
	font-size: 1.55em;
	line-height: 0.78;
	color: #e2ae3a;
	letter-spacing: 0;
}

.hero-kicker {
	margin: 0 0 12px;
	color: rgba(247, 241, 232, 0.94);
	font-size: 0.9rem;
	font-weight: 450;
	letter-spacing: 0.015em;
}

.hero-lead {
	max-width: 26rem;
	margin: 0 0 18px;
	font-size: 0.98rem;
	line-height: 1.45;
	color: rgba(247, 241, 232, 0.8);
}

.hero-portrait {
	position: relative;
	z-index: 1;
	min-height: 100%;
	align-self: stretch;
	margin-right: -6.75rem;
	overflow: hidden;
	pointer-events: none;
}
.hero-portrait::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 34%;
	z-index: 1;
	background: linear-gradient(90deg, #0c0b0a 0%, rgba(12, 11, 10, 0.62) 40%, rgba(12, 11, 10, 0.14) 78%, transparent 100%);
	pointer-events: none;
}
.hero-portrait::after {
	content: "";
	position: absolute;
	inset: 0 0 0 auto;
	width: 18%;
	z-index: 1;
	background: linear-gradient(270deg, #0c0b0a 0%, rgba(12, 11, 10, 0.3) 45%, transparent 100%);
	pointer-events: none;
}
.hero-portrait img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 100%;
	object-fit: cover;
	object-position: 42% 28%;
	transform: none;
}

.hero-lockup {
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	padding: clamp(48px, 9vh, 88px) 0.75rem 0 0.55rem;
	color: #f7f1e8;
	pointer-events: none;
	background: #0c0b0a;
	box-shadow: -28px 0 36px 18px #0c0b0a;
}
.lockup-name {
	font-family: var(--script);
	font-size: clamp(2.5rem, 3.2vw, 3.2rem);
	line-height: 0.78;
	margin: 0 0 14px;
	color: #f7f1e8;
}
.lockup-words {
	display: flex;
	flex-direction: column;
	gap: 0.4em;
	margin: 0;
	font-family: var(--sans);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	line-height: 1.2;
	color: rgba(247, 241, 232, 0.96);
}
.lockup-heart {
	display: block;
	margin-top: 12px;
	margin-left: 0.15em;
	color: #e2ae3a;
	font-size: 1.05rem;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1;
}

.fl-row.hero .fl-module-heading { margin: 0; }
.fl-row.hero .fl-heading { margin: 0; }

.fl-row.hero .fl-heading .fl-heading-text {
	font-family: var(--serif);
	font-size: clamp(3rem, 6.2vw, 5.35rem);
	line-height: 0.92;
	color: #f7f1e8;
	font-weight: 560;
}

.fl-row.hero .fl-module.script .fl-heading-text {
	font-family: var(--script);
	font-weight: 400;
	font-size: clamp(4.4rem, 8vw, 6.8rem);
	line-height: 1.05;
	color: var(--gold) !important;
	letter-spacing: 0;
}

.fl-module.eyebrow .fl-heading-text,
.eyebrow {
	font-family: var(--sans) !important;
	font-size: 0.78rem !important;
	font-weight: 650 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase;
	color: var(--gold-2);
	margin-bottom: 10px;
}

.fl-row.hero .fl-module.eyebrow .fl-heading-text { color: var(--gold) !important; }

.fl-row.hero .fl-rich-text,
.fl-row.band-dark .fl-rich-text { color: rgba(247, 241, 232, 0.86); font-size: 1.12rem; }

.price-note { color: rgba(247, 241, 232, 0.78); font-size: 0.98rem; }

.fl-builder-content a.fl-button,
.fl-builder-content .fl-button,
a.btn,
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 22px;
	border-radius: 999px;
	background: var(--gold) !important;
	color: var(--ink) !important;
	border: 1.5px solid var(--gold) !important;
	text-decoration: none;
	font-family: var(--sans);
	font-weight: 650;
	line-height: 1;
	box-shadow: none;
}

.fl-builder-content .fl-module.btn-ghost a.fl-button,
a.btn-ghost,
.btn-ghost {
	background: transparent !important;
	color: inherit !important;
	border-color: currentColor !important;
}

.fl-row.hero .fl-module-button,
.fl-row.cta .fl-module-button,
.hero-actions .fl-module-button { display: inline-block; margin: 0 12px 0 0; width: auto; }
.hero-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 2px;
	flex-shrink: 0;
}
.hero-actions .btn {
	min-height: 46px;
	padding: 0 22px;
	font-size: 0.96rem;
	font-weight: 600;
}
.hero-actions .btn-ghost {
	background: transparent !important;
	color: #f4efe6 !important;
	border: 1.5px solid rgba(244, 239, 230, 0.85) !important;
}

.fl-row.hero .fl-photo-img { display: none; }

.fl-row.split .fl-photo-img,
.fl-row.page-hero .fl-photo-img {
	width: 100%;
	height: min(72vh, 680px);
	object-fit: cover;
	border-radius: 28px;
}

.fl-row.photo-cards > .fl-row-content-wrap { padding-top: 36px; padding-bottom: 28px; }

.fl-row.photo-cards .fl-col { padding-left: 8px; padding-right: 8px; }

.fl-row.photo-cards .fl-col-content {
	position: relative;
	min-height: 460px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	border-radius: 6px;
	overflow: hidden;
	padding: 22px 20px 18px;
}

.fl-row.photo-cards .fl-col-content::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(8, 12, 10, 0.88) 0%, rgba(8, 12, 10, 0.28) 48%, rgba(8, 12, 10, 0.05) 100%);
	pointer-events: none;
}

.fl-row.photo-cards .fl-module-photo {
	position: absolute;
	inset: 0;
	margin: 0;
}

.fl-row.photo-cards .fl-module-photo .fl-module-content,
.fl-row.photo-cards .fl-photo,
.fl-row.photo-cards .fl-photo-content,
.fl-row.photo-cards .fl-photo-img {
	width: 100%;
	height: 100%;
	min-height: 460px;
	object-fit: cover;
	border-radius: 0;
}

.fl-row.photo-cards .fl-module-heading,
.fl-row.photo-cards .fl-module-rich-text,
.fl-row.photo-cards .fl-module-html {
	position: relative;
	z-index: 1;
	margin: 0;
}

.fl-row.photo-cards .fl-heading-text {
	color: #f7f1e8 !important;
	font-size: 1.55rem;
	margin: 0 0 6px;
}

.fl-row.photo-cards .fl-rich-text,
.fl-row.photo-cards .fl-rich-text p {
	color: rgba(247, 241, 232, 0.9);
	font-size: 0.98rem;
	margin: 0 0 8px;
}

.more-link { margin: 10px 0 22px; }
.more-link a {
	color: #b08a3a;
	font-weight: 650;
	text-decoration: none;
	font-size: 0.98rem;
}
.more-link a::after { content: " →"; }

.fl-row.path-intro > .fl-row-content-wrap {
	padding-top: 72px;
	padding-bottom: 10px;
}
.fl-row.path-intro .fl-heading-text {
	font-family: var(--serif);
	font-size: clamp(2.6rem, 4vw, 3.5rem);
	font-weight: 560;
}
.fl-row.path-intro .fl-rich-text,
.fl-row.path-intro .fl-rich-text p {
	color: #5f574d;
	font-size: 1.05rem;
}

.fl-row.path-cards > .fl-row-content-wrap {
	padding-top: 22px;
	padding-bottom: 80px;
}
.fl-row.path-cards .fl-col-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
}
.fl-row.path-cards .fl-col,
.fl-row.path-cards .fl-col-small {
	float: none !important;
	clear: none !important;
	flex: 1 1 0;
	width: auto !important;
	max-width: none !important;
	padding: 10px !important;
	margin: 0 !important;
}
.fl-row.path-cards .fl-col-content {
	background: #fff;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(28, 23, 18, 0.06);
	height: 100%;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	padding: 0 !important;
}

/* Kill Beaver Builder’s default 20px module margins so the photo is edge-to-edge. */
.fl-row.path-cards .fl-module,
.fl-row.path-cards .fl-module-content {
	margin: 0 !important;
	padding: 0 !important;
}
.fl-row.path-cards .fl-photo,
.fl-row.path-cards .fl-photo-content,
.fl-row.path-cards .fl-photo-align-center,
.fl-row.path-cards .fl-photo-align-left {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
	line-height: 0 !important;
}
.fl-row.path-cards .fl-photo-img {
	width: 100% !important;
	max-width: none !important;
	height: 168px !important;
	object-fit: cover;
	object-position: center 40%;
	border-radius: 0 !important;
	display: block !important;
	margin: 0 !important;
}
.fl-row.path-cards .fl-col:nth-child(1) .fl-photo-img {
	object-position: center 65%; /* ASL hands sit lower in the frame */
}

/* Icon overlaps the photo’s bottom-left edge.
   Sample uses a thin light ring so the badge reads on both the photo and the card. */
.fl-row.path-cards .fl-module-icon {
	position: relative;
	z-index: 2;
	margin: -22px 0 0 16px !important;
	width: auto !important;
	max-width: none !important;
	align-self: flex-start !important;
}
.fl-row.path-cards .fl-icon-wrap {
	display: block !important;
	width: auto !important;
	text-align: left !important;
	margin: 0 !important;
}
.fl-row.path-cards .fl-icon {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #6a857c;
	border: 2px solid #fff;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-shadow: none !important;
	margin: 0 !important;
}
.fl-row.path-cards .fl-col:nth-child(1) .fl-icon { background: #6a857c; }
.fl-row.path-cards .fl-col:nth-child(2) .fl-icon { background: #a56f66; }
.fl-row.path-cards .fl-col:nth-child(3) .fl-icon { background: #5f7c8d; }
.fl-row.path-cards .fl-col:nth-child(4) .fl-icon { background: #c49a4d; }
.fl-row.path-cards .fl-icon i {
	color: #fff !important;
	font-size: 15px !important;
	line-height: 1 !important;
}

.fl-row.path-cards .fl-module-heading,
.fl-row.path-cards .fl-module-rich-text,
.fl-row.path-cards .fl-module-html {
	padding-left: 18px !important;
	padding-right: 18px !important;
}
.fl-row.path-cards .fl-module-heading {
	margin-top: 14px !important;
}
.fl-row.path-cards .fl-heading-text {
	font-family: var(--sans) !important;
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em;
	margin: 0 0 8px !important;
	line-height: 1.25 !important;
	color: #1c1712 !important;
	min-height: 2.5em; /* keep short titles and “American Sign Language” aligned */
}
.fl-row.path-cards .fl-rich-text,
.fl-row.path-cards .fl-rich-text p {
	color: #63594f;
	font-size: 0.92rem;
	line-height: 1.48;
	margin: 0 !important;
}
.fl-row.path-cards .fl-module-html {
	margin-top: auto !important;
	padding-bottom: 0 !important;
}
.fl-row.path-cards .more-link {
	margin: 16px 0 18px !important;
}

.quote-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 22px;
}
.quote-head h2 {
	margin: 0;
	font-size: clamp(2.4rem, 4vw, 3.4rem);
}
.quote-nav { display: flex; gap: 10px; }
.quote-nav button {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1px solid var(--line);
	background: transparent;
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
	color: var(--ink);
}
.quote-track {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}
.quote-card {
	background: #fffdf9;
	border-radius: 18px;
	padding: 22px 20px 16px;
	box-shadow: 0 12px 30px rgba(28, 23, 18, 0.05);
}
.quote-card p { margin: 0 0 16px; }
.quote-card .stars { color: var(--gold); letter-spacing: 0.08em; font-size: 0.92rem; }
.quote-card .stars span { color: var(--muted); letter-spacing: 0; margin-left: 6px; }

.fl-row.home-cta { text-align: left; }
.fl-row.home-cta > .fl-row-content-wrap {
	position: relative;
	padding-top: 56px;
	padding-bottom: 56px;
	background-color: #14110f !important;
	background-size: cover !important;
	background-position: center center !important;
}
.fl-row.home-cta > .fl-row-content-wrap::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(12, 9, 7, 0.78) 0%, rgba(12, 9, 7, 0.55) 48%, rgba(12, 9, 7, 0.42) 100%);
	z-index: 0;
	pointer-events: none;
}
.fl-row.home-cta .fl-row-content,
.fl-row.home-cta .fl-col-group,
.fl-row.home-cta .fl-col,
.fl-row.home-cta .fl-col-content { position: relative; z-index: 1; }
.fl-row.home-cta .fl-col-group {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
}
.fl-row.home-cta .fl-col,
.fl-row.home-cta .fl-col-small {
	float: none !important;
	clear: none !important;
	margin: 0 !important;
}
.fl-row.home-cta .fl-col:first-child { flex: 1 1 62%; width: auto !important; max-width: none !important; }
.fl-row.home-cta .fl-col:last-child {
	flex: 0 0 auto;
	width: auto !important;
	max-width: none !important;
	text-align: right;
}
.fl-row.home-cta .fl-module.eyebrow .fl-heading-text,
.fl-row.home-cta .eyebrow {
	color: #f4efe6 !important;
	letter-spacing: 0.16em !important;
	margin-bottom: 10px !important;
}
.fl-row.home-cta .fl-heading-text {
	font-family: var(--serif) !important;
	font-size: clamp(2.1rem, 3.4vw, 3rem) !important;
	font-weight: 560 !important;
	color: #f7f1e8 !important;
	margin: 0 0 10px !important;
	line-height: 1.15 !important;
}
.fl-row.home-cta .fl-rich-text,
.fl-row.home-cta .fl-rich-text p {
	max-width: 34rem;
	margin: 0 !important;
	color: rgba(247, 241, 232, 0.9);
	font-size: 1.05rem;
	line-height: 1.45;
}
.home-cta-action {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.home-cta-action .btn {
	min-height: 48px;
	padding: 0 26px;
	font-size: 1rem;
	font-weight: 650;
	white-space: nowrap;
}

.fl-row.why-intro,
.fl-row.why {
	text-align: center;
}
.fl-row.why-intro > .fl-row-content-wrap,
.fl-row.why > .fl-row-content-wrap {
	background-color: #14110f !important;
}
.fl-row.why-intro > .fl-row-content-wrap {
	padding-top: 80px;
	padding-bottom: 12px;
}
.fl-row.why > .fl-row-content-wrap {
	padding-top: 28px;
	padding-bottom: 88px;
}
.fl-row.why-intro .fl-module.eyebrow .fl-heading-text,
.fl-row.why-intro .eyebrow {
	color: #e2ae3a !important;
}
.fl-row.why-intro .fl-heading-text {
	font-family: var(--serif) !important;
	font-size: clamp(2.6rem, 4vw, 3.6rem) !important;
	font-weight: 560 !important;
	color: #f7f1e8 !important;
	margin: 0 0 12px !important;
}
.fl-row.why-intro .fl-rich-text,
.fl-row.why-intro .fl-rich-text p {
	color: rgba(247, 241, 232, 0.78);
	font-size: 1.08rem;
	margin: 0;
}
.fl-row.why .fl-col-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
}
.fl-row.why .fl-col,
.fl-row.why .fl-col-small {
	float: none !important;
	clear: none !important;
	flex: 1 1 0;
	width: auto !important;
	max-width: none !important;
	padding: 12px 18px !important;
	margin: 0 !important;
}
.fl-row.why .fl-module,
.fl-row.why .fl-module-content {
	margin: 0 !important;
	padding: 0 !important;
}
.fl-row.why .fl-heading-text {
	font-family: var(--sans) !important;
	font-size: 1.2rem !important;
	font-weight: 700 !important;
	color: #f7f1e8 !important;
	margin: 0 0 10px !important;
	line-height: 1.25 !important;
}
.fl-row.why .fl-rich-text,
.fl-row.why .fl-rich-text p {
	color: rgba(247, 241, 232, 0.72);
	font-size: 0.98rem;
	line-height: 1.45;
	max-width: 16rem;
	margin: 0 auto !important;
}

.fl-row.center,
.fl-row.page-hero.center,
.fl-row.band-dark.page-hero { text-align: center; }

.fl-row.center .fl-rich-text,
.fl-row.page-hero.center .fl-rich-text { max-width: 640px; margin-left: auto; margin-right: auto; }

.signoff {
	font-family: var(--script);
	font-size: 2.6rem;
	line-height: 1;
	color: var(--gold-2);
	margin: 8px 0 16px;
}

.fl-row.why .fl-col,
.fl-row.icons .fl-col { text-align: center; }

.fl-row.why .fl-icon-wrap,
.fl-row.icons .fl-icon-wrap { text-align: center; }

.fl-row.why .fl-module-icon { margin-bottom: 18px !important; }

.fl-row.why .fl-icon,
.fl-row.icons .fl-icon {
	width: 78px;
	height: 78px;
	margin: 0 auto;
	border: 1.5px solid #e2ae3a;
	border-radius: 50%;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	background: transparent;
	box-shadow: none !important;
}

.fl-row.why .fl-icon i,
.fl-row.icons .fl-icon i {
	color: #e2ae3a !important;
	font-size: 22px !important;
}

.fl-row.about-hero > .fl-row-content-wrap {
	padding-top: 56px;
	padding-bottom: 56px;
}
.fl-row.about-hero .fl-col-group { align-items: center; }
.fl-row.about-hero h1 .fl-heading-text {
	font-size: clamp(2.2rem, 3.6vw, 3.35rem) !important;
	line-height: 1.08 !important;
	margin-bottom: 14px !important;
}
.fl-row.about-hero .fl-rich-text p {
	max-width: 34rem;
	font-size: 1.05rem;
	line-height: 1.55;
	color: var(--muted);
}
.fl-row.about-hero .about-actions { margin-top: 8px; }
.fl-row.about-hero .fl-photo-img {
	border-radius: 22px;
	height: min(62vh, 560px);
	min-height: 420px;
	object-fit: cover;
	object-position: center 18%;
}

.fl-row.about-values > .fl-row-content-wrap {
	padding-top: 56px;
	padding-bottom: 56px;
}
.fl-row.about-values .fl-col-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
}
.fl-row.about-values .fl-col,
.fl-row.about-values .fl-col-small {
	float: none !important;
	flex: 1 1 0;
	width: auto !important;
	max-width: none !important;
	padding: 8px 18px !important;
}
.fl-row.about-values .fl-icon {
	width: 64px;
	height: 64px;
	border: none;
	background: transparent;
}
.fl-row.about-values .fl-icon i { font-size: 28px !important; }
.fl-row.about-values .fl-heading-text {
	font-family: var(--sans) !important;
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	margin: 8px 0 8px !important;
}
.fl-row.about-values .fl-rich-text p {
	margin: 0;
	color: var(--muted);
	font-size: 0.98rem;
}

.fl-row.about-quote > .fl-row-content-wrap {
	padding-top: 64px;
	padding-bottom: 72px;
}
.fl-row.about-quote .fl-col-group {
	display: flex;
	align-items: center;
	gap: 28px;
}
.fl-row.about-quote .fl-col,
.fl-row.about-quote .fl-col-small {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	flex: 1 1 0;
}
.fl-row.about-quote .fl-photo-img {
	width: 100%;
	height: min(52vh, 460px);
	min-height: 340px;
	object-fit: cover;
	object-position: center 20%;
	border-radius: 22px;
}
.about-quote-card {
	position: relative;
	margin: 0;
	padding: 8px 8px 0 12px;
	border: 0;
}
.about-quote-mark {
	display: block;
	font-family: var(--serif);
	font-size: 5.5rem;
	line-height: 0.7;
	color: #e2ae3a;
	margin-bottom: 8px;
}
.about-quote-card p {
	margin: 0 0 18px;
	font-family: var(--serif);
	font-size: clamp(1.45rem, 2.4vw, 1.95rem);
	line-height: 1.35;
	color: var(--ink);
}
.about-quote-card .signoff {
	margin: 0;
	color: var(--gold-2);
}

.fl-row.proof .fl-col,
.fl-row.quotes .fl-col {
	background: var(--paper);
	border-radius: 20px;
	padding: 8px 8px 12px;
}

.fl-module-star-rating { color: var(--gold); letter-spacing: 0.12em; }

.fl-module.quote .fl-rich-text {
	font-family: var(--serif);
	font-size: clamp(1.7rem, 3vw, 2.35rem);
	line-height: 1.25;
}

.fl-row.cta { text-align: center; }
.fl-row.cta .fl-rich-text { max-width: 640px; margin-left: auto; margin-right: auto; }

.fl-row.page-hero h1 .fl-heading-text,
.fl-row.page-hero .fl-module-heading h1 {
	font-size: clamp(2.6rem, 5vw, 4.4rem);
}

.archive-hero,
.entry {
	max-width: var(--max);
	margin: 0 auto;
	padding: 64px 24px 12px;
}

.archive-hero h1,
.entry h1 {
	font-size: clamp(2.6rem, 5vw, 4.4rem);
	margin: 0 0 12px;
}

.byline { color: var(--muted); }

.entry-media { max-width: var(--max); margin: 0 auto 12px; padding: 0 24px; }
.entry-media img { width: 100%; border-radius: 24px; max-height: 520px; object-fit: cover; }

.entry-content,
.post-grid,
.nav-links { max-width: var(--max); margin: 0 auto 72px; padding: 0 24px; }

.entry-content h2 { font-size: 2rem; margin: 1.6rem 0 0.5rem; }
.entry-content a { color: var(--gold-2); }

.post-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.post-card {
	background: var(--paper);
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 16px 40px rgba(28, 23, 18, 0.05);
}

.post-card-media img { width: 100%; height: 240px; object-fit: cover; }
.post-card-body { padding: 18px 18px 22px; }
.post-card h2 { margin: 0 0 8px; font-size: 1.7rem; }
.post-card h2 a { text-decoration: none; }

.site-footer {
	background: var(--forest);
	color: #f6f1e8;
	padding: 72px 24px 36px;
	text-align: center;
}

.footer-inner {
	max-width: 820px;
	margin: 0 auto;
}

.footer-inner .logo { font-size: 4.2rem; }

.footer-disciplines {
	color: var(--gold);
	letter-spacing: 0.04em;
	margin-top: 4px;
}

.footer-meta {
	color: rgba(246, 241, 232, 0.72);
	font-size: 0.95rem;
}

.footer-links { margin: 18px 0 8px; }

.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: var(--gold); }

.footer-menu {
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px 22px;
}

.social-list { justify-content: center; gap: 14px; margin-top: 8px; }
.social-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(246, 241, 232, 0.28);
	border-radius: 50%;
	color: var(--gold);
}
.social-list i { font-size: 1rem; }

.footer-legal {
	margin: 22px 0 0;
	padding-top: 18px;
	border-top: 1px solid rgba(246, 241, 232, 0.12);
	color: rgba(246, 241, 232, 0.7);
	font-size: 0.92rem;
}

.studio-banner {
	border-radius: 14px;
	padding: 14px 16px;
	margin: 0 0 18px;
	background: #e7f3ea;
	border: 1px solid #b7d7c2;
}
.studio-banner.is-error { background: #fdeeee; border-color: #efc4c4; }

.studio-form label,
.package-card,
.slot,
.cal-day {
	display: block;
}

.studio-form label span,
.field-label {
	display: block;
	font-size: 0.86rem;
	font-weight: 650;
	margin-bottom: 6px;
}

.studio-form input[type="text"],
.studio-form input[type="email"],
.studio-form select,
.studio-form textarea {
	width: 100%;
	border: 1px solid var(--line);
	background: #fff;
	border-radius: 12px;
	padding: 14px 14px;
	font: inherit;
	color: var(--ink);
	margin-bottom: 14px;
}

.package-grid,
.lesson-picks,
.time-grid {
	display: grid;
	gap: 12px;
	margin: 0 0 18px;
}

.book-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: 36px;
	align-items: start;
	text-align: left;
}

.book-intro > .fl-row-content-wrap { padding-bottom: 12px; }

.package-grid,
.book-side .package-grid { grid-template-columns: 1fr; }
.lesson-picks { grid-template-columns: 1fr; }
.time-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.book-cal {
	background: var(--paper);
	border-radius: 22px;
	padding: 22px 20px 18px;
	box-shadow: 0 18px 40px rgba(28, 23, 18, 0.06);
}

.book-note { color: var(--muted); font-size: 0.92rem; }

.package-card,
.lesson-picks label,
.time-grid label,
.cal-day {
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 14px;
	background: var(--paper);
	cursor: pointer;
}

.package-card.is-anchor {
	background: var(--forest);
	color: var(--cream);
	border-color: var(--forest);
}

.package-card strong,
.package-card .price {
	display: block;
	font-family: var(--serif);
}

.package-card .price { font-size: 2rem; line-height: 1; margin: 6px 0; }

.package-card input,
.lesson-picks input,
.time-grid input,
.cal-day input { margin-right: 8px; }

.calendar-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}

.calendar-head a { color: var(--gold-2); font-weight: 650; text-decoration: none; }

.calendar {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 6px;
	margin-bottom: 16px;
}

.calendar .dow { text-align: center; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }

.cal-day { text-align: center; padding: 10px 0; border-radius: 12px; }
.cal-day.is-disabled { opacity: 0.35; cursor: default; }
.cal-day input { position: absolute; opacity: 0; }
.cal-day:has(input:checked) { background: var(--gold); border-color: var(--gold); }

.hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }

.fl-row.faq-intro > .fl-row-content-wrap {
	padding-top: 64px;
	padding-bottom: 18px;
}
.fl-row.faq-intro .fl-col-group {
	display: flex;
	align-items: flex-end;
	gap: 24px;
}
.fl-row.faq-intro .fl-col,
.fl-row.faq-intro .fl-col-small {
	float: none !important;
	width: auto !important;
	max-width: none !important;
}
.fl-row.faq-intro .fl-col:first-child { flex: 1 1 55%; }
.fl-row.faq-intro .fl-col:last-child { flex: 1 1 40%; }
.fl-row.faq-intro h1 .fl-heading-text {
	font-size: clamp(2.2rem, 3.6vw, 3.2rem) !important;
	line-height: 1.08 !important;
	margin: 0 !important;
}
.faq-lede {
	margin: 0 0 8px !important;
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.5;
}

.fl-row.faq-split > .fl-row-content-wrap {
	padding-top: 18px;
	padding-bottom: 72px;
}
.fl-row.faq-split .fl-col-group {
	display: flex;
	align-items: flex-start;
	gap: 28px;
}
.fl-row.faq-split .fl-col,
.fl-row.faq-split .fl-col-small {
	float: none !important;
	margin: 0 !important;
}
.fl-row.faq-split .fl-col:first-child {
	flex: 1 1 62%;
	width: auto !important;
	max-width: none !important;
}
.fl-row.faq-split .fl-col:last-child {
	flex: 0 0 280px;
	width: 280px !important;
	max-width: 280px !important;
}

.faq-list {
	background: #fffdf9;
	border-radius: 20px;
	padding: 8px 22px;
	box-shadow: 0 14px 34px rgba(28, 23, 18, 0.05);
}
.faq-list details {
	border-bottom: 1px solid var(--line);
	padding: 0;
}
.faq-list details:last-child { border-bottom: 0; }
.faq-list summary {
	display: flex;
	align-items: center;
	gap: 14px;
	cursor: pointer;
	list-style: none;
	padding: 18px 0;
	font-family: var(--sans);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--ink);
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	color: #e2ae3a;
	font-size: 0.95rem;
}
.faq-q { flex: 1 1 auto; }
.faq-toggle {
	position: relative;
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
}
.faq-toggle::before,
.faq-toggle::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	background: #c8922a;
	transform: translate(-50%, -50%);
}
.faq-toggle::before {
	width: 14px;
	height: 2px;
}
.faq-toggle::after {
	width: 2px;
	height: 14px;
}
.faq-list details[open] .faq-toggle::after { display: none; }
.faq-list details p {
	margin: 0 0 18px 42px;
	color: var(--muted);
	font-size: 0.98rem;
	line-height: 1.5;
}

.faq-note {
	background:
		linear-gradient(180deg, rgba(247, 244, 238, 0.2), rgba(247, 244, 238, 0.2)),
		repeating-linear-gradient(
			transparent,
			transparent 27px,
			rgba(200, 146, 42, 0.18) 27px,
			rgba(200, 146, 42, 0.18) 28px
		),
		#fffdf9;
	border-radius: 18px;
	padding: 36px 28px 28px;
	min-height: 280px;
	box-shadow: 0 14px 34px rgba(28, 23, 18, 0.05);
	transform: rotate(1.5deg);
}
.faq-note-title {
	margin: 0 0 18px;
	font-family: var(--serif);
	font-size: clamp(1.7rem, 2.4vw, 2.15rem);
	line-height: 1.15;
	color: var(--ink);
}
.faq-note .signoff {
	margin: 0;
	color: var(--gold-2);
}

.fl-row.quote-band > .fl-row-content-wrap {
	position: relative;
	min-height: 460px;
	padding-top: 0;
	padding-bottom: 0;
	display: flex;
	align-items: center;
}

.fl-row.quote-band .fl-col,
.fl-row.quote-band .fl-col-content,
.fl-row.quote-band .fl-module { position: static; }

.fl-row.quote-band .fl-module-photo {
	position: absolute;
	inset: 0;
	margin: 0;
}

.fl-row.quote-band .fl-photo,
.fl-row.quote-band .fl-photo-content,
.fl-row.quote-band .fl-photo-img {
	width: 100%;
	height: 100%;
	min-height: 460px;
	object-fit: cover;
	object-position: center 20%;
	border-radius: 0;
}

.fl-row.quote-band .fl-module-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(18, 28, 23, 0.72), rgba(18, 28, 23, 0.35));
}

.fl-row.quote-band .fl-module.quote {
	position: relative;
	z-index: 1;
	max-width: 760px;
	margin: 80px auto;
	text-align: center;
}

.fl-row.quote-band .fl-rich-text,
.fl-row.quote-band .fl-rich-text p {
	color: #f6f1e8;
	font-family: var(--serif);
	font-size: clamp(1.6rem, 3vw, 2.3rem);
	line-height: 1.3;
}

.fl-row.quote-band .signoff { color: var(--gold); }

.fl-row.lessons-hero { text-align: center; }
.fl-row.lessons-hero > .fl-row-content-wrap {
	padding-top: 72px;
	padding-bottom: 64px;
	background-color: #14110f !important;
}
.fl-row.lessons-hero .fl-module.eyebrow .fl-heading-text,
.fl-row.lessons-hero .eyebrow { color: #e2ae3a !important; }
.fl-row.lessons-hero .fl-heading-text {
	font-family: var(--serif) !important;
	font-size: clamp(2.4rem, 4vw, 3.4rem) !important;
	color: #f7f1e8 !important;
	margin: 0 0 12px !important;
}
.fl-row.lessons-hero .fl-rich-text,
.fl-row.lessons-hero .fl-rich-text p {
	max-width: 40rem;
	margin: 0 auto;
	color: rgba(247, 241, 232, 0.82);
	font-size: 1.05rem;
	line-height: 1.5;
}

.fl-row.lessons-shell > .fl-row-content-wrap {
	padding-top: 56px;
	padding-bottom: 72px;
}
.fl-row.lessons-shell .fl-col-group {
	display: flex;
	align-items: flex-start;
	gap: 28px;
}
.fl-row.lessons-shell .fl-col,
.fl-row.lessons-shell .fl-col-small {
	float: none !important;
	margin: 0 !important;
}
.fl-row.lessons-shell .fl-col:first-child {
	flex: 0 0 280px;
	width: 280px !important;
	max-width: 280px !important;
}
.fl-row.lessons-shell .fl-col:last-child {
	flex: 1 1 auto;
	width: auto !important;
	max-width: none !important;
}
.lessons-sidebar { width: 100%; }
.lessons-sidebar-photo {
	width: 100%;
	height: 340px;
	border-radius: 20px;
	overflow: hidden;
	background-color: #1c1712;
	background-size: cover;
	background-position: center 15%;
	background-repeat: no-repeat;
}
.lessons-welcome {
	margin-top: 22px;
	text-align: center;
	padding: 8px 8px 0;
}
.lessons-welcome-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	border: 1.5px solid #e2ae3a;
	color: #e2ae3a;
	margin-bottom: 12px;
	font-size: 1.2rem;
}
.lessons-welcome h3 {
	margin: 0 0 8px;
	font-family: var(--sans);
	font-size: 1.15rem;
	font-weight: 700;
}
.lessons-welcome p {
	margin: 0;
	color: var(--muted);
	font-size: 0.98rem;
	line-height: 1.45;
}

.lesson-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}
.lesson-card {
	display: flex;
	flex-direction: column;
	background: #fffdf9;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 14px 34px rgba(28, 23, 18, 0.06);
	height: 100%;
}
.lesson-card-media {
	position: relative;
	width: 100%;
	height: 180px;
	overflow: hidden;
	background-color: #efe6d6;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.lesson-card-icon {
	position: absolute;
	left: 16px;
	bottom: -18px;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 2px solid #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1rem;
	z-index: 1;
}
.lesson-card--asl .lesson-card-icon { background: #6a857c; }
.lesson-card--voice .lesson-card-icon { background: #a56f66; }
.lesson-card--acting .lesson-card-icon { background: #5f7c8d; }
.lesson-card--theatre .lesson-card-icon { background: #c49a4d; }
.lesson-card-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 28px 20px 20px;
}
.lesson-card-body h2 {
	margin: 0 0 8px;
	font-family: var(--serif);
	font-size: 1.45rem;
	line-height: 1.15;
}
.lesson-card-body > p {
	margin: 0 0 12px;
	color: var(--muted);
	font-size: 0.96rem;
	line-height: 1.45;
}
.lesson-card-body ul {
	list-style: none;
	margin: 0 0 14px;
	padding: 0;
}
.lesson-card-body li {
	position: relative;
	padding-left: 1.35rem;
	margin: 0 0 0.35rem;
	color: var(--ink);
	font-size: 0.92rem;
	line-height: 1.4;
}
.lesson-card-body li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	color: #e2ae3a;
	font-weight: 700;
}
.lesson-card-body .more-link {
	display: inline-block;
	margin: 0 0 14px;
	color: #c8922a;
	font-weight: 650;
	font-size: 0.92rem;
	text-decoration: none;
}
.lesson-card-body .btn {
	margin-top: auto;
	align-self: flex-start;
	min-height: 44px;
	padding: 0 18px;
	font-size: 0.92rem;
}

.fl-row.lesson-grid > .fl-row-content-wrap { padding-top: 10px; padding-bottom: 10px; }

.fl-row.lesson-grid .fl-col { padding: 10px; }

.fl-row.lesson-grid .fl-col-content {
	background: var(--paper);
	border-radius: 20px;
	padding: 26px 24px 18px;
	box-shadow: 0 16px 36px rgba(28, 23, 18, 0.05);
	height: 100%;
}

.fl-row.filmstrip > .fl-row-content-wrap { padding: 28px 0 0; }
.fl-row.filmstrip .fl-col { padding: 0 6px; }
.fl-row.filmstrip .fl-photo-img {
	width: 100%;
	height: 240px;
	object-fit: cover;
	border-radius: 0;
}

.fl-row.stories .fl-col { padding: 10px; }
.fl-row.stories .fl-col-content {
	background: var(--paper);
	color: var(--ink);
	border-radius: 18px;
	padding: 22px 22px 8px;
	height: 100%;
}
.fl-row.stories .fl-rich-text,
.fl-row.stories .fl-rich-text p { color: var(--ink); }
.fl-row.stories .fl-rich-text strong { display: block; margin-top: 8px; }

.fl-row.testimonials-hero { text-align: center; }
.fl-row.testimonials-hero > .fl-row-content-wrap {
	position: relative;
	padding-top: 88px;
	padding-bottom: 88px;
	background-color: #14110f !important;
	background-size: cover !important;
	background-position: center 30% !important;
	overflow: hidden;
}
.fl-row.testimonials-hero > .fl-row-content-wrap::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(12, 9, 7, 0.72), rgba(12, 9, 7, 0.78));
	z-index: 0;
	pointer-events: none;
}
.fl-row.testimonials-hero .fl-row-content,
.fl-row.testimonials-hero .fl-col-group,
.fl-row.testimonials-hero .fl-col,
.fl-row.testimonials-hero .fl-col-content { position: relative; z-index: 1; }
.fl-row.testimonials-hero .fl-module.eyebrow .fl-heading-text,
.fl-row.testimonials-hero .eyebrow { color: #e2ae3a !important; }
.fl-row.testimonials-hero .fl-heading-text {
	font-family: var(--serif) !important;
	font-size: clamp(2.4rem, 4vw, 3.5rem) !important;
	color: #f7f1e8 !important;
	margin: 0 0 12px !important;
}
.fl-row.testimonials-hero .fl-rich-text,
.fl-row.testimonials-hero .fl-rich-text p {
	max-width: 36rem;
	margin: 0 auto;
	color: rgba(247, 241, 232, 0.86);
	font-size: 1.05rem;
	line-height: 1.5;
}

.fl-row.testimonials-grid > .fl-row-content-wrap {
	padding-top: 56px;
	padding-bottom: 72px;
}
.testimonial-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}
.testimonial-card {
	background: #fffdf9;
	border-radius: 18px;
	padding: 26px 24px 22px;
	box-shadow: 0 14px 34px rgba(28, 23, 18, 0.06);
	height: 100%;
}
.testimonial-card .stars {
	margin: 0 0 14px;
	color: #e2ae3a;
	letter-spacing: 0.12em;
	font-size: 0.95rem;
}
.testimonial-quote {
	margin: 0 0 18px;
	font-family: var(--sans);
	font-size: 1.05rem;
	line-height: 1.5;
	color: var(--ink);
}
.testimonial-by {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 650;
	color: var(--ink);
}
.testimonial-by span {
	display: inline;
	font-weight: 450;
	color: var(--muted);
}

.fl-row.contact-split .fl-col:last-child .fl-module-html {
	background: var(--paper);
	border-radius: 22px;
	padding: 26px 24px 8px;
	box-shadow: 0 18px 40px rgba(28, 23, 18, 0.06);
}

.fl-row.contact-split .studio-form .btn,
.book-cal .btn { margin-top: 6px; }

.post-teasers {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.post-teasers a {
	display: block;
	background: var(--paper);
	border-radius: 18px;
	overflow: hidden;
	text-decoration: none;
}
.post-teasers img { width: 100%; height: 180px; object-fit: cover; }
.post-teasers span { display: block; padding: 14px 16px 18px; font-family: var(--serif); font-size: 1.35rem; }

.cred-line { font-weight: 650; }

@media (max-width: 900px) {
	.nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
	#site-nav {
		display: none;
		position: absolute;
		top: var(--header);
		left: 0;
		right: 0;
		background: var(--cream);
		color: var(--ink);
		padding: 12px 24px 24px;
		border-bottom: 1px solid var(--line);
	}
	.site-header.is-open #site-nav { display: block; }
	.nav-list { flex-direction: column; align-items: flex-start; }
	.package-grid,
	.time-grid,
	.post-grid,
	.post-teasers,
	.book-layout,
	.lesson-picks { grid-template-columns: 1fr; }
	.footer-menu { flex-direction: row; }
	.hero-stage {
		grid-template-columns: 1fr;
		min-height: 0;
		height: auto;
	}
	.hero-copy {
		max-width: none;
		padding: 36px 24px 28px;
		order: 1;
	}
	.hero-portrait {
		order: 0;
		margin-right: 0;
		min-height: 300px;
		max-height: 360px;
		height: 320px;
	}
	.hero-portrait::before {
		inset: auto 0 0 0;
		width: 100%;
		height: 38%;
		background: linear-gradient(to top, #0c0b0a 0%, rgba(12, 11, 10, 0.55) 45%, transparent 100%);
	}
	.hero-portrait img {
		min-height: 100%;
		height: 100%;
		object-position: 50% 12%;
	}
	.hero-lockup {
		order: 2;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 10px 18px;
		padding: 8px 24px 36px;
		text-shadow: none;
	}
	.lockup-name { margin: 0; font-size: 2.4rem; }
	.lockup-words {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 10px 14px;
		letter-spacing: 0.16em;
		font-size: 0.68rem;
	}
	.lockup-heart { margin-top: 0; }
	.quote-track { grid-template-columns: 1fr; }
	.fl-row.split .fl-photo-img { height: 420px; min-height: 420px; }
	.fl-row.photo-cards .fl-col-content,
	.fl-row.photo-cards .fl-photo-img { min-height: 380px; }
	.fl-row.quote-band .fl-module.quote { margin: 48px 20px; }
	.fl-row.about-values .fl-col-group { flex-wrap: wrap; }
	.fl-row.about-values .fl-col,
	.fl-row.about-values .fl-col-small {
		flex: 1 1 100%;
		padding: 18px 8px !important;
	}
	.fl-row.about-quote .fl-col-group {
		flex-wrap: wrap;
		gap: 18px;
	}
	.fl-row.about-quote .fl-col,
	.fl-row.about-quote .fl-col-small { flex: 1 1 100%; }
	.fl-row.about-hero .fl-photo-img,
	.fl-row.about-quote .fl-photo-img {
		height: 380px;
		min-height: 380px;
	}
	.fl-row.lessons-shell .fl-col-group {
		flex-wrap: wrap;
		gap: 24px;
	}
	.fl-row.lessons-shell .fl-col:first-child,
	.fl-row.lessons-shell .fl-col:last-child {
		flex: 1 1 100%;
		width: 100% !important;
		max-width: none !important;
	}
	.lessons-sidebar-photo { height: 280px; }
	.lesson-card-grid {
		grid-template-columns: 1fr;
	}
	.testimonial-grid {
		grid-template-columns: 1fr;
	}
	.fl-row.faq-intro .fl-col-group,
	.fl-row.faq-split .fl-col-group {
		flex-wrap: wrap;
		gap: 18px;
	}
	.fl-row.faq-intro .fl-col:first-child,
	.fl-row.faq-intro .fl-col:last-child,
	.fl-row.faq-split .fl-col:first-child,
	.fl-row.faq-split .fl-col:last-child {
		flex: 1 1 100%;
		width: 100% !important;
		max-width: none !important;
	}
	.faq-list details p { margin-left: 0; }
	.faq-note { transform: none; }
	.fl-row.path-cards .fl-col-group { flex-wrap: wrap; }
	.fl-row.path-cards .fl-col,
	.fl-row.path-cards .fl-col-small {
		flex: 1 1 calc(50% - 20px);
		min-width: 240px;
	}
	.fl-row.why .fl-col-group { flex-wrap: wrap; }
	.fl-row.why .fl-col,
	.fl-row.why .fl-col-small {
		flex: 1 1 calc(50% - 16px);
		min-width: 220px;
		padding: 22px 12px !important;
	}
	.fl-row.home-cta .fl-col-group {
		flex-wrap: wrap;
		gap: 22px;
	}
	.fl-row.home-cta .fl-col:first-child,
	.fl-row.home-cta .fl-col:last-child {
		flex: 1 1 100%;
		width: 100% !important;
		text-align: left;
	}
	.home-cta-action { justify-content: flex-start; }
}
