/* ============================================================
   LA MAISON SPA — main stylesheet
   Editorial calm. Sage + warm beige. Quiet ceremony.
   ============================================================ */

/* ---------- Tokens ---------- */
:root {
	/* Palette matched to the brand logo: deep teal + cream + gold feather.
	   White-dominant surfaces with teal accents. Overridden by Customizer. */
	--lms-primary:       #0F4945;  /* deep teal (matches logo background) */
	--lms-primary-deep:  #083732;  /* deeper teal — for hover */
	--lms-accent:        #EFE5D0;  /* cream (matches logo wordmark) */
	--lms-accent-warm:   #C19B6B;  /* gold (matches logo feather) */
	--lms-sage:          #6B8A7E;  /* muted teal-sage for soft accent */
	--lms-coral:         #E0A78F;  /* warm coral — for highlight moments */

	/* Surfaces — WHITE dominant, with very subtle warm tones */
	--lms-paper:         #FFFFFF;  /* pure white main bg */
	--lms-paper-warm:    #FAF7F2;  /* barely-cream for alternating sections */
	--lms-paper-deep:    #EFE5D0;  /* full cream — accent surfaces */
	--lms-ink:           #1A2826;  /* near-black with teal undertone */
	--lms-ink-muted:     #5A6D6A;  /* muted teal-gray for body copy */
	--lms-line:          rgba(15, 73, 69, 0.12);
	--lms-line-strong:   rgba(15, 73, 69, 0.22);

	/* Type */
	--lms-display: 'Cormorant Garamond', 'Times New Roman', serif;
	--lms-body:    'Jost', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
	--lms-script:  'Italiana', 'Cormorant Garamond', serif;

	--lms-step--2: clamp(0.72rem, 0.7rem + 0.1vw, 0.78rem);
	--lms-step--1: clamp(0.82rem, 0.8rem + 0.1vw, 0.9rem);
	--lms-step-0:  clamp(0.98rem, 0.95rem + 0.2vw, 1.08rem);
	--lms-step-1:  clamp(1.15rem, 1.1rem + 0.3vw, 1.35rem);
	--lms-step-2:  clamp(1.5rem, 1.3rem + 0.8vw, 2rem);

	/* Easing */
	--lms-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--lms-ease-out: cubic-bezier(0.22, 1, 0.36, 1);

	/* Radius — gentle rounding on photos and pills */
	--lms-radius-img:  12px;
	--lms-radius-card: 14px;
	--lms-radius-pill: 999px;
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--lms-body);
	font-size: var(--lms-step-0);
	line-height: 1.65;
	color: var(--lms-ink);
	background: var(--lms-paper);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--lms-primary); text-decoration: none; transition: color .3s var(--lms-ease); }
a:hover { color: var(--lms-primary-deep); }
button { font-family: inherit; }
::selection { background: var(--lms-primary); color: var(--lms-accent); }

h1, h2, h3, h4 {
	font-family: var(--lms-display);
	font-weight: 400;
	line-height: 1.15;
	color: var(--lms-primary-deep);
	margin: 0;
}

/* ---------- Containers ---------- */
.lms-container {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 clamp(1.25rem, 4vw, 3rem);
}
.lms-container--medium { max-width: 980px; }
.lms-container--narrow { max-width: 760px; }

.lms-section { padding: clamp(2.5rem, 5vw, 4.5rem) 0; }
.lms-section--tight { padding: clamp(1.75rem, 3.5vw, 2.75rem) 0; }
.lms-section--paper-warm { background: var(--lms-paper-warm); }
.lms-section--paper-deep { background: var(--lms-paper-deep); }

.lms-mt-l { margin-top: 2rem; }

/* ---------- Eyebrows & ornaments ---------- */
.lms-eyebrow {
	display: block;
	font-size: var(--lms-step--1);
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--lms-primary);
	font-weight: 500;
	margin: 0 0 1rem;
}
.lms-eyebrow--center { text-align: center; }
.lms-eyebrow--light { color: var(--lms-accent); }

/* Decorative gold flourish */
.lms-ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin: 1.75rem 0 0;
	color: var(--lms-accent-warm);
}
.lms-ornament__line {
	flex: 0 1 100px;
	height: 1px;
	background: currentColor;
	opacity: .45;
}
.lms-ornament__glyph { flex-shrink: 0; }

/* Section heads */
.lms-section-head { margin-bottom: 2.5rem; }
.lms-section-head--center { text-align: center; }
.lms-section-head__title {
	font-size: clamp(1.85rem, 3.6vw, 2.75rem);
	line-height: 1.1;
	margin: 0 0 1rem;
	/* white-space removed: nl2br already inserts <br> for line breaks */
}
.lms-section-head__lede {
	font-size: var(--lms-step-1);
	line-height: 1.6;
	color: var(--lms-ink-muted);
	max-width: 38em;
	margin: 0 auto;
}
.lms-section-foot { margin-top: 3rem; }
.lms-section-foot--center { text-align: center; }

/* ---------- Buttons ---------- */
.lms-btn {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: 1rem 2.25rem;
	font-family: var(--lms-body);
	font-size: var(--lms-step--1);
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 500;
	background: var(--lms-primary);
	color: var(--lms-paper);
	border: 1px solid var(--lms-primary);
	cursor: pointer;
	transition: all .4s var(--lms-ease);
	position: relative;
	overflow: hidden;
	text-decoration: none;
}
.lms-btn:hover {
	color: var(--lms-paper);
	background: var(--lms-primary-deep);
	border-color: var(--lms-primary-deep);
}

/* Pill — rounded primary CTA (hero) */
.lms-btn--pill {
	border-radius: var(--lms-radius-pill);
	padding: .95rem 1.85rem;
	font-size: var(--lms-step--1);
	letter-spacing: .12em;
}
.lms-btn--pill .lms-btn__arrow {
	display: inline-block;
	transition: transform .35s var(--lms-ease);
}
.lms-btn--pill:hover .lms-btn__arrow { transform: translateX(4px); }

/* Link-style button — underlined text, no fill */
.lms-btn--link {
	background: transparent;
	color: var(--lms-primary);
	border: 0;
	padding: .85rem .25rem;
	letter-spacing: .12em;
	position: relative;
}
.lms-btn--link::after {
	content: "";
	position: absolute;
	left: .25rem; right: .25rem; bottom: .65rem;
	height: 1px;
	background: var(--lms-primary);
	transform: scaleX(.7);
	transform-origin: left;
	transition: transform .4s var(--lms-ease);
}
.lms-btn--link:hover {
	color: var(--lms-primary-deep);
	background: transparent;
}
.lms-btn--link:hover::after { transform: scaleX(1); }

.lms-btn--accent::after {
	content: "";
	position: absolute;
	top: 0; left: -100%;
	width: 100%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(193, 155, 107, 0.3), transparent);
	transition: left .8s var(--lms-ease);
	pointer-events: none;
}
.lms-btn--accent:hover::after { left: 100%; }
.lms-btn--ghost {
	background: transparent;
	color: var(--lms-primary);
	border-color: var(--lms-line);
}
.lms-btn--ghost:hover {
	background: transparent;
	color: var(--lms-primary-deep);
	border-color: var(--lms-primary);
}
.lms-btn--light {
	background: var(--lms-accent);
	color: var(--lms-primary-deep);
	border-color: var(--lms-accent);
}

/* ============================================================
   HEADER & NAV
   ============================================================ */
