/* =========================================================================
   MonkVita v2 — one stylesheet, vanilla CSS, no build step, no remote assets.
   Sections: fonts / tokens / resets / shell + bands / type / buttons /
             header + footer / home / shop / product / commerce / responsive
   ========================================================================= */

/* ---------- 1. Self-hosted fonts (SIL Open Font License 1.1) ---------- */
@font-face {
	font-family: 'Lora v2';
	font-style: normal;
	font-weight: 500 600;
	font-display: swap;
	src: url('../fonts/lora-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Lora v2';
	font-style: normal;
	font-weight: 500 600;
	font-display: swap;
	src: url('../fonts/lora-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Inter v2';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Inter v2';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- 2. Tokens ---------- */
body.mv2 {
	--mv-ivory: #FBF7F0;
	--mv-ivory-deep: #F5EEE2;
	--mv-sage: #E7EFE6;
	--mv-forest: #0F3D2E;
	--mv-forest-soft: #14523D;
	--mv-amber: #D98E2B;          /* decorative only: rules, dots, hover accents */
	--mv-amber-ink: #8A5510;      /* amber for SMALL TEXT on ivory/sage/white: >= 5.2:1 */
	--mv-amber-deep: #9A5B12;     /* badge background carrying white text: 5.26:1 */
	--mv-amber-soft: #F3E3CC;
	--mv-ink: #1B1B1B;
	--mv-muted: #5B6660;
	--mv-line: rgba(15, 61, 46, .14);
	--mv-line-strong: rgba(15, 61, 46, .26);
	--mv-radius: 12px;
	--mv-radius-lg: 18px;
	--mv-shadow: 0 1px 2px rgba(15, 61, 46, .05), 0 8px 24px rgba(15, 61, 46, .06);
	--mv-serif: 'Lora v2', Georgia, 'Times New Roman', serif;
	--mv-sans: 'Inter v2', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--mv-shell: 1180px;
}

/* ---------- 3. Base ---------- */
body.mv2 {
	background: var(--mv-ivory);
	color: var(--mv-ink);
	font-family: var(--mv-sans);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
body.mv2 *,
body.mv2 *::before,
body.mv2 *::after { box-sizing: border-box; }

body.mv2 img,
body.mv2 svg { max-width: 100%; height: auto; }

body.mv2 #content.site-content { padding: 0; margin: 0; background: var(--mv-ivory); }
/* Only the templates this theme lays out get the container neutralised. Astra's own
   archive markup (the blog) keeps its container, because its .ast-row uses negative
   margins that need the container padding to absorb them (1440 overflow, 2026-09-12). */
body.mv2-home #content.site-content > .ast-container,
body.mv2-shop #content.site-content > .ast-container,
body.mv2-pdp #content.site-content > .ast-container,
body.mv2-page #content.site-content > .ast-container,
body.mv2-commerce #content.site-content > .ast-container {
	max-width: 100%;
	width: 100%;
	padding: 0;
	margin: 0;
	display: block;
}
body.mv2 .mv-main { width: 100%; }
body.mv2 .ast-separate-container .ast-article-single,
body.mv2 .ast-separate-container #primary { padding: 0; margin: 0; background: transparent; box-shadow: none; }

body.mv2 a { color: var(--mv-forest); text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.mv2 a:hover { color: var(--mv-amber); }
body.mv2 :focus-visible { outline: 2px solid var(--mv-amber); outline-offset: 2px; border-radius: 4px; }

/* ---------- 4. Shell and bands ---------- */
.mv-shell {
	width: 100%;
	max-width: var(--mv-shell);
	margin-inline: auto;
	padding-inline: 24px;
}
.mv-shell--narrow { max-width: 800px; }

.mv-band { width: 100%; padding-block: clamp(48px, 6vw, 88px); }
.mv-band--ivory { background: var(--mv-ivory); }
.mv-band--sage { background: var(--mv-sage); }
.mv-band--forest { background: var(--mv-forest); color: #F4F8F2; }
.mv-band--forest a,
body.mv2 .mv-band--forest h2 { color: #FFFFFF; }
.mv-band--forest .mv-eyebrow { color: #E9A344; } /* 5.4:1 on the forest band */

/* ---------- 5. Type ---------- */
body.mv2 h1, body.mv2 h2, body.mv2 h3, body.mv2 .mv-serif {
	font-family: var(--mv-serif);
	font-weight: 600;
	color: var(--mv-forest);
	letter-spacing: -.012em;
	line-height: 1.12;
	margin: 0 0 .5em;
}
body.mv2 h1 { font-size: clamp(2.05rem, 1.35rem + 2.6vw, 3.4rem); }
body.mv2 h2 { font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.35rem); }
body.mv2 h3 { font-size: clamp(1.12rem, 1rem + .4vw, 1.32rem); line-height: 1.25; }
body.mv2 p { margin: 0 0 1.05em; }

.mv-eyebrow {
	font-family: var(--mv-sans);
	font-size: .74rem;
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--mv-amber-ink);
	margin: 0 0 .8em;
}
.mv-lede { font-size: clamp(1.03rem, .98rem + .35vw, 1.22rem); color: var(--mv-muted); max-width: 46ch; }
.mv-note { font-size: .84rem; color: var(--mv-muted); margin-top: 14px; }
.mv-centered { text-align: center; margin-top: 34px; margin-bottom: 0; }

.mv-head { max-width: 62ch; margin-bottom: clamp(28px, 3vw, 44px); }
.mv-head__sub { color: var(--mv-muted); margin: 0; }

/* ---------- 6. Buttons and links ---------- */
/* Specificity note: `body.mv2 a` is (0,2,1); a bare `.mv-btn--primary` is (0,1,0) and
   loses, which on 2026-09-12 rendered dark-green labels on the dark-green pill, i.e.
   invisible buttons. Every button rule below is therefore prefixed with body.mv2. */
body.mv2 .mv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 22px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--mv-sans);
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
body.mv2 .mv-btn--primary { background: var(--mv-forest); color: #FFFFFF; }
body.mv2 .mv-btn--primary:hover { background: var(--mv-forest-soft); color: #FFFFFF; }
body.mv2 .mv-btn--outline { background: transparent; color: var(--mv-forest); border-color: var(--mv-line-strong); }
body.mv2 .mv-btn--outline:hover { background: rgba(15, 61, 46, .06); color: var(--mv-forest); }
body.mv2 .mv-btn--ghost { background: var(--mv-amber-soft); color: #7A4C08; }
body.mv2 .mv-btn--ghost:hover { background: #EBD5B4; color: #7A4C08; }

body.mv2 .mv-link { font-weight: 600; font-size: .95rem; text-decoration: none; border-bottom: 1px solid var(--mv-line-strong); }
body.mv2 .mv-link:hover { border-color: var(--mv-amber); }
body.mv2 .mv-link--arrow::after { content: ' \2192'; }

/* ---------- 7. Astra header ---------- */
body.mv2 .ast-above-header-wrap,
body.mv2 .main-header-bar,
body.mv2 .ast-primary-header-bar,
body.mv2 .site-header { background: var(--mv-ivory); }
body.mv2 .main-header-bar { border-bottom: 1px solid var(--mv-line); }
body.mv2 .main-header-menu > .menu-item > .menu-link,
body.mv2 .ast-header-break-point .main-header-menu .menu-link {
	font-family: var(--mv-sans);
	font-weight: 500;
	font-size: .95rem;
	color: var(--mv-forest);
	letter-spacing: .01em;
}
body.mv2 .main-header-menu > .menu-item > .menu-link:hover { color: var(--mv-amber-ink); }
/* The Site Title option is blank on this site, so Astra's header builder prints an empty
   .site-title link: focusable, with no accessible name (axe link-name, 2026-09-12).
   display:none takes it out of the tab order and the accessibility tree. The logo link
   carries the brand and now carries an aria-label (inc/setup.php). */
body.mv2 .ast-site-title-wrap:empty,
body.mv2 .ast-site-title-wrap { display: none; }
/* Astra names Google font families in its inline CSS; we self-host, so pin ours. */
body.mv2 button,
body.mv2 input,
body.mv2 select,
body.mv2 textarea,
body.mv2 .ast-button,
body.mv2 .ast-custom-button { font-family: var(--mv-sans); }
body.mv2 .ast-site-header-cart .ast-cart-menu-wrap { color: var(--mv-forest); }

/* Astra runs a TRANSPARENT header on this site: the header is positioned over the
   first section, and Astra's own container padding is what normally keeps content
   clear of it. This theme removes that container padding, so each template that
   starts at the top of the page buys the clearance back here. */
body.ast-theme-transparent-header.mv2 .mv-hero,
body.ast-theme-transparent-header.mv2 .mv-pagehero { padding-top: clamp(112px, 8vw, 152px); }
body.ast-theme-transparent-header.mv2-page .mv-about-content { padding-top: clamp(112px, 8vw, 152px); }
body.ast-theme-transparent-header.mv2-pdp .mv-pdp { padding-top: clamp(104px, 7vw, 140px); }
body.ast-theme-transparent-header.mv2-commerce .mv-main,
body.ast-theme-transparent-header.mv2-commerce #primary { padding-top: clamp(104px, 7vw, 140px); }

/* The Astra site-title link is empty on this site (the Site Title option is blank), which
   leaves a focusable link with no accessible name. It is removed in inc/setup.php. */

/* ---------- 8. Home: hero ---------- */
.mv-hero {
	background:
		linear-gradient(rgba(251, 247, 240, .83), rgba(251, 247, 240, .94)),
		url('../img/botanical-shadow.webp') center / cover no-repeat,
		var(--mv-ivory);
	padding-block: clamp(40px, 5vw, 76px) clamp(40px, 5vw, 72px);
}
.mv-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
}
body.mv2 .mv-hero__copy h1 { margin-bottom: .34em; max-width: 15ch; }
.mv-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.mv-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	list-style: none;
	margin: 28px 0 0;
	padding: 18px 0 0;
	border-top: 1px solid var(--mv-line);
	font-size: .88rem;
	color: var(--mv-muted);
}
.mv-strip li { display: flex; align-items: center; gap: 8px; }
.mv-strip li::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: var(--mv-amber);
	flex: none;
}
.mv-hero__media { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 14px; min-width: 0; }
.mv-hero__shot { margin: 0; border-radius: var(--mv-radius-lg); overflow: hidden; background: #FFFFFF; box-shadow: var(--mv-shadow); }
.mv-hero__shot img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; }
.mv-hero__shot--drops,
.mv-hero__shot--jar { width: 100%; min-width: 0; }

/* ---------- 9. Home: grids, cards, tiles ---------- */
.mv-grid { display: grid; gap: clamp(16px, 2vw, 26px); }
.mv-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); }
.mv-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(268px, 100%), 1fr)); }
.mv-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(232px, 100%), 1fr)); }

