/**
 * Hemppy design tokens + Blocksy mapping + accessibility (1.0.13 visual redesign).
 * Colours from branding.md + visual-benchmarks-redesign-2026-10-07.md.
 */

:root {
	/* Brand tokens — 1.0.13 refined natural luxury + restrained happy accent */
	--hemppy-cream: #f5efe3;
	--hemppy-paper: #fbf8f2;
	--hemppy-sand: #efe6d6;
	--hemppy-forest: #1f3b2d;
	--hemppy-sage: #6f8b74;
	--hemppy-sage-text: #4a6352;
	--hemppy-sun: #e9b44c;
	--hemppy-coral: #d97b4a; /* distinctive happy accent — punctuation only */
	--hemppy-ink: #22302a;
	--hemppy-ink-deep: #15241c; /* dark CTA band */
	--hemppy-mist: #e8efe8;
	/* Focus ring (1.0.7): darker sun so the ring is >=3:1 on every light surface
	   (cream 4.05, paper 4.38, footer #E4DDD0 3.44, sun-tint 4.09, white 4.64).
	   The old #C9922E was only 2.4:1 on cream (WCAG 1.4.11). Inside dark
	   Blocksy panels the light --hemppy-sun ring is used instead (see below). */
	--hemppy-focus: #9c6b14;
	--hemppy-white: #ffffff;

	/* Spacing scale */
	--hemppy-space-1: 0.25rem;
	--hemppy-space-2: 0.5rem;
	--hemppy-space-3: 0.75rem;
	--hemppy-space-4: 1rem;
	--hemppy-space-5: 1.5rem;
	--hemppy-space-6: 2rem;
	--hemppy-space-7: 3rem;
	--hemppy-space-8: 4rem;
	--hemppy-space-9: 5rem;

	/* Radius + shadow — premium but soft */
	--hemppy-radius-sm: 8px;
	--hemppy-radius-md: 14px;
	--hemppy-radius-lg: 20px;
	--hemppy-radius-pill: 999px;
	--hemppy-shadow-sm: 0 1px 3px rgba(34, 48, 42, 0.06);
	--hemppy-shadow-md: 0 4px 20px rgba(34, 48, 42, 0.08);
	--hemppy-shadow-lg: 0 12px 40px rgba(34, 48, 42, 0.12);

	/* Type */
	--hemppy-font-body: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--hemppy-font-display: "Fraunces", Georgia, "Times New Roman", serif;

	/*
	 * Map onto Blocksy CSS variables (verified in Blocksy 2.1.58 source:
	 * --theme-palette-color-1..8, --theme-font-family, --theme-text-color,
	 * --theme-button-*-color, --theme-link-*-color, --theme-headings-color).
	 */
	--theme-palette-color-1: var(--hemppy-forest);
	--theme-palette-color-2: var(--hemppy-sage-text);
	--theme-palette-color-3: var(--hemppy-ink);
	--theme-palette-color-4: var(--hemppy-forest);
	--theme-palette-color-5: var(--hemppy-mist);
	--theme-palette-color-6: #e4ddd0;
	--theme-palette-color-7: var(--hemppy-cream);
	--theme-palette-color-8: var(--hemppy-paper);

	--theme-font-family: var(--hemppy-font-body);
	--theme-text-color: var(--hemppy-ink);
	--theme-headings-color: var(--hemppy-forest);
	--theme-link-initial-color: var(--hemppy-sage-text);
	--theme-link-hover-color: var(--hemppy-forest);
	--theme-button-background-initial-color: var(--hemppy-forest);
	--theme-button-background-hover-color: var(--hemppy-sage-text);
	--theme-button-text-initial-color: var(--hemppy-white);
	--theme-button-text-hover-color: var(--hemppy-white);
	--theme-border-color: var(--hemppy-mist);
}

/*
 * Form-field borders (1.0.7). Blocksy prints its Customizer :root variables
 * inline *after* this file, so the field border (#E8EFE8 mist, 1.02:1 on
 * cream — empty inputs were invisible, WCAG 1.4.11) is overridden on the
 * fields themselves. Sage-text = 5.73:1 on cream, 6.20 on paper.
 */
#main :is(input, select, textarea),
.ct-footer :is(input, select, textarea) {
	--theme-form-field-border-initial-color: var(--hemppy-sage-text);
	--theme-form-field-border-focus-color: var(--hemppy-forest);
}
/* Search modal (dark #121519): Blocksy's rgba(255,255,255,.2) border ≈ 1.8:1. */
#search-modal .ct-search-form :is(input, select) {
	--theme-form-field-border-initial-color: rgba(255, 255, 255, 0.6);
}

/* Base surfaces */
body {
	background-color: var(--hemppy-cream);
	color: var(--hemppy-ink);
	font-family: var(--hemppy-font-body);
	font-size: 1.0625rem;
	line-height: 1.6;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title,
.wp-block-heading {
	font-family: var(--hemppy-font-display);
	color: var(--hemppy-forest);
	font-weight: 600;
	line-height: 1.3;
}

h1 { font-size: clamp(2.25rem, 4.5vw, 3.25rem); font-weight: 700; letter-spacing: -0.02em; }
h2 { font-size: clamp(1.625rem, 3.2vw, 2.125rem); letter-spacing: -0.015em; }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }

a {
	color: var(--hemppy-sage-text);
}
a:hover,
a:where(:not(.wp-element-button, .wp-block-button__link, .button, .ct-button, .wc-block-components-button)):focus-visible {
	color: var(--hemppy-forest);
}

/*
 * 1.0.7: keep button-styled links readable while focused. The plain
 * a:focus-visible colour above used to turn filled buttons (e.g. "Visit the
 * shop") forest-on-forest = 1:1 when tabbed to. Filled buttons keep their
 * button text colour; outline buttons keep forest text on the page surface.
 */
.wp-block-button:not(.is-style-outline) > a.wp-block-button__link:focus-visible,
a.wp-element-button:not(.is-style-outline *):focus-visible,
.woocommerce a.button:focus-visible,
a.ct-button:focus-visible,
a.wc-block-components-button:not(.is-link):focus-visible {
	color: var(--theme-button-text-initial-color, #ffffff);
}
.wp-block-button.is-style-outline > a.wp-block-button__link:focus-visible {
	color: var(--hemppy-forest);
}

/* Soft cards / elevated surfaces */
.ct-container,
.hero-section [class*="container"] {
	/* inheritance only — no layout changes */
}

/* Buttons — soft rect radius (branding: pick one) */
.button,
.ct-button,
.wp-block-button__link,
button[type="submit"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	border-radius: var(--hemppy-radius-sm);
	font-family: var(--hemppy-font-body);
	font-weight: 600;
	letter-spacing: 0.01em;
}

/* Focus-visible — WCAG 2.2 AA (≥3:1 against adjacent) */
:focus {
	outline: none;
}
:focus-visible {
	outline: 3px solid var(--hemppy-focus);
	outline-offset: 2px;
}
a:focus-visible,
button:focus-visible,
.button:focus-visible,
.ct-button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible {
	outline: 3px solid var(--hemppy-focus);
	outline-offset: 2px;
	box-shadow: none;
}

/* Dark Blocksy panels (off-canvas menu, search modal: ~#121519): the light
   sun ring is ~10:1 there, the darker light-surface ring would be ~3.9:1. */
.ct-panel :focus-visible,
#offcanvas :focus-visible,
#search-modal :focus-visible {
	outline-color: var(--hemppy-sun);
}