.lms-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #FFFFFF;
	border-bottom: 1px solid var(--lms-line);
	transition: background .3s, border-color .3s, box-shadow .3s;
}
.lms-header.is-scrolled {
	box-shadow: 0 4px 24px -16px rgba(15, 73, 69, 0.18);
}
.lms-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.95rem 0;
	gap: 2rem;
}
.lms-brand {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	color: var(--lms-primary);
	text-decoration: none;
	transition: color .3s var(--lms-ease);
}
.lms-brand:hover { color: var(--lms-primary-deep); }
.lms-brand__wordmark {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	line-height: 1;
}
.lms-brand__name {
	font-family: var(--lms-script);
	font-size: 1.5rem;
	letter-spacing: .28em;
	text-transform: uppercase;
	font-weight: 400;
	line-height: 1;
	padding-left: .28em; /* compensate for tracking */
}
.lms-brand__locale-wrap {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
}
.lms-brand__rule {
	display: inline-block;
	width: 28px;
	height: 1px;
	background: var(--lms-accent-warm);
}
.lms-brand__locale {
	font-family: var(--lms-body);
	font-size: 0.62rem;
	letter-spacing: .4em;
	text-transform: uppercase;
	color: var(--lms-accent-warm);
	font-weight: 500;
	line-height: 1;
	padding-left: .4em;
}
.lms-brand--footer .lms-brand__name { font-size: 1.3rem; }
.lms-brand--footer .lms-brand__rule { width: 22px; }
@media (max-width: 600px) {
	.lms-brand__name { font-size: 1.15rem; letter-spacing: .22em; }
	.lms-brand__rule { width: 20px; }
	.lms-brand__locale { font-size: 0.58rem; letter-spacing: .35em; }
}
.lms-nav__list {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 2rem;
}
.lms-nav__list a {
	font-size: var(--lms-step--1);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--lms-ink);
	font-weight: 500;
	padding: .5rem 0;
	position: relative;
}
.lms-nav__list a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: var(--lms-primary);
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform .4s var(--lms-ease);
}
.lms-nav__list a:hover::after,
.lms-nav__list .current-menu-item > a::after {
	transform: scaleX(1);
	transform-origin: left center;
}
.lms-nav__list a:hover { color: var(--lms-primary); }

.lms-nav-toggle {
	display: none;
	background: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: var(--lms-primary);
}
.lms-nav-toggle svg { width: 26px; height: 26px; }

@media (max-width: 880px) {
	.lms-nav-toggle { display: inline-flex; }
	.lms-nav {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100vw;
		height: 100vh;
		background: var(--lms-paper);
		padding: 0;
		transform: translateX(100%);
		transition: transform .55s var(--lms-ease);
		z-index: 1000;
		overflow-y: auto;
	}
	.lms-nav.is-open { transform: translateX(0); }
	.lms-nav__inner {
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: 100vh;
		padding: 4.5rem 2rem 3rem;
		position: relative;
	}
	/* Brand row inside the open mobile nav */
	.lms-nav__brand {
		position: absolute;
		top: 1.5rem;
		left: 1.5rem;
		display: flex;
		align-items: center;
		gap: .7rem;
	}
	.lms-nav__brand .lms-brand__mark { width: 32px; height: 32px; }
	.lms-nav__brand-name {
		font-family: var(--lms-display);
		font-size: 1rem;
		letter-spacing: .2em;
		text-transform: uppercase;
		color: var(--lms-primary);
		font-weight: 500;
	}
	/* Close button */
	.lms-nav__close {
		position: absolute;
		top: 1.25rem;
		right: 1.25rem;
		width: 44px;
		height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: transparent;
		border: 1px solid var(--lms-line);
		border-radius: 999px;
		cursor: pointer;
		color: var(--lms-primary);
		transition: all .3s var(--lms-ease);
	}
	.lms-nav__close:hover {
		background: var(--lms-primary);
		color: var(--lms-paper);
		border-color: var(--lms-primary);
		transform: rotate(90deg);
	}
	.lms-nav__close svg { width: 18px; height: 18px; }

	.lms-nav__list {
		flex-direction: column;
		gap: 1.5rem;
		align-items: flex-start;
	}
	.lms-nav__list a {
		font-size: 1.75rem;
		font-family: var(--lms-display);
		letter-spacing: .02em;
		text-transform: none;
		color: var(--lms-primary);
		font-weight: 400;
		position: relative;
		display: inline-block;
	}
	/* Stagger the link reveal when nav opens */
	.lms-nav.is-open .lms-nav__list li {
		animation: lmsNavLinkIn .5s var(--lms-ease) both;
	}
	.lms-nav.is-open .lms-nav__list li:nth-child(1) { animation-delay: .1s; }
	.lms-nav.is-open .lms-nav__list li:nth-child(2) { animation-delay: .15s; }
	.lms-nav.is-open .lms-nav__list li:nth-child(3) { animation-delay: .2s; }
	.lms-nav.is-open .lms-nav__list li:nth-child(4) { animation-delay: .25s; }
	.lms-nav.is-open .lms-nav__list li:nth-child(5) { animation-delay: .3s; }
	.lms-nav.is-open .lms-nav__list li:nth-child(6) { animation-delay: .35s; }
	.lms-nav.is-open .lms-nav__list li:nth-child(7) { animation-delay: .4s; }

	/* Reserve CTA at bottom of mobile menu */
	.lms-nav__cta {
		margin-top: 3rem;
		padding-top: 2rem;
		border-top: 1px solid var(--lms-line);
		display: flex;
		flex-direction: column;
		gap: 1rem;
		opacity: 0;
		transform: translateY(20px);
		transition: opacity .5s var(--lms-ease) .45s, transform .5s var(--lms-ease) .45s;
	}
	.lms-nav.is-open .lms-nav__cta {
		opacity: 1;
		transform: translateY(0);
	}
	.lms-nav__cta-line {
		font-size: .72rem;
		letter-spacing: .25em;
		text-transform: uppercase;
		color: var(--lms-ink-muted);
	}
}
@keyframes lmsNavLinkIn {
	from { opacity: 0; transform: translateX(-30px); }
	to   { opacity: 1; transform: translateX(0); }
}
/* Hide the nav brand row + close button when nav is in its inline desktop state */
.lms-nav__brand, .lms-nav__close, .lms-nav__cta { display: none; }
@media (max-width: 880px) {
	.lms-nav__brand, .lms-nav__close, .lms-nav__cta { display: flex; }
}

/* ============================================================
   HERO — editorial photo-driven layout (Studio Fleur / Barre Series feel)
   Cream background, one large rounded photo, polaroid overlap,
   pill button with arrow, italic-emphasis headline.
   ============================================================ */
.lms-hero {
	position: relative;
	background: #FFFFFF;
	padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(2.5rem, 5vw, 4rem);
	overflow: hidden;
}
.lms-hero__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 50% 60% at 95% 10%, rgba(15, 73, 69, 0.06) 0%, transparent 60%),
		radial-gradient(ellipse 40% 30% at 5% 95%, rgba(193, 155, 107, 0.10) 0%, transparent 60%);
	z-index: 0;
	pointer-events: none;
}
.lms-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
	min-height: clamp(440px, 62vh, 600px);
	z-index: 2;
}

/* Text column */
.lms-hero__text { max-width: 600px; }

/* Pill tag — like #skincare in the editorial reference */
.lms-hero__tag {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .4rem 1rem .45rem;
	border: 1px solid var(--lms-line);
	border-radius: var(--lms-radius-pill);
	font-size: .72rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--lms-primary);
	font-weight: 500;
	background: rgba(250, 247, 242, 0.6);
	margin-bottom: 2rem;
}
.lms-hero__tag-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--lms-sage);
}

.lms-hero__title {
	font-family: var(--lms-display);
	font-size: clamp(2.6rem, 6.2vw, 5.2rem);
	line-height: 0.98;
	color: var(--lms-primary);
	font-weight: 400;
	margin: 0 0 1.5rem;
	letter-spacing: -0.012em;
}
.lms-hero__title-line { display: block; }
/* Middle line of a multi-line headline gets italic emphasis in chai */
.lms-hero__title-line--2:not(:last-child) {
	font-style: italic;
	color: var(--lms-accent-warm);
	font-weight: 300;
	padding-left: 1.5em;
}
.lms-hero__title-line--2:last-child {
	font-style: italic;
	color: var(--lms-accent-warm);
	font-weight: 300;
}

