/**
 * WP Product Tabs and Content Designer — frontend styles.
 * BEM-ish naming, CSS variables for theming. Mobile-first.
 */

:root {
	--wptcd-accent: #2563eb;
	--wptcd-border: #e2e8f0;
	--wptcd-bg-muted: #f8fafc;
	--wptcd-text: #1e293b;
	--wptcd-radius: 8px;
	--wptcd-gap: 1rem;
	--wptcd-breakpoint: 782px;
}

.wptcd {
	margin: var(--wptcd-gap) 0;
	max-width: var(--wptcd-panel-max-width, none);
}

/* Horizontal placement of the whole set (panel.align). Only observable once
   panel.max_width makes the set narrower than the surrounding column; "left"
   needs no rule because that is what the margin shorthand above already does. */
.wptcd--set-center {
	margin-left: auto;
	margin-right: auto;
}

.wptcd--set-right {
	margin-left: auto;
	margin-right: 0;
}

/* Anchor offset (behavior.anchor_offset). Every element an anchor can land on
   keeps the configured distance to the top of the viewport, so a fixed header
   never covers the target. This rule is the no-JS fallback for the browser's
   own fragment jump; with JavaScript, tabs.js writes the same value inline on
   those elements (where no theme stylesheet can outrank it) and owns the scroll
   itself — see applyScrollMargin()/scrollToAnchor() there. */
.wptcd,
.wptcd__panel,
.wptcd-section {
	scroll-margin-top: var(--wptcd-anchor-offset, 20px);
}

.wptcd * {
	box-sizing: border-box;
}

/* ---------- Shared title typography ----------
   One set of values for tab buttons, accordion headers and section headings,
   so every title of a set looks the same (tab-set design plan, section 1). */
.wptcd__tabbtn-label,
.wptcd__accordion-title {
	font-family: var(--wptcd-title-font, var(--wptcd-title-type-font, inherit));
	font-size: var(--wptcd-title-size, var(--wptcd-title-type-size, inherit));
	font-weight: var(--wptcd-title-weight, inherit);
	line-height: var(--wptcd-title-lh, inherit);
	letter-spacing: var(--wptcd-title-ls, normal);
	text-transform: var(--wptcd-title-transform, none);
}

/* Title alignment (title.align). The tab label is a flex item, so the button's
   justify-content places it; the accordion title and the section heading are
   ordinary text boxes and take text-align. All three only show a difference
   while the element is wider than its label — a stretched tab bar, a full-width
   accordion header. Where the tab bar as a whole sits is tabs.bar_align. */
.wptcd__accordion-title {
	text-align: var(--wptcd-title-align, left);
}

.wptcd--title-align-left .wptcd__tabbtn {
	justify-content: flex-start;
}

.wptcd--title-align-center .wptcd__tabbtn {
	justify-content: center;
}

.wptcd--title-align-right .wptcd__tabbtn {
	justify-content: flex-end;
}

/* Semantic base: the chosen typography level of the global design supplies the
   fallback, the set's own title values still win. */
.wptcd--title-body {
	--wptcd-title-type-font: var(--wptcd-design-body-font, inherit);
	--wptcd-title-type-size: var(--wptcd-design-body-size, inherit);
}

.wptcd--title-h1 {
	--wptcd-title-type-font: var(--wptcd-design-h1-font, inherit);
	--wptcd-title-type-size: var(--wptcd-design-h1-size, inherit);
}

.wptcd--title-h2 {
	--wptcd-title-type-font: var(--wptcd-design-h2-font, inherit);
	--wptcd-title-type-size: var(--wptcd-design-h2-size, inherit);
}

.wptcd--title-h3 {
	--wptcd-title-type-font: var(--wptcd-design-h3-font, inherit);
	--wptcd-title-type-size: var(--wptcd-design-h3-size, inherit);
}

.wptcd--title-h4 {
	--wptcd-title-type-font: var(--wptcd-design-h4-font, inherit);
	--wptcd-title-type-size: var(--wptcd-design-h4-size, inherit);
}

.wptcd--title-h5 {
	--wptcd-title-type-font: var(--wptcd-design-h5-font, inherit);
	--wptcd-title-type-size: var(--wptcd-design-h5-size, inherit);
}

.wptcd--title-h6 {
	--wptcd-title-type-font: var(--wptcd-design-h6-font, inherit);
	--wptcd-title-type-size: var(--wptcd-design-h6-size, inherit);
}

/* ---------- Tablist ---------- */
.wptcd__tablist {
	display: none;
	list-style: none;
	margin: 0 0 -1px;
	padding: 0;
	gap: var(--wptcd-tab-gap, 0.25rem);
	border-bottom: var(--wptcd-bar-border-width, 1px) solid var(--wptcd-bar-border, var(--wptcd-border));
}

.wptcd__tab {
	margin: 0;
}

.wptcd__tabbtn {
	appearance: none;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wptcd-tab-icon-gap, 0.4rem);
	width: 100%;
	border-style: solid;
	border-color: var(--wptcd-tab-border, transparent);
	border-width:
		var(--wptcd-tab-border-width-top, 1px)
		var(--wptcd-tab-border-width-right, 1px)
		var(--wptcd-tab-border-width-bottom, 0)
		var(--wptcd-tab-border-width-left, 1px);
	background: var(--wptcd-tab-bg, transparent);
	padding:
		var(--wptcd-tab-pad-top, 0.75rem)
		var(--wptcd-tab-pad-right, 1.1rem)
		var(--wptcd-tab-pad-bottom, 0.75rem)
		var(--wptcd-tab-pad-left, 1.1rem);
	font: inherit;
	cursor: pointer;
	color: var(--wptcd-tab-color, var(--wptcd-title-color, inherit));
	border-radius: var(--wptcd-tab-radius, var(--wptcd-radius)) var(--wptcd-tab-radius, var(--wptcd-radius)) 0 0;
	transition:
		background-color var(--wptcd-anim-duration, 200ms) ease,
		border-color var(--wptcd-anim-duration, 200ms) ease,
		color var(--wptcd-anim-duration, 200ms) ease;
}

.wptcd__tabicon {
	flex: 0 0 auto;
	width: var(--wptcd-tab-icon-size, 20px);
	height: var(--wptcd-tab-icon-size, 20px);
	font-size: var(--wptcd-tab-icon-size, 20px);
	line-height: 1;
}

.wptcd__tabbtn:hover {
	background: var(--wptcd-tab-hover-bg, var(--wptcd-bg-muted));
	color: var(--wptcd-tab-hover-color, var(--wptcd-title-hover-color, inherit));
}

.wptcd__tabbtn[aria-selected="true"] {
	border-color: var(--wptcd-tab-border, var(--wptcd-border));
	background: var(--wptcd-tab-active-bg, #fff);
	font-weight: 600;
	color: var(--wptcd-tab-active-color, var(--wptcd-title-active-color, var(--wptcd-accent)));
}

.wptcd__tabbtn:focus-visible {
	outline: 2px solid var(--wptcd-accent);
	outline-offset: 2px;
}

/* Bar alignment and overflow. Six tabs on a narrow screen either wrap
   (default) or scroll horizontally. */
.wptcd--bar-center .wptcd__tablist {
	justify-content: center;
}

.wptcd--bar-right .wptcd__tablist {
	justify-content: flex-end;
}

.wptcd--bar-stretch .wptcd__tab {
	flex: 1 1 0;
}

.wptcd--bar-scroll .wptcd__tablist {
	flex-wrap: nowrap;
	overflow-x: auto;
	scrollbar-width: thin;
}

.wptcd--bar-scroll .wptcd__tab {
	flex: 0 0 auto;
}

/* Active-tab indicator. "none" removes even the default underline. */
.wptcd--indicator-underline .wptcd__tabbtn::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: var(--wptcd-indicator-size, 3px);
	background: var(--wptcd-indicator-color, var(--wptcd-accent));
	opacity: 0;
	transition: opacity var(--wptcd-anim-duration, 200ms) ease;
}

.wptcd--indicator-underline .wptcd__tabbtn[aria-selected="true"]::after {
	opacity: 1;
}

.wptcd--indicator-pill .wptcd__tablist {
	border-bottom: 0;
	margin-bottom: 0;
}

.wptcd--indicator-pill .wptcd__tabbtn {
	border-width: 0;
	border-radius: var(--wptcd-tab-radius, 999px);
}

.wptcd--indicator-pill .wptcd__tabbtn[aria-selected="true"] {
	background: var(--wptcd-indicator-color, var(--wptcd-accent));
	color: var(--wptcd-tab-active-color, #fff);
}

.wptcd--indicator-box .wptcd__tabbtn[aria-selected="true"] {
	border-width: var(--wptcd-indicator-size, 1px);
	border-color: var(--wptcd-indicator-color, var(--wptcd-accent));
	border-radius: var(--wptcd-tab-radius, var(--wptcd-radius));
}

/* ---------- Accordion header ---------- */
.wptcd__accordion-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	width: 100%;
	text-align: left;
	appearance: none;
	border: 0;
	background: transparent;
	padding:
		var(--wptcd-acc-pad-top, 0.85rem)
		var(--wptcd-acc-pad-right, 1rem)
		var(--wptcd-acc-pad-bottom, 0.85rem)
		var(--wptcd-acc-pad-left, 1rem);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	color: var(--wptcd-acc-header-color, var(--wptcd-accordion-color, inherit));
	transition: color var(--wptcd-anim-duration, 200ms) ease;
}

.wptcd__accordion-header:hover {
	color: var(--wptcd-acc-header-hover-color, var(--wptcd-acc-header-color, var(--wptcd-title-hover-color, inherit)));
}

.wptcd__accordion-header[aria-expanded="true"] {
	color: var(--wptcd-acc-header-open-color, var(--wptcd-acc-header-color, var(--wptcd-title-active-color, inherit)));
}

.wptcd__accordion-header:focus-visible {
	outline: 2px solid var(--wptcd-accent);
	outline-offset: 2px;
}

.wptcd__accordion-title {
	flex: 1 1 auto;
}

/* Icon left instead of right: the row is mirrored, which keeps the title span
   and the click area untouched. */
.wptcd--icon-left .wptcd__accordion-header {
	flex-direction: row-reverse;
	justify-content: flex-end;
}

.wptcd__accordion-icon {
	display: inline-block;
	flex: 0 0 auto;
	width: var(--wptcd-acc-icon-size, 20px);
	height: var(--wptcd-acc-icon-size, 20px);
	font-family: dashicons;
	font-size: var(--wptcd-acc-icon-size, 20px);
	line-height: 1;
	color: var(--wptcd-acc-icon-color, currentcolor);
	transition: transform var(--wptcd-anim-duration, 200ms) ease;
}

.wptcd__accordion-icon--expanded,
.wptcd__accordion-header[aria-expanded="true"] .wptcd__accordion-icon--collapsed {
	display: none;
}

.wptcd__accordion-header[aria-expanded="true"] .wptcd__accordion-icon--expanded {
	display: inline-block;
}

.wptcd--icon-rotate .wptcd__accordion-header[aria-expanded="true"] .wptcd__accordion-icon {
	transform: rotate(180deg);
}

/* ---------- Shadow presets ----------
   Cards get their softer defaults first so an explicit choice still wins. */
.wptcd--acc-cards {
	--wptcd-acc-gap-default: 0.75rem;
	--wptcd-acc-bg-default: #fff;
	--wptcd-acc-radius-default: 10px;
	--wptcd-acc-shadow: 0 1px 3px rgb(0 0 0 / 6%);
}

.wptcd--acc-shadow-none {
	--wptcd-acc-shadow: none;
}

