/* ==========================================================================
   100 Lights Farm · theme styles
   Colours, fonts and base typography live in theme.json. This file holds the
   pieces theme.json can't express: block style variations, shop components,
   decorative shapes and small-screen adjustments.
   ========================================================================== */

:root {
	--hl-oxblood: var(--wp--preset--color--oxblood, #590202);
	--hl-oxblood-dark: var(--wp--preset--color--oxblood-dark, #3F0101);
	--hl-forest: var(--wp--preset--color--forest, #273101);
	--hl-sage: var(--wp--preset--color--sage, #BFD495);
	--hl-pink: var(--wp--preset--color--pink, #F29DAD);
	--hl-terracotta: var(--wp--preset--color--terracotta, #BF754B);
	--hl-cream: var(--wp--preset--color--cream, #FFF6EE);
	--hl-line: var(--wp--preset--color--line, #EADBD0);
	--hl-muted: var(--wp--preset--color--muted, #7A3A2E);
	--hl-display: var(--wp--preset--font-family--display, Anton, sans-serif);
	--hl-leaf: 22px 0 22px 0;
	--hl-leaf-lg: 32px 0 32px 0;
	--hl-card-radius: 18px;
}

/* Rounded Anton on top-level headings only (strength in Settings › 100 Lights Farm). */
h1.wp-block-heading,
h1.wp-block-post-title,
h1.wp-block-query-title {
	filter: url(#hl-round);
}

::selection { background: var(--hl-sage); color: var(--hl-forest); }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--hl-forest);
	outline-offset: 2px;
}

/* Links inside coloured sections take the section's text colour. */
.has-text-color a:where(:not(.wp-element-button)) { color: inherit; }
:where(h1, h2, h3, h4) a { text-decoration: none; }
:where(h1, h2, h3, h4) a:hover { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }

.wp-block-group.is-style-wave + .hl-marquee { padding-top: 48px !important; }

.hl-icon-dot {
	padding: 0 !important;
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	margin: 0;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--hl-display);
	font-size: 30px;
	line-height: 1;
}

.hl-admin-note {
	border: 1.5px dashed currentColor;
	border-radius: 12px;
	padding: 12px 16px;
	font-size: 14px;
}

/* --------------------------------------------------------------------------
   Text styles
   -------------------------------------------------------------------------- */

.is-style-eyebrow {
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.is-style-tag {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.2;
}

.is-style-sticker {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 168px;
	height: 168px;
	padding: 18px;
	box-sizing: border-box;
	border-radius: 999px;
	text-align: center;
	font-family: var(--hl-display);
	font-size: 1.5rem;
	line-height: 1.05;
	text-transform: uppercase;
	transform: rotate(-12deg);
	background-color: var(--hl-pink);
	color: var(--hl-oxblood);
}

.hl-display {
	font-family: var(--hl-display);
	text-transform: uppercase;
	line-height: 1;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.wp-block-button.is-style-leaf .wp-block-button__link { border-radius: var(--hl-leaf); }

.wp-block-button.is-style-leaf-outline .wp-block-button__link,
.wp-block-button.is-style-pill-outline .wp-block-button__link {
	background: transparent;
	color: inherit;
	border: 2px solid currentColor;
}
.wp-block-button.is-style-leaf-outline .wp-block-button__link { border-radius: var(--hl-leaf); }
.wp-block-button.is-style-pill-outline .wp-block-button__link { border-radius: 999px; border-width: 1.5px; }

.wp-block-button.is-style-leaf-outline .wp-block-button__link:hover,
.wp-block-button.is-style-pill-outline .wp-block-button__link:hover {
	background: var(--hl-oxblood);
	border-color: var(--hl-oxblood);
	color: var(--hl-cream);
}
:is(.has-oxblood-background-color, .has-forest-background-color) .wp-block-button:is(.is-style-leaf-outline, .is-style-pill-outline) .wp-block-button__link:hover {
	background: var(--hl-sage);
	border-color: var(--hl-sage);
	color: var(--hl-forest);
}

.hl-whatsapp .wp-block-button__link { width: 100%; justify-content: center; text-align: center; }

/* --------------------------------------------------------------------------
   Section shapes
   -------------------------------------------------------------------------- */

.wp-block-group.is-style-leaf { border-radius: var(--hl-leaf-lg); }
.wp-block-group.is-style-leaf-alt { border-radius: 0 32px 0 32px; }

.wp-block-group.is-style-panel {
	background: #fff;
	border: 1px solid var(--hl-line);
	border-radius: var(--hl-card-radius);
}

/* Wavy bottom edge: the wave takes the section's own background colour. */
.wp-block-group.is-style-wave {
	position: relative;
	z-index: 1;
}
.wp-block-group.is-style-wave::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -38px;
	height: 40px;
	background-color: inherit;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0 H1440 V30 C1320 0 1200 60 1080 30 S840 0 720 30 S480 60 360 30 S120 0 0 30 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0 H1440 V30 C1320 0 1200 60 1080 30 S840 0 720 30 S480 60 360 30 S120 0 0 30 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	pointer-events: none;
}

/* Dot sphere from the logo, used as a faint background motif. */
/* Background image (not a pseudo-element) so it is clipped to the section
   without overflow:hidden, which would cut off the wavy edge. */
.wp-block-group.is-style-dots {
	background-image: url("../img/dots-sage-soft.svg");
	background-repeat: no-repeat;
	background-size: 520px 520px;
	background-position: left -170px bottom -200px;
}
.wp-block-group.is-style-dots:is(.has-sage-background-color, .has-pink-background-color, .has-cream-background-color, .has-white-background-color) {
	background-image: url("../img/dots-oxblood-soft.svg");
}

/* --------------------------------------------------------------------------
   Images
   -------------------------------------------------------------------------- */

.wp-block-image.is-style-arch img,
.wp-block-image.is-style-arch-down img,
.wp-block-image.is-style-circle img,
.wp-block-image.is-style-leaf img {
	object-fit: cover;
	width: 100%;
}
.wp-block-image.is-style-arch img { border-radius: 999px 999px 32px 32px; aspect-ratio: 14 / 15; }
.wp-block-image.is-style-arch-down img { border-radius: 32px 32px 999px 999px; aspect-ratio: 14 / 13; }
.wp-block-image.is-style-circle img { border-radius: 999px; aspect-ratio: 1; }
.wp-block-image.is-style-leaf img { border-radius: var(--hl-leaf-lg); aspect-ratio: 4 / 3; }

.hl-media-sticker { position: relative; }
.hl-media-sticker > .is-style-sticker,
.hl-media-sticker > p.is-style-sticker {
	position: absolute;
	top: 40px;
	left: 0;
	margin: 0;
	z-index: 2;
}

/* --------------------------------------------------------------------------
   Lists
   -------------------------------------------------------------------------- */

ul.is-style-ticks { list-style: none; padding-left: 0; }
ul.is-style-ticks li { position: relative; padding-left: 1.6em; margin-bottom: 0.4em; }
ul.is-style-ticks li::before { content: "✓"; position: absolute; left: 0; font-weight: 800; }

ul.is-style-chips {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
ul.is-style-chips li {
	margin: 0;
	padding: 8px 14px;
	border: 1.5px solid currentColor;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.2;
}

/* --------------------------------------------------------------------------
   Scrolling product strip
   -------------------------------------------------------------------------- */

.hl-marquee { overflow: hidden; white-space: nowrap; }
.hl-marquee__track {
	display: flex !important;
	flex-wrap: nowrap !important;
	width: max-content;
	gap: 0 !important;
	animation: hl-marquee 40s linear infinite;
}
.hl-marquee__track > p {
	margin: 0 !important;
	padding-right: 28px;
	font-family: var(--hl-display);
	font-size: 1.875rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	line-height: 1.2;
}
@keyframes hl-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .hl-marquee__track { animation: none; } }

/* --------------------------------------------------------------------------
   Header and navigation
   -------------------------------------------------------------------------- */

.hl-header .wp-block-site-logo img { height: 76px; width: auto; }
.hl-header .wp-block-navigation a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
.hl-header .wp-block-navigation .current-menu-item > a {
	color: var(--hl-forest);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}
.hl-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--hl-cream);
	color: var(--hl-oxblood);
	padding: 24px;
}
.hl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-family: var(--hl-display);
	font-size: 1.75rem;
	font-weight: 400;
	text-transform: uppercase;
}
.hl-header .wp-block-navigation__responsive-container-open {
	border: 1.5px solid currentColor;
	border-radius: 999px;
	padding: 8px 14px;
}
.hl-header .wc-block-mini-cart__button {
	background: var(--hl-sage);
	color: var(--hl-oxblood);
	border-radius: 16px 0 16px 0;
	padding: 10px 16px;
	font-family: var(--hl-display);
	text-transform: uppercase;
}
.hl-header .wc-block-mini-cart__badge { background: var(--hl-oxblood); color: var(--hl-cream); }
.hl-header--clean .wc-block-mini-cart__button { background: var(--hl-oxblood); color: var(--hl-cream); border-radius: 999px; }

/* --------------------------------------------------------------------------
   Product cards (shop grid, homepage, related)
   -------------------------------------------------------------------------- */

.hl-products .wc-block-product,
.hl-products .wp-block-post {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--hl-line);
	border-radius: var(--hl-card-radius);
	overflow: hidden;
}
.hl-products.is-sale-highlight .wc-block-product:has(.hl-stamp) { border: 1.5px solid var(--hl-pink); }

.hl-card__media { position: relative; margin: 0 !important; }
.hl-card__media .wc-block-components-product-image,
.hl-card__media .wp-block-woocommerce-product-image { margin: 0 !important; }
.hl-card__media img { aspect-ratio: 1; object-fit: cover; width: 100%; display: block; }
.hl-card__media .hl-labels { position: absolute; top: 14px; left: 14px; z-index: 2; }
.hl-card__media .hl-stamp { position: absolute; top: 12px; right: 12px; z-index: 2; }

.hl-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 6px !important;
	padding: 16px 18px 20px;
}
.hl-card__body > * { margin: 0 !important; }
.hl-card__cat,
.hl-card__cat a {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--hl-forest);
	text-decoration: none;
}
.hl-card__title,
.hl-card__title a {
	font-family: var(--hl-display);
	font-size: 1.375rem;
	line-height: 1.1;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--hl-oxblood);
}
.hl-card__body .wp-block-woocommerce-product-price,
.hl-card__body .wc-block-components-product-price { font-size: 0.9375rem; color: var(--hl-muted); text-align: left !important; }
.hl-card__body .wp-block-woocommerce-product-button,
.hl-card__body .wc-block-components-product-button { margin-top: auto !important; padding-top: 8px; }
.hl-card__body .wp-block-button__link,
.hl-card__body .wc-block-components-product-button__button {
	width: 100%;
	border-radius: 999px;
	font-family: var(--hl-display);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	background: var(--hl-oxblood);
	color: var(--hl-cream);
	border: 0;
}

/* Sale price: highlighted new price, struck-through old price. */
.wc-block-components-product-price ins,
.price ins {
	text-decoration: none;
	background: var(--hl-pink);
	color: var(--hl-oxblood);
	font-weight: 800;
	padding: 1px 8px;
	border-radius: 6px;
}
.wc-block-components-product-price del,
.price del { color: var(--hl-muted); opacity: 1; }
.hl-unit { font-size: 0.875em; color: var(--hl-muted); font-weight: 500; }

/* Origin line */
.hl-origin {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--hl-forest);
	margin: 0;
}
.hl-origin.is-partner { color: var(--hl-muted); }

