/* ============================================================
   LUMIADE global storefront styles — SECTION MAP
   1. Tokens (:root)      2. Base typography     3. Buttons
   4. Forms/fields        5. Header / nav        6. Footer
   7. WooCommerce: shop   8. WooCommerce: product
   9. WooCommerce: cart  10. WooCommerce: checkout
  11. WooCommerce: account 12. Notices/misc
   NOTE: keep as one file (load-order/specificity sensitive). Do not split without cause.
   ============================================================ */

/* — 2. Base typography — */
.lumiade-store-shell,
.lumiade-shell {
	width: min(100% - 64px, 1320px);
	margin-inline: auto;
}

/* background/color superseded by lumiade-brand/components.css
   ".lumiade-storefront .lumiade-storefront-trust" (Phase 1 Task 6, 2026-07-10) —
   beige-deep field, ink text. border-bottom kept: still a valid hairline
   separator against the new solid beige-deep fill. */
.lumiade-storefront-trust {
	border-bottom: 1px solid rgba(25, 26, 28, 0.08);
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 560;
}

.lumiade-storefront-trust .lumiade-store-shell {
	align-items: center;
	display: flex;
	gap: 16px;
	justify-content: center;
	min-height: 32px;
}

.lumiade-trust-item,
.lumiade-proof-item {
	align-items: center;
	display: inline-flex;
	gap: 8px;
	min-width: 0;
}

.lumiade-trust-item + .lumiade-trust-item {
	border-left: 1px solid rgba(25, 26, 28, 0.22);
	padding-left: 16px;
}

.lumiade-trust-icon,
.lumiade-proof-icon,
.lumiade-reassure-icon,
.lumiade-benefit-icon {
	background: currentColor;
	display: inline-block;
	flex: 0 0 auto;
	height: 14px;
	mask: var(--lumiade-icon) center / contain no-repeat;
	-webkit-mask: var(--lumiade-icon) center / contain no-repeat;
	opacity: 0.78;
	width: 14px;
}

.lumiade-reassure-icon,
.lumiade-benefit-icon {
	height: 16px;
	opacity: 0.92;
	width: 16px;
}

.lumiade-trust-shipping,
.lumiade-proof-shipping,
.lumiade-reassure-shipping {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 5h12v4h3.5L22 12.5V17h-2.2a3 3 0 0 1-5.6 0H9.8a3 3 0 0 1-5.6 0H2V5h1Zm13 6v3h3.6L17.6 11H16ZM7 18.2a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4Zm10 0a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4Z'/%3E%3C/svg%3E");
}

.lumiade-trust-samples,
.lumiade-proof-samples {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11 3h2v4h4v2h-4v4h-2V9H7V7h4V3Zm-6 9h14v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7Zm2 2v5h10v-5H7Z'/%3E%3C/svg%3E");
}

.lumiade-trust-tested,
.lumiade-proof-tested,
.lumiade-reassure-tested,
.lumiade-benefit-tested {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2 4 5v6c0 5.2 3.4 9.5 8 11 4.6-1.5 8-5.8 8-11V5l-8-3Zm-1.1 13.8-3.7-3.7 1.4-1.4 2.3 2.3 4.9-4.9 1.4 1.4-6.3 6.3Z'/%3E%3C/svg%3E");
}

.lumiade-proof-returns,
.lumiade-reassure-returns {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7.8 7H16a5 5 0 1 1 0 10H8v-2h8a3 3 0 1 0 0-6H7.8l2.6 2.6L9 13 4 8l5-5 1.4 1.4L7.8 7Z'/%3E%3C/svg%3E");
}

.lumiade-proof-formulas {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 2h6v2h-1v4.8l4.5 7.9A3 3 0 0 1 15.9 21H8.1a3 3 0 0 1-2.6-4.3L10 8.8V4H9V2Zm3 9-2.1 3.6h4.2L12 11Zm-4.8 6.7A1 1 0 0 0 8.1 19h7.8a1 1 0 0 0 .9-1.5l-.5-.9H7.7l-.5 1.1Z'/%3E%3C/svg%3E");
}

/* Made in Korea — globe/origin mark. */
.lumiade-trust-korea,
.lumiade-proof-korea {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm6.9 6h-3a15.6 15.6 0 0 0-1.2-3.3A8 8 0 0 1 18.9 8ZM12 4c.8 1 1.5 2.4 2 4H10c.5-1.6 1.2-3 2-4ZM4.3 14a8 8 0 0 1 0-4h3.3a17.6 17.6 0 0 0 0 4H4.3Zm.8 2h3a15.6 15.6 0 0 0 1.2 3.3A8 8 0 0 1 5.1 16Zm3-8h-3a8 8 0 0 1 4.2-3.3A15.6 15.6 0 0 0 8.1 8ZM12 20c-.8-1-1.5-2.4-2-4h4c-.5 1.6-1.2 3-2 4Zm2.4-6H9.6a15.3 15.3 0 0 1 0-4h4.8a15.3 15.3 0 0 1 0 4Zm.5 5.3a15.6 15.6 0 0 0 1.2-3.3h3a8 8 0 0 1-4.2 3.3ZM16.4 14a17.6 17.6 0 0 0 0-4h3.3a8 8 0 0 1 0 4h-3.3Z'/%3E%3C/svg%3E");
}

/* Product-benefit marks. */
.lumiade-benefit-ritual {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2c2.5 2.3 4 4.8 4 7.5a4 4 0 0 1-8 0C8 6.8 9.5 4.3 12 2Zm0 19c-3.9 0-7-1.8-7-4 0-1.3 1.1-2.4 3-3.1.3.6.7 1.1 1.2 1.6-1.3.4-2.2 1-2.2 1.5 0 .9 2.2 2 5 2s5-1.1 5-2c0-.5-.9-1.1-2.2-1.5.5-.5.9-1 1.2-1.6 1.9.7 3 1.8 3 3.1 0 2.2-3.1 4-7 4Z'/%3E%3C/svg%3E");
}

.lumiade-benefit-texture {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 8c1.2 0 1.8-.7 2.5-1.4C8.3 5.8 9.2 4.8 11 4.8s2.7 1 3.5 1.8c.7.7 1.3 1.4 2.5 1.4s1.8-.7 2.5-1.4l1.4 1.4c-.8.8-1.7 1.8-3.9 1.8s-2.7-1-3.5-1.8C13.3 7.5 12.7 6.8 11 6.8s-1.8.7-2.5 1.4C7.7 9 6.8 10 5 10s-2.7-1-3.5-1.8L2.9 6.8C3.6 7.5 4 8 5 8Zm0 5c1.2 0 1.8-.7 2.5-1.4.8-.8 1.7-1.8 3.5-1.8s2.7 1 3.5 1.8c.7.7 1.3 1.4 2.5 1.4s1.8-.7 2.5-1.4l1.4 1.4c-.8.8-1.7 1.8-3.9 1.8s-2.7-1-3.5-1.8c-.7-.7-1.3-1.4-2.5-1.4s-1.8.7-2.5 1.4C7.7 14 6.8 15 5 15s-2.7-1-3.5-1.8l1.4-1.4C3.6 12.5 4 13 5 13Zm0 5c1.2 0 1.8-.7 2.5-1.4.8-.8 1.7-1.8 3.5-1.8s2.7 1 3.5 1.8c.7.7 1.3 1.4 2.5 1.4s1.8-.7 2.5-1.4l1.4 1.4c-.8.8-1.7 1.8-3.9 1.8s-2.7-1-3.5-1.8c-.7-.7-1.3-1.4-2.5-1.4s-1.8.7-2.5 1.4C7.7 19 6.8 20 5 20s-2.7-1-3.5-1.8l1.4-1.4C3.6 17.5 4 18 5 18Z'/%3E%3C/svg%3E");
}

.lumiade-benefit-daily {
	--lumiade-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 2h2v2h6V2h2v2h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2V2ZM5 8v12h14V8H5Zm6.5 2.5h1.5v3.2l2.3 2.3-1 1-2.8-2.8v-3.7Z'/%3E%3C/svg%3E");
}

/* — 5. Header / nav — */
/* background/border-bottom superseded by lumiade-brand/components.css
   ".lumiade-storefront #header" + "#header [data-row]" (Phase 1 Task 6,
   2026-07-10) — ink fill, translucent white border. Sticky positioning
   (layout, not skin) kept here. */
.lumiade-storefront #header {
	position: sticky;
	top: 0;
	z-index: 50;
}

.lumiade-storefront #header [data-row],
.lumiade-storefront #header [data-row*="middle"] {
	box-shadow: none;
	min-height: 56px;
}

.lumiade-storefront #header .ct-container,
.lumiade-storefront #header [data-row] > div {
	width: min(100% - 64px, 1320px);
}

.lumiade-storefront .site-title {
	font-size: var(--lumiade-fs-xl);
	line-height: 1;
	text-transform: uppercase;
}

.lumiade-storefront.wp-custom-logo #header [data-id="logo"] {
	align-items: center;
}

.lumiade-storefront.wp-custom-logo #header [data-id="logo"] .site-title-container {
	display: none;
}

.lumiade-storefront.wp-custom-logo #header .site-logo-container {
	align-items: center;
	display: inline-flex;
	width: clamp(145px, 13vw, 190px);
}

.lumiade-storefront.wp-custom-logo #header .site-logo-container img {
	height: auto;
	max-height: 32px;
	object-fit: contain;
	width: 100%;
}

/* color superseded by lumiade-brand/components.css
   ".lumiade-storefront #header nav a, ... .menu a" (Phase 1 Task 6,
   2026-07-10) — white on ink. */
.lumiade-storefront #header nav a,
.lumiade-storefront #header .menu a {
	align-items: center;
	display: inline-flex;
	font-size: var(--lumiade-fs-sm);
	font-weight: 760;
	line-height: 1;
	text-transform: none;
}