.lms-hero__sub {
	font-size: var(--lms-step-1);
	line-height: 1.7;
	color: var(--lms-ink-muted);
	max-width: 30em;
	margin: 0 0 2.25rem;
}
.lms-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	align-items: center;
	margin-bottom: 2.5rem;
}
.lms-hero__sig {
	display: flex;
	align-items: center;
	gap: .85rem;
}
.lms-hero__sig-rule {
	display: inline-block;
	width: 32px;
	height: 1px;
	background: var(--lms-accent-warm);
	flex-shrink: 0;
}
.lms-hero__sig-text {
	font-size: .72rem;
	color: var(--lms-ink-muted);
	letter-spacing: .22em;
	text-transform: uppercase;
}

/* Photo column */
.lms-hero__media {
	position: relative;
	aspect-ratio: 5 / 6;
	max-width: 540px;
	margin-left: auto;
	width: 100%;
}
.lms-hero__photo {
	margin: 0;
	overflow: hidden;
	background: var(--lms-paper-deep);
	border-radius: var(--lms-radius-img);
	box-shadow:
		0 30px 80px -40px rgba(15, 73, 69, 0.45),
		0 10px 30px -15px rgba(15, 73, 69, 0.15);
	position: relative;
	transition: transform .8s var(--lms-ease);
}
.lms-hero__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: sepia(0.05) saturate(0.96);
	display: block;
}
.lms-hero__photo-empty {
	width: 100%; height: 100%;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--lms-paper-warm), var(--lms-paper-deep));
	color: var(--lms-accent-warm);
}
.lms-hero__photo--main {
	width: 100%;
	height: 100%;
	animation: lmsHeroMainIn 1.2s var(--lms-ease) 0.3s both;
}
.lms-hero__photo--polaroid {
	position: absolute;
	bottom: -8%;
	left: -10%;
	width: 44%;
	aspect-ratio: 4 / 5;
	background: var(--lms-paper);
	padding: 12px 12px 32px;
	border-radius: 4px;
	border: 1px solid var(--lms-line);
	box-shadow: 0 24px 60px -28px rgba(15, 73, 69, 0.5);
	transform: rotate(-6deg);
	z-index: 3;
	animation: lmsHeroPolaroidIn 1.2s var(--lms-ease) 0.6s both;
}
.lms-hero__photo--polaroid img {
	border-radius: 2px;
}
.lms-hero__media:hover .lms-hero__photo--main { transform: scale(1.01); }
.lms-hero__media:hover .lms-hero__photo--polaroid { transform: rotate(-3deg) translateY(-6px); }

/* Small pill tag overlaid on the main photo (like #01 in the reference) */
.lms-hero__photo-tag {
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	background: rgba(250, 247, 242, 0.92);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	padding: .4rem 1rem .45rem;
	border-radius: var(--lms-radius-pill);
	font-size: .7rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--lms-primary);
	font-weight: 500;
	z-index: 2;
}

@keyframes lmsHeroMainIn {
	from { opacity: 0; transform: translateY(40px) scale(.96); }
	to   { opacity: 1; transform: none; }
}
@keyframes lmsHeroPolaroidIn {
	from { opacity: 0; transform: rotate(-6deg) translateY(40px); }
	to   { opacity: 1; transform: rotate(-6deg); }
}

@media (prefers-reduced-motion: reduce) {
	.lms-hero__photo--main,
	.lms-hero__photo--polaroid { animation: none; opacity: 1; }
}

/* Hero responsive */
@media (max-width: 960px) {
	.lms-hero__inner {
		grid-template-columns: 1fr;
		gap: 3rem;
		min-height: auto;
	}
	.lms-hero__media {
		max-width: 460px;
		margin: 1rem auto 1.5rem;
		aspect-ratio: 4 / 5;
	}
	.lms-hero__photo--polaroid {
		bottom: -6%;
		left: -8%;
		width: 38%;
	}
}
@media (max-width: 600px) {
	.lms-hero__title { font-size: clamp(2.4rem, 11vw, 3.6rem); }
	.lms-hero__sub { font-size: var(--lms-step-0); }
	.lms-hero__photo--polaroid { width: 42%; }
}

/* ============================================================
   PAGE HEADER (interior pages)
   ============================================================ */
.lms-page-header {
	padding: clamp(3.5rem, 7vw, 5.5rem) 0 clamp(2rem, 3.5vw, 3rem);
	text-align: center;
	background: linear-gradient(180deg, var(--lms-paper-warm) 0%, var(--lms-paper) 100%);
}
.lms-page-header__crumb {
	font-size: var(--lms-step--1);
	letter-spacing: .42em;
	text-transform: uppercase;
	color: var(--lms-primary);
	font-weight: 500;
	margin: 0 0 1.5rem;
}
.lms-page-header__title {
	font-size: clamp(2.5rem, 5vw, 4rem);
	line-height: 1.05;
	color: var(--lms-primary-deep);
	margin: 0 auto 1.5rem;
	max-width: 18ch;
	font-weight: 300;
	/* white-space removed: nl2br already inserts <br> for line breaks */
}
.lms-page-header__lede {
	font-size: var(--lms-step-1);
	color: var(--lms-ink-muted);
	max-width: 44em;
	margin: 0 auto;
	line-height: 1.65;
}

/* ============================================================
   SPLIT layout (text + image)
   ============================================================ */
.lms-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.lms-split--reverse .lms-split__text { order: 2; }
.lms-split__text { padding: 1rem 0; }
.lms-split__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 320px;
	max-height: 560px;
	border-radius: var(--lms-radius-img);
}
.lms-placeholder {
	background: linear-gradient(135deg, var(--lms-paper-warm), var(--lms-paper-deep));
	display: grid;
	place-items: center;
	color: var(--lms-accent-warm);
	min-height: 320px;
}
.lms-placeholder--portrait { aspect-ratio: 3 / 4; }
.lms-placeholder--square { aspect-ratio: 1 / 1; }
.lms-placeholder--small { min-height: 280px; }
@media (max-width: 720px) {
	.lms-split { grid-template-columns: 1fr; }
	.lms-split--reverse .lms-split__text { order: 1; }
	.lms-split__media img, .lms-placeholder { min-height: 320px; }
}

/* ============================================================
   PROSE & drop-cap
   ============================================================ */
.lms-prose p {
	font-size: var(--lms-step-0);
	line-height: 1.75;
	color: var(--lms-ink);
	margin: 0 0 1.25rem;
}
.lms-lede {
	font-size: var(--lms-step-1) !important;
	line-height: 1.65 !important;
	color: var(--lms-ink) !important;
}
.lms-prose__drop-cap::first-letter {
	font-family: var(--lms-display);
	font-size: 4.5rem;
	line-height: .9;
	float: left;
	font-weight: 400;
	color: var(--lms-primary);
	margin: 0.3rem 0.65rem 0 0;
	font-style: italic;
}

/* ============================================================
   PRINCIPLES (About — 3 numbered cards)
   ============================================================ */
.lms-principles {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
}
.lms-principle {
	padding: 2.5rem 2rem;
	background: var(--lms-paper);
	border: 1px solid var(--lms-line);
	border-radius: var(--lms-radius-card);
	position: relative;
	transition: transform .5s var(--lms-ease), box-shadow .5s var(--lms-ease), border-color .5s var(--lms-ease);
}
.lms-principle:hover {
	transform: translateY(-4px);
	border-color: var(--lms-accent-warm);
	box-shadow: 0 20px 60px -30px rgba(15, 73, 69, 0.3);
}
.lms-principle__num {
	font-family: var(--lms-display);
	font-style: italic;
	font-size: 3rem;
	font-weight: 400;
	color: var(--lms-accent-warm);
	line-height: 1;
	margin-bottom: 1.25rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--lms-line);
}
.lms-principle__title {
	font-size: 1.5rem;
	margin: 0 0 .85rem;
	color: var(--lms-primary-deep);
}
.lms-principle__body {
	font-size: var(--lms-step-0);
	line-height: 1.7;
	color: var(--lms-ink-muted);
	margin: 0;
}
@media (max-width: 880px) { .lms-principles { grid-template-columns: 1fr; } }

