/**
 * Worthy Molecules — global styles.
 *
 * Tokens come from theme.json (var(--wp--preset--*) and var(--wp--custom--*)).
 * This file holds what theme.json cannot express: header behaviour, block
 * styles, surface details and interaction states. Block-specific CSS lives
 * with each block in the womo-core plugin.
 */

/* -------------------------------------------------------------------------
 * Base
 * ---------------------------------------------------------------------- */

:root {
	--womo-header-h: var(--wp--custom--header--height, 5.5rem);
	--womo-rule: color-mix(in oklab, var(--wp--preset--color--champagne) 18%, transparent);
	--womo-label: color-mix(in oklab, var(--wp--preset--color--champagne) 90%, transparent);
}

html {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	scroll-behavior: smooth;
}

body {
	font-feature-settings: "ss01", "cv01";
	text-rendering: optimizeLegibility;
}

::selection {
	background: color-mix(in oklab, var(--wp--preset--color--champagne) 30%, transparent);
}

:where(h1, h2, h3, h4) {
	text-wrap: balance;
	overflow-wrap: break-word;
}

:where(p) {
	text-wrap: pretty;
}

/* Pages that do not open with a full-bleed hero start below the fixed header. */
.womo-main {
	padding-top: var(--womo-header-h);
}

.womo-main:has(> .wp-block-post-content > .alignfull:first-child),
.womo-main:has(> .alignfull:first-child) {
	padding-top: 0;
}

.womo-main:where(.is-layout-constrained) > :first-child {
	margin-top: var(--wp--preset--spacing--60);
}

/* -------------------------------------------------------------------------
 * Block styles
 * ---------------------------------------------------------------------- */

/* Label: Jost, uppercase. Used above section headings and in the footer. */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--womo-label);
}

/* Lead: the larger reading paragraph that follows a section heading. */
.is-style-lead {
	font-size: 1.125rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted-foreground);
	max-width: 42rem;
}

/* Buttons: Lovable "ShopCta" — pill outline with a short rule that grows on hover. */
.wp-block-button.is-style-line .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
}

.wp-block-button.is-style-line .wp-block-button__link::after {
	content: "";
	display: block;
	width: 1.5rem;
	height: 1px;
	background: color-mix(in oklab, currentColor 60%, transparent);
	transition: width 0.5s ease, background-color 0.5s ease;
}

.wp-block-button.is-style-line .wp-block-button__link:is(:hover, :focus-visible)::after {
	width: 2.5rem;
	background: var(--wp--preset--color--lumina);
}

/* Solid: filled champagne, for primary purchase actions. */
.wp-block-button.is-style-solid .wp-block-button__link {
	background: var(--wp--preset--color--champagne);
	border-color: var(--wp--preset--color--champagne);
	color: var(--wp--preset--color--base);
}

.wp-block-button.is-style-solid .wp-block-button__link:hover {
	background: color-mix(in oklab, var(--wp--preset--color--champagne) 90%, white);
	color: var(--wp--preset--color--base);
}

/*
 * Editorial: Lovable's secondary action — sentence case, champagne text and
 * hairline, a small arrow after the label (Explore…, Request…, Join…).
 */
.wp-block-button.is-style-editorial .wp-block-button__link {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	min-height: 3rem;
	padding: 0.75rem 1.5rem;
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.25;
	text-transform: none;
	color: var(--wp--preset--color--champagne);
	border-color: color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
}

.wp-block-button.is-style-editorial .wp-block-button__link::after {
	content: "";
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	background: currentcolor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-button.is-style-editorial .wp-block-button__link:hover {
	color: var(--wp--preset--color--champagne);
	background: color-mix(in oklab, var(--wp--preset--color--champagne) 5%, transparent);
	border-color: var(--wp--preset--color--champagne);
}

.wp-element-button {
	transition: background-color 0.5s ease, border-color 0.5s ease, color 0.5s ease;
}

/* -------------------------------------------------------------------------
 * Surfaces (section styles registered in styles/sections/)
 * ---------------------------------------------------------------------- */

:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) {
	--womo-label: var(--wp--preset--color--base);
	--womo-rule: color-mix(in oklab, var(--wp--preset--color--base) 18%, transparent);
}

/* Light surfaces use crisp regular weights rather than light hairlines. */
:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) :is(h2, h3) {
	font-weight: 400;
}

/* -------------------------------------------------------------------------
 * Header
 * ---------------------------------------------------------------------- */

.womo-site-header {
	position: fixed;
	inset: 0 0 auto;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}

.womo-header {
	color: var(--wp--preset--color--champagne);
	background-color: transparent;
	transition:
		background-color 0.5s ease,
		padding 0.5s var(--wp--custom--ease--header);
}

.womo-site-header.is-scrolled .womo-header {
	background-color: color-mix(in oklab, var(--wp--preset--color--base) 95%, transparent);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
}

.womo-header--light,
.womo-site-header.is-scrolled .womo-header--light {
	background-color: var(--wp--preset--color--stone);
	color: var(--wp--preset--color--base);
	backdrop-filter: none;
}

.womo-header__inner {
	gap: var(--wp--preset--spacing--40);
}

.womo-header :where(a, button) {
	color: inherit;
}

/* Main navigation */
.womo-header__nav .wp-block-navigation-item__content {
	padding-block: 0.75rem;
	text-decoration: none;
	transition: color 0.3s ease;
}

/*
 * Core gives link content "color: inherit" with high specificity, so colours
 * are set on the list item and inherited by the link.
 */
.womo-header__nav .wp-block-navigation-item {
	transition: color 0.3s ease;
}

.womo-header__nav .wp-block-navigation-item:is(:hover, :focus-within),
.womo-header__nav .wp-block-navigation-item:has([aria-current]) {
	color: var(--wp--preset--color--contrast);
}

.womo-header--light .womo-header__nav .wp-block-navigation-item:is(:hover, :focus-within) {
	color: var(--wp--preset--color--graphite);
}

.womo-header--light .womo-header__nav .wp-block-navigation-item:has([aria-current]) {
	color: var(--wp--preset--color--base);
}

.womo-header__nav [aria-current] {
	text-decoration: underline;
	text-decoration-color: color-mix(in oklab, currentColor 60%, transparent);
	text-underline-offset: 8px;
}

/* Mobile overlay: night panel with large, light links. */
.womo-header__nav .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	padding: calc(var(--womo-header-h) + 1rem) clamp(1.5rem, 6vw, 2.5rem) 2rem;
}

.womo-header__nav .is-menu-open .wp-block-navigation__container {
	width: 100%;
	gap: 0;
}

.womo-header__nav .is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 15%, transparent);
}

.womo-header__nav .is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding-block: 1.25rem !important;
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	text-transform: none;
}

.womo-header__nav :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) {
	width: 2.75rem;
	height: 2.75rem;
	display: grid;
	place-items: center;
}

/* Search: icon button that expands into a field. */
.womo-header__search .wp-block-search__button {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: inherit;
}

.womo-header__search .wp-block-search__button svg {
	width: 1.2rem;
	height: 1.2rem;
	min-width: 0;
	min-height: 0;
	fill: currentColor;
}

.womo-header__search .wp-block-search__inside-wrapper {
	border: 0;
	padding: 0;
	background: transparent;
}

.womo-header__search .wp-block-search__input {
	min-height: 2.75rem;
	padding: 0 0.75rem;
	border: 1px solid color-mix(in oklab, currentColor 30%, transparent);
	border-radius: var(--wp--custom--radius--pill);
	background: transparent;
	color: inherit;
	font: inherit;
}

/*
 * The navigation is set to "always" collapse, and shown inline from 1024px
 * here instead. Core's own breakpoint (600px) is too narrow for five links
 * beside the logo and actions.
 */
@media (min-width: 1024px) {
	.womo-header__inner {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr) auto;
	}

	.womo-header__nav .wp-block-navigation__responsive-container-open {
		display: none;
	}

	.womo-header__nav .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) {
		display: flex;
		position: static;
		inset: auto;
		z-index: auto;
		padding: 0;
		background: transparent !important;
		color: inherit !important;
	}

	.womo-header__nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close {
		display: none;
	}
}

@media (max-width: 1023px) {
	/* Navigation collapses into the overlay; keep it after the actions. */
	.womo-header__nav {
		order: 3;
	}

	.womo-header__actions {
		margin-left: auto;
	}
}

/* Below 600px the admin bar scrolls with the page instead of staying fixed. */
@media (max-width: 600px) {
	.womo-site-header {
		top: 0;
	}

	.admin-bar .womo-site-header:not(.is-scrolled) {
		top: var(--wp-admin--admin-bar--height, 0px);
	}
}

/* -------------------------------------------------------------------------
 * Footer
 * ---------------------------------------------------------------------- */

.womo-footer {
	--womo-footer-text: var(--wp--preset--color--muted-foreground);
	padding-top: 4rem !important;
	padding-bottom: 7rem !important;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.65;
}

@media (min-width: 768px) {
	.womo-footer {
		padding-top: 6rem !important;
		padding-bottom: 5rem !important;
	}
}

/* Brand column 0.85fr, menus 1.15fr (Lovable Footer). */
@media (min-width: 768px) {
	.womo-footer .womo-footer__main {
		display: grid;
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
		gap: 3rem;
	}

	.womo-footer .womo-footer__main > .wp-block-column {
		flex-basis: auto !important;
	}
}

@media (min-width: 1024px) {
	.womo-footer .womo-footer__main {
		gap: 6rem;
	}
}

.womo-footer .womo-footer__menus {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.womo-footer .womo-footer__menus {
		gap: 3rem;
	}
}

@media (min-width: 1024px) {
	.womo-footer .womo-footer__menus {
		gap: 5rem;
	}
}

.womo-footer .is-style-eyebrow {
	margin: 0 0 1.25rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400 !important;
	line-height: 1.65 !important;
	white-space: nowrap;
}

.womo-footer__statement {
	max-width: 20rem;
	margin: 0;
	color: var(--womo-footer-text);
	line-height: 1.65;
}

.womo-footer__logo {
	width: 8rem;
	margin-bottom: 2rem;
	color: var(--wp--preset--color--champagne);
}

.womo-footer__statement + .womo-footer__statement {
	margin-top: 1.5rem;
}

.womo-footer .is-style-eyebrow + .womo-footer__nav {
	margin-top: 1.25rem;
}

.womo-footer__nav .wp-block-navigation__container {
	gap: 0.75rem;
}

.womo-footer__nav .wp-block-navigation-item {
	color: var(--womo-footer-text);
	line-height: 1.5rem;
	transition: color 0.3s ease;
}

.womo-footer__nav .wp-block-navigation-item:is(:hover, :focus-within) {
	color: var(--wp--preset--color--champagne);
}

.womo-footer__nav .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	text-transform: none;
	text-decoration: none;
}

/* Important information: three notices under a hairline. */
.womo-footer .womo-footer__info {
	margin-top: 5rem;
	padding-top: 2.5rem;
	border-top: 1px solid color-mix(in oklab, var(--wp--preset--color--contrast) 10%, transparent);
}

.womo-footer .womo-footer__info .is-style-eyebrow {
	margin-bottom: 1.5rem;
}

.womo-footer .womo-footer__notices {
	gap: 1.5rem;
	margin: 0;
}

@media (min-width: 768px) {
	.womo-footer .womo-footer__notices {
		gap: 2.5rem;
	}
}

.womo-footer__notices p {
	margin: 0;
	color: var(--womo-footer-text);
	line-height: 1.65;
}

.womo-footer .womo-footer__base {
	gap: 1rem 1.5rem;
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid color-mix(in oklab, var(--wp--preset--color--contrast) 10%, transparent);
	color: var(--womo-footer-text);
}

.womo-footer__base p {
	margin: 0;
}

.womo-footer__tagline {
	text-transform: uppercase;
}

/* -------------------------------------------------------------------------
 * Reveal on scroll — toggled per block from the editor (womo-core).
 * Content stays visible without JavaScript: the hidden state only applies
 * once main.js has marked the document as ready.
 * ---------------------------------------------------------------------- */

.womo-js .has-womo-reveal {
	opacity: 0;
	transform: translateY(48px);
	transition:
		opacity 0.9s var(--wp--custom--ease--out),
		transform 0.9s var(--wp--custom--ease--out);
	transition-delay: var(--womo-reveal-delay, 0ms);
}

.womo-js .has-womo-reveal.is-revealed {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.womo-js .has-womo-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.wp-block-button.is-style-line .wp-block-button__link::after,
	.womo-header {
		transition: none;
	}
}

/* -------------------------------------------------------------------------
 * Editor: the fixed header would cover content in the site editor canvas.
 * ---------------------------------------------------------------------- */

.editor-styles-wrapper .womo-site-header {
	position: relative;
	top: 0;
}

.editor-styles-wrapper .womo-main {
	padding-top: 0;
}

/* -------------------------------------------------------------------------
 * Product page
 * ---------------------------------------------------------------------- */

.womo-product__buy > * {
	margin-block: 0;
}

.womo-product__buy > * + * {
	margin-top: 1rem;
}

.womo-product .wp-block-post-terms a {
	color: inherit;
	text-decoration: none;
}

/* The wordmark is white artwork; on light surfaces it is drawn in ink. */
.womo-product-heading {
	line-height: 0;
}

.womo-product-heading img {
	width: clamp(11rem, 18vw, 14rem);
	height: auto;
}

:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) .womo-product-heading img {
	filter: brightness(0);
}

.womo-product .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.womo-product .wp-block-post-excerpt__more-text {
	display: none;
}

@media (min-width: 782px) {
	.womo-product__media {
		position: sticky;
		top: calc(var(--womo-header-h) + var(--wp-admin--admin-bar--height, 0px) + 1rem);
		align-self: flex-start;
	}
}

/* Room for the buy bar on phones so it never covers the footer. */
@media (max-width: 781px) {
	body.single-product .womo-site-footer {
		padding-bottom: 5rem;
	}
}

/* WooCommerce Subscriptions prints an empty first-payment line for synced plans. */
.womo-product__buy .first-payment-date:empty {
	display: none;
}

/* -------------------------------------------------------------------------
 * Columns: "Sticky intro" — label, heading and text on the left stay in view
 * while the content on the right scrolls. Lovable's ProductInfoSection.
 * ---------------------------------------------------------------------- */

.wp-block-columns.is-style-sticky-intro {
	padding-top: clamp(3rem, 5vw, 4rem);
	border-top: 1px solid color-mix(in oklab, currentColor 15%, transparent);
}