.lumiade-storefront #header .menu-item-has-children > a::after {
	border: solid currentColor;
	border-width: 0 1px 1px 0;
	content: "";
	display: inline-block;
	height: 5px;
	margin: 0 0 3px 7px;
	transform: rotate(45deg);
	width: 5px;
}

/* Hover color fully superseded by lumiade-brand/components.css
   ".lumiade-storefront #header [class*=\"ct-header\"] a:hover, ... .menu
   a:hover" (Phase 1 Task 6, 2026-07-10) — rgba(255,255,255,0.72) on ink. */

.lumiade-storefront #header [data-items] {
	align-items: center;
	gap: 18px;
}

@media (min-width: 721px) {
	.lumiade-storefront #header [data-row],
	.lumiade-storefront #header [data-row*="middle"] {
		height: 56px !important;
		min-height: 56px !important;
	}

	.lumiade-storefront #header .ct-container,
	.lumiade-storefront #header [data-row] > div {
		align-items: center;
		height: 56px !important;
		min-height: 56px !important;
	}
}

.lumiade-storefront #header .ct-header-cart .ct-label,
.lumiade-storefront #header .ct-header-cart .ct-amount {
	display: none !important;
}

.lumiade-storefront #header .ct-header-cart svg {
	height: 19px;
	width: 19px;
}

.lumiade-storefront #header .ct-cart-item {
	position: relative;
}

/* background/color superseded by lumiade-brand/components.css
   ".lumiade-storefront #header .ct-dynamic-count-cart" (Phase 1 Task 6,
   2026-07-10) — white pill, ink number (inverted from the ink-pill/white-
   number pairing here, now that the bar itself is ink). */
.lumiade-storefront #header .ct-dynamic-count-cart {
	align-items: center;
	border-radius: var(--lumiade-radius-pill);
	display: flex;
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 760;
	height: 16px;
	justify-content: center;
	position: absolute;
	right: -8px;
	top: -8px;
	width: 16px;
}

/* Rule fully superseded by lumiade-brand/components.css — the header icons
   need both `color` (Step 2 block) and `--theme-icon-color` (Blocksy's own
   svg{fill:var(--theme-icon-color, var(--theme-text-color))} rule doesn't
   use currentColor) set to white; see the "#header .ct-header-search, ...
   --theme-icon-color: #ffffff" rule in components.css (Phase 1 Task 6,
   2026-07-10). */

.lumiade-homepage-template .site-main,
.lumiade-homepage-template .entry-content {
	padding: 0;
	margin: 0;
}

.lumiade-home {
	background: var(--lumiade-paper);
	overflow: clip;
}

.lumiade-home :where(.wp-block-columns, .wp-block-group) {
	margin-top: 0;
}

/* — 3. Buttons — */
/* Radius/weight for bare <button> elements not covered by the ink-CTA
   selector list in lumiade-brand/components.css — e.g. the WC Blocks
   coupon-panel disclosure toggle (button, not button[type="submit"]).
   .wp-block-button__link, .button, input[type="submit"], .added_to_cart,
   and the ink fill/hover/outline skin are now fully owned by
   lumiade-brand/components.css (Phase 1 Task 5, 2026-07-10). */
.lumiade-storefront button {
	border-radius: var(--lumiade-radius-sm);
	font-weight: 760;
}

.lumiade-kicker {
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 790;
	letter-spacing: 0;
	text-transform: uppercase;
}

.lumiade-hero {
	background: var(--lumiade-panel);
	margin-inline: calc(50% - 50vw);
	position: relative;
	width: 100vw;
}

.lumiade-hero-grid {
	align-items: stretch;
	display: grid !important;
	grid-template-columns: minmax(360px, 0.46fr) minmax(560px, 0.54fr);
	min-height: 690px;
	margin-bottom: 0;
	position: relative;
	width: min(100%, 1680px);
}

.lumiade-hero-copy {
	align-self: center;
	display: flex;
	flex-direction: column;
	gap: 20px;
	justify-content: center;
	min-height: 690px;
	padding: 72px 0 72px max(48px, calc((100vw - 1320px) / 2 + 32px));
	position: relative;
	z-index: 2;
}

.lumiade-home h1 {
	color: var(--lumiade-ink);
	font-size: var(--lumiade-fs-display);
	line-height: 0.98;
	max-width: 11ch;
}

.lumiade-lede {
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-md);
	line-height: 1.56;
	max-width: 560px;
}

.lumiade-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 4px;
}

.lumiade-button-row .wp-block-button__link {
	font-size: var(--lumiade-fs-sm);
	padding: 14px 22px;
}

.lumiade-hero-figure {
	height: 100%;
	margin: 0;
	min-height: 690px;
	position: relative;
}

.lumiade-hero-figure img {
	height: 100%;
	min-height: 690px;
	object-fit: cover;
	object-position: center;
	width: 100%;
}

.lumiade-section {
	padding: 92px 0;
}

.lumiade-section-soft {
	background: var(--lumiade-soft);
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.lumiade-section-soft > .lumiade-shell,
.lumiade-section-soft > .wp-block-group__inner-container {
	width: min(100% - 64px, 1320px);
	margin-inline: auto;
}

.lumiade-panel {
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(244, 244, 242, 0.82));
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	box-shadow: 0 20px 60px rgba(25, 26, 28, 0.05);
	padding: 46px;
}

.lumiade-section-heading {
	color: var(--lumiade-navy);
	font-size: var(--lumiade-fs-3xl);
	line-height: 1.08;
	text-align: center;
}

.lumiade-section-subhead {
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-base);
	line-height: 1.65;
	margin-inline: auto;
	max-width: 710px;
	text-align: center;
}

.lumiade-pillars,
.lumiade-routine-grid,
.lumiade-ingredient-grid,
.lumiade-diary-grid {
	gap: 18px;
}

.lumiade-pillars .wp-block-column {
	border-left: 1px solid var(--lumiade-line);
	padding-left: 28px;
}

.lumiade-pillars h3,
.lumiade-routine-card h3,
.lumiade-formula-tile h3,
.lumiade-ingredient-card h3,
.lumiade-diary-card h3 {
	color: var(--lumiade-navy);
	font-size: var(--lumiade-fs-lg);
	line-height: 1.18;
}

.lumiade-pillars p,
.lumiade-routine-card p,
.lumiade-formula-tile p,
.lumiade-ingredient-card p,
.lumiade-diary-card p {
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-sm);
	line-height: 1.62;
}

.lumiade-icon {
	align-items: center;
	border: 1px solid rgba(25, 26, 28, 0.26);
	border-radius: var(--lumiade-radius-pill);
	display: inline-flex;
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 780;
	height: 42px;
	justify-content: center;
	margin-bottom: 18px;
	width: 42px;
}

.lumiade-routine-card,
.lumiade-ingredient-card,
.lumiade-diary-card {
	background: var(--lumiade-paper);
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	overflow: hidden;
}

.lumiade-routine-card {
	position: relative;
}

.lumiade-routine-card .wp-block-image {
	aspect-ratio: 1.25;
	margin: 0;
	overflow: hidden;
}

.lumiade-routine-card img,
.lumiade-ingredient-card img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.lumiade-card-copy {
	padding: 24px;
}

.lumiade-link {
	color: var(--lumiade-ink);
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 760;
	text-decoration: none;
}

.lumiade-formula-layout {
	align-items: stretch;
	display: grid !important;
	gap: 26px;
	grid-template-columns: minmax(250px, 0.28fr) minmax(0, 0.72fr);
}

.lumiade-formula-intro {
	align-self: start;
	padding-top: 14px;
}

.lumiade-formula-intro .lumiade-section-heading {
	text-align: left;
}