.wptcd--acc-shadow-soft {
	--wptcd-acc-shadow: 0 1px 3px rgb(0 0 0 / 8%);
}

.wptcd--acc-shadow-medium {
	--wptcd-acc-shadow: 0 8px 24px rgb(0 0 0 / 12%);
}

.wptcd--panel-shadow-none {
	--wptcd-panel-shadow: none;
}

.wptcd--panel-shadow-soft {
	--wptcd-panel-shadow: 0 1px 3px rgb(0 0 0 / 8%);
}

.wptcd--panel-shadow-medium {
	--wptcd-panel-shadow: 0 8px 24px rgb(0 0 0 / 12%);
}

/* ---------- Accordion mode ----------
   Applies to the accordion layout at every width and to hybrid below its
   breakpoint. Here .wptcd__panel is the card: header plus content. */
.wptcd--accordion,
.wptcd--hybrid {
	display: flex;
	flex-direction: column;
	gap: var(--wptcd-acc-gap, var(--wptcd-acc-gap-default, 0.25rem));
}

.wptcd--accordion .wptcd__tablist,
.wptcd--hybrid .wptcd__tablist {
	display: none;
}

.wptcd--accordion .wptcd__panel,
.wptcd--hybrid .wptcd__panel {
	background: var(--wptcd-acc-bg, var(--wptcd-accordion-bg, var(--wptcd-acc-bg-default, var(--wptcd-bg-muted))));
	border-style: solid;
	border-color: var(--wptcd-acc-border, var(--wptcd-border));
	border-width:
		var(--wptcd-acc-border-width-top, 1px)
		var(--wptcd-acc-border-width-right, 1px)
		var(--wptcd-acc-border-width-bottom, 1px)
		var(--wptcd-acc-border-width-left, 1px);
	border-radius: var(--wptcd-acc-radius, var(--wptcd-acc-radius-default, var(--wptcd-radius)));
	box-shadow: var(--wptcd-acc-shadow, none);
	padding: 0;
	overflow: hidden;
	transition:
		background-color var(--wptcd-anim-duration, 200ms) ease,
		border-color var(--wptcd-anim-duration, 200ms) ease;
}

.wptcd--accordion .wptcd__panel:hover,
.wptcd--hybrid .wptcd__panel:hover {
	background: var(--wptcd-acc-hover-bg, var(--wptcd-acc-bg, var(--wptcd-acc-bg-default, var(--wptcd-bg-muted))));
	border-color: var(--wptcd-acc-hover-border, var(--wptcd-acc-border, var(--wptcd-border)));
}

/* tabs.js marks the open card so the open background needs no :has(). */
.wptcd--accordion .wptcd__panel.is-open,
.wptcd--hybrid .wptcd__panel.is-open {
	background: var(--wptcd-acc-open-bg, var(--wptcd-acc-bg, var(--wptcd-acc-bg-default, var(--wptcd-bg-muted))));
}

.wptcd--accordion .wptcd__panel-content,
.wptcd--hybrid .wptcd__panel-content {
	background: var(--wptcd-acc-content-bg, transparent);
	padding:
		var(--wptcd-acc-content-pad-top, 0)
		var(--wptcd-acc-content-pad-right, 1rem)
		var(--wptcd-acc-content-pad-bottom, 1rem)
		var(--wptcd-acc-content-pad-left, 1rem);
	max-width: none;
}

.wptcd--accordion .wptcd__panel.is-open .wptcd__panel-content,
.wptcd--hybrid .wptcd__panel.is-open .wptcd__panel-content {
	padding-top: var(--wptcd-acc-header-gap, var(--wptcd-acc-content-pad-top, 0));
}

/* ---------- Tab mode ----------
   Applies to the tabs layout at every width. Here .wptcd__panel is the content
   area; the accordion header stays hidden. */
.wptcd--tabs .wptcd__tablist {
	display: flex;
	flex-wrap: wrap;
}

.wptcd--tabs .wptcd__accordion-header {
	display: none;
}

.wptcd--tabs .wptcd__panel {
	border-style: solid;
	border-color: var(--wptcd-panel-border, var(--wptcd-border));
	border-width:
		var(--wptcd-panel-border-width-top, 0)
		var(--wptcd-panel-border-width-right, 1px)
		var(--wptcd-panel-border-width-bottom, 1px)
		var(--wptcd-panel-border-width-left, 1px);
	border-radius: var(--wptcd-panel-radius, 0);
	background: var(--wptcd-panel-bg, transparent);
	box-shadow: var(--wptcd-panel-shadow, none);
	padding:
		var(--wptcd-panel-pad-top, var(--wptcd-gap))
		var(--wptcd-panel-pad-right, var(--wptcd-gap))
		var(--wptcd-panel-pad-bottom, var(--wptcd-gap))
		var(--wptcd-panel-pad-left, var(--wptcd-gap));
	overflow: visible;
}

.wptcd--tabs .wptcd__panel-content {
	background: transparent;
	padding: 0;
}

/* ---------- Hybrid switch ----------
   The only genuinely breakpoint-dependent rules, once per selectable
   breakpoint (decision D2). 782px is the default and therefore also covers
   hybrid sets that never chose one. */
@media (min-width: 600px) {
	.wptcd--hybrid.wptcd--bp-600 {
		display: block;
	}

	.wptcd--hybrid.wptcd--bp-600 .wptcd__tablist {
		display: flex;
		flex-wrap: wrap;
	}

	.wptcd--hybrid.wptcd--bp-600 .wptcd__accordion-header {
		display: none;
	}

	.wptcd--hybrid.wptcd--bp-600 .wptcd__panel {
		border-color: var(--wptcd-panel-border, var(--wptcd-border));
		border-width:
			var(--wptcd-panel-border-width-top, 0)
			var(--wptcd-panel-border-width-right, 1px)
			var(--wptcd-panel-border-width-bottom, 1px)
			var(--wptcd-panel-border-width-left, 1px);
		border-radius: var(--wptcd-panel-radius, 0);
		background: var(--wptcd-panel-bg, transparent);
		box-shadow: var(--wptcd-panel-shadow, none);
		padding:
			var(--wptcd-panel-pad-top, var(--wptcd-gap))
			var(--wptcd-panel-pad-right, var(--wptcd-gap))
			var(--wptcd-panel-pad-bottom, var(--wptcd-gap))
			var(--wptcd-panel-pad-left, var(--wptcd-gap));
		overflow: visible;
	}

	.wptcd--hybrid.wptcd--bp-600 .wptcd__panel-content {
		background: transparent;
		padding: 0;
	}
}

@media (min-width: 782px) {
	.wptcd--hybrid:not(.wptcd--bp-600, .wptcd--bp-1024) {
		display: block;
	}

	.wptcd--hybrid:not(.wptcd--bp-600, .wptcd--bp-1024) .wptcd__tablist {
		display: flex;
		flex-wrap: wrap;
	}

	.wptcd--hybrid:not(.wptcd--bp-600, .wptcd--bp-1024) .wptcd__accordion-header {
		display: none;
	}

	.wptcd--hybrid:not(.wptcd--bp-600, .wptcd--bp-1024) .wptcd__panel {
		border-color: var(--wptcd-panel-border, var(--wptcd-border));
		border-width:
			var(--wptcd-panel-border-width-top, 0)
			var(--wptcd-panel-border-width-right, 1px)
			var(--wptcd-panel-border-width-bottom, 1px)
			var(--wptcd-panel-border-width-left, 1px);
		border-radius: var(--wptcd-panel-radius, 0);
		background: var(--wptcd-panel-bg, transparent);
		box-shadow: var(--wptcd-panel-shadow, none);
		padding:
			var(--wptcd-panel-pad-top, var(--wptcd-gap))
			var(--wptcd-panel-pad-right, var(--wptcd-gap))
			var(--wptcd-panel-pad-bottom, var(--wptcd-gap))
			var(--wptcd-panel-pad-left, var(--wptcd-gap));
		overflow: visible;
	}

	.wptcd--hybrid:not(.wptcd--bp-600, .wptcd--bp-1024) .wptcd__panel-content {
		background: transparent;
		padding: 0;
	}
}

@media (min-width: 1024px) {
	.wptcd--hybrid.wptcd--bp-1024 {
		display: block;
	}

	.wptcd--hybrid.wptcd--bp-1024 .wptcd__tablist {
		display: flex;
		flex-wrap: wrap;
	}

	.wptcd--hybrid.wptcd--bp-1024 .wptcd__accordion-header {
		display: none;
	}

	.wptcd--hybrid.wptcd--bp-1024 .wptcd__panel {
		border-color: var(--wptcd-panel-border, var(--wptcd-border));
		border-width:
			var(--wptcd-panel-border-width-top, 0)
			var(--wptcd-panel-border-width-right, 1px)
			var(--wptcd-panel-border-width-bottom, 1px)
			var(--wptcd-panel-border-width-left, 1px);
		border-radius: var(--wptcd-panel-radius, 0);
		background: var(--wptcd-panel-bg, transparent);
		box-shadow: var(--wptcd-panel-shadow, none);
		padding:
			var(--wptcd-panel-pad-top, var(--wptcd-gap))
			var(--wptcd-panel-pad-right, var(--wptcd-gap))
			var(--wptcd-panel-pad-bottom, var(--wptcd-gap))
			var(--wptcd-panel-pad-left, var(--wptcd-gap));
		overflow: visible;
	}

	.wptcd--hybrid.wptcd--bp-1024 .wptcd__panel-content {
		background: transparent;
		padding: 0;
	}
}

/* ---------- Responsive design values ----------
   Device cascade mobile -> tablet -> desktop -> stylesheet default, mirroring
   the FAQ block's variable cascade. */