/* ============================================================
   TEAM (About — 3 therapists)
   ============================================================ */
.lms-team {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(2rem, 4vw, 3rem);
	margin-top: 2.5rem;
}
.lms-team__member { text-align: center; }
.lms-team__portrait {
	aspect-ratio: 3 / 4;
	margin-bottom: 1.5rem;
	overflow: hidden;
	border-radius: var(--lms-radius-img);
	background: var(--lms-paper-warm);
}
.lms-team__portrait img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--lms-ease), filter .6s;
	filter: sepia(0.06) saturate(.95);
}
.lms-team__member:hover .lms-team__portrait img {
	transform: scale(1.04);
	filter: sepia(0) saturate(1);
}
.lms-team__name {
	font-size: 1.5rem;
	margin: 0 0 .25rem;
}
.lms-team__role {
	font-size: var(--lms-step--1);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--lms-primary);
	margin: 0 0 1rem;
	font-weight: 500;
}
.lms-team__bio {
	font-size: var(--lms-step-0);
	line-height: 1.65;
	color: var(--lms-ink-muted);
	margin: 0;
}
@media (max-width: 880px) { .lms-team { grid-template-columns: 1fr; } }

/* ============================================================
   QUOTE (testimonial)
   ============================================================ */
.lms-quote {
	margin: 0;
	text-align: center;
	position: relative;
	padding: 2rem 0;
}
.lms-quote__mark {
	font-family: var(--lms-display);
	font-style: italic;
	font-size: 6rem;
	line-height: 0.5;
	color: var(--lms-accent-warm);
	margin-bottom: 1.5rem;
	opacity: .8;
}
.lms-quote__text {
	font-family: var(--lms-display);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.4rem, 2.6vw, 2rem);
	line-height: 1.5;
	color: var(--lms-primary-deep);
	margin: 0 auto 2rem;
	max-width: 26em;
}
.lms-quote__byline {
	font-size: var(--lms-step--1);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--lms-ink-muted);
	margin: 0;
	font-weight: 500;
}

/* ============================================================
   CONTACT — address block + hours table + map
   ============================================================ */
.lms-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 4vw, 4rem);
}
@media (max-width: 720px) { .lms-contact-grid { grid-template-columns: 1fr; } }

.lms-contact-block {
	padding: 2.5rem;
	background: var(--lms-paper-warm);
	border: 1px solid var(--lms-line);
	border-radius: var(--lms-radius-card);
	position: relative;
}
.lms-contact-block::before,
.lms-contact-block::after {
	content: "";
	position: absolute;
	width: 24px; height: 24px;
	border: 1px solid var(--lms-accent-warm);
}
.lms-contact-block::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.lms-contact-block::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }
.lms-contact-block__title {
	font-size: 1.5rem;
	margin: 0 0 1.5rem;
}
.lms-contact-block__address {
	font-style: normal;
	font-size: var(--lms-step-0);
	line-height: 1.8;
	color: var(--lms-ink);
	margin: 0 0 2rem;
}
.lms-contact-block__line {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .85rem 0;
	border-top: 1px solid var(--lms-line);
}
.lms-contact-block__label {
	font-size: var(--lms-step--1);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--lms-ink-muted);
	font-weight: 500;
}
.lms-contact-block__value {
	font-size: var(--lms-step-0);
	color: var(--lms-primary);
	font-weight: 500;
}

.lms-hours { margin: 0; }
.lms-hours__row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .85rem 0;
	border-top: 1px solid var(--lms-line);
}
.lms-hours__row:first-child { border-top: 0; padding-top: 0; }
.lms-hours__row dt {
	font-size: var(--lms-step--1);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--lms-ink);
	font-weight: 500;
}
.lms-hours__row dd { margin: 0; font-size: var(--lms-step-0); color: var(--lms-ink); }
.lms-hours__today {
	display: inline-block;
	margin-left: .5rem;
	padding: .15rem .55rem;
	background: var(--lms-primary);
	color: var(--lms-accent);
	font-size: .65rem;
	letter-spacing: .2em;
	border-radius: 2px;
	vertical-align: middle;
}
.lms-hours__row.is-today dt { color: var(--lms-primary); }
.lms-hours__row.is-today dd { color: var(--lms-primary-deep); font-weight: 500; }
.lms-hours__row.is-closed dd { color: var(--lms-ink-muted); font-style: italic; }

.lms-map {
	aspect-ratio: 16 / 9;
	border: 1px solid var(--lms-line);
	overflow: hidden;
	max-height: 480px;
}
.lms-map iframe { width: 100%; height: 100%; border: 0; }

/* ============================================================
   FINALE — light cream CTA section (was dark, now light & calm)
   ============================================================ */
.lms-section--finale {
	position: relative;
	padding: clamp(3rem, 6vw, 5rem) 0;
	text-align: center;
	color: var(--lms-ink);
	overflow: hidden;
	background: var(--lms-paper-warm);
	border-top: 1px solid var(--lms-line);
}
.lms-finale__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 50% 60% at 50% 0%, rgba(15, 73, 69, 0.08) 0%, transparent 70%),
		radial-gradient(ellipse 40% 40% at 80% 80%, rgba(193, 155, 107, 0.12) 0%, transparent 60%);
	z-index: 0;
}
.lms-finale__bg::before,
.lms-finale__bg::after {
	content: "";
	position: absolute;
	width: 180px; height: 180px;
	border: 1px solid var(--lms-accent-warm);
	border-radius: 50%;
	opacity: 0.18;
}
.lms-finale__bg::before { top: -90px; left: 8%; }
.lms-finale__bg::after  { bottom: -90px; right: 8%; }
.lms-finale__content { position: relative; z-index: 1; }
.lms-finale__title {
	font-size: clamp(1.85rem, 3.6vw, 2.75rem);
	color: var(--lms-primary-deep);
	margin: 0 0 1rem;
	line-height: 1.1;
	font-weight: 300;
}
.lms-finale__body {
	font-size: var(--lms-step-1);
	color: var(--lms-ink-muted);
	max-width: 30em;
	margin: 0 auto 2rem;
	line-height: 1.65;
}
/* Finale CTA uses standard primary button styling (sage) — no override needed. */

/* ============================================================
   INTERIOR FEATURE MOSAIC (homepage — section 04)
   3 layered images + giant numeral, text on the right
   ============================================================ */