.lumiade-formula-strip {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lumiade-formula-tile {
	background: var(--lumiade-paper);
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	overflow: hidden;
}

.lumiade-formula-tile .wp-block-image {
	aspect-ratio: 1.35;
	margin: 0;
	overflow: hidden;
}

.lumiade-formula-tile img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.lumiade-formula-tile-copy {
	padding: 18px;
}

.lumiade-ingredient-card {
	padding: 14px;
}

.lumiade-ingredient-card .wp-block-image {
	aspect-ratio: 1.35;
	border-radius: 6px;
	margin: 0 0 16px;
	overflow: hidden;
}

.lumiade-diary-card {
	min-height: 205px;
	padding: 24px;
}

/* — 6. Footer — */
/* .lumiade-store-footer background/border-top/color fully superseded by
   lumiade-brand/components.css ".lumiade-storefront .lumiade-store-footer"
   (ink fill, translucent-white text + border-top) (Phase 1 Task 6,
   2026-07-10). */

/* background/border-bottom superseded by lumiade-brand/components.css
   ".lumiade-storefront .lumiade-footer-proof" — rgba(255,255,255,0.06) tint +
   translucent-white border on ink, in place of the legacy warm-paper tint
   (Phase 1 Task 6, 2026-07-10). Padding (layout) kept. */
.lumiade-footer-proof {
	padding: 14px 0;
}

.lumiade-footer-proof .lumiade-store-shell {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* border-left superseded by lumiade-brand/components.css
   ".lumiade-storefront .lumiade-proof-item" — translucent-white on ink
   (Phase 1 Task 6, 2026-07-10). */
.lumiade-proof-item {
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 650;
	line-height: 1.25;
	padding-left: 18px;
}

.lumiade-footer-grid {
	display: grid;
	gap: 28px;
	grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(150px, 0.7fr));
	padding: 28px 0 20px;
}

.lumiade-footer-brand h2 {
	font-size: var(--lumiade-fs-xl);
	margin-bottom: 10px;
}

/* color superseded by lumiade-brand/components.css
   ".lumiade-storefront .lumiade-store-footer :where(h1, h2, h3, h4,
   .site-title, a)" — white on ink (Phase 1 Task 6, 2026-07-10). */
.lumiade-store-footer h3 {
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 790;
	margin-bottom: 8px;
	text-transform: uppercase;
}

/* color superseded — inherits rgba(255,255,255,0.72) from
   ".lumiade-storefront .lumiade-store-footer" (links additionally get solid
   white from the :where() rule above) (Phase 1 Task 6, 2026-07-10). */
.lumiade-store-footer a,
.lumiade-store-footer p,
.lumiade-footer-legal {
	font-size: var(--lumiade-fs-sm);
	line-height: 1.5;
}

.lumiade-store-footer nav a {
	display: block;
	text-decoration: none;
}

/* border-top superseded by lumiade-brand/components.css
   ".lumiade-storefront .lumiade-footer-legal" — translucent-white on ink
   (Phase 1 Task 6, 2026-07-10). */
.lumiade-footer-legal {
	display: flex;
	justify-content: space-between;
	padding: 12px 0 14px;
}

/* — 7. WooCommerce: shop — */
.lumiade-storefront.woocommerce-shop .site-main,
.lumiade-shop-template .site-main,
.lumiade-product-template .site-main,
.lumiade-page-template .site-main {
	background: var(--lumiade-paper);
}

.lumiade-shop-template .hero-section,
.lumiade-product-template .hero-section,
.lumiade-page-template .hero-section {
	background: var(--lumiade-soft);
	border-bottom: 1px solid var(--lumiade-line);
	min-height: 0 !important;
	padding: 34px 0 !important;
}

.lumiade-shop-template .hero-section .entry-header,
.lumiade-product-template .hero-section .entry-header,
.lumiade-page-template .hero-section .entry-header {
	min-height: 0 !important;
	padding: 0 !important;
}

.lumiade-shop-template .hero-section h1,
.lumiade-product-template .hero-section h1,
.lumiade-page-template .hero-section h1 {
	font-size: var(--lumiade-fs-3xl);
}

/* Content pages that still lead with Blocksy's native page-title band (the
   plugin-generated /wishlist/ — it has no .lumiade-page-hero intro to disable the
   band for, unlike routine/ingredients/rituals) get the same beige-card
   treatment as the .lumiade-page-hero heroes: full hairline border + radius and a
   horizontal inset, so the title sits inside a padded card instead of jammed
   flush against the full-bleed beige fill. Scoped to .lumiade-page-template so
   the shop/product/category heroes (hidden or shop.css-owned) are untouched.
   Specificity 0,2,0 == the shared .hero-section rule above; later source order
   + !important wins the padding longhand it set !important. */
.lumiade-page-template .hero-section {
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	margin-bottom: 28px;
	padding: 34px 46px !important;
}

/* Inset the title within the card and match the .lumiade-page-hero display size.
   .page-title (0,3,0) beats the fs-3xl `.hero-section h1` rule above (0,2,1). */
.lumiade-page-template .hero-section .page-title {
	font-size: var(--lumiade-fs-display);
	line-height: 1.05;
	margin: 0;
}

/* Hide the theme hero on /shop + non-category product archives — .lumiade-shop-head replaces it there; category archives keep the hero (title + term description, styled in lumiade-brand/shop.css). */
.lumiade-shop-template:not(.tax-product_cat) .hero-section {
	display: none;
}

/* Product page: the top breadcrumb band wastes vertical space, so hide it and
   re-render a slim, muted breadcrumb after the product meta/categories instead
   (see the woocommerce_product_meta_end hook in the mu-plugin) — per CRO
   feedback ("move it to after categories, a bit hidden"). */
.lumiade-product-template .hero-section {
	display: none;
}

.lumiade-product-template .lumiade-meta-breadcrumb {
	margin: 10px 0 0;
	padding: 0;
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-xs, 13px);
	line-height: 1.4;
	opacity: 0.75;
}

.lumiade-product-template .lumiade-meta-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.lumiade-product-template .lumiade-meta-breadcrumb a:hover {
	color: var(--lumiade-ink);
	text-decoration: underline;
}

.lumiade-product-template .lumiade-meta-breadcrumb .sep {
	margin: 0 6px;
	opacity: 0.6;
}

/* Trim the content top spacing that was previously filled by the breadcrumb
   band (now hidden), so the gallery sits closer to the header. */
.lumiade-product-template .site-main [data-vertical-spacing] {
	padding-top: 28px;
}

.lumiade-storefront .woocommerce-result-count,
.lumiade-storefront .woocommerce-ordering {
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-sm);
}

/* — 8. WooCommerce: product — */
/* Gallery↔summary spacing on the single-product layout. Scope OUT the loop
   cards: the "Complete your ritual" related section renders `li.product` cards
   (flex columns) on this same template, and an unscoped `.product` gap leaked
   44px between every card row (image→swatches→title→price→rating→button). The
   cards match the shop-page cards, which use their own child margins, not gap. */
.lumiade-product-template .product:not(li) {
	gap: 44px;
}

/* Product gallery thumbnails: a neat, compact strip rather than large tiles.
   Blocksy sizes them via CSS vars (defaults --thumbs-width:100px / 33% mobile,
   --thumbs-spacing:15px); shrink + tighten. Thumbnails are kept (not reduced to
   dots) because previewing each angle aids product confidence/CRO — dots only
   show slide position. */
.lumiade-product-template div.woocommerce-product-gallery {
	--thumbs-spacing: 8px;
}

.lumiade-product-template div.woocommerce-product-gallery li {
	--thumbs-width: 70px;
}

/* Main gallery image: square to match the square product photos (Blocksy's
   default crop rendered it 4/3, cropping the square source). !important because
   the ratio is applied by the gallery script, not a stylesheet rule. */
.lumiade-product-template .woocommerce-product-gallery .flexy-items .ct-media-container {
	aspect-ratio: 1 / 1 !important;
}

.lumiade-product-template .woocommerce-product-gallery .flexy-items .ct-media-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Spacing comes from the ol gap (not Blocksy's asymmetric li padding, which
   offset the active border into a rectangle around the square image). */
.lumiade-product-template .woocommerce-product-gallery .flexy-pills ol {
	gap: 8px;
	margin: 8px 0 0;
}

.lumiade-product-template .woocommerce-product-gallery .flexy-pills li {
	padding: 0;
	margin: 0;
}

/* Square tile with 0 padding: the image fills it edge-to-edge (absolute inset)
   so the active border (::after, inset:0) sits right on the image, not offset
   by any gap. */
.lumiade-product-template .woocommerce-product-gallery .flexy-pills li .ct-media-container {
	aspect-ratio: 1;
	width: 100%;
	padding: 0;
	position: relative;
	overflow: hidden;
	border-radius: 8px;
}

.lumiade-product-template .woocommerce-product-gallery .flexy-pills li .ct-media-container::after {
	border-width: 2px;
	border-radius: 8px;
}

.lumiade-product-template .woocommerce-product-gallery .flexy-pills li img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lumiade-product-template div.product .entry-summary,
.lumiade-product-template div.product .summary {
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 244, 242, 0.72));
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	padding: clamp(20px, 2vw, 28px);
}

.lumiade-product-template .summary .product_title {
	font-size: clamp(42px, 4vw, 58px);
	line-height: 1.05;
	margin-bottom: 14px;
}

.lumiade-product-template .summary .price {
	color: var(--lumiade-ink);
	font-size: var(--lumiade-fs-lg);
	font-weight: 760;
}

/* The .price rule above sizes the container, but Blocksy styles the inner
   amount span directly (12px, old --theme muted) and a direct rule beats the
   inherited size/colour. Target the amount so the price reads on-token. */
.lumiade-product-template .entry-summary .price .woocommerce-Price-amount,
.lumiade-product-template .summary .price .woocommerce-Price-amount {
	color: var(--lumiade-ink);
	font-size: var(--lumiade-fs-lg);
}

.lumiade-product-template .summary .woocommerce-product-details__short-description {
	border-top: 1px solid var(--lumiade-line);
	color: var(--lumiade-ink);
	font-size: var(--lumiade-fs-base);
	line-height: 1.7;
	margin-top: 24px;
	padding-top: 22px;
}

.lumiade-product-benefits {
	display: grid;
	gap: 6px 18px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 14px 0;
}

/* Minimalist: no pill background/border — just a sage icon + muted label. */
.lumiade-product-benefits span {
	align-items: center;
	color: var(--lumiade-muted);
	display: flex;
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 600;
	gap: 8px;
	line-height: 1.3;
	min-height: 0;
	padding: 3px 0;
}

.lumiade-product-benefits .lumiade-benefit-icon {
	color: var(--lumiade-sage);
}

