/* Base: reset touches, typography, buttons, shared small components (icons, diet labels, socials). */
html {
	overflow-x: clip;
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
body.lmn-site {
	margin: 0;
	background: var(--lmn-bg);
	color: var(--lmn-text);
	font-family: var(--lmn-font-text);
	font-size: var(--lmn-text-size);
	line-height: var(--lmn-lh);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
body.lmn-site.has-mobile-bar { padding-bottom: calc(var(--lmn-mobile-bar-h) + env(safe-area-inset-bottom)); }
@media (min-width: 900px) { body.lmn-site.has-mobile-bar { padding-bottom: 0; } }

.lmn-site h1, .lmn-site h2, .lmn-site h3, .lmn-site h4 { margin: 0 0 0.5em; line-height: 1.15; font-weight: 700; color: inherit; overflow-wrap: anywhere; }
.lmn-site h1, .lmn-site .lmn-display { font-family: var(--lmn-font-display); font-weight: 400; font-size: var(--lmn-h1); line-height: 1.05; letter-spacing: 0.005em; }
.lmn-site h2 { font-family: var(--lmn-font-display); font-weight: 400; font-size: var(--lmn-h2); line-height: 1.08; }
.lmn-site h3 { font-size: var(--lmn-h3); }
.lmn-site p { margin: 0 0 1em; }
.lmn-site p:last-child { margin-bottom: 0; }
:where(.lmn-site) a { color: var(--lmn-link); text-decoration-thickness: 0.08em; text-underline-offset: 0.15em; }
:where(.lmn-site) a:hover { color: var(--lmn-black); }
.lmn-site img, .lmn-site video, .lmn-site svg { max-width: 100%; height: auto; display: block; }
.lmn-site :focus { outline: none; }
.lmn-site :focus-visible { outline: 3px solid var(--lmn-focus); outline-offset: 3px; border-radius: 4px; }
.lmn-site ::selection { background: var(--lmn-yellow); color: var(--lmn-black); }

.lmn-kicker, .lmn-caps {
	font-family: var(--lmn-font-caps);
	font-weight: 600;
	font-size: var(--lmn-caps);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--lmn-coral-deep);
	margin: 0 0 0.75em;
}
.lmn-kicker a { text-decoration: none; }
.lmn-muted { color: var(--lmn-text-muted); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.skip-link.screen-reader-text:focus {
	position: fixed !important; top: 1rem; left: 1rem; z-index: 10000;
	width: auto; height: auto; margin: 0; padding: 0.75rem 1.25rem; clip: auto; clip-path: none; white-space: normal;
	background: var(--lmn-black); color: var(--lmn-yellow); border-radius: var(--lmn-radius-pill); text-decoration: none; font-weight: 700;
}

.lmn-container { width: min(100% - 2 * var(--lmn-gutter), var(--lmn-container)); margin-inline: auto; }
.lmn-main { min-height: 40vh; }
.lmn-prose { padding-block: var(--lmn-section); }
.lmn-prose > * + * { margin-top: 1em; }
.lmn-prose h1 { margin-bottom: 0.4em; }

/* Section backgrounds: full-bleed behind a centred Elementor container. */
.lmn-bg { position: relative; z-index: 0; }
.lmn-bg::before {
	content: ""; position: absolute; inset: 0; left: 50%; width: 100vw; transform: translateX(-50%); z-index: -1; background: var(--lmn-bg-color, transparent);
}
.lmn-bg--cream { --lmn-bg-color: var(--lmn-cream); }
.lmn-bg--cream-deep { --lmn-bg-color: var(--lmn-cream-deep); }
.lmn-bg--yellow { --lmn-bg-color: var(--lmn-yellow); }
.lmn-bg--yellow-soft { --lmn-bg-color: var(--lmn-yellow-soft); }
.lmn-bg--pink { --lmn-bg-color: var(--lmn-pink); }
.lmn-bg--coral { --lmn-bg-color: var(--lmn-coral); color: var(--lmn-white); }
.lmn-bg--coral a, .lmn-bg--coral .lmn-kicker { color: inherit; }
.lmn-bg--peach { --lmn-bg-color: var(--lmn-peach); }
.lmn-bg--lilac { --lmn-bg-color: var(--lmn-lilac); }
.lmn-bg--lilac .lmn-kicker, .lmn-bg--peach .lmn-kicker { color: var(--lmn-purple-deep); }
.lmn-bg--purple { --lmn-bg-color: var(--lmn-purple); color: var(--lmn-white); }
.lmn-bg--purple a, .lmn-bg--purple .lmn-kicker { color: inherit; }
.lmn-bg--purple .lmn-btn--primary { background: var(--lmn-white); color: var(--lmn-purple-deep); box-shadow: none; }
.lmn-bg--purple .lmn-btn--outline { color: var(--lmn-white); }
.lmn-bg--white { --lmn-bg-color: var(--lmn-white); }
.lmn-bg--black { --lmn-bg-color: var(--lmn-black); color: var(--lmn-cream); }
.lmn-bg--black .lmn-kicker { color: var(--lmn-yellow); }
.lmn-bg--black a { color: var(--lmn-yellow); }
.lmn-bg--none { --lmn-bg-color: transparent; }
.lmn-bg { padding-block: var(--lmn-section); }
.lmn-bg--none { padding-block: var(--lmn-section); }

/* Buttons */
.lmn-site .lmn-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
	min-height: 3rem; padding: 0.7em 1.5em; border: 2px solid transparent; border-radius: var(--lmn-radius-pill);
	font-family: var(--lmn-font-text); font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: transform 0.2s var(--lmn-ease), background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
	-webkit-tap-highlight-color: transparent;
}
.lmn-site .lmn-btn:hover { transform: translateY(-2px); }
.lmn-site .lmn-btn:active { transform: translateY(0); }
.lmn-site .lmn-btn .lmn-icon { width: 1.25em; height: 1.25em; flex: none; }
.lmn-site .lmn-btn--large { font-size: 1.125rem; min-height: 3.5rem; padding-inline: 2em; }
.lmn-site .lmn-btn--primary { background: var(--lmn-coral-deep); color: var(--lmn-white); box-shadow: 0 6px 18px rgba(194, 55, 61, 0.25); }
.lmn-site .lmn-btn--primary:hover { background: var(--lmn-black); color: var(--lmn-white); }
.lmn-site .lmn-btn--secondary { background: var(--lmn-yellow); color: var(--lmn-black); }
.lmn-site .lmn-btn--secondary:hover { background: var(--lmn-black); color: var(--lmn-yellow); }
.lmn-site .lmn-btn--dark { background: var(--lmn-black); color: var(--lmn-white); }
.lmn-site .lmn-btn--dark:hover { background: var(--lmn-coral-deep); color: var(--lmn-white); }
.lmn-site .lmn-btn--outline { background: transparent; color: var(--lmn-black); border-color: currentColor; }
.lmn-site .lmn-btn--outline:hover { background: var(--lmn-black); color: var(--lmn-white); border-color: var(--lmn-black); }
.lmn-site .lmn-btn--light { background: var(--lmn-white); color: var(--lmn-black); }
.lmn-site .lmn-btn--light:hover { background: var(--lmn-black); color: var(--lmn-white); }
.lmn-site .lmn-btn--link { background: none; color: var(--lmn-coral-deep); padding-inline: 0.25em; min-height: 0; text-decoration: underline; text-underline-offset: 0.2em; }
.lmn-site .lmn-btn--link:hover { color: var(--lmn-black); transform: none; }
.lmn-bg--coral .lmn-btn--primary, .lmn-cta--coral .lmn-btn--primary { background: var(--lmn-white); color: var(--lmn-coral-deep); box-shadow: none; }
.lmn-bg--coral .lmn-btn--primary:hover { background: var(--lmn-black); color: var(--lmn-white); }
.lmn-bg--coral .lmn-btn--outline { color: var(--lmn-white); }
.lmn-bg--coral .lmn-btn--outline:hover { background: var(--lmn-white); color: var(--lmn-coral-deep); border-color: var(--lmn-white); }
.lmn-bg--black .lmn-btn--outline { color: var(--lmn-cream); }
.lmn-bg--black .lmn-btn--outline:hover { background: var(--lmn-yellow); color: var(--lmn-black); border-color: var(--lmn-yellow); }
.lmn-actions { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: center; }

/* Icons */
.lmn-icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: -0.25em; display: inline-block; }