/*
 * Tap targets (1.0.7): Blocksy's menu trigger (18×18), header search (15×15)
 * and drawer close (12px icon) are icon-sized. Enlarge the hit area to 44×44
 * with an invisible pseudo-element; layout and visuals are unchanged.
 */
.ct-header-trigger,
.ct-header-search,
.ct-toggle-close {
	position: relative;
}
.ct-header-trigger::after,
.ct-header-search::after,
.ct-toggle-close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 44px;
	height: 44px;
	transform: translate(-50%, -50%);
}

/* Motion — respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Product-page disclaimer (text depends on compliance class; modifiers: --cosmetic, --oral, --other, --generic) */
.hemppy-disclaimer {
	margin-top: var(--hemppy-space-5);
	padding: var(--hemppy-space-4);
	background: var(--hemppy-paper);
	border: 1px solid var(--hemppy-mist);
	border-radius: var(--hemppy-radius-sm);
	color: var(--hemppy-ink);
	font-size: 0.875rem;
	line-height: 1.5;
}
.hemppy-disclaimer__label {
	display: block;
	font-weight: 600;
	color: var(--hemppy-forest);
	margin-bottom: var(--hemppy-space-2);
}

/* Brand wordmark + navigation typography (Blocksy header elements). */
.site-title,
.site-title a,
[data-id="logo"] .site-title {
	font-family: var(--hemppy-font-display);
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--hemppy-forest);
	font-size: clamp(1.35rem, 2vw, 1.65rem);
}
.ct-header [data-id="logo"] img,
.ct-header .site-logo-container img {
	max-height: 2.75rem;
	width: auto;
}
/* 1.0.20: Micro C Face-H lockup (SVG, inc/brand.php). 52px desktop / 40px mobile;
   width follows the width/height attributes (ratio 3.225) → no layout shift.
   Keeps Blocksy's sticky shrink (--logo-shrink-height) working. */
.ct-header [data-id="logo"] .site-logo-container:has(.hemppy-logo-svg) {
	height: var(--logo-shrink-height, 52px);
}
.ct-header [data-id="logo"] img.hemppy-logo-svg {
	max-height: none;
	height: 100%;
	width: auto;
	aspect-ratio: 774 / 240;
}
@media (max-width: 999.98px) {
	.ct-header [data-id="logo"] .site-logo-container:has(.hemppy-logo-svg) {
		height: var(--logo-shrink-height, 40px);
	}
}
.ct-header [data-id="menu"] > ul > li > a,
.ct-header .menu > li > a {
	font-family: var(--hemppy-font-body);
	font-weight: 600;
	font-size: 0.9375rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding-block: 0.5rem;
	color: var(--hemppy-ink);
	border-bottom: 2px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.ct-header [data-id="menu"] > ul > li > a:hover,
.ct-header [data-id="menu"] > ul > li > a:focus-visible,
.ct-header .menu > li > a:hover,
.ct-header .menu > li > a:focus-visible,
.ct-header [data-id="menu"] > ul > li.current-menu-item > a,
.ct-header .menu > li.current-menu-item > a {
	color: var(--hemppy-forest);
	border-bottom-color: var(--hemppy-coral);
}
/* Header action icons — balanced presence, ≥44px hit via existing ::after */
.ct-header .ct-header-cart,
.ct-header .ct-header-account,
.ct-header .ct-header-search {
	color: var(--hemppy-forest);
}
.ct-header [data-row] {
	/* subtle presence without heavy bar */
}

/*
 * Footer Menu (Blocksy location slug `footer`).
 * Injected by inc/footer-nav.php above the copyright row inside <footer>.
 * Ink (#22302A) on cream/paper footer surfaces: ~12:1 contrast (≥4.5:1 AA).
 */
.hemppy-footer-nav {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--theme-normal-container-max-width, 1290px);
	margin-inline: auto;
	padding: 1.5rem 1rem 0.5rem;
}

.hemppy-footer-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.5rem 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--hemppy-font-body);
	font-size: 0.9375rem;
	line-height: 1.4;
}

.hemppy-footer-menu > li {
	margin: 0;
	padding: 0;
}

.hemppy-footer-menu a {
	color: var(--hemppy-ink); /* #22302A — 10.2:1 on footer #E4DDD0 */
	text-decoration: none;
	/* 1.0.7: ≥24px tall targets (WCAG 2.5.8), ~44px on mobile (below) */
	display: inline-block;
	padding-block: 0.25rem;
}

.hemppy-footer-menu a:hover,
.hemppy-footer-menu a:focus-visible {
	color: var(--hemppy-ink);
	text-decoration: underline;
}

.hemppy-footer-menu a:focus-visible {
	outline: 3px solid var(--hemppy-focus);
	outline-offset: 2px;
}

@media (max-width: 689px) {
	.hemppy-footer-nav {
		padding: 1.25rem 1rem 0.5rem;
	}

	.hemppy-footer-menu {
		gap: 0 1rem;
		font-size: 0.875rem;
	}

	.hemppy-footer-menu a {
		padding-block: 0.75rem;
	}
}


/*
 * Footer copyright — Blocksy bottom-row "copyright" element.
 * Markup: .ct-footer-copyright inside [data-column="copyright"] / [data-column*="copyright"]
 *   (blocksy/inc/panel-builder/footer/copyright/view.php).
 * Column alignment uses --horizontal-alignment on [data-column="copyright"]
 *   (copyright/dynamic-styles.php → main.min.css:
 *    .ct-footer [data-column]{align-items:var(--horizontal-alignment)}
 *    [data-column*=copyright]{text-align:var(--horizontal-alignment)}).
 * Font: Blocksy sets font-family:var(--theme-font-family) on .ct-footer-copyright;
 * override to self-hosted Source Sans 3 so Customizer "System Default" cannot win.
 * Sage-text #4A6352 on cream #F5EFE3 ≈ 5.73:1 (≥4.5:1 AA).
 */