.lumiade-feat-glow { --lumiade-feat-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 1.5 13.7 7l5.5 1.7-5.5 1.7L12 15.9l-1.7-5.5L4.8 8.7 10.3 7 12 1.5Zm6.5 11 .9 2.8 2.8.9-2.8.9-.9 2.8-.9-2.8-2.8-.9 2.8-.9.9-2.8Z'/%3E%3C/svg%3E"); }
.lumiade-feat-drop { --lumiade-feat-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 3.1 6.7 8.4a7.5 7.5 0 1 0 10.6 0L12 3.1Zm0 15.4a4.5 4.5 0 0 1-4.5-4.5h1.6A2.9 2.9 0 0 0 12 16.9v1.6Z'/%3E%3C/svg%3E"); }
.lumiade-feat-leaf { --lumiade-feat-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 3c-9 0-14 4.6-14 12 0 1 .1 1.9.4 2.8L4 20.2l1.4 1.4 2.4-2.4c.9.3 1.8.4 2.8.4 7.4 0 12-5 12-14 0-.6 0-1.2-.1-1.8C22.2 3.1 20.6 3 20 3Zm-9.4 13.6C11.9 12 15 9 19 8c-2 4-5 7.4-8.4 8.6Z'/%3E%3C/svg%3E"); }
.lumiade-feat-shield { --lumiade-feat-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2 4 5v6c0 5.2 3.4 9.5 8 11 4.6-1.5 8-5.8 8-11V5l-8-3Zm-1.1 13.8-3.7-3.7 1.4-1.4 2.3 2.3 4.9-4.9 1.4 1.4-6.3 6.3Z'/%3E%3C/svg%3E"); }
.lumiade-feat-lift { --lumiade-feat-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3.7 17.3 9 12l4 4 6.6-6.6V13h2V6h-7v2h3.6L13 13.2l-4-4-6.7 6.7 1.4 1.4Z'/%3E%3C/svg%3E"); }
.lumiade-feat-clock { --lumiade-feat-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16Zm1-13h-2v6l5.2 3.1 1-1.7L13 12V7Z'/%3E%3C/svg%3E"); }
.lumiade-feat-smooth { --lumiade-feat-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 7c1.5 0 2.3-.8 3-1.5S7.4 4 9 4s2.3.8 3 1.5S13.4 7 15 7s2.3-.8 3-1.5S19.6 4 21 4v2c-1 0-1.5.5-2.1 1.1C18.1 7.9 17.1 9 15 9s-3.1-1.1-3.9-1.9C10.5 6.5 10 6 9 6s-1.5.5-2.1 1.1C6.1 7.9 5.1 9 3 9V7Zm0 5c1.5 0 2.3-.8 3-1.5S7.4 9 9 9s2.3.8 3 1.5 1.4 1.5 3 1.5 2.3-.8 3-1.5S19.6 9 21 9v2c-1 0-1.5.5-2.1 1.1-.8.8-1.8 1.9-3.9 1.9s-3.1-1.1-3.9-1.9C10.5 11.5 10 11 9 11s-1.5.5-2.1 1.1C6.1 12.9 5.1 14 3 14v-2Zm0 5c1.5 0 2.3-.8 3-1.5s1.4-1.5 3-1.5 2.3.8 3 1.5 1.4 1.5 3 1.5 2.3-.8 3-1.5 1.1-1.5 2.1-1.5v2c-1 0-1.5.5-2.1 1.1-.8.8-1.8 1.9-3.9 1.9s-3.1-1.1-3.9-1.9c-.6-.6-1.1-1.1-2.1-1.1s-1.5.5-2.1 1.1C6.1 17.9 5.1 19 3 19v-2Z'/%3E%3C/svg%3E"); }

.lumiade-product-template form.cart {
	border-top: 1px solid var(--lumiade-line);
	margin-top: 24px;
	padding-top: 26px;
}

.lumiade-product-template form.cart .quantity input.qty,
.lumiade-storefront .quantity input.qty {
	border-color: var(--quantity-initial-color, rgba(25, 26, 28, 0.34)) !important;
	color: var(--lumiade-ink);
	min-height: 44px;
}

.lumiade-product-template form.cart .quantity input.qty:hover,
.lumiade-product-template form.cart .quantity input.qty:focus,
.lumiade-storefront .quantity input.qty:hover,
.lumiade-storefront .quantity input.qty:focus {
	border-color: var(--quantity-hover-color, var(--lumiade-ink)) !important;
	box-shadow: 0 0 0 1px rgba(25, 26, 28, 0.12);
	outline: none;
}

/* .woocommerce-tabs dropped from this list (Phase 4 T6): pdp.css Section A
   ships its own ".lumiade-product-template .woocommerce-tabs" rule
   (background: var(--lumiade-paper); border: 0;) — this monolith copy was an
   exact duplicate left over from Phase 3 T1. gallery/summary/related.products
   have no equivalent in pdp.css, so they stay here. */
.lumiade-product-template .woocommerce-product-gallery,
.lumiade-product-template .summary,
.lumiade-product-template .related.products {
	background: var(--lumiade-paper);
	border-color: var(--lumiade-line);
	border-radius: var(--lumiade-radius);
}

/* "Complete your ritual" cards: drop the two-line title reservation so a
   one-line title (e.g. "Radiance Essence") doesn't leave a gap above the
   price, and pin the CTA row to the card bottom so the buttons still align
   across the row (cards stretch to equal height in the grid). */
.lumiade-product-template .related.products li.product .woocommerce-loop-product__title {
	min-height: 0;
}
.lumiade-product-template .related.products li.product .ct-woo-card-actions {
	margin-top: auto;
}

.lumiade-page-template .entry-content {
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-md);
	line-height: 1.75;
}

.lumiade-content-page {
	padding: 74px 0 92px;
}

.lumiade-content-page .lumiade-page-hero,
.lumiade-page-template .lumiade-page-hero {
	background: var(--lumiade-soft);
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	margin-bottom: 28px;
	padding: 46px;
}

.lumiade-content-page h1,
.lumiade-page-template .lumiade-page-hero h1 {
	font-size: var(--lumiade-fs-display);
	line-height: 1.05;
}

.lumiade-content-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 28px;
}

.lumiade-content-card {
	background: var(--lumiade-paper);
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	padding: 24px;
}

/* — Ingredient glossary (/ingredients/): jump nav, anchored cards,
     "found in" product links, closing CTA. — */
.lumiade-glossary-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.lumiade-glossary-nav a {
	align-items: center;
	background: var(--lumiade-paper);
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius-pill);
	color: var(--lumiade-navy);
	display: inline-flex;
	font-size: var(--lumiade-fs-sm);
	font-weight: 600;
	min-height: 44px;
	padding: 8px 18px;
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.lumiade-glossary-nav a:hover {
	border-color: var(--lumiade-ink);
	color: var(--lumiade-ink);
}

/* Anchor jumps land clear of the sticky header. */
.lumiade-content-page :is(h2, h3)[id] {
	scroll-margin-top: 110px;
}

.lumiade-content-card .lumiade-kicker {
	margin-bottom: 6px;
}

.lumiade-glossary-found {
	border-top: 1px solid var(--lumiade-line);
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-sm);
	margin-top: 14px;
	padding-top: 12px;
}

.lumiade-glossary-found a {
	color: var(--lumiade-navy);
	text-decoration: underline;
	text-decoration-color: var(--lumiade-line);
	text-underline-offset: 3px;
}

.lumiade-glossary-found a:hover {
	color: var(--lumiade-ink);
	text-decoration-color: var(--lumiade-ink);
}

.lumiade-glossary-cta {
	background: var(--lumiade-soft);
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	margin-top: 34px;
	padding: 42px 46px;
	text-align: center;
}

.lumiade-glossary-cta p {
	color: var(--lumiade-muted);
	margin: 10px auto 20px;
	max-width: 52ch;
}

/* Constrain the after-summary sections to match the gallery/summary wrapper
   above them (.product-entry-wrapper.is-width-constrained). They render in the
   full-width .ct-container-full, so without this the tabs/#reviews and
   related products stretch edge-to-edge and read far too wide on desktop.
   Mirror Blocksy's own .is-width-constrained sizing so the whole product page
   lines up. (Method grid, ritual CTA, and reviews section carry the same
   constraint from pdp.css Section C, which owns their full styling.) */
.lumiade-product-template .woocommerce-tabs,
.lumiade-product-template .related.products {
	margin-inline: auto;
	width: var(--theme-container-width);
	max-width: var(--theme-block-max-width);
}

@media (max-width: 720px) {
	.lumiade-store-shell,
	.lumiade-shell,
	.lumiade-storefront #header .ct-container,
	.lumiade-storefront #header [data-row] > div {
		width: min(100% - 32px, 1320px);
	}

	.lumiade-storefront-trust .lumiade-store-shell,
	.lumiade-footer-proof .lumiade-store-shell,
	.lumiade-footer-grid,
	.lumiade-footer-legal,
	.lumiade-hero-grid,
	.lumiade-formula-layout,
	.lumiade-formula-strip,
	.lumiade-content-grid {
		display: block !important;
	}

	.lumiade-storefront-trust .lumiade-trust-item {
		display: block;
		text-align: center;
	}

	.lumiade-storefront-trust .lumiade-trust-item + .lumiade-trust-item,
	.lumiade-footer-proof .lumiade-proof-item {
		border-left: 0;
		padding-left: 0;
	}

	.lumiade-hero-copy {
		min-height: 0;
		padding: 48px 24px 34px;
	}

	.lumiade-home h1 {
		font-size: var(--lumiade-fs-display);
	}

	.lumiade-hero-figure,
	.lumiade-hero-figure img {
		min-height: 430px;
	}

	.lumiade-section {
		padding: 40px 0;
	}

	.lumiade-section-heading,
	.lumiade-shop-template .hero-section h1,
	.lumiade-product-template .summary .product_title,
	.lumiade-content-page h1,
	.lumiade-page-template .lumiade-page-hero h1 {
		font-size: var(--lumiade-fs-3xl);
	}

	/* Keep benefits as a compact, borderless 2x2 icon list on mobile. */
	.lumiade-product-benefits {
		gap: 5px 14px;
		margin: 12px 0;
	}

	.lumiade-product-benefits span {
		font-size: var(--lumiade-fs-xs, 13px);
		padding: 2px 0;
	}

	.lumiade-pillars .wp-block-column {
		border-left: 0;
		padding-left: 0;
	}

	.lumiade-formula-intro,
	.lumiade-formula-tile,
	.lumiade-content-card,
	.lumiade-footer-grid nav {
		margin-top: 18px;
	}

	/* Drop the summary box (border + gradient + padding) on mobile — it just
	   boxes in the title and eats width/space. Flush is cleaner and closes the
	   gap to the thumbnails above. */
	.lumiade-product-template div.product .entry-summary,
	.lumiade-product-template div.product .summary {
		background: none;
		border: 0;
		border-radius: 0;
		padding: 0;
	}

	/* Title sits directly under the thumbnails — no extra top margin. */
	.lumiade-product-template .summary .product_title {
		margin-top: 0;
	}

	/* Shave the stacked gallery->summary gap on mobile (was the 44px desktop
	   grid gap) and the empty space above the gallery left after hiding the
	   breadcrumb band. */
	.lumiade-product-template .product {
		gap: 8px;
	}

	.lumiade-product-template .site-main [data-vertical-spacing] {
		padding-top: 12px;
	}

	.lumiade-product-template div.woocommerce-product-gallery li {
		--thumbs-width: 58px;
	}
}

@media (max-width: 560px) {
	.lumiade-store-shell,
	.lumiade-shell,
	.lumiade-storefront #header .ct-container,
	.lumiade-storefront #header [data-row] > div {
		width: min(100% - 24px, 1320px);
	}

	.lumiade-storefront-trust {
		font-size: var(--lumiade-fs-eyebrow);
	}

	.lumiade-storefront-trust .lumiade-store-shell {
		gap: 6px;
		min-height: 48px;
	}

	.lumiade-storefront .site-title {
		font-size: var(--lumiade-fs-lg);
	}

	.lumiade-home h1 {
		font-size: var(--lumiade-fs-3xl);
	}

	.lumiade-lede {
		font-size: var(--lumiade-fs-base);
	}

	.lumiade-hero-figure,
	.lumiade-hero-figure img {
		min-height: 330px;
	}

	.lumiade-panel,
	.lumiade-content-page .lumiade-page-hero,
	.lumiade-page-template .lumiade-page-hero {
		padding: 24px;
	}

	.lumiade-footer-proof .lumiade-store-shell {
		display: grid !important;
		grid-template-columns: 1fr;
	}

	.lumiade-footer-legal {
		display: flex !important;
		flex-direction: column;
		gap: 8px;
	}
}

/* Mockup 77 alignment and mobile tightening. */
.lumiade-home .lumiade-hero {
	overflow: hidden;
}

.lumiade-home .lumiade-hero-grid {
	display: block !important;
	margin-inline: auto;
	max-width: none;
	min-height: 760px;
	width: 100%;
}

.lumiade-home .lumiade-hero-grid > .wp-block-column:not(.lumiade-hero-copy) {
	inset: 0;
	max-width: none;
	position: absolute;
	width: 100%;
}

.lumiade-home .lumiade-hero-copy {
	align-self: auto;
	margin-inline: auto;
	min-height: 760px;
	padding: 150px 0 110px;
	width: min(100% - 160px, 1320px);
}

.lumiade-home .lumiade-hero-copy::before {
	background: linear-gradient(90deg, rgba(244, 244, 242, 0.94), rgba(244, 244, 242, 0.66) 70%, rgba(244, 244, 242, 0));
	content: "";
	inset: 0 auto 0 -88px;
	position: absolute;
	width: min(58vw, 760px);
	z-index: 0;
}

.lumiade-home .lumiade-hero-copy > * {
	position: relative;
	z-index: 1;
}

.lumiade-home h1 {
	font-size: var(--lumiade-fs-display);
	line-height: 1.02;
	max-width: 760px;
}

.lumiade-home .lumiade-hero-figure,
.lumiade-home .lumiade-hero-figure img {
	height: 760px;
	min-height: 760px;
}

.lumiade-home .lumiade-hero-figure img {
	object-position: center center;
}

.lumiade-home .lumiade-hero + .lumiade-section {
	padding-top: 28px;
}

.lumiade-pillars .wp-block-column {
	border-left: 0;
	padding-left: 0;
}

.lumiade-icon {
	border: 0;
	border-radius: 0;
	color: var(--lumiade-ink);
	display: block;
	font-size: 0;
	height: 56px;
	margin: 0 0 18px;
	position: relative;
	width: 56px;
}

.lumiade-icon::before {
	background: currentColor;
	content: "";
	display: block;
	height: 56px;
	width: 56px;
}

.lumiade-icon-layers::before {
	clip-path: polygon(8% 28%, 50% 8%, 92% 28%, 50% 48%);
}

.lumiade-icon-layers::after {
	border-bottom: 2px solid currentColor;
	border-top: 2px solid currentColor;
	content: "";
	height: 18px;
	inset: 29px 7px auto;
	position: absolute;
}

.lumiade-icon-drop::before {
	background: transparent;
	border: 2px solid currentColor;
	border-radius: 58% 58% 58% 0;
	height: 36px;
	margin: 8px auto 0;
	transform: rotate(-45deg);
	width: 36px;
}

.lumiade-icon-shield::before {
	clip-path: polygon(50% 4%, 88% 18%, 82% 68%, 50% 94%, 18% 68%, 12% 18%);
	opacity: 0.9;
}

.lumiade-icon-shield::after {
	border: 2px solid var(--lumiade-paper);
	border-left: 0;
	border-top: 0;
	content: "";
	height: 17px;
	left: 25px;
	position: absolute;
	top: 19px;
	transform: rotate(42deg);
	width: 9px;
}

.lumiade-routine-card {
	min-height: 390px;
}

.lumiade-routine-card .wp-block-image {
	aspect-ratio: auto;
	height: 100%;
	inset: 0;
	position: absolute;
	width: 100%;
}

.lumiade-routine-card .wp-block-image img {
	height: 100%;
	width: 100%;
}

.lumiade-card-copy {
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.72) 78%, rgba(255, 255, 255, 0));
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 390px;
	padding: 34px 28px;
	position: relative;
	width: 55%;
	z-index: 1;
}