/* Inline link with arrow */
.lmn-arrow-link { display: inline-flex; align-items: center; gap: 0.35em; font-weight: 700; text-decoration: none; }
.lmn-arrow-link .lmn-icon { transition: transform 0.2s var(--lmn-ease); }
.lmn-arrow-link:hover .lmn-icon { transform: translateX(4px); }

/* Dietary labels */
.lmn-diet { list-style: none; margin: 0.4rem 0 0; padding: 0; display: flex; gap: 0.35rem; flex-wrap: wrap; }
.lmn-diet__item {
	display: inline-flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem;
	flex: none; border-radius: 50%; background: var(--lmn-yellow); color: var(--lmn-black);
}
.lmn-diet__item .lmn-icon { width: 1.05rem; height: 1.05rem; }

/* Socials */
.lmn-socials { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.5rem; flex-wrap: wrap; }
.lmn-socials__link {
	display: inline-flex; align-items: center; gap: 0.5em; padding: 0.5em 0.9em; border-radius: var(--lmn-radius-pill);
	background: var(--lmn-yellow); color: var(--lmn-black); text-decoration: none; font-weight: 700; font-size: 0.95rem;
}
.lmn-site .lmn-socials__link { color: var(--lmn-black); }
.lmn-site .lmn-socials__link:hover { background: var(--lmn-black); color: var(--lmn-yellow); }
.lmn-socials__link .lmn-icon { width: 1.3em; height: 1.3em; }

/* Wave edge helper: use as a pseudo-element background on sections that need it. */
.lmn-wave { display: block; width: 100%; height: clamp(24px, 5vw, 64px); }
.lmn-wave svg { width: 100%; height: 100%; display: block; }

/* Media */
.lmn-media { border-radius: var(--lmn-radius); overflow: hidden; background: var(--lmn-cream-deep); }
.lmn-media img { width: 100%; height: 100%; object-fit: cover; }

/* Placeholder when no image chosen yet */
.lmn-placeholder {
	display: grid; place-items: center; aspect-ratio: 4 / 3; border-radius: var(--lmn-radius);
	background: repeating-linear-gradient(45deg, var(--lmn-cream-deep) 0 12px, var(--lmn-cream) 12px 24px); color: var(--lmn-grey); font-size: 0.9rem; text-align: center; padding: 1rem;
}
.lmn-placeholder .lmn-icon { width: 2rem; height: 2rem; margin-bottom: 0.5rem; }
