/* MycoRova — campaigns, subscribe forms, toasts.
   Uses the theme's tokens when present, with fallbacks for other themes. */

.la-mkt {
	--m-bg: var(--c-forest, #17331f);
	--m-fg: #e9ece5;
	--m-head: var(--c-ivory, #f7f5ef);
	--m-muted: #aebbb1;
	--m-accent: var(--c-gold, #4e8b3a);
	--m-accent-fg: var(--c-forest, #17331f);
	--m-line: rgb(247 245 239 / 0.16);
	--m-field: rgb(247 245 239 / 0.08);
	--m-serif: var(--font-serif, Georgia, serif);
	--m-sans: var(--font-sans, system-ui, sans-serif);
	--m-ease: var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1));
	font-family: var(--m-sans);
	color: var(--m-fg);
	z-index: 1000;
}
.la-mkt--ivory {
	--m-bg: var(--c-ivory, #f7f5ef);
	--m-fg: var(--c-ink, #1b231e);
	--m-head: var(--c-forest, #17331f);
	--m-muted: #4f5a53;
	--m-accent: var(--c-forest, #17331f);
	--m-accent-fg: var(--c-ivory, #f7f5ef);
	--m-line: rgb(17 21 18 / 0.12);
	--m-field: #fff;
}
.la-mkt--gold {
	--m-bg: var(--c-gold, #4e8b3a);
	--m-fg: var(--c-forest, #17331f);
	--m-head: var(--c-forest, #17331f);
	--m-muted: rgb(23 51 31 / 0.75);
	--m-accent: var(--c-forest, #17331f);
	--m-accent-fg: var(--c-ivory, #f7f5ef);
	--m-line: rgb(23 51 31 / 0.2);
	--m-field: rgb(255 255 255 / 0.55);
}
.la-mkt[hidden] { display: none !important; }
.la-mkt *, .la-mkt *::before, .la-mkt *::after { box-sizing: border-box; }

.la-mkt__panel {
	position: relative;
	background: var(--m-bg);
	color: var(--m-fg);
}
.la-mkt__close {
	position: absolute; inset-block-start: 10px; inset-inline-end: 10px; z-index: 2;
	display: grid; place-items: center;
	width: 36px; height: 36px; padding: 0;
	border: 0; border-radius: 50%;
	background: rgb(0 0 0 / 0.18); color: inherit; cursor: pointer;
	transition: background-color 0.16s;
}
.la-mkt--ivory .la-mkt__close, .la-mkt--gold .la-mkt__close { background: rgb(23 51 31 / 0.08); }
.la-mkt__close:hover { background: rgb(0 0 0 / 0.3); }
.la-mkt__close:focus-visible, .la-mkt__btn:focus-visible, .la-mkt__copy:focus-visible { outline: 2px solid var(--m-accent); outline-offset: 2px; }

.la-mkt__eyebrow { margin: 0 0 0.6em; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--m-accent); }
.la-mkt--gold .la-mkt__eyebrow, .la-mkt--ivory .la-mkt__eyebrow { color: var(--c-gold-ink, #6e3b17); }
.la-mkt__title { margin: 0; font-family: var(--m-serif); font-weight: 400; color: var(--m-head); line-height: 1.12; font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.2rem); }
.la-mkt__text { margin-block-start: 0.75em; color: var(--m-muted); font-size: 0.95rem; line-height: 1.6; }
.la-mkt__text p { margin: 0 0 0.6em; }
.la-mkt__text p:last-child { margin: 0; }
.la-mkt__text strong { color: var(--m-head); }
.la-mkt__text a { color: inherit; }
.la-mkt__action { margin-block-start: 1.25rem; }
.la-mkt__fine { margin: 0.9rem 0 0; font-size: 0.75rem; color: var(--m-muted); opacity: 0.85; }

.la-mkt__btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; padding: 0.7em 1.5em;
	border: 0; border-radius: 999px;
	background: var(--m-accent); color: var(--m-accent-fg);
	font: 600 0.95rem/1.2 var(--m-sans); text-decoration: none; cursor: pointer;
	transition: transform 0.16s, filter 0.16s;
}
.la-mkt__btn:hover { filter: brightness(1.08); color: var(--m-accent-fg); }
.la-mkt__btn:active { transform: translateY(1px); }
.la-mkt__btn:disabled { opacity: 0.7; cursor: progress; }

.la-mkt__form { display: grid; gap: 0.6rem; }
.la-mkt__form input[type="email"], .la-mkt__form input[type="text"] {
	width: 100%; min-height: 48px; padding: 0.7em 1em;
	border: 1px solid var(--m-line); border-radius: 999px;
	background: var(--m-field); color: var(--m-fg);
	font: 1rem/1.2 var(--m-sans);
}
.la-mkt__form input::placeholder { color: var(--m-muted); opacity: 0.85; }
.la-mkt__form input:focus-visible { outline: none; border-color: var(--m-accent); box-shadow: 0 0 0 3px rgb(78 139 58 / 0.35); }
.la-mkt__msg { margin: 0; min-height: 1em; font-size: 0.85rem; }
.la-mkt__form.is-error .la-mkt__msg { color: #f2a18f; }
.la-mkt--ivory .la-mkt__form.is-error .la-mkt__msg, .la-mkt--gold .la-mkt__form.is-error .la-mkt__msg { color: #a33a2a; }

.la-mkt__code {
	display: flex; align-items: center; gap: 0.5rem;
	margin-block-start: 1rem; padding: 0.4rem 0.4rem 0.4rem 1rem;
	border: 2px dashed var(--m-accent); border-radius: 12px;
}
.la-mkt__code[hidden] { display: none; }
.la-mkt__code code { flex: 1; font: 700 1.25rem/1.2 ui-monospace, Consolas, monospace; letter-spacing: 0.12em; color: var(--m-head); background: none; }
.la-mkt__copy { min-height: 40px; padding: 0 1em; border: 0; border-radius: 8px; background: var(--m-accent); color: var(--m-accent-fg); font: 600 0.85rem var(--m-sans); cursor: pointer; }
.la-mkt__code + .la-mkt__btn { margin-block-start: 0.75rem; }

.la-mkt__countdown { margin: 1rem 0 0; }
.la-mkt__countdown [data-cd] { display: inline-flex; gap: 0.4rem; }
.la-mkt__countdown [data-cd] span { display: inline-flex; align-items: baseline; gap: 2px; padding: 0.3em 0.55em; border-radius: 6px; background: var(--m-field); font-size: 0.75rem; color: var(--m-muted); }
.la-mkt__countdown b { font: 600 1.05rem var(--m-sans); color: var(--m-head); font-variant-numeric: tabular-nums; }

.la-mkt__success { outline: none; }
.la-mkt__success[hidden] { display: none; }

/* ---- Popup ---------------------------------------------------------------- */
.la-mkt--popup { position: fixed; inset: 0; z-index: 1003; display: grid; place-items: center; padding: 16px; }
.la-mkt__backdrop { position: absolute; inset: 0; background: rgb(8 20 14 / 0.62); backdrop-filter: blur(3px); opacity: 0; transition: opacity 0.3s; }
.la-mkt--popup .la-mkt__panel {
	display: grid; width: min(460px, 100%); max-height: calc(100dvh - 32px); overflow: auto;
	border-radius: 14px; box-shadow: 0 30px 80px -20px rgb(0 0 0 / 0.55);
	opacity: 0; transform: translateY(18px) scale(0.97);
	transition: opacity 0.32s var(--m-ease), transform 0.42s var(--m-ease);
}
.la-mkt--popup.has-image .la-mkt__panel { width: min(820px, 100%); grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.la-mkt--popup .la-mkt__body { padding: clamp(28px, 4vw, 44px); }
.la-mkt__media { position: relative; min-height: 220px; }
.la-mkt__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.la-mkt--popup.is-open .la-mkt__backdrop { opacity: 1; }
.la-mkt--popup.is-open .la-mkt__panel { opacity: 1; transform: none; }
@media (max-width: 639px) {
	.la-mkt--popup { align-items: end; padding: 0; }
	.la-mkt--popup .la-mkt__panel, .la-mkt--popup.has-image .la-mkt__panel { width: 100%; grid-template-columns: 1fr; border-radius: 16px 16px 0 0; transform: translateY(40px); }
	.la-mkt--popup .la-mkt__media { min-height: 150px; }
}
html.la-mkt-lock { overflow: hidden; }

/* ---- Slide-in ------------------------------------------------------------- */
.la-mkt--slidein { position: fixed; inset-block-end: 20px; inset-inline-end: 20px; width: min(380px, calc(100vw - 32px)); }
.la-mkt--slidein.la-mkt--left { inset-inline: 20px auto; }
/* A chat launcher (AI assistant plugin) owns the bottom-right corner: sit above it. */
.has-la-chat .la-mkt--slidein:not(.la-mkt--left) { inset-block-end: 84px; }
.la-mkt--slidein .la-mkt__panel {
	border-radius: 14px; box-shadow: 0 20px 50px -15px rgb(0 0 0 / 0.45); overflow: hidden;
	opacity: 0; transform: translateY(24px);
	transition: opacity 0.3s var(--m-ease), transform 0.45s var(--m-ease);
}
.la-mkt--slidein .la-mkt__media { min-height: 140px; }
.la-mkt--slidein .la-mkt__body { padding: 24px 24px 22px; }
.la-mkt--slidein .la-mkt__title { font-size: 1.45rem; padding-inline-end: 28px; }
.la-mkt--slidein.is-open .la-mkt__panel { opacity: 1; transform: none; }
@media (max-width: 639px) { .la-mkt--slidein, .la-mkt--slidein.la-mkt--left { inset-inline: 16px; inset-block-end: 16px; width: auto; } }

/* ---- Bars ----------------------------------------------------------------- */
.la-mkt--bar-top, .la-mkt--bar-bottom { position: fixed; inset-inline: 0; }
.la-mkt--bar-top { inset-block-start: 0; z-index: 1001; }
.la-mkt--bar-bottom { inset-block-end: 0; }
.la-mkt--bar-top .la-mkt__panel, .la-mkt--bar-bottom .la-mkt__panel { transition: transform 0.4s var(--m-ease); }
.la-mkt--bar-top .la-mkt__panel { transform: translateY(-100%); }
.la-mkt--bar-bottom .la-mkt__panel { transform: translateY(100%); box-shadow: 0 -10px 30px -12px rgb(0 0 0 / 0.35); }
.la-mkt--bar-top.is-open .la-mkt__panel, .la-mkt--bar-bottom.is-open .la-mkt__panel { transform: none; }
.la-mkt--bar-top .la-mkt__body, .la-mkt--bar-bottom .la-mkt__body { padding: 10px 56px; }
.la-mkt--bar-top .la-mkt__main, .la-mkt--bar-bottom .la-mkt__main { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.35rem 1rem; text-align: center; }
.la-mkt--bar-top .la-mkt__title, .la-mkt--bar-bottom .la-mkt__title { font: 600 0.9rem/1.4 var(--m-sans); color: var(--m-head); }
.la-mkt--bar-top .la-mkt__text, .la-mkt--bar-bottom .la-mkt__text { margin: 0; font-size: 0.85rem; }
.la-mkt--bar-top .la-mkt__action, .la-mkt--bar-bottom .la-mkt__action { margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.la-mkt--bar-top .la-mkt__btn, .la-mkt--bar-bottom .la-mkt__btn { min-height: 34px; padding: 0.35em 1.1em; font-size: 0.8125rem; }
.la-mkt--bar-top .la-mkt__code, .la-mkt--bar-bottom .la-mkt__code { margin: 0; padding: 2px 2px 2px 10px; border-width: 1.5px; border-radius: 8px; }
.la-mkt--bar-top .la-mkt__code code, .la-mkt--bar-bottom .la-mkt__code code { font-size: 0.85rem; }
.la-mkt--bar-top .la-mkt__copy, .la-mkt--bar-bottom .la-mkt__copy { min-height: 28px; font-size: 0.75rem; }
.la-mkt--bar-top .la-mkt__countdown, .la-mkt--bar-bottom .la-mkt__countdown { margin: 0; }
.la-mkt--bar-top .la-mkt__form, .la-mkt--bar-bottom .la-mkt__form { display: flex; gap: 0.4rem; }
.la-mkt--bar-top .la-mkt__form input, .la-mkt--bar-bottom .la-mkt__form input { min-height: 34px; padding-block: 0.3em; width: 220px; font-size: 0.875rem; }
.la-mkt--bar-top .la-mkt__msg, .la-mkt--bar-bottom .la-mkt__msg { position: absolute; inset-block-end: -1.3em; font-size: 0.75rem; }
.la-mkt--bar-top .la-mkt__close, .la-mkt--bar-bottom .la-mkt__close { inset-block-start: 50%; margin-block-start: -16px; width: 32px; height: 32px; background: transparent; }
.la-mkt--bar-top .la-mkt__success, .la-mkt--bar-bottom .la-mkt__success { padding: 10px 56px; text-align: center; }
.la-mkt--bar-top .la-mkt__success .la-mkt__title, .la-mkt--bar-bottom .la-mkt__success .la-mkt__title { display: inline; }
.la-mkt--bar-top .la-mkt__success .la-mkt__text, .la-mkt--bar-bottom .la-mkt__success .la-mkt__text { display: inline; margin-inline-start: 0.5em; }
/* Push the sticky site header below a top bar. */
html.has-la-bar body { padding-block-start: var(--la-bar-h, 0px); }
html.has-la-bar .site-header { inset-block-start: var(--la-bar-h, 0px); }
@media (max-width: 639px) {
	.la-mkt--bar-top .la-mkt__body, .la-mkt--bar-bottom .la-mkt__body { padding: 10px 44px 10px 16px; }
	.la-mkt--bar-top .la-mkt__main, .la-mkt--bar-bottom .la-mkt__main { justify-content: flex-start; text-align: start; }
	.la-mkt--bar-top .la-mkt__form input, .la-mkt--bar-bottom .la-mkt__form input { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.la-mkt .la-mkt__panel, .la-mkt__backdrop { transition: none !important; }
}

/* ---- Inline subscribe form (shortcode) ------------------------------------ */
.la-subscribe { display: flex; flex-wrap: wrap; gap: 0.5rem; max-width: 520px; }
.la-subscribe input[type="email"], .la-subscribe input[type="text"] { flex: 1 1 220px; min-height: 48px; padding: 0.7em 1em; border: 1px solid var(--line-strong, #ccc); border-radius: 999px; font: inherit; background: var(--surface-raised, #fff); color: inherit; }
.la-subscribe button { min-height: 48px; padding: 0 1.5em; border: 0; border-radius: 999px; background: var(--c-forest, #17331f); color: var(--c-ivory, #fff); font-weight: 600; cursor: pointer; }
.la-subscribe__msg { flex-basis: 100%; margin: 0; min-height: 1em; font-size: 0.875rem; }
.la-subscribe.is-error .la-subscribe__msg { color: var(--danger, #a33a2a); }
.la-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- Toast ---------------------------------------------------------------- */
.la-toast {
	position: fixed; inset-block-end: 20px; inset-inline-start: 50%; z-index: 1002;
	display: flex; align-items: center; gap: 0.75rem;
	width: max-content; max-width: calc(100vw - 32px);
	padding: 0.85rem 0.75rem 0.85rem 1.25rem;
	border-radius: 12px; background: var(--c-forest, #17331f); color: #e9ece5;
	box-shadow: 0 18px 40px -12px rgb(0 0 0 / 0.45);
	font-family: var(--font-sans, system-ui, sans-serif); font-size: 0.9rem;
	transform: translate(-50%, 30px); opacity: 0;
	transition: transform 0.4s var(--ease-out, ease), opacity 0.3s;
}
.la-toast.is-open { transform: translate(-50%, 0); opacity: 1; }
.la-toast p { margin: 0; }
.la-toast::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--c-gold, #4e8b3a); }
.la-toast__close { flex: none; width: 32px; height: 32px; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 1.3rem; cursor: pointer; }
.la-toast__close:hover { background: rgb(255 255 255 / 0.1); }

/* ---- Free-shipping progress (cart, checkout, product) ---------------------- */
.la-ship-progress { margin: 0 0 1.25rem; padding: 0.9rem 1.1rem; border: 1px solid var(--line, #e2ddd0); border-radius: var(--r-md, 8px); background: var(--surface-raised, #fff); font-family: var(--font-sans, inherit); }
.la-ship-progress__msg { display: flex; align-items: center; gap: 0.55em; margin: 0 0 0.6rem; font-size: 0.9rem; color: var(--heading, #17331f); font-weight: 500; }
.la-ship-progress__msg svg { flex: none; color: var(--c-gold-ink, #6e3b17); }
.la-ship-progress__bar { height: 6px; border-radius: 3px; background: var(--surface-sunken, #eeeadf); overflow: hidden; }
.la-ship-progress__bar span { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, var(--c-gold, #4e8b3a), var(--c-moss, #2d6a34)); transition: width 0.6s var(--ease-out, ease); }
.la-ship-progress.is-done { border-color: rgb(47 122 70 / 0.35); background: rgb(47 122 70 / 0.06); }
.la-ship-progress.is-done .la-ship-progress__msg svg { color: var(--ok, #2f7a46); }
.la-ship-progress-wrap { max-width: var(--w-wide, 1240px); margin-inline: auto; }