.wp-block-columns.is-style-sticky-intro > .wp-block-column:first-child > * {
	margin-block: 0;
}

.wp-block-columns.is-style-sticky-intro > .wp-block-column:first-child > * + * {
	margin-top: 1.5rem;
}

.wp-block-columns.is-style-sticky-intro > .wp-block-column:first-child > p:not(.is-style-eyebrow) {
	max-width: 28rem;
	color: var(--wp--preset--color--muted-foreground);
}

.wp-block-columns.is-style-sticky-intro > .wp-block-column:last-child {
	min-width: 0;
}

@media (min-width: 782px) {
	.wp-block-columns.is-style-sticky-intro > .wp-block-column:first-child {
		position: sticky;
		top: calc(var(--womo-header-h) + var(--wp-admin--admin-bar--height, 0px) + 1.5rem);
		align-self: flex-start;
	}
}

/* Product page: space between the stacked sections and before the footer. */
.womo-product__content > .is-style-sticky-intro {
	margin-top: clamp(6rem, 10vw, 8rem);
}

.womo-product__content > :last-child {
	margin-bottom: clamp(7rem, 12vw, 10rem);
}

/* -------------------------------------------------------------------------
 * Group: "Rows" and "Numbered rows" — each child group is one row with a
 * hairline under it and a soft hover, as in Lovable's lists of benefits,
 * steps and timeline entries.
 * ---------------------------------------------------------------------- */

:is(.is-style-rows, .is-style-numbered-rows) > * {
	margin-block: 0 !important;
	margin-inline: -1rem;
	padding: 1.75rem 1rem;
	border-bottom: 1px solid color-mix(in oklab, currentColor 10%, transparent);
	border-radius: 0.375rem;
	transition: background-color 0.3s ease;
}

:is(.is-style-rows, .is-style-numbered-rows) > *:hover {
	background: color-mix(in oklab, currentColor 4%, transparent);
}

:is(.is-style-rows, .is-style-numbered-rows) > *:last-child {
	border-bottom: 0;
}

:is(.is-style-rows, .is-style-numbered-rows) > * > * {
	margin-block: 0;
}

:is(.is-style-rows, .is-style-numbered-rows) h3 {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	line-height: 1.3;
}

:is(.is-style-rows, .is-style-numbered-rows) p:not(.is-style-eyebrow) {
	max-width: 36rem;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.7;
	color: var(--wp--preset--color--muted-foreground);
}

.is-style-numbered-rows {
	counter-reset: womo-row;
}

.is-style-numbered-rows > * {
	position: relative;
	padding-left: 4rem;
	counter-increment: womo-row;
}

.is-style-numbered-rows > *::before {
	content: counter(womo-row, decimal-leading-zero);
	position: absolute;
	top: 2rem;
	left: 1rem;
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0;
	color: color-mix(in oklab, currentColor 35%, transparent);
}

/* Small label inside a row ("Thinking, feeling and focus", "Week 1"). */
:is(.is-style-rows, .is-style-numbered-rows) .is-style-eyebrow {
	color: var(--wp--preset--color--muted-foreground);
}

/* Row with an icon or a fixed label on the left. */
.is-style-rows > .is-layout-flex {
	gap: 1.5rem;
}

.is-style-rows > .is-layout-flex > :first-child {
	flex-shrink: 0;
}

.is-style-rows .wp-block-image img {
	width: 3rem;
	height: 3rem;
}

@media (min-width: 600px) {
	.is-style-rows .is-style-eyebrow:first-child {
		width: 7rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	:is(.is-style-rows, .is-style-numbered-rows) > * {
		transition: none;
	}
}

/* Group: "Tip" — an aside with a champagne rule on the left. */
.wp-block-group.is-style-tip {
	padding-left: 1.5rem;
	border-left: 2px solid var(--wp--preset--color--champagne);
}

.wp-block-group.is-style-tip > * {
	margin-block: 0;
}

.wp-block-group.is-style-tip > * + * {
	margin-top: 0.75rem;
}

/* List: "Chips" — small rounded tags, e.g. key ingredients with their amount. */
.wp-block-list.is-style-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0;
	list-style: none;
}

.wp-block-list.is-style-chips li {
	padding: 0.375rem 0.75rem;
	border: 1px solid color-mix(in oklab, currentColor 15%, transparent);
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.65;
	color: var(--wp--preset--color--muted-foreground);
}

.wp-block-list.is-style-chips li em {
	margin-left: 0.375rem;
	font-style: normal;
	color: inherit;
}

/* -------------------------------------------------------------------------
 * Table: "Nutrition". Columns: nutrient, per serving, per 100 g, reference
 * per serving, reference per 100 g. main.js adds a toggle and shows one
 * basis at a time; without it, every column shows.
 * ---------------------------------------------------------------------- */

.wp-block-table.is-style-nutrition {
	margin: 0;
}

.wp-block-table.is-style-nutrition table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
}

.wp-block-table.is-style-nutrition :is(th, td) {
	padding: 0.75rem 0.5rem;
	border: 0;
	border-bottom: 1px solid color-mix(in oklab, currentColor 10%, transparent);
	font-weight: 400;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.wp-block-table.is-style-nutrition :is(th, td):first-child {
	text-align: left;
}

.wp-block-table.is-style-nutrition thead {
	border: 0;
}

.wp-block-table.is-style-nutrition thead th {
	padding-top: 0;
	border-bottom-color: color-mix(in oklab, currentColor 25%, transparent);
	color: color-mix(in oklab, currentColor 65%, transparent);
}

.wp-block-table.is-style-nutrition tbody tr {
	transition: background-color 0.3s ease;
}

.wp-block-table.is-style-nutrition tbody tr:hover {
	background: color-mix(in oklab, currentColor 4%, transparent);
}

.wp-block-table.is-style-nutrition td:nth-child(n + 4) {
	color: color-mix(in oklab, currentColor 65%, transparent);
}

.wp-block-table.is-style-nutrition .is-sub {
	padding-left: 1.25rem;
	color: color-mix(in oklab, currentColor 65%, transparent);
}

.wp-block-table.is-style-nutrition figcaption,
.wp-block-table.is-style-nutrition .wp-element-caption {
	margin: 0 0 1.25rem;
	caption-side: top;
	font-size: var(--wp--preset--font-size--x-large);
	text-align: left;
	color: currentColor;
}

.wp-block-table.is-style-nutrition + .wp-block-table.is-style-nutrition {
	margin-top: 2.5rem;
}

.womo-basis-per-serving .wp-block-table.is-style-nutrition :is(th, td):is(:nth-child(3), :nth-child(5)),
.womo-basis-per-100g .wp-block-table.is-style-nutrition :is(th, td):is(:nth-child(2), :nth-child(4)) {
	display: none;
}

.womo-basis-toggle {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 2rem;
}

.womo-basis-toggle button {
	min-height: 2.75rem;
	padding: 0.5rem 1.25rem;
	border: 1px solid color-mix(in oklab, currentColor 25%, transparent);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.womo-basis-toggle button:hover {
	background: color-mix(in oklab, currentColor 5%, transparent);
}

.womo-basis-toggle button[aria-pressed="true"] {
	border-color: currentColor;
	background: currentColor;
}

.womo-basis-toggle button[aria-pressed="true"] span {
	color: var(--wp--preset--color--porcelain);
}

:where(.is-style-surface-night) .womo-basis-toggle button[aria-pressed="true"] span {
	color: var(--wp--preset--color--base);
}

.womo-basis-toggle button:focus-visible {
	outline: 1px solid var(--wp--preset--color--lumina);
	outline-offset: 2px;
}

/* Editorial band: copy sits low on the image, in the light text colour. */
.womo-editorial-band .wp-block-cover__inner-container > * {
	max-width: 36rem;
	margin-block: 0;
}

.womo-editorial-band .wp-block-cover__inner-container > * + * {
	margin-top: 1.25rem;
}

.womo-editorial-band .is-style-eyebrow {
	color: var(--wp--preset--color--champagne);
}

.womo-editorial-band h2 {
	color: var(--wp--preset--color--contrast);
	font-weight: 300;
}

.womo-product__content > .womo-editorial-band {
	margin-top: clamp(6rem, 10vw, 8rem);
	margin-bottom: 0;
}

/* ---- Refinements after review on the product page ---- */

/* Rows: tight rhythm inside each row (heading, label, text, chips). */
:is(.is-style-rows, .is-style-numbered-rows) :where(.wp-block-group) > * + *,
.is-style-numbered-rows > * > * + * {
	margin-top: 0.75rem;
}

:is(.is-style-rows, .is-style-numbered-rows) h3 + .is-style-eyebrow {
	margin-top: 0.375rem;
}

:is(.is-style-rows, .is-style-numbered-rows) .is-style-chips {
	margin-top: 1rem;
}

/* The text beside an icon or a fixed label takes the remaining width. */
.is-style-rows > .is-layout-flex > :last-child {
	flex: 1 1 18rem;
	min-width: 0;
}

/* Nutrition: caption above the table, small print below. */
.wp-block-table.is-style-nutrition {
	display: flex;
	flex-direction: column;
}

.wp-block-table.is-style-nutrition .wp-element-caption {
	order: -1;
}

.wp-block-table.is-style-nutrition ~ p {
	margin-top: 1.5rem;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted-foreground);
}

/*
 * Editorial band: copy lines up with the page content, not the screen edge.
 * The inner container carries the root padding, so it is the wide width plus
 * that padding. Core's content-position rule sets width:auto and margin:0
 * with a doubled class selector, hence !important.
 */
.womo-editorial-band .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: calc(var(--wp--style--global--wide-size, 1400px) + var(--wp--style--root--padding-left, 0px) + var(--wp--style--root--padding-right, 0px));
	margin-inline: auto !important;
}

/* Constrained layout would centre the copy; keep it on the left edge. */
.womo-editorial-band .wp-block-cover__inner-container > * {
	margin-left: 0 !important;
}

/* -------------------------------------------------------------------------
 * Light surfaces remap champagne and muted text to graphite, as Lovable
 * does, so labels, icons and lines stay legible on stone and vanilla.
 * ---------------------------------------------------------------------- */

:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) {
	--wp--preset--color--champagne: #454A4F;
	--wp--preset--color--muted-foreground: #2D333D;
}

/* Dark image bands inside light surfaces keep the night palette. */
.womo-editorial-band {
	--wp--preset--color--champagne: #C8B8A6;
	--wp--preset--color--muted-foreground: #A1A5AA;
}

.womo-editorial-band p:not(.is-style-eyebrow) {
	color: color-mix(in oklab, var(--wp--preset--color--contrast) 80%, transparent);
}

/* -------------------------------------------------------------------------
 * Group: "Carousel" — children sit in a row that scrolls sideways with
 * snapping. main.js adds a counter and previous/next buttons above it.
 * ---------------------------------------------------------------------- */

.wp-block-group.is-style-carousel {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 78%;
	gap: 1.25rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 0.5rem;
}

.wp-block-group.is-style-carousel::-webkit-scrollbar {
	display: none;
}

.wp-block-group.is-style-carousel > * {
	margin: 0 !important;
	scroll-snap-align: start;
}

@media (min-width: 600px) {
	.wp-block-group.is-style-carousel {
		grid-auto-columns: 44%;
	}
}

@media (min-width: 1024px) {
	.wp-block-group.is-style-carousel {
		grid-auto-columns: calc((100% - 3 * 1.25rem) / 3.6);
	}
}

.womo-carousel-controls {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.womo-carousel-controls__count {
	margin-right: 0.75rem;
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: tabular-nums;
}

.womo-carousel-controls button {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid color-mix(in oklab, currentColor 30%, transparent);
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: border-color 0.3s ease, opacity 0.3s ease;
}

.womo-carousel-controls button:hover {
	border-color: currentColor;
}

.womo-carousel-controls button:disabled {
	opacity: 0.35;
	cursor: default;
}

.womo-carousel-controls button:focus-visible {
	outline: 1px solid var(--wp--preset--color--lumina);
	outline-offset: 2px;
}

/* Group: "Cards" — four across on wide screens, two on tablets. */
.wp-block-group.is-style-cards {
	display: grid;
	gap: 2.5rem 1.5rem;
}

.wp-block-group.is-style-cards > * {
	margin: 0 !important;
	min-width: 0;
}

@media (min-width: 600px) {
	.wp-block-group.is-style-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.wp-block-group.is-style-cards {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.is-style-cards .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0.5rem;
}

.is-style-cards > * > * {
	margin-block: 0;
}

.is-style-cards > * > * + * {
	margin-top: 0.75rem;
}

.is-style-cards .wp-block-image + * {
	margin-top: 1.25rem;
}

.is-style-cards h3 {
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.4;
}

.is-style-cards p:not(.is-style-eyebrow) {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted-foreground);
}

/* Core Details as an expandable row: "See all ingredients", system notes. */
.is-style-cards .wp-block-details {
	border-top: 1px solid color-mix(in oklab, currentColor 18%, transparent);
}

.is-style-cards .wp-block-details summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	list-style: none;
	cursor: pointer;
}

.is-style-cards .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.is-style-cards .wp-block-details summary::after {
	content: "+";
	font-size: 1.125rem;
	line-height: 1;
}

.is-style-cards .wp-block-details[open] summary::after {
	content: "−";
}

.is-style-cards .wp-block-details > :not(summary) {
	margin-top: 0;
}

.is-style-cards .wp-block-details .womo-ingredients__list {
	display: block;
	margin: 0;
	border-top: 1px solid color-mix(in oklab, currentColor 18%, transparent);
}

.is-style-cards .wp-block-details .womo-ingredients__item {
	margin-inline: 0;
	padding-inline: 0;
	border-radius: 0;
}

/* System cards: the name is the summary, larger. */
.womo-systems .wp-block-details summary {
	padding-bottom: 0.75rem;
	border-bottom: 1px solid color-mix(in oklab, currentColor 18%, transparent);
	font-size: 1.25rem;
	line-height: 1.4;
}

.womo-systems .wp-block-details {
	border-top: 0;
}

.womo-systems .wp-block-details p {
	margin-top: 0.75rem;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted-foreground);
}

/* -------------------------------------------------------------------------
 * Home hero: full screen, copy low on the left, fading into night.
 * ---------------------------------------------------------------------- */

.womo-hero.wp-block-cover {
	min-height: 100svh !important;
}

.womo-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(to bottom, transparent 50%, var(--wp--preset--color--base));
	pointer-events: none;
}

.womo-hero .wp-block-cover__image-background {
	object-position: 66% center;
}