/* Labels */
.hl-labels { display: flex; flex-wrap: wrap; gap: 6px; }
.hl-label {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.2;
}
.hl-label.is-in-season { background: var(--hl-sage); color: var(--hl-forest); }
.hl-label.is-new { background: var(--hl-forest); color: var(--hl-cream); }
.hl-label.is-few-left,
.hl-label.is-sold-out { background: var(--hl-cream); color: var(--hl-oxblood); }

/* Sale stamp */
.hl-stamp {
	width: 92px;
	height: 92px;
	border-radius: 999px;
	background: var(--hl-forest);
	display: flex;
	align-items: center;
	justify-content: center;
	transform: rotate(-12deg);
}
.hl-stamp__ring {
	width: 76px;
	height: 76px;
	border-radius: 999px;
	border: 1.5px dashed var(--hl-cream);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: var(--hl-cream);
	font-family: var(--hl-display);
	text-transform: uppercase;
	line-height: 1;
}
.hl-stamp__word { font-size: 14px; letter-spacing: 0.18em; padding-left: 0.18em; }
.hl-stamp__pct { font-size: 26px; margin-top: 3px; }
span.onsale.hl-stamp {
	position: absolute;
	top: 12px;
	right: 12px;
	left: auto;
	min-height: 0;
	min-width: 0;
	padding: 0;
	margin: 0;
	z-index: 3;
}
.wp-block-woocommerce-product-image-gallery { position: relative; }
.hl-gallery .hl-stamp { position: absolute; top: 20px; right: 20px; z-index: 3; width: 120px; height: 120px; }
.hl-gallery .hl-stamp__ring { width: 100px; height: 100px; }
.hl-gallery .hl-stamp__pct { font-size: 34px; }

