/* ==========================================================================
   LessMess Home: front end and editor styles.
   Colours, fonts and sizes come from theme.json (Appearance > Editor > Styles),
   so changing them there re-skins everything below.
   ========================================================================== */

:root {
	--lm-pink: var(--wp--preset--color--pink);
	--lm-crimson: var(--wp--preset--color--crimson);
	--lm-crimson-deep: var(--wp--preset--color--crimson-deep);
	--lm-cream: var(--wp--preset--color--cream);
	--lm-sand: var(--wp--preset--color--cream-deep);
	--lm-blush: var(--wp--preset--color--blush);
	--lm-blush-deep: var(--wp--preset--color--blush-deep);
	--lm-ink: var(--wp--preset--color--espresso);
	--lm-ink-deep: var(--wp--preset--color--espresso-deep);
	--lm-taupe: var(--wp--preset--color--taupe);
	--lm-taupe-light: var(--wp--preset--color--taupe-light);
	--lm-rule: var(--wp--preset--color--rule);
	--c-pink: var(--lm-pink);
	--c-crimson: var(--lm-crimson);
	--c-cream: var(--lm-cream);
	--c-espresso: var(--lm-ink);
	--c-rule-warm: #ded5c9;
	--lm-display: var(--wp--preset--font-family--playfair-display);
	--lm-sans: var(--wp--preset--font-family--jost);
	--lm-gutter: var(--wp--custom--gutter);
	--lm-section-y: var(--wp--custom--section-y);
	--lm-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--lm-soft: cubic-bezier(0.4, 0, 0.2, 1);
	--lm-micro: 0.75rem;
	--lm-eyebrow-ls: 0.18em;
	--lm-caps-ls: 0.12em;
	--lm-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23eb5777' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5c-4.8-3.3-8.6-6.7-8.6-10.6 0-2.6 2-4.6 4.4-4.6 1.8 0 3.3 1 4.2 2.6.9-1.6 2.4-2.6 4.2-2.6 2.4 0 4.4 2 4.4 4.6 0 3.9-3.8 7.3-8.6 10.6z'/%3E%3Cpath d='M6 8.6c.5-1.3 1.4-2 2.6-2.2'/%3E%3C/svg%3E");
}

html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
::selection { background: var(--lm-crimson); color: var(--lm-cream); }
:focus-visible { outline: 2px solid var(--lm-crimson); outline-offset: 3px; }

/* Template parts and the designed-page template butt up against each other */
.wp-site-blocks > * + * { margin-block-start: 0; }
main.lm-landing,
.lm-landing__content,
.lm-landing__content > * { margin-block: 0 !important; }
main:not(.lm-landing) { padding-bottom: var(--lm-section-y); }

/* Italic words in display type carry the brand pink */
:where(h1, h2, h3, .wp-block-heading, .cta__title, .photo-caption, .step__text, .press__head) em {
	color: var(--lm-pink);
	font-style: italic;
	font-weight: 400;
}