@media (min-width: 782px) {
	.womo-hero .wp-block-cover__image-background {
		object-position: center;
	}
}

.womo-hero .wp-block-cover__inner-container {
	z-index: 1;
	width: 100% !important;
	max-width: calc(var(--wp--style--global--wide-size, 1400px) + var(--wp--style--root--padding-left, 0px) + var(--wp--style--root--padding-right, 0px));
	margin-inline: auto !important;
}

.womo-hero .wp-block-cover__inner-container > * {
	max-width: 26rem;
	margin-left: 0 !important;
}

.womo-hero h1 {
	line-height: 0;
}

.womo-hero h1 img {
	width: clamp(14rem, 22vw, 20rem);
	height: auto;
}

.womo-hero .womo-hero__title {
	font-size: clamp(1.25rem, 1.7vw, 1.5rem);
	font-weight: 400;
	line-height: 1.625;
}

/* -------------------------------------------------------------------------
 * Home: section rhythm and details.
 * ---------------------------------------------------------------------- */

.womo-section {
	padding-block: clamp(5rem, 9vw, 7rem);
}

.womo-section--tall {
	padding-block: clamp(6rem, 12vw, 11rem);
}

.womo-centred > * {
	margin-inline: auto !important;
	text-align: center;
}

/* Foundation claims: icon above, display text below, centred. */
.womo-claims-row .wp-block-column {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.womo-claims-row h2 {
	max-width: 20rem;
	margin-top: 2rem;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	line-height: 1.2;
}

/* The "becomes" line in Simplify. */
.womo-becomes {
	width: 1px;
	height: 6rem;
	margin: 3.5rem auto !important;
	background: linear-gradient(to bottom, color-mix(in oklab, var(--wp--preset--color--champagne) 10%, transparent), color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent), color-mix(in oklab, var(--wp--preset--color--lumina) 70%, transparent));
}

/* Doctor credentials under a faint rule. */
.womo-credentials {
	padding-top: 1.5rem;
	border-top: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 15%, transparent);
}

.womo-credentials > * {
	margin-block: 0;
}

.womo-credentials > * + * {
	margin-top: 0.5rem;
}

.womo-credentials .is-style-eyebrow {
	font-weight: 400 !important;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-credentials .womo-credentials__name {
	font-family: var(--wp--preset--font-family--jost);
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0;
	color: var(--wp--preset--color--champagne);
}

/* Explore pages: image cards with an arrow beside the title. */
.womo-explore .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.7s ease;
}

.womo-explore .wp-block-image {
	overflow: hidden;
}

.womo-explore .wp-block-column:hover .wp-block-image img {
	transform: scale(1.05);
}

.womo-explore h3 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 1.5rem;
	font-weight: 300;
}

.womo-explore h3 a {
	text-decoration: none;
}

.womo-explore h3::after {
	content: "";
	width: 1.25rem;
	height: 1.25rem;
	background: var(--wp--preset--color--champagne);
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (prefers-reduced-motion: reduce) {
	.womo-explore .wp-block-image img {
		transition: none;
	}
}

/* Full-width sections stack edge to edge, without page background between them. */
.wp-block-post-content > .alignfull + .alignfull {
	margin-block-start: 0;
}

.womo-award {
	max-width: 24rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.65;
	color: color-mix(in oklab, currentcolor 60%, transparent);
}

.womo-claims-row .wp-block-womo-icon {
	margin-inline: auto;
}

/* -------------------------------------------------------------------------
 * Legal and customer care pages (Lovable LegalPage): heading block, then
 * titled sections with a hairline above each, beside a small label.
 * ---------------------------------------------------------------------- */

/* Full-width first block, so .womo-main drops its header offset: add it here. */
.womo-legal {
	padding-block: calc(var(--womo-header-h) + clamp(3rem, 6vw, 5rem)) clamp(4rem, 7vw, 6rem);
}

.womo-legal__intro > * {
	margin-block: 0;
}

.womo-legal__intro > * + * {
	margin-top: 1.5rem;
}

.womo-legal__intro h1 {
	font-size: var(--wp--preset--font-size--xx-large);
}

.womo-legal__intro .is-style-tip {
	max-width: 40rem;
	margin-top: 2rem;
	border-left-width: 1px;
	color: var(--wp--preset--color--champagne);
}

.womo-legal__body {
	margin-top: clamp(3rem, 6vw, 4rem);
}

.womo-legal__sections {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	max-width: 42rem;
}

.womo-legal__sections > * {
	margin: 0;
	padding-top: 1.5rem;
	border-top: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 20%, transparent);
}

.womo-legal__sections > * > * {
	margin-block: 0;
}

.womo-legal__sections h2 {
	font-size: 1.5rem;
	line-height: 1.3;
}

.womo-legal__sections p {
	margin-top: 1rem;
	line-height: 1.7;
	color: color-mix(in oklab, currentColor 70%, transparent);
}

/* -------------------------------------------------------------------------
 * Shop band (Lovable ShopBand): wordmark and pre-order link closing a page.
 * ---------------------------------------------------------------------- */

.womo-shop-band {
	padding-block: clamp(4rem, 7vw, 6rem);
}

.womo-shop-band__inner {
	gap: 2rem;
}

.womo-shop-band__inner > .wp-block-group > * {
	margin-block: 0;
}

.womo-shop-band__inner .womo-product-heading {
	margin-top: 1.25rem;
}

.womo-shop-band__inner .womo-product-heading img {
	width: 10rem;
}

.womo-shop-band__inner .is-style-lead {
	margin-top: 1rem;
}

/* -------------------------------------------------------------------------
 * Page hero (Lovable MediaHero): tall image, copy low on the left, a soft
 * night wash at the top for the header and a fade into the page below.
 * ---------------------------------------------------------------------- */

.womo-page-hero.wp-block-cover {
	min-height: 640px !important;
}

@media (min-width: 782px) {
	.womo-page-hero.wp-block-cover {
		min-height: 700px !important;
	}
}

.womo-page-hero::after,
.womo-vision::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.womo-page-hero::after {
	background: linear-gradient(to bottom, color-mix(in oklab, var(--wp--preset--color--base) 60%, transparent), transparent 50%, var(--wp--preset--color--base));
}

.womo-page-hero .wp-block-cover__inner-container,
.womo-vision .wp-block-cover__inner-container {
	z-index: 1;
	width: 100% !important;
	max-width: calc(var(--wp--style--global--wide-size, 1400px) + var(--wp--style--root--padding-left, 0px) + var(--wp--style--root--padding-right, 0px));
	margin-inline: auto !important;
}

.womo-page-hero .wp-block-cover__inner-container > *,
.womo-vision .wp-block-cover__inner-container > * {
	margin-left: 0 !important;
}

.womo-page-hero .wp-block-cover__inner-container > * + * {
	margin-top: 1.5rem;
}

.womo-page-hero h1 {
	max-width: 48rem;
	text-wrap: balance;
}

.womo-page-hero .is-style-lead {
	max-width: 36rem;
	color: color-mix(in oklab, currentColor 75%, transparent);
}

.womo-page-hero .wp-block-buttons {
	margin-top: 2rem;
}

/* -------------------------------------------------------------------------
 * Split: image beside copy. "Reverse" keeps the image first on phones but
 * puts it on the right from tablet up.
 * ---------------------------------------------------------------------- */

.womo-split > .wp-block-column > * {
	margin-block: 0;
}

.womo-split > .wp-block-column > * + * {
	margin-top: 1.25rem;
}

.womo-split > .wp-block-column > .wp-block-heading {
	margin-top: 1.5rem;
	max-width: 42rem;
	text-wrap: balance;
}

.womo-split > .wp-block-column > .wp-block-heading + * {
	margin-top: 1.5rem;
}

@media (min-width: 782px) {
	.womo-split--reverse {
		flex-direction: row-reverse;
	}
}

.womo-split .wp-element-caption {
	margin: 1rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--champagne);
	text-align: left;
}

.womo-split .wp-element-caption span {
	color: var(--wp--preset--color--muted-foreground);
}

/* A lead paragraph that carries the point: full text colour. */
.is-style-lead.womo-emphasis {
	color: inherit;
}

/* -------------------------------------------------------------------------
 * Story & Soul details: the circle (narrow column with a pull quote), the
 * values row and the vision band.
 * ---------------------------------------------------------------------- */

.womo-story-circle > * {
	margin-block: 0;
}

.womo-story-circle > * + * {
	margin-top: 1.25rem;
}

.womo-story-circle > .wp-block-heading {
	margin-top: 1.5rem;
}

.womo-story-circle > .wp-block-heading + * {
	margin-top: 1.5rem;
}

.wp-block-quote.womo-pullquote {
	margin-block: 2.5rem !important;
	padding-left: 1.5rem;
	border-left: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
	font-family: var(--wp--preset--font-family--jost);
	font-size: clamp(1.5rem, 2.4vw, 1.875rem);
	font-weight: 300;
	line-height: 1.35;
}

.wp-block-quote.womo-pullquote p {
	margin: 0;
}

.womo-intro > * {
	margin-block: 0;
}

.womo-intro > * + * {
	margin-top: 1.5rem;
}

.womo-values {
	margin-top: 3rem !important;
}

.womo-values > .wp-block-column {
	padding-top: 1.5rem;
	border-top: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 20%, transparent);
}

.womo-values > .wp-block-column > * {
	margin-block: 0;
}

.womo-values h3 {
	font-size: 1.5rem;
	line-height: 1.3;
}

.womo-values p {
	margin-top: 1rem;
	line-height: 1.7;
	color: color-mix(in oklab, currentColor 70%, transparent);
}

.womo-vision.wp-block-cover {
	min-height: 560px !important;
}

@media (min-width: 782px) {
	.womo-vision.wp-block-cover {
		min-height: 640px !important;
	}
}

.womo-vision::after {
	background: linear-gradient(to bottom, color-mix(in oklab, var(--wp--preset--color--base) 65%, transparent), color-mix(in oklab, var(--wp--preset--color--base) 25%, transparent), var(--wp--preset--color--base));
}

.womo-vision .wp-block-cover__inner-container > * {
	max-width: 36rem;
	margin-block: 0;
}

.womo-vision .wp-block-cover__inner-container > * + * {
	margin-top: 1.5rem;
}

/*
 * Covers whose copy lines up with the wide content (home hero, editorial band,
 * page hero, vision): the inner container carries the root padding, so the
 * cover's own side padding (core default 1em) must go.
 */
:is(.womo-hero, .womo-editorial-band, .womo-page-hero, .womo-vision, .womo-bigger, .womo-film-band).wp-block-cover {
	padding-inline: 0 !important;
}

:is(.womo-hero, .womo-editorial-band, .womo-page-hero, .womo-vision, .womo-bigger, .womo-film-band) .wp-block-cover__inner-container {
	box-sizing: border-box;
	padding-inline: var(--wp--style--root--padding-left, 0px) var(--wp--style--root--padding-right, 0px);
}

/* -------------------------------------------------------------------------
 * Research article (single womo_research): header column, wide image,
 * reading column, original-research box.
 * ---------------------------------------------------------------------- */

.womo-article {
	padding-block: calc(var(--womo-header-h) + clamp(2rem, 4vw, 3rem)) clamp(5rem, 9vw, 7rem);
}

.womo-article__header {
	padding-block: clamp(2.5rem, 5vw, 4rem);
}

.womo-article__header > * {
	margin-block: 0;
}

.womo-article__header > * + * {
	margin-top: 1.5rem;
}

.womo-article__header .wp-block-post-title {
	text-wrap: pretty;
}

.womo-article__intro {
	margin-top: 2rem !important;
	max-width: 48rem;
	font-size: clamp(1.125rem, 1.6vw, 1.25rem);
	line-height: 1.7;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-article__intro p {
	margin: 0;
}

.womo-article__header .is-part-byline {
	margin-top: 2rem;
}

.womo-article__figure > * {
	margin-block: 0;
}

.womo-article__figure .is-part-caption {
	margin-top: 0.75rem;
}

@media (max-width: 781px) {
	.womo-article__figure .wp-block-post-featured-image img {
		aspect-ratio: 4 / 3 !important;
	}
}

.womo-article__content {
	margin-top: clamp(3rem, 5vw, 4rem);
}

.womo-article__content > h2 {
	margin-top: clamp(2.5rem, 4vw, 3rem);
	font-size: clamp(1.5rem, 2.2vw, 1.875rem);
	font-weight: 400;
	line-height: 1.25;
}

.womo-article__content > h2 + p {
	margin-top: 1.25rem;
}

.womo-article__content > p {
	font-size: 1.125rem;
	line-height: 1.8;
}

.womo-article__content > .womo-research-note {
	padding-left: 1.25rem;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--wp--preset--color--muted-foreground);
	border-left: 2px solid color-mix(in oklab, currentcolor 30%, transparent);
}

.womo-article__footer > * {
	margin-block: 0;
}

.womo-article__footer .is-part-source {
	margin-top: clamp(3rem, 5vw, 4rem);
}

.womo-article__disclaimer {
	margin-top: 2rem !important;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.7;
	color: var(--wp--preset--color--muted-foreground);
}

/* -------------------------------------------------------------------------
 * Science: the seven windows, pilot study figures and facts.
 * ---------------------------------------------------------------------- */

.womo-windows {
	counter-reset: womo-window;
	margin-top: 3rem !important;
	column-gap: 3rem !important;
	row-gap: 0 !important;
}

@media (max-width: 781px) {
	.womo-windows {
		grid-template-columns: 1fr !important;
	}
}

.womo-windows > * {
	position: relative;
	margin: 0 !important;
	padding: 1.75rem 0 1.75rem 2.75rem;
	border-top: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 20%, transparent);
	counter-increment: womo-window;
}

.womo-windows > *::before {
	content: counter(womo-window, decimal-leading-zero);
	position: absolute;
	top: 2.25rem;
	left: 0;
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--small);
	color: color-mix(in oklab, var(--wp--preset--color--champagne) 50%, transparent);
}

.womo-windows > * > * {
	margin-block: 0;
}

.womo-windows h3 {
	font-size: 1.5rem;
	line-height: 1.3;
}

.womo-windows p {
	margin-top: 0.75rem;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-pilot > .wp-block-columns:first-child .womo-intro > * {
	margin-block: 0;
}

.womo-pilot > .wp-block-columns:first-child .womo-intro > * + * {
	margin-top: 1.5rem;
}

.womo-stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin-top: clamp(3rem, 5vw, 4rem) !important;
	overflow: hidden;
	background: color-mix(in oklab, currentcolor 15%, transparent);
	border-radius: 0.5rem;
}