.lumiade-review-section {
	background: var(--lumiade-soft);
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.lumiade-review-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 30px;
}

.lumiade-review-card {
	background: var(--lumiade-paper);
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	padding: 24px;
}

.lumiade-review-card p {
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-sm);
	line-height: 1.65;
}

.lumiade-review-card .lumiade-stars {
	color: var(--lumiade-gold);
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 800;
	letter-spacing: 0;
	margin-bottom: 12px;
}

.lumiade-review-card .lumiade-review-name {
	color: var(--lumiade-ink);
	font-weight: 760;
	margin-bottom: 0;
}

.lumiade-review-name span {
	color: var(--lumiade-muted);
	font-size: var(--lumiade-fs-sm);
	font-weight: 650;
}

@media (max-width: 920px) {
	.lumiade-home .lumiade-hero-grid,
	.lumiade-home .lumiade-hero-copy {
		min-height: 620px;
	}

	.lumiade-home .lumiade-hero-grid > .wp-block-column:not(.lumiade-hero-copy) {
		inset: 0;
		position: absolute;
	}

	.lumiade-home .lumiade-hero-copy {
		justify-content: flex-end;
		padding: 74px 24px 38px;
		width: min(100% - 28px, 1320px);
	}

	.lumiade-home .lumiade-hero-copy::before {
		background: rgba(255, 255, 255, 0.82);
		border: 1px solid rgba(25, 26, 28, 0.12);
		border-radius: var(--lumiade-radius);
		box-shadow: 0 18px 48px rgba(25, 26, 28, 0.08);
		bottom: 24px;
		height: 320px;
		left: 0;
		right: 0;
		top: auto;
		width: auto;
	}

	.lumiade-home h1 {
		font-size: var(--lumiade-fs-3xl);
		max-width: 420px;
	}

	.lumiade-lede {
		font-size: var(--lumiade-fs-sm);
		max-width: 320px;
	}

	.lumiade-home .lumiade-hero-figure,
	.lumiade-home .lumiade-hero-figure img {
		height: 620px;
		min-height: 620px;
	}

	.lumiade-home .lumiade-hero-figure img {
		object-position: 64% center;
	}

	.lumiade-routine-grid {
		display: grid !important;
		grid-template-columns: 1fr;
	}

	.lumiade-routine-card {
		min-height: 260px;
	}

	.lumiade-card-copy {
		min-height: 260px;
		padding: 24px;
		width: 58%;
	}

	.lumiade-formula-layout {
		display: block !important;
	}

	.lumiade-formula-strip,
	.lumiade-ingredient-grid,
	.lumiade-review-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.lumiade-storefront-trust .lumiade-store-shell {
		flex-direction: column;
	}

	.lumiade-home .lumiade-hero-grid,
	.lumiade-home .lumiade-hero-copy,
	.lumiade-home .lumiade-hero-figure,
	.lumiade-home .lumiade-hero-figure img {
		height: 560px;
		min-height: 560px;
	}

	.lumiade-home .lumiade-hero-copy {
		gap: 14px;
		padding: 64px 16px 24px;
		width: min(100% - 24px, 1320px);
	}

	.lumiade-home .lumiade-hero-copy::before {
		bottom: 18px;
		height: 278px;
		left: 0;
		right: 0;
		top: auto;
	}

	.lumiade-home .lumiade-hero-figure img {
		object-position: 64% center;
	}

	.lumiade-home h1 {
		font-size: var(--lumiade-fs-3xl);
		line-height: 1.02;
		max-width: 340px;
	}

	.lumiade-lede {
		font-size: var(--lumiade-fs-sm);
		line-height: 1.45;
		max-width: 292px;
	}

	.lumiade-button-row {
		gap: 8px;
	}

	.lumiade-button-row .wp-block-button__link {
		font-size: var(--lumiade-fs-eyebrow);
		padding: 11px 13px;
	}

	.lumiade-section {
		padding: 38px 0;
	}

	.lumiade-panel,
	.lumiade-content-page .lumiade-page-hero,
	.lumiade-page-template .lumiade-page-hero {
		padding: 22px 18px;
	}

	.lumiade-section-heading,
	.lumiade-shop-template .hero-section h1,
	.lumiade-product-template .summary .product_title,
	.lumiade-content-page h1,
	.lumiade-page-template .lumiade-page-hero h1 {
		font-size: var(--lumiade-fs-xl);
		line-height: 1.08;
	}

	.lumiade-section-subhead {
		font-size: var(--lumiade-fs-sm);
		line-height: 1.55;
	}

	.lumiade-pillars {
		display: block !important;
	}

	.lumiade-pillars .wp-block-column {
		display: grid;
		gap: 0 14px;
		grid-template-columns: 58px 1fr;
		margin-bottom: 18px;
	}

	.lumiade-pillars .wp-block-column:last-child {
		margin-bottom: 0;
	}

	.lumiade-pillars h3 {
		margin-bottom: 4px;
	}

	.lumiade-pillars p:not(.lumiade-icon) {
		grid-column: 2;
		margin-bottom: 0;
	}

	.lumiade-icon {
		grid-row: span 2;
		height: 46px;
		width: 46px;
	}

	.lumiade-icon::before {
		height: 46px;
		width: 46px;
	}

	.lumiade-icon-drop::before {
		height: 30px;
		width: 30px;
	}

	.lumiade-routine-card {
		min-height: 218px;
	}

	.lumiade-card-copy {
		min-height: 218px;
		padding: 18px;
		width: 64%;
	}

	.lumiade-routine-card h3,
	.lumiade-formula-tile h3,
	.lumiade-ingredient-card h3,
	.lumiade-diary-card h3 {
		font-size: var(--lumiade-fs-md);
	}

	.lumiade-routine-card p,
	.lumiade-formula-tile p,
	.lumiade-ingredient-card p,
	.lumiade-diary-card p,
	.lumiade-review-card p {
		font-size: var(--lumiade-fs-sm);
		line-height: 1.48;
	}

	.lumiade-formula-intro {
		margin-top: 0;
	}

	.lumiade-formula-intro .lumiade-section-heading {
		text-align: center;
	}

	.lumiade-formula-intro p {
		color: var(--lumiade-muted);
		font-size: var(--lumiade-fs-sm);
		line-height: 1.55;
		text-align: center;
	}

	.lumiade-formula-strip,
	.lumiade-ingredient-grid {
		gap: 10px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 18px;
	}

	.lumiade-formula-tile-copy,
	.lumiade-ingredient-card {
		padding: 10px;
	}

	.lumiade-link {
		font-size: var(--lumiade-fs-eyebrow);
		white-space: nowrap;
	}

	.lumiade-formula-tile .wp-block-image,
	.lumiade-ingredient-card .wp-block-image {
		aspect-ratio: 1.05;
		margin-bottom: 10px;
	}

	.lumiade-review-grid {
		display: flex !important;
		gap: 12px;
		margin-inline: -12px;
		overflow-x: auto;
		padding: 0 12px 6px;
		scroll-snap-type: x mandatory;
	}

	.lumiade-review-card {
		flex: 0 0 246px;
		padding: 18px;
		scroll-snap-align: start;
	}

	.lumiade-diary-grid {
		display: grid !important;
		grid-template-columns: 1fr;
	}

	.lumiade-diary-card {
		min-height: 0;
		padding: 20px;
	}
}