/* Card grids: fixed column counts per screen size, matching the static site */
:is(.team__grid, .pricing__grid, .pkg-detail__grid, .pillars__grid, .always__grid, .also-cards, .steps__grid) {
	grid-template-columns: minmax(0, 1fr) !important;
}
@media (min-width: 600px) {
	:is(.team__grid, .always__grid, .also-cards) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 900px) {
	:is(.pricing__grid, .pkg-detail__grid, .steps__grid) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	:is(.pillars__grid, .always__grid) { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media (min-width: 1000px) {
	:is(.team__grid, .also-cards) { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}

/* Photos inside designed sections fill their slot */
:where(.wp-block-image[class*="__"], .story__media .wp-block-image, .ba__shots .wp-block-image, .photo-trio__row .wp-block-image) img {
	width: 100%;
	display: block;
}
.wp-block-image { margin-block-end: 0; }

/* --------------------------------------------------------------------------
   Block styles (the "Styles" panel in the editor)
   -------------------------------------------------------------------------- */
.is-style-eyebrow {
	font-family: var(--lm-sans);
	font-size: var(--lm-micro);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: var(--lm-eyebrow-ls);
	color: var(--lm-crimson);
}
.is-style-eyebrow + * { margin-block-start: 0.85rem !important; }

.is-style-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.6; }

.is-style-script,
h1.is-style-script, h2.is-style-script, h3.is-style-script {
	font-family: var(--lm-display);
	font-style: italic;
	font-weight: 400;
	color: var(--lm-ink);
}

.is-style-logo-font {
	font-family: var(--wp--preset--font-family--oswald) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0 !important;
	color: var(--lm-pink);
}

.is-style-arrow-link {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
}
.is-style-arrow-link a,
.pricing__note a {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding-bottom: 0.35rem;
	font-family: var(--lm-display);
	font-size: 1.0625rem;
	color: var(--lm-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--lm-crimson);
	transition: color 0.28s var(--lm-soft);
}
.is-style-arrow-link a::after,
.pricing__note a::after {
	content: "\2192";
	color: var(--lm-crimson);
	transition: transform 0.28s var(--lm-ease);
}
.is-style-arrow-link a:hover, .pricing__note a:hover { color: var(--lm-crimson); }
.is-style-arrow-link a:hover::after, .pricing__note a:hover::after { transform: translateX(5px); }

.is-style-heart {
	font-family: var(--lm-display);
	font-style: italic;
	color: var(--lm-ink);
}
.is-style-heart::after {
	content: "";
	display: inline-block;
	width: 0.85em;
	height: 0.85em;
	margin-left: 0.3em;
	vertical-align: -0.1em;
	background: var(--lm-heart) center / contain no-repeat;
	transform: rotate(-8deg);
}

/* Images */
.is-style-tag-before,
.is-style-tag-after { position: relative; overflow: hidden; background: var(--lm-sand); }
.is-style-tag-before figcaption,
.is-style-tag-after figcaption {
	position: absolute;
	z-index: 2;
	top: 0.75rem;
	left: 0.75rem;
	margin: 0;
	padding: 0.3rem 0.6rem;
	background: var(--lm-ink);
	color: var(--lm-cream);
	font-family: var(--lm-sans);
	font-size: var(--lm-micro);
	line-height: 1.4;
	letter-spacing: var(--lm-caps-ls);
	text-transform: uppercase;
}
.is-style-tag-after figcaption { background: var(--lm-pink); color: var(--lm-ink-deep); }

.is-style-magazine img {
	border-radius: 2px 6px 6px 2px;
	box-shadow: 1px 1px 0 #fff, 3px 3px 0 #ece6dd, 5px 5px 0 #fff, 7px 7px 0 #e4ddd2,
		22px 30px 40px -12px rgba(28, 25, 23, 0.35), 50px 70px 90px -30px rgba(168, 27, 62, 0.35);
	transform: perspective(1400px) rotateY(-10deg) rotateX(3deg);
}
.is-style-framed img { padding: 0.6rem; background: #fff; box-shadow: 0 8px 24px rgba(90, 71, 64, 0.12); }

/* Lists */
:where(.is-style-hex, .is-style-dots, .is-style-lines, .is-style-pills) { list-style: none; padding-left: 0; }
.is-style-hex { display: grid; gap: 0.7rem; }
.is-style-hex li { position: relative; padding-left: 1.6rem; max-width: 56ch; }
.is-style-hex li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 9px;
	height: 10px;
	background: var(--lm-pink);
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
.is-style-dots,
.is-style-lines { border-top: 1px solid var(--lm-rule); }
.is-style-dots li,
.is-style-lines li {
	padding-block: clamp(0.85rem, 1.5vw, 1.1rem);
	border-bottom: 1px solid var(--lm-rule);
	font-family: var(--lm-display);
	font-size: clamp(1.0625rem, 1.6vw, 1.3rem);
	color: var(--lm-ink);
}
.is-style-dots li { display: flex; align-items: baseline; gap: 1.5rem; }
.is-style-dots li::before {
	content: "";
	flex: none;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	background: var(--lm-pink);
	transform: translateY(-0.2rem);
}
.is-style-lines li em,
.is-style-dots li em { color: var(--lm-crimson); }
.is-style-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	font-family: var(--lm-sans);
	font-size: var(--lm-micro);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: var(--lm-caps-ls);
}
.is-style-pills li {
	padding: 0.55rem 1rem;
	border-radius: 999px;
	background: #fff;
	color: var(--lm-ink);
	box-shadow: 0 1px 0 #ded5c9, 0 6px 16px -10px rgba(28, 25, 23, 0.3);
	transition: background 0.6s var(--lm-ease), color 0.6s var(--lm-ease), transform 0.6s var(--lm-ease);
}
.is-style-pills li:hover { background: var(--lm-crimson); color: #fff; transform: translateY(-2px); }

/* Groups */
.is-style-card { padding: clamp(1.5rem, 2.8vw, 2rem); border: 1px solid var(--lm-rule); }
.is-style-card:not(.has-background) { background: var(--lm-cream); }
.is-style-card-ink { padding: clamp(1.5rem, 2.8vw, 2rem); background: var(--lm-ink); color: rgba(250, 247, 242, 0.82); }
.is-style-card-ink :where(h1, h2, h3, h4) { color: var(--lm-cream); }

/* Quotes */
.wp-block-quote.is-style-pink-rule { border-left: 2px solid var(--lm-pink); padding-left: clamp(0.9rem, 1.6vw, 1.25rem); }
.wp-block-quote.is-style-centered {
	border: 0;
	padding: 0;
	text-align: center;
	font-style: normal;
	font-size: clamp(1.5rem, 3.6vw, 2.5rem);
	color: var(--lm-ink-deep);
}

/* Buttons */
.wp-block-button__link {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: color 0.28s var(--lm-soft), transform 0.28s var(--lm-ease);
}
/* Pink fill wipes across on hover */
.wp-block-button__link::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--lm-crimson);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.45s var(--lm-ease);
}
.wp-block-button__link:hover::before,
.wp-block-button__link:focus-visible::before { transform: scaleX(1); }
.wp-block-button__link:not(.has-background):hover,
.wp-block-button__link:not(.has-background):focus { background-color: var(--wp--preset--color--espresso); color: var(--lm-cream); }
.wp-block-button__link::after { content: " \2192"; display: inline-block; margin-left: 0.4rem; transition: transform 0.28s var(--lm-ease); }
.wp-block-button__link:hover::after { transform: translateX(5px); }
.is-style-pink .wp-block-button__link { background: var(--lm-crimson); color: #fff; }
.is-style-pink .wp-block-button__link:hover { background: var(--lm-crimson); }
.is-style-pink .wp-block-button__link::before { background: var(--lm-ink); }
.is-style-large .wp-block-button__link { padding: 1.15rem 2rem; font-size: 0.95rem; }
.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--lm-ink);
	border: 1px solid currentColor;
	padding: 0.7rem 1.25rem;
}
.is-style-outline .wp-block-button__link:hover { background: transparent !important; color: var(--lm-cream); border-color: var(--lm-ink); }
.is-style-outline .wp-block-button__link::before { background: var(--lm-ink); }
.is-style-outline .wp-block-button__link::after { content: none; }

/* Separator */
.wp-block-separator.is-style-heart {
	border: 0;
	height: 1.4rem;
	background:
		var(--lm-heart) center / 1.4rem no-repeat,
		linear-gradient(var(--lm-rule), var(--lm-rule)) left center / calc(50% - 1.4rem) 1px no-repeat,
		linear-gradient(var(--lm-rule), var(--lm-rule)) right center / calc(50% - 1.4rem) 1px no-repeat;
}

/* Dark bands: headings and links flip to light */
.has-espresso-background-color :where(h1, h2, h3, h4, .wp-block-heading) { color: var(--lm-cream); }
.has-espresso-background-color .is-style-eyebrow { color: var(--lm-pink); }
.has-espresso-background-color .is-style-arrow-link a { color: var(--lm-cream); border-bottom-color: var(--lm-pink); }
.has-espresso-background-color .is-style-arrow-link a::after { color: var(--lm-pink); }
.has-espresso-background-color .is-style-arrow-link a:hover { color: var(--lm-pink); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	transition: box-shadow 0.4s var(--lm-soft);
}
/* The blur sits on a layer behind the header: a backdrop-filter on the header itself would trap the full-screen mobile menu inside the header bar */
.site-header-part::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(250, 247, 242, 0.9);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	backdrop-filter: saturate(180%) blur(14px);
}
.site-header-part.is-stuck { box-shadow: 0 1px 0 var(--lm-rule), 0 1px 24px rgba(90, 71, 64, 0.06); }
.site-header { padding-block: clamp(0.6rem, 1.2vw, 0.9rem); transition: padding 0.4s var(--lm-soft); }
.is-stuck .site-header { padding-block: clamp(0.35rem, 0.7vw, 0.55rem); }
.is-stuck .site-logo img { width: clamp(112px, 10vw, 150px) !important; }
.site-logo img { transition: width 0.4s var(--lm-soft), opacity 0.28s var(--lm-soft) !important; }