@media (min-width: 1024px) {
	.womo-stats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.womo-stats > * {
	margin: 0 !important;
	padding: clamp(1.5rem, 3vw, 2rem);
	background: var(--wp--preset--color--vanilla);
}

.womo-stats > * > * {
	margin-block: 0;
}

.womo-stats .womo-stats__value {
	font-family: var(--wp--preset--font-family--jost);
	font-size: clamp(2.25rem, 4.5vw, 3.75rem);
	font-weight: 400;
	line-height: 1.1;
}

.womo-stats .womo-stats__value + p {
	margin-top: 0.75rem;
	font-size: 1rem;
	line-height: 1.65;
}

.womo-stats__note {
	margin-top: 0.75rem !important;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-stats__note p {
	margin: 0;
}

.womo-pilot__story {
	margin-top: clamp(3.5rem, 6vw, 5rem) !important;
}

.womo-pilot__story img {
	object-position: top;
}

@media (min-width: 782px) {
	.womo-pilot__story img {
		max-height: 620px;
	}
}

.wp-block-quote.womo-pullquote.is-accent {
	margin-top: 0 !important;
	border-left: 2px solid var(--wp--preset--color--offer);
}

.wp-block-quote.womo-pullquote cite {
	display: block;
	margin-top: 1rem;
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-facts {
	margin-top: 2.5rem !important;
	border-top: 1px solid color-mix(in oklab, currentcolor 15%, transparent);
}

.womo-facts > * {
	display: grid;
	gap: 0.5rem;
	margin: 0 !important;
	padding-block: 1.25rem;
	border-bottom: 1px solid color-mix(in oklab, currentcolor 15%, transparent);
}

.womo-facts > :last-child {
	border-bottom: 0;
}

@media (min-width: 600px) {
	.womo-facts > * {
		grid-template-columns: 10rem 1fr;
		gap: 1.5rem;
	}
}

.womo-facts p {
	margin: 0;
	line-height: 1.7;
}

.womo-facts p:not(.is-style-eyebrow) {
	color: var(--wp--preset--color--muted-foreground);
}

/* Anchored sections clear the fixed header. */
#pilot-study,
#research-library {
	scroll-margin-top: calc(var(--womo-header-h) + 1rem);
}

/* -------------------------------------------------------------------------
 * Ingredients page: ruled sections, nutrition tally, allergens, claims band.
 * ---------------------------------------------------------------------- */

.womo-section--ruled {
	border-top: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 15%, transparent);
}

.womo-tally {
	margin-top: 2.5rem !important;
	border-block: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 15%, transparent);
}

.womo-tally > * {
	gap: 1.5rem;
	margin: 0 !important;
	padding-block: 1rem;
	border-bottom: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 15%, transparent);
}

.womo-tally > :last-child {
	border-bottom: 0;
}

.womo-tally p {
	margin: 0;
	font-weight: 300;
	color: color-mix(in oklab, currentcolor 85%, transparent);
}

.womo-tally .womo-tally__count {
	flex-shrink: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-foreground);
}

.womo-allergens {
	margin-top: 1.5rem !important;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 300;
	line-height: 1.7;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-allergens strong {
	font-weight: 400;
	color: var(--wp--preset--color--contrast);
}

.womo-values .wp-block-womo-icon + h3 {
	margin-top: 1.25rem;
}

.womo-centred > .wp-block-heading {
	margin-top: 1.5rem;
}

.womo-claims-band {
	padding-block: clamp(3.5rem, 6vw, 5rem);
}

/* -------------------------------------------------------------------------
 * Ritual: steps, recipes, community call-out, timing, the bigger ritual.
 * ---------------------------------------------------------------------- */

.womo-steps {
	margin-top: 3rem !important;
}

.womo-steps .wp-block-column > * {
	margin-block: 0;
}

.womo-steps h3 {
	margin-top: 1.5rem;
	font-size: clamp(1.75rem, 2.4vw, 1.875rem);
}

.womo-steps h3 + p {
	margin-top: 1rem;
	line-height: 1.7;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-steps__tip {
	margin-top: 2.5rem !important;
}

.womo-steps__tip .is-style-tip {
	max-width: 48rem;
}

.womo-steps__tip h3 {
	font-size: 1.25rem;
}

.womo-steps__tip p {
	line-height: 1.7;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-recipes {
	display: grid;
	gap: 1.5rem;
	margin-top: 3.5rem !important;
	counter-reset: womo-recipe;
}

@media (min-width: 782px) {
	.womo-recipes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.womo-recipe {
	position: relative;
	margin: 0 !important;
	overflow: hidden;
	background: color-mix(in oklab, var(--wp--preset--color--contrast) 3%, transparent);
	border: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 15%, transparent);
	border-radius: 1rem;
	counter-increment: womo-recipe;
	transition: background-color 0.3s ease;
}

.womo-recipe:hover {
	background: color-mix(in oklab, var(--wp--preset--color--contrast) 6%, transparent);
}

.womo-recipe::before {
	content: counter(womo-recipe, decimal-leading-zero);
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 1;
	padding: 0.25rem 0.75rem;
	font-size: 0.75rem;
	color: var(--wp--preset--color--champagne);
	background: color-mix(in oklab, var(--wp--preset--color--base) 70%, transparent);
	border-radius: 999px;
	backdrop-filter: blur(8px);
}

.womo-recipe > .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.womo-recipe > .wp-block-image img {
	display: block;
	width: 100%;
	transition: transform 0.7s ease;
}

.womo-recipe:hover > .wp-block-image img {
	transform: scale(1.05);
}

.womo-recipe__body {
	padding: clamp(1.5rem, 3vw, 2rem);
}

.womo-recipe__body > * {
	margin-block: 0;
}

.womo-recipe__body h3 {
	margin-top: 0.75rem;
	font-size: clamp(1.75rem, 2.4vw, 1.875rem);
}

.womo-recipe__list {
	display: grid;
	gap: 0.5rem;
	margin-top: 1.25rem !important;
	padding: 0;
	list-style: none;
}

.womo-recipe__list li {
	position: relative;
	padding-left: 1rem;
	font-weight: 300;
	color: color-mix(in oklab, currentcolor 80%, transparent);
}

.womo-recipe__list li::before {
	content: "";
	position: absolute;
	top: 0.65em;
	left: 0;
	width: 0.25rem;
	height: 0.25rem;
	background: var(--wp--preset--color--champagne);
	border-radius: 50%;
}

.womo-recipe__method {
	margin-top: 1.5rem !important;
	padding-top: 1.25rem;
	line-height: 1.7;
	color: var(--wp--preset--color--muted-foreground);
	border-top: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 15%, transparent);
}

.womo-callout {
	gap: 1.5rem;
	margin-top: 2.5rem !important;
	padding: clamp(2rem, 4vw, 2.5rem);
	background: linear-gradient(to bottom right, color-mix(in oklab, var(--wp--preset--color--champagne) 10%, transparent), transparent);
	border: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 25%, transparent);
	border-radius: 1rem;
}

.womo-callout__text {
	max-width: 36rem;
}

.womo-callout__text > * {
	margin-block: 0;
}

.womo-callout__text h3 {
	margin-top: 1rem;
	font-size: clamp(1.75rem, 2.4vw, 1.875rem);
}

.womo-callout__text p:not(.is-style-eyebrow) {
	margin-top: 0.75rem;
	line-height: 1.625;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-callout__text strong {
	font-weight: inherit;
	color: var(--wp--preset--color--champagne);
}

/* Sticky intro without the hairline above (Lovable's timing and questions). */
.wp-block-columns.is-style-sticky-intro.womo-unruled {
	padding-top: 0;
	border-top: 0;
}

.womo-timeline > .is-layout-flex {
	gap: 1.5rem;
}

.womo-timeline .womo-timeline__when {
	flex-shrink: 0;
	width: 6rem;
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--small);
	color: color-mix(in oklab, currentcolor 70%, transparent);
}

.womo-bigger.wp-block-cover {
	min-height: 0 !important;
}

.womo-bigger::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(to bottom, var(--wp--preset--color--base), color-mix(in oklab, var(--wp--preset--color--base) 80%, transparent), var(--wp--preset--color--base));
	pointer-events: none;
}

.womo-bigger .wp-block-cover__inner-container {
	z-index: 1;
	width: 100% !important;
	max-width: calc(var(--wp--style--global--wide-size, 1400px) + var(--wp--style--root--padding-left, 0px) + var(--wp--style--root--padding-right, 0px));
	margin-inline: auto !important;
}

.womo-bigger .wp-block-cover__inner-container > * {
	margin-left: 0 !important;
}

.womo-bigger .womo-intro {
	max-width: 42rem;
}

.womo-bigger .is-style-lead {
	color: color-mix(in oklab, currentcolor 80%, transparent);
}

.womo-bigger__list {
	display: grid;
	gap: 1rem;
	max-width: none !important;
	margin-top: 3.5rem !important;
	counter-reset: womo-bigger;
}

@media (min-width: 600px) {
	.womo-bigger__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.womo-bigger__list {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.womo-bigger__list > * {
	margin: 0 !important;
	padding: 1.5rem;
	background: color-mix(in oklab, var(--wp--preset--color--base) 50%, transparent);
	border: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 20%, transparent);
	border-radius: 1rem;
	backdrop-filter: blur(12px);
	counter-increment: womo-bigger;
	transition: transform 0.5s ease, border-color 0.5s ease;
}

.womo-bigger__list > *:hover {
	border-color: color-mix(in oklab, var(--wp--preset--color--champagne) 50%, transparent);
	transform: translateY(-0.25rem);
}

.womo-bigger__list > *::before {
	content: counter(womo-bigger, decimal-leading-zero);
	display: block;
	font-size: 3rem;
	font-weight: 200;
	line-height: 1;
	color: color-mix(in oklab, var(--wp--preset--color--champagne) 70%, transparent);
}

.womo-bigger__list h3 {
	margin: 2rem 0 0;
	font-size: 1.25rem;
	font-weight: 400;
}

.womo-bigger__list p {
	margin: 0.75rem 0 0;
	line-height: 1.7;
	color: color-mix(in oklab, currentcolor 70%, transparent);
}

#questions {
	scroll-margin-top: calc(var(--womo-header-h) + 1rem);
}

@media (prefers-reduced-motion: reduce) {
	.womo-recipe,
	.womo-recipe > .wp-block-image img,
	.womo-bigger__list > * {
		transition: none;
	}

	.womo-recipe:hover > .wp-block-image img,
	.womo-bigger__list > *:hover {
		transform: none;
	}
}

/* -------------------------------------------------------------------------
 * Quality: principles and steps with an icon column, checks, tests,
 * film band, certifications, B6 meter.
 * ---------------------------------------------------------------------- */

.womo-points {
	counter-reset: womo-point;
}

.womo-points > * {
	position: relative;
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	column-gap: 1.25rem;
	margin: 0 !important;
	padding: 1.75rem 0.75rem;
	border-radius: 0.5rem;
	counter-increment: womo-point;
	transition: background-color 0.5s ease;
}

@media (min-width: 782px) {
	.womo-points > * {
		grid-template-columns: 4rem minmax(0, 1fr);
		column-gap: 1.75rem;
		padding-inline: 1.25rem;
	}
}

.womo-points > *:hover {
	background: color-mix(in oklab, currentcolor 4%, transparent);
}

.womo-points > * > * {
	grid-column: 2;
	margin: 0;
}

.womo-points > * > .wp-block-womo-icon {
	grid-row: 1 / span 3;
	grid-column: 1;
	align-self: start;
	justify-self: center;
}

.womo-points > *:hover > .wp-block-womo-icon.is-style-plain {
	color: var(--wp--preset--color--lumina);
}

/* Principles: the number sits under the icon. */
.womo-points:not(.womo-points--steps) > *::after {
	content: counter(womo-point, decimal-leading-zero);
	position: absolute;
	top: 5rem;
	left: 0.75rem;
	width: 3rem;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted-foreground);
	text-align: center;
}

@media (min-width: 782px) {
	.womo-points:not(.womo-points--steps) > *::after {
		left: 1.25rem;
		width: 4rem;
	}
}

.womo-points h3 {
	font-size: clamp(1.5rem, 2.2vw, 1.75rem);
	font-weight: 400;
	line-height: 1.3;
}

.womo-points h3 + p {
	max-width: 36rem;
	margin-top: 0.75rem;
	font-size: clamp(1rem, 1.3vw, 1.125rem);
	line-height: 1.7;
	color: color-mix(in oklab, currentcolor 75%, transparent);
}

.womo-points--steps .is-style-eyebrow + h3 {
	margin-top: 0.75rem;
}

.womo-points--steps h3 + p {
	margin-top: 0.5rem;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-intro > .wp-block-image {
	margin-top: 2.25rem;
}

.womo-checks {
	margin-top: 2.5rem !important;
}

.womo-checks > * {
	gap: 1rem;
	margin: 0 !important;
	padding: 1rem 0.75rem;
	border-radius: 0.5rem;
	transition: background-color 0.3s ease;
}

.womo-checks > *:hover {
	background: color-mix(in oklab, currentcolor 4%, transparent);
}

.womo-checks .wp-block-womo-icon {
	flex-shrink: 0;
	margin-top: 0.2rem;
}

.womo-checks .wp-block-womo-icon svg {
	width: 1.25rem;
	height: 1.25rem;
}

.womo-checks p {
	margin: 0;
	line-height: 1.7;
}

.womo-note,
.womo-note p {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-foreground);
}

.womo-note p {
	margin: 0;
}

.wp-block-column > .womo-note {
	margin-top: 2rem;
}

.womo-section > .womo-note {
	margin-top: 1.5rem !important;
}

@media (min-width: 782px) {
	.womo-tests > * {
		display: grid;
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
		gap: 1rem;
	}
}

.womo-tests h3 {
	font-size: 1.25rem;
	font-weight: 400;
}

.womo-tests h3 + p {
	margin-top: 0.5rem;
	color: var(--wp--preset--color--muted-foreground);
}

@media (min-width: 782px) {
	.womo-tests h3 + p {
		margin-top: 0;
	}
}

.womo-film-band .womo-centred > * {
	margin-block: 0;
}

.womo-film-band .womo-centred > * + * {
	margin-top: 1.5rem;
}

.womo-film-band .is-style-lead {
	max-width: 40rem;
	color: color-mix(in oklab, currentcolor 90%, transparent);
}