/* --------------------------------------------------------------------------
   Single product
   -------------------------------------------------------------------------- */

.hl-gallery { position: relative; }
.hl-gallery .woocommerce-product-gallery__wrapper img,
.hl-gallery .woocommerce-product-gallery img { border-radius: 24px; }
.hl-gallery .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px !important; }
.hl-gallery .flex-control-thumbs img { border-radius: 14px; opacity: 1 !important; border: 2px solid transparent; }
.hl-gallery .flex-control-thumbs img.flex-active { border-color: var(--hl-oxblood); }

.hl-summary .wp-block-woocommerce-product-price { font-family: var(--hl-display); font-size: 2.5rem; line-height: 1; }
.hl-summary .wp-block-woocommerce-product-price .hl-unit { font-family: var(--wp--preset--font-family--body); font-size: 1rem; }
.hl-summary .stock.in-stock { color: var(--hl-forest); font-weight: 700; }
.hl-summary .stock.in-stock::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 8px; border-radius: 999px; background: currentColor; }

.hl-summary form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hl-summary form.cart .quantity input.qty {
	height: 52px;
	width: 96px;
	border: 1.5px solid #E2CCBF;
	border-radius: 999px;
	text-align: center;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--hl-oxblood);
	background: #fff;
}
.hl-summary form.cart .single_add_to_cart_button {
	flex: 1 1 220px;
	height: 52px;
	border-radius: 999px;
	font-family: var(--hl-display);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 1.1875rem;
	background: var(--hl-oxblood);
	color: var(--hl-cream);
}