/* Mobile mockup-77 art direction. */
@media (max-width: 720px) {
	.lumiade-storefront [data-device="mobile"] .ct-header-search {
		display: none !important;
	}

	.lumiade-storefront-trust {
		font-size: var(--lumiade-fs-eyebrow);
		line-height: 1.2;
		position: relative;
		z-index: 60;
	}

	.lumiade-storefront-trust .lumiade-store-shell {
		display: flex !important;
		flex-direction: row;
		gap: 12px;
		justify-content: center;
		min-height: 32px;
		overflow: hidden;
		padding: 0 12px;
		width: 100%;
	}

	.lumiade-storefront-trust .lumiade-trust-item {
		align-items: center;
		border-left: 0 !important;
		display: inline-flex;
		flex: 0 0 auto;
		gap: 5px;
		justify-content: center;
		overflow: visible;
		padding: 0 !important;
		text-align: center;
		text-overflow: clip;
		white-space: nowrap;
	}

	.lumiade-storefront-trust .lumiade-trust-label {
		font-size: 0;
	}

	.lumiade-storefront-trust .lumiade-trust-label::after {
		content: attr(data-mobile-label);
		font-size: var(--lumiade-fs-eyebrow);
	}

	.lumiade-storefront-trust .lumiade-trust-icon {
		height: 12px;
		width: 12px;
	}

	.lumiade-storefront #header {
		position: sticky;
		top: 0;
		z-index: 70;
	}

	.lumiade-storefront #header [data-row],
	.lumiade-storefront #header [data-row*="middle"] {
		min-height: 74px;
	}

	.lumiade-storefront #header .ct-container,
	.lumiade-storefront #header [data-row] > div {
		padding: 0 22px;
		width: 100%;
	}

	.lumiade-storefront .site-title {
		font-size: var(--lumiade-fs-lg);
	}

	/* color superseded by lumiade-brand/components.css
	   ".lumiade-storefront [data-device=\"mobile\"] .ct-header-trigger
	   { --theme-icon-color: #ffffff }" — Blocksy's svg fill reads that var,
	   not `color` (Phase 1 Task 6, 2026-07-10). */
	.lumiade-storefront [data-device="mobile"] .ct-header-trigger {
		align-items: center;
		display: inline-flex;
		height: 44px;
		justify-content: center;
		margin-right: -12px;
		width: 44px;
	}

	/* Panel background (#offcanvas.ct-panel.ct-header, #offcanvas
	   .ct-panel-inner) and close-icon/link-color skin fully superseded by
	   lumiade-brand/components.css (Phase 1 Task 6, 2026-07-10) — ink
	   panel, white close icon + links, translucent-white current/hover
	   state. Layout (padding, margin-top) kept below. */

	#offcanvas .ct-panel-content {
		padding: 46px 28px 32px;
	}

	/* #offcanvas .ct-toggle-close / [data-toggle-panel] color and svg fill:
	   superseded, see components.css. */

	#offcanvas .mobile-menu {
		margin-top: 0;
	}

	#offcanvas .mobile-menu a {
		display: block;
		font-family: var(--lumiade-font-serif);
		font-size: var(--lumiade-fs-xl);
		font-weight: 500;
		line-height: 1.12;
		padding: 12px 0;
		text-decoration: none;
	}

	/* current-menu-item/hover/focus color: superseded, see components.css. */

	.lumiade-store-shell,
	.lumiade-shell,
	.lumiade-storefront #header .ct-container,
	.lumiade-storefront #header [data-row] > div {
		width: min(100% - 32px, 1320px);
	}

	.lumiade-home .lumiade-section > .lumiade-shell,
	.lumiade-home .lumiade-section .lumiade-shell,
	.lumiade-section-soft > .lumiade-shell,
	.lumiade-section-soft > .wp-block-group__inner-container {
		width: min(100% - 32px, 1320px) !important;
	}

	.lumiade-home .lumiade-hero {
		background: var(--lumiade-panel);
		margin-inline: calc(50% - 50vw);
		width: 100vw;
	}

	.lumiade-home .lumiade-hero-grid,
	.lumiade-home .lumiade-hero-copy,
	.lumiade-home .lumiade-hero-figure,
	.lumiade-home .lumiade-hero-figure img {
		height: 586px;
		min-height: 586px;
	}

	.lumiade-home .lumiade-hero-copy {
		gap: 12px;
		justify-content: flex-end;
		padding: 0 16px 24px;
		width: min(100% - 28px, 420px);
	}

	.lumiade-home .lumiade-hero-copy::before {
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.91), rgba(255, 255, 255, 0.78) 72%, rgba(255, 255, 255, 0.5));
		border: 1px solid rgba(25, 26, 28, 0.1);
		border-radius: var(--lumiade-radius);
		bottom: 20px;
		box-shadow: 0 18px 48px rgba(25, 26, 28, 0.08);
		height: 286px;
		left: 0;
		right: 0;
		top: auto;
	}

	.lumiade-home .lumiade-hero-figure img {
		object-position: 61% center;
	}

	.lumiade-home .lumiade-kicker {
		font-size: var(--lumiade-fs-eyebrow);
		line-height: 1.2;
	}

	.lumiade-home h1 {
		font-size: var(--lumiade-fs-3xl);
		line-height: 1.02;
		max-width: 340px;
	}

	.lumiade-lede {
		font-size: var(--lumiade-fs-sm);
		line-height: 1.45;
		max-width: 310px;
	}

	.lumiade-button-row {
		gap: 8px;
	}

	.lumiade-button-row .wp-block-button__link {
		font-size: var(--lumiade-fs-eyebrow);
		min-width: 137px;
		padding: 12px 13px;
		text-align: center;
	}

	.lumiade-home .lumiade-hero + .lumiade-section {
		padding-top: 28px;
	}

	.lumiade-section {
		padding: 34px 0;
	}

	.lumiade-panel,
	.lumiade-content-page .lumiade-page-hero,
	.lumiade-page-template .lumiade-page-hero {
		padding: 24px 20px;
	}

	.lumiade-section-heading,
	.lumiade-shop-template .hero-section h1,
	.lumiade-product-template .summary .product_title,
	.lumiade-content-page h1,
	.lumiade-page-template .lumiade-page-hero h1 {
		font-size: var(--lumiade-fs-xl);
		line-height: 1.08;
	}

	.lumiade-section-subhead {
		font-size: var(--lumiade-fs-sm);
		line-height: 1.48;
		margin-bottom: 16px;
	}

	.lumiade-pillars {
		display: block !important;
		margin-top: 18px;
	}

	.lumiade-pillars .wp-block-column {
		border-top: 1px solid var(--lumiade-line);
		display: grid;
		gap: 0 16px;
		grid-template-columns: 54px 1fr;
		margin-bottom: 0;
		padding: 15px 0;
	}

	.lumiade-pillars .wp-block-column:first-child {
		border-top: 0;
	}

	.lumiade-pillars h3 {
		font-size: var(--lumiade-fs-md);
		margin-bottom: 4px;
	}

	.lumiade-pillars p:not(.lumiade-icon) {
		font-size: var(--lumiade-fs-sm);
		grid-column: 2;
		line-height: 1.45;
		margin-bottom: 0;
	}

	.lumiade-icon {
		grid-row: span 2;
		height: 42px;
		margin-top: 2px;
		width: 42px;
	}

	.lumiade-icon::before {
		height: 42px;
		width: 42px;
	}

	.lumiade-icon-drop::before {
		height: 28px;
		width: 28px;
	}

	.lumiade-routine-grid {
		display: grid !important;
		gap: 12px;
		grid-template-columns: 1fr;
	}

	.lumiade-routine-card {
		height: 174px;
		min-height: 174px;
	}

	.lumiade-routine-card .wp-block-image {
		height: 174px;
		min-height: 174px;
	}

	.lumiade-routine-card .wp-block-image img {
		height: 174px;
		object-position: 64% center;
	}

	.lumiade-card-copy {
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.68) 70%, rgba(255, 255, 255, 0.04));
		min-height: 174px;
		padding: 16px;
		width: 48%;
	}

	.lumiade-routine-card h3,
	.lumiade-formula-tile h3,
	.lumiade-ingredient-card h3,
	.lumiade-diary-card h3 {
		font-size: var(--lumiade-fs-base);
		line-height: 1.15;
	}

	.lumiade-routine-card p,
	.lumiade-formula-tile p,
	.lumiade-ingredient-card p,
	.lumiade-diary-card p,
	.lumiade-review-card p {
		font-size: var(--lumiade-fs-sm);
		line-height: 1.42;
	}

	.lumiade-formula-layout {
		display: block !important;
	}

	.lumiade-formula-intro,
	.lumiade-formula-intro .lumiade-section-heading,
	.lumiade-formula-intro p {
		text-align: center;
	}

	.lumiade-formula-intro p {
		font-size: var(--lumiade-fs-sm);
		line-height: 1.45;
	}

	.lumiade-formula-strip,
	.lumiade-ingredient-grid {
		display: grid !important;
		gap: 10px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 18px;
	}

	.lumiade-formula-tile {
		min-height: 176px;
	}

	.lumiade-formula-tile .wp-block-image {
		aspect-ratio: auto;
		height: 78px;
		margin: 0;
	}

	.lumiade-formula-tile-copy {
		padding: 12px;
	}

	.lumiade-ingredient-card {
		border: 0;
		box-shadow: inset 0 0 0 1px var(--lumiade-line);
		min-height: 230px;
		overflow: visible;
		padding: 12px;
	}

	.lumiade-ingredient-card .wp-block-image {
		aspect-ratio: auto;
		border-radius: 6px;
		height: 78px;
		margin: 0 0 10px;
		overflow: hidden;
	}

	.lumiade-link {
		font-size: var(--lumiade-fs-eyebrow);
		white-space: nowrap;
	}

	#ingredients .lumiade-shell {
		background: var(--lumiade-soft);
		overflow: visible;
		padding: 18px 10px 20px;
	}

	#ingredients .lumiade-ingredient-grid {
		box-sizing: border-box;
		margin-top: 14px;
		overflow: visible;
		padding: 1px;
	}

	#ingredients .lumiade-ingredient-card {
		box-shadow: 0 0 0 1px var(--lumiade-line);
	}

	.lumiade-review-grid {
		display: flex !important;
		gap: 12px;
		margin-inline: -16px;
		overflow-x: auto;
		padding: 0 16px 8px;
		scroll-snap-type: x mandatory;
	}

	.lumiade-review-card {
		flex: 0 0 250px;
		min-height: 148px;
		padding: 18px;
		scroll-snap-align: start;
	}

	.lumiade-diary-grid {
		display: grid !important;
		gap: 10px;
		grid-template-columns: 1fr;
	}

	.lumiade-diary-card {
		min-height: 118px;
		padding: 18px;
	}

	.lumiade-footer-proof .lumiade-store-shell,
	.lumiade-footer-grid,
	.lumiade-footer-legal {
		width: min(100% - 32px, 1320px);
	}
}