.womo-film-band .wp-block-buttons {
	margin-top: 2.25rem !important;
}

.womo-film-band .womo-note {
	color: color-mix(in oklab, currentcolor 60%, transparent);
}

.womo-certs {
	display: grid;
	gap: 1rem;
	margin-top: 3rem !important;
}

@media (min-width: 600px) {
	.womo-certs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.womo-certs {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.womo-certs > * {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	justify-content: space-between;
	margin: 0 !important;
	padding: 1.75rem;
	border: 1px solid color-mix(in oklab, currentcolor 15%, transparent);
	border-radius: 1rem;
	transition: border-color 0.3s ease;
}

.womo-certs > *:hover {
	border-color: color-mix(in oklab, var(--wp--preset--color--champagne) 60%, transparent);
}

.womo-certs > * > * {
	margin: 0;
}

.womo-certs h3 {
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.4;
}

.womo-certs__status {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	align-self: flex-start;
	padding: 0.375rem 1rem;
	font-size: var(--wp--preset--font-size--small);
	border: 1px solid color-mix(in oklab, currentcolor 20%, transparent);
	border-radius: 999px;
}

.womo-certs__status::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	background: var(--wp--preset--color--champagne);
	border-radius: 50%;
}

.womo-certs__status.is-progress::before {
	background: var(--wp--preset--color--lumina);
}

.womo-meter {
	margin-top: 2.5rem !important;
	padding: 1.75rem;
	background: color-mix(in oklab, currentcolor 4%, transparent);
	border-radius: 0.5rem;
}

.womo-meter > * {
	margin: 0;
}

.womo-meter p {
	margin: 0;
	font-size: 1.125rem;
}

.womo-meter .womo-meter__value {
	font-size: 1.875rem;
	font-weight: 300;
}

.womo-meter .womo-meter__note {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-foreground);
}

/* The bar: full, because 10mg is the recommended maximum. */
.womo-meter__note::before {
	content: "";
	display: block;
	height: 0.5rem;
	margin: 1rem 0 0.75rem;
	background: linear-gradient(to right, color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent), var(--wp--preset--color--champagne));
	border-radius: 999px;
}

.womo-intro > .wp-block-quote {
	margin-top: 2.5rem !important;
}

#principles {
	scroll-margin-top: var(--womo-header-h);
}

@media (prefers-reduced-motion: reduce) {
	.womo-points > *,
	.womo-checks > *,
	.womo-certs > * {
		transition: none;
	}
}

/* -------------------------------------------------------------------------
 * Community: status line, commitments, packaging tabs, projects, join in,
 * #MyCore49 moments.
 * ---------------------------------------------------------------------- */

.womo-intro > .is-style-lead + .is-style-lead {
	margin-top: 1.5rem;
}

.womo-status {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	margin-top: 2rem !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--champagne);
}

.womo-status::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	background: var(--wp--preset--color--lumina);
	border-radius: 50%;
}

.womo-commitments {
	margin-top: 3rem !important;
}

@media (min-width: 1024px) {
	.womo-commitments > .wp-block-column:first-child {
		position: sticky;
		top: calc(var(--womo-header-h) + var(--wp-admin--admin-bar--height, 0px) + 1.5rem);
		align-self: flex-start;
	}
}

.womo-commitments .wp-block-image {
	margin: 0;
}

.womo-promises h3 {
	font-size: 1.5rem;
	font-weight: 400;
}

.womo-promises .womo-note {
	margin-top: 1rem;
}

/* Packaging tabs. Without JavaScript every panel shows, stacked. */
.womo-tabs {
	margin-top: 3rem !important;
}

.womo-tabs__panel {
	display: grid;
	gap: 2.5rem;
	margin: 0 !important;
}

.womo-tabs__panel + .womo-tabs__panel {
	margin-top: 4rem !important;
}

.womo-tabs__panel[hidden] {
	display: none;
}

.womo-tabs .wp-block-image {
	margin: 0;
}

.womo-tabs .wp-element-caption {
	margin-top: 1rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-foreground);
	text-align: left;
}

.womo-tabs__text > * {
	margin-block: 0;
}

.womo-tabs__text > * + * {
	margin-top: 1.5rem;
}

.womo-tabs__text h3 {
	font-size: clamp(1.75rem, 2.4vw, 1.875rem);
	font-weight: 300;
}

.womo-tabs.is-enhanced {
	display: grid;
	gap: 2.5rem;
}

.womo-tabs.is-enhanced .womo-tabs__panel:not([hidden]) {
	display: contents;
}

.womo-tabs.is-enhanced .womo-tabs__panel .wp-block-image {
	order: -1;
}

.womo-tabs.is-enhanced .womo-tabs__label {
	display: none;
}

.womo-tabs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.womo-tabs__tab {
	min-height: 2.75rem;
	padding: 0 1.25rem;
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--small);
	color: inherit;
	text-transform: uppercase;
	background: transparent;
	border: 1px solid color-mix(in oklab, currentcolor 50%, transparent);
	border-radius: 999px;
	cursor: pointer;
	transition: border-color 0.3s ease, background-color 0.3s ease;
}

.womo-tabs__tab:hover {
	border-color: currentcolor;
}

.womo-tabs__tab[aria-selected="true"] {
	background: color-mix(in oklab, currentcolor 8%, transparent);
	border-color: currentcolor;
}

.womo-tabs__tab:focus-visible {
	outline: 2px solid var(--wp--preset--color--lumina);
	outline-offset: 2px;
}

@media (min-width: 782px) {
	.womo-tabs__panel {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: clamp(2.5rem, 7vw, 5rem);
		align-items: start;
	}

	.womo-tabs.is-enhanced {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto 1fr;
		column-gap: clamp(2.5rem, 7vw, 5rem);
		row-gap: 2.5rem;
		align-items: start;
	}

	.womo-tabs.is-enhanced .womo-tabs__list {
		grid-row: 1;
		grid-column: 2;
	}

	.womo-tabs.is-enhanced .womo-tabs__panel .wp-block-image {
		grid-row: 1 / span 2;
		grid-column: 1;
	}

	.womo-tabs.is-enhanced .womo-tabs__text {
		grid-row: 2;
		grid-column: 2;
		min-height: 15rem;
	}
}

.womo-projects .wp-block-womo-icon svg {
	width: 2rem;
	height: 2rem;
}

.womo-projects .wp-block-womo-icon + .is-style-eyebrow {
	margin-top: 1.75rem;
}

.womo-projects .is-style-eyebrow + h3 {
	margin-top: 1.25rem;
}

.womo-projects h3 {
	font-weight: 400;
}

.womo-projects p:not(.is-style-eyebrow) {
	margin-top: 1.25rem;
	font-size: 1.125rem;
}

.womo-film-band--wide .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: calc(var(--wp--style--global--wide-size, 1400px) + var(--wp--style--root--padding-left, 0px) + var(--wp--style--root--padding-right, 0px));
	margin-inline: auto !important;
}

.womo-join__list > * {
	margin: 0 !important;
}

.womo-join__list > * + * {
	margin-top: 1.75rem !important;
}

.womo-join__list h3 {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 300;
}

.womo-join__list p {
	margin: 0.75rem 0 0;
	font-size: 1.125rem;
	line-height: 1.7;
	color: color-mix(in oklab, currentcolor 85%, transparent);
}

#our-start,
#join-in {
	scroll-margin-top: var(--womo-header-h);
}

.womo-moments__head {
	gap: 2rem;
}

.womo-moments__head .womo-intro {
	max-width: 42rem;
}

.womo-moments {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem 1rem;
	margin-top: 3rem !important;
}

@media (min-width: 782px) {
	.womo-moments {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 1.5rem;
	}
}

.womo-moments .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.womo-moments .wp-block-image img {
	display: block;
	width: 100%;
	transition: transform 0.7s ease;
}

.womo-moments .wp-block-image:hover img {
	transform: scale(1.05);
}

.womo-moments .wp-element-caption {
	margin-top: 1rem;
	font-size: clamp(0.875rem, 1.2vw, 1rem);
	color: color-mix(in oklab, currentcolor 85%, transparent);
	text-align: left;
}

@media (prefers-reduced-motion: reduce) {
	.womo-tabs__tab,
	.womo-moments .wp-block-image img {
		transition: none;
	}

	.womo-moments .wp-block-image:hover img {
		transform: none;
	}
}

/* -------------------------------------------------------------------------
 * Alignment with Lovable (measured): reading text in cards and the
 * display line used under wordmarks.
 * ---------------------------------------------------------------------- */

.womo-explore .is-style-lead {
	font-size: 1rem;
	line-height: 1.625;
}

/* "Every ingredient earns its place.", "49 ingredients. One intelligent formula." */
.womo-hero__title:not(.womo-hero *) {
	font-family: var(--wp--preset--font-family--jost);
	font-size: 1.25rem;
	line-height: 1.4;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-product-heading + .womo-hero__title {
	font-size: 1.125rem;
}

/* Section headings wrap like Lovable's SectionIntro (max-w-2xl). */
main h2.wp-block-heading:not(.womo-product-heading) {
	max-width: 42rem;
	text-wrap: balance;
}

/* Quieter reading text under a heading (Lovable text-base, muted). */
.womo-subtle {
	max-width: 36rem;
	font-size: 1rem;
	line-height: 1.625;
	color: var(--wp--preset--color--muted-foreground);
}

.is-style-cards .wp-block-details summary {
	line-height: 1.43;
}

.womo-explore h3 {
	line-height: 1.333;
}

.womo-hero .wp-block-cover__inner-container > p:not(.womo-hero__title) {
	font-size: 1.125rem;
	line-height: 1.625;
}

#health-notes .is-style-lead + .is-style-lead {
	color: color-mix(in oklab, currentcolor 50%, transparent);
}

/* Buttons after copy sit a little further down, as Lovable's mt-8/mt-10. */
:where(p, .wp-block-group, .wp-block-list, .wp-block-heading, .wp-block-image, .wp-block-womo-faq, .wp-block-womo-ingredient-directory, .wp-block-womo-price-summary) + .wp-block-buttons {
	margin-block-start: 2.25rem;
}

@media (max-width: 767px) {
	.is-style-lead {
		font-size: 1rem;
	}

	/* Columns whose image comes first on phones (the origin). */
	.womo-media-first > .wp-block-column:last-child {
		order: -1;
	}
}

/* Home: section padding as measured on Lovable (desktop values, scaled). */
body.home .womo-section:has(.womo-systems) {
	padding-block: 0.5rem clamp(7rem, 10vw, 9rem);
}

body.home .womo-section:has(> .wp-block-womo-constellation) {
	padding-block: clamp(4rem, 6.7vw, 6rem);
}

body.home .womo-section--tall:has(.womo-credentials) {
	padding-block: clamp(6rem, 11vw, 10rem);
}

body.home .womo-section:has(.wp-block-womo-faq) {
	padding-block: 0 clamp(7rem, 11vw, 10rem);
}

.womo-standard.wp-block-cover {
	padding-block: clamp(8rem, 14.5vw, 13rem) !important;
}

body.home .womo-section:has(.womo-claims-row) {
	padding-block: clamp(4rem, 7.8vw, 7rem);
}

/* The origin: narrower measure for heading and copy, portrait at 0.7. */
main .womo-media-first h2.wp-block-heading {
	max-width: 28rem;
	margin-top: 2.5rem;
}

.womo-media-first .is-style-lead {
	max-width: 32rem;
	line-height: 1.7;
}

.womo-media-first .wp-block-image img {
	width: 100%;
	aspect-ratio: 0.7;
	object-fit: cover;
}

@media (min-width: 782px) {
	.womo-media-first > .wp-block-column:last-child {
		flex-basis: 39.5% !important;
	}
}

/*
 * Home hero on phones (Lovable): the picture fills the top two thirds,
 * washed at the top and fading into night, so the copy sits on night.
 */
@media (max-width: 781px) {
	.womo-hero .wp-block-cover__image-background {
		height: 65%;
		object-position: 72% 50%;
	}

	.womo-hero::after {
		inset: 0 0 auto;
		height: 65%;
		background: linear-gradient(to bottom, color-mix(in oklab, var(--wp--preset--color--base) 35%, transparent) 0%, transparent 20%, transparent 55%, color-mix(in oklab, var(--wp--preset--color--base) 75%, transparent) 80%, var(--wp--preset--color--base) 100%);
	}
}

/* Explore cards: the heading link covers the whole card. */
.womo-explore .wp-block-column {
	position: relative;
}

.womo-explore h3 a::before {
	content: "";
	position: absolute;
	inset: 0;
}

/* Header navigation spacing as Lovable: 24px, 36px from 1280px. */
.womo-header__nav .wp-block-navigation__container {
	gap: 1.5rem;
}

@media (min-width: 1280px) {
	.womo-header__nav .wp-block-navigation__container {
		gap: 2.25rem;
	}
}

/* Side padding as Lovable: 24px on phones, 48px from 768px. */
@media (min-width: 768px) {
	html body {
		--wp--style--root--padding-left: 3rem;
		--wp--style--root--padding-right: 3rem;
	}
}

/*
 * Home hero copy (Lovable): copy column 26rem, but the reassurances run
 * on one line under the button; Lovable's rhythm between the lines.
 */
.womo-hero .wp-block-cover__inner-container > .wp-block-womo-claims {
	max-width: none;
	justify-content: flex-start;
}

.womo-hero .wp-block-cover__inner-container > h1 + .womo-hero__title {
	margin-top: 1.25rem;
}

.womo-hero .wp-block-cover__inner-container > .womo-hero__title + p {
	margin-top: 0.75rem;
}

.womo-hero .wp-block-cover__inner-container > p + .wp-block-buttons {
	margin-top: 2rem;
}

@media (min-width: 768px) {
	.womo-hero .womo-hero__title {
		font-size: 1.5rem;
	}

	.womo-hero h1 img {
		width: 20rem;
	}
}

@media (min-width: 768px) {
	.womo-hero.wp-block-cover {
		padding-bottom: 6rem !important;
	}
}

/* Header actions and phone header as Lovable. */
.womo-header__actions {
	gap: 0.75rem !important;
}

@media (max-width: 1023px) {
	.womo-header__inner {
		gap: 0.25rem !important;
	}

	.womo-header__actions {
		gap: 0.25rem !important;
		margin-left: auto !important;
	}

	.womo-header__nav .wp-block-navigation__responsive-container-open svg {
		width: 1.25rem;
		height: 1.25rem;
	}
}