.mv-card {
	display: flex;
	flex-direction: column;
	background: #FFFFFF;
	border: 1px solid var(--mv-line);
	border-radius: var(--mv-radius-lg);
	overflow: hidden;
	list-style: none;
	transition: box-shadow .18s ease, transform .18s ease;
}
.mv-card:hover { box-shadow: var(--mv-shadow); transform: translateY(-2px); }
.mv-card__media { position: relative; display: block; background: var(--mv-ivory); line-height: 0; }
.mv-card__media img { width: 100%; height: auto; display: block; aspect-ratio: 1 / 1; object-fit: contain; }
.mv-tag {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1.6;
}
.mv-tag--sale { background: var(--mv-amber-deep); color: #FFFFFF; }
.mv-tag--out { background: #FFFFFF; color: var(--mv-muted); border: 1px solid var(--mv-line-strong); }
.mv-card__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 20px 20px 22px; }
body.mv2 .mv-card__name { font-size: 1.16rem; margin: 0 0 6px; }
body.mv2 .mv-card__name a { text-decoration: none; color: var(--mv-forest); }
.mv-card__format { font-size: .8rem; color: var(--mv-muted); margin: 0 0 10px; }
.mv-card__best { font-size: .95rem; color: var(--mv-ink); margin: 0 0 14px; }
body.mv2 .mv-card__price { font-family: var(--mv-serif); font-size: 1.28rem; font-weight: 600; color: var(--mv-forest); margin: 0 0 4px; }
.mv-card__price del { color: var(--mv-muted); font-size: .82em; font-weight: 400; margin-right: 6px; }
.mv-card__price ins { text-decoration: none; }
.mv-card__stock { font-size: .82rem; color: var(--mv-muted); margin: 0 0 16px; }
.mv-card.is-out .mv-card__stock { color: #9A5B22; }
.mv-card__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: auto; }

.mv-tile {
	background: #FFFFFF;
	border: 1px solid var(--mv-line);
	border-radius: var(--mv-radius);
	padding: 22px 20px;
}
body.mv2 .mv-tile h3 { margin-bottom: .45em; }
.mv-tile p { font-size: .95rem; color: var(--mv-muted); margin: 0; }
.mv-tile__dose {
	margin-top: 14px !important;
	padding-top: 12px;
	border-top: 1px solid var(--mv-line);
	font-size: .82rem !important;
	font-weight: 600;
	color: var(--mv-forest) !important;
}

/* ---------- 10. Home: story ---------- */
.mv-story__grid {
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}
.mv-story {
	background:
		linear-gradient(rgba(231, 239, 230, .91), rgba(231, 239, 230, .91)),
		url('../img/sage-contours.webp') center / cover no-repeat,
		var(--mv-sage);
}
.mv-story__art { display: flex; justify-content: center; }
.mv-story__art img { width: min(300px, 100%); height: auto; }
.mv-story__copy p { color: var(--mv-ink); max-width: 62ch; }

/* ---------- 11. Home: compare table ---------- */
.mv-table-scroll { width: 100%; overflow-x: auto; border: 1px solid var(--mv-line); border-radius: var(--mv-radius); background: #FFFFFF; }
.mv-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .92rem; }
.mv-table th,
.mv-table td { padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--mv-line); }
.mv-table thead th {
	font-family: var(--mv-sans);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--mv-muted);
	background: var(--mv-ivory);
	white-space: nowrap;
}
.mv-table tbody th { font-family: var(--mv-sans); font-size: .88rem; font-weight: 600; color: var(--mv-ink); width: 210px; }
.mv-table .is-ours { background: rgba(217, 142, 43, .07); }
.mv-table thead th.is-ours { color: var(--mv-forest); background: rgba(217, 142, 43, .13); }
.mv-table tbody tr:last-child th,
.mv-table tbody tr:last-child td { border-bottom: 0; }