.ct-footer [data-row="bottom"] [data-column="copyright"],
.ct-footer [data-column*="copyright"] {
	--horizontal-alignment: center;
	align-items: center;
	justify-content: center;
	text-align: center;
	width: 100%;
}

.ct-footer [data-row="bottom"] > .ct-container,
.ct-footer [data-row="bottom"] > .ct-container-fluid,
.ct-footer [data-row="bottom"] > .ct-container-auto {
	justify-items: center;
}

.ct-footer .ct-footer-copyright {
	--theme-font-family: var(--hemppy-font-body);
	font-family: var(--hemppy-font-body);
	color: var(--hemppy-sage-text); /* #4A6352 — 5.73:1 on cream #F5EFE3 */
	font-size: 0.875rem;
	line-height: 1.6;
	text-align: center;
	max-width: 60ch;
	width: 100%;
	margin-inline: auto;
	padding-bottom: var(--hemppy-space-5); /* 1.5rem */
	box-sizing: border-box;
}

.ct-footer .ct-footer-copyright a {
	color: var(--hemppy-sage-text);
}

.ct-footer .ct-footer-copyright a:hover,
.ct-footer .ct-footer-copyright a:focus-visible {
	color: var(--hemppy-forest);
	text-decoration: underline;
}

@media (max-width: 689px) {
	.ct-footer [data-row="bottom"] [data-column="copyright"],
	.ct-footer [data-column*="copyright"] {
		--horizontal-alignment: center;
		align-items: center;
		text-align: center;
	}

	.ct-footer .ct-footer-copyright {
		text-align: center;
		padding-bottom: var(--hemppy-space-6); /* a bit more room on small screens */
		padding-inline: var(--hemppy-space-2);
	}
}


/*
 * Homepage — pre-launch blocks (home-prelaunch.html).
 * Scoped to .hemppy-* classes only; other pages untouched.
 * Surfaces: cream page / paper cards & alternating section.
 * Contrast (AA ≥4.5:1): ink on cream 12.03, ink on paper 13.00,
 * ink on sun-tint #FBF0D6 12.16, forest on cream/paper 10.65/11.51,
 * sage-text on cream/paper/sun-tint 5.73/6.20/5.80.
 */
:root {
	--hemppy-sun-tint: #fbf0d6;
	--hemppy-coral-tint: #f8e8df;
	--hemppy-section-pad: clamp(3.5rem, 7vw, 6rem);
	--hemppy-card-radius: 16px;
	--hemppy-card-border: rgba(31, 59, 45, 0.10);
}

/* Shared section rhythm */
.hemppy-hero,
.hemppy-categories,
.hemppy-is-isnt,
.hemppy-explore,
.hemppy-service {
	padding-block: var(--hemppy-section-pad);
	box-sizing: border-box;
}

/* —— Draft / legal notice bar —— */
.hemppy-draft-banner {
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
	padding: 0.875rem 1.125rem;
	background-color: var(--hemppy-sun-tint); /* #FBF0D6 */
	color: var(--hemppy-ink); /* 12.16:1 on sun-tint */
	border: 1px solid rgba(233, 180, 76, 0.45); /* sun accent, thin */
	border-left: 4px solid var(--hemppy-sun);
	border-radius: var(--hemppy-radius-sm);
	font-family: var(--hemppy-font-body);
	font-size: 0.875rem;
	line-height: 1.5;
}

.hemppy-draft-banner strong {
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--hemppy-ink);
}

/* —— Eyebrow —— */
.hemppy-eyebrow {
	margin: 0 0 var(--hemppy-space-3);
	font-family: var(--hemppy-font-body);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hemppy-sage-text); /* 5.73:1 on cream */
	line-height: 1.4;
}

/* —— Hero —— */
.hemppy-hero {
	padding-block: clamp(4rem, 8vw, 7rem);
	text-align: left;
}

/*
 * WP constrained layout (core) centres flow children with
 *   .is-layout-constrained > :where(...) { margin-left/right: auto !important; }
 * Our H1/intro max-widths then stair-step vs full-width eyebrow/buttons.
 * Force a shared left edge with the content column / header logo.
 */
.hemppy-hero.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-group.hemppy-hero.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hemppy-hero.is-layout-constrained > *,
.wp-block-group.hemppy-hero.is-layout-constrained > * {
	margin-inline-start: 0 !important;
	margin-left: 0 !important;
	margin-inline-end: auto !important;
	margin-right: auto !important;
}

.hemppy-hero .wp-block-heading,
.hemppy-hero h1 {
	font-family: var(--hemppy-font-display);
	font-size: clamp(2.5rem, 5.5vw, 4rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--hemppy-forest); /* 10.65:1 on cream */
	margin: 0 0 var(--hemppy-space-5);
	max-width: 18ch;
}

.hemppy-hero > p:not(.hemppy-eyebrow) {
	max-width: 38rem;
	margin: 0 0 var(--hemppy-space-6);
	font-size: clamp(1.0625rem, 1.5vw, 1.1875rem);
	line-height: 1.65;
	color: var(--hemppy-ink);
}

.hemppy-hero .wp-block-buttons {
	margin-top: var(--hemppy-space-2);
}

/* —— Category cards —— */
.hemppy-categories > .wp-block-heading,
.hemppy-categories > h2 {
	margin: 0 0 var(--hemppy-space-6);
	color: var(--hemppy-forest);
}

.hemppy-categories .wp-block-columns {
	gap: clamp(1rem, 2.5vw, 1.5rem);
}

.hemppy-categories .wp-block-column {
	position: relative;
	background-color: var(--hemppy-paper);
	border: 1px solid var(--hemppy-card-border);
	border-radius: var(--hemppy-card-radius);
	padding: 1.75rem;
	box-shadow: var(--hemppy-shadow-sm);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hemppy-categories .wp-block-column:hover,
.hemppy-categories .wp-block-column:focus-within {
	transform: translateY(-3px);
	box-shadow: var(--hemppy-shadow-md);
}

.hemppy-categories .wp-block-column h3,
.hemppy-categories .wp-block-column .wp-block-heading {
	margin: 0 0 var(--hemppy-space-3);
	font-family: var(--hemppy-font-display);
	font-size: 1.375rem;
	line-height: 1.3;
}

/* Stretched link: whole card clickable via h3 a */
.hemppy-categories .wp-block-column h3 a,
.hemppy-categories .wp-block-column .wp-block-heading a {
	color: var(--hemppy-forest); /* 11.51:1 on paper */
	text-decoration: none;
}

.hemppy-categories .wp-block-column h3 a::after,
.hemppy-categories .wp-block-column .wp-block-heading a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	z-index: 1;
}