.lms-interior-feature {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}
.lms-interior-feature__media {
	position: relative;
	aspect-ratio: 1 / 1;
	min-height: 380px;
}
.lms-interior-feature__img {
	position: absolute;
	margin: 0;
	overflow: hidden;
	border-radius: var(--lms-radius-img);
	background: var(--lms-paper);
	border: 1px solid var(--lms-line);
	box-shadow: 0 24px 60px -32px rgba(15, 73, 69, 0.3);
	transition: transform .8s var(--lms-ease);
}
.lms-interior-feature__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: sepia(0.06) saturate(0.95);
}
.lms-interior-feature__img--1 {
	top: 0;
	left: 0;
	width: 58%;
	aspect-ratio: 3 / 4;
	z-index: 2;
}
.lms-interior-feature__img--2 {
	top: 15%;
	right: 0;
	width: 50%;
	aspect-ratio: 1 / 1;
	z-index: 1;
}
.lms-interior-feature__img--3 {
	bottom: 0;
	left: 18%;
	width: 55%;
	aspect-ratio: 4 / 3;
	z-index: 3;
}
.lms-interior-feature:hover .lms-interior-feature__img--1 { transform: translate(-6px, -4px); }
.lms-interior-feature:hover .lms-interior-feature__img--2 { transform: translate(8px, -4px); }
.lms-interior-feature:hover .lms-interior-feature__img--3 { transform: translate(0, 6px); }
.lms-interior-feature__numeral {
	position: absolute;
	bottom: -2rem;
	right: -1rem;
	font-family: var(--lms-display);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(5rem, 12vw, 9rem);
	line-height: 1;
	color: var(--lms-accent-warm);
	opacity: 0.35;
	z-index: 0;
	pointer-events: none;
}
@media (max-width: 880px) {
	.lms-interior-feature {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
	.lms-interior-feature__media {
		max-width: 480px;
		margin: 0 auto;
	}
	.lms-interior-feature__numeral {
		font-size: clamp(4rem, 18vw, 7rem);
		bottom: -1rem;
		right: -.5rem;
	}
}

/* ============================================================
   RITUALS / PROCEDURES — editorial card per service
   Alternating image left / right with big italic numeral
   ============================================================ */
.lms-rituals {
	display: flex;
	flex-direction: column;
	gap: clamp(3rem, 6vw, 5rem);
}
.lms-ritual {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
	position: relative;
}
.lms-ritual--reverse .lms-ritual__media { order: 2; }
.lms-ritual__media {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--lms-radius-img);
	background: var(--lms-paper-warm);
	border: 1px solid var(--lms-line);
}
.lms-ritual__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--lms-ease);
	filter: sepia(0.06) saturate(0.95);
}
.lms-ritual:hover .lms-ritual__media img { transform: scale(1.03); }
.lms-ritual__media-empty {
	width: 100%; height: 100%;
	display: grid;
	place-items: center;
	color: var(--lms-accent-warm);
	background: linear-gradient(135deg, var(--lms-paper-warm), var(--lms-paper-deep));
}
.lms-ritual__num {
	font-family: var(--lms-display);
	font-style: italic;
	font-weight: 400;
	font-size: 2.5rem;
	color: var(--lms-accent-warm);
	line-height: 1;
	margin: 0 0 1rem;
	display: inline-block;
}
.lms-ritual__num::after {
	content: "";
	display: inline-block;
	width: 40px;
	height: 1px;
	background: var(--lms-accent-warm);
	margin-left: 1rem;
	vertical-align: middle;
}
.lms-ritual__title {
	font-family: var(--lms-display);
	font-weight: 400;
	font-size: clamp(1.85rem, 3.6vw, 2.6rem);
	line-height: 1.1;
	color: var(--lms-primary-deep);
	margin: 0 0 .85rem;
}
.lms-ritual__meta {
	display: flex;
	gap: .9rem;
	align-items: baseline;
	font-size: var(--lms-step--1);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--lms-ink-muted);
	margin: 0 0 1.5rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--lms-line);
}
.lms-ritual__meta-dot { color: var(--lms-accent-warm); }
.lms-ritual__meta-price { color: var(--lms-primary); font-weight: 500; }
.lms-ritual__desc {
	font-size: var(--lms-step-0);
	line-height: 1.75;
	color: var(--lms-ink);
	margin: 0 0 1.5rem;
}
.lms-ritual__desc p { margin: 0 0 1rem; }
.lms-ritual__contra {
	margin: 0 0 1.5rem;
	font-size: var(--lms-step--1);
}
.lms-ritual__contra summary {
	cursor: pointer;
	color: var(--lms-primary);
	font-weight: 500;
	letter-spacing: .08em;
	padding: .5rem 0;
}
.lms-ritual__contra summary::marker { color: var(--lms-accent-warm); }
.lms-ritual__contra-body {
	padding: .85rem 1rem;
	margin-top: .5rem;
	background: var(--lms-paper-warm);
	border-left: 2px solid var(--lms-accent-warm);
	color: var(--lms-ink-muted);
	line-height: 1.6;
}
@media (max-width: 880px) {
	.lms-ritual { grid-template-columns: 1fr; gap: 1.75rem; }
	.lms-ritual--reverse .lms-ritual__media { order: 0; }
	.lms-ritual__media { max-width: 520px; margin: 0 auto; }
}

/* ============================================================
   GALLERY — editorial varied grid + simple grid
   ============================================================ */
.lms-gallery {
	display: grid;
	gap: clamp(.75rem, 1.5vw, 1.25rem);
	grid-template-columns: repeat(12, 1fr);
}
.lms-gallery__item {
	overflow: hidden;
	background: var(--lms-paper-warm);
	aspect-ratio: 4 / 5;
	border-radius: var(--lms-radius-img);
}
.lms-gallery__item img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--lms-ease), filter .6s;
	filter: sepia(0.04) saturate(.96);
}
.lms-gallery__placeholder {
	width: 100%; height: 100%;
	background: linear-gradient(135deg, var(--lms-paper-warm), var(--lms-paper-deep));
	display: grid;
	place-items: center;
	color: var(--lms-accent-warm);
}
.lms-gallery__item:hover img {
	transform: scale(1.05);
	filter: sepia(0) saturate(1.05);
}
.lms-gallery--editorial .lms-gallery__item { grid-column: span 4; }
.lms-gallery--editorial .lms-gallery__item:nth-child(7n+1) { grid-column: span 6; aspect-ratio: 4 / 3; }
.lms-gallery--editorial .lms-gallery__item:nth-child(7n+4) { grid-column: span 8; aspect-ratio: 16 / 10; }
.lms-gallery--editorial .lms-gallery__item:nth-child(7n+6) { grid-column: span 4; aspect-ratio: 3 / 4; }
.lms-gallery--grid .lms-gallery__item { grid-column: span 3; }
@media (max-width: 880px) {
	.lms-gallery--editorial .lms-gallery__item,
	.lms-gallery--editorial .lms-gallery__item:nth-child(7n+1),
	.lms-gallery--editorial .lms-gallery__item:nth-child(7n+4),
	.lms-gallery--editorial .lms-gallery__item:nth-child(7n+6) { grid-column: span 6; aspect-ratio: 1 / 1; }
	.lms-gallery--grid .lms-gallery__item { grid-column: span 6; }
}

/* ============================================================
   CARDS (used by services & posts)
   ============================================================ */
.lms-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
}
@media (max-width: 880px) { .lms-cards { grid-template-columns: 1fr; } }

.lms-card {
	background: var(--lms-paper);
	border: 1px solid var(--lms-line);
	border-radius: var(--lms-radius-card);
	padding: 2.5rem 2.25rem;
	transition: transform .5s var(--lms-ease), border-color .5s var(--lms-ease), box-shadow .5s var(--lms-ease);
	display: flex;
	flex-direction: column;
}
.lms-card:hover {
	transform: translateY(-4px);
	border-color: var(--lms-accent-warm);
	box-shadow: 0 20px 60px -30px rgba(15, 73, 69, 0.3);
}
.lms-card__eyebrow {
	font-size: var(--lms-step--1);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--lms-primary);
	margin: 0 0 1rem;
	font-weight: 500;
}
.lms-card__title {
	font-size: 1.6rem;
	margin: 0 0 .85rem;
}
.lms-card__desc {
	font-size: var(--lms-step-0);
	line-height: 1.65;
	color: var(--lms-ink-muted);
	margin: 0 0 1.5rem;
	flex-grow: 1;
}
.lms-card__meta {
	display: flex;
	gap: .75rem;
	align-items: baseline;
	padding-top: 1.25rem;
	border-top: 1px solid var(--lms-line);
	font-size: var(--lms-step--1);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--lms-ink-muted);
}
.lms-card__price { color: var(--lms-primary); font-weight: 500; }
.lms-card__cta {
	margin-top: 1.25rem;
	font-size: var(--lms-step--1);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--lms-primary);
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}
.lms-card__cta::after { content: "→"; transition: transform .3s; }
.lms-card__cta:hover::after { transform: translateX(4px); }

/* ============================================================
   FOOTER — light cream (was dark)
   ============================================================ */