/* Mobile menu: slides down, links rise in one after another */
.lm-anim .site-nav .wp-block-navigation__responsive-container.is-menu-open { animation: lm-menu 0.7s var(--lm-ease) both; }
.lm-anim .site-nav .is-menu-open .wp-block-navigation-item { animation: lm-up 0.5s var(--lm-ease) both; }
.site-nav .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: 60ms; }
.site-nav .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: 120ms; }
.site-nav .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: 180ms; }
.site-nav .is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: 240ms; }
.site-nav .is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: 300ms; }
@keyframes lm-menu { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes lm-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
.site-header__inner { gap: clamp(1rem, 2.4vw, 2.25rem); align-items: center; }
.site-logo { margin: 0; flex: none; }
.site-logo img { width: clamp(130px, 12vw, 180px) !important; height: auto; transition: opacity 0.28s var(--lm-soft); }
.site-logo a:hover img { opacity: 0.78; }
.site-nav { margin-left: auto; gap: clamp(1.25rem, 2.4vw, 2.25rem); }
.site-nav .wp-block-navigation-item__content { position: relative; padding-block: 0.35rem; }
.site-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: var(--lm-crimson);
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform 0.4s var(--lm-ease);
}
.site-nav .wp-block-navigation-item__content:hover::after,
.site-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); transform-origin: left center; }
.site-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--lm-crimson); }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: clamp(2rem, 9vw, 3rem);
	font-weight: 400;
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(even) .wp-block-navigation-item__content {
	font-style: italic;
	color: var(--lm-crimson);
}
.site-header__cta { flex: none; }
.site-header__inner > * { margin-block: 0; }
@media (max-width: 899px) {
	.site-header .site-header__cta { display: none !important; }
}
/* Core collapses the menu at 600px; the full menu needs 900px to sit on one line */
@media (min-width: 600px) and (max-width: 899px) {
	.site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}

.lm-progress {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	left: 0;
	z-index: 101;
	width: 100%;
	height: 2px;
	background: var(--lm-crimson);
	transform: scaleX(var(--p, 0));
	transform-origin: left center;
	pointer-events: none;
}
/* Below 600px the admin bar scrolls away with the page instead of staying fixed */
@media (max-width: 600px) {
	.site-header-part, .lm-progress { top: 0; }
}

/* Mobile menu panel, laid out like the static site's: links on the left, logo still showing, area and phone underneath */
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-align: flex-start;
	padding: var(--lm-gutter) !important;
}
.site-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	justify-content: center;
	min-height: calc(100dvh - 2 * var(--lm-gutter));
	padding-top: 0 !important;
}
.site-nav .is-menu-open .wp-block-navigation__container,
.site-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; justify-content: flex-start !important; }
.site-nav .is-menu-open .wp-block-navigation-item__content { padding-block: 0.4rem; }
.site-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	position: fixed;
	display: grid;
	place-items: center;
}
.has-modal-open .site-logo { position: relative; z-index: 100001; }
.lm-menu-foot { display: none; }
.is-menu-open .lm-menu-foot {
	display: block;
	align-self: stretch;
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--lm-rule);
	font-family: var(--lm-sans);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.7;
	color: var(--lm-taupe-light);
	animation: lm-fade 0.5s var(--lm-ease) 0.3s both;
}
.lm-menu-foot a { font-family: var(--lm-sans); color: var(--lm-ink); text-decoration: none; }

/* --------------------------------------------------------------------------
   Home
   -------------------------------------------------------------------------- */
.hero { padding-top: clamp(0.75rem, 2vw, 1.5rem); }
.hero__eyebrow {
	font-size: var(--lm-micro);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: var(--lm-eyebrow-ls);
	color: var(--lm-ink);
}
.hero .hero__title {
	margin-block-start: -0.05em !important;
	font-size: calc(clamp(4rem, 20vw, 18rem) * 0.85);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
	margin-left: -0.02em;
}
.hero__script {
	margin-block-start: clamp(0.35rem, 1vw, 0.9rem) !important;
	font-family: var(--lm-display);
	font-style: italic;
	font-size: clamp(1.5rem, 4.8vw, 4.4rem);
	line-height: 1.04;
	color: var(--lm-ink);
}
@media (min-width: 1200px) { .hero__script { padding-right: clamp(0rem, 4vw, 4rem); } }

.showcase { position: relative; margin-top: clamp(1rem, 2.5vw, 2rem) !important; }
.showcase > * { margin-block: 0; }
.showcase__media { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: var(--lm-sand); }
.showcase__media img { height: 100%; object-fit: cover; object-position: center 62%; transform: scale(1.04); }
.showcase__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(251, 248, 243, 0.22), rgba(251, 248, 243, 0) 38%),
		linear-gradient(to top, rgba(90, 71, 64, 0.2), rgba(90, 71, 64, 0) 45%);
	pointer-events: none;
}
.showcase__card {
	position: relative;
	z-index: 2;
	max-width: 30rem;
	margin: -3.5rem var(--lm-gutter) 0 !important;
	padding: clamp(1.6rem, 3vw, 2.6rem);
}
.showcase__card h2 { font-size: clamp(1.6rem, 3.1vw, 2.35rem); color: var(--lm-ink-deep); }
.showcase__card p { color: var(--lm-ink); }
@media (min-width: 900px) {
	.showcase__media { aspect-ratio: 2.5 / 1; }
	.showcase__card { position: absolute; left: 0; bottom: clamp(1.5rem, 4vw, 3rem); max-width: 26rem; }
}

.meta-bar {
	gap: 1.5rem;
	padding-block: clamp(0.8rem, 1.4vw, 1.1rem);
	border-bottom: 1px solid var(--lm-rule);
	font-size: 1.0625rem;
	color: var(--lm-ink);
}
.meta-bar > * { margin: 0; }
.meta-bar .meta-bar__rule { flex: 1 1 3rem; min-width: 2rem; width: auto; margin: 0; border-top: 1px solid var(--lm-rule); }
.meta-bar__note { font-size: 1.1875rem; }