.hemppy-categories .wp-block-column h3 a:hover,
.hemppy-categories .wp-block-column h3 a:focus-visible,
.hemppy-categories .wp-block-column .wp-block-heading a:hover,
.hemppy-categories .wp-block-column .wp-block-heading a:focus-visible {
	color: var(--hemppy-forest);
	text-decoration: underline;
}

.hemppy-categories .wp-block-column h3 a:focus-visible,
.hemppy-categories .wp-block-column .wp-block-heading a:focus-visible {
	outline: none;
}

.hemppy-categories .wp-block-column h3 a:focus-visible::after,
.hemppy-categories .wp-block-column .wp-block-heading a:focus-visible::after {
	outline: 3px solid var(--hemppy-focus);
	outline-offset: 3px;
}

.hemppy-categories .wp-block-column > p {
	margin: 0;
	color: var(--hemppy-sage-text); /* 6.20:1 on paper */
	font-size: 0.9875rem;
	line-height: 1.55;
	position: relative;
	z-index: 0;
}

@media (prefers-reduced-motion: reduce) {
	.hemppy-categories .wp-block-column {
		transition: none;
	}

	.hemppy-categories .wp-block-column:hover,
	.hemppy-categories .wp-block-column:focus-within {
		transform: none;
	}
}

/* —— Is / isn’t —— */
.hemppy-is-isnt {
	background-color: var(--hemppy-paper);
	border-radius: var(--hemppy-radius-md);
	padding-inline: clamp(1.25rem, 4vw, 2.25rem);
}

.hemppy-is-isnt > .wp-block-heading,
.hemppy-is-isnt > h2 {
	margin: 0 0 var(--hemppy-space-6);
	color: var(--hemppy-forest); /* 11.51:1 on paper */
	text-align: center;
}

.hemppy-is-isnt .wp-block-columns {
	gap: clamp(1.5rem, 4vw, 3rem);
}

.hemppy-is-isnt .wp-block-column h3,
.hemppy-is-isnt .wp-block-column .wp-block-heading {
	margin: 0 0 var(--hemppy-space-4);
	font-family: var(--hemppy-font-display);
	font-size: 1.25rem;
	color: var(--hemppy-forest);
}

.hemppy-is-isnt .wp-block-list,
.hemppy-is-isnt ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hemppy-is-isnt .wp-block-list li,
.hemppy-is-isnt ul li {
	position: relative;
	padding-left: 1.75rem;
	margin: 0 0 var(--hemppy-space-3);
	color: var(--hemppy-ink); /* 13.00:1 on paper */
	font-size: 1rem;
	line-height: 1.55;
}

.hemppy-is-isnt .wp-block-list li:last-child,
.hemppy-is-isnt ul li:last-child {
	margin-bottom: 0;
}

/* “is” column — forest check */
.hemppy-is-isnt .wp-block-column:first-child .wp-block-list li::before,
.hemppy-is-isnt .wp-block-column:first-child ul li::before {
	content: "";
	position: absolute;
	left: 0.2rem;
	top: 0.45em;
	width: 0.45rem;
	height: 0.8rem;
	border-right: 2px solid var(--hemppy-forest);
	border-bottom: 2px solid var(--hemppy-forest);
	transform: rotate(40deg);
}

/* “isn’t” column — sage dash */
.hemppy-is-isnt .wp-block-column:last-child .wp-block-list li::before,
.hemppy-is-isnt .wp-block-column:last-child ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.7em;
	width: 0.85rem;
	height: 0;
	border-top: 2px solid var(--hemppy-sage); /* accent only */
}

/* —— Explore links —— */
.hemppy-explore {
	text-align: center;
	padding-block: clamp(2rem, 4vw, 3.5rem);
}

.hemppy-explore p {
	margin: 0;
	font-size: 1rem;
	letter-spacing: 0.02em;
	color: var(--hemppy-sage-text);
}

.hemppy-explore a {
	color: var(--hemppy-sage-text); /* 5.73:1 on cream */
	text-decoration: none;
	font-weight: 600;
	border-bottom: 1px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.hemppy-explore a:hover,
.hemppy-explore a:focus-visible {
	color: var(--hemppy-forest);
	border-bottom-color: var(--hemppy-forest);
	text-decoration: none;
}

/* —— Service / trust strip —— */
.hemppy-service {
	text-align: center;
	padding-block: clamp(2.5rem, 5vw, 4rem);
	border-top: 1px solid var(--hemppy-mist);
}

.hemppy-service-list,
.hemppy-service .hemppy-service-list {
	list-style: none;
	margin: 0 0 var(--hemppy-space-5);
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--hemppy-space-3);
	font-family: var(--hemppy-font-body);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--hemppy-ink);
}

.hemppy-service-list li {
	margin: 0;
	padding: 0;
}