.lms-footer {
	background: var(--lms-paper-warm);
	color: var(--lms-ink-muted);
	padding: clamp(3rem, 5vw, 4.5rem) 0 1.5rem;
	margin-top: 0;
	border-top: 1px solid var(--lms-line);
	position: relative;
}
.lms-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 1px;
	background: var(--lms-accent-warm);
}
.lms-footer a { color: var(--lms-primary); }
.lms-footer a:hover { color: var(--lms-primary-deep); }
.lms-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 2.5rem;
	margin-bottom: 2.5rem;
}
@media (max-width: 880px) { .lms-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .lms-footer__grid { grid-template-columns: 1fr; gap: 2rem; } }
.lms-footer__brand .lms-brand__name { color: var(--lms-primary-deep); }
.lms-footer__brand .lms-brand__locale { color: var(--lms-primary); }
.lms-footer__blurb {
	margin: 1.25rem 0 0;
	font-size: var(--lms-step--1);
	line-height: 1.7;
	max-width: 28em;
	color: var(--lms-ink-muted);
}
.lms-footer__col h4 {
	font-family: var(--lms-display);
	font-size: 1.15rem;
	color: var(--lms-primary-deep);
	margin: 0 0 1rem;
	font-weight: 400;
}
.lms-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.lms-footer__col ul li {
	margin-bottom: .55rem;
	font-size: var(--lms-step--1);
	color: var(--lms-ink-muted);
	line-height: 1.6;
}
.lms-footer__col ul a {
	font-size: var(--lms-step--1);
	letter-spacing: .04em;
}
.lms-footer__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--lms-line);
	font-size: var(--lms-step--2);
	color: var(--lms-ink-muted);
	letter-spacing: .05em;
}
.lms-footer__social {
	display: flex;
	gap: 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.lms-footer__social a {
	display: inline-flex;
	color: var(--lms-primary);
	opacity: .8;
	transition: opacity .3s, color .3s;
}
.lms-footer__social a:hover { opacity: 1; color: var(--lms-primary-deep); }
.lms-footer__social svg { width: 18px; height: 18px; }

/* ============================================================
   REVEAL ANIMATIONS
   ============================================================ */
[data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1s var(--lms-ease), transform 1s var(--lms-ease);
	transition-delay: var(--reveal-delay, 0ms);
}
[data-reveal].is-revealed {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	[data-reveal] { opacity: 1; transform: none; transition: none; }
	.lms-hero__media { animation: none; }
	.lms-hero__scroll svg { animation: none; }
}

/* ============================================================
   MISC
   ============================================================ */
.lms-empty-state {
	text-align: center;
	padding: 3rem;
	color: var(--lms-ink-muted);
	font-style: italic;
	background: var(--lms-paper-warm);
}
.lms-pagination {
	display: flex;
	justify-content: center;
	gap: 1rem;
	margin: 3rem 0;
}
.lms-pagination a, .lms-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 .75rem;
	border: 1px solid var(--lms-line);
	color: var(--lms-ink);
	font-size: var(--lms-step--1);
	transition: all .3s;
}
.lms-pagination a:hover, .lms-pagination .current {
	background: var(--lms-primary);
	border-color: var(--lms-primary);
	color: var(--lms-accent);
}

/* Single post / blog */
.lms-single { padding: clamp(4rem, 8vw, 7rem) 0; }
.lms-single__title { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 1rem; }
.lms-single__meta { font-size: var(--lms-step--1); letter-spacing: .2em; text-transform: uppercase; color: var(--lms-ink-muted); margin-bottom: 2.5rem; }
.lms-single__content { font-size: var(--lms-step-0); line-height: 1.85; }
.lms-single__content p { margin: 0 0 1.5rem; }
.lms-single__content h2, .lms-single__content h3 { margin: 2.5rem 0 1rem; }

/* Service detail layouts (when used inline) */
.lms-services {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
}
@media (max-width: 880px) { .lms-services { grid-template-columns: 1fr; } }
.lms-services--full {
	grid-template-columns: 1fr;
	gap: clamp(2.5rem, 4vw, 4rem);
}

/* ============================================================
   WHATSAPP FLOATING BUTTON
   ============================================================ */
.lms-whatsapp {
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 999;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #25D366;
	color: #FFFFFF;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow:
		0 8px 24px -6px rgba(37, 211, 102, 0.5),
		0 4px 12px -4px rgba(0, 0, 0, 0.2);
	transition: transform .35s var(--lms-ease), box-shadow .35s var(--lms-ease);
	text-decoration: none;
	animation: lmsWhatsappIn 0.8s var(--lms-ease) 1.5s both;
}
.lms-whatsapp:hover {
	transform: scale(1.1);
	color: #FFFFFF;
	box-shadow:
		0 12px 32px -6px rgba(37, 211, 102, 0.7),
		0 6px 18px -4px rgba(0, 0, 0, 0.3);
}
.lms-whatsapp__icon { width: 30px; height: 30px; position: relative; z-index: 1; }
.lms-whatsapp__pulse {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: #25D366;
	opacity: 0.55;
	animation: lmsWhatsappPulse 2.2s ease-out infinite;
}
@keyframes lmsWhatsappIn {
	from { opacity: 0; transform: scale(0.6) translateY(20px); }
	to   { opacity: 1; transform: none; }
}
@keyframes lmsWhatsappPulse {
	0%   { transform: scale(1);   opacity: 0.55; }
	100% { transform: scale(1.8); opacity: 0; }
}
@media (max-width: 600px) {
	.lms-whatsapp { width: 52px; height: 52px; bottom: 18px; right: 18px; }
	.lms-whatsapp__icon { width: 26px; height: 26px; }
}
@media (prefers-reduced-motion: reduce) {
	.lms-whatsapp__pulse, .lms-whatsapp { animation: none; }
}

/* ============================================================
   TESTIMONIALS — paged carousel (2 cards on desktop, 1 on mobile)
   Uses scroll-snap for native smooth paging.
   ============================================================ */