@media (max-width: 781px) {
	.wptcd__tabbtn-label,
	.wptcd__accordion-title {
		font-size: var(--wptcd-title-size-tablet, var(--wptcd-title-size, inherit));
	}

	.wptcd__tabbtn {
		border-width:
			var(--wptcd-tab-border-width-tablet-top, var(--wptcd-tab-border-width-top, 1px))
			var(--wptcd-tab-border-width-tablet-right, var(--wptcd-tab-border-width-right, 1px))
			var(--wptcd-tab-border-width-tablet-bottom, var(--wptcd-tab-border-width-bottom, 0))
			var(--wptcd-tab-border-width-tablet-left, var(--wptcd-tab-border-width-left, 1px));
		padding:
			var(--wptcd-tab-pad-tablet-top, var(--wptcd-tab-pad-top, 0.75rem))
			var(--wptcd-tab-pad-tablet-right, var(--wptcd-tab-pad-right, 1.1rem))
			var(--wptcd-tab-pad-tablet-bottom, var(--wptcd-tab-pad-bottom, 0.75rem))
			var(--wptcd-tab-pad-tablet-left, var(--wptcd-tab-pad-left, 1.1rem));
	}

	.wptcd__accordion-header {
		padding:
			var(--wptcd-acc-pad-tablet-top, var(--wptcd-acc-pad-top, 0.85rem))
			var(--wptcd-acc-pad-tablet-right, var(--wptcd-acc-pad-right, 1rem))
			var(--wptcd-acc-pad-tablet-bottom, var(--wptcd-acc-pad-bottom, 0.85rem))
			var(--wptcd-acc-pad-tablet-left, var(--wptcd-acc-pad-left, 1rem));
	}

	.wptcd--accordion .wptcd__panel,
	.wptcd--hybrid .wptcd__panel {
		border-width:
			var(--wptcd-acc-border-width-tablet-top, var(--wptcd-acc-border-width-top, 1px))
			var(--wptcd-acc-border-width-tablet-right, var(--wptcd-acc-border-width-right, 1px))
			var(--wptcd-acc-border-width-tablet-bottom, var(--wptcd-acc-border-width-bottom, 1px))
			var(--wptcd-acc-border-width-tablet-left, var(--wptcd-acc-border-width-left, 1px));
	}

	.wptcd--accordion .wptcd__panel-content,
	.wptcd--hybrid .wptcd__panel-content {
		padding:
			var(--wptcd-acc-content-pad-tablet-top, var(--wptcd-acc-content-pad-top, 0))
			var(--wptcd-acc-content-pad-tablet-right, var(--wptcd-acc-content-pad-right, 1rem))
			var(--wptcd-acc-content-pad-tablet-bottom, var(--wptcd-acc-content-pad-bottom, 1rem))
			var(--wptcd-acc-content-pad-tablet-left, var(--wptcd-acc-content-pad-left, 1rem));
	}

	.wptcd--tabs .wptcd__panel {
		border-width:
			var(--wptcd-panel-border-width-tablet-top, var(--wptcd-panel-border-width-top, 0))
			var(--wptcd-panel-border-width-tablet-right, var(--wptcd-panel-border-width-right, 1px))
			var(--wptcd-panel-border-width-tablet-bottom, var(--wptcd-panel-border-width-bottom, 1px))
			var(--wptcd-panel-border-width-tablet-left, var(--wptcd-panel-border-width-left, 1px));
		padding:
			var(--wptcd-panel-pad-tablet-top, var(--wptcd-panel-pad-top, var(--wptcd-gap)))
			var(--wptcd-panel-pad-tablet-right, var(--wptcd-panel-pad-right, var(--wptcd-gap)))
			var(--wptcd-panel-pad-tablet-bottom, var(--wptcd-panel-pad-bottom, var(--wptcd-gap)))
			var(--wptcd-panel-pad-tablet-left, var(--wptcd-panel-pad-left, var(--wptcd-gap)));
	}
}

@media (max-width: 599px) {
	.wptcd__tabbtn-label,
	.wptcd__accordion-title {
		font-size: var(--wptcd-title-size-mobile, var(--wptcd-title-size-tablet, var(--wptcd-title-size, inherit)));
	}

	.wptcd__tabbtn {
		border-width:
			var(--wptcd-tab-border-width-mobile-top, var(--wptcd-tab-border-width-tablet-top, var(--wptcd-tab-border-width-top, 1px)))
			var(--wptcd-tab-border-width-mobile-right, var(--wptcd-tab-border-width-tablet-right, var(--wptcd-tab-border-width-right, 1px)))
			var(--wptcd-tab-border-width-mobile-bottom, var(--wptcd-tab-border-width-tablet-bottom, var(--wptcd-tab-border-width-bottom, 0)))
			var(--wptcd-tab-border-width-mobile-left, var(--wptcd-tab-border-width-tablet-left, var(--wptcd-tab-border-width-left, 1px)));
		padding:
			var(--wptcd-tab-pad-mobile-top, var(--wptcd-tab-pad-tablet-top, var(--wptcd-tab-pad-top, 0.75rem)))
			var(--wptcd-tab-pad-mobile-right, var(--wptcd-tab-pad-tablet-right, var(--wptcd-tab-pad-right, 1.1rem)))
			var(--wptcd-tab-pad-mobile-bottom, var(--wptcd-tab-pad-tablet-bottom, var(--wptcd-tab-pad-bottom, 0.75rem)))
			var(--wptcd-tab-pad-mobile-left, var(--wptcd-tab-pad-tablet-left, var(--wptcd-tab-pad-left, 1.1rem)));
	}

	.wptcd__accordion-header {
		padding:
			var(--wptcd-acc-pad-mobile-top, var(--wptcd-acc-pad-tablet-top, var(--wptcd-acc-pad-top, 0.85rem)))
			var(--wptcd-acc-pad-mobile-right, var(--wptcd-acc-pad-tablet-right, var(--wptcd-acc-pad-right, 1rem)))
			var(--wptcd-acc-pad-mobile-bottom, var(--wptcd-acc-pad-tablet-bottom, var(--wptcd-acc-pad-bottom, 0.85rem)))
			var(--wptcd-acc-pad-mobile-left, var(--wptcd-acc-pad-tablet-left, var(--wptcd-acc-pad-left, 1rem)));
	}

	.wptcd--accordion .wptcd__panel,
	.wptcd--hybrid .wptcd__panel {
		border-width:
			var(--wptcd-acc-border-width-mobile-top, var(--wptcd-acc-border-width-tablet-top, var(--wptcd-acc-border-width-top, 1px)))
			var(--wptcd-acc-border-width-mobile-right, var(--wptcd-acc-border-width-tablet-right, var(--wptcd-acc-border-width-right, 1px)))
			var(--wptcd-acc-border-width-mobile-bottom, var(--wptcd-acc-border-width-tablet-bottom, var(--wptcd-acc-border-width-bottom, 1px)))
			var(--wptcd-acc-border-width-mobile-left, var(--wptcd-acc-border-width-tablet-left, var(--wptcd-acc-border-width-left, 1px)));
	}

	.wptcd--accordion .wptcd__panel-content,
	.wptcd--hybrid .wptcd__panel-content {
		padding:
			var(--wptcd-acc-content-pad-mobile-top, var(--wptcd-acc-content-pad-tablet-top, var(--wptcd-acc-content-pad-top, 0)))
			var(--wptcd-acc-content-pad-mobile-right, var(--wptcd-acc-content-pad-tablet-right, var(--wptcd-acc-content-pad-right, 1rem)))
			var(--wptcd-acc-content-pad-mobile-bottom, var(--wptcd-acc-content-pad-tablet-bottom, var(--wptcd-acc-content-pad-bottom, 1rem)))
			var(--wptcd-acc-content-pad-mobile-left, var(--wptcd-acc-content-pad-tablet-left, var(--wptcd-acc-content-pad-left, 1rem)));
	}

	.wptcd--tabs .wptcd__panel {
		border-width:
			var(--wptcd-panel-border-width-mobile-top, var(--wptcd-panel-border-width-tablet-top, var(--wptcd-panel-border-width-top, 0)))
			var(--wptcd-panel-border-width-mobile-right, var(--wptcd-panel-border-width-tablet-right, var(--wptcd-panel-border-width-right, 1px)))
			var(--wptcd-panel-border-width-mobile-bottom, var(--wptcd-panel-border-width-tablet-bottom, var(--wptcd-panel-border-width-bottom, 1px)))
			var(--wptcd-panel-border-width-mobile-left, var(--wptcd-panel-border-width-tablet-left, var(--wptcd-panel-border-width-left, 1px)));
		padding:
			var(--wptcd-panel-pad-mobile-top, var(--wptcd-panel-pad-tablet-top, var(--wptcd-panel-pad-top, var(--wptcd-gap))))
			var(--wptcd-panel-pad-mobile-right, var(--wptcd-panel-pad-tablet-right, var(--wptcd-panel-pad-right, var(--wptcd-gap))))
			var(--wptcd-panel-pad-mobile-bottom, var(--wptcd-panel-pad-tablet-bottom, var(--wptcd-panel-pad-bottom, var(--wptcd-gap))))
			var(--wptcd-panel-pad-mobile-left, var(--wptcd-panel-pad-tablet-left, var(--wptcd-panel-pad-left, var(--wptcd-gap))));
	}
}

/* ---------- Sections layout ---------- */
.wptcd--sections .wptcd-section {
	background: var(--wptcd-panel-bg, transparent);
	border-style: solid;
	border-color: var(--wptcd-panel-border, transparent);
	border-width:
		var(--wptcd-panel-border-width-top, 0)
		var(--wptcd-panel-border-width-right, 0)
		var(--wptcd-panel-border-width-bottom, 0)
		var(--wptcd-panel-border-width-left, 0);
	border-radius: var(--wptcd-panel-radius, 0);
	box-shadow: var(--wptcd-panel-shadow, none);
	padding:
		var(--wptcd-panel-pad-top, 0)
		var(--wptcd-panel-pad-right, 0)
		var(--wptcd-panel-pad-bottom, 0)
		var(--wptcd-panel-pad-left, 0);
}

.wptcd--sections {
	display: flex;
	flex-direction: column;
	gap: var(--wptcd-sections-gap, 2rem);
}

.wptcd--sections.wptcd--sections-divider .wptcd-section + .wptcd-section {
	border-top: 1px solid var(--wptcd-sections-divider-color, var(--wptcd-border));
	padding-top: var(--wptcd-sections-gap, 2rem);
}

.wptcd-section__title {
	margin: 0 0 0.75rem;
	font-family: var(--wptcd-section-title-font, var(--wptcd-title-font, var(--wptcd-title-type-font, inherit)));
	font-size: var(--wptcd-section-title-size, var(--wptcd-title-size, var(--wptcd-title-type-size, inherit)));
	color: var(--wptcd-section-title-color, var(--wptcd-title-color, inherit));
	font-weight: var(--wptcd-section-title-weight, var(--wptcd-title-weight, inherit));
	line-height: var(--wptcd-title-lh, inherit);
	letter-spacing: var(--wptcd-title-ls, normal);
	text-transform: var(--wptcd-title-transform, none);
	text-align: var(--wptcd-title-align, inherit);
}

.wptcd-section__title--align-center {
	text-align: center;
}

.wptcd-section__title--align-right {
	text-align: right;
}

/* Reduced motion is never a setting: it always wins over the configured
   animation duration (decision D6). */
@media (prefers-reduced-motion: reduce) {
	.wptcd__tabbtn,
	.wptcd__accordion-header,
	.wptcd__accordion-icon,
	.wptcd--accordion .wptcd__panel,
	.wptcd--hybrid .wptcd__panel {
		transition: none;
	}
}

/* Prepared by tabs.js when the set opted into the open/close animation: the
   animated height must not leak overflowing content. */
.wptcd--animated .wptcd__panel-content {
	overflow: hidden;
}

/* No-JS fallback: when JS is absent, show all panels. */
.wptcd:not(.wptcd--js) .wptcd__panel[hidden] {
	display: block;
}

/* ---------- Blocks ---------- */
.wptcd-block {
	box-sizing: border-box;
	background-color: var(--wptcd-design-background-color, transparent);
	border-style: solid;
	border-color: var(--wptcd-design-border, transparent);
	border-width: var(--wptcd-design-border-width, 0);
	border-radius: var(--wptcd-design-border-radius, 0);
	min-height: var(--wptcd-design-min-height, initial);
	max-height: var(--wptcd-design-max-height, none);
	min-width: var(--wptcd-design-min-width, initial);
	max-width: var(--wptcd-design-max-width, none);
	padding:
		var(--wptcd-design-padding-top, 0)
		var(--wptcd-design-padding-right, 0)
		var(--wptcd-design-padding-bottom, 0)
		var(--wptcd-design-padding-left, 0);
	margin:
		var(--wptcd-design-margin-top, 0)
		var(--wptcd-design-margin-right, 0)
		var(--wptcd-design-margin-bottom, 0)
		var(--wptcd-design-margin-left, 0);
}

.wptcd-block :where(h1) {
	font-family: var(--wptcd-design-h1-font);
	font-size: var(--wptcd-design-h1-size);
	color: var(--wptcd-design-h1-color);
}

.wptcd-block :where(h2) {
	font-family: var(--wptcd-design-h2-font);
	font-size: var(--wptcd-design-h2-size);
	color: var(--wptcd-design-h2-color);
}