/* ---------- 12. Home: formats ---------- */
.mv-format { background: #FFFFFF; border: 1px solid var(--mv-line); border-radius: var(--mv-radius-lg); padding: 22px; }
.mv-format__media { border-radius: var(--mv-radius); overflow: hidden; background: var(--mv-ivory); margin-bottom: 20px; }
.mv-format__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: contain; }
body.mv2 .mv-format h3 { margin-bottom: .7em; }
.mv-format__links { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px; }

.mv-deflist { margin: 0; }
.mv-deflist__row { display: grid; grid-template-columns: minmax(0, 150px) minmax(0, 1fr); gap: 8px 18px; padding: 11px 0; border-top: 1px solid var(--mv-line); }
.mv-deflist__row:first-child { border-top: 0; padding-top: 0; }
.mv-deflist dt { font-size: .8rem; font-weight: 600; letter-spacing: .02em; color: var(--mv-muted); margin: 0; }
.mv-deflist dd { margin: 0; font-size: .95rem; color: var(--mv-ink); }
.mv-deflist--grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 0 40px; }

/* ---------- 13. Home: lifestyle band ---------- */
.mv-moments {
	position: relative;
	width: 100%;
	background: var(--mv-forest);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
}
.mv-moments__media { width: 100%; line-height: 0; height: clamp(340px, 33vw, 470px); overflow: hidden; background: #102F25; }
body.mv2 .mv-moments__media img { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; }
.mv-moments__panel {
	background: var(--mv-forest);
	color: #F4F8F2;
	display: flex;
	align-items: center;
	padding-block: clamp(28px, 3.5vw, 52px);
}
.mv-moments__panel .mv-shell { padding-inline: clamp(22px, 3vw, 48px); max-width: 560px; margin-inline: 0; }
body.mv2 .mv-moments__panel h2 { color: #FFFFFF; max-width: 22ch; }
.mv-moments__panel p { color: rgba(244, 248, 242, .82); max-width: 58ch; }
body.mv2 .mv-moments__panel .mv-btn--primary { background: var(--mv-amber); color: #21160A; margin-top: 8px; }
body.mv2 .mv-moments__panel .mv-btn--primary:hover { background: #E9A344; color: #21160A; }
.mv-moments--short .mv-moments__media { height: clamp(260px, 27vw, 400px); }

/* ---------- 14. Home: available on, brand block ---------- */
.mv-available { padding-block: clamp(34px, 3.5vw, 52px); border-top: 1px solid var(--mv-line); }
body.mv2 .mv-available__title { font-family: var(--mv-sans); font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mv-muted); text-align: center; margin-bottom: 18px; }
.mv-available__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 40px; list-style: none; margin: 0; padding: 0; }
.mv-available__list li { font-family: var(--mv-serif); font-size: 1.16rem; font-weight: 600; color: var(--mv-forest); }
body.mv2 .mv-available__list a { text-decoration: none; border-bottom: 1px solid var(--mv-line-strong); }

.mv-brandblock__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(26px, 4vw, 56px); align-items: center; }
.mv-brandblock p { color: rgba(244, 248, 242, .84); max-width: 56ch; }
.mv-brandblock__links { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 20px; }
body.mv2 .mv-brandblock__links .mv-link { color: #FFFFFF; border-color: rgba(255, 255, 255, .4); }
body.mv2 .mv-brandblock__links .mv-link:hover { color: var(--mv-amber); border-color: var(--mv-amber); }
.mv-brandblock__media { border-radius: var(--mv-radius-lg); overflow: hidden; }
.mv-brandblock__media img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; background: rgba(255, 255, 255, .04); }

/* ---------- 15. FAQ ---------- */
.mv-faq { border-top: 1px solid var(--mv-line-strong); }
.mv-faq__item { border-bottom: 1px solid var(--mv-line-strong); }
.mv-faq__item summary {
	list-style: none;
	cursor: pointer;
	padding: 18px 40px 18px 0;
	position: relative;
	font-family: var(--mv-serif);
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--mv-forest);
}
.mv-faq__item summary::-webkit-details-marker { display: none; }
.mv-faq__item summary::after {
	content: '+';
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--mv-sans);
	font-size: 1.3rem;
	font-weight: 400;
	color: var(--mv-amber-ink);
}
.mv-faq__item[open] summary::after { content: '\2212'; }
.mv-faq__a { padding: 0 8px 20px 0; }
.mv-faq__a p { margin: 0; color: var(--mv-muted); font-size: .97rem; }