.lms-testi-carousel {
	position: relative;
	max-width: 1240px;
	margin: 0 auto;
	padding: 1rem clamp(1.25rem, 4vw, 3rem) 0;
}
.lms-testi-carousel__viewport {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.lms-testi-carousel__viewport::-webkit-scrollbar { display: none; }
.lms-testi-carousel__track {
	display: flex;
	gap: 1.5rem;
	padding: .5rem 0;
}
.lms-testi-carousel .lms-testimonial-card {
	flex: 0 0 calc(50% - 0.75rem);
	max-width: calc(50% - 0.75rem);
	scroll-snap-align: start;
	margin: 0;
}
@media (max-width: 760px) {
	.lms-testi-carousel .lms-testimonial-card {
		flex: 0 0 100%;
		max-width: 100%;
	}
}
.lms-testi-carousel__controls {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
	margin-top: 2rem;
}
.lms-testi-carousel__arrow {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: transparent;
	border: 1px solid var(--lms-line);
	color: var(--lms-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all .35s var(--lms-ease);
}
.lms-testi-carousel__arrow:hover {
	background: var(--lms-primary);
	color: #FFFFFF;
	border-color: var(--lms-primary);
	transform: scale(1.06);
}
.lms-testi-carousel__arrow svg { width: 20px; height: 20px; }

.lms-testi-carousel__dots {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}
.lms-testi-carousel__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(15, 73, 69, 0.25);
	border: 0;
	padding: 0;
	cursor: pointer;
	transition: all .35s var(--lms-ease);
}
.lms-testi-carousel__dot:hover { background: var(--lms-accent-warm); }
.lms-testi-carousel__dot.is-active {
	background: var(--lms-primary);
	width: 24px;
	border-radius: 999px;
}


/* Section head title with inline italic emphasis (replaces old <em> markup) */
.lms-section-head__title--split {
	font-size: clamp(1.85rem, 3.6vw, 2.75rem);
	line-height: 1.1;
	margin: 0 0 1rem;
	color: var(--lms-primary);
}
.lms-section-head__title--split span { display: inline; }
.lms-section-head__title--split .lms-section-head__title-em {
	font-style: italic;
	color: var(--lms-accent-warm);
	font-weight: 300;
	margin: 0 0.15em;
}

/* ============================================================
   LIGHTBOX — gallery & interior page (click any image to zoom)
   ============================================================ */
.lms-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(8, 24, 22, 0.92);
	display: none;
	z-index: 9999;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity .35s var(--lms-ease);
}
.lms-lightbox.is-open {
	display: flex;
	opacity: 1;
}
.lms-lightbox__stage {
	position: relative;
	max-width: min(90vw, 1100px);
	max-height: 85vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
.lms-lightbox__img {
	max-width: 100%;
	max-height: 85vh;
	width: auto;
	height: auto;
	display: block;
	border-radius: 8px;
	box-shadow: 0 20px 60px -20px rgba(0, 0, 0, 0.7);
	animation: lmsLightboxImgIn 0.4s var(--lms-ease);
}
.lms-lightbox__nav,
.lms-lightbox__close {
	position: absolute;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: #FFFFFF;
	width: 50px;
	height: 50px;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all .3s var(--lms-ease);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.lms-lightbox__nav:hover,
.lms-lightbox__close:hover {
	background: rgba(255, 255, 255, 0.25);
	transform: scale(1.08);
}
.lms-lightbox__close {
	top: 24px;
	right: 24px;
}
.lms-lightbox__close:hover {
	transform: scale(1.08) rotate(90deg);
}
.lms-lightbox__nav--prev { left: -70px; top: 50%; transform: translateY(-50%); }
.lms-lightbox__nav--next { right: -70px; top: 50%; transform: translateY(-50%); }
.lms-lightbox__nav--prev:hover { transform: translateY(-50%) scale(1.08); }
.lms-lightbox__nav--next:hover { transform: translateY(-50%) scale(1.08); }
.lms-lightbox__nav svg,
.lms-lightbox__close svg { width: 22px; height: 22px; }
.lms-lightbox__caption {
	position: absolute;
	bottom: -2.5rem;
	left: 0;
	right: 0;
	text-align: center;
	color: rgba(255, 255, 255, 0.9);
	font-family: var(--lms-display);
	font-style: italic;
	font-size: 1rem;
}
.lms-lightbox__counter {
	position: absolute;
	top: 24px;
	left: 24px;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.85rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
@keyframes lmsLightboxImgIn {
	from { opacity: 0; transform: scale(0.96); }
	to   { opacity: 1; transform: scale(1); }
}
@media (max-width: 880px) {
	.lms-lightbox__nav--prev { left: 8px; }
	.lms-lightbox__nav--next { right: 8px; }
}

/* Lightbox-enabled images get a zoom cursor */
[data-lightbox] {
	cursor: zoom-in;
}

/* ============================================================
   RITUALS ACCORDION (procedures page — collapsed view by default)
   ============================================================ */
.lms-rituals-accordion {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: 880px;
	margin: 0 auto;
}
.lms-ritual-acc {
	background: #FFFFFF;
	border: 1px solid var(--lms-line);
	border-radius: var(--lms-radius-card);
	overflow: hidden;
	transition: border-color .3s var(--lms-ease), box-shadow .3s var(--lms-ease);
}
.lms-ritual-acc:hover { border-color: var(--lms-accent-warm); }
.lms-ritual-acc.is-open {
	border-color: var(--lms-primary);
	box-shadow: 0 20px 50px -28px rgba(15, 73, 69, 0.25);
}
.lms-ritual-acc__head {
	width: 100%;
	background: transparent;
	border: 0;
	padding: 1.75rem 2rem;
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	gap: 1.5rem;
	align-items: center;
	cursor: pointer;
	font-family: var(--lms-body);
	text-align: left;
	color: inherit;
	transition: background .3s var(--lms-ease);
}
.lms-ritual-acc__head:hover { background: var(--lms-paper-warm); }
.lms-ritual-acc__num {
	font-family: var(--lms-display);
	font-style: italic;
	font-size: 1.6rem;
	color: var(--lms-accent-warm);
	min-width: 60px;
	font-weight: 400;
}
.lms-ritual-acc__title {
	font-family: var(--lms-display);
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--lms-primary);
	margin: 0;
}
.lms-ritual-acc__meta {
	display: flex;
	gap: 1rem;
	font-size: 0.84rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--lms-ink-muted);
	white-space: nowrap;
}
.lms-ritual-acc__meta-price {
	color: var(--lms-primary);
	font-weight: 500;
}
.lms-ritual-acc__toggle {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--lms-line);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .35s var(--lms-ease), background .3s var(--lms-ease), border-color .3s var(--lms-ease);
	color: var(--lms-primary);
}
.lms-ritual-acc.is-open .lms-ritual-acc__toggle {
	transform: rotate(45deg);
	background: var(--lms-primary);
	color: #FFFFFF;
	border-color: var(--lms-primary);
}
.lms-ritual-acc__toggle svg { width: 16px; height: 16px; }
.lms-ritual-acc__body {
	max-height: 0;
	overflow: hidden;
	transition: max-height .5s var(--lms-ease);
}
.lms-ritual-acc.is-open .lms-ritual-acc__body { max-height: 2000px; }
.lms-ritual-acc__body-inner {
	padding: 0 2rem 2rem 4.25rem;
}
.lms-ritual-acc__body-inner::after {
	/* clear the photo float so contraindications + CTA flow correctly below */
	content: "";
	display: table;
	clear: both;
}

/* Photo: floats right inside the description, text wraps around it
   and continues full-width after the image ends. */
.lms-ritual-acc__photo {
	float: right;
	width: 38%;
	max-width: 320px;
	margin: 0.25rem 0 1rem 1.75rem;
	border-radius: var(--lms-radius-img);
	overflow: hidden;
	aspect-ratio: 4 / 5;
}
.lms-ritual-acc__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: sepia(0.05) saturate(0.96);
}

.lms-ritual-acc__desc {
	font-size: 1rem;
	line-height: 1.75;
	color: var(--lms-ink);
}
.lms-ritual-acc__desc p { margin: 0 0 1rem; }

/* Wrapper for everything that comes after the description — forces clear of the photo float */
.lms-ritual-acc__after {
	clear: both;
	padding-top: 0.5rem;
}

/* Contraindications: collapsible <details> with cream box + click-to-open arrow */
.lms-ritual-acc__contra {
	margin-top: 1rem;
	background: var(--lms-paper-warm);
	border-left: 2px solid var(--lms-accent-warm);
	border-radius: 6px;
	overflow: hidden;
}
.lms-ritual-acc__contra summary {
	list-style: none;
	cursor: pointer;
	padding: 1rem 1.25rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	transition: background .25s var(--lms-ease);
}
.lms-ritual-acc__contra summary::-webkit-details-marker { display: none; }
.lms-ritual-acc__contra summary::marker { display: none; }
.lms-ritual-acc__contra summary:hover {
	background: rgba(193, 155, 107, 0.08);
}
.lms-ritual-acc__contra-label {
	color: var(--lms-primary);
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.82rem;
}
.lms-ritual-acc__contra-arrow {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--lms-primary);
	transition: transform .35s var(--lms-ease), background .25s var(--lms-ease);
	flex-shrink: 0;
}
.lms-ritual-acc__contra-arrow svg { width: 16px; height: 16px; }
.lms-ritual-acc__contra[open] .lms-ritual-acc__contra-arrow {
	transform: rotate(180deg);
	background: var(--lms-accent-warm);
	color: #FFFFFF;
}
.lms-ritual-acc__contra-body {
	padding: 0 1.25rem 1.25rem;
	font-size: 0.92rem;
	line-height: 1.65;
	color: var(--lms-ink);
	animation: lmsContraSlide .35s var(--lms-ease);
}
.lms-ritual-acc__contra-body p { margin: 0 0 0.5rem; }
.lms-ritual-acc__contra-body p:last-child { margin-bottom: 0; }
@keyframes lmsContraSlide {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: none; }
}