.wptcd-block :where(h3) {
	font-family: var(--wptcd-design-h3-font);
	font-size: var(--wptcd-design-h3-size);
	color: var(--wptcd-design-h3-color);
}

.wptcd-block :where(h4) {
	font-family: var(--wptcd-design-h4-font);
	font-size: var(--wptcd-design-h4-size);
	color: var(--wptcd-design-h4-color);
}

.wptcd-block :where(h5) {
	font-family: var(--wptcd-design-h5-font);
	font-size: var(--wptcd-design-h5-size);
	color: var(--wptcd-design-h5-color);
}

.wptcd-block :where(h6) {
	font-family: var(--wptcd-design-h6-font);
	font-size: var(--wptcd-design-h6-size);
	color: var(--wptcd-design-h6-color);
}

.wptcd-block :where(p:not(.wptcd-hero__actions), li) {
	font-family: var(--wptcd-design-body-font);
	font-size: var(--wptcd-design-body-size);
	color: var(--wptcd-design-body-color);
}

/* Per-device spacing overrides (tablet/mobile fall back to the next larger
   breakpoint, then to the desktop base variables defined above). */
@media (max-width: 781px) {
	.wptcd-block {
		padding:
			var(--wptcd-design-padding-tablet-top, var(--wptcd-design-padding-top, 0))
			var(--wptcd-design-padding-tablet-right, var(--wptcd-design-padding-right, 0))
			var(--wptcd-design-padding-tablet-bottom, var(--wptcd-design-padding-bottom, 0))
			var(--wptcd-design-padding-tablet-left, var(--wptcd-design-padding-left, 0));
		margin:
			var(--wptcd-design-margin-tablet-top, var(--wptcd-design-margin-top, 0))
			var(--wptcd-design-margin-tablet-right, var(--wptcd-design-margin-right, 0))
			var(--wptcd-design-margin-tablet-bottom, var(--wptcd-design-margin-bottom, 0))
			var(--wptcd-design-margin-tablet-left, var(--wptcd-design-margin-left, 0));
	}
}

@media (max-width: 599px) {
	.wptcd-block {
		padding:
			var(--wptcd-design-padding-mobile-top, var(--wptcd-design-padding-tablet-top, var(--wptcd-design-padding-top, 0)))
			var(--wptcd-design-padding-mobile-right, var(--wptcd-design-padding-tablet-right, var(--wptcd-design-padding-right, 0)))
			var(--wptcd-design-padding-mobile-bottom, var(--wptcd-design-padding-tablet-bottom, var(--wptcd-design-padding-bottom, 0)))
			var(--wptcd-design-padding-mobile-left, var(--wptcd-design-padding-tablet-left, var(--wptcd-design-padding-left, 0)));
		margin:
			var(--wptcd-design-margin-mobile-top, var(--wptcd-design-margin-tablet-top, var(--wptcd-design-margin-top, 0)))
			var(--wptcd-design-margin-mobile-right, var(--wptcd-design-margin-tablet-right, var(--wptcd-design-margin-right, 0)))
			var(--wptcd-design-margin-mobile-bottom, var(--wptcd-design-margin-tablet-bottom, var(--wptcd-design-margin-bottom, 0)))
			var(--wptcd-design-margin-mobile-left, var(--wptcd-design-margin-tablet-left, var(--wptcd-design-margin-left, 0)));
	}
}

/* Horizontal alignment of a width-constrained block (effective once a
   max-width shrinks the block below the available width). Auto margins win
   over the left/right spacing margins above via source order. */
.wptcd-block--align-center {
	margin-left: auto;
	margin-right: auto;
}

.wptcd-block--align-right {
	margin-left: auto;
	margin-right: 0;
}

.wptcd-block--highlight {
	background: var(--wptcd-design-background-color, var(--wptcd-bg-muted));
	border-left: 3px solid var(--wptcd-accent);
	padding:
		var(--wptcd-design-padding-top, 1rem)
		var(--wptcd-design-padding-right, 1rem)
		var(--wptcd-design-padding-bottom, 1rem)
		var(--wptcd-design-padding-left, 1rem);
	border-radius: var(--wptcd-radius);
}

/* Highlights */
.wptcd-block--highlights {
	list-style: none;
	margin:
		var(--wptcd-design-margin-top, 0)
		var(--wptcd-design-margin-right, 0)
		var(--wptcd-design-margin-bottom, 0)
		var(--wptcd-design-margin-left, 0);
	padding:
		var(--wptcd-design-padding-top, 0)
		var(--wptcd-design-padding-right, 0)
		var(--wptcd-design-padding-bottom, 0)
		var(--wptcd-design-padding-left, 0);
	display: grid;
	gap: 0.6rem;
}

.wptcd-highlights--cols-2 { grid-template-columns: 1fr; }
.wptcd-highlights--cols-3 { grid-template-columns: 1fr; }

@media (min-width: 600px) {
	.wptcd-highlights--cols-2 { grid-template-columns: repeat(2, 1fr); }
	.wptcd-highlights--cols-3 { grid-template-columns: repeat(3, 1fr); }
}

.wptcd-highlights--cards .wptcd-highlights__item {
	border: 1px solid var(--wptcd-border);
	border-radius: var(--wptcd-radius);
	padding: 0.85rem 1rem;
	background: #fff;
}

.wptcd-highlights--icons .wptcd-highlights__item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}

.wptcd-highlights--icons .wptcd-highlights__icon {
	flex: none;
	color: var(--wptcd-hl-icon-color, var(--wptcd-accent));
	font-size: var(--wptcd-hl-icon-size, 1.2em);
	width: 1em;
	height: 1em;
	line-height: 1;
}

/* Rich-text columns */
.wptcd-block--columns {
	width: 100%;
}

.wptcd-columns__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--wptcd-columns-gap-desktop, 24px);
	align-items: var(--wptcd-columns-align-items, stretch);
	min-width: 0;
}

.wptcd-columns__column {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: var(--wptcd-column-justify, var(--wptcd-columns-justify, flex-start));
	grid-column: auto / span 12;
	min-width: 0;
	background-color: var(--wptcd-column-background, transparent);
	border-color: var(--wptcd-column-border, transparent);
	border-style: solid;
	border-width: var(--wptcd-column-border-width, 0);
	border-radius: var(--wptcd-column-border-radius, 0);
}

.wptcd-columns__column--shadow-light {
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.14);
}

.wptcd-columns__column--shadow-medium {
	box-shadow: 0 6px 16px rgba(15, 23, 42, 0.18);
}

.wptcd-columns__column--shadow-strong {
	box-shadow: 0 14px 32px rgba(15, 23, 42, 0.24);
}

.wptcd-columns__column[data-span-desktop="1"] { grid-column-end: span 1; }
.wptcd-columns__column[data-span-desktop="2"] { grid-column-end: span 2; }
.wptcd-columns__column[data-span-desktop="3"] { grid-column-end: span 3; }
.wptcd-columns__column[data-span-desktop="4"] { grid-column-end: span 4; }
.wptcd-columns__column[data-span-desktop="5"] { grid-column-end: span 5; }
.wptcd-columns__column[data-span-desktop="6"] { grid-column-end: span 6; }
.wptcd-columns__column[data-span-desktop="7"] { grid-column-end: span 7; }
.wptcd-columns__column[data-span-desktop="8"] { grid-column-end: span 8; }
.wptcd-columns__column[data-span-desktop="9"] { grid-column-end: span 9; }
.wptcd-columns__column[data-span-desktop="10"] { grid-column-end: span 10; }
.wptcd-columns__column[data-span-desktop="11"] { grid-column-end: span 11; }
.wptcd-columns__column[data-span-desktop="12"] { grid-column-end: span 12; }

.wptcd-columns__column > .wptcd-block {
	min-width: 0;
	max-width: 100%;
}

.wptcd-block--image,
.wptcd-image__media,
.wptcd-image__link {
	display: block;
	min-width: 0;
}

.wptcd-image__media {
	overflow: hidden;
	border-radius: var(--wptcd-image-radius, 0);
}

.wptcd-image__img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	border-radius: inherit;
}

.wptcd-image--ratio-1-1 .wptcd-image__media { aspect-ratio: 1 / 1; }
.wptcd-image--ratio-4-3 .wptcd-image__media { aspect-ratio: 4 / 3; }
.wptcd-image--ratio-3-2 .wptcd-image__media { aspect-ratio: 3 / 2; }
.wptcd-image--ratio-16-9 .wptcd-image__media { aspect-ratio: 16 / 9; }
.wptcd-image--ratio-3-4 .wptcd-image__media { aspect-ratio: 3 / 4; }
.wptcd-image--ratio-2-3 .wptcd-image__media { aspect-ratio: 2 / 3; }
.wptcd-image--ratio-9-16 .wptcd-image__media { aspect-ratio: 9 / 16; }

.wptcd-block--image[class*="wptcd-image--ratio-"] .wptcd-image__img {
	height: 100%;
}

.wptcd-image--fit-contain .wptcd-image__img { object-fit: contain; }
.wptcd-image--fit-cover .wptcd-image__img { object-fit: cover; }

@media (max-width: 781px) {
	.wptcd-columns__grid {
		gap: var(--wptcd-columns-gap-tablet, var(--wptcd-columns-gap-desktop, 24px));
	}

	.wptcd-columns__column {
		grid-column-end: span 12;
	}

	.wptcd-columns__column[data-span-tablet="1"] { grid-column-end: span 1; }
	.wptcd-columns__column[data-span-tablet="2"] { grid-column-end: span 2; }
	.wptcd-columns__column[data-span-tablet="3"] { grid-column-end: span 3; }
	.wptcd-columns__column[data-span-tablet="4"] { grid-column-end: span 4; }
	.wptcd-columns__column[data-span-tablet="5"] { grid-column-end: span 5; }
	.wptcd-columns__column[data-span-tablet="6"] { grid-column-end: span 6; }
	.wptcd-columns__column[data-span-tablet="7"] { grid-column-end: span 7; }
	.wptcd-columns__column[data-span-tablet="8"] { grid-column-end: span 8; }
	.wptcd-columns__column[data-span-tablet="9"] { grid-column-end: span 9; }
	.wptcd-columns__column[data-span-tablet="10"] { grid-column-end: span 10; }
	.wptcd-columns__column[data-span-tablet="11"] { grid-column-end: span 11; }
	.wptcd-columns__column[data-span-tablet="12"] { grid-column-end: span 12; }
}

@media (max-width: 599px) {
	.wptcd-columns__grid {
		gap: var(--wptcd-columns-gap-mobile, var(--wptcd-columns-gap-tablet, var(--wptcd-columns-gap-desktop, 24px)));
	}

	.wptcd-columns__column {
		grid-column-end: span 12;
	}

	.wptcd-columns__column[data-span-mobile="1"] { grid-column-end: span 1; }
	.wptcd-columns__column[data-span-mobile="2"] { grid-column-end: span 2; }
	.wptcd-columns__column[data-span-mobile="3"] { grid-column-end: span 3; }
	.wptcd-columns__column[data-span-mobile="4"] { grid-column-end: span 4; }
	.wptcd-columns__column[data-span-mobile="5"] { grid-column-end: span 5; }
	.wptcd-columns__column[data-span-mobile="6"] { grid-column-end: span 6; }
	.wptcd-columns__column[data-span-mobile="7"] { grid-column-end: span 7; }
	.wptcd-columns__column[data-span-mobile="8"] { grid-column-end: span 8; }
	.wptcd-columns__column[data-span-mobile="9"] { grid-column-end: span 9; }
	.wptcd-columns__column[data-span-mobile="10"] { grid-column-end: span 10; }
	.wptcd-columns__column[data-span-mobile="11"] { grid-column-end: span 11; }
	.wptcd-columns__column[data-span-mobile="12"] { grid-column-end: span 12; }
}