.hl-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin: 0;
	background: var(--hl-line);
	border: 1px solid var(--hl-line);
	border-radius: var(--hl-card-radius);
	overflow: hidden;
}
.hl-facts__row { background: #fff; padding: 16px 18px; display: flex; flex-direction: column; gap: 4px; }
.hl-facts dt { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--hl-muted); }
.hl-facts dd { margin: 0; font-weight: 700; }

.hl-accordion { border-top: 1px solid var(--hl-line); }
.hl-accordion__item { border-bottom: 1px solid var(--hl-line); }
.hl-accordion__summary {
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 58px;
	cursor: pointer;
	font-family: var(--hl-display);
	font-size: 1.25rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.hl-accordion__summary::-webkit-details-marker { display: none; }
.hl-accordion__summary::after { content: "+"; font-family: var(--wp--preset--font-family--body); font-size: 1.5rem; }
.hl-accordion__item[open] .hl-accordion__summary::after { content: "−"; }
.hl-accordion__body { color: var(--hl-muted); padding-bottom: 12px; }

/* --------------------------------------------------------------------------
   Shop archive
   -------------------------------------------------------------------------- */

.hl-cat-list .wc-block-product-categories-list { list-style: none; padding: 0; margin: 0; }
.hl-cat-list .wc-block-product-categories-list-item { margin: 0; }
.hl-cat-list .wc-block-product-categories-list-item a {
	display: flex;
	min-height: 40px;
	align-items: center;
	text-decoration: none;
	font-weight: 600;
}
.hl-cat-list .wc-block-product-categories-list-item-count { margin-left: auto; color: var(--hl-muted); font-size: 0.8125rem; }
.hl-cat-list .wc-block-product-categories-list-item-count::before,
.hl-cat-list .wc-block-product-categories-list-item-count::after { content: ""; }
.hl-cat-list .wc-block-product-categories-list--depth-1 { padding-left: 14px; }

.hl-cat-chips .wc-block-product-categories-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.hl-cat-chips .wc-block-product-categories-list--depth-1 { display: none; }
.hl-cat-chips .wc-block-product-categories-list-item a {
	display: inline-flex;
	align-items: center;
	height: 44px;
	padding: 0 18px;
	border: 1.5px solid #E2CCBF;
	border-radius: 999px;
	background: #fff;
	font-weight: 700;
	text-decoration: none;
}
.hl-cat-chips .wc-block-product-categories-list-item a:hover { border-color: var(--hl-oxblood); }
.hl-cat-chips .wc-block-product-categories-list-item-count { display: none; }

.hl-shop-toolbar .woocommerce-ordering select {
	height: 44px;
	border-radius: 999px;
	border: 1.5px solid #E2CCBF;
	padding: 0 16px;
	font-weight: 600;
	color: var(--hl-oxblood);
	background: #fff;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-flex;
	min-width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 700;
}
.wp-block-query-pagination .page-numbers.current { background: var(--hl-oxblood); color: var(--hl-cream); }

/* --------------------------------------------------------------------------
   Cart, checkout and forms
   -------------------------------------------------------------------------- */

.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	border-radius: 999px !important;
	font-family: var(--hl-display) !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	background: var(--hl-oxblood) !important;
	color: var(--hl-cream) !important;
}
.wc-block-components-checkout-place-order-button { background: var(--hl-forest) !important; }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select select,
.wc-block-components-textarea { border-radius: 12px !important; }
.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted { border-color: var(--hl-oxblood) !important; }