@media (max-width: 767px) {
	.womo-header {
		padding-block: 1rem !important;
	}

	.womo-hero .womo-hero__title {
		font-size: 1.125rem;
	}

	.womo-hero .wp-block-cover__inner-container > p:not(.womo-hero__title) {
		font-size: 1rem;
	}
}

/*
 * Home hero scroll cue (Lovable): a thin chevron centred 2rem above the
 * bottom of the hero, bouncing gently; links to the next section. The
 * hero's bottom padding is a variable so the cue can sit inside it.
 */
.womo-hero.wp-block-cover {
	--womo-hero-pb: clamp(4rem, 8vw, 6rem);
	padding-bottom: var(--womo-hero-pb) !important;
}

@media (min-width: 768px) {
	.womo-hero.wp-block-cover {
		--womo-hero-pb: 6rem;
	}
}

.womo-hero .wp-block-cover__inner-container > .womo-scroll-cue {
	position: absolute;
	bottom: calc(2rem - var(--womo-hero-pb));
	left: 50%;
	max-width: none;
	margin: 0 !important;
	transform: translateX(-50%);
	transition: opacity 0.2s linear;
}

.womo-scroll-cue .wp-block-button__link {
	display: block;
	width: 2.5rem;
	height: 2.25rem;
	padding: 0;
	font-size: 0;
	color: color-mix(in oklab, var(--wp--preset--color--champagne) 80%, transparent);
	background: none;
	border: 0;
	border-radius: 0;
	animation: womo-arrow-bounce 2s ease-in-out infinite;
}

.womo-scroll-cue .wp-block-button__link::after {
	content: "";
	display: block;
	width: 1rem;
	height: 1rem;
	margin: auto;
	background: currentcolor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpolyline points='208 96 128 176 48 96' fill='none' stroke='black' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.womo-scroll-cue .wp-block-button__link:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--lumina);
	background: none;
}

@keyframes womo-arrow-bounce {
	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(10px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.womo-scroll-cue .wp-block-button__link {
		animation: none;
	}
}

/*
 * Focus rings for keyboard focus only, as Lovable. The parent theme
 * outlines every :focus (also after a mouse click or tap); keyboard focus
 * keeps its ring through :focus-visible.
 */
.wp-site-blocks :focus:not(:focus-visible) {
	outline: none;
}

/* Header search field: no browser focus ring; a thin lumina edge instead (Lovable). */
.womo-header__search .wp-block-search__input:focus {
	outline: none;
	border-color: var(--wp--preset--color--lumina);
	box-shadow: none;
}

/*
 * The standard (home): background film at 70%, a 40% night overlay and a
 * night-to-night wash (Lovable BackgroundFilm). Copy sits above both.
 */
.womo-standard .wp-block-cover__video-background,
.womo-standard .wp-block-cover__image-background {
	opacity: 0.7;
}

.womo-standard::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to bottom, var(--wp--preset--color--base), color-mix(in oklab, var(--wp--preset--color--base) 45%, transparent) 50%, var(--wp--preset--color--base));
	pointer-events: none;
}

.wp-block-cover.womo-standard .wp-block-cover__inner-container {
	z-index: 2 !important;
}

/* The standard: Lovable's rhythm between label, heading, lines and button. */
.womo-standard .womo-centred > .wp-block-heading {
	margin-top: 2.5rem;
}

.womo-standard .womo-centred > .wp-block-heading + p {
	margin-top: 2rem;
}

.womo-standard .womo-centred > p + p {
	margin-top: 0.75rem;
}

.womo-standard .womo-centred > .wp-block-buttons {
	margin-top: 3rem;
}

/* ---- Product page: sizes measured against Lovable /core49 ---- */

/* Benefit rows: compact headings (Lovable text-xl, regular weight). */
.womo-product__content :is(.is-style-rows, .is-style-numbered-rows) h3 {
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.75rem;
}

/* Timeline labels ("Week 1") read as plain muted text, not as eyebrows. */
.is-style-rows > .is-layout-flex > p.is-style-eyebrow:first-child {
	font-weight: 400 !important;
	text-transform: none;
}

.womo-basis-toggle button {
	font-weight: 500;
	line-height: 1.25rem;
}

/*
 * Sticky intro on the product page: Lovable's 12-column grid (intro spans 5,
 * content starts at column 7 and spans 6, 3rem gutters).
 */
@media (min-width: 782px) {
	.wp-block-columns.is-style-sticky-intro:is(.womo-product__content > *, :has(.womo-timeline)) {
		display: grid;
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3rem;
	}

	.wp-block-columns.is-style-sticky-intro:is(.womo-product__content > *, :has(.womo-timeline)) > .wp-block-column {
		flex-basis: auto !important;
	}

	.wp-block-columns.is-style-sticky-intro:is(.womo-product__content > *, :has(.womo-timeline)) > .wp-block-column:first-child {
		grid-column: 1 / span 5;
	}

	.wp-block-columns.is-style-sticky-intro:is(.womo-product__content > *, :has(.womo-timeline)) > .wp-block-column:last-child {
		grid-column: 7 / span 6;
	}
}

/* Pills and small print on light surfaces: solid muted ink, as in Lovable. */
:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) .wp-block-womo-claims .womo-claim__label {
	color: var(--wp--preset--color--muted-foreground);
}

.womo-product__content .is-style-tip p:not(.is-style-eyebrow) {
	color: var(--wp--preset--color--muted-foreground);
}

/* Lead beside a sticky intro reads in full ink (Lovable text-foreground). */
.womo-product__content .is-style-sticky-intro > .wp-block-column:last-child > .is-style-lead {
	color: var(--wp--preset--color--ink);
}

/* Editorial band measures: heading max-w-xl, text max-w-md (Lovable). */
main .womo-editorial-band h2.wp-block-heading {
	max-width: 36rem;
}

.womo-editorial-band .wp-block-cover__inner-container > p:not(.is-style-eyebrow) {
	max-width: 28rem;
}

/* Row numbers on light surfaces: solid muted ink, as Lovable renders them. */
:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) .is-style-numbered-rows > *::before {
	color: var(--wp--preset--color--muted-foreground);
}

/* Tip: a short champagne rule between two paragraphs (Lovable w-16, my-4). */
.wp-block-group.is-style-tip > .wp-block-separator {
	width: 4rem;
	height: 1px;
	margin: 1rem 0 !important;
	border: 0;
	background: color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
	opacity: 1;
}

.wp-block-group.is-style-tip > .wp-block-separator + * {
	margin-top: 0;
}

.womo-product__content .wp-block-group.is-style-tip > p {
	max-width: 36rem;
}

/* Product summary under the CORE49 wordmark: graphite, as in Lovable. */
.womo-product .wp-block-post-excerpt.is-style-lead {
	color: var(--wp--preset--color--graphite);
}

/* -------------------------------------------------------------------------
 * Forms (Gravity Forms, own CSS disabled in functions.php). Underlined
 * fields with champagne labels, as Lovable's newsletter form.
 * ---------------------------------------------------------------------- */

.gform_wrapper form {
	margin: 0;
}

.gform_wrapper .gform_fields {
	display: grid;
	gap: 2rem;
	margin: 0;
	padding: 0;
	border: 0;
}

@media (min-width: 640px) {
	.gform_wrapper .gform_fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gform_wrapper .gfield--width-full {
		grid-column: 1 / -1;
	}
}

.gform_wrapper .gfield {
	min-width: 0;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	border: 0;
}

.gform_wrapper .gfield_label,
.gform_wrapper .gfield_label_before_complex {
	display: block;
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wp--preset--color--champagne);
}

/* Required is announced by aria-required; the "(Required)" text is noise. */
.gform_wrapper .gfield_required {
	display: none;
}

.gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], textarea) {
	display: block;
	width: 100%;
	margin: 0;
	padding: 1rem 0;
	border: 0;
	border-bottom: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 25%, transparent);
	border-radius: 0;
	background: transparent;
	color: inherit;
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.5;
	transition: border-color 0.5s ease;
}

.gform_wrapper :is(input, textarea):focus {
	border-bottom-color: var(--wp--preset--color--lumina);
	outline: none;
}

.gform_wrapper .gform_footer {
	margin: 2.5rem 0 0;
	padding: 0;
}

.gform_wrapper .gform_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 100%;
	margin: 0;
	padding: 1.25rem 2.5rem;
	border: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--champagne);
	font-family: var(--wp--preset--font-family--jost);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.5;
	text-transform: uppercase;
	cursor: pointer;
	transition: border-color 0.5s ease;
}

.gform_wrapper .gform_button::after {
	content: "";
	width: 1.5rem;
	height: 1px;
	background: color-mix(in oklab, var(--wp--preset--color--champagne) 50%, transparent);
	transition: width 0.5s ease, background-color 0.5s ease;
}

.gform_wrapper .gform_button:hover {
	border-color: var(--wp--preset--color--champagne);
}

.gform_wrapper .gform_button:hover::after {
	width: 2.5rem;
	background: var(--wp--preset--color--lumina);
}

.gform_wrapper .gform_button:focus-visible {
	outline: 1px solid var(--wp--preset--color--lumina);
	outline-offset: 3px;
}

.gform_wrapper .gform_button:disabled {
	opacity: 0.5;
	cursor: default;
}

@media (min-width: 640px) {
	.gform_wrapper .gform_button {
		width: auto;
	}
}

/* Anti-spam field and helpers stay out of sight. */
.gform_wrapper :is(.gform_validation_container, .gfield--type-honeypot, .gform_hidden, .gfield_visibility_hidden),
.gform_wrapper .gform_ajax_spinner {
	display: none !important;
}

/* Validation */
/*
 * The error summary is hidden visually (each field shows its own message) but
 * stays for screen readers, which Gravity Forms moves focus to.
 */
.gform_wrapper .gform_validation_errors {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.gform_wrapper .gform_validation_errors :is(h2, p) {
	margin: 0;
	font-size: inherit;
	font-weight: 400;
	line-height: 1.5;
}

.gform_wrapper .gform_validation_errors ol {
	margin: 0.5rem 0 0;
	padding-left: 1.25rem;
}

.gform_wrapper .gform_validation_errors a {
	color: inherit;
}

.gform_wrapper .gform_submission_error .gform-icon {
	display: none;
}

.gform_wrapper .gfield_validation_message {
	order: 3;
	margin-top: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: var(--wp--preset--color--offer);
}

.gform_wrapper .gfield_error :is(input, textarea) {
	border-bottom-color: var(--wp--preset--color--offer);
}

@media (prefers-reduced-motion: reduce) {
	.gform_wrapper :is(input, textarea, .gform_button, .gform_button::after) {
		transition: none;
	}
}

/* ---- Home newsletter (Lovable Newsletter) ---- */

@media (min-width: 768px) {
	.womo-newsletter > .wp-block-columns {
		display: grid;
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3rem;
	}

	.womo-newsletter > .wp-block-columns > .wp-block-column {
		flex-basis: auto !important;
	}

	.womo-newsletter > .wp-block-columns > .wp-block-column:first-child {
		grid-column: 1 / span 5;
	}

	.womo-newsletter > .wp-block-columns > .wp-block-column:last-child {
		grid-column: 7 / span 6;
	}
}

.womo-newsletter .wp-block-column > * {
	max-width: 28rem;
	margin-block: 0;
}

.womo-newsletter .wp-block-column:first-child > * + * {
	margin-top: 2.5rem;
}

.womo-newsletter .wp-block-column:last-child > .is-style-lead {
	line-height: 1.7;
}

.womo-newsletter .wp-block-column:last-child > .is-style-lead + .is-style-lead {
	margin-top: 1.25rem;
}

.womo-newsletter .womo-newsletter__form {
	margin-top: 2.5rem;
}

/* Signed up: the confirmation takes the place of the intro and the form. */
.womo-newsletter .wp-block-column:has(.gform_confirmation_message) > .is-style-lead {
	display: none;
}

.womo-newsletter .wp-block-column:has(.gform_confirmation_message) > .womo-newsletter__form {
	margin-top: 0;
}

.womo-newsletter .gform_confirmation_message::before {
	content: "";
	display: block;
	width: 4rem;
	height: 1px;
	background: color-mix(in oklab, var(--wp--preset--color--lumina) 70%, transparent);
}

.womo-newsletter .gform_confirmation_message p {
	margin: 1rem 0 0;
	font-size: 1rem;
	line-height: 1.65;
	color: color-mix(in oklab, var(--wp--preset--color--contrast) 55%, transparent);
}

.womo-newsletter .gform_confirmation_message p:first-child {
	margin-top: 2rem;
	font-weight: 300;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--champagne);
}

main .womo-newsletter h2.wp-block-heading {
	max-width: 28rem;
}

@media (min-width: 768px) {
	.wp-block-group.womo-newsletter {
		padding-block: 9rem !important;
	}
}

.womo-newsletter .womo-newsletter__form > * {
	margin-block: 0;
}

@media (max-width: 767px) {
	.womo-newsletter > .wp-block-columns {
		row-gap: 3.75rem !important;
	}
}

/* -------------------------------------------------------------------------
 * Ritual: detail pass against Lovable /ritual (1440 and 400px).
 * ---------------------------------------------------------------------- */

/* Steps: image, then heading 1.5rem below, text 1rem below that. */
.womo-steps .wp-block-column > h3 {
	margin-top: 1.5rem;
}

.womo-steps .wp-block-column > h3 + p {
	margin-top: 1rem;
	line-height: 1.625;
}

/* Tips (ritual and product): heading 20/28, text leading-relaxed. */
.wp-block-group.is-style-tip h3 {
	line-height: 1.75rem;
}

.wp-block-group.is-style-tip p:not(.is-style-eyebrow) {
	line-height: 1.625;
}

/* Recipes */
.womo-recipe::before {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}

.womo-recipe__body .is-style-eyebrow {
	font-weight: 400 !important;
	color: var(--wp--preset--color--champagne);
}

.womo-recipe__list li {
	margin: 0;
	font-weight: 400;
	line-height: 1.5;
}

.womo-recipe__list li::before {
	top: 0.625rem;
}

.womo-recipe__method {
	line-height: 1.625;
}

.womo-recipe > .womo-recipe__body {
	margin-top: 0 !important;
}

/* Community call-out buttons: small sentence-case pills (Lovable). */
.womo-callout .wp-block-button__link {
	padding: 0.75rem 1.5rem;
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.25rem;
	text-transform: none;
}

.womo-callout .is-style-solid .wp-block-button__link {
	font-weight: 500;
}