.wptcd-block--columns-text {
	display: grid;
	gap: var(--wptcd-columns-gap, 1.5rem);
	grid-template-columns: repeat(
		auto-fit,
		minmax(min(100%, var(--wptcd-columns-min-width, 240px)), 1fr)
	);
	align-items: stretch;
}

.wptcd-columns-text__column {
	min-width: var(--wptcd-col-min-width, 0);
	min-height: var(--wptcd-col-min-height, initial);
	padding:
		var(--wptcd-col-padding-top, 0)
		var(--wptcd-col-padding-right, 0)
		var(--wptcd-col-padding-bottom, 0)
		var(--wptcd-col-padding-left, 0);
	border-style: solid;
	border-color: var(--wptcd-col-border-color, transparent);
	border-width:
		var(--wptcd-col-border-desktop-top, 0)
		var(--wptcd-col-border-desktop-right, 0)
		var(--wptcd-col-border-desktop-bottom, 0)
		var(--wptcd-col-border-desktop-left, 0);
	border-radius: var(--wptcd-col-border-radius, 0);
	background-color: var(--wptcd-col-background-color, transparent);
	background-image: var(--wptcd-col-bg-image, none);
	background-position: center;
	background-size: cover;
	font-family: var(--wptcd-col-font, inherit);
	font-size: var(--wptcd-col-font-size, inherit);
	color: var(--wptcd-col-text-color, inherit);
	overflow-wrap: anywhere;
}

.wptcd-columns-text__body {
	font-family: inherit;
	font-size: inherit;
	color: inherit;
}

.wptcd-columns-text__body > :first-child {
	margin-top: 0;
}

.wptcd-columns-text__body > :last-child {
	margin-bottom: 0;
}

@media (max-width: 781px) {
	.wptcd-columns-text__column {
		padding:
			var(--wptcd-col-padding-tablet-top, var(--wptcd-col-padding-top, 0))
			var(--wptcd-col-padding-tablet-right, var(--wptcd-col-padding-right, 0))
			var(--wptcd-col-padding-tablet-bottom, var(--wptcd-col-padding-bottom, 0))
			var(--wptcd-col-padding-tablet-left, var(--wptcd-col-padding-left, 0));
		border-width:
			var(--wptcd-col-border-tablet-top, var(--wptcd-col-border-desktop-top, 0))
			var(--wptcd-col-border-tablet-right, var(--wptcd-col-border-desktop-right, 0))
			var(--wptcd-col-border-tablet-bottom, var(--wptcd-col-border-desktop-bottom, 0))
			var(--wptcd-col-border-tablet-left, var(--wptcd-col-border-desktop-left, 0));
	}
}

@media (max-width: 599px) {
	.wptcd-columns-text__column {
		padding:
			var(--wptcd-col-padding-mobile-top, var(--wptcd-col-padding-tablet-top, var(--wptcd-col-padding-top, 0)))
			var(--wptcd-col-padding-mobile-right, var(--wptcd-col-padding-tablet-right, var(--wptcd-col-padding-right, 0)))
			var(--wptcd-col-padding-mobile-bottom, var(--wptcd-col-padding-tablet-bottom, var(--wptcd-col-padding-bottom, 0)))
			var(--wptcd-col-padding-mobile-left, var(--wptcd-col-padding-tablet-left, var(--wptcd-col-padding-left, 0)));
		border-width:
			var(--wptcd-col-border-mobile-top, var(--wptcd-col-border-tablet-top, var(--wptcd-col-border-desktop-top, 0)))
			var(--wptcd-col-border-mobile-right, var(--wptcd-col-border-tablet-right, var(--wptcd-col-border-desktop-right, 0)))
			var(--wptcd-col-border-mobile-bottom, var(--wptcd-col-border-tablet-bottom, var(--wptcd-col-border-desktop-bottom, 0)))
			var(--wptcd-col-border-mobile-left, var(--wptcd-col-border-tablet-left, var(--wptcd-col-border-desktop-left, 0)));
	}
}

/* ---------- Tables ---------- */
.wptcd-block--table,
.wptcd-block--nutrition {
	container-name: wptcd-table;
	container-type: inline-size;
}

.wptcd-table__frame {
	max-width: 100%;
	overflow: hidden;
	border: var(--wptcd-table-outer-width, 1px) var(--wptcd-table-outer-style, solid) var(--wptcd-table-outer-line, var(--wptcd-border));
	border-radius: var(--wptcd-table-radius, var(--wptcd-radius));
	background: var(--wptcd-table-row-bg, transparent);
}