/* ---------- 16. Footer ---------- */
.mv-footer { background: var(--mv-ivory-deep); border-top: 1px solid var(--mv-line); padding-block: clamp(38px, 4vw, 60px) 26px; }
.mv-footer__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: clamp(22px, 3vw, 42px); }
body.mv2 .mv-footer__wordmark { font-family: var(--mv-serif); font-size: 1.4rem; font-weight: 700; color: var(--mv-forest); margin: 0 0 8px; }
.mv-footer__line { font-size: .92rem; color: var(--mv-muted); margin: 0; max-width: 30ch; }
body.mv2 .mv-footer__col h2 { font-family: var(--mv-sans); font-size: .76rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mv-muted); margin-bottom: 12px; }
.mv-footer__col ul { list-style: none; margin: 0; padding: 0; }
.mv-footer__col li { margin-bottom: 9px; }
body.mv2 .mv-footer__col a { font-size: .94rem; text-decoration: none; color: var(--mv-forest); }
body.mv2 .mv-footer__col a:hover { color: var(--mv-amber); text-decoration: underline; }
.mv-footer__legal { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--mv-line); }
.mv-footer__legal p { font-size: .8rem; color: var(--mv-muted); margin: 0; }
body.mv2 .site-footer, body.mv2 .ast-small-footer { background: var(--mv-ivory-deep); }
body.mv2 .ast-footer-copyright { font-size: .8rem; color: var(--mv-muted); }