.services { padding-block: var(--lm-section-y); }
.services__head { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.services__head h2 { font-size: clamp(1.9rem, 4.6vw, 4.1rem); }
@media (min-width: 900px) { .services__head h2 { white-space: nowrap; } }
.services__grid { gap: clamp(1.75rem, 3.6vw, 3.25rem); }
.services__caption { margin-top: 1.5rem; font-size: 1.0625rem; line-height: 1.65; max-width: 34ch; }
.svc-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--lm-rule); }
.svc-list li { border-bottom: 1px solid var(--lm-rule); }
.svc-list a {
	position: relative;
	display: grid;
	grid-template-columns: 3.25rem 1fr auto;
	align-items: center;
	gap: 1rem;
	padding-block: clamp(0.85rem, 1.6vw, 1.15rem);
	font-family: var(--lm-display);
	font-size: clamp(1.4rem, 2.6vw, 1.9rem);
	line-height: 1.2;
	color: var(--lm-ink);
	text-decoration: none;
	isolation: isolate;
	transition: color 0.28s var(--lm-soft);
}
.svc-list a::before {
	content: "";
	position: absolute;
	inset: 0 -1rem;
	z-index: -1;
	background: var(--lm-sand);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.5s var(--lm-ease);
}
.svc-list a::after {
	content: "\2192";
	color: var(--lm-crimson);
	font-family: var(--lm-sans);
	font-size: 2.2rem;
	font-weight: 300;
	line-height: 1;
	transition: transform 0.45s var(--lm-ease);
}
.svc-list a em { font-size: 1.1rem; color: var(--lm-taupe-light); transition: color 0.28s var(--lm-soft); }
.svc-list a:hover { color: var(--lm-ink-deep); }
.svc-list a:hover::before { transform: scaleX(1); }
.svc-list a:hover::after { transform: translateX(0.5rem); }
.svc-list a:hover em { color: var(--lm-crimson); }
.services__also { margin-top: 2rem; font-family: var(--lm-display); font-size: 1.1875rem; line-height: 1.9; color: var(--lm-ink); }
.services__also em { color: var(--lm-taupe-light); }

.story { padding-block: clamp(1.75rem, 3.2vw, 2.75rem); }
.story__grid { gap: clamp(1.25rem, 2.2vw, 2.25rem); }
.story__title {
	font-size: clamp(2.75rem, 6vw, 5.6rem);
	line-height: 1;
	letter-spacing: -0.035em;
	font-weight: 600;
	color: var(--lm-ink-deep);
}
.story__title em { font-weight: 600; }
.story__media { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(0.75rem, 1.6vw, 1.15rem); }
.story__media > * { margin: 0 !important; }
.story__media > :nth-child(2) { margin-top: clamp(1rem, 3vw, 2.25rem) !important; }
.story p { color: var(--lm-ink); font-size: 1.0625rem; }

.photo-pair-section { padding-block: clamp(3rem, 7vw, 6rem); }
.photo-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.photo-pair > * { margin: 0 !important; }
.photo-pair .wp-block-image { overflow: hidden; border-radius: 2px; }
.photo-pair__cap { order: -1; grid-column: 1 / -1; margin-bottom: 0.5rem !important; }
.photo-pair__wide { grid-column: 1 / -1; }
.photo-caption {
	font-family: var(--lm-display);
	font-size: clamp(1.5rem, 3vw, 2.5rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--lm-ink-deep);
	text-wrap: balance;
}
.photo-caption em { color: var(--lm-crimson); }
@media (min-width: 860px) {
	.photo-pair { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto auto; align-items: end; gap: clamp(1rem, 2.5vw, 2rem); }
	.photo-pair__wide { grid-column: 1; grid-row: 1 / 3; }
	.photo-pair__tall { grid-row: 2; }
	.photo-pair__cap { order: 0; grid-column: 2 / 4; grid-row: 1; align-self: start; padding-top: 1rem; }
}

.steps { padding-block: clamp(1.75rem, 3.4vw, 3rem); }
.steps__grid { gap: clamp(1rem, 2vw, 1.5rem); }
.step > * { margin: 0; }
.step__num { font-family: var(--lm-display); font-style: italic; font-size: 1.5rem; letter-spacing: 0.08em; color: var(--lm-pink); margin-bottom: 0.6rem !important; }
.step__text {
	font-family: var(--lm-display);
	font-style: italic;
	font-size: clamp(2rem, 7vw, 3.4rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--lm-ink);
}
@media (min-width: 900px) {
	.steps__grid { gap: 0; }
	.step { padding-inline: clamp(1rem, 2vw, 1.75rem); }
	.step:first-child { padding-left: 0; }
	.step + .step { border-left: 1px solid var(--lm-rule); }
	.step__text { font-size: clamp(1.5rem, 3.05vw, 2.9rem); white-space: nowrap; }
}
.steps__more { margin-top: clamp(1.5rem, 3vw, 2.25rem) !important; }