.lms-ritual-acc__cta {
	margin-top: 1.5rem;
}
@media (max-width: 760px) {
	.lms-ritual-acc__head {
		grid-template-columns: auto 1fr auto;
		gap: 1rem;
		padding: 1.25rem 1.25rem;
	}
	.lms-ritual-acc__num { font-size: 1.3rem; min-width: 44px; }
	.lms-ritual-acc__title { font-size: 1.2rem; }
	.lms-ritual-acc__meta {
		grid-column: 1 / -1;
		font-size: 0.76rem;
		padding-left: 56px;
	}
	.lms-ritual-acc__toggle { width: 30px; height: 30px; }
	.lms-ritual-acc__body-inner {
		padding: 0 1.25rem 1.5rem;
	}
	/* On mobile, stack photo above text instead of floating */
	.lms-ritual-acc__photo {
		float: none;
		width: 100%;
		max-width: 100%;
		margin: 0 0 1.25rem;
		aspect-ratio: 16 / 10;
	}
}

/* ============================================================
   JOURNAL — card grid + single post
   ============================================================ */
.lms-journal-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem;
}
@media (max-width: 880px) { .lms-journal-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem; } }
@media (max-width: 560px) { .lms-journal-grid { grid-template-columns: 1fr; } }

.lms-journal-card {
	display: flex;
	flex-direction: column;
	background: transparent;
	transition: transform .5s var(--lms-ease);
}
.lms-journal-card:hover { transform: translateY(-6px); }
.lms-journal-card__img {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--lms-radius-img);
	margin-bottom: 1.25rem;
	background: var(--lms-paper-warm);
}
.lms-journal-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s var(--lms-ease), filter .5s var(--lms-ease);
	filter: sepia(0.04) saturate(0.96);
}
.lms-journal-card:hover .lms-journal-card__img img {
	transform: scale(1.05);
	filter: sepia(0) saturate(1);
}
.lms-journal-card__meta {
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--lms-accent-warm);
	margin-bottom: 0.75rem;
	font-weight: 500;
}
.lms-journal-card__title {
	font-family: var(--lms-display);
	font-size: 1.5rem;
	line-height: 1.2;
	color: var(--lms-primary);
	margin: 0 0 0.75rem;
	font-weight: 400;
}
.lms-journal-card:hover .lms-journal-card__title {
	color: var(--lms-primary-deep);
}
.lms-journal-card__excerpt {
	color: var(--lms-ink-muted);
	font-size: 0.96rem;
	line-height: 1.65;
	margin: 0 0 1rem;
}
.lms-journal-card__more {
	font-size: 0.78rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--lms-primary);
	font-weight: 500;
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
}
.lms-journal-card__more::after {
	content: "→";
	transition: transform .3s;
}
.lms-journal-card:hover .lms-journal-card__more::after { transform: translateX(4px); }

/* Single post layout */
.lms-single {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 1.5rem;
}
.lms-single__hero-img {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--lms-radius-img);
	margin: 0 0 2.5rem;
}
.lms-single__hero-img img { width: 100%; height: 100%; object-fit: cover; }
.lms-single__meta {
	display: flex;
	gap: 1rem;
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--lms-accent-warm);
	margin-bottom: 1rem;
	font-weight: 500;
	justify-content: center;
}
.lms-single__title {
	font-family: var(--lms-display);
	font-size: clamp(2.2rem, 5vw, 3.6rem);
	line-height: 1.1;
	color: var(--lms-primary);
	margin: 0 0 2rem;
	text-align: center;
	font-weight: 400;
}
.lms-single__content {
	font-size: 1.1rem;
	line-height: 1.85;
	color: var(--lms-ink);
}
.lms-single__content p { margin: 0 0 1.5rem; }
.lms-single__content h2 {
	font-family: var(--lms-display);
	font-size: 1.8rem;
	color: var(--lms-primary);
	margin: 2.5rem 0 1rem;
	font-weight: 400;
}
.lms-single__content blockquote {
	border-left: 2px solid var(--lms-accent-warm);
	padding: 0 0 0 1.5rem;
	margin: 2rem 0;
	font-family: var(--lms-display);
	font-style: italic;
	font-size: 1.4rem;
	color: var(--lms-primary);
}
.lms-single__nav {
	display: flex;
	justify-content: space-between;
	gap: 2rem;
	padding-top: 3rem;
	margin-top: 3rem;
	border-top: 1px solid var(--lms-line);
}
.lms-single__nav a {
	font-size: 0.84rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--lms-primary);
	font-weight: 500;
	transition: color .3s;
}
.lms-single__nav a:hover { color: var(--lms-primary-deep); }

/* ============================================================
   CONTACT — prominent map + cards
   ============================================================ */
.lms-contact-hero {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: stretch;
	margin-bottom: 4rem;
}
.lms-contact-hero__info {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.lms-contact-card {
	background: #FFFFFF;
	border: 1px solid var(--lms-line);
	border-radius: var(--lms-radius-card);
	padding: 1.75rem 2rem;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.25rem;
	align-items: start;
	transition: transform .4s var(--lms-ease), border-color .4s var(--lms-ease), box-shadow .4s var(--lms-ease);
}
.lms-contact-card:hover {
	transform: translateY(-3px);
	border-color: var(--lms-accent-warm);
	box-shadow: 0 20px 40px -28px rgba(15, 73, 69, 0.2);
}
.lms-contact-card__icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--lms-paper-deep);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lms-primary);
	flex-shrink: 0;
}
.lms-contact-card__icon svg { width: 22px; height: 22px; }
.lms-contact-card__label {
	font-size: 0.74rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--lms-ink-muted);
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 500;
}
.lms-contact-card__value {
	font-family: var(--lms-display);
	font-size: 1.1rem;
	color: var(--lms-primary);
	line-height: 1.4;
	font-weight: 400;
}
.lms-contact-card__value a {
	color: var(--lms-primary);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .3s;
}
.lms-contact-card__value a:hover { border-color: var(--lms-accent-warm); }
.lms-contact-map {
	border-radius: var(--lms-radius-card);
	overflow: hidden;
	border: 1px solid var(--lms-line);
	min-height: 460px;
	box-shadow: 0 20px 50px -28px rgba(15, 73, 69, 0.18);
}
.lms-contact-map iframe {
	width: 100%;
	height: 100%;
	min-height: 460px;
	border: 0;
	display: block;
}
@media (max-width: 880px) {
	.lms-contact-hero { grid-template-columns: 1fr; }
	.lms-contact-map { min-height: 320px; }
	.lms-contact-map iframe { min-height: 320px; }
}

/* ============================================================
   TESTIMONIAL CARD — used by the home carousel
   ============================================================ */
.lms-testimonial-card {
	background: #FFFFFF;
	border: 1px solid var(--lms-line);
	border-radius: var(--lms-radius-card);
	padding: 2rem 2.25rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	box-shadow: 0 12px 32px -22px rgba(15, 73, 69, 0.18);
	transition: transform .4s var(--lms-ease), box-shadow .4s var(--lms-ease);
}
.lms-testimonial-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 48px -20px rgba(15, 73, 69, 0.28);
}
.lms-testimonial-card__stars {
	color: var(--lms-accent-warm);
	font-size: 0.92rem;
	letter-spacing: 0.15em;
}
.lms-testimonial-card__quote {
	font-family: var(--lms-display);
	font-style: italic;
	font-size: 1.18rem;
	line-height: 1.55;
	color: var(--lms-ink);
	font-weight: 400;
	margin: 0;
	flex: 1;
}
.lms-testimonial-card__quote p { margin: 0 0 .75rem; }
.lms-testimonial-card__quote p:last-child { margin-bottom: 0; }
.lms-testimonial-card__byline {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding-top: 1rem;
	border-top: 1px solid var(--lms-line);
}
.lms-testimonial-card__name {
	font-size: 0.84rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--lms-primary);
}
.lms-testimonial-card__meta {
	font-size: 0.78rem;
	color: var(--lms-ink-muted);
	letter-spacing: 0.05em;
}
@media (max-width: 600px) {
	.lms-testimonial-card { padding: 1.5rem 1.75rem; }
	.lms-testimonial-card__quote { font-size: 1.05rem; }
}
