/* ========================================
   Content flow
======================================== */

.entry-content {
	--flow-space: 1.5rem;
	padding-top: 2.5rem;
}

.entry-content > * {
	margin-left: auto;
	margin-right: auto;
}

.entry-content > * + * {
	margin-block-start: var(--flow-space);
}

.entry-content > * + h2 {
	margin-block-start: 1.35em;
}

.entry-content > * + h3 {
	margin-block-start: 1.15em;
}

.entry-content > * + h4 {
	margin-block-start: 1em;
}

/*
 * Nested block containers are their own flow context, and they need the same
 * rhythm. The rules above only reach .entry-content's direct children, so the
 * moment a page's text moves inside a columns or group block the paragraphs
 * become grandchildren and lose their spacing completely -- which is exactly
 * what happened to the contact page when its text and form were split into two
 * columns.
 *
 * WordPress normally prints this itself: .is-layout-flow and
 * .is-layout-constrained are the markers its layout support puts on any
 * container that stacks its children, and the matching margin rules ship as
 * part of wp_enqueue_global_styles(). Overrides\disable_global_styles() removes
 * those (see CLAUDE.md), so supplying the rhythm is the theme's job. Per-block
 * layout CSS is unaffected and still prints, which is why the columns
 * themselves lay out correctly and only the spacing inside them was missing.
 *
 * --flow-space is inherited rather than redeclared, so a container that sets
 * its own still wins inside itself.
 */
.entry-content .is-layout-flow > * + *,
.entry-content .is-layout-constrained > * + * {
	margin-block-start: var(--flow-space);
}

.entry-content .is-layout-flow > * + h2,
.entry-content .is-layout-constrained > * + h2 {
	margin-block-start: 1.35em;
}

.entry-content .is-layout-flow > * + h3,
.entry-content .is-layout-constrained > * + h3 {
	margin-block-start: 1.15em;
}

.entry-content .is-layout-flow > * + h4,
.entry-content .is-layout-constrained > * + h4 {
	margin-block-start: 1em;
}

/*
 * The columns block has no gap of its own. Core reads it from blockGap, which
 * arrives through wp_enqueue_global_styles() -- disabled here, the same reason
 * the flow rules above are the theme's job -- so columns sat flush against
 * each other with their text touching the next column's fields.
 *
 * The gap also does the vertical spacing once the columns stack, since they
 * wrap rather than switch layout.
 */
.entry-content .wp-block-columns {
	gap: var(--space-10); /* 40px */
}

/*
 * Core stacks columns at 782px, which is the WordPress admin bar breakpoint
 * rather than a layout decision (see CLAUDE.md) and is too late for a text
 * column beside a form. This moves the break to 800px.
 *
 * Both of core's rules carry !important -- flex-wrap: nowrap above 782px and
 * flex-basis: 100% below it -- so beating them needs !important plus higher
 * specificity, which the .entry-content prefix supplies. It is the one place
 * in the theme where !important is answering someone else's !important rather
 * than an inline style.
 */
@media (max-width: 799px) {

	.entry-content .wp-block-columns {
		flex-wrap: wrap !important;
	}

	.entry-content .wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
	}
}

.woocommerce-product-details__short-description {
	--flow-space: .9em;
}

.entry-content > :not(.alignwide):not(.alignfull):not(.is-style-wide) {
	/* inline-size: min(100% - var(--container-pad) * 2, var(--width-shell));
	margin-inline: auto; */
}

/* ========================================
   Link lists
======================================== */

.link-list,
.wp-block-page-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-flow: column;
	flex-grow: 1;
}

.link-list li,
.wp-block-pages-list__item {
	display: block;
	width: 100%;
	position: relative;
	padding-top: 7px;
	padding-bottom: 7px;
	font-size: var(--text-ui-l);
	line-height: var(--leading-slim);
}

.link-list a,
.wp-block-pages-list__item__link {
	text-decoration: none;
}

.link-list .current_page_item > a,
.link-list .current-menu-item > a,
.link-list li.is-active > a {
	color: var(--color-action);
	font-weight: var(--font-mild);
}

.link-list--index li {
	font-size: var(--text-ui);
}

.link-list--index li.is-active > a {
	color: var(--color-action-hover);
	font-weight: inherit;
}

/* ========================================
   BC Single product
======================================== */

.woocommerce-product-details__short-description {
	margin-top: 1rem;
	margin-bottom: 1rem;
}

.woocommerce-product-details__short-description  > * + * {
	margin-block-start: var(--flow-space);
}

.bc-product-tagline {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	list-style: none;
	margin: var(--space-3) 0 0;
	padding: var(--space-1) var(--space-3);
	border-radius: var(--radius-pill);
	background-color: var(--color-surface-warm);
}

.bc-product-tagline__item {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-label);
	font-weight: var(--font-mild);
}

.bc-product-tagline__item + .bc-product-tagline__item::before {
	content: "\2022";
	display: inline-block;
	margin: 0 var(--space-1);
	color: var(--color-border-strong);
}

.bc-product-content {
	display: flex;
	gap: 16px;
	font-size: var(--text-ui-l);
	margin-top: 10px;
}

.bc-product-content__text {
	font-weight: var(--font-mild);
}

.entry-summary ul:not(.bc-product-tagline),
.checkmark-list {
	list-style: none;
	margin-left: 0;
}

/* .entry-summary li, */
.checkmark-list li,
.entry-summary ul:not(.button-variable-items-wrapper, .bc-product-tagline) li {
	margin-top: 10px;
	margin-bottom: 10px;
	position: relative;
}

.entry-summary ul:not(.button-variable-items-wrapper, .bc-product-tagline) li::before,
.checkmark-list li::before {
	content: "";
	display: block;
	width: 18px;
	height: 18px;
	position: absolute;
	left: -1.6rem;
	top: 4px;
	background-image: url("../../../images/icons/checkmark-blue.svg");
	background-size: contain;
	background-repeat: no-repeat;
	transition: opacity 0.3s ease, filter 0.3s ease;
}

/* ========================================
   Product brand
======================================== */

.product-brand--wrapper {
	max-width: 150px;
}

.product-brand__link {
	display: inline-flex;
	font-size: var(--text-ui-l);
}

.product-brand__logo {
	height: auto;
	max-height: 50px;
	max-width: 150px;
}

.product_title__brand {
	display: block;
	font-size: 20px;
	font-weight: var(--font-medium);
	margin-bottom: 5px;
}

.product_title__name {
	display: block;
}

.product_title__category {
	display: block;
	font-size: 70%;
}

.woocommerce-loop-product__brand {
	display: block;
	font-weight: var(--font-light);
}

/* The attribute value a variation card stands for (df-variation-cards): "500 g". */
.product-loop-package {
	white-space: nowrap;
	font-weight: var(--font-normal);
}

.btn--product-detail {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: var(--text-body-s);
	transition: color .2s ease;
}

.btn--product-detail:hover {
	text-decoration: underline;
}

.btn--product-detail__text {
	line-height: var(--leading-flat);
}

.product_type_variable+.btn--product-detail {
	display: none;
}

/* Turn the sidebar-adjacent content column into a query container */
.page-sidebar-content {
	container-type: inline-size;
	container-name: sidebar-content;
}

/* Override the plugin's viewport-based breakpoint: force a single column
   whenever the actual column width is too narrow, regardless of viewport size */
@container sidebar-content (max-width: 650px) {
	.page-sidebar-content .mx-cw-field-grid {
		grid-template-columns: 1fr;
	}
}