.gform_wrapper input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.gform_wrapper select,
.gform_wrapper textarea {
	border-radius: 12px;
	border: 1.5px solid #E2CCBF;
	padding: 12px 16px;
	font-family: inherit;
	color: var(--hl-oxblood);
	background: #fff;
}
.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"] {
	border: 0;
	border-radius: 999px;
	padding: 16px 30px;
	font-family: var(--hl-display);
	font-size: 1.125rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	background: var(--hl-oxblood);
	color: var(--hl-cream);
	cursor: pointer;
}
.has-oxblood-background-color .gform_wrapper .gform_button,
.has-forest-background-color .gform_wrapper .gform_button { background: var(--hl-sage); color: var(--hl-forest); }
.has-oxblood-background-color .gform_wrapper input:not([type="submit"]),
.has-forest-background-color .gform_wrapper input:not([type="submit"]),
.has-forest-background-color .gform_wrapper select,
.has-forest-background-color .gform_wrapper textarea { border-color: transparent; background: var(--hl-cream); }

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

.hl-footer a { color: var(--hl-pink); text-decoration: none; }
.hl-footer a:hover { color: var(--hl-cream); text-decoration: underline; }
.hl-footer .hl-footer__heading { color: var(--hl-sage); }
.hl-footer .wp-block-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.hl-footer .hl-footer__farm { border: 1px solid #7A2A22; border-radius: 16px; padding: 14px 16px; }
.hl-footer .wp-block-social-links .wp-social-link { background: transparent !important; border: 1.5px solid var(--hl-pink); color: var(--hl-pink) !important; }
.hl-footer .hl-pay-badges { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hl-footer .hl-pay-badges span { background: var(--hl-cream); color: var(--hl-oxblood); border-radius: 6px; padding: 4px 10px; font-weight: 800; font-size: 0.8125rem; }
.hl-footer .hl-pay-badges span.is-mpesa { color: var(--hl-forest); }

/* --------------------------------------------------------------------------
   Main pages: About, Contact, Consultancy, Experiences, Learning resources
   -------------------------------------------------------------------------- */

.hl-icon-dot:not(.has-background) { background: var(--hl-pink); color: var(--hl-oxblood); }
.has-forest-background-color .hl-icon-dot:not(.has-background) { background: var(--hl-sage); color: var(--hl-forest); }

.hl-section-head { max-width: 760px; margin-bottom: 36px; }
.hl-section-head .hl-intro { margin: 0; }
.hl-narrow-head > * { max-width: 820px; }

.hl-card { height: 100%; display: flex; flex-direction: column; }
.hl-card > .wp-block-buttons:last-child,
.hl-card > .hl-shortcode-buttons:last-child,
.hl-card > .wp-block-button:last-child { margin-top: auto; padding-top: 6px; }
.hl-card h3 { line-height: 1; }
.hl-card .wp-block-image { margin-bottom: 6px; }
.hl-card ul.is-style-ticks { margin: 0; }
.hl-card .hl-price-line { font-family: var(--hl-display); font-size: 1.5rem; text-transform: uppercase; margin-top: auto; }
.hl-shortcode-buttons { gap: 10px; }

.hl-tiers .hl-card.has-oxblood-background-color { transform: translateY(-12px); box-shadow: 0 18px 40px rgba(89, 2, 2, 0.18); }

.hl-big-number {
	font-family: var(--hl-display);
	font-size: clamp(6rem, 13vw, 12rem);
	line-height: 0.85;
	margin: 0;
}

.hl-person .wp-block-image { max-width: 200px; margin-left: auto; margin-right: auto; }

.hl-contact-ways .hl-card h3 { margin-bottom: 4px; }

.hl-form-panel { color: var(--hl-oxblood); }
.hl-form-panel .hl-admin-note { margin: 0; }

.hl-faqs { border-top: 1.5px solid var(--hl-line); }
.wp-block-details.hl-faq { border-bottom: 1.5px solid var(--hl-line); padding: 0; margin: 0; }
.wp-block-details.hl-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 22px 48px 22px 0;
	position: relative;
	font-family: var(--hl-display);
	text-transform: uppercase;
	font-size: 1.375rem;
	line-height: 1.15;
	color: var(--hl-oxblood);
}
.wp-block-details.hl-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.hl-faq summary::after {
	content: "+";
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--hl-display);
	font-size: 1.75rem;
	transition: transform 0.2s ease;
}
.wp-block-details.hl-faq[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.wp-block-details.hl-faq > p { margin: 0 0 22px; max-width: 720px; }

.hl-learn-search .wp-block-search__inside-wrapper { background: var(--hl-cream); border-radius: 999px; padding: 6px; border: 0; max-width: 640px; }
.hl-learn-search .wp-block-search__input { border: 0; background: transparent; padding: 10px 18px; font-size: 1.0625rem; color: var(--hl-oxblood); }
.hl-learn-search .wp-block-search__button { border-radius: 999px; background: var(--hl-oxblood); color: var(--hl-cream); padding: 10px 24px; margin-left: 0; }

.hl-topics .hl-card h3 { font-size: 1.75rem; }

.hl-events-soon { font-size: 1.125rem; font-weight: 600; }

.hl-cta-band .wp-block-heading { font-size: clamp(2.5rem, 6vw, 4.5rem); }


/* --------------------------------------------------------------------------
   Newsletter in the footer (Gravity Forms: name, email, phone).
   Uses :has() so footers already saved in the Site Editor get it too.
   -------------------------------------------------------------------------- */

.hl-footer .wp-block-group:has(> .gform_wrapper),
.hl-footer .wp-block-group:has(> .gform_confirmation_wrapper),
.hl-footer .wp-block-group:has(> .hl-admin-note),
.hl-newsletter__form { flex: 1 1 560px !important; max-width: 720px; min-width: 0; }
.hl-footer .wp-block-group:has(> .gform_wrapper) > *,
.hl-footer .gform_wrapper { max-width: none !important; width: 100%; margin: 0 !important; }
.hl-newsletter > .wp-block-group:first-child,
.hl-footer .wp-block-group:has(> .wp-block-group > .gform_wrapper) > .wp-block-group:first-child { flex: 1 1 340px !important; }

.hl-footer .gform_wrapper .gform_heading { display: none; }
.hl-footer .gform_wrapper form { margin: 0; }
.hl-footer .gform_wrapper .gform_body,
.hl-footer .gform_wrapper .gform-body { width: 100%; }
.hl-footer .gform_wrapper .gform_fields {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 14px 16px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.hl-footer .gform_wrapper .gfield {
	grid-column: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	min-width: 0;
	border: 0;
}
.hl-footer .gform_wrapper .gfield--type-name,
.hl-footer .gform_wrapper .gfield:has(.ginput_container--name),
.hl-footer .gform_wrapper .gfield:has(.name_first),
.hl-footer .gform_wrapper .gfield--type-consent,
.hl-footer .gform_wrapper .gfield--type-html,
.hl-footer .gform_wrapper .gfield--type-captcha { grid-column: 1 / -1 !important; }
.hl-footer .gform_wrapper .gfield--type-hidden,
.hl-footer .gform_wrapper .gform_validation_container { display: none !important; }

.hl-footer .gform_wrapper .ginput_container--name,
.hl-footer .gform_wrapper .ginput_complex.ginput_container_name,
.hl-footer .gform_wrapper .ginput_complex:has(.name_first) {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 16px;
	margin: 0 !important;
	width: 100%;
}
.hl-footer .gform_wrapper .ginput_complex > span,
.hl-footer .gform_wrapper .ginput_complex .gform-grid-col {
	width: auto !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
	flex: none !important;
	display: flex;
	flex-direction: column;
}

.hl-footer .gform_wrapper .gfield_label,
.hl-footer .gform_wrapper legend.gfield_label,
.hl-footer .gform_wrapper .gform-field-label:not(.gform-field-label--type-sub) {
	color: var(--hl-sage) !important;
	font-size: 0.75rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 6px !important;
	padding: 0;
	float: none;
}
.hl-footer .gform_wrapper .gfield--type-name > .gfield_label,
.hl-footer .gform_wrapper .gfield--type-name > legend { margin-bottom: 6px !important; }
.hl-footer .gform_wrapper .gform-field-label--type-sub,
.hl-footer .gform_wrapper .ginput_complex label {
	color: var(--hl-pink) !important;
	opacity: 0.85;
	font-size: 0.75rem !important;
	margin: 4px 0 0 !important;
	padding: 0 !important;
}
.hl-footer .gform_wrapper .gfield_required { color: var(--hl-pink) !important; }
.hl-footer .gform_wrapper input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]) {
	box-sizing: border-box !important;
	width: 100% !important;
	height: 50px !important;
	min-height: 0;
	line-height: 1.2 !important;
	background: var(--hl-cream) !important;
	border: 0 !important;
	border-radius: 12px !important;
	color: var(--hl-oxblood) !important;
	padding: 12px 16px !important;
	font-size: 1rem !important;
	box-shadow: none !important;
}
.hl-footer .gform_wrapper input:focus-visible { outline: 3px solid var(--hl-sage) !important; outline-offset: 2px; }
.hl-footer .gform_wrapper .gform_footer,
.hl-footer .gform_wrapper .gform-footer {
	margin: 16px 0 0 !important;
	padding: 0 !important;
	display: flex;
	justify-content: flex-start;
}
.hl-footer .gform_wrapper .gform_button,
.hl-footer .gform_wrapper input[type="submit"],
.hl-footer .gform_wrapper button[type="submit"] {
	background: var(--hl-sage) !important;
	color: var(--hl-forest) !important;
	border: 0 !important;
	border-radius: 999px !important;
	min-height: 52px;
	padding: 14px 34px !important;
	width: auto !important;
	font-family: var(--hl-display) !important;
	font-size: 1.125rem !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1 !important;
}
.hl-footer .gform_wrapper .gform_button:hover,
.hl-footer .gform_wrapper input[type="submit"]:hover { background: var(--hl-pink) !important; color: var(--hl-oxblood) !important; }
.hl-footer .gform_wrapper .gfield_validation_message,
.hl-footer .gform_wrapper .validation_message {
	background: transparent !important;
	border: 0 !important;
	color: var(--hl-pink) !important;
	padding: 4px 0 0 !important;
	margin: 0 !important;
	font-size: 0.8125rem;
}
.hl-footer .gform_wrapper .gform_validation_errors {
	grid-column: 1 / -1;
	background: rgba(255, 246, 238, 0.08) !important;
	border: 1px solid var(--hl-pink) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	margin: 0 0 14px !important;
	padding: 10px 14px !important;
}
.hl-footer .gform_wrapper .gform_validation_errors * { color: var(--hl-pink) !important; font-size: 0.875rem !important; }
.hl-footer .gform_confirmation_message { color: var(--hl-cream); font-weight: 700; font-size: 1.125rem; }
.hl-footer .gform_wrapper .gform_ajax_spinner,
.hl-footer .gform_wrapper .gform-loader { margin-left: 12px; align-self: center; }