.womo-callout .is-style-line .wp-block-button__link {
	gap: 0.5rem;
	border-color: color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
	color: var(--wp--preset--color--champagne);
	font-weight: 400;
}

.womo-callout .is-style-line .wp-block-button__link::after {
	display: none;
}

/* Timing: label 14px Jost at 70%, text 60%, rows 1rem tall padding, 2rem apart. */
.womo-timeline > .is-layout-flex > p.womo-timeline__when {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: color-mix(in oklab, currentcolor 70%, transparent);
}

.womo-timeline.is-style-rows > * {
	padding-block: 1rem;
}

.womo-timeline.is-style-rows > * + * {
	margin-top: 2rem !important;
}

.womo-timeline.is-style-rows p:not(.womo-timeline__when) {
	max-width: 36rem;
	line-height: 1.65;
	color: color-mix(in oklab, currentcolor 60%, transparent);
}

/* Sticky intro text on night reads at 75% white (light surfaces: muted ink). */
.wp-block-columns.is-style-sticky-intro > .wp-block-column:first-child > p:not(.is-style-eyebrow, .is-style-lead) {
	line-height: 1.625;
	color: color-mix(in oklab, var(--wp--preset--color--contrast) 75%, transparent);
}

:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) .wp-block-columns.is-style-sticky-intro > .wp-block-column:first-child > p:not(.is-style-eyebrow, .is-style-lead) {
	color: var(--wp--preset--color--muted-foreground);
}

/* The bigger ritual: Jost numbers, light headings. */
.womo-bigger__list > *::before {
	font-family: var(--wp--preset--font-family--jost);
}

.womo-bigger__list h3 {
	font-weight: 300;
	margin-top: 2rem !important;
	line-height: 1.75rem;
}

.womo-bigger__list p {
	line-height: 1.625;
}

/* Questions: Lovable's 1fr / 1.4fr split, intro text at full column width. */
@media (min-width: 1024px) {
	#questions > .wp-block-columns {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
		gap: 3rem;
	}

	#questions > .wp-block-columns > .wp-block-column {
		flex-basis: auto !important;
	}
}

#questions .wp-block-column:first-child > .is-style-lead {
	max-width: none;
	font-weight: 300;
	line-height: 1.625;
}

#questions .wp-block-column:first-child > .is-style-lead a {
	color: var(--wp--preset--color--champagne);
	text-underline-offset: 4px;
}

/* Shop band lead ("Scoop. Mix. Drink. Live.") 18/28. */
.womo-shop-band .is-style-lead {
	line-height: 1.75rem;
}

.womo-bigger .is-style-lead {
	line-height: 1.625;
}

/* Call-out button icons (Lucide copy / mail), drawn in the text colour. */
.womo-callout .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.womo-callout .wp-block-button__link::before {
	content: "";
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	background: currentcolor;
	-webkit-mask: var(--womo-btn-icon) center / contain no-repeat;
	mask: var(--womo-btn-icon) center / contain no-repeat;
}

.womo-callout .womo-copy {
	--womo-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E");
}

.womo-callout .is-style-line:not(.womo-copy) {
	--womo-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3C/svg%3E");
}

/* Shop band follows the page content directly (no flow gap), as in Lovable. */
.womo-main > .womo-shop-band {
	margin-block-start: 0;
}

/* The footer sits directly under the last section (Lovable has no gap). */
.wp-site-blocks > footer {
	margin-block-start: 0;
}

/* Phones: section intros keep their 18px lead (Lovable SectionIntro, text-lg). */
@media (max-width: 767px) {
	:is(.womo-intro, .womo-bigger .wp-block-cover__inner-container, #questions .wp-block-column:first-child) > .is-style-lead,
	.womo-split .wp-block-column > .is-style-lead,
	.womo-story-circle > .is-style-lead,
	.womo-vision .is-style-lead,
	.womo-page-hero .is-style-lead,
	.womo-shop-band .is-style-lead {
		font-size: 1.125rem;
		line-height: 1.625;
	}

	.womo-steps h3,
	.womo-recipe__body h3,
	.womo-callout__text h3 {
		font-size: 1.875rem;
		line-height: 1.2;
	}

	.womo-callout .wp-block-buttons {
		flex-direction: column;
		gap: 0.75rem;
		align-items: stretch;
		width: 100%;
	}

	.womo-callout .wp-block-button,
	.womo-callout .wp-block-button__link {
		width: 100%;
		justify-content: center;
	}
}

/* Phones: section and hero headings at Lovable's 36px (not fluid). */
@media (max-width: 767px) {
	main h2.wp-block-heading:not(.womo-product-heading) {
		font-size: 2.25rem;
		line-height: 1.1;
	}

	.womo-page-hero h1 {
		font-size: 2.25rem;
		line-height: 1.1;
	}

	.womo-steps.wp-block-columns {
		row-gap: 2rem !important;
	}

	.womo-shop-band .wp-block-buttons,
	.womo-shop-band .wp-block-button,
	.womo-shop-band .wp-block-button__link {
		width: 100%;
	}

	.womo-shop-band .wp-block-button__link {
		justify-content: center;
	}
}

/* -------------------------------------------------------------------------
 * Story & Soul: detail pass against Lovable /story-soul.
 * ---------------------------------------------------------------------- */

/* Split sections on Lovable's grid: two equal columns, 4rem apart; the
   reversed (text first) split is 1.15fr text / 1fr image. */
@media (min-width: 782px) {
	.wp-block-columns.womo-split {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 4rem;
	}

	.wp-block-columns.womo-split.womo-split--reverse {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	}

	.wp-block-columns.womo-split.womo-split--reverse > .wp-block-column:first-child {
		order: 2;
	}

	.wp-block-columns.womo-split > .wp-block-column {
		flex-basis: auto !important;
	}
}

/* Film in a split (01 / The beginning). */
.wp-block-video.womo-story-film {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.wp-block-video.womo-story-film video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Text beside the media: light on night, full ink on light surfaces. */
.womo-split .wp-block-column > p:not(.is-style-eyebrow) {
	font-weight: 300;
	line-height: 1.625;
}

:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) :is(.womo-split .wp-block-column, .womo-story-circle) > p:not(.is-style-eyebrow) {
	font-weight: 400;
	color: var(--wp--preset--color--ink);
}

.womo-split .has-custom-border img {
	border-radius: 10px !important;
}

/* The circle: one 45rem column, everything aligned to its left edge. */
.womo-story-circle > :is(p, h2, .wp-block-quote) {
	margin-left: max(0px, calc((100% - 45rem) / 2)) !important;
	margin-right: auto !important;
}

.womo-story-circle > :is(p, .wp-block-quote) {
	max-width: 45rem;
}

.womo-story-circle > p:not(.is-style-eyebrow, .womo-emphasis) {
	font-weight: 400;
	color: var(--wp--preset--color--ink);
}

.womo-story-circle > p:not(.is-style-eyebrow) {
	line-height: 1.625;
}

.womo-story-circle .wp-block-quote.womo-pullquote,
.womo-story-circle .wp-block-quote.womo-pullquote p {
	line-height: 1.375;
}

.womo-story-circle .wp-block-quote.womo-pullquote {
	padding-block: 0;
	padding-right: 0;
}

/* Values: heading 24/32, text 1rem below in muted ink. */
.womo-values > .wp-block-column > h3 {
	line-height: 2rem;
}

.womo-values > .wp-block-column > p {
	margin-top: 1rem;
	line-height: 1.625;
	color: var(--wp--preset--color--muted-foreground);
}

/* Vision band measures (max-w-xl heading, max-w-lg text). */
main .womo-vision h2.wp-block-heading {
	max-width: 36rem;
}

.womo-vision .wp-block-cover__inner-container > p:not(.is-style-eyebrow) {
	max-width: 32rem;
	line-height: 1.625;
}

/* -------------------------------------------------------------------------
 * Mobile menu as Lovable's sheet: a 24rem panel from the right over a dimmed
 * page, "Worthy Molecules" title, large light links, then two small links.
 * ---------------------------------------------------------------------- */

.womo-header__nav .wp-block-navigation__responsive-container:not(.is-menu-open) .womo-nav-extra {
	display: none;
}

.womo-header__nav .wp-block-navigation__responsive-container.is-menu-open {
	left: auto;
	box-sizing: border-box;
	width: min(100%, 24rem);
	padding: 5rem 2rem 1.5rem;
	border-left: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 20%, transparent);
	box-shadow: 0 0 0 100vmax color-mix(in oklab, var(--wp--preset--color--base) 80%, transparent);
}

.womo-header__nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 0 !important;
	gap: 0 !important;
}

.womo-header__nav .is-menu-open .wp-block-navigation__responsive-container-content::before {
	content: "Worthy Molecules";
	display: block;
	align-self: stretch;
	text-align: left;
	margin-bottom: 2.5rem;
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast);
}

.womo-header__nav .is-menu-open .wp-block-navigation__container {
	gap: 0.75rem !important;
}

.womo-header__nav .is-menu-open .wp-block-navigation-item,
.womo-header__nav .is-menu-open .wp-block-navigation-item:has([aria-current]) {
	color: var(--wp--preset--color--muted-foreground);
}

.womo-header__nav .is-menu-open .wp-block-navigation-item__content {
	font-size: 1.5rem;
	line-height: 2rem;
	text-decoration: none;
}

.womo-header__nav .is-menu-open .womo-nav-extra {
	border-bottom: 0;
}

.womo-header__nav .is-menu-open .womo-nav-extra .wp-block-navigation-item__content {
	padding-block: 0 !important;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.25rem;
}

.womo-header__nav .is-menu-open .womo-nav-extra:not(.womo-nav-extra + .womo-nav-extra) {
	margin-top: 2.25rem;
}

.womo-header__nav .is-menu-open .womo-nav-extra + .womo-nav-extra {
	margin-top: 0.5rem;
}

.womo-header__nav .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 0.125rem;
	right: 0.125rem;
	opacity: 0.7;
	transition: opacity 0.3s ease;
}

.womo-header__nav .is-menu-open .wp-block-navigation__responsive-container-close:hover {
	opacity: 1;
}

.womo-header__nav .is-menu-open .wp-block-navigation__responsive-container-close svg {
	width: 1rem;
	height: 1rem;
}

.womo-header__nav .is-menu-open .wp-block-navigation__responsive-dialog,
.womo-header__nav .is-menu-open .wp-block-navigation__responsive-close {
	position: static;
}

.womo-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: var(--wp--preset--color--muted-foreground);
}

.womo-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--contrast);
}

.womo-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute;
}

/* -------------------------------------------------------------------------
 * Home "The product" teaser (Lovable ProductTeaser).
 * ---------------------------------------------------------------------- */

:where(.is-style-surface-light, .is-style-surface-porcelain, .is-style-surface-vanilla) :is(.womo-price__detail, .womo-price__note) {
	color: var(--wp--preset--color--muted-foreground);
}

@media (min-width: 768px) {
	#product.womo-section--tall {
		padding-block: 11rem !important;
	}
}

#product .womo-product-heading {
	margin-top: 2.5rem;
}

#product .womo-product-heading img {
	width: 12rem;
	height: auto;
}

@media (min-width: 768px) {
	#product .womo-product-heading img {
		width: 16rem;
	}
}

#product .womo-hero__title {
	line-height: 1.75rem;
}

#product .wp-block-column > .is-style-lead {
	max-width: 28rem;
	margin-top: 2rem;
	line-height: 1.7;
	color: var(--wp--preset--color--graphite);
}

#product .wp-block-womo-price-summary + .wp-block-buttons {
	margin-top: 3rem;
}

@media (max-width: 767px) {
	#product.womo-section--tall {
		padding-block: 7rem !important;
	}

	#product .wp-block-buttons,
	#product .wp-block-button,
	#product .wp-block-button__link {
		width: 100%;
	}

	#product .wp-block-button__link {
		justify-content: center;
	}
}

/* -------------------------------------------------------------------------
 * Home trial interviews (Lovable): intro max 32rem, counter and arrows on
 * the right at the intro's baseline, cards 2.5rem below.
 * ---------------------------------------------------------------------- */

.womo-carousel-controls {
	width: 100%;
	max-width: var(--wp--style--global--wide-size) !important;
}

.womo-section:has(.wp-block-womo-video-card) .is-style-lead {
	max-width: 32rem;
	line-height: 1.625;
}

@media (min-width: 768px) {
	.womo-section:has(.wp-block-womo-video-card) .womo-carousel-controls {
		margin-top: -2.75rem !important;
		margin-bottom: 2.5rem;
	}
}

@media (min-width: 1024px) {
	.wp-block-group.is-style-carousel:has(.wp-block-womo-video-card) {
		grid-auto-columns: calc((100% - 3 * 1.25rem) / 3.69);
	}
}

/* Science windows: number level with the heading's top, text 2.375rem in. */
.womo-windows > * {
	padding-left: 2.375rem;
}

.womo-windows > ::before {
	top: 1.75rem;
	line-height: 1.5;
}

.womo-windows h3 {
	line-height: 2rem;
}

/* Science pilot: full-column portrait (max 620px tall), 2px corners. */
.womo-pilot__story .wp-block-image img {
	width: 100% !important;
	max-height: 620px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: top;
	border-radius: 2px !important;
}

/* Pull quotes: the rule spans quote and source, no extra padding. */
.wp-block-quote.womo-pullquote {
	padding-block: 0;
	padding-right: 0;
}

.wp-block-quote.womo-pullquote p {
	line-height: 1.375;
}

.wp-block-quote.womo-pullquote cite {
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 300;
	line-height: 1.25rem;
}

/* Editorial hero headings (article titles, page heroes): Lovable steps
   36px / 52px from 768px / 60px from 1024px, light weight. */
.womo-article__header .wp-block-post-title,
.womo-page-hero h1 {
	font-size: 2.25rem;
	font-weight: 300;
	line-height: 1.1;
}

@media (min-width: 768px) {
	.womo-article__header .wp-block-post-title,
	.womo-page-hero h1 {
		font-size: 3.25rem;
	}
}

@media (min-width: 1024px) {
	.womo-article__header .wp-block-post-title,
	.womo-page-hero h1 {
		font-size: 3.75rem;
	}
}

/* Headings directly in a constrained content column (articles, legal
   pages) align with the text instead of being centred at 42rem. */
:is(main.is-layout-constrained, main .is-layout-constrained) > h2.wp-block-heading:not(.alignwide, .alignfull),
:is(main.is-layout-constrained, main .is-layout-constrained) > .is-style-lead:not(.alignwide, .alignfull) {
	max-width: var(--wp--style--global--content-size);
}