.wptcd-table__scroller {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.wptcd-table__el {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	color: var(--wptcd-table-row-text, inherit);
	background: var(--wptcd-table-row-bg, transparent);
}

.wptcd-table__el th,
.wptcd-table__el td {
	padding: var(--wptcd-table-pad-y, 0.6rem) var(--wptcd-table-pad-x, 0.75rem);
	border: 0;
	border-right: var(--wptcd-table-inner-width, 1px) var(--wptcd-table-inner-style, solid) var(--wptcd-table-inner-line, var(--wptcd-border));
	border-bottom: var(--wptcd-table-inner-width, 1px) var(--wptcd-table-inner-style, solid) var(--wptcd-table-inner-line, var(--wptcd-border));
	text-align: left;
	vertical-align: top;
	color: var(--wptcd-table-row-text, inherit);
	background: var(--wptcd-table-row-bg, transparent);
}

.wptcd-table__el tr > :last-child {
	border-right: 0;
}

.wptcd-table__el tbody tr:last-child > * {
	border-bottom: 0;
}

.wptcd-table__el thead th {
	color: var(--wptcd-table-head-text, inherit);
	background: var(--wptcd-table-head-bg, var(--wptcd-bg-muted));
}

.wptcd-table--zebra .wptcd-table__el tbody tr:nth-child(even) > * {
	background: var(--wptcd-table-zebra-bg, var(--wptcd-bg-muted));
}

.wptcd-table--first-col .wptcd-table__el tbody tr > :first-child {
	font-weight: 600;
	color: var(--wptcd-table-label-text, var(--wptcd-table-row-text, inherit));
	background: var(--wptcd-table-label-bg, var(--wptcd-bg-muted));
}

.wptcd-table__label-col {
	width: var(--wptcd-table-label-width, 185px);
}

.wptcd-table--scroll .wptcd-table__el {
	width: max-content;
	min-width: 100%;
}

.wptcd-table--scroll .wptcd-table__el tr > :first-child {
	width: var(--wptcd-table-label-width, 185px);
	min-width: var(--wptcd-table-label-width, 185px);
}

.wptcd-table--scroll .wptcd-table__el tr > :not(:first-child) {
	min-width: var(--wptcd-table-col-min, 180px);
}

.wptcd-table--sticky-first .wptcd-table__el tr > :first-child {
	position: sticky;
	left: 0;
	z-index: 2;
	background: var(--wptcd-table-label-bg, var(--wptcd-bg-muted));
}

.wptcd-table--sticky-first .wptcd-table__el thead tr > :first-child {
	z-index: 3;
	color: var(--wptcd-table-head-text, inherit);
	background: var(--wptcd-table-head-bg, var(--wptcd-bg-muted));
}

.wptcd-table__caption {
	caption-side: top;
	text-align: left;
	margin-bottom: 0.4rem;
	color: var(--wptcd-table-caption-color, inherit);
}

.wptcd-table__caption-content {
	display: block;
	margin: 0;
	color: inherit;
}

.wptcd-table__caption-content--body {
	font: inherit;
	font-weight: 600;
}

.wptcd-table__footnote {
	font-size: 0.85em;
	color: var(--wptcd-table-footnote-color, #64748b);
	margin-top: 0.4rem;
}

.wptcd-table__footnote > :first-child {
	margin-top: 0;
}

.wptcd-table__footnote > :last-child {
	margin-bottom: 0;
}

/* Fine-grained table borders replace the simple frame/inner-line contract
 * only when explicitly enabled in the design settings. */
.wptcd-table--custom-lines .wptcd-table__frame {
	border: 0;
}

.wptcd-table--custom-lines .wptcd-table__el thead th {
	border: 0;
	border-top: var(--wptcd-table-head-line-top-width, 1px) var(--wptcd-table-head-line-style, solid) var(--wptcd-table-head-line-color, var(--wptcd-border));
	border-bottom: var(--wptcd-table-head-line-bottom-width, 1px) var(--wptcd-table-head-line-style, solid) var(--wptcd-table-head-line-color, var(--wptcd-border));
}

.wptcd-table--custom-lines .wptcd-table__el thead tr > :first-child {
	border-left: var(--wptcd-table-head-line-left-width, 1px) var(--wptcd-table-head-line-style, solid) var(--wptcd-table-head-line-color, var(--wptcd-border));
}

.wptcd-table--custom-lines .wptcd-table__el thead tr > :last-child {
	border-right: var(--wptcd-table-head-line-right-width, 1px) var(--wptcd-table-head-line-style, solid) var(--wptcd-table-head-line-color, var(--wptcd-border));
}

.wptcd-table--custom-lines .wptcd-table__el tbody > tr > * {
	border: 0;
	border-right: var(--wptcd-table-body-inner-line-width, 1px) var(--wptcd-table-body-inner-line-style, solid) var(--wptcd-table-body-inner-line-color, var(--wptcd-border));
	border-bottom: var(--wptcd-table-body-inner-line-width, 1px) var(--wptcd-table-body-inner-line-style, solid) var(--wptcd-table-body-inner-line-color, var(--wptcd-border));
}

.wptcd-table--custom-lines .wptcd-table__el tbody > tr:first-child > * {
	border-top: var(--wptcd-table-body-line-top-width, 1px) var(--wptcd-table-body-line-style, solid) var(--wptcd-table-body-line-color, var(--wptcd-border));
}

.wptcd-table--custom-lines .wptcd-table__el tbody > tr > :first-child {
	border-left: var(--wptcd-table-body-line-left-width, 1px) var(--wptcd-table-body-line-style, solid) var(--wptcd-table-body-line-color, var(--wptcd-border));
}

.wptcd-table--custom-lines .wptcd-table__el tbody > tr > :last-child {
	border-right: var(--wptcd-table-body-line-right-width, 1px) var(--wptcd-table-body-line-style, solid) var(--wptcd-table-body-line-color, var(--wptcd-border));
}

.wptcd-table--custom-lines .wptcd-table__el tbody > tr:last-child > * {
	border-bottom: var(--wptcd-table-body-line-bottom-width, 1px) var(--wptcd-table-body-line-style, solid) var(--wptcd-table-body-line-color, var(--wptcd-border));
}

/* Compact mode keeps the table intact but reduces its visual footprint. */
.wptcd-table--compact .wptcd-table__el th,
.wptcd-table--compact .wptcd-table__el td {
	padding: var(--wptcd-table-pad-y, 0.4rem) var(--wptcd-table-pad-x, 0.55rem);
	font-size: 0.94em;
}

/* Per-cell typography is intentionally independent of the shared table
 * design controls so individual nutrition entries can be nested or stressed. */
.wptcd-table__cell--bold {
	font-weight: 700;
}

.wptcd-table__cell--italic {
	font-style: italic;
}

.wptcd-table__cell--underline {
	text-decoration: underline;
}

.wptcd-table__cell--indent {
	padding-inline-start: calc(var(--wptcd-table-pad-x, 0.75rem) + 1.25rem) !important;
}

/* Cards + stack react to the real block/container width, not only viewport width. */
@container wptcd-table (max-width: 781px) {
	.wptcd-table--cards .wptcd-table__el,
	.wptcd-table--cards thead,
	.wptcd-table--cards tbody,
	.wptcd-table--cards tr,
	.wptcd-table--cards th,
	.wptcd-table--cards td,
	.wptcd-table--stack .wptcd-table__el,
	.wptcd-table--stack thead,
	.wptcd-table--stack tbody,
	.wptcd-table--stack tr,
	.wptcd-table--stack th,
	.wptcd-table--stack td {
		display: block;
		width: 100%;
	}

	.wptcd-table--cards .wptcd-table__frame,
	.wptcd-table--stack .wptcd-table__frame {
		overflow: visible;
		border: 0;
		border-radius: 0;
		background: transparent;
	}

	.wptcd-table--cards .wptcd-table__scroller,
	.wptcd-table--stack .wptcd-table__scroller {
		overflow: visible;
	}

	.wptcd-table--cards thead,
	.wptcd-table--stack thead {
		display: none;
	}

	.wptcd-table--cards tbody tr,
	.wptcd-table--stack tbody tr {
		overflow: hidden;
		border: var(--wptcd-table-outer-width, 1px) var(--wptcd-table-outer-style, solid) var(--wptcd-table-outer-line, var(--wptcd-border));
		border-radius: var(--wptcd-table-radius, var(--wptcd-radius));
		margin-bottom: 0.75rem;
		background: var(--wptcd-table-row-bg, transparent);
	}

	.wptcd-table--zebra.wptcd-table--cards tbody tr:nth-child(even),
	.wptcd-table--zebra.wptcd-table--stack tbody tr:nth-child(even) {
		background: var(--wptcd-table-zebra-bg, var(--wptcd-bg-muted));
	}

	.wptcd-table--cards td,
	.wptcd-table--stack td,
	.wptcd-table--cards tbody th,
	.wptcd-table--stack tbody th {
		position: static;
		border: 0;
		border-bottom: var(--wptcd-table-inner-width, 1px) var(--wptcd-table-inner-style, solid) var(--wptcd-table-inner-line, var(--wptcd-border));
		background: transparent;
	}

	.wptcd-table--cards tbody tr > :last-child,
	.wptcd-table--stack tbody tr > :last-child {
		border-bottom: 0;
	}

	.wptcd-table--cards td,
	.wptcd-table--stack td {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
	}

	.wptcd-table--cards td::before,
	.wptcd-table--stack td::before {
		content: attr(data-label);
		font-weight: 600;
		color: var(--wptcd-table-head-text, #475569);
		background: var(--wptcd-table-head-bg, transparent);
		border-radius: 4px;
		padding: 0.08em 0.35em;
	}

	.wptcd-table--cards td[data-label=""]::before,
	.wptcd-table--stack td[data-label=""]::before {
		display: none;
	}

	.wptcd-table--cards tbody th,
	.wptcd-table--stack tbody th {
		font-weight: 700;
		color: var(--wptcd-table-label-text, var(--wptcd-table-row-text, inherit));
		background: var(--wptcd-table-label-bg, var(--wptcd-bg-muted));
	}

	.wptcd-table--sticky-first.wptcd-table--cards .wptcd-table__el tbody tr > :first-child,
	.wptcd-table--sticky-first.wptcd-table--stack .wptcd-table__el tbody tr > :first-child {
		position: static;
		left: auto;
		z-index: auto;
	}
}

/* Content-aware fallback: tabs.js adds this class when configured column
 * minimums exceed the actual container, even above the regular breakpoint. */
.wptcd-table--narrow.wptcd-table--cards .wptcd-table__el,
.wptcd-table--narrow.wptcd-table--cards thead,
.wptcd-table--narrow.wptcd-table--cards tbody,
.wptcd-table--narrow.wptcd-table--cards tr,
.wptcd-table--narrow.wptcd-table--cards th,
.wptcd-table--narrow.wptcd-table--cards td,
.wptcd-table--narrow.wptcd-table--stack .wptcd-table__el,
.wptcd-table--narrow.wptcd-table--stack thead,
.wptcd-table--narrow.wptcd-table--stack tbody,
.wptcd-table--narrow.wptcd-table--stack tr,
.wptcd-table--narrow.wptcd-table--stack th,
.wptcd-table--narrow.wptcd-table--stack td {
	display: block;
	width: 100%;
}

.wptcd-table--narrow.wptcd-table--cards .wptcd-table__frame,
.wptcd-table--narrow.wptcd-table--stack .wptcd-table__frame {
	overflow: visible;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.wptcd-table--narrow.wptcd-table--cards .wptcd-table__scroller,
.wptcd-table--narrow.wptcd-table--stack .wptcd-table__scroller {
	overflow: visible;
}

.wptcd-table--narrow.wptcd-table--cards thead,
.wptcd-table--narrow.wptcd-table--stack thead {
	display: none;
}

.wptcd-table--narrow.wptcd-table--cards tbody tr,
.wptcd-table--narrow.wptcd-table--stack tbody tr {
	overflow: hidden;
	border: var(--wptcd-table-outer-width, 1px) var(--wptcd-table-outer-style, solid) var(--wptcd-table-outer-line, var(--wptcd-border));
	border-radius: var(--wptcd-table-radius, var(--wptcd-radius));
	margin-bottom: 0.75rem;
	background: var(--wptcd-table-row-bg, transparent);
}

.wptcd-table--narrow.wptcd-table--zebra.wptcd-table--cards tbody tr:nth-child(even),
.wptcd-table--narrow.wptcd-table--zebra.wptcd-table--stack tbody tr:nth-child(even) {
	background: var(--wptcd-table-zebra-bg, var(--wptcd-bg-muted));
}

.wptcd-table--narrow.wptcd-table--cards td,
.wptcd-table--narrow.wptcd-table--stack td,
.wptcd-table--narrow.wptcd-table--cards tbody th,
.wptcd-table--narrow.wptcd-table--stack tbody th {
	position: static;
	border: 0;
	border-bottom: var(--wptcd-table-inner-width, 1px) var(--wptcd-table-inner-style, solid) var(--wptcd-table-inner-line, var(--wptcd-border));
	background: transparent;
}

.wptcd-table--narrow.wptcd-table--cards tbody tr > :last-child,
.wptcd-table--narrow.wptcd-table--stack tbody tr > :last-child {
	border-bottom: 0;
}

.wptcd-table--narrow.wptcd-table--cards td,
.wptcd-table--narrow.wptcd-table--stack td {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.wptcd-table--narrow.wptcd-table--cards td::before,
.wptcd-table--narrow.wptcd-table--stack td::before {
	content: attr(data-label);
	font-weight: 600;
	color: var(--wptcd-table-head-text, #475569);
	background: var(--wptcd-table-head-bg, transparent);
	border-radius: 4px;
	padding: 0.08em 0.35em;
}

.wptcd-table--narrow.wptcd-table--cards td[data-label=""]::before,
.wptcd-table--narrow.wptcd-table--stack td[data-label=""]::before {
	display: none;
}

.wptcd-table--narrow.wptcd-table--cards tbody th,
.wptcd-table--narrow.wptcd-table--stack tbody th {
	font-weight: 700;
	color: var(--wptcd-table-label-text, var(--wptcd-table-row-text, inherit));
	background: var(--wptcd-table-label-bg, var(--wptcd-bg-muted));
}

.wptcd-table--narrow.wptcd-table--sticky-first.wptcd-table--cards .wptcd-table__el tbody tr > :first-child,
.wptcd-table--narrow.wptcd-table--sticky-first.wptcd-table--stack .wptcd-table__el tbody tr > :first-child {
	position: static;
	left: auto;
	z-index: auto;
}

/* In card/stack views each body row becomes its own body frame. */
.wptcd-table--custom-lines.wptcd-table--cards tbody tr,
.wptcd-table--custom-lines.wptcd-table--stack tbody tr,
.wptcd-table--custom-lines.wptcd-table--narrow.wptcd-table--cards tbody tr,
.wptcd-table--custom-lines.wptcd-table--narrow.wptcd-table--stack tbody tr {
	border-style: var(--wptcd-table-body-line-style, solid);
	border-color: var(--wptcd-table-body-line-color, var(--wptcd-border));
	border-width:
		var(--wptcd-table-body-line-top-width, 1px)
		var(--wptcd-table-body-line-right-width, 1px)
		var(--wptcd-table-body-line-bottom-width, 1px)
		var(--wptcd-table-body-line-left-width, 1px);
}

/* ---------- Notices ---------- */
.wptcd-block--notice {
	border: 1px solid var(--wptcd-border);
	border-left-width: 4px;
	border-radius: var(--wptcd-radius);
	padding:
		var(--wptcd-design-padding-top, 0.85rem)
		var(--wptcd-design-padding-right, 1rem)
		var(--wptcd-design-padding-bottom, 0.85rem)
		var(--wptcd-design-padding-left, 1rem);
	background: var(--wptcd-design-background-color, var(--wptcd-bg-muted));
}

.wptcd-notice__title {
	margin: 0 0 0.35rem;
	font-weight: 700;
}

.wptcd-notice--warning { border-left-color: #d97706; }
.wptcd-notice--tip { border-left-color: #16a34a; }
.wptcd-notice--legal,
.wptcd-notice--allergen { border-left-color: #dc2626; }
.wptcd-notice--info { border-left-color: var(--wptcd-accent); }

/* ---------- Buttons (shared) ---------- */
.wptcd-button {
	display: inline-block;
	background: var(--wptcd-button-bg, var(--wptcd-accent));
	color: var(--wptcd-button-color, #fff);
	text-decoration: none;
	padding: var(--wptcd-button-pad-y, 0.6rem) var(--wptcd-button-pad-x, 1.2rem);
	border: 2px solid var(--wptcd-button-border, transparent);
	border-radius: var(--wptcd-button-radius, var(--wptcd-radius));
	font-family: var(--wptcd-button-font, inherit);
	font-size: var(--wptcd-button-size, inherit);
	font-weight: 600;
	line-height: 1.2;
}

.wptcd-button:hover,
.wptcd-button:focus {
	background: var(--wptcd-button-hover-bg, var(--wptcd-button-bg, var(--wptcd-accent)));
	border-color: var(--wptcd-button-hover-border, var(--wptcd-button-hover-bg, var(--wptcd-button-border, transparent)));
	filter: brightness(0.95);
	color: var(--wptcd-button-hover-color, var(--wptcd-button-color, #fff));
}

.wptcd-button--ghost {
	background: var(--wptcd-button-secondary-bg, transparent);
	border: 2px solid var(--wptcd-button-secondary-border, var(--wptcd-button-border, currentColor));
	border-radius: var(--wptcd-button-secondary-radius, var(--wptcd-button-radius, var(--wptcd-radius)));
	color: var(--wptcd-button-secondary-color, var(--wptcd-button-color, var(--wptcd-accent)));
	font-family: var(--wptcd-button-secondary-font, var(--wptcd-button-font, inherit));
	font-size: var(--wptcd-button-secondary-size, var(--wptcd-button-size, inherit));
	padding: var(--wptcd-button-secondary-pad-y, var(--wptcd-button-pad-y, 0.6rem)) var(--wptcd-button-secondary-pad-x, var(--wptcd-button-pad-x, 1.2rem));
}

.wptcd-button--ghost:hover,
.wptcd-button--ghost:focus {
	background: var(--wptcd-button-secondary-hover-bg, var(--wptcd-button-hover-bg, var(--wptcd-button-secondary-bg, transparent)));
	border-color: var(--wptcd-button-secondary-hover-border, var(--wptcd-button-secondary-hover-bg, var(--wptcd-button-secondary-border, var(--wptcd-button-hover-border, currentColor))));
	color: var(--wptcd-button-secondary-hover-color, var(--wptcd-button-hover-color, var(--wptcd-button-secondary-color, var(--wptcd-button-color, var(--wptcd-accent)))));
}

/* Custom-coloured buttons: colours/radius come from inline styles; sizes from CSS. */
.wptcd-button--custom {
	border-color: var(--wptcd-button-border, transparent);
}

.wptcd-button--custom.wptcd-button--ghost {
	background: var(--wptcd-button-secondary-bg, transparent);
	border-color: var(--wptcd-button-secondary-border, var(--wptcd-button-border, currentColor));
}

.wptcd-button--s {
	padding: 0.4rem 0.85rem;
	font-size: 0.85rem;
}

.wptcd-button--m {
	padding: 0.6rem 1.2rem;
	font-size: 1rem;
}

.wptcd-button--l {
	padding: 0.85rem 1.6rem;
	font-size: 1.15rem;
}

/* ---------- Image + Text ---------- */
.wptcd-block--image-text {
	display: grid;
	gap: var(--wptcd-gap);
	align-items: var(--wptcd-it-valign, center);
}

.wptcd-image-text__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--wptcd-it-img-radius, var(--wptcd-radius));
	border: var(--wptcd-it-img-border-width, 0) solid var(--wptcd-it-img-border-color, transparent);
	box-shadow: var(--wptcd-it-img-shadow, none);
}

/* Constrain the image via max width/height while preserving its aspect ratio:
   width/height auto means neither dimension is forced, so both maxes only ever
   scale the image down proportionally (no distortion). */
.wptcd-image-text--img-constrained .wptcd-image-text__img {
	width: auto;
	height: auto;
	max-width: var(--wptcd-it-img-max-width, 100%);
	max-height: var(--wptcd-it-img-max-height, none);
}

.wptcd-image-text__lightbox {
	display: block;
	cursor: zoom-in;
}

.wptcd-image-text__content {
	border: var(--wptcd-it-text-border-width, 0) solid var(--wptcd-it-text-border-color, transparent);
}

.wptcd-image-text--text-bordered .wptcd-image-text__content {
	padding: 1rem 1.25rem;
	border-radius: var(--wptcd-radius);
}

@media (min-width: 600px) {
	.wptcd-block--image-text {
		grid-template-columns: 1fr 1fr;
		/* Custom image/text gap only applies side-by-side, not when stacked. */
		gap: var(--wptcd-it-gap, var(--wptcd-gap));
	}

	.wptcd-image-text--right .wptcd-image-text__media {
		order: 2;
	}
}

/* Optionally hide the image on phones (image stacks above text otherwise). */
@media (max-width: 599px) {
	.wptcd-image-text--hide-img-mobile .wptcd-image-text__media {
		display: none;
	}
}

/* ---------- Hero / fullwidth image overlay ---------- */
.wptcd-block--hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: var(--wptcd-hero-mh, 320px);
	overflow: hidden;
	border-radius: var(--wptcd-radius);
}

/* On phones, use the dedicated mobile min-height, else inherit the desktop one. */
@media (max-width: 599px) {
	.wptcd-block--hero {
		min-height: var(--wptcd-hero-mh-m, var(--wptcd-hero-mh, 320px));
	}
}

.wptcd-block--hero.alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	border-radius: 0;
}

.wptcd-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.wptcd-hero__picture,
.wptcd-hero__media .wptcd-hero__img {
	width: 100%;
	height: 100%;
	display: block;
}

.wptcd-hero__img {
	object-fit: cover;
	object-position: var(--wptcd-hero-focus-x, 50%) center;
}

@media (max-width: 899px) {
	.wptcd-hero__img {
		object-position: var(--wptcd-hero-focus-x-tablet, var(--wptcd-hero-focus-x, 50%)) center;
	}
}

@media (max-width: 599px) {
	.wptcd-hero__img {
		object-position: var(--wptcd-hero-focus-x-mobile, var(--wptcd-hero-focus-x-tablet, var(--wptcd-hero-focus-x, 50%))) center;
	}
}

.wptcd-hero--fit-contain .wptcd-hero__img {
	object-fit: contain;
}

.wptcd-hero__overlay {
	position: absolute;
	inset: 0;
	background: #000;
	z-index: 1;
}

.wptcd-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding:
		var(--wptcd-hero-pt, 2.5rem)
		var(--wptcd-hero-pr, 1.5rem)
		var(--wptcd-hero-pb, 2.5rem)
		var(--wptcd-hero-pl, 1.5rem);
}

@media (max-width: 899px) {
	.wptcd-hero__inner {
		padding:
			var(--wptcd-hero-tablet-pt, var(--wptcd-hero-pt, 2.5rem))
			var(--wptcd-hero-tablet-pr, var(--wptcd-hero-pr, 1.5rem))
			var(--wptcd-hero-tablet-pb, var(--wptcd-hero-pb, 2.5rem))
			var(--wptcd-hero-tablet-pl, var(--wptcd-hero-pl, 1.5rem));
	}
}

@media (max-width: 599px) {
	.wptcd-hero__inner {
		padding:
			var(--wptcd-hero-mobile-pt, var(--wptcd-hero-tablet-pt, var(--wptcd-hero-pt, 2.5rem)))
			var(--wptcd-hero-mobile-pr, var(--wptcd-hero-tablet-pr, var(--wptcd-hero-pr, 1.5rem)))
			var(--wptcd-hero-mobile-pb, var(--wptcd-hero-tablet-pb, var(--wptcd-hero-pb, 2.5rem)))
			var(--wptcd-hero-mobile-pl, var(--wptcd-hero-tablet-pl, var(--wptcd-hero-pl, 1.5rem)));
	}
}

.wptcd-hero__content {
	max-width: 640px;
}

.wptcd-hero--align-center .wptcd-hero__content {
	margin: 0 auto;
	text-align: center;
}

.wptcd-hero--align-right .wptcd-hero__content {
	margin-left: auto;
	text-align: right;
}

.wptcd-hero--light .wptcd-hero__content {
	color: #fff;
}

.wptcd-hero--dark .wptcd-hero__content {
	color: var(--wptcd-text);
}

.wptcd-hero__actions {
	margin-top: var(--wptcd-hero-actions-gap, 1.25rem);
	display: flex;
	gap: 0.6rem;
	flex-wrap: wrap;
}

/* Hero button overrides (apply to plugin/custom buttons; theme buttons keep
   their own theme styles). Padding/size only kick in when configured. */
.wptcd-block--hero .wptcd-hero__actions .wptcd-button {
	font-size: var(--wptcd-hero-btn-size, var(--wptcd-button-size, inherit));
}

.wptcd-block--hero .wptcd-hero__actions .wptcd-button--ghost {
	font-size: var(--wptcd-hero-btn-size, var(--wptcd-button-secondary-size, var(--wptcd-button-size, inherit)));
}

.wptcd-block--hero[style*="--wptcd-hero-btn-py"] .wptcd-hero__actions .wptcd-button,
.wptcd-block--hero[style*="--wptcd-hero-btn-px"] .wptcd-hero__actions .wptcd-button {
	padding: var(--wptcd-hero-btn-py, var(--wptcd-button-pad-y, 0.6rem)) var(--wptcd-hero-btn-px, var(--wptcd-button-pad-x, 1.2rem));
}

.wptcd-block--hero[style*="--wptcd-hero-btn-py"] .wptcd-hero__actions .wptcd-button--ghost,
.wptcd-block--hero[style*="--wptcd-hero-btn-px"] .wptcd-hero__actions .wptcd-button--ghost {
	padding: var(--wptcd-hero-btn-py, var(--wptcd-button-secondary-pad-y, var(--wptcd-button-pad-y, 0.6rem))) var(--wptcd-hero-btn-px, var(--wptcd-button-secondary-pad-x, var(--wptcd-button-pad-x, 1.2rem)));
}

.wptcd-block--hero[style*="--wptcd-hero-btn-hover-bg"] .wptcd-hero__actions .wptcd-button:hover,
.wptcd-block--hero[style*="--wptcd-hero-btn-hover-bg"] .wptcd-hero__actions .wptcd-button:focus {
	background: var(--wptcd-hero-btn-hover-bg);
	filter: none;
}

.wptcd-block--hero[style*="--wptcd-hero-btn-hover-border"] .wptcd-hero__actions .wptcd-button:hover,
.wptcd-block--hero[style*="--wptcd-hero-btn-hover-border"] .wptcd-hero__actions .wptcd-button:focus {
	border-color: var(--wptcd-hero-btn-hover-border);
}

.wptcd-block--hero[style*="--wptcd-hero-btn-hover-color"] .wptcd-hero__actions .wptcd-button:hover,
.wptcd-block--hero[style*="--wptcd-hero-btn-hover-color"] .wptcd-hero__actions .wptcd-button:focus {
	color: var(--wptcd-hero-btn-hover-color);
}

.wptcd-hero--align-center .wptcd-hero__actions {
	justify-content: center;
}

.wptcd-hero--align-right .wptcd-hero__actions {
	justify-content: flex-end;
}

/* ---------- Accessory / cross-sell ---------- */
.wptcd-block--accessory {
	display: grid;
	gap: var(--wptcd-gap);
	grid-template-columns: 1fr;
}

@media (min-width: 600px) {
	.wptcd-accessory--cols-2 { grid-template-columns: repeat(2, 1fr); }
	.wptcd-accessory--cols-3 { grid-template-columns: repeat(3, 1fr); }
	.wptcd-accessory--cols-4 { grid-template-columns: repeat(4, 1fr); }
}

.wptcd-accessory__card {
	border: 1px solid var(--wptcd-border);
	border-radius: var(--wptcd-radius);
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
}

.wptcd-accessory__img {
	width: 100%;
	height: auto;
	display: block;
}

.wptcd-accessory__body {
	padding: 0.85rem 1rem;
}

.wptcd-accessory__title {
	margin: 0 0 0.4rem;
}

/* ---------- Download ---------- */
.wptcd-block--download .wptcd-download__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wptcd-download__item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--wptcd-border);
	border-radius: var(--wptcd-radius);
	margin-bottom: 0.5rem;
}

.wptcd-download__meta {
	color: #64748b;
	font-size: 0.85em;
}

/* ---------- Nutrition ---------- */
.wptcd-block--nutrition .wptcd-table__frame {
	margin-bottom: 1rem;
}

.wptcd-nutrition__section {
	margin-top: 0.75rem;
}

.wptcd-nutrition__label {
	margin: 0 0 0.25rem;
}

.wptcd-nutrition__allergens {
	margin-top: 0.5rem;
}

/* ---------- FAQ ---------- */
.wptcd-block--faq {
	display: flex;
	flex-direction: column;
	gap: var(--wptcd-faq-gap, 0.5rem);
}

.wptcd-block--faq .wptcd-faq__item {
	border: var(--wptcd-faq-border-width, 1px) solid var(--wptcd-faq-border, var(--wptcd-border));
	border-width:
		var(--wptcd-faq-border-width-top, var(--wptcd-faq-border-width, 1px))
		var(--wptcd-faq-border-width-right, var(--wptcd-faq-border-width, 1px))
		var(--wptcd-faq-border-width-bottom, var(--wptcd-faq-border-width, 1px))
		var(--wptcd-faq-border-width-left, var(--wptcd-faq-border-width, 1px));
	border-radius: var(--wptcd-faq-radius, var(--wptcd-radius));
	background: var(--wptcd-faq-bg, transparent);
	cursor: pointer;
	padding: 0 1rem;
	transition: background-color 0.18s ease, border-color 0.18s ease;
}

.wptcd-faq__question {
	cursor: pointer;
	padding: 0.85rem 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	list-style: none;
}

/* Hide the native disclosure marker in favour of the dashicon. */
.wptcd-faq__question::-webkit-details-marker {
	display: none;
}

.wptcd-faq__text {
	flex: 1;
	margin: 0;
	font-family: var(--wptcd-faq-q-font, var(--wptcd-faq-q-type-font, inherit));
	font-size: var(--wptcd-faq-q-size, var(--wptcd-faq-q-type-size, inherit));
	font-weight: var(--wptcd-faq-q-weight, 600);
	color: var(--wptcd-faq-q-color, var(--wptcd-faq-q-type-color, inherit));
}

.wptcd-faq__text--body {
	--wptcd-faq-q-type-font: var(--wptcd-design-body-font, inherit);
	--wptcd-faq-q-type-size: var(--wptcd-design-body-size, inherit);
	--wptcd-faq-q-type-color: var(--wptcd-design-body-color, inherit);
}

.wptcd-faq__text--h1 {
	--wptcd-faq-q-type-font: var(--wptcd-design-h1-font, inherit);
	--wptcd-faq-q-type-size: var(--wptcd-design-h1-size, inherit);
	--wptcd-faq-q-type-color: var(--wptcd-design-h1-color, inherit);
}

.wptcd-faq__text--h2 {
	--wptcd-faq-q-type-font: var(--wptcd-design-h2-font, inherit);
	--wptcd-faq-q-type-size: var(--wptcd-design-h2-size, inherit);
	--wptcd-faq-q-type-color: var(--wptcd-design-h2-color, inherit);
}

.wptcd-faq__text--h3 {
	--wptcd-faq-q-type-font: var(--wptcd-design-h3-font, inherit);
	--wptcd-faq-q-type-size: var(--wptcd-design-h3-size, inherit);
	--wptcd-faq-q-type-color: var(--wptcd-design-h3-color, inherit);
}

.wptcd-faq__text--h4 {
	--wptcd-faq-q-type-font: var(--wptcd-design-h4-font, inherit);
	--wptcd-faq-q-type-size: var(--wptcd-design-h4-size, inherit);
	--wptcd-faq-q-type-color: var(--wptcd-design-h4-color, inherit);
}

.wptcd-faq__text--h5 {
	--wptcd-faq-q-type-font: var(--wptcd-design-h5-font, inherit);
	--wptcd-faq-q-type-size: var(--wptcd-design-h5-size, inherit);
	--wptcd-faq-q-type-color: var(--wptcd-design-h5-color, inherit);
}

.wptcd-faq__text--h6 {
	--wptcd-faq-q-type-font: var(--wptcd-design-h6-font, inherit);
	--wptcd-faq-q-type-size: var(--wptcd-design-h6-size, inherit);
	--wptcd-faq-q-type-color: var(--wptcd-design-h6-color, inherit);
}

.wptcd-faq__icon {
	display: inline-block;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	font-family: dashicons;
	font-size: 20px;
	line-height: 1;
	color: var(--wptcd-faq-icon-color, currentColor);
	transition: transform 0.2s ease;
}

/* Toggle collapsed/expanded icon based on the <details> open state. */
.wptcd-faq__icon--expanded,
.wptcd-faq__item[open] .wptcd-faq__icon--collapsed {
	display: none;
}

.wptcd-faq__item[open] .wptcd-faq__icon--expanded {
	display: inline-block;
}

.wptcd-faq__answer {
	padding-bottom: 0.85rem;
}

/* Keep closed items at their regular height. Once an answer is visible, its
   top padding becomes the exact visual distance to the question text. */
.wptcd-faq__item[open] .wptcd-faq__question {
	padding-bottom: 0;
}

.wptcd-faq__item[open] .wptcd-faq__answer {
	padding-top: var(--wptcd-faq-question-answer-gap, 0.85rem);
}

/* Optional open/close animation (opt-in via the block setting). The smooth
   height/opacity transition is driven by faq.js (Web Animations API); this only
   prepares the answer so the animated height does not leak overflowing content.
   Without JS the block still works as a native <details> (instant toggle). */
.wptcd-faq--animated .wptcd-faq__answer {
	overflow: hidden;
}

.wptcd-faq--animated .wptcd-faq__icon {
	transition: transform 0.2s ease, opacity 0.2s ease;
}

/* Cards variant: separated containers with spacing and a subtle shadow. */
.wptcd-faq--cards {
	gap: var(--wptcd-faq-gap, 0.75rem);
}

.wptcd-faq--cards .wptcd-faq__item {
	background: var(--wptcd-faq-bg, #fff);
	border-radius: var(--wptcd-faq-radius, 10px);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	overflow: hidden;
	padding: 0;
}

.wptcd-faq--cards .wptcd-faq__question {
	padding: 1rem;
}

.wptcd-faq--cards .wptcd-faq__answer {
	padding: 0 1rem 1rem;
}

.wptcd-faq--cards .wptcd-faq__item[open] .wptcd-faq__question {
	padding-bottom: 0;
}

.wptcd-faq--cards .wptcd-faq__item[open] .wptcd-faq__answer {
	padding-top: var(--wptcd-faq-question-answer-gap, 1rem);
}

/* Optional inner spacing. Per-side border widths are applied directly on the
   item so every explicit side value, including 0, overrides the base border. */
.wptcd-faq--custom-padding .wptcd-faq__item,
.wptcd-faq--cards.wptcd-faq--custom-padding .wptcd-faq__item {
	padding:
		var(--wptcd-faq-padding-top, 0)
		var(--wptcd-faq-padding-right, 0)
		var(--wptcd-faq-padding-bottom, 0)
		var(--wptcd-faq-padding-left, 0);
}

.wptcd-faq--custom-padding .wptcd-faq__question,
.wptcd-faq--custom-padding .wptcd-faq__answer,
.wptcd-faq--cards.wptcd-faq--custom-padding .wptcd-faq__question,
.wptcd-faq--cards.wptcd-faq--custom-padding .wptcd-faq__answer {
	padding: 0;
}

.wptcd-faq--custom-padding .wptcd-faq__item[open] .wptcd-faq__answer,
.wptcd-faq--cards.wptcd-faq--custom-padding .wptcd-faq__item[open] .wptcd-faq__answer {
	padding-top: var(--wptcd-faq-question-answer-gap, 0);
}

.wptcd-block--faq .wptcd-faq__item:hover {
	border-color: var(--wptcd-faq-hover-border, var(--wptcd-faq-border, var(--wptcd-border)));
	background-color: var(--wptcd-faq-hover-bg, var(--wptcd-faq-bg, transparent));
}

.wptcd-faq--cards .wptcd-faq__item:hover {
	background-color: var(--wptcd-faq-hover-bg, var(--wptcd-faq-bg, #fff));
}

.wptcd-faq--always-open .wptcd-faq__question {
	cursor: default;
	padding-bottom: 0;
}

.wptcd-faq--always-open .wptcd-faq__answer {
	padding-top: var(--wptcd-faq-question-answer-gap, 0.85rem);
}

.wptcd-faq--cards.wptcd-faq--always-open .wptcd-faq__answer {
	padding-top: var(--wptcd-faq-question-answer-gap, 1rem);
}

.wptcd-faq--always-open.wptcd-faq--custom-padding .wptcd-faq__answer {
	padding-top: var(--wptcd-faq-question-answer-gap, 0);
}

.wptcd-faq--always-open .wptcd-faq__item {
	cursor: default;
}

@media (max-width: 781px) {
	.wptcd-block--faq .wptcd-faq__item {
		border-width:
			var(--wptcd-faq-border-width-tablet-top, var(--wptcd-faq-border-width-top, var(--wptcd-faq-border-width, 1px)))
			var(--wptcd-faq-border-width-tablet-right, var(--wptcd-faq-border-width-right, var(--wptcd-faq-border-width, 1px)))
			var(--wptcd-faq-border-width-tablet-bottom, var(--wptcd-faq-border-width-bottom, var(--wptcd-faq-border-width, 1px)))
			var(--wptcd-faq-border-width-tablet-left, var(--wptcd-faq-border-width-left, var(--wptcd-faq-border-width, 1px)));
	}

	.wptcd-faq--custom-padding .wptcd-faq__item,
	.wptcd-faq--cards.wptcd-faq--custom-padding .wptcd-faq__item {
		padding:
			var(--wptcd-faq-padding-tablet-top, var(--wptcd-faq-padding-top, 0))
			var(--wptcd-faq-padding-tablet-right, var(--wptcd-faq-padding-right, 0))
			var(--wptcd-faq-padding-tablet-bottom, var(--wptcd-faq-padding-bottom, 0))
			var(--wptcd-faq-padding-tablet-left, var(--wptcd-faq-padding-left, 0));
	}
}

@media (max-width: 599px) {
	.wptcd-block--faq .wptcd-faq__item {
		border-width:
			var(--wptcd-faq-border-width-mobile-top, var(--wptcd-faq-border-width-tablet-top, var(--wptcd-faq-border-width-top, var(--wptcd-faq-border-width, 1px))))
			var(--wptcd-faq-border-width-mobile-right, var(--wptcd-faq-border-width-tablet-right, var(--wptcd-faq-border-width-right, var(--wptcd-faq-border-width, 1px))))
			var(--wptcd-faq-border-width-mobile-bottom, var(--wptcd-faq-border-width-tablet-bottom, var(--wptcd-faq-border-width-bottom, var(--wptcd-faq-border-width, 1px))))
			var(--wptcd-faq-border-width-mobile-left, var(--wptcd-faq-border-width-tablet-left, var(--wptcd-faq-border-width-left, var(--wptcd-faq-border-width, 1px))));
	}

	.wptcd-faq--custom-padding .wptcd-faq__item,
	.wptcd-faq--cards.wptcd-faq--custom-padding .wptcd-faq__item {
		padding:
			var(--wptcd-faq-padding-mobile-top, var(--wptcd-faq-padding-tablet-top, var(--wptcd-faq-padding-top, 0)))
			var(--wptcd-faq-padding-mobile-right, var(--wptcd-faq-padding-tablet-right, var(--wptcd-faq-padding-right, 0)))
			var(--wptcd-faq-padding-mobile-bottom, var(--wptcd-faq-padding-tablet-bottom, var(--wptcd-faq-padding-bottom, 0)))
			var(--wptcd-faq-padding-mobile-left, var(--wptcd-faq-padding-tablet-left, var(--wptcd-faq-padding-left, 0)));
	}
}

/* Keep the default inter-block rhythm unless a block defines its own top margin. */
.wptcd-block + .wptcd-block {
	margin-top: var(--wptcd-design-margin-top, 1.5rem);
}

/* ---------- Lightbox ---------- */
.wptcd-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	background: rgba(0, 0, 0, 0.85);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.wptcd-lightbox.is-open {
	opacity: 1;
}

.wptcd-lightbox__img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	border-radius: var(--wptcd-radius);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
}

.wptcd-lightbox__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 2.5rem;
	height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.75rem;
	line-height: 1;
	color: #fff;
	background: rgba(0, 0, 0, 0.4);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}

.wptcd-lightbox__close:hover,
.wptcd-lightbox__close:focus {
	background: rgba(0, 0, 0, 0.7);
}