/* ---------- 17. Shop archive ---------- */
body.mv2-shop .mv-main,
body.mv2-shop #primary { padding-block: clamp(30px, 4vw, 56px) clamp(46px, 6vw, 84px); }
body.mv2-shop .woocommerce-products-header,
body.mv2-shop .woocommerce-breadcrumb { max-width: var(--mv-shell); margin-inline: auto; padding-inline: 24px; width: 100%; }
body.mv2-shop .woocommerce-breadcrumb { font-size: .82rem; color: var(--mv-muted); margin-bottom: 18px; }
body.mv2-shop .woocommerce-breadcrumb a { color: var(--mv-muted); text-decoration: none; }
body.mv2-shop .mv-main, body.mv2-shop #primary { padding-top: clamp(22px, 2.4vw, 34px) !important; }
body.mv2-shop .woocommerce-products-header__title { font-size: clamp(1.9rem, 1.4rem + 2vw, 2.9rem); margin-bottom: .3em; }
body.mv2-shop .woocommerce-result-count,
body.mv2-shop .woocommerce-ordering { display: none; }
body.mv2 ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(268px, 100%), 1fr));
	gap: clamp(16px, 2vw, 26px);
	list-style: none;
	margin: 0 auto;
	padding: 0 24px;
	max-width: var(--mv-shell);
	width: 100%;
}
body.mv2 ul.products::before,
body.mv2 ul.products::after { display: none !important; }
body.mv2 ul.products li.product { width: 100% !important; margin: 0 !important; float: none !important; clear: none !important; }
body.mv2 ul.products li.product .mv-card__name { font-size: 1.16rem; }
body.mv2 ul.products li.product .woocommerce-loop-product__title { display: none; }
body.mv2 ul.products li.product .button,
body.mv2 ul.products li.product .added_to_cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 22px;
	border-radius: 999px;
	background: var(--mv-forest);
	color: #FFFFFF;
	font-family: var(--mv-sans);
	font-size: .95rem;
	font-weight: 600;
	text-decoration: none;
	border: 0;
}
body.mv2 ul.products li.product .button:hover { background: var(--mv-forest-soft); color: #FFFFFF; }
body.mv2 ul.products li.product .added_to_cart { background: var(--mv-amber-soft); color: #7A4C08; }

/* ---------- 18. Product page ---------- */
body.mv2-pdp .mv-pdp { padding-top: clamp(24px, 3vw, 44px); }
.mv-pdp__top {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(26px, 4vw, 60px);
	align-items: start;
	padding-bottom: clamp(40px, 5vw, 72px);
}
.mv-pdp__gallery { position: relative; border-radius: var(--mv-radius-lg); overflow: hidden; background: #FFFFFF; border: 1px solid var(--mv-line); }
.mv-pdp__gallery .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.mv-pdp__gallery .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; }
.mv-pdp__gallery .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 12px; padding: 0; }
.mv-pdp__gallery .flex-control-thumbs li { width: calc(20% - 7px); margin: 0; }
.mv-pdp__gallery .onsale, .mv-pdp__gallery .mv-tag--sale { position: absolute; z-index: 3; top: 14px; left: 14px; background: var(--mv-amber-deep); color: #FFFFFF; border-radius: 999px; padding: 4px 12px; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0; min-height: 0; min-width: 0; line-height: 1.7; }

/* WooCommerce's own stylesheet floats .summary and div.images at 48%; this theme lays
   the product page out with grid, so those floats are neutralised. */
body.mv2 div.product div.summary,
body.mv2 div.product div.images,
body.mv2 div.product .woocommerce-product-gallery { float: none !important; width: 100% !important; margin: 0 !important; }
body.mv2 .mv-pdp__crumbs { padding-top: 6px; }
body.mv2 .mv-pdp__crumbs .woocommerce-breadcrumb { font-size: .82rem; color: var(--mv-muted); margin: 0 0 14px; }
body.mv2 .mv-pdp__crumbs .woocommerce-breadcrumb a { color: var(--mv-muted); text-decoration: none; }
body.mv2 .mv-pdp__crumbs .woocommerce-breadcrumb a:hover { color: var(--mv-amber); }
.mv-pdp__buy { padding-top: 4px; }
body.mv2 .mv-pdp__title { margin-bottom: .28em; }
body.mv2 .mv-pdp__price { font-family: var(--mv-serif); font-size: 1.8rem; font-weight: 600; color: var(--mv-forest); margin: 0 0 12px; }
.mv-pdp__price del { color: var(--mv-muted); font-size: .62em; font-weight: 400; margin-right: 8px; }
.mv-pdp__price ins { text-decoration: none; }
.mv-pdp__dose { display: inline-flex; align-items: center; gap: 10px; background: var(--mv-amber-soft); color: #6E4406; border-radius: 999px; padding: 7px 16px; font-size: .9rem; font-weight: 600; margin: 0 0 14px; }
.mv-pdp__dose span { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; opacity: .75; font-weight: 700; }
.mv-pdp__stock { font-size: .88rem; font-weight: 600; margin: 0 0 16px; }
.mv-pdp__stock.is-in { color: #2E7A4F; }
.mv-pdp__stock.is-out { color: #9A5B22; }
.mv-pdp__summary { color: var(--mv-muted); max-width: 46ch; }
.mv-pdp__oos { margin: 18px 0; }
.mv-pdp__sku { font-size: .78rem; color: var(--mv-muted); margin-top: 18px; }

body.mv2 form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 18px 0 4px !important; }
body.mv2 form.cart .quantity { display: inline-flex; }
body.mv2 form.cart .quantity input.qty {
	width: 84px;
	min-height: 48px;
	padding: 10px 12px;
	border: 1px solid var(--mv-line-strong);
	border-radius: 999px;
	text-align: center;
	font-family: var(--mv-sans);
	font-size: 1rem;
	background: #FFFFFF;
	color: var(--mv-ink);
}
body.mv2 form.cart button.single_add_to_cart_button,
body.mv2 .woocommerce-message .button,
body.mv2 .wc-proceed-to-checkout .checkout-button,
body.mv2 .woocommerce button.button.alt,
body.mv2 .woocommerce input.button.alt,
body.mv2 .woocommerce a.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 26px;
	border: 0;
	border-radius: 999px;
	background: var(--mv-forest);
	color: #FFFFFF;
	font-family: var(--mv-sans);
	font-size: .97rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}
body.mv2 form.cart button.single_add_to_cart_button:hover,
body.mv2 .woocommerce button.button.alt:hover,
body.mv2 .woocommerce a.button.alt:hover { background: var(--mv-forest-soft); color: #FFFFFF; }

.mv-pdp__siblings { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--mv-line); }
.mv-pdp__siblings-label { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mv-muted); margin: 0 0 10px; }
.mv-pdp__siblings ul { list-style: none; margin: 0; padding: 0; }
.mv-pdp__siblings li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; padding: 8px 0; border-bottom: 1px solid var(--mv-line); font-size: .94rem; }
.mv-pdp__siblings li:last-child { border-bottom: 0; }
.mv-pdp__siblings span { color: var(--mv-muted); font-size: .9rem; }
.mv-pdp__siblings del { font-size: .85em; }

.mv-pdp__after { padding-block: clamp(40px, 5vw, 72px); }
.mv-pdp__tabs { padding-block: clamp(36px, 4vw, 60px); }
body.mv2 .mv-pdp__tabs .woocommerce-tabs { margin: 0; }
body.mv2 .mv-pdp__tabs .woocommerce-tabs ul.tabs { margin: 0 0 24px; padding: 0; }
body.mv2 .mv-pdp__tabs .woocommerce-tabs .panel { margin: 0; }
body.mv2 .related.products > h2,
body.mv2 .up-sells > h2 { font-size: clamp(1.4rem, 1.2rem + .9vw, 1.9rem); margin-bottom: 26px; }
body.mv2 .related.products ul.products,
body.mv2 .up-sells ul.products { padding-inline: 0; }

/* ---------- 19. Sticky buy bar (phones) ---------- */
.mv-stickybuy {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
	background: rgba(251, 247, 240, .97);
	border-top: 1px solid var(--mv-line-strong);
	backdrop-filter: saturate(140%) blur(6px);
}
.mv-stickybuy__info { display: flex; flex-direction: column; min-width: 0; }
.mv-stickybuy__name { font-size: .84rem; font-weight: 600; color: var(--mv-forest); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mv-stickybuy__price { font-size: .92rem; color: var(--mv-muted); }
.mv-stickybuy__price del { font-size: .82em; }
body.mv2 .mv-stickybuy__cta { flex: none; min-height: 44px; padding: 10px 18px; font-size: .9rem; }

/* ---------- 20. Cart, checkout, account, generic pages ---------- */
body.mv2-commerce .mv-main,
body.mv2-commerce #primary,
body.mv2-page #primary { padding-block: clamp(30px, 4vw, 56px) clamp(46px, 6vw, 84px); }
body.mv2-commerce .entry-content > .woocommerce,
body.mv2-commerce .entry-header,
body.mv2-commerce .ast-container > article,
body.mv2-commerce .site-main { max-width: var(--mv-shell); margin-inline: auto; padding-inline: 24px; width: 100%; }
body.mv2 .woocommerce table.shop_table { border-radius: var(--mv-radius); border-color: var(--mv-line); background: #FFFFFF; }
body.mv2 .woocommerce table.shop_table th { font-family: var(--mv-sans); font-size: .8rem; letter-spacing: .05em; text-transform: uppercase; color: var(--mv-muted); }
body.mv2 .woocommerce .cart_totals h2,
body.mv2 .woocommerce-billing-fields h3,
body.mv2 #order_review_heading { font-size: 1.25rem; }
body.mv2 .woocommerce form .form-row input.input-text,
body.mv2 .woocommerce form .form-row textarea,
body.mv2 .woocommerce form .form-row select,
body.mv2 .select2-container .select2-selection--single {
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--mv-line-strong);
	border-radius: 10px;
	background: #FFFFFF;
	font-family: var(--mv-sans);
	font-size: 1rem;
	color: var(--mv-ink);
}
body.mv2 .woocommerce-message,
body.mv2 .woocommerce-info { border-top-color: var(--mv-amber); background: #FFFFFF; border-radius: var(--mv-radius); }
body.mv2 .woocommerce-message::before,
body.mv2 .woocommerce-info::before { color: var(--mv-amber); }
body.mv2 #payment ul.payment_methods { background: var(--mv-sage); border-radius: var(--mv-radius); }
body.mv2 #payment div.form-row { background: transparent; padding-inline: 0; }

.mv-pagehero { padding-bottom: clamp(18px, 2vw, 28px); }
body.mv2 .mv-pagehero h1 { max-width: 18ch; }
.mv-prose { padding-top: clamp(18px, 2vw, 28px); }
body.mv2 .mv-prose h2 { margin-top: 1.6em; }
body.mv2 .mv-prose h2:first-child { margin-top: 0; }
.mv-prose p { color: var(--mv-ink); }
.mv-bullets { list-style: none; margin: 0 0 1.4em; padding: 0; }
.mv-bullets li { display: flex; flex-direction: column; gap: 2px; padding: 13px 0; border-bottom: 1px solid var(--mv-line); }
.mv-bullets li span { font-size: .92rem; color: var(--mv-muted); }
.mv-prose__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 2em; }

/* Existing page-79 blocks, rendered through the_content(). */
.mv-shell--about { max-width: 1060px; }
.mv-about-content { overflow: hidden; }
.mv-about-content > .mv-shell > * { max-width: 100%; }
.mv-about-content .wp-block-columns { gap: clamp(14px, 2vw, 24px); align-items: stretch; }
.mv-about-content .wp-block-column { min-width: 0; overflow-wrap: anywhere; }
.mv-about-content .wp-block-group { max-width: 100%; }
.mv-about-content h1:first-child { margin-inline: auto; }

.mv-contact__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(24px, 3.5vw, 48px); align-items: start; }
.mv-contact__form,
.mv-contact__details { background: #FFFFFF; border: 1px solid var(--mv-line); border-radius: var(--mv-radius-lg); padding: clamp(20px, 2.5vw, 32px); }
body.mv2 .mv-contact__form h2,
body.mv2 .mv-contact__details h2 { font-size: 1.3rem; }
body.mv2 .wpcf7-form-control {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--mv-line-strong);
	border-radius: 10px;
	background: #FFFFFF;
	font-family: var(--mv-sans);
	font-size: 1rem;
	color: var(--mv-ink);
}
body.mv2 .wpcf7-form-control.wpcf7-textarea { min-height: 140px; }
body.mv2 .wpcf7-form-control.wpcf7-submit {
	width: auto;
	background: var(--mv-forest);
	color: #FFFFFF;
	border: 0;
	border-radius: 999px;
	padding: 12px 26px;
	font-weight: 600;
	cursor: pointer;
}
body.mv2 .wpcf7-form p { margin-bottom: 14px; }

/* ---------- 21. Responsive ---------- */
@media (max-width: 1024px) {
	.mv-hero__grid { grid-template-columns: 1fr; }
	.mv-hero__media { justify-content: flex-start; max-width: 560px; }
	.mv-story__grid { grid-template-columns: 1fr; }
	.mv-story__art { justify-content: flex-start; }
	.mv-brandblock__grid { grid-template-columns: 1fr; }
	.mv-moments { grid-template-columns: 1fr; }
	.mv-moments__media { height: auto; aspect-ratio: 3 / 2; }
	.mv-moments--short .mv-moments__media { height: clamp(220px, 42vw, 330px); }
	.mv-moments__panel .mv-shell { max-width: var(--mv-shell); margin-inline: auto; padding-inline: 24px; }
	.mv-pdp__top { grid-template-columns: 1fr; }
	.mv-contact__grid { grid-template-columns: 1fr; }
	.mv-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
	body.mv2 { font-size: 16px; }
	body.mv2-pdp { padding-bottom: 78px; }
	body.mv2-pdp .mv-stickybuy { display: flex; }
	.mv-deflist__row { grid-template-columns: 1fr; gap: 2px; }
	.mv-table tbody th { width: auto; }
	.mv-about-content .wp-block-columns { display: grid; grid-template-columns: 1fr; }
	.mv-about-content .wp-block-column { width: 100%; }
}

@media (max-width: 560px) {
	.mv-shell { padding-inline: 18px; }
	body.mv2 ul.products { padding-inline: 18px; }
	body.mv2-commerce .entry-content > .woocommerce,
	body.mv2-commerce .entry-header,
	body.mv2-commerce .site-main,
	body.mv2-shop .woocommerce-products-header { padding-inline: 18px; }
	.mv-hero__media { gap: 10px; }
	.mv-footer__grid { grid-template-columns: 1fr; gap: 26px; }
	.mv-hero__cta .mv-btn,
	.mv-prose__cta .mv-btn { flex: 1 1 100%; }
	.mv-card__cta { gap: 10px; }
	.mv-card__cta .mv-btn { flex: 1 1 100%; }
	body.mv2 form.cart .quantity,
	body.mv2 form.cart button.single_add_to_cart_button { flex: 1 1 100%; }
	body.mv2 form.cart .quantity input.qty { width: 100%; }
	.mv-available__list { gap: 10px 24px; }
	.mv-available__list li { font-size: 1.02rem; }
}

@media (prefers-reduced-motion: reduce) {
	body.mv2 *, body.mv2 *::before, body.mv2 *::after { transition: none !important; animation: none !important; }
	.mv-card:hover { transform: none; }
}