@media (max-width: 420px) {
	.lumiade-storefront-trust {
		font-size: var(--lumiade-fs-eyebrow);
	}

	.lumiade-storefront-trust .lumiade-store-shell {
		gap: 9px;
		min-height: 32px;
		padding: 0 8px;
	}

	.lumiade-storefront-trust .lumiade-trust-label::after {
		font-size: var(--lumiade-fs-eyebrow);
	}

	.lumiade-storefront #header [data-row],
	.lumiade-storefront #header [data-row*="middle"] {
		min-height: 72px;
	}

	.lumiade-storefront #header .ct-container,
	.lumiade-storefront #header [data-row] > div {
		padding: 0 12px;
	}

	.lumiade-home .lumiade-hero-grid,
	.lumiade-home .lumiade-hero-copy,
	.lumiade-home .lumiade-hero-figure,
	.lumiade-home .lumiade-hero-figure img {
		height: 560px;
		min-height: 560px;
	}

	.lumiade-home .lumiade-hero-copy {
		padding: 0 16px 22px;
		width: min(100% - 24px, 390px);
	}

	.lumiade-home .lumiade-hero-copy::before {
		bottom: 18px;
		height: 276px;
	}

	.lumiade-home .lumiade-hero-figure img {
		object-position: 62% center;
	}

	.lumiade-home h1 {
		font-size: var(--lumiade-fs-2xl);
		max-width: 330px;
	}

	.lumiade-lede {
		max-width: 300px;
	}

	.lumiade-button-row .wp-block-button__link {
		min-width: 136px;
	}
}

@media (max-width: 360px) {
	.lumiade-storefront-trust {
		font-size: var(--lumiade-fs-eyebrow);
	}

	.lumiade-storefront-trust .lumiade-store-shell {
		gap: 5px;
		padding: 0 6px;
	}

	.lumiade-storefront-trust .lumiade-trust-item {
		gap: 4px;
	}

	.lumiade-storefront-trust .lumiade-trust-icon {
		height: 10px;
		width: 10px;
	}

	.lumiade-storefront-trust .lumiade-trust-label::after {
		font-size: var(--lumiade-fs-eyebrow);
	}
}

/* — 9 retired (Phase 5 T3): /cart/ page — now owned by lumiade-brand/cart.css. — */

/* — 10. WooCommerce: checkout — */
/* Scope = .woocommerce-checkout (body class on /checkout/). Uses WooCommerce
   Blocks checkout; selectors target wc-block-* classes. */

/* 10a. Secondary text: 14px floor.
   Guest notice renders at 13px via WC Blocks' .wp-block-woocommerce-checkout rule (sheet 16,
   same specificity). Raise to (0,3,0) by adding .wc-block-checkout__form ancestor.
   Terms has no competing WC Blocks rule; (0,2,0) suffices. */
.woocommerce-checkout .wc-block-checkout__form .wc-block-checkout__guest-checkout-notice {
	font-size: var(--lumiade-fs-sm);
}
.woocommerce-checkout .wc-block-checkout__terms {
	font-size: var(--lumiade-fs-sm);
}

/* 10b/10c (input + select border-color skin) retired 2026-07-10, Phase 1
   Task 5: fully superseded by lumiade-brand/components.css' form-field rule,
   which forces border: 1px solid var(--lumiade-line) !important on every
   input[type]/select/textarea sitewide (needed !important there to beat WC's
   own checkout.css, which is more specific than this rule ever was). */

/* 10d. Order summary panel: soft background + 8px-rhythm padding.
   WC Blocks order summary has a warm-gray border but no background by default. */
.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
	background: var(--lumiade-soft);
	padding: var(--lumiade-space-4);
}

/* 10e. Blocks-checkout text floors (audited live with Check payments + a real order).
   WC Blocks renders much of this at 0.8125rem (13px) or smaller; raise non-label
   body/secondary text to the 14px floor. Body-class scope (.woocommerce-checkout)
   + component class beats WC's single-class defaults. */
.woocommerce-checkout .wc-block-components-order-summary-item p,
.woocommerce-checkout .wc-block-components-product-name,
.woocommerce-checkout .wc-block-components-product-metadata,
.woocommerce-checkout .wc-block-components-radio-control__label,
.woocommerce-checkout .wc-block-components-radio-control__description,
.woocommerce-checkout .wc-block-components-radio-control-accordion-content,
.woocommerce-checkout .wc-block-components-address-card,
.woocommerce-checkout .wc-block-components-address-card__edit,
.woocommerce-checkout .wc-block-components-address-form__address_2-toggle,
.woocommerce-checkout .wc-blocks-components-select__label,
.woocommerce-checkout .wc-block-components-totals-item__label,
.woocommerce-checkout .wc-block-formatted-money-amount,
.woocommerce-checkout .wc-block-components-checkbox__label,
.woocommerce-checkout .wc-block-components-checkout-step__description {
	font-size: var(--lumiade-fs-sm);
}

/* Place Order button label size retired 2026-07-10, Phase 1 Task 5: now
   unified with every other CTA at var(--lumiade-fs-sm) via the ink-CTA rule in
   lumiade-brand/components.css (.wc-block-components-checkout-place-order-button
   is in that selector list), superseding this 16px floor by design. */

/* 10f. Specificity holdouts: these three Blocks elements carry equal-specificity
   WC rules that load after ours, so the 10e group above doesn't win. The 40+
   readability floor is non-negotiable, so force them (documented last-resort
   !important, as in §3 buttons). Verified live: order-summary <p> was 11.375px,
   product name H3 and the select <label> were 13px. */