/* --------------------------------------------------------------------------
   Homepage: category tiles and tea cards (live from the shop)
   -------------------------------------------------------------------------- */

.hl-cat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.hl-cat-tile {
	min-height: 300px;
	padding: 26px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 12px;
	position: relative;
}
.hl-cat-tile.is-leaf { border-radius: var(--hl-leaf-lg); }
.hl-cat-tile.is-leaf-alt { border-radius: 0 32px 0 32px; }
.hl-cat-tile__title { font-size: 2.5rem; line-height: 1; margin: 0; }
.hl-cat-tile__title a { color: inherit; text-decoration: none; }
.hl-cat-tile__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.hl-cat-tile:hover .hl-cat-tile__title a { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }
.hl-cat-tile__img { margin: 0; align-self: flex-end; }
.hl-cat-tile__img img { width: 140px; height: 140px; object-fit: cover; border-radius: 999px; display: block; }
.hl-cat-tile__link { margin: 0; font-weight: 700; }
.hl-cat-tile__link a { color: inherit; text-decoration: none; }
.hl-cat-tile:focus-within { outline: 3px solid var(--hl-oxblood); outline-offset: 3px; }

.hl-tea-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.hl-tea-card {
	border-radius: var(--hl-leaf-lg);
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	position: relative;
	color: var(--hl-forest);
}
.hl-tea-card p { margin: 0; }
.hl-tea-card__name { font-size: var(--wp--preset--font-size--large, 1.5rem); line-height: 1.05; }
.hl-tea-card__name a { color: inherit; text-decoration: none; }
.hl-tea-card__name a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.hl-tea-card:hover .hl-tea-card__name a { text-decoration: underline; }
.hl-tea-card__blend { font-size: 0.875rem; font-weight: 600; }
.hl-tea-card__price { margin-top: auto !important; padding-top: 6px; font-weight: 800; color: var(--hl-oxblood); }
.hl-tea-card__price del { opacity: 0.6; font-weight: 600; margin-right: 4px; }
.hl-tea-card__price ins { text-decoration: none; }

