/**
 * Pro WP Farms 1.5: blog engine (blocks, carousel, TOC, progress, share, author, phone bar).
 * Colors from Divi 5 global colors (--gcid-*) via --pwf-b-* custom properties that Divi
 * presets / Custom CSS can override. Logical properties (RTL/LTR), 8px rhythm, 48px targets.
 */
:root {
	--pwf-b-accent: var(--gcid-primary-color, #2f6b3a);
	--pwf-b-ink: var(--gcid-heading-color, #1d241f);
	--pwf-b-text: var(--gcid-body-color, #3a423c);
	--pwf-b-gold: #c59b27;
	--pwf-b-btn-bg: var(--pwf-b-accent);
	/* Surfaces that carry white text: the Divi primary color is lightened in PWF dark mode, so use a fixed deep emerald there (white 6.4:1). */
	--pwf-b-accent-deep: var(--pwf-b-accent);
	--pwf-b-accent-deep: light-dark(var(--pwf-b-accent), #1d6b52);
	--pwf-b-btn-bg: var(--pwf-b-accent-deep);
	--pwf-b-btn-fg: #fff;
	--pwf-b-shadow: 0 4px 16px rgba(8, 35, 26, .08);
	--pwf-b-shadow-hover: 0 16px 32px rgba(8, 35, 26, .14);
	--pwf-b-soft: color-mix(in srgb, var(--pwf-b-accent) 8%, var(--pwf-b-surface));
	--pwf-b-line: color-mix(in srgb, var(--pwf-b-ink) 12%, transparent);
	--pwf-b-surface: #fff;
	/* Follows the PWF light/dark color mode (color-scheme on :root); #fff fallback above. */
	--pwf-b-surface: light-dark(#fff, #0b261d);
	--pwf-b-radius: 16px;
	--pwf-b-top: calc(var(--pwf-header-h, 80px) + 24px);
}

/* Device visibility (same breakpoints as Divi). */
@media (min-width: 981px) { .pwf-hide-d { display: none !important; } }
@media (min-width: 768px) and (max-width: 980px) { .pwf-hide-t { display: none !important; } }
@media (max-width: 767px) { .pwf-hide-m { display: none !important; } }

.pwf-bb { margin-block: 32px; clear: both; }
.pwf-bb--sidebar { margin-block: 0 24px; }

.pwf-bb .pwf-btn,
.pwf-mcta .pwf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-block-size: 48px; padding: 8px 24px; border: 2px solid var(--pwf-b-accent); border-radius: 999px;
	background: var(--pwf-b-btn-bg); font: inherit; font-weight: 700; line-height: 1.2; text-decoration: none; white-space: nowrap;
	transition: filter .2s ease;
}
/* Builder link colors (Divi post content “link color”) are !important; the label must stay readable (WCAG AA). */
.pwf-bb a.pwf-btn.pwf-btn, .pwf-bb a.pwf-btn.pwf-btn:hover, .pwf-bb a.pwf-btn.pwf-btn:visited, .pwf-aside a.pwf-btn.pwf-btn, .pwf-mcta a.pwf-btn.pwf-btn { color: var(--pwf-b-btn-fg) !important; opacity: 1; }
/* Divi’s “.et_pb_post_content_N.et_pb_post_content a { color … !important }” has 0,2,1 specificity; the doubled class (0,3,1) wins in every state. */
.pwf-bb .pwf-btn:hover, .pwf-aside .pwf-btn:hover { --pwf-b-btn-bg: var(--pwf-b-ink); }
.pwf-bb a:focus-visible, .pwf-bb button:focus-visible, .pwf-snap__track:focus-visible, .pwf-toc a:focus-visible, .pwf-share__btn:focus-visible, .pwf-mcta a:focus-visible {
	outline: 3px solid var(--pwf-b-gold); outline-offset: 2px;
}
.pwf-ico { inline-size: 24px; block-size: 24px; flex: none; }
[dir="rtl"] .pwf-ico--dir { transform: scaleX(-1); }

/* CTA box */
.pwf-cta {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px;
	padding: 24px; border-radius: var(--pwf-b-radius); background: var(--pwf-b-soft); color: var(--pwf-b-ink);
	border-inline-start: 4px solid var(--pwf-b-accent);
}
.pwf-cta__body { flex: 1 1 320px; }
.pwf-cta__title { margin: 0 0 8px; padding: 0; font-size: 1.25em; font-weight: 800; line-height: 1.4; color: inherit; }
.pwf-cta__text { margin: 0; padding: 0; line-height: 1.7; color: inherit; }
.pwf-cta--primary, .pwf-cta--dark { color: #fff; border-inline-start-color: var(--pwf-b-gold); }
.pwf-cta--primary { background: var(--pwf-b-accent); }
.pwf-cta--dark { background: var(--pwf-b-ink); }
.pwf-cta--primary .pwf-btn, .pwf-cta--dark .pwf-btn { --pwf-b-btn-bg: #fff; --pwf-b-btn-fg: var(--pwf-b-accent); border-color: #fff; }
.pwf-cta--gold { background: color-mix(in srgb, var(--pwf-b-gold) 14%, #fff); border-inline-start-color: var(--pwf-b-gold); }
.pwf-bb--after .pwf-cta { padding: 32px; }

/* Banner */
.pwf-banner { display: block; border-radius: var(--pwf-b-radius); overflow: hidden; }
.pwf-banner__img { display: block; inline-size: 100%; block-size: auto; }

/* Carousel (CSS scroll-snap; JS only adds the arrows) */
.pwf-snap { position: relative; }
.pwf-snap__head { display: flex; align-items: center; gap: 16px; margin-block-end: 16px; }
.pwf-snap--related .pwf-snap__title { font-size: 1.75em; color: var(--pwf-b-accent); }
.pwf-snap__title { margin: 0; padding: 0; font-size: 1.375em; line-height: 1.3; color: var(--pwf-b-ink); flex: 1; }
.pwf-snap__more { font-weight: 700; color: var(--pwf-b-accent); min-block-size: 48px; display: inline-flex; align-items: center; }
.pwf-snap__nav { display: flex; gap: 8px; }
.pwf-snap__nav[hidden] { display: none; }
.pwf-snap__btn {
	inline-size: 48px; block-size: 48px; display: grid; place-items: center; padding: 0; cursor: pointer;
	border: 1px solid var(--pwf-b-line); border-radius: 50%; background: var(--pwf-b-surface); color: var(--pwf-b-ink);
}
.pwf-snap__btn:disabled { opacity: .4; cursor: default; }
.pwf-snap .pwf-snap__track {
	display: grid; align-items: stretch; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px;
	margin: 0; padding: 8px 4px 16px; list-style: none; overflow-x: auto; overscroll-behavior-inline: contain;
	scroll-snap-type: inline mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none;
}
.pwf-snap__track::-webkit-scrollbar { display: none; }
.pwf-snap__track.is-drag { scroll-snap-type: none; scroll-behavior: auto; cursor: grabbing; user-select: none; }
.pwf-snap__track.is-drag a { pointer-events: none; }
.pwf-snap__dots { display: flex; justify-content: center; gap: 0; margin-block-start: 8px; }
.pwf-snap__dots[hidden] { display: none; }
.pwf-snap__dot { inline-size: 44px; min-inline-size: 44px; block-size: 48px; display: grid; place-items: center; padding: 0; border: 0; background: none; cursor: pointer; }
.pwf-snap__dot::before { content: ""; inline-size: 8px; block-size: 8px; border-radius: 999px; background: color-mix(in srgb, var(--pwf-b-ink) 30%, transparent); transition: inline-size .2s ease, background .2s ease; }
.pwf-snap__dot[aria-current="true"]::before { inline-size: 24px; background: var(--pwf-b-accent); }
.pwf-snap__dot:focus-visible { outline: 3px solid var(--pwf-b-gold); outline-offset: -6px; }
.pwf-snap .pwf-snap__item { display: flex; scroll-snap-align: start; min-inline-size: 0; margin: 0; padding: 0; list-style: none; }
.pwf-snap .pwf-snap__item::before, .pwf-snap .pwf-snap__item::marker { content: none; }
.pwf-snap__item > * { flex: 1; }
.pwf-snap--grid .pwf-snap__track, .pwf-snap.pwf-snap--grid .pwf-snap__track { grid-auto-flow: row; grid-template-columns: repeat(3, 1fr); overflow: visible; }
.pwf-snap--grid .pwf-snap__nav { display: none; }
@media (max-width: 980px) { .pwf-snap .pwf-snap__track { grid-auto-columns: calc((100% - 24px) / 2); } .pwf-snap--grid .pwf-snap__track, .pwf-snap.pwf-snap--grid .pwf-snap__track { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .pwf-snap .pwf-snap__track { grid-auto-columns: calc((100% - 16px) / 1.2); gap: 16px; } .pwf-snap--grid .pwf-snap__track, .pwf-snap.pwf-snap--grid .pwf-snap__track { grid-template-columns: 1fr 1fr; } }
@media (prefers-reduced-motion: reduce) { .pwf-snap__track { scroll-behavior: auto; } }
/* In the narrow sidebar / content column, show fewer cards */
.pwf-aside .pwf-snap .pwf-snap__track { grid-auto-columns: 100%; }

/* Product card: image fills a fixed-ratio box; action icons float over the image corner. */
.pwf-bcard {
	position: relative; display: flex; flex-direction: column; block-size: 100%; overflow: hidden;
	border: 1px solid var(--pwf-b-line); border-radius: var(--pwf-b-radius); background: var(--pwf-b-surface);
	box-shadow: var(--pwf-b-shadow); transition: transform .25s ease, box-shadow .25s ease;
}
.pwf-bcard:hover, .pwf-bcard:focus-within { transform: translateY(-4px); box-shadow: var(--pwf-b-shadow-hover); }
.pwf-bb .pwf-bcard__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--pwf-b-soft); }
.pwf-bb .pwf-bcard__media img.pwf-bcard__img,
.pwf-bcard__media img { display: block; inline-size: 100%; block-size: 100%; max-inline-size: none; object-fit: cover; border-radius: 0; margin: 0; }
.pwf-bcard .pwf-card-actions {
	position: absolute; inset-block-start: 8px; inset-inline-end: 8px; z-index: 2;
	display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; background: none;
}
.pwf-bcard .pwf-card-actions .pwf-act { inline-size: 40px; block-size: 40px; min-block-size: 40px; padding: 0; border-radius: 50%; background: rgba(255, 255, 255, .94); box-shadow: 0 2px 8px rgba(8, 35, 26, .12); }
/* the 40px visual circle keeps a 48px tap area */
.pwf-bcard .pwf-card-actions .pwf-act::after { content: ""; position: absolute; inset: -4px; }
.pwf-bcard .pwf-card-actions .pwf-act { position: relative; }
.pwf-bcard__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 16px; }
.pwf-bb .pwf-bcard__name { margin: 0; padding: 0; font-size: 1.0625em; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pwf-bb .pwf-bcard__name a.pwf-bcard__link, .pwf-aside .pwf-mini__name.pwf-mini__name { color: var(--pwf-b-side-ink, var(--pwf-b-ink)) !important; text-decoration: none; }
.pwf-bb .pwf-bcard__price { margin: 0; padding: 0; font-weight: 800; font-size: .9375em; line-height: 1.5; color: var(--pwf-b-accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pwf-bcard__price .woocommerce-Price-amount { white-space: nowrap; }
.pwf-bcard__cta { margin-block-start: auto; inline-size: 100%; font-size: .9375em; padding-inline: 16px; }
.pwf-bcard--row { flex-direction: row; }
.pwf-bb .pwf-bcard--row .pwf-bcard__media { flex: 0 0 40%; aspect-ratio: auto; }
@media (max-width: 767px) { .pwf-bcard--row { flex-direction: column; } .pwf-bb .pwf-bcard--row .pwf-bcard__media { aspect-ratio: 4 / 3; } }
@media (prefers-reduced-motion: reduce) { .pwf-bcard, .pwf-rcard { transition: none; } .pwf-bcard:hover, .pwf-rcard:hover { transform: none; } }

/* Related post card: equal height, 16:10 image, 2-line title, date + category. */
.pwf-rcard {
	position: relative; display: flex; flex-direction: column; block-size: 100%; overflow: hidden;
	border-radius: var(--pwf-b-radius); background: var(--pwf-b-surface); box-shadow: var(--pwf-b-shadow);
	transition: transform .25s ease, box-shadow .25s ease;
}
.pwf-rcard:hover, .pwf-rcard:focus-within { transform: translateY(-4px); box-shadow: var(--pwf-b-shadow-hover); }
.pwf-snap .pwf-rcard__link { display: flex; flex-direction: column; flex: 1; color: var(--pwf-b-ink); text-decoration: none; }
.pwf-rcard__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--pwf-b-soft); }
.pwf-snap .pwf-rcard__media img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; border-radius: 0; margin: 0; transition: transform .4s ease; }
.pwf-rcard__link:hover img { transform: scale(1.05); }
.pwf-rcard__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 16px; }
.pwf-snap .pwf-rcard__title { margin: 0; padding: 0; font-size: 1.0625em; font-weight: 700; line-height: 1.5; color: var(--pwf-b-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-block-size: 3em; }
.pwf-rcard__meta { margin-block-start: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: .875em; color: #4a5a50; }
.pwf-rcard__cat { padding: 2px 8px; border-radius: 999px; background: var(--pwf-b-soft); color: var(--pwf-b-accent); font-weight: 700; }
@media (prefers-reduced-motion: reduce) { .pwf-snap .pwf-rcard__media img { transition: none; } }

/* TOC */
.pwf-toc { margin-block: 24px 32px; padding: 16px 24px; border: 1px solid var(--pwf-b-line); border-radius: var(--pwf-b-radius); background: var(--pwf-b-surface); }
.pwf-toc__title { min-block-size: 48px; display: flex; align-items: center; font-weight: 800; color: var(--pwf-b-ink); cursor: pointer; }
.pwf-toc__list { margin: 8px 0 0; padding: 0; list-style: none; counter-reset: pwf-toc; }
.pwf-toc__list li { margin: 0; padding: 0; }
.pwf-toc__list a { display: block; padding-block: 8px; padding-inline-start: 12px; border-inline-start: 2px solid transparent; color: var(--pwf-b-text); text-decoration: none; line-height: 1.5; }
.pwf-toc__l3 a { padding-inline-start: 28px; font-size: .9375em; }
.pwf-toc__list a:hover, .pwf-toc__list a[aria-current="true"] { color: var(--pwf-b-accent); border-inline-start-color: var(--pwf-b-accent); }
@media (min-width: 981px) { body:has(.pwf-toc--aside) .pwf-toc--inline { display: none; } }
@media (max-width: 980px) { .pwf-toc--aside { display: none; } }
:target { scroll-margin-block-start: var(--pwf-b-top); }

/* Sticky sidebar (desktop only, blog posts only). position: sticky breaks when an ancestor
   clips (overflow hidden/auto) or when the column is stretched to the row height, so on
   .pwf-blog posts: ancestors clip with overflow-x: clip (does not create a scroll container),
   the sticky column aligns to the start, and the top offset follows the sticky header height. */
.pwf-aside { display: flex; flex-direction: column; gap: 24px; }
@media (min-width: 981px) {
	body.pwf-blog #page-container, body.pwf-blog #et-main-area, body.pwf-blog #main-content,
	body.pwf-blog .et-l--body, body.pwf-blog .et_builder_inner_content, body.pwf-blog .et-l--body .et_pb_section,
	body.pwf-blog .et-l--body .et_pb_row, body.pwf-blog .et-l--body .et_pb_column { overflow: visible; }
	/* Divi’s script writes inline style="overflow-y:hidden" on #page-container; with overflow-x:clip that computes
	   to hidden on both axes = a scroll container, which pins sticky to it. !important beats the inline style. */
	body.pwf-blog #page-container { overflow-x: clip !important; overflow-y: visible !important; }
	body.pwf-blog .et_pb_row:has(> .pwf-sticky-aside), body.pwf-blog .et_pb_row:has(> .et_pb_column .pwf-aside) { align-items: flex-start; }
	body.pwf-blog .et_pb_column.pwf-sticky-aside,
	body.pwf-blog .et_pb_column:has(> .et_pb_module .pwf-aside) { align-self: flex-start; }
	/* The sticky box is the column; it keeps its natural height so it ends exactly where the content row ends
	   (a capped column with visible overflow painted the rest over the next sections). The fit-to-viewport cap
	   and last-resort internal scroll live on the inner wrapper, which we own. */
	/* No inner scroll box: a sidebar taller than the viewport scrolls with the page and then sticks by its
	   bottom edge (top = viewport height - sidebar height - 24px, never more than the header offset).
	   --pwf-aside-h is measured by pwf-blog.js (ResizeObserver). */
	.pwf-aside, body.pwf-blog .pwf-sticky-aside {
		--pwf-b-stick: min(var(--pwf-b-top), calc(100vh - var(--pwf-aside-h, 0px) - 24px));
		position: sticky; inset-block-start: var(--pwf-b-stick); align-self: flex-start; z-index: 1;
	}
	body.pwf-blog .et-l--body .et_pb_column.pwf-sticky-aside { max-block-size: none; overflow: visible; }
	.admin-bar .pwf-aside, body.pwf-blog.admin-bar .pwf-sticky-aside { inset-block-start: calc(var(--pwf-b-stick) + 32px); }
	body.pwf-blog .pwf-sticky-aside .pwf-aside { position: static; }
}

/* Progress */
.pwf-progress { position: fixed; inset-block-start: 0; inset-inline: 0; block-size: 4px; z-index: 100000; pointer-events: none; }
.pwf-progress__bar { display: block; block-size: 100%; background: var(--pwf-b-gold); transform-origin: left center; transform: scaleX(0); }
[dir="rtl"] .pwf-progress__bar { transform-origin: right center; }
.admin-bar .pwf-progress { inset-block-start: 32px; }

/* Share */
.pwf-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-block: 24px; }
.pwf-share__label { font-weight: 700; color: var(--pwf-b-ink); margin-inline-end: 8px; }
.pwf-share__btn { inline-size: 48px; block-size: 48px; display: grid; place-items: center; padding: 0; border: 1px solid var(--pwf-b-line); border-radius: 50%; background: var(--pwf-b-surface); color: var(--pwf-b-ink); cursor: pointer; }
.pwf-share__btn:hover { color: var(--pwf-b-accent); border-color: var(--pwf-b-accent); }
.pwf-share__msg { font-size: .875em; color: var(--pwf-b-accent); }

/* Author */
.pwf-author { display: flex; gap: 16px; align-items: flex-start; margin-block: 32px; padding: 24px; border-radius: var(--pwf-b-radius); background: var(--pwf-b-soft); }
.pwf-author__img { border-radius: 50%; inline-size: 72px; block-size: 72px; flex: none; }
.pwf-author__name { margin: 0 0 8px; padding: 0; font-weight: 800; }
.pwf-author__name a { color: var(--pwf-b-ink); text-decoration: none; }
.pwf-author__bio { margin: 0; padding: 0; color: var(--pwf-b-text); line-height: 1.7; }

/* Phone bottom bar */
.pwf-mcta { display: none; }
@media (max-width: 767px) {
	.pwf-mcta {
		position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 9990; display: flex; gap: 8px;
		padding: 8px 16px calc(8px + env(safe-area-inset-bottom)); background: var(--pwf-b-surface);
		box-shadow: 0 -4px 16px rgba(0, 0, 0, .12); transform: translateY(110%); transition: transform .25s ease;
	}
	.pwf-mcta.is-on { transform: none; }
	.pwf-mcta .pwf-btn { flex: 1; padding-inline: 16px; }
	.pwf-mcta__wa { background: #1f7a4d; border-color: #1f7a4d; }
	.pwf-mcta__order { background: var(--pwf-b-ink); border-color: var(--pwf-b-ink); }
	body.pwf-mcta-on { padding-block-end: calc(64px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) { .pwf-mcta, .pwf-rcard__img { transition: none; } }

/* Sidebar cards ([pwf_blog_sidebar]) */
.pwf-aside { --pwf-b-card-pad: 16px; display: grid; gap: 16px; }
.pwf-side { padding: var(--pwf-b-card-pad); border: 1px solid var(--pwf-b-line); border-radius: var(--pwf-b-radius); background: var(--pwf-b-surface); box-shadow: var(--pwf-b-shadow); }
.pwf-side__title { margin: 0 0 16px; padding: 0; font-size: 1.0625em; font-weight: 800; line-height: 1.4; color: var(--pwf-b-ink); }
.pwf-side--price { background: var(--pwf-b-accent); border-color: var(--pwf-b-accent); color: #fff; }
.pwf-side--price .pwf-side__title { color: #fff; margin-block-end: 8px; }
.pwf-side__price { display: block; font-size: 1.25em; font-weight: 800; line-height: 1.5; color: #fff; }
.pwf-side__price * { color: inherit !important; }
.pwf-side__date { display: block; margin-block-start: 8px; font-size: .875em; color: rgba(255, 255, 255, .86); }
.pwf-side__btns { display: grid; gap: 8px; margin-block-start: 16px; }
.pwf-aside .pwf-side__btns .pwf-btn {
	display: flex; align-items: center; justify-content: center; gap: 8px; min-block-size: 48px; padding: 8px 16px; border-radius: 999px;
	font-weight: 700; text-decoration: none; border: 2px solid transparent;
}
.pwf-aside .pwf-side__wa { --pwf-b-btn-bg: #fff; --pwf-b-btn-fg: var(--pwf-b-accent); background: var(--pwf-b-btn-bg); }
.pwf-aside .pwf-side__call { --pwf-b-btn-fg: #fff; background: transparent; border-color: rgba(255, 255, 255, .7) !important; }
.pwf-aside .pwf-toc { margin: 0; box-shadow: var(--pwf-b-shadow); }
.pwf-aside .pwf-toc__list { max-block-size: none; overflow: visible; }
.pwf-toc--aside:not(.is-all) .pwf-toc__list > li:nth-child(n+6) { display: none; }
.pwf-toc__more { display: flex; align-items: center; min-block-size: 48px; padding: 0 8px; border: 0; background: none; color: var(--pwf-b-accent); font: inherit; font-weight: 700; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.pwf-toc__more:focus-visible { outline: 3px solid var(--pwf-b-gold); outline-offset: 2px; }
.pwf-mini { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pwf-mini li { margin: 0; padding: 0; list-style: none; }
.pwf-mini__a { display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: center; min-block-size: 48px; text-decoration: none; }
.pwf-mini__img { inline-size: 48px; block-size: 48px; border-radius: 12px; overflow: hidden; background: var(--pwf-b-soft); }
.pwf-aside .pwf-mini__img img { inline-size: 100%; block-size: 100%; object-fit: cover; margin: 0; border-radius: 0; }
.pwf-mini__name { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; font-weight: 700; line-height: 1.45; }
.pwf-mini__price { display: block; margin-block-start: 4px; font-size: .875em; font-weight: 800; color: var(--pwf-b-accent); white-space: nowrap; }
.pwf-trust { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pwf-trust li { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 0; line-height: 1.6; color: var(--pwf-b-text); list-style: none; }
.pwf-trust .pwf-ico { color: var(--pwf-b-accent); inline-size: 20px; block-size: 20px; margin-block-start: 2px; }
.pwf-aside .pwf-share { margin: 0; }
.pwf-aside .pwf-share__label { inline-size: 100%; margin: 0 0 8px; }
.pwf-aside .pwf-side__wa:hover { --pwf-b-btn-bg: #eef5f1; }
.pwf-aside .pwf-side__call:hover { background: rgba(255, 255, 255, .12); }
/* Builder list styles (Divi: .et-l--body ol { list-style-position: inside }) must not add markers to the TOC. */
.pwf-toc ol.pwf-toc__list, .pwf-toc ol.pwf-toc__list > li { list-style: none; margin-inline-start: 0; padding-inline-start: 0; }
.pwf-toc ol.pwf-toc__list > li::marker { content: none; }
.pwf-aside { font-size: 16px; line-height: 1.6; }
.pwf-aside .pwf-toc__list a { font-size: .9375em; padding-block: 8px; }

/* Sidebar CTA card (top) */
.pwf-side--cta { background: var(--pwf-b-accent-deep); border-color: var(--pwf-b-accent-deep); color: #fff; }
.pwf-side--cta .pwf-side__title { margin: 0 0 8px; font-size: 1.25em; color: #fff; }
.pwf-side__text { margin: 0 0 8px; padding: 0; color: rgba(255, 255, 255, .9); font-size: .9375em; line-height: 1.6; }
.pwf-side--cta .pwf-side__price { font-size: 1.0625em; }
.pwf-aside .pwf-side__buy { --pwf-b-btn-bg: var(--pwf-b-gold); --pwf-b-btn-fg: #10241a; background: var(--pwf-b-btn-bg); font-size: 1.0625em; }
.pwf-aside .pwf-side__buy:hover { --pwf-b-btn-bg: #f0c75e; }
.pwf-side__sub { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pwf-side__sub:has(> :only-child) { grid-template-columns: 1fr; }
/* Compact sidebar so it fits the viewport (internal scroll is the last resort). */
.pwf-aside .pwf-toc { padding: 16px; }
.pwf-aside .pwf-toc__title { margin-block-end: 8px; }
.pwf-aside .pwf-toc__list a { display: block; padding-block: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pwf-aside .pwf-toc__more { min-block-size: 40px; }
.pwf-aside .pwf-side__title { margin-block-end: 8px; }
.pwf-aside .pwf-share__label { display: none; }
.pwf-aside .pwf-side:has(> .pwf-share) { padding-block: 8px; }
.pwf-aside .pwf-trust li { line-height: 1.5; font-size: .9375em; }

/* 1.5.7 sidebar cards: how to order, delivery areas, contact (on white). */
.pwf-steps { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; counter-reset: pwf-step; }
.pwf-steps li { position: relative; display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 0; line-height: 1.6; color: var(--pwf-b-text); list-style: none; counter-increment: pwf-step; }
.pwf-steps li::marker { content: none; }
.pwf-steps li::before { content: counter(pwf-step); flex: none; display: grid; place-items: center; inline-size: 32px; block-size: 32px; border-radius: 50%; background: var(--pwf-b-accent); color: #fff; font-weight: 800; line-height: 1; }
.pwf-areas { display: flex; align-items: flex-start; gap: 8px; }
.pwf-areas > .pwf-ico { flex: none; inline-size: 24px; block-size: 24px; color: var(--pwf-b-accent); }
.pwf-areas .pwf-delivery-areas--list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pwf-areas .pwf-delivery-areas--list li { margin: 0; padding: 4px 12px; border-radius: 999px; background: color-mix(in srgb, var(--pwf-b-accent) 10%, transparent); color: var(--pwf-b-ink); font-size: .875em; font-weight: 700; line-height: 1.6; list-style: none; }
.pwf-side--contact .pwf-side__text { color: var(--pwf-b-text); }
.pwf-aside .pwf-side--contact .pwf-side__wa { --pwf-b-btn-bg: #1e7d4f; --pwf-b-btn-fg: #fff; background: var(--pwf-b-btn-bg); }
.pwf-aside .pwf-side--contact .pwf-side__wa:hover { --pwf-b-btn-bg: #17663f; }
.pwf-aside .pwf-side--contact .pwf-side__call { --pwf-b-btn-fg: var(--pwf-b-accent); background: transparent; border-color: var(--pwf-b-accent) !important; }
.pwf-aside .pwf-side--contact .pwf-side__call:hover { background: color-mix(in srgb, var(--pwf-b-accent) 8%, transparent); }

/* ==========================================================================
   Site sidebar ([pwf_sidebar] / "Pro WP Farms sidebar" widget in Divi's sidebar-1).
   ========================================================================== */
#sidebar .widget_pwf_sidebar { inline-size: 100%; margin-block-end: 24px; }
.pwf-aside--site { --pwf-b-card-pad: 16px; grid-template-columns: minmax(0, 1fr); min-inline-size: 0; }
.pwf-aside--site h2.pwf-side__title { margin: 0 0 12px; padding: 0; font-size: 1.0625rem; line-height: 1.4; font-weight: 700; color: var(--pwf-b-ink); }
.pwf-aside--site .pwf-side--cta h2.pwf-side__title { font-size: 1.25rem; color: #fff; }
.pwf-side--search { padding: 8px; }
.pwf-sform { display: flex; align-items: stretch; gap: 8px; margin: 0; }
.pwf-sform__in { flex: 1; min-inline-size: 0; min-block-size: 48px; margin: 0; padding: 0 16px; border: 1px solid var(--pwf-b-line); border-radius: 999px; background: var(--pwf-b-surface); color: var(--pwf-b-ink); font: inherit; font-size: 16px; }
.pwf-sform__in::placeholder { color: var(--pwf-b-text); opacity: .85; }
.pwf-sform__in:focus-visible { outline: 3px solid var(--pwf-b-accent); outline-offset: 1px; }
.pwf-sform__btn { display: inline-grid; place-items: center; flex: none; inline-size: 48px; block-size: 48px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--pwf-b-accent); color: #fff; cursor: pointer; }
.pwf-sform__btn svg { inline-size: 22px; block-size: 22px; fill: currentColor; }
.pwf-sform__btn:hover { background: var(--pwf-b-ink); }
.pwf-sform__btn:focus-visible { outline: 3px solid var(--pwf-b-accent); outline-offset: 2px; }
.pwf-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pwf-chips li { margin: 0; padding: 0; list-style: none; }
.pwf-chips li::marker { content: none; }
.pwf-chip { display: inline-flex; align-items: center; min-block-size: 40px; padding: 0 14px; border: 1px solid var(--pwf-b-line); border-radius: 999px; color: var(--pwf-b-ink) !important; font-size: .9375rem; font-weight: 600; text-decoration: none; transition: background-color .15s ease, border-color .15s ease; }
.pwf-chip:hover { border-color: var(--pwf-b-accent); background: var(--pwf-b-soft); }
.pwf-chip:focus-visible { outline: 3px solid var(--pwf-b-accent); outline-offset: 2px; }
.pwf-mini__date { display: block; margin-block-start: 2px; font-size: .8125rem; color: var(--pwf-b-text); }
.pwf-mini--posts .pwf-mini__name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .pwf-chip { transition: none; } }

/* 1.5.20 sidebar polish: never overflow inline, cards fill the column, TOC aligned to the start edge. */
.pwf-aside, .pwf-aside * { box-sizing: border-box; }
.pwf-aside { inline-size: 100%; max-inline-size: 100%; min-inline-size: 0; overflow: visible; max-block-size: none; text-align: start; }
.pwf-aside > * { min-inline-size: 0; max-inline-size: 100%; }
.pwf-side, .pwf-aside .pwf-toc { inline-size: 100%; overflow-wrap: anywhere; }
.pwf-aside img { max-inline-size: 100%; block-size: auto; }
.pwf-aside .pwf-toc__list { text-align: start; }
.pwf-aside .pwf-toc__list a {
	position: relative; padding-inline: 12px 8px; border-inline-start: 3px solid var(--pwf-b-line); border-radius: 0 8px 8px 0;
	color: var(--pwf-b-text); transition: background-color .2s, border-color .2s, color .2s;
}
[dir="rtl"] .pwf-aside .pwf-toc__list a { border-radius: 8px 0 0 8px; }
.pwf-aside .pwf-toc__list a:hover { background: var(--pwf-b-soft); }
.pwf-aside .pwf-toc__list a[aria-current="true"] { border-inline-start-color: var(--pwf-b-accent); background: var(--pwf-b-soft); color: var(--pwf-b-accent); font-weight: 700; }
.pwf-aside .pwf-toc__list > li + li { margin-block-start: 2px; }
.pwf-aside .pwf-side, .pwf-aside .pwf-toc { border-radius: var(--pwf-b-radius); box-shadow: var(--pwf-b-shadow); }
@media (prefers-reduced-motion: reduce) { .pwf-aside .pwf-toc__list a { transition: none; } }
@media (min-width: 981px) {
	/* Sticky ancestor found by pwf-blog.js (builder-made sticky column): bottom-stick it the same way. */
	.et_pb_column.pwf-aside-host, .pwf-aside-host.pwf-aside-host { top: min(var(--pwf-b-top), calc(100vh - var(--pwf-aside-h, 0px) - 24px)); align-self: flex-start; }
	.admin-bar .pwf-aside-host.pwf-aside-host { top: min(calc(var(--pwf-b-top) + 32px), calc(100vh - var(--pwf-aside-h, 0px) - 24px)); }
	.pwf-aside.is-hosted { position: static; }
}
/* Accent used as TEXT on card surfaces: lighter in dark mode for AA (#7fd1a8 on #16201b ≈ 9:1). */
.pwf-aside { --pwf-b-accent-text: light-dark(var(--pwf-b-accent), #7fd1a8); }
.pwf-aside .pwf-toc__more, .pwf-aside .pwf-mini__price, .pwf-aside .pwf-toc__list a[aria-current="true"], .pwf-aside .pwf-toc__list a:hover, .pwf-aside .pwf-trust .pwf-ico { color: var(--pwf-b-accent-text); }
.pwf-aside .pwf-toc__list a[aria-current="true"] { border-inline-start-color: var(--pwf-b-accent-text); }
/* 1.5.21: non-text contrast ≥3:1 in dark mode (delivery icon, share icons). */
.pwf-aside .pwf-areas > .pwf-ico { color: var(--pwf-b-accent-text); }
.pwf-aside .pwf-share__btn { color: light-dark(var(--pwf-b-ink), #e7ece9); border-color: light-dark(var(--pwf-b-line), rgba(231, 236, 233, .45)); }
.pwf-aside .pwf-share__btn:hover { color: var(--pwf-b-accent-text); border-color: var(--pwf-b-accent-text); }
/* Sidebar dark-mode tokens: every text/icon inherits from these (text ≥4.5:1, icons/borders ≥3:1 on #0b261d). */
.pwf-aside {
	--pwf-b-side-ink: light-dark(var(--pwf-b-ink), #f1f5f2);
	--pwf-b-side-text: light-dark(var(--pwf-b-text), #d2dcd6);
	--pwf-b-side-line: light-dark(var(--pwf-b-line), rgba(210, 220, 214, .38));
	color: var(--pwf-b-side-text);
}
.pwf-aside .pwf-side:not(.pwf-side--cta):not(.pwf-side--price), .pwf-aside .pwf-toc { border-color: var(--pwf-b-side-line); }
.pwf-aside .pwf-side__title, .pwf-aside .pwf-toc__title, .pwf-aside .pwf-mini__name { color: var(--pwf-b-side-ink); }
.pwf-aside .pwf-side:not(.pwf-side--cta):not(.pwf-side--price) :is(p, li, span, .pwf-delivery-areas, .pwf-toc__list a:not([aria-current="true"])) { color: inherit; }
.pwf-aside .pwf-side:not(.pwf-side--cta):not(.pwf-side--price) { color: var(--pwf-b-side-text); }
.pwf-aside .pwf-side:not(.pwf-side--cta) .pwf-mini__name, .pwf-aside .pwf-side:not(.pwf-side--cta) .pwf-side__title { color: var(--pwf-b-side-ink); }
.pwf-aside .pwf-mini__price, .pwf-aside .pwf-mini__price * { color: var(--pwf-b-accent-text); }
.pwf-aside .pwf-share__btn { color: var(--pwf-b-side-ink); border-color: var(--pwf-b-side-line); }
.pwf-aside .pwf-areas .pwf-delivery-areas--list li { color: var(--pwf-b-side-ink); }
/* 1.5.21: theme link / WooCommerce price colours (#666, #005934) must not leak into the sidebar (fails AA on the dark card). */
.pwf-aside .pwf-toc__list a:not([aria-current="true"]):not(:hover), .pwf-aside .pwf-mini__name { color: var(--pwf-b-side-text); }
.pwf-aside .pwf-mini__price, .pwf-aside .pwf-mini__price .amount, .pwf-aside .pwf-mini__price span { color: var(--pwf-b-accent-text) !important; } /* overrides the theme's !important WooCommerce price colour */
/* The CTA card is dark in both modes: its title follows the card's own (light) text colour. */
.pwf-aside .pwf-side--cta .pwf-side__title { color: inherit; }