.ba { padding-block: var(--lm-section-y); }
.ba__head { margin-bottom: clamp(1.75rem, 3.5vw, 3rem); }
.ba__intro { max-width: 54ch; }
.ba__grid { gap: clamp(1.75rem, 3.5vw, 3rem); grid-template-columns: minmax(0, 1fr) !important; }
@media (min-width: 760px) { .ba__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.ba__shots { gap: 2px !important; grid-template-columns: 1fr 1fr !important; }
.ba__shots > * { margin: 0 !important; }
.ba__shots img { height: 100%; }
.ba__title { margin-top: 1rem !important; font-family: var(--lm-display); font-size: 1.15rem; color: var(--lm-ink); }
.ba__cap { margin-top: 0.25rem !important; font-size: 0.875rem; max-width: 44ch; }

.founder { padding-block: var(--lm-section-y); }
.founder__grid { gap: clamp(1.75rem, 4vw, 3.5rem); }
.founder__media img { aspect-ratio: 4 / 5; object-fit: cover; height: auto; }
.founder__name { font-size: var(--wp--preset--font-size--xx-large); letter-spacing: -0.025em; }
.founder__meta {
	font-family: var(--lm-sans);
	font-size: var(--lm-micro);
	letter-spacing: var(--lm-caps-ls);
	text-transform: uppercase;
	color: rgba(250, 247, 242, 0.62);
}
.founder__quote { margin-block: 1.5rem 0; }
.founder__quote p { color: var(--lm-cream); text-wrap: balance; }
.founder__quote em { color: var(--lm-pink); }
.founder__copy { max-width: 50ch; color: rgba(250, 247, 242, 0.8); }

.team { padding-top: var(--lm-section-y); padding-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.team__head { margin-bottom: clamp(1.5rem, 3vw, 2.25rem) !important; gap: 1.5rem; }
.team__head h2 { font-size: var(--wp--preset--font-size--xx-large); }
.team__head .is-style-lead { max-width: 44ch; }
.team__grid { gap: clamp(1.25rem, 2.6vw, 2rem); }
.member > * { margin: 0; }
.member__media { overflow: hidden; background: var(--lm-blush); }
.member__media img { transition: transform 0.9s var(--lm-ease); }
.member:hover .member__media img { transform: scale(1.045); }
.member__name { margin-top: 1.5rem !important; font-size: 1.35rem; color: var(--lm-ink-deep); }
.member__role {
	margin-top: 0.3rem !important;
	font-family: var(--lm-sans);
	font-size: var(--lm-micro);
	text-transform: uppercase;
	letter-spacing: var(--lm-caps-ls);
	color: var(--lm-crimson);
}
.member__bio { margin-top: 1rem !important; font-size: 0.875rem; line-height: 1.75; }
.team__note { margin-top: clamp(1.5rem, 2.8vw, 2.25rem) !important; padding-top: 1.5rem; border-top: 1px solid var(--lm-rule); font-size: 1.0625rem; }

.pricing { padding-top: clamp(2rem, 3.4vw, 2.9rem); padding-bottom: clamp(2.5rem, 4.5vw, 4rem); }
.pricing__head { margin-bottom: clamp(1.25rem, 2.4vw, 1.85rem) !important; }
.pricing__grid { gap: 0 clamp(1.5rem, 3vw, 3rem); border-top: 1px solid var(--lm-rule); }
.pkg { padding-block: clamp(1.15rem, 2.2vw, 1.5rem); border-bottom: 1px solid var(--lm-rule); }
.pkg > * { margin: 0; }
.pkg__name { font-size: 1.3rem; color: var(--lm-ink-deep); margin-bottom: 0.35rem !important; }
.pkg__rate,
.pkg-lg__rate { font-family: var(--lm-display); font-weight: 600; font-size: 1.6rem; line-height: 1.2; color: var(--lm-crimson); margin-bottom: 0.6rem !important; }
.pkg-lg__rate { font-size: 2.25rem; margin-top: 0.5rem !important; }
.pkg__rate sub,
.pkg-lg__rate sub {
	vertical-align: baseline;
	margin-left: 0.35rem;
	font-family: var(--lm-sans);
	font-size: var(--lm-micro);
	font-weight: 400;
	letter-spacing: var(--lm-caps-ls);
	text-transform: uppercase;
	color: var(--lm-taupe-light);
}
.pkg__desc { font-size: 0.875rem; line-height: 1.7; }
.pricing__note { margin-top: 1.5rem !important; font-size: 0.875rem; color: var(--lm-taupe-light); }
.pricing__note a { margin-left: 0.35rem; }

.press {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding-block: clamp(4rem, 9vw, 7.5rem);
	background: radial-gradient(60rem 40rem at 18% 50%, rgba(248, 192, 185, 0.55), transparent 60%), var(--lm-sand) !important;
}
.press__ghost {
	position: absolute;
	z-index: -1;
	left: 50%;
	bottom: -0.18em;
	transform: translateX(-50%);
	font-family: var(--lm-display);
	font-style: italic;
	font-size: clamp(7rem, 24vw, 22rem);
	line-height: 1;
	white-space: nowrap;
	color: transparent;
	-webkit-text-stroke: 1px rgba(199, 36, 76, 0.18);
	pointer-events: none;
	user-select: none;
}
.press__grid { gap: clamp(3rem, 6vw, 6rem); }
.press__media { display: flex; flex-direction: column; align-items: center; perspective: 1400px; }
.press__read { margin-top: clamp(2rem, 4vw, 3rem) !important; margin-right: 14%; }
.press__read a {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 1px 0 #ded5c9, 0 6px 16px -10px rgba(28, 25, 23, 0.3);
	font-family: var(--lm-sans);
	font-size: var(--lm-micro);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: var(--lm-caps-ls);
	color: var(--lm-ink);
	text-decoration: none;
	cursor: zoom-in;
	transition: background 0.6s var(--lm-ease), color 0.6s var(--lm-ease);
}
.press__read a::after { content: " \2192"; }
.press__read a:hover,
.press__media:hover .press__read a { background: var(--lm-crimson); color: #fff; }

.lm-modal { max-width: min(92vw, 40rem); max-height: 92vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.lm-modal::backdrop { background: rgba(16, 14, 13, 0.78); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.lm-modal[open] { animation: lm-fade 0.5s var(--lm-ease); }
.lm-modal img { display: block; max-width: 100%; max-height: 86vh; width: auto; margin-inline: auto; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45); }
.lm-modal__close {
	position: absolute;
	top: -0.9rem;
	right: -0.9rem;
	display: grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--lm-ink-deep);
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}
.lm-modal__close:hover { background: var(--lm-crimson); color: #fff; }
.press__stage { position: relative; width: min(68vw, 24rem); margin-right: 14%; }
.press__stage > * { margin: 0 !important; }
.press__cover {
	position: relative;
	z-index: 1;
	transform: rotateY(-14deg) rotateX(4deg) rotateZ(-1deg);
	transform-origin: 60% 50%;
	transition: transform 0.9s var(--lm-ease);
}
.press__cover img {
	border-radius: 2px 6px 6px 2px;
	box-shadow: 1px 1px 0 #fff, 3px 3px 0 #ece6dd, 5px 5px 0 #fff, 7px 7px 0 #e4ddd2,
		22px 30px 40px -12px rgba(28, 25, 23, 0.35), 50px 70px 90px -30px rgba(168, 27, 62, 0.35);
}
.press__stage .press__cover--back {
	position: absolute;
	inset: 0;
	z-index: 0;
	transform: translate(18%, -5%) rotateY(-14deg) rotateX(4deg) rotateZ(5deg);
}
.press__media:hover .press__cover:not(.press__cover--back) { transform: rotateY(-4deg) rotateX(1deg) translateY(-8px); }
.press__media:hover .press__cover--back { transform: translate(24%, -8%) rotateY(-4deg) rotateX(1deg) rotateZ(7deg); }
.press__badge {
	position: absolute !important;
	z-index: 3;
	right: -1.75rem;
	top: -1.75rem;
	width: clamp(5.25rem, 11vw, 7.25rem);
	animation: lm-spin 18s linear infinite;
	filter: drop-shadow(0 8px 16px rgba(168, 27, 62, 0.3));
}
.press__badge circle { fill: var(--lm-pink); }
.press__badge text { font-family: var(--lm-sans); font-size: 10.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; fill: #fff; }
@keyframes lm-spin { to { transform: rotate(360deg); } }
.press__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.45rem 0.9rem;
	border: 1px solid var(--lm-crimson);
	border-radius: 999px;
	font-size: var(--lm-micro);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: var(--lm-eyebrow-ls);
	color: var(--lm-crimson);
}
.press__eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--lm-pink); }
.press__head { font-size: clamp(1.9rem, 3.8vw, 3.25rem); line-height: 1.08; letter-spacing: -0.025em; color: var(--lm-ink-deep); text-wrap: balance; }
.press__kicker { margin-top: 0.2em !important; font-family: var(--lm-display); font-style: italic; font-weight: 600; font-size: clamp(1.9rem, 3.8vw, 3.25rem); line-height: 1.08; letter-spacing: -0.025em; color: var(--lm-crimson); }
.press__head + .press__kicker { margin-top: 0.15em !important; }
.press__note { font-size: var(--wp--preset--font-size--lead); line-height: 1.6; }
@media (max-width: 781px) { .press__stage, .press__read { margin-right: 18%; } }

.quote-band { padding-block: clamp(2rem, 3.8vw, 3.25rem); text-align: center; }
.quote__stars { color: var(--lm-pink); font-size: 1.1rem; letter-spacing: 0.2em; }
.wp-block-quote.testimonial { border: 0; padding: 0; margin-inline: auto; font-style: normal; }
.wp-block-quote.testimonial p { font-size: clamp(1.5rem, 3.6vw, 2.5rem); line-height: 1.3; letter-spacing: -0.02em; color: var(--lm-ink-deep); }
.wp-block-quote.testimonial cite { display: block; margin-top: 1.5rem; color: var(--lm-taupe); font-family: var(--lm-sans); }

.cta { padding-block: clamp(1.75rem, 3.4vw, 3rem); }
.cta__grid { gap: clamp(1.5rem, 3vw, 2.5rem); }
.cta__title {
	font-family: var(--lm-display);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(2.5rem, 8vw, 7rem);
	line-height: 0.98;
	letter-spacing: -0.03em;
	color: var(--lm-ink-deep);
}
.cta__aside p { color: var(--lm-ink); }
@media (min-width: 782px) {
	.cta__aside { border-left: 1px solid #ded5c9; padding-left: clamp(1.5rem, 3vw, 2.5rem); }
	.cta__grid { display: grid !important; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}

.instagram { padding-block: var(--lm-section-y); }
.instagram__head { gap: 1rem 2rem; margin-bottom: 2rem; }
.instagram__head h2 { margin-top: 0.85rem; }
.lm-carousel { position: relative; }
.instagram__track {
	gap: clamp(0.75rem, 1.6vw, 1.25rem) !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 0.25rem;
}
.instagram__track::-webkit-scrollbar { display: none; }
.ig-tile { flex: 0 0 auto; width: clamp(9.5rem, 26vw, 14rem); margin: 0 !important; scroll-snap-align: start; overflow: hidden; border-radius: 2px; }
.ig-tile img { transition: transform 0.6s var(--lm-soft); }
.ig-tile a:hover img,
.ig-tile a:focus-visible img { transform: scale(1.06); }
.lm-carousel__btn {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: none;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 50%;
	background: var(--lm-cream);
	border: 1px solid var(--lm-rule);
	color: var(--lm-ink);
	font-size: 1.1rem;
	cursor: pointer;
	box-shadow: 0 8px 24px rgba(90, 71, 64, 0.12);
	transform: translateY(-50%);
	transition: background-color 0.28s var(--lm-soft), color 0.28s var(--lm-soft), opacity 0.28s var(--lm-soft);
}
.lm-carousel__btn:hover { background: var(--lm-crimson); border-color: var(--lm-crimson); color: var(--lm-cream); }
.lm-carousel__btn[disabled] { opacity: 0.35; pointer-events: none; }
.lm-carousel__btn--prev { left: -21px; }
.lm-carousel__btn--next { right: -21px; }
@media (min-width: 900px) { .lm-carousel__btn { display: grid; } }

/* --------------------------------------------------------------------------
   Interior pages
   -------------------------------------------------------------------------- */
.page-hero { padding-top: clamp(1.5rem, 3.5vw, 2.5rem); padding-bottom: clamp(2rem, 4vw, 3rem); }
.page-hero__title {
	font-size: clamp(2.6rem, 7vw, 5.5rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--lm-ink-deep);
	max-width: 16ch;
}
.page-hero__lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.65; max-width: 46ch; }
.page-hero--simple { padding-inline: 0; }
/* Narrow blocks inside a 1340px section hug its left edge instead of centring */
.is-layout-constrained > :is(.page-hero__title, .page-hero__lead, .pillars__head) {
	margin-left: max(0px, calc((100% - 1340px) / 2)) !important;
	margin-right: auto !important;
}

.photo-band-section { padding-bottom: var(--lm-section-y); }
.photo-band { position: relative; overflow: hidden; background: var(--lm-sand); }
.photo-band img { aspect-ratio: 3 / 2; object-fit: cover; object-position: center 12%; }
.photo-band figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: clamp(1rem, 3vw, 2rem) var(--lm-gutter);
	background: linear-gradient(to top, rgba(63, 49, 44, 0.55), rgba(63, 49, 44, 0));
	color: var(--lm-cream);
	font-family: var(--lm-display);
	font-style: italic;
	font-size: clamp(1rem, 2vw, 1.375rem);
	text-align: left;
}
@media (min-width: 900px) { .photo-band img { aspect-ratio: 2 / 1; } }

.team-band { padding-block: clamp(3rem, 7vw, 6rem); }
.team-band__fig figcaption {
	margin-top: 1rem;
	font-family: var(--lm-display);
	font-style: italic;
	font-size: clamp(1.15rem, 2.2vw, 1.75rem);
	color: var(--lm-ink-deep);
	text-align: left;
}

.chapters { padding-bottom: var(--lm-section-y); }
.chapter { gap: 1rem clamp(1.5rem, 4vw, 3.5rem); padding-top: clamp(1.75rem, 3.5vw, 2.5rem); border-top: 1px solid var(--lm-rule); margin-top: clamp(2.25rem, 4.5vw, 4rem) !important; }
.chapter:first-child { border-top: 0; padding-top: 0; margin-top: 0 !important; }
.chapter h2 { font-size: var(--wp--preset--font-size--x-large); }
.chapter__body { max-width: 62ch; }
.chapter__links { margin-top: 1.5rem !important; }

.pillars { padding-block: var(--lm-section-y); }
.pillars__head { margin-bottom: clamp(2rem, 4vw, 3rem) !important; max-width: 60ch; }
.pillars__grid { gap: clamp(1.75rem, 3vw, 2.5rem); border-top: 1px solid #ded5c9; }
.pillar { padding-top: clamp(1.25rem, 2.5vw, 1.75rem); }
.pillar > * { margin: 0; }
.pillar__num { font-family: var(--lm-display); font-style: italic; font-size: 1.1rem; color: var(--lm-crimson); margin-bottom: 0.6rem !important; }
.pillar__text { font-family: var(--lm-display); font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1.3; color: var(--lm-ink-deep); }
@media (min-width: 900px) {
	.pillars__grid { gap: 0; }
	.pillar { padding-inline: clamp(1rem, 2vw, 1.5rem); }
	.pillar:first-child { padding-left: 0; }
	.pillar + .pillar { border-left: 1px solid #ded5c9; }
}

.photo-trio { padding-block: clamp(3rem, 7vw, 6rem); }
.photo-trio .photo-caption { margin-bottom: clamp(1.25rem, 3vw, 2rem) !important; }
.photo-trio__row { display: grid !important; gap: clamp(1rem, 2vw, 1.5rem) !important; }
.photo-trio__row > * { margin: 0 !important; overflow: hidden; border-radius: 2px; }
@media (min-width: 860px) {
	.photo-trio__row { display: flex !important; align-items: flex-start; }
	.photo-trio__item.is-landscape { flex: 1.5 1 0; min-width: 0; }
	.photo-trio__item.is-portrait { flex: 0.667 1 0; min-width: 0; }
}

.work,
.prose { padding-block: var(--lm-section-y); }
.work__grid,
.prose__grid { gap: clamp(2rem, 4vw, 3.5rem); }
.work h2,
.prose h2 { font-size: clamp(2.25rem, 5.4vw, 4.35rem); }

.svc-blocks { padding-block: var(--lm-section-y); }
.svc-block { gap: clamp(1.75rem, 3.5vw, 3rem); padding-block: clamp(2.5rem, 5vw, 4rem); border-bottom: 1px solid var(--lm-rule); margin: 0 !important; }
.svc-block:first-child { padding-top: 0; }
.svc-block > * > * { margin-block-start: 0; }
.svc-block__num { font-family: var(--lm-display); font-style: italic; color: var(--lm-taupe-light); margin-bottom: 0.5rem !important; }
.svc-block__title { font-size: clamp(1.75rem, 3.4vw, 2.6rem); }
.svc-block__desc { margin-top: 1.5rem !important; font-size: 1.0625rem; line-height: 1.75; max-width: 52ch; }
.svc-block__includes { margin-top: 1.5rem !important; padding-top: 1.5rem; border-top: 1px solid var(--lm-rule); font-size: 0.875rem; line-height: 1.9; }
.svc-block__includes strong {
	margin-right: 0.6rem;
	font-size: var(--lm-micro);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: var(--lm-caps-ls);
	color: var(--lm-taupe-light);
}
@media (max-width: 781px) { .svc-block--flip { flex-direction: column-reverse; } }

.also-grid { padding-block: var(--lm-section-y); }
.also-grid__head { margin-bottom: clamp(1.75rem, 3vw, 2.5rem) !important; }
.also-cards { gap: clamp(1.25rem, 2.5vw, 1.75rem); }
.also-card h3 { font-size: 1.375rem; }
.also-card p { font-size: 0.875rem; line-height: 1.7; margin-top: 0.6rem; }

.pkg-detail { padding-block: var(--lm-section-y); }
.pkg-detail__grid { gap: clamp(1.5rem, 3vw, 2rem); }
.pkg-lg { --pad: clamp(1.75rem, 3.2vw, 2.5rem); display: flex; flex-direction: column; padding: var(--pad); }
.pkg-lg > * { margin: 0; }
.pkg-lg__media { margin: calc(var(--pad) * -1) calc(var(--pad) * -1) 1.5rem !important; overflow: hidden; }
.pkg-lg__name { font-size: clamp(1.5rem, 2.6vw, 1.9rem); }
.pkg-lg__desc { margin-top: 1.5rem !important; color: var(--lm-ink); line-height: 1.75; flex: 1; }

.comb { padding-block: var(--lm-section-y); }
.comb__grid { gap: clamp(2rem, 5vw, 4rem); }
.comb h2 { font-size: clamp(1.75rem, 3.4vw, 2.9rem); }
.comb__figure { margin: 0; }
.comb__svg { width: 100%; height: auto; overflow: visible; }
.comb__num { font-family: var(--lm-sans); font-size: 15px; font-weight: 500; letter-spacing: 0.1em; }
.comb__label { font-family: var(--lm-display); font-size: 21px; font-style: italic; }
.comb__cap { margin-top: 1rem; font-size: var(--lm-micro); letter-spacing: var(--lm-caps-ls); text-transform: uppercase; color: var(--lm-taupe-light); text-align: center; }
@media (max-width: 560px) { .comb__figure { display: none; } }

.stages { padding-block: var(--lm-section-y); }
.stages__head { margin-bottom: clamp(2rem, 4vw, 3.5rem) !important; }
.stage {
	position: relative;
	gap: 1rem clamp(1.5rem, 3vw, 3rem);
	padding-top: clamp(1.5rem, 3vw, 2.25rem);
	border-top: 1px solid var(--lm-rule);
	margin: 0 0 clamp(2rem, 4vw, 3.25rem) !important;
}
.stage::before { content: ""; position: absolute; top: -1px; left: 0; width: 46px; height: 2px; background: var(--lm-pink); }
.stage > * > * { margin-block-start: 0; }
.stage__mark { flex: 0 0 60px !important; }
.stage__num {
	display: grid;
	place-items: center;
	width: 60px;
	height: 52px;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--lm-ink);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 52'%3E%3Cpolygon points='15,1 45,1 59,26 45,51 15,51 1,26' fill='none' stroke='%231c1917' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.stage__name { font-size: var(--wp--preset--font-size--x-large); letter-spacing: -0.02em; }
.stage__promise { margin-top: 0.4rem !important; font-family: var(--lm-display); font-style: italic; font-size: var(--wp--preset--font-size--lead); color: var(--lm-crimson); }
.stage__text { margin-top: 1rem !important; max-width: 54ch; }
.stage__punch { margin-top: 1rem !important; font-weight: 600; color: var(--lm-crimson); }
.stage__checkhead { font-size: var(--lm-micro); font-weight: 500; text-transform: uppercase; letter-spacing: var(--lm-eyebrow-ls); color: var(--lm-taupe-light); }
.stage .is-style-hex { margin-top: 1rem; }

.always { padding-block: var(--lm-section-y); }
.always__head { margin-bottom: clamp(1.75rem, 3.5vw, 3rem) !important; }
.always__grid { gap: clamp(1.5rem, 3vw, 2.5rem); }
.always__item { padding-top: 1rem; border-top: 1px solid rgba(250, 247, 242, 0.22); }
.always__item > * { margin: 0; }
.always__item p { color: rgba(250, 247, 242, 0.82); }
.always__num { margin-bottom: 0.6rem !important; font-size: var(--lm-micro); letter-spacing: var(--lm-eyebrow-ls); color: var(--lm-pink) !important; }

.contact-split { padding-bottom: var(--lm-section-y); }
.contact-split__grid { gap: clamp(2rem, 4vw, 3.5rem); }
.contact-info__photo { margin-bottom: 2rem !important; overflow: hidden; border-radius: 2px; }
.contact-info__phone a { font-size: clamp(1.75rem, 3vw, 2.4rem); color: var(--lm-ink-deep); border-bottom: 0; padding-bottom: 0; }
.contact-info__block { margin-top: 2rem !important; }
.contact-info__block > * { margin: 0; }
.contact-info__label,
.footer__label {
	font-family: var(--lm-sans) !important;
	font-size: var(--lm-micro) !important;
	font-weight: 500 !important;
	text-transform: uppercase;
	letter-spacing: var(--lm-eyebrow-ls) !important;
	color: var(--lm-taupe-light) !important;
	margin-bottom: 0.5rem !important;
}
.contact-info__block p { color: var(--lm-ink); }

/* Contact form block */
.lm-form { display: grid; gap: 1.15rem; }
.lm-form__row { display: grid; gap: 1.15rem; }
@media (min-width: 560px) { .lm-form__row--2 { grid-template-columns: 1fr 1fr; } }
.lm-form .field { display: flex; flex-direction: column; gap: 0.45rem; }
.lm-form label {
	font-size: var(--lm-micro);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: var(--lm-caps-ls);
	color: var(--lm-taupe);
}
.lm-form input,
.lm-form select,
.lm-form textarea {
	box-sizing: border-box;
	width: 100%;
	font: inherit;
	font-size: 1rem;
	color: var(--lm-ink-deep);
	background: var(--lm-cream);
	border: 1px solid var(--lm-rule);
	border-radius: 2px;
	padding: 0.85rem 1rem;
	transition: border-color 0.28s var(--lm-soft);
}
.lm-form textarea { resize: vertical; min-height: 8rem; }
.lm-form input:focus,
.lm-form select:focus,
.lm-form textarea:focus { outline: none; border-color: var(--lm-crimson); }
.lm-form select {
	appearance: none;
	padding-right: 2.5rem;
	background: var(--lm-cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c7244c' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 0.9rem center / 1rem no-repeat;
}
.lm-form__submit { margin-top: 0.5rem; border: 0; cursor: pointer; }
.lm-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lm-form__notice { padding: 1rem 1.25rem; margin-bottom: 1.25rem; border-left: 3px solid; font-family: var(--lm-display); font-size: 1.15rem; }
.lm-form__notice--ok { border-color: var(--lm-pink); background: var(--lm-sand); color: var(--lm-ink-deep); }
.lm-form__notice--err { border-color: var(--lm-crimson); background: #fbecee; color: var(--lm-crimson-deep); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.site-footer { padding-top: clamp(1.75rem, 3.2vw, 2.75rem); }
.footer__grid { gap: clamp(1.5rem, 3vw, 2.25rem); padding-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.site-footer .wp-block-social-links { margin-top: 1rem; }
.footer__phone a { font-family: var(--lm-display); font-size: 1.4rem; color: var(--lm-ink-deep); text-decoration: none; }
.footer__contact { font-size: 0.875rem; line-height: 1.9; }
.footer__list { list-style: none; padding: 0; margin: 0; }
.footer__list li { margin-bottom: 0.5rem; }
.footer__list a { font-size: 0.875rem; color: var(--lm-ink); text-decoration: none; }
.footer__list a:hover { color: var(--lm-crimson); }
.footer__script { font-size: 1.25rem; line-height: 1.3; }
.footer__bar { gap: 1rem 2rem; padding-block: 1rem; border-top: 1px solid var(--lm-rule); font-size: var(--lm-micro); color: var(--lm-taupe-light); }
.footer__bar > * { margin: 0; }
.footer__bar em { font-family: var(--lm-display); font-size: 0.875rem; color: var(--lm-ink); }

.wp-block-social-links.is-style-logos-only .wp-social-link {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--lm-rule);
	border-radius: 50%;
	color: var(--lm-ink);
	transition: background-color 0.28s var(--lm-soft), color 0.28s var(--lm-soft), border-color 0.28s var(--lm-soft), transform 0.28s var(--lm-ease);
}
.wp-block-social-links.is-style-logos-only .wp-social-link a { padding: 0; }
.wp-block-social-links.is-style-logos-only .wp-social-link svg { width: 17px; height: 17px; }
.wp-block-social-links.is-style-logos-only .wp-social-link:hover { background: var(--lm-crimson); border-color: var(--lm-crimson); color: var(--lm-cream); transform: translateY(-2px); }

/* --------------------------------------------------------------------------
   Journal, archives and search
   -------------------------------------------------------------------------- */
.post-grid { gap: clamp(1.5rem, 3vw, 2.5rem); }
.post-grid .wp-block-post-featured-image { margin-bottom: 1rem; overflow: hidden; }
.post-grid .wp-block-post-featured-image img { transition: transform 0.9s var(--lm-ease); }
.post-grid li:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.post-card__title { font-size: 1.5rem; margin-top: 0.35rem; }
.post-meta { gap: 1rem; font-size: 0.875rem; }

/* --------------------------------------------------------------------------
   Scroll reveal (switchable in Appearance > LessMess Setup)
   -------------------------------------------------------------------------- */
.lm-anim .lm-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.9s var(--lm-ease), transform 0.9s var(--lm-ease);
	transition-delay: calc(var(--d, 0) * 90ms);
}
.lm-anim .lm-reveal.is-visible { opacity: 1; transform: none; }

/* Headlines rise up out of a mask, like the static site's line reveal */
.lm-anim .lm-reveal--mask {
	opacity: 0;
	transform: translateY(0.5em);
	transition: opacity 1s var(--lm-ease), transform 1s var(--lm-ease);
	transition-delay: calc(var(--d, 0) * 90ms);
}
.lm-anim .lm-reveal--mask.is-visible { opacity: 1; transform: none; }

/* Home hero plays on load, with no script needed */
.lm-anim .hero .hero__eyebrow { animation: lm-fade 0.9s var(--lm-ease) both; }
.lm-anim .hero .hero__title { animation: lm-rise 1.1s var(--lm-ease) 0.12s both; }
.lm-anim .hero .hero__script { animation: lm-rise 1.1s var(--lm-ease) 0.38s both; }
@keyframes lm-fade { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes lm-rise {
	from { transform: translateY(0.45em); clip-path: inset(0 0 100% 0); }
	to { transform: none; clip-path: inset(-0.2em -0.2em -0.25em -0.2em); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.lm-anim .lm-reveal, .lm-anim .lm-reveal--mask { opacity: 1; transform: none; clip-path: none; transition: none; }
	.lm-anim .hero > *, .lm-anim .site-nav * { animation: none !important; }
	.press__badge { animation: none; }
	*, *::before, *::after { transition-duration: 0.001ms !important; }
}

@media print {
	.site-header-part, .lm-progress, .cta { display: none !important; }
	.lm-reveal { opacity: 1 !important; transform: none !important; }
}