.woocommerce-checkout .wc-block-components-order-summary-item p,
.woocommerce-checkout h3.wc-block-components-product-name,
.woocommerce-checkout label.wc-blocks-components-select__label {
	font-size: var(--lumiade-fs-sm) !important;
}

/* — 11 retired (Phase 5 T4): /my-account/ — now owned by lumiade-brand/account.css. — */

/* — 12. Notices/misc — */
/* Breadcrumbs: Blocksy renders .ct-breadcrumbs (not .woocommerce-breadcrumb).
   Blocksy default resolves to 12px (--theme-font-size) AND uppercases the trail,
   which reads heavy for the brand. Drop the uppercase, and collapse it to a
   slim single line aligned to the content edge (no lopsided left gap,
   minimal vertical footprint) — premium + CRO-minded.
   Specificity: .lumiade-storefront .ct-breadcrumbs = (0,2,0) beats Blocksy's (0,1,0).
   font-size/color retired 2026-07-10, Phase 1 Task 7 — superseded by
   lumiade-brand/components.css (13px eyebrow → 15px fs-sm floor; color
   unchanged, was a duplicate of the same token). */
.lumiade-storefront .ct-breadcrumbs {
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.3;
	margin: 0 0 var(--lumiade-space-3);
	padding-left: 0;
}

.lumiade-storefront .ct-breadcrumbs a {
	color: var(--lumiade-muted);
	text-decoration: none;
}

.lumiade-storefront .ct-breadcrumbs a:hover {
	color: var(--lumiade-ink);
	text-decoration: underline;
}

/* Last (current) crumb: slightly stronger, not a link. */
.lumiade-storefront .ct-breadcrumbs .last-item,
.lumiade-storefront .ct-breadcrumbs > span:last-child {
	color: var(--lumiade-ink);
}

/* WooCommerce notices (.woocommerce-message/.woocommerce-info/.woocommerce-error
   border/background/color skin) retired 2026-07-10, Phase 1 Task 7 —
   superseded by lumiade-brand/components.css's unified panel + border-left
   accent-bar treatment (also closes a real gap: this rule never set
   `background` for .woocommerce-error, so it kept rendering Blocksy's
   default rgba(218,0,28,.7) red — confirmed live before the fix). */

/* Notice action buttons (e.g. "View cart", "Return to shop"): 44px touch target. */
.lumiade-storefront .woocommerce-message .button,
.lumiade-storefront .woocommerce-info .button,
.lumiade-storefront .woocommerce-error .button {
	min-height: 44px;
	font-size: var(--lumiade-fs-sm);
}

/* Success notice (order-received "thank you", Blocks success banner): warm surface.
   WC defaults to a cool gray (rgb(240,241,243)) — the only cool surface on the site. */
.lumiade-storefront .woocommerce-notice--success,
.lumiade-storefront .wc-block-components-notice-banner.is-success {
	background: var(--lumiade-soft);
	border-color: var(--lumiade-line);
}

/* Mini-cart / ajax "View cart" + "Checkout" buttons: keep above the 13px label
   floor (WC renders the uppercase labels at ~11px). */
.lumiade-storefront a.added_to_cart,
.lumiade-storefront a.wc-forward {
	font-size: var(--lumiade-fs-eyebrow);
}

/* ===================================================================
   13. Premium + CRO makeover (shop / product / cart)
   Added in the 2026-06 makeover pass. Layers conversion + premium
   polish onto the existing storefront structure. See progress ledger.
   =================================================================== */

/* — 13b. Sticky mobile add-to-cart: handled by Blocksy Pro's native
   floating-cart bar (.ct-floating-bar). No custom bar — see PHP/JS notes. — */

/* — 13c. Star ratings (single product + shop cards): brand gold — */
.lumiade-storefront .star-rating {
	color: var(--lumiade-gold, #a07c4f);
	font-size: var(--lumiade-fs-eyebrow);
}

.lumiade-storefront .star-rating::before {
	color: rgba(25, 26, 28, 0.22);
}

.lumiade-storefront .woocommerce-product-rating {
	align-items: center;
	display: flex;
	gap: 10px;
	margin: 4px 0 14px;
}

/* — 13d. Reviews tab / list — */
.lumiade-product-template #reviews .commentlist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.lumiade-product-template #reviews .comment_container {
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius);
	background: var(--lumiade-paper);
	padding: 18px 20px;
	margin-bottom: 14px;
}

.lumiade-product-template #reviews .comment-text {
	margin-left: 0;
}

.lumiade-product-template #reviews .meta {
	font-size: var(--lumiade-fs-sm);
	color: var(--lumiade-muted);
	margin-bottom: 6px;
}

.lumiade-product-template #reviews .meta strong.woocommerce-review__author {
	color: var(--lumiade-ink);
	font-size: var(--lumiade-fs-base);
}

.lumiade-product-template #reviews .description p {
	font-size: var(--lumiade-fs-base);
	color: var(--lumiade-ink);
}

/* — Product Description tab: editorial spec-sheet treatment. Turns the plain
   heading+list stack into ingredient cards + a benefits checklist so the panel
   reads as premium, scannable product storytelling rather than a wall of text. */
.lumiade-product-template .woocommerce-Tabs-panel--description {
	max-width: none;
	width: 100%;
}

.lumiade-product-template .woocommerce-Tabs-panel--description h2 {
	border-bottom: 1px solid var(--lumiade-line);
	color: var(--lumiade-navy);
	font-family: var(--lumiade-font-serif);
	font-size: clamp(19px, 2.1vw, 24px);
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.2;
	margin: 34px 0 16px;
	padding-bottom: 10px;
}

.lumiade-product-template .woocommerce-Tabs-panel--description h2:first-child {
	margin-top: 0;
}

.lumiade-product-template .woocommerce-Tabs-panel--description p {
	color: var(--lumiade-ink);
	font-size: var(--lumiade-fs-base);
	line-height: 1.6;
	margin: 0 0 8px;
}

/* Dream block: the legacy "pd" (dream hero, eyebrow, headline, lead, note)
   rule copies were deleted here in Phase 3 Task 4 — lumiade-blocks/style.css
   is now the single source for those rules.
   At-a-glance strip — Step / Texture / Size meta row at the top of the tab.
   auto-fit: the block now allows 2–4 items (see lumiade-blocks). */
.lumiade-product-template .woocommerce-Tabs-panel--description .lumiade-glance {
	background: var(--lumiade-paper);
	border: 1px solid var(--lumiade-line);
	border-radius: var(--lumiade-radius-sm);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
	margin: 0 0 8px;
	overflow: hidden;
}

.lumiade-product-template .woocommerce-Tabs-panel--description .lumiade-glance-item {
	border-right: 1px solid var(--lumiade-line);
	padding: 14px 12px;
	text-align: center;
}

.lumiade-product-template .woocommerce-Tabs-panel--description .lumiade-glance-item:last-child {
	border-right: 0;
}

.lumiade-product-template .woocommerce-Tabs-panel--description .lumiade-glance-item span {
	color: var(--lumiade-muted);
	display: block;
	font-size: var(--lumiade-fs-eyebrow);
	font-weight: 700;
	letter-spacing: 0.08em;
	margin-bottom: 4px;
	text-transform: uppercase;
}

.lumiade-product-template .woocommerce-Tabs-panel--description .lumiade-glance-item strong {
	color: var(--lumiade-navy);
	display: block;
	font-size: var(--lumiade-fs-sm);
	font-weight: 600;
	line-height: 1.3;
}

/* Ingredient cards + benefits list: legacy scoped copies (higher specificity
   than lumiade-blocks/style.css's `ul.lumiade-ing`/`ul.lumiade-ben`, so they were
   winning the cascade and keeping the gold accent alive after Phase 3 Task 4
   de-bronzed style.css) were deleted here — style.css is the single source. */

.lumiade-product-template #reviews .commentlist .avatar {
	border-radius: var(--lumiade-radius-pill);
}

/* — 13f. Variation size swatches (Blocksy button swatches): guarantee 44px
   touch targets + comfortable, readable labels for 40+ shoppers. — */
.lumiade-storefront .variations_form [data-swatches-type="button"] .ct-swatch {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 44px;
	min-width: 60px;
}

.lumiade-storefront .variations_form [data-swatches-type="button"] .ct-swatch-content {
	font-size: var(--lumiade-fs-sm);
	padding-inline: 16px;
}

/* — 13e retired (Phase 4 T2): shop-card ATC affordance — font-size now via
   components.css .lumiade-storefront .button, min-height via shop.css (48px,
   higher specificity), hover translateY removed per no-motion mandate. — */

/* — 13f/13g retired (Phase 5 T3): ship/bundle progress + cart microcopy — now owned by lumiade-brand/cart.css (de-bronzed: fill/border were --lumiade-gold). — */

/* ===================================================================
   14. Phase-2: scarcity badges, shop filters, native review summary
   =================================================================== */

/* — 14a retired (Phase 4 T2): product-card badges — now owned by
   lumiade-brand/shop.css (badge container + pills, ink on paper; the card's
   position:relative anchor comes from shop.css's card rule). — */

/* — 14d. Reviews summary + histogram + verified badge: provided natively by
   Blocksy Pro's active advanced-reviews feature (.ct-reviews-summary). No
   custom review CSS here — a second summary would duplicate Blocksy's. — */

/* — 14e. Suppress Blocksy Companion Pro's default stock-scarcity layer
   ("🚨 Hurry up! Only N units left…"). Enabling stock management activates
   it, which duplicates our on-brand .lumiade-stock-urgency pill / card badge.
   Keep ours as the single scarcity source on both single product and cards. */
.lumiade-storefront .ct-product-stock-scarcity {
	display: none !important;
}