.hl-short-description > *:first-child { margin-top: 0; }
.hl-short-description > *:last-child { margin-bottom: 0; }

@media (max-width: 1100px) {
	.hl-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --------------------------------------------------------------------------
   Small screens
   -------------------------------------------------------------------------- */

@media (max-width: 781px) {
	.wp-block-group.is-layout-grid,
	.wp-block-post-template.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; }
	.wp-block-group.is-style-wave::after { display: none; }
	.wp-block-group.is-style-wave + .hl-marquee { padding-top: 18px !important; }
	.is-style-sticker { width: 118px; height: 118px; font-size: 1.0625rem; padding: 12px; }
	.wp-block-image.is-style-arch img { aspect-ratio: 1; }
	.hl-header .wp-block-site-logo img { height: 56px; }
	.hl-header .wc-block-customer-account { display: none; }
	.hl-facts { grid-template-columns: 1fr; }
	.hl-shop-sidebar { display: none; }
	.wp-block-group.is-style-dots { background-size: 320px 320px; background-position: left -120px bottom -120px; }
	.hl-tiers .hl-card.has-oxblood-background-color { transform: none; }
	.hl-big-number { font-size: 7rem; }
	.hl-person .wp-block-image { max-width: 140px; }
	.hl-cat-grid { grid-template-columns: minmax(0, 1fr); }
	.hl-cat-tile { min-height: 0; flex-direction: row; flex-wrap: wrap; align-items: center; }
	.hl-cat-tile__title { flex: 1 1 60%; font-size: 2rem; }
	.hl-cat-tile__img img { width: 88px; height: 88px; }
	.hl-cat-tile__link { flex: 1 1 100%; }
	.hl-tea-grid { grid-template-columns: minmax(0, 1fr); }
	.hl-footer .gform_wrapper .gform_fields { grid-template-columns: minmax(0, 1fr) !important; }
	.hl-footer .gform_wrapper .gform_button,
	.hl-footer .gform_wrapper input[type="submit"] { width: 100% !important; }
	.wp-block-details.hl-faq summary { font-size: 1.125rem; }
}

/* Wide page template: full-bleed sections sit flush, highlights never get the browser's yellow. */
.wp-block-post-content.alignfull > .alignfull { margin-block-start: 0; margin-block-end: 0; }
mark.has-inline-color { background: transparent; }
.hl-big-number { white-space: nowrap; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.hl-card .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.hl-card .wp-block-image.is-style-arch img { aspect-ratio: 3 / 2; max-height: 340px; }
.wp-block-column > .wp-block-image.is-style-arch,
.hl-media-sticker > .wp-block-image { max-width: 540px; margin-left: auto; margin-right: auto; }
.wp-block-column > .wp-block-image.is-style-arch img,
.hl-media-sticker > .wp-block-image img { max-height: 560px; object-fit: cover; }