.hemppy-service-list a {
	color: var(--hemppy-sage-text);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.hemppy-service-list a:hover,
.hemppy-service-list a:focus-visible {
	color: var(--hemppy-forest);
}

.hemppy-service .wp-block-buttons {
	justify-content: center;
}

.hemppy-service .wp-block-button__link {
	border-radius: var(--hemppy-radius-sm);
}

@media (min-width: 690px) {
	.hemppy-service-list,
	.hemppy-service .hemppy-service-list {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 0;
		column-gap: 0;
	}

	/* Do NOT make <li> a flex container — that collapses text-node
	   whitespace before inline <a> ("Need help?Contact us"). */
	.hemppy-service-list li {
		display: block;
		white-space: nowrap;
	}

	.hemppy-service-list a {
		margin-inline-start: 0.25em;
	}

	.hemppy-service-list li:not(:last-child)::after {
		content: "";
		display: inline-block;
		width: 1px;
		height: 1em;
		margin-inline: 1.25rem;
		background-color: var(--hemppy-sage); /* accent separator */
		opacity: 0.55;
		vertical-align: middle;
	}
}

@media (max-width: 689px) {
	.hemppy-categories .wp-block-column {
		padding: 1.5rem;
	}

	.hemppy-hero .wp-block-heading,
	.hemppy-hero h1 {
		max-width: none;
	}

	.hemppy-is-isnt > .wp-block-heading,
	.hemppy-is-isnt > h2 {
		text-align: left;
	}
}


/*
 * Homepage — conditional sections (homepage.html; shown when products/COAs exist).
 * Match existing rhythm: section pad, paper surfaces, forest headings, sage-text links.
 */
.hemppy-transparency,
.hemppy-selected,
.hemppy-learn {
	padding-block: var(--hemppy-section-pad);
	box-sizing: border-box;
}

/* Transparency / lab-results callout — paper panel with sun accent edge */
.hemppy-transparency {
	background-color: var(--hemppy-paper);
	border-radius: var(--hemppy-radius-md);
	padding-inline: clamp(1.25rem, 4vw, 2.25rem);
	border: 1px solid var(--hemppy-card-border);
	border-left: 4px solid var(--hemppy-sun);
	box-shadow: var(--hemppy-shadow-sm);
}

.hemppy-transparency > .wp-block-heading,
.hemppy-transparency > h2 {
	margin: 0 0 var(--hemppy-space-4);
	color: var(--hemppy-forest); /* 11.51:1 on paper */
	font-family: var(--hemppy-font-display);
}

.hemppy-transparency > p {
	margin: 0 0 var(--hemppy-space-4);
	max-width: 40rem;
	color: var(--hemppy-ink); /* 13:1 on paper */
	font-size: 1.0625rem;
	line-height: 1.65;
}

.hemppy-transparency > p:last-child {
	margin-bottom: 0;
}

.hemppy-transparency a {
	color: var(--hemppy-sage-text); /* 6.20:1 on paper */
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.hemppy-transparency a:hover,
.hemppy-transparency a:focus-visible {
	color: var(--hemppy-forest);
}

/* Selected products — heading + Woo shortcode grid + shop link */
.hemppy-selected > .wp-block-heading,
.hemppy-selected > h2 {
	margin: 0 0 var(--hemppy-space-6);
	color: var(--hemppy-forest);
	text-align: center;
}

.hemppy-selected .woocommerce ul.products,
.hemppy-selected ul.products {
	margin-bottom: var(--hemppy-space-5);
}

.hemppy-selected > p {
	margin: var(--hemppy-space-5) 0 0;
	text-align: center;
}

.hemppy-selected > p a {
	color: var(--hemppy-sage-text);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.hemppy-selected > p a:hover,
.hemppy-selected > p a:focus-visible {
	color: var(--hemppy-forest);
	border-bottom-color: var(--hemppy-forest);
}

/* Learn teaser — latest posts strip */
.hemppy-learn {
	background-color: var(--hemppy-paper);
	border-radius: var(--hemppy-radius-md);
	padding-inline: clamp(1.25rem, 4vw, 2.25rem);
}

.hemppy-learn > .wp-block-heading,
.hemppy-learn > h2 {
	margin: 0 0 var(--hemppy-space-4);
	color: var(--hemppy-forest);
}

.hemppy-learn > p {
	margin: 0 0 var(--hemppy-space-5);
	max-width: 40rem;
	color: var(--hemppy-ink);
	font-size: 1.0625rem;
	line-height: 1.65;
}

.hemppy-learn .wp-block-latest-posts,
.hemppy-learn ul.wp-block-latest-posts {
	list-style: none;
	margin: 0 0 var(--hemppy-space-5);
	padding: 0;
	display: grid;
	gap: var(--hemppy-space-3);
}

.hemppy-learn .wp-block-latest-posts li {
	margin: 0;
	padding: 1rem 1.25rem;
	background-color: var(--hemppy-cream);
	border: 1px solid var(--hemppy-card-border);
	border-radius: var(--hemppy-radius-sm);
}

.hemppy-learn .wp-block-latest-posts a {
	color: var(--hemppy-forest);
	font-family: var(--hemppy-font-display);
	font-weight: 600;
	font-size: 1.125rem;
	text-decoration: none;
}

.hemppy-learn .wp-block-latest-posts a:hover,
.hemppy-learn .wp-block-latest-posts a:focus-visible {
	color: var(--hemppy-forest);
	text-decoration: underline;
}

.hemppy-learn > p:last-of-type a,
.hemppy-learn > p a {
	color: var(--hemppy-sage-text);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.hemppy-learn > p a:hover,
.hemppy-learn > p a:focus-visible {
	color: var(--hemppy-forest);
}

@media (max-width: 689px) {
	.hemppy-selected > .wp-block-heading,
	.hemppy-selected > h2 {
		text-align: left;
	}
}


/*
 * Skip link — Blocksy outputs .skip-link.screen-reader-text (href="#main").
 * Brand-coloured when focused; meets WCAG 2.4.1.
 */
.skip-link.screen-reader-text,
a.skip-link {
	position: absolute;
	top: -100px;
	left: var(--hemppy-space-4);
	z-index: 100000;
	padding: 0.75rem 1.25rem;
	background-color: var(--hemppy-forest);
	color: var(--hemppy-cream) !important; /* cream on forest ≈ 10.6:1 */
	font-family: var(--hemppy-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	text-decoration: none;
	border-radius: var(--hemppy-radius-sm);
	box-shadow: var(--hemppy-shadow-md);
	transition: top 0.01ms;
}

.skip-link.screen-reader-text:focus,
.skip-link.screen-reader-text:focus-visible,
a.skip-link:focus,
a.skip-link:focus-visible {
	top: var(--hemppy-space-4);
	left: var(--hemppy-space-4);
	outline: 3px solid var(--hemppy-sun);
	outline-offset: 3px;
	color: var(--hemppy-cream) !important;
	clip: auto !important;
	clip-path: none !important;
	width: auto !important;
	height: auto !important;
	overflow: visible !important;
}


/*
 * 404 template (.hemppy-404) — lean branded not-found page.
 */
.hemppy-404 {
	padding-block: clamp(3rem, 8vw, 6rem);
	text-align: center;
	max-width: 36rem;
	margin-inline: auto;
}

.hemppy-404__eyebrow {
	margin: 0 0 var(--hemppy-space-3);
	font-family: var(--hemppy-font-body);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hemppy-sage-text);
}

.hemppy-404__title {
	margin: 0 0 var(--hemppy-space-4);
	font-family: var(--hemppy-font-display);
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 700;
	color: var(--hemppy-forest);
	line-height: 1.2;
}

.hemppy-404__lead {
	margin: 0 0 var(--hemppy-space-6);
	color: var(--hemppy-ink);
	font-size: 1.0625rem;
	line-height: 1.65;
}

.hemppy-404__search {
	margin: 0 0 var(--hemppy-space-7);
	text-align: left;
}

.hemppy-404__search .search-form,
.hemppy-404__search form {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hemppy-space-3);
	align-items: stretch;
}

.hemppy-404__search input[type="search"],
.hemppy-404__search input[type="text"] {
	flex: 1 1 12rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.875rem;
	border: 1px solid var(--hemppy-sage-text);
	border-radius: var(--hemppy-radius-sm);
	background: var(--hemppy-paper);
	color: var(--hemppy-ink);
	font-family: var(--hemppy-font-body);
	font-size: 1rem;
}

.hemppy-404__search button,
.hemppy-404__search input[type="submit"] {
	min-height: 2.75rem;
	padding: 0.5rem 1.25rem;
	border: none;
	border-radius: var(--hemppy-radius-sm);
	background: var(--hemppy-forest);
	color: var(--hemppy-white);
	font-family: var(--hemppy-font-body);
	font-weight: 600;
	cursor: pointer;
}

.hemppy-404__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.5rem;
	font-family: var(--hemppy-font-body);
	font-size: 1rem;
}

.hemppy-404__links a {
	color: var(--hemppy-sage-text);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	padding-block: 0.25rem;
}

.hemppy-404__links a:hover,
.hemppy-404__links a:focus-visible {
	color: var(--hemppy-forest);
	border-bottom-color: var(--hemppy-forest);
}

/* ------------------------------------------------------------------ */
/* 1.0.9: placeholder / demo marks printed by hemppy-store            */
/* (legal pages, business shortcodes, product data). Must stay        */
/* clearly visible so no placeholder can pass as a real value.        */
/* Contrast: #3b2f00 on #fff3b0 11.7:1; #0b2a5b on #e6f0ff 12.2:1.    */
/* ------------------------------------------------------------------ */
body mark.hemppy-placeholder {
	background: #fff3b0;
	color: #3b2f00;
	padding: 0.05em 0.3em;
	border-radius: 4px;
	box-shadow: inset 0 -2px 0 var(--hemppy-focus);
	font-weight: 600;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
body mark.hemppy-demo {
	background: #e6f0ff;
	color: #0b2a5b;
	padding: 0.05em 0.3em;
	border-radius: 4px;
	box-shadow: inset 0 -2px 0 #0b2a5b;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
@media print {
	body mark.hemppy-placeholder,
	body mark.hemppy-demo { box-shadow: none; border: 1px dashed currentColor; }
}

/* 1.0.9: breadcrumbs (Blocksy .ct-breadcrumbs, source Default or Rank Math).
 * sage-text 6.2:1 on paper / 5.7:1 on cream; links forest 11.5:1. */
.ct-breadcrumbs {
	color: var(--hemppy-sage-text);
	font-size: 0.875rem;
	letter-spacing: 0.02em;
}
.ct-breadcrumbs a {
	color: var(--hemppy-forest);
	text-decoration: underline;
	text-decoration-color: var(--hemppy-sage);
	text-underline-offset: 0.2em;
}
.ct-breadcrumbs a:hover { text-decoration-color: currentColor; }
.ct-breadcrumbs .last-item,
.ct-breadcrumbs .rank-math-breadcrumb .last { color: var(--hemppy-ink); }



/* ================================================================== */
/* 1.0.13 — Visual redesign: header presence already above;           */
/* homepage split hero, bands, editorial rhythm, elevated cards.      */
/* Detailed homepage layout also in homepage.css (enqueued 1.0.13).   */
/* ================================================================== */

/* Soft DEMO site notice (optional alternative to loud draft banner) */
.hemppy-demo-notice {
	margin: 0 0 clamp(1rem, 2vw, 1.75rem);
	padding: 0.65rem 1rem;
	background: var(--hemppy-mist);
	color: var(--hemppy-ink);
	border: 1px solid var(--hemppy-card-border);
	border-radius: var(--hemppy-radius-sm);
	font-size: 0.8125rem;
	line-height: 1.5;
	text-align: center;
}
.hemppy-demo-notice strong {
	color: var(--hemppy-forest);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 0.75rem;
}

/* Buttons — slightly more presence */
.button,
.ct-button,
.wp-block-button__link,
button[type="submit"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	min-height: 44px;
	padding-inline: 1.5rem;
	padding-block: 0.75rem;
	font-size: 1rem;
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	border-width: 2px;
	border-color: var(--hemppy-forest);
	color: var(--hemppy-forest);
	background: transparent;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--hemppy-forest);
	color: var(--hemppy-white);
}

/* Secondary coral accent underline utility */
.hemppy-accent-rule {
	display: block;
	width: 3rem;
	height: 3px;
	margin: 0 0 var(--hemppy-space-5);
	background: linear-gradient(90deg, var(--hemppy-coral), var(--hemppy-sun));
	border-radius: 2px;
}

/* Section surface utilities (homepage + reusable) */
.hemppy-band-cream { background-color: var(--hemppy-cream); }
.hemppy-band-paper { background-color: var(--hemppy-paper); }
.hemppy-band-sand { background-color: var(--hemppy-sand); }
.hemppy-band-mist { background-color: var(--hemppy-mist); }
.hemppy-band-ink {
	background-color: var(--hemppy-ink-deep);
	background-image: url("../img/band-ink-texture.webp");
	background-size: cover;
	background-position: center;
	color: var(--hemppy-paper);
}
.hemppy-band-ink .wp-block-heading,
.hemppy-band-ink h2,
.hemppy-band-ink h3,
.hemppy-band-ink p {
	color: var(--hemppy-paper);
}
.hemppy-band-ink a:not(.wp-block-button__link) {
	color: var(--hemppy-sun);
}
.hemppy-band-ink a:not(.wp-block-button__link):hover,
.hemppy-band-ink a:not(.wp-block-button__link):focus-visible {
	color: var(--hemppy-sun-tint);
}
.hemppy-band-ink .wp-block-button:not(.is-style-outline) > .wp-block-button__link {
	background-color: var(--hemppy-sun);
	color: var(--hemppy-ink);
}
.hemppy-band-ink .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover,
.hemppy-band-ink .wp-block-button:not(.is-style-outline) > .wp-block-button__link:focus-visible {
	background-color: var(--hemppy-sun-tint);
	color: var(--hemppy-ink);
}
.hemppy-band-ink .wp-block-button.is-style-outline > .wp-block-button__link {
	border-color: var(--hemppy-paper);
	color: var(--hemppy-paper);
}
.hemppy-band-ink .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--hemppy-paper);
	color: var(--hemppy-ink-deep);
}
.hemppy-band-ink :focus-visible {
	outline-color: var(--hemppy-sun);
}

/* Full-bleed section helper inside constrained content */
.hemppy-fullbleed {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* Trust / service strip — elevated bar */
.hemppy-trust-strip {
	padding-block: clamp(1.25rem, 3vw, 1.75rem);
	background: var(--hemppy-paper);
	border-block: 1px solid var(--hemppy-card-border);
}
.hemppy-trust-strip .hemppy-service-list {
	margin-bottom: 0;
}

/* Philosophy / editorial split */
.hemppy-philosophy {
	padding-block: var(--hemppy-section-pad);
	background: var(--hemppy-sand);
	border-radius: var(--hemppy-radius-lg);
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.hemppy-philosophy > .wp-block-heading,
.hemppy-philosophy > h2 {
	margin: 0 0 var(--hemppy-space-4);
	max-width: 20ch;
}
.hemppy-philosophy > p {
	max-width: 40rem;
	font-size: 1.125rem;
	line-height: 1.7;
	color: var(--hemppy-ink);
}

/* Quality / transparency elevated */
.hemppy-quality {
	padding-block: var(--hemppy-section-pad);
}
.hemppy-quality .wp-block-column {
	background: var(--hemppy-paper);
	border: 1px solid var(--hemppy-card-border);
	border-radius: var(--hemppy-card-radius);
	padding: 1.75rem;
	box-shadow: var(--hemppy-shadow-md);
}

/* FAQ teaser */
.hemppy-faq-teaser {
	padding-block: var(--hemppy-section-pad);
	background: var(--hemppy-mist);
	border-radius: var(--hemppy-radius-lg);
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.hemppy-faq-teaser > .wp-block-heading,
.hemppy-faq-teaser > h2 {
	margin: 0 0 var(--hemppy-space-4);
}

/* Shop CTA panel (when no featured products) */
.hemppy-shop-panel {
	padding-block: var(--hemppy-section-pad);
	text-align: center;
	background: var(--hemppy-paper);
	border: 1px solid var(--hemppy-card-border);
	border-radius: var(--hemppy-radius-lg);
	box-shadow: var(--hemppy-shadow-md);
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.hemppy-shop-panel > .wp-block-heading,
.hemppy-shop-panel > h2 {
	margin: 0 0 var(--hemppy-space-4);
}
.hemppy-shop-panel > p {
	max-width: 36rem;
	margin-inline: auto;
	margin-bottom: var(--hemppy-space-5);
	font-size: 1.0625rem;
}

/* Final CTA band */
.hemppy-cta-final {
	padding-block: clamp(3.5rem, 8vw, 5.5rem);
	text-align: center;
	border-radius: var(--hemppy-radius-lg);
	overflow: hidden;
}
.hemppy-cta-final > .wp-block-heading,
.hemppy-cta-final > h2 {
	margin: 0 0 var(--hemppy-space-4);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
}
.hemppy-cta-final > p {
	max-width: 32rem;
	margin: 0 auto var(--hemppy-space-6);
	font-size: 1.125rem;
	line-height: 1.65;
	opacity: 0.95;
}
.hemppy-cta-final .wp-block-buttons {
	justify-content: center;
}

/* Card icon dots for How we work */
.hemppy-categories .wp-block-column::before {
	content: "";
	display: block;
	width: 0.65rem;
	height: 0.65rem;
	border-radius: 50%;
	background: var(--hemppy-coral);
	margin-bottom: var(--hemppy-space-4);
	box-shadow: 1.1rem 0 0 var(--hemppy-sun), 2.2rem 0 0 var(--hemppy-sage);
}

/* Elevate existing category cards further */
.hemppy-categories .wp-block-column {
	padding: 2rem 1.75rem;
	box-shadow: var(--hemppy-shadow-md);
}
.hemppy-categories .wp-block-column:hover,
.hemppy-categories .wp-block-column:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--hemppy-shadow-lg);
}

/* Is/isn't on mist for rhythm */
.hemppy-is-isnt {
	background-color: var(--hemppy-mist);
	box-shadow: var(--hemppy-shadow-sm);
}

/* Explore as editorial link row */
.hemppy-explore {
	background: var(--hemppy-paper);
	border-radius: var(--hemppy-radius-md);
	padding-inline: clamp(1rem, 3vw, 2rem);
	border: 1px solid var(--hemppy-card-border);
}
.hemppy-explore a {
	font-size: 1.0625rem;
}

/* Learn / selected keep paper rhythm */
.hemppy-learn {
	box-shadow: var(--hemppy-shadow-sm);
}

/* Forms polish (sitewide consistency) */
#main :is(input, select, textarea),
.ct-footer :is(input, select, textarea) {
	border-radius: var(--hemppy-radius-sm);
	min-height: 44px;
	font-size: 1rem;
}

/* Accordion / details (FAQ pages + teaser) */
.hemppy-faq details,
details.hemppy-accordion {
	background: var(--hemppy-paper);
	border: 1px solid var(--hemppy-card-border);
	border-radius: var(--hemppy-radius-sm);
	padding: 0.75rem 1.125rem;
	margin-bottom: 0.75rem;
	box-shadow: var(--hemppy-shadow-sm);
}
.hemppy-faq details summary,
details.hemppy-accordion summary {
	font-family: var(--hemppy-font-display);
	font-weight: 600;
	color: var(--hemppy-forest);
	cursor: pointer;
	padding-block: 0.5rem;
	min-height: 44px;
	list-style: none;
}
.hemppy-faq details summary::-webkit-details-marker,
details.hemppy-accordion summary::-webkit-details-marker {
	display: none;
}
.hemppy-faq details[open],
details.hemppy-accordion[open] {
	border-color: rgba(31, 59, 45, 0.22);
}

/* Pagination polish */
.woocommerce-pagination ul.page-numbers li a,
.woocommerce-pagination ul.page-numbers li span,
.wp-block-query-pagination a,
.nav-links a {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--hemppy-radius-sm);
	border: 1px solid var(--hemppy-card-border);
	background: var(--hemppy-paper);
	color: var(--hemppy-forest);
	font-weight: 600;
}
.woocommerce-pagination ul.page-numbers li span.current,
.wp-block-query-pagination .current {
	background: var(--hemppy-forest);
	color: var(--hemppy-white);
	border-color: var(--hemppy-forest);
}

/* ================================================================== */
/* 1.0.14 — mobile visual QA (hero label companion in homepage.css)   */
/* ================================================================== */

/* Draft / DEMO dashed banners — wrap cleanly, no mid-glyph clip */
.hemppy-draft-banner,
.hemppy-demo-notice {
	display: block;
	box-sizing: border-box;
	max-width: 100%;
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
.hemppy-draft-banner {
	padding: 1rem 1.15rem;
	line-height: 1.55;
}
@media (max-width: 499.98px) {
	.hemppy-draft-banner {
		font-size: 0.8125rem;
		padding: 0.85rem 1rem;
	}
	.hemppy-demo-notice {
		font-size: 0.75rem;
		padding: 0.6rem 0.85rem;
		text-align: left;
	}
}

/* Inline PLACEHOLDER / DEMO marks — keep padding when wrapping */
body mark.hemppy-placeholder,
body mark.hemppy-demo {
	padding: 0.12em 0.35em;
	line-height: 1.55;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	overflow-wrap: anywhere;
}

/* Footer DEMO company (editor red dashed outline) — don’t collide with disclaimer */
.ct-footer .ct-footer-copyright {
	line-height: 1.75;
	display: flow-root;
}
.ct-footer .ct-footer-copyright mark.hemppy-placeholder,
.ct-footer .ct-footer-copyright mark.hemppy-demo,
.ct-footer mark.hemppy-placeholder,
.ct-footer mark.hemppy-demo {
	display: inline-block;
	margin: 0.35em 0.15em;
	padding: 0.2em 0.4em;
	vertical-align: baseline;
	max-width: 100%;
	box-sizing: border-box;
	/* Outline (plugin, editors only) needs air so it doesn’t cover next line */
	outline-offset: 3px;
}
.ct-footer .ct-footer-copyright {
	padding-top: 0.35rem;
	row-gap: 0.5rem;
}

/* Ink CTA — decorative circles stay inside the card on mobile */
.hemppy-cta-final,
.hemppy-band-ink.hemppy-cta-final {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	border-radius: var(--hemppy-radius-lg);
}
.hemppy-band-ink {
	overflow: hidden; /* clip texture / any decoration at band edges */
}
.hemppy-cta-final::before,
.hemppy-cta-final::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
	opacity: 0.22;
}
.hemppy-cta-final::before {
	width: min(18rem, 70vw);
	height: min(18rem, 70vw);
	top: -35%;
	left: -18%;
	background: radial-gradient(circle, rgba(233, 180, 76, 0.55) 0%, transparent 68%);
}
.hemppy-cta-final::after {
	width: min(14rem, 55vw);
	height: min(14rem, 55vw);
	bottom: -30%;
	right: -12%;
	background: radial-gradient(circle, rgba(111, 139, 116, 0.5) 0%, transparent 70%);
}
.hemppy-cta-final > * {
	position: relative;
	z-index: 1;
}
@media (max-width: 499.98px) {
	.hemppy-cta-final::before {
		width: 12rem;
		height: 12rem;
		top: -28%;
		left: -22%;
	}
	.hemppy-cta-final::after {
		width: 10rem;
		height: 10rem;
		bottom: -22%;
		right: -18%;
	}
}

/* Coral accent stays punctuation-only (AA: not used as small body text on cream).
   Non-text UI / large accents meet 3:1; body copy remains ink/sage-text. */
.hemppy-accent-rule {
	/* decorative bar — not text */
	min-height: 3px;
}

/* Coming Soon private-preview bar (#hemppy-preview-banner) — clear page bottom
   on all templates (not only when sticky ATC is present). Plugin-owned markup;
   CSS-only. */
body:has(#hemppy-preview-banner) {
	padding-bottom: 3.5rem;
}
body:has(#hemppy-preview-banner) .ct-back-to-top {
	bottom: calc(1.25rem + 3.5rem);
}
/* Sticky ATC stacking (mobile) lives in woocommerce.css — keep in sync. */

/* ------------------------------------------------------------------ */
/* 1.0.16 — header cart fallback + empty Learn / Lab soft cards         */
/* ------------------------------------------------------------------ */

/* Header cart fallback (inc/header-cart.php) — matches Blocksy icon hit area */
.hemppy-header-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	min-width: 44px;
	min-height: 44px;
	padding: 0.35rem;
	color: var(--hemppy-forest);
	text-decoration: none;
	border-radius: var(--hemppy-radius-sm);
	flex: 0 0 auto;
}
.hemppy-header-cart:hover,
.hemppy-header-cart:focus-visible {
	color: var(--hemppy-ink);
}
.hemppy-header-cart:focus-visible {
	outline: 3px solid var(--hemppy-focus);
	outline-offset: 2px;
}
.hemppy-header-cart__icon {
	display: block;
	width: 18px;
	height: 18px;
	fill: currentColor;
}
.hemppy-header-cart__count {
	position: absolute;
	top: 2px;
	inset-inline-end: 0;
	min-width: 1.15rem;
	height: 1.15rem;
	padding: 0 0.3rem;
	border-radius: var(--hemppy-radius-pill);
	background: var(--hemppy-forest);
	color: var(--hemppy-white);
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.15rem;
	text-align: center;
	pointer-events: none;
}
.hemppy-header-cart__count[data-count="0"] {
	background: var(--hemppy-sage-text);
}
/* Sit next to search / trigger inside Blocksy header rows */
.ct-header [data-items] .hemppy-header-cart {
	margin-inline-start: 0.15rem;
}
/* Don't break off-canvas trigger spacing on mobile */
.ct-header [data-device="mobile"] .hemppy-header-cart {
	order: 0;
}

/* Soft empty-state cards (Learn archive / Lab results with no items) */
.hemppy-empty-state,
.hemppy-lab-empty-card,
body.blog .ct-posts-block:empty,
body.blog .entries:empty,
.hemppy-empty-wrap {
	display: block;
	margin: var(--hemppy-space-6) 0;
	padding: var(--hemppy-space-6) var(--hemppy-space-5);
	background: var(--hemppy-paper);
	border: 1px solid rgba(31, 59, 45, 0.10);
	border-radius: var(--hemppy-radius-md);
	box-shadow: var(--hemppy-shadow-sm);
	color: var(--hemppy-sage-text);
	max-width: 40rem;
}
.hemppy-empty-state__title,
.hemppy-empty-wrap > .hemppy-empty-state__title {
	font-family: var(--hemppy-font-display);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--hemppy-forest);
	margin: 0 0 var(--hemppy-space-2);
}
.hemppy-empty-state__text,
.hemppy-empty-wrap > p {
	margin: 0;
	line-height: 1.55;
	color: var(--hemppy-ink);
}
/* Lab results shortcode empty note */
.hemppy-lab-empty {
	display: block;
	margin: var(--hemppy-space-5) 0;
	padding: var(--hemppy-space-5);
	background: var(--hemppy-paper);
	border: 1px solid rgba(31, 59, 45, 0.10);
	border-radius: var(--hemppy-radius-md);
	box-shadow: var(--hemppy-shadow-sm);
	color: var(--hemppy-sage-text);
}
/* Learn: no published posts — Blocksy / core empty */
body.blog .ct-no-results,
body.blog .no-results,
body.search-no-results .no-results {
	background: var(--hemppy-paper);
	border: 1px solid rgba(31, 59, 45, 0.10);
	border-radius: var(--hemppy-radius-md);
	box-shadow: var(--hemppy-shadow-sm);
	padding: var(--hemppy-space-6) var(--hemppy-space-5);
	color: var(--hemppy-ink);
}

/* 1.0.23 — the sitewide 44px form-control min-height must not stretch checkboxes/radios
   (Woo product-filter checkboxes rendered as 16×44 pills). Tap target = the label row. */
#main :is(input[type="checkbox"], input[type="radio"]),
.ct-footer :is(input[type="checkbox"], input[type="radio"]) {
	min-height: 0;
}