/* -------------------------------------------------------------------------
 * Research article: detail pass against Lovable /science/{slug}.
 * ---------------------------------------------------------------------- */

.womo-article {
	padding-block: 8rem 5rem;
}

.womo-article__header {
	padding-block: 3rem;
}

.womo-article__header .is-part-label + .wp-block-post-title {
	margin-top: 1.5rem;
}

.womo-article__intro {
	max-width: none;
	font-size: 1.125rem;
	line-height: 1.625;
}

.womo-article__figure .wp-block-post-featured-image img {
	border-radius: 2px !important;
}

.womo-article__content {
	margin-top: 3rem;
}

.womo-article__content > .womo-research-note {
	box-sizing: border-box;
	line-height: 1.625;
}

.womo-article__content > h2 {
	margin-top: 2.5rem;
	font-size: 1.5rem;
	line-height: 1.25;
}

.womo-article__footer .is-part-source {
	margin-top: 3rem;
}

.womo-article__disclaimer {
	font-size: 1rem;
	line-height: 1.65;
}

@media (min-width: 768px) {
	.womo-article {
		padding-block: 10rem 7rem;
	}

	.womo-article__header {
		padding-block: 4rem;
	}

	.womo-article__intro {
		font-size: 1.25rem;
	}

	.womo-article__content {
		margin-top: 4rem;
	}

	.womo-article__content > h2 {
		margin-top: 3rem;
		font-size: 1.875rem;
	}

	.womo-article__footer .is-part-source {
		margin-top: 4rem;
	}
}

/* "Keep reading" below the article: heading full width, small pill back. */
.single-womo_research main .womo-intro h2.wp-block-heading {
	max-width: none;
}

.single-womo_research .womo-section .is-style-line .wp-block-button__link {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	min-height: 2.25rem;
	padding: calc(0.5rem - 1px) 1rem;
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.25rem;
	text-transform: none;
	color: var(--wp--preset--color--champagne);
	border-color: color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
}

.single-womo_research .womo-section .is-style-line .wp-block-button__link::after {
	display: none;
}

.single-womo_research .womo-section .is-style-line .wp-block-button__link::before {
	content: "";
	width: 1rem;
	height: 1rem;
	background: currentcolor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 19-7-7 7-7'/%3E%3Cpath d='M19 12H5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 19-7-7 7-7'/%3E%3Cpath d='M19 12H5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.womo-article > .womo-article__body {
	margin-top: 0;
}

/* Labels in the article read in full ink on the light page (Lovable). */
.womo-article :is(.wp-block-womo-research-meta.is-part-label, .womo-research-meta__eyebrow) {
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
}

.womo-article__body > .womo-article__figure {
	margin-top: 0;
}

/* Article: wide figure, 48rem intro at 20px, phone headings 24px, and the
   related section closer to the article (Lovable spacing). */
.womo-article__body > .womo-article__figure {
	max-width: var(--wp--style--global--wide-size) !important;
}

.womo-article__intro {
	max-width: 48rem;
	font-size: 1.25rem;
}

main .womo-article__content > h2.wp-block-heading {
	font-size: 1.5rem;
	line-height: 1.25;
}

@media (min-width: 768px) {
	main .womo-article__content > h2.wp-block-heading {
		font-size: 1.875rem;
	}
}

.single-womo_research .womo-main > .womo-section {
	padding-top: 1.25rem !important;
	padding-bottom: 4rem !important;
}

@media (min-width: 768px) {
	.single-womo_research .womo-main > .womo-section {
		padding-top: 4.75rem !important;
		padding-bottom: 5rem !important;
	}
}

@media (min-width: 1024px) {
	.single-womo_research .womo-main > .womo-section {
		padding-top: 4.5rem !important;
		padding-bottom: 6rem !important;
	}
}

.single-womo_research .womo-main > .womo-section {
	margin-block-start: 0;
}

.wp-block-womo-research-meta.is-part-source .wp-block-button.is-style-line .wp-block-button__link::after,
.wp-block-womo-research-meta.is-part-source .wp-block-button.is-style-line .wp-block-button__link:is(:hover, :focus-visible)::after {
	width: 1rem;
	height: 1rem;
	margin: 0;
	background: currentcolor;
	opacity: 1;
	transition: none;
}

/* -------------------------------------------------------------------------
 * Ingredients: nutrition facts (Lovable): 12-column split 1-4 / 6-12,
 * 36rem lead, 16px rows and allergens, claim pills from the left.
 * ---------------------------------------------------------------------- */

@media (min-width: 768px) {
	.wp-block-columns:has(> .wp-block-column > .womo-tally) {
		display: grid;
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3rem;
	}

	.wp-block-columns:has(> .wp-block-column > .womo-tally) > .wp-block-column {
		flex-basis: auto !important;
	}

	.wp-block-columns:has(> .wp-block-column > .womo-tally) > .wp-block-column:first-child {
		grid-column: 1 / span 4;
	}

	.wp-block-columns:has(> .wp-block-column > .womo-tally) > .wp-block-column:last-child {
		grid-column: 6 / span 7;
	}
}

.wp-block-column:has(> .womo-tally) > .is-style-lead {
	max-width: 36rem;
	line-height: 1.625;
}

.womo-tally p {
	font-weight: 400;
	line-height: 1.5;
}

.womo-tally .womo-tally__count {
	font-size: 1rem;
	line-height: 1.65;
}

.womo-allergens {
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.65;
}

.wp-block-womo-claims.is-style-pills {
	justify-content: flex-start;
}

.wp-block-womo-claims.is-style-pills .womo-claim__label {
	font-weight: 400;
	line-height: 1.25rem;
}

/* -------------------------------------------------------------------------
 * Button: "Pill" — Lovable's outlined sentence-case button. Optional icon
 * classes: womo-icon-mail / womo-icon-copy / womo-icon-arrow-left (before
 * the text), womo-icon-arrow-up-right / womo-icon-arrow-down (after).
 * ---------------------------------------------------------------------- */

.wp-block-button.is-style-pill .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3rem;
	padding: 0.5rem 1.5rem;
	border: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
	border-radius: var(--wp--custom--radius--pill);
	background: transparent;
	color: var(--wp--preset--color--champagne);
	font-family: var(--wp--preset--font-family--inter-tight);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.25rem;
	text-transform: none;
	transition: border-color 0.3s ease, background-color 0.3s ease;
}

.wp-block-button.is-style-pill .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--champagne);
	background: color-mix(in oklab, var(--wp--preset--color--champagne) 5%, transparent);
}

.wp-block-button.is-style-pill:is(.womo-icon-mail, .womo-icon-copy, .womo-icon-arrow-left) .wp-block-button__link::before,
.wp-block-button.is-style-pill:is(.womo-icon-arrow-up-right, .womo-icon-arrow-down) .wp-block-button__link::after {
	content: "";
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	background: currentcolor;
	-webkit-mask: var(--womo-btn-icon) center / contain no-repeat;
	mask: var(--womo-btn-icon) center / contain no-repeat;
}

.womo-icon-mail {
	--womo-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3C/svg%3E");
}

.womo-icon-copy {
	--womo-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E");
}

.womo-icon-arrow-left {
	--womo-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 19-7-7 7-7'/%3E%3Cpath d='M19 12H5'/%3E%3C/svg%3E");
}

.womo-icon-arrow-up-right {
	--womo-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E");
}

.womo-icon-arrow-down {
	--womo-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='m19 12-7 7-7-7'/%3E%3C/svg%3E");
}

/* Film bands (Lovable FilmBand): the film fades in from and out to night. */
.womo-film-band.wp-block-cover > .wp-block-cover__background {
	opacity: 0 !important;
}

.womo-film-band.wp-block-cover::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to bottom, var(--wp--preset--color--base), color-mix(in oklab, var(--wp--preset--color--base) 70%, transparent), var(--wp--preset--color--base));
	pointer-events: none;
}

.womo-film-band.wp-block-cover > .wp-block-cover__inner-container {
	z-index: 2 !important;
}

/* Pause / play for background films (added by main.js). */
.womo-film-toggle {
	position: absolute;
	right: 1rem;
	bottom: 1.5rem;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--champagne);
	cursor: pointer;
	transition: border-color 0.3s ease;
}

.womo-film-toggle:hover {
	border-color: var(--wp--preset--color--champagne);
}

.womo-film-toggle:focus-visible {
	outline: 1px solid var(--wp--preset--color--lumina);
	outline-offset: 3px;
}

.womo-film-toggle svg {
	width: 1rem;
	height: 1rem;
}

/* Quality "Testing partner": flask icon before the note (Lovable). */
.is-style-sticky-intro > .wp-block-column:first-child > p.womo-note {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	font-size: 1rem;
	line-height: 1.65;
}

.is-style-sticky-intro > .wp-block-column:first-child > p.womo-note::before {
	content: "";
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	background: currentcolor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2'/%3E%3Cpath d='M6.453 15h11.094'/%3E%3Cpath d='M8.5 2h7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2'/%3E%3Cpath d='M6.453 15h11.094'/%3E%3Cpath d='M8.5 2h7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* -------------------------------------------------------------------------
 * Legal pages (Lovable LegalPage): measures, 1fr / 2fr body, sub-headings,
 * dash lists and two-column tables.
 * ---------------------------------------------------------------------- */

.womo-legal {
	padding-block: 10rem 6rem;
}

.womo-legal__intro h1 {
	font-size: 2.25rem;
	font-weight: 300;
	line-height: 1.1;
}

.womo-legal__intro .is-style-lead {
	line-height: 1.625;
}

.womo-legal__intro .is-style-tip {
	padding-left: 1.25rem;
	border-left-color: color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
}

.womo-legal__intro .is-style-tip p {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--champagne);
}

@media (min-width: 768px) {
	.womo-legal {
		padding-top: 11rem;
	}

	.womo-legal__intro h1 {
		font-size: 3rem;
		line-height: 1;
	}

	.womo-legal__body.wp-block-columns {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		gap: 2rem;
	}

	.womo-legal__body > .wp-block-column {
		flex-basis: auto !important;
	}
}

.womo-legal__sections h2 {
	line-height: 2rem;
}

.womo-legal__sections > section > * + * {
	margin-top: 1rem;
}

.womo-legal__sections p {
	font-weight: 300;
	line-height: 1.625;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-legal__sections strong {
	font-weight: 500;
	color: var(--wp--preset--color--contrast);
}

.womo-legal__sections p.womo-legal__sub {
	padding-top: 0.5rem;
	font-weight: 500;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: color-mix(in oklab, var(--wp--preset--color--contrast) 80%, transparent);
}

.womo-legal__list {
	display: grid;
	gap: 0.5rem;
	padding: 0;
	list-style: none;
}

.womo-legal__list li {
	position: relative;
	margin: 0;
	padding-left: 1.5rem;
	font-weight: 300;
	line-height: 1.625;
	color: var(--wp--preset--color--muted-foreground);
}

.womo-legal__list li::before {
	content: "";
	position: absolute;
	top: 0.65em;
	left: 0;
	width: 0.75rem;
	height: 1px;
	background: color-mix(in oklab, var(--wp--preset--color--champagne) 60%, transparent);
}

.wp-block-table.womo-legal__table {
	margin: 0;
	overflow-x: auto;
}

.wp-block-table.womo-legal__table table {
	width: 100%;
	border-collapse: collapse;
	text-align: left;
}

.wp-block-table.womo-legal__table :is(th, td) {
	padding: 0.75rem 1.5rem 0.75rem 0;
	border: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.25rem;
	vertical-align: top;
	text-align: left;
}

.wp-block-table.womo-legal__table th {
	padding-top: 0;
	font-weight: 500;
	letter-spacing: 0.025em;
	color: var(--wp--preset--color--contrast);
	border-bottom: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 40%, transparent);
}

.wp-block-table.womo-legal__table thead {
	border: 0;
}

.wp-block-table.womo-legal__table td {
	font-weight: 300;
	color: color-mix(in oklab, var(--wp--preset--color--contrast) 85%, transparent);
	border-bottom: 1px solid color-mix(in oklab, var(--wp--preset--color--champagne) 10%, transparent);
}

.wp-block-table.womo-legal__table td + td {
	color: var(--wp--preset--color--muted-foreground);
}

.wp-block-table.womo-legal__table :is(th, td):last-child {
	padding-right: 0;
}

.womo-legal__intro .wp-block-group.is-style-tip {
	padding-left: 1.25rem !important;
	border-left-width: 1px !important;
}

.womo-legal__intro .is-style-tip p.has-small-font-size {
	font-size: 1rem !important;
}

@media (min-width: 768px) {
	.womo-legal__body.wp-block-columns {
		gap: 2rem !important;
	}
}

.womo-legal__sections p.womo-legal__sub {
	letter-spacing: 0;
}

.womo-legal__sections .wp-block-table.womo-legal__table {
	margin: 1rem 0 0 !important;
}

main .womo-legal__sections h2.wp-block-heading {
	font-size: 1.5rem;
	line-height: 2rem;
}

@media (max-width: 767px) {
	.womo-legal__intro .is-style-lead {
		font-size: 1.125rem;
	}
}

.womo-legal__body {
	margin-top: 4rem !important;
}

/* Links in legal copy stay in the muted text colour (Lovable shows plain text). */
.womo-legal__sections :is(p, li) a {
	color: inherit;
	text-underline-offset: 3px;
}

.womo-legal__sections :is(p, li) a:hover {
	color: var(--wp--preset--color--champagne);
}

/* Footer bottom row: "Brand exploration" and the tagline on the right. */
.womo-footer__base-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	align-items: center;
}

.womo-footer__base-links p {
	margin: 0;
}

.womo-footer__base-links a {
	color: inherit;
	text-decoration: none;
	transition: color 0.3s ease;
}

.womo-footer__base-links a:hover {
	color: var(--wp--preset--color--champagne);
}

/* Easter egg page (/play): the game below the header on night. */
.womo-play {
	padding-block: calc(var(--womo-header-h) + clamp(2.5rem, 5vw, 4rem)) clamp(5rem, 9vw, 7rem) !important;
}

/* Header logo: optical alignment. The SVGs have empty margins (50 of 600
   units horizontal, 44 of 600 stacked); pull them out so the mark starts
   on the content edge. */
.womo-site-header .womo-logo__mark--horizontal svg {
	margin-left: calc(-50 / 600 * 100%);
}

.womo-site-header .womo-logo__mark--stacked svg {
	margin-left: calc(-44 / 600 * 100%);
}
