/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */
/**
 * PenisMaxing child theme styles.
 * Dark, technical, product-first. Written against Blocksy + WooCommerce markup.
 */

:root {
	--pm-ink: #0e0d11;
	--pm-surface: #17161c;
	--pm-line: rgba(255, 255, 255, .10);
	--pm-line-strong: rgba(255, 255, 255, .18);
	--pm-accent: var(--theme-palette-color-2, #d81c22);
	--pm-text-dim: rgba(255, 255, 255, .68);
}

/* ============================================================ header */
/* Light header, dark wordmark. Icons are inline SVG — they need `fill`,
   not `color`, or they stay black on whatever sits behind them. */
#header [data-row="middle"] {
	background-color: #fbfbfb;
	border-bottom: 1px solid rgba(19, 17, 23, .10);
}

/* the theme colours the inner container, which makes the bar look boxed */
#header [data-row="middle"] > .ct-container,
#header [data-row="top"] > .ct-container,
#footer [data-row] > .ct-container {
	background: transparent !important;
}

#header [data-row="top"] {
	background-color: var(--pm-ink);
	border-bottom: 0;
}

#header .ct-header-text p {
	margin: 0;
	font-size: 12px;
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .75);
}

#header .site-logo-container img {
	max-height: 26px;
	width: auto;
}

#header .ct-menu-link {
	color: var(--theme-palette-color-4, #131117);
}

#header .ct-menu-link:hover,
#header .current-menu-item > .ct-menu-link {
	color: var(--pm-accent);
}

/* header action icons */
#header [data-id="cart"] svg,
#header [data-id="account"] svg,
#header [data-id="search"] svg,
#header .ct-icon-container svg,
#header .ct-toggle-close svg {
	fill: var(--theme-palette-color-4, #131117);
	color: var(--theme-palette-color-4, #131117);
	transition: fill .18s ease;
}

#header [data-id="cart"] a:hover svg,
#header [data-id="account"] a:hover svg,
#header [data-id="search"] a:hover svg {
	fill: var(--pm-accent);
}

#header .ct-cart-item .ct-dynamic-count-cart,
#header .ct-cart-item .ct-dynamic-count {
	background: var(--pm-accent);
	color: #fff;
}

/* sticky state stays light, just denser */
#header [data-sticky] [data-row="middle"] {
	background-color: rgba(255, 255, 255, .96);
	backdrop-filter: blur(8px);
	box-shadow: 0 8px 24px -18px rgba(19, 17, 23, .5);
}

/* mobile menu trigger */
#header .ct-toggle svg,
#header [data-id="trigger"] svg {
	fill: var(--theme-palette-color-4, #131117);
}

/* ============================================================ hero / top */
.pm-top-section {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

/* soft red bloom bottom-right + cold light top-left, drawn in CSS (no image) */
.pm-top-section::before,
.pm-top-section::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	pointer-events: none;
}

.pm-top-section::before {
	width: 60vw;
	height: 60vw;
	right: -18vw;
	bottom: -32vw;
	background: radial-gradient(circle, rgba(216, 28, 34, .30) 0%, rgba(216, 28, 34, 0) 62%);
}

.pm-top-section::after {
	width: 55vw;
	height: 55vw;
	left: -20vw;
	top: -30vw;
	background: radial-gradient(circle, rgba(126, 137, 152, .16) 0%, rgba(126, 137, 152, 0) 65%);
}

/* ============================================================ click-to-reveal */
.pm-reveal-wrap {
	margin: 0 auto;
}

.pm-reveal {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 6px;
	cursor: pointer;
	background: var(--pm-ink);
	line-height: 0;
	border: 1px solid var(--pm-line-strong);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .9);
}

.pm-reveal img {
	display: block;
	width: 100%;
	height: auto;
	filter: blur(26px) saturate(.85);
	transform: scale(1.08);
	transition: filter .45s ease, transform .45s ease;
	will-change: filter;
}

.pm-reveal.is-revealed img {
	filter: none;
	transform: none;
}

.pm-reveal__veil {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	text-align: center;
	padding: 1.5rem;
	background: linear-gradient(180deg, rgba(12, 11, 15, .45), rgba(12, 11, 15, .72));
	color: #fff;
	line-height: 1.5;
	transition: opacity .35s ease;
}

.pm-reveal:hover .pm-reveal__veil {
	background: linear-gradient(180deg, rgba(12, 11, 15, .38), rgba(12, 11, 15, .66));
}

.pm-reveal.is-revealed .pm-reveal__veil {
	opacity: 0;
	pointer-events: none;
}

.pm-reveal__badge {
	font-family: Archivo, sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #fff;
	background: var(--pm-accent);
	padding: .35rem .7rem;
	border-radius: 2px;
}

.pm-reveal__label {
	font-size: 1.02rem;
	font-weight: 600;
	margin: 0;
}

.pm-reveal__hint {
	font-size: .82rem;
	opacity: .72;
	margin: 0;
}

.pm-reveal__caption {
	margin: .85rem 0 0;
	font-size: .85rem;
	line-height: 1.55;
	text-align: center;
	color: var(--pm-text-dim);
}

/* ============================================================ buttons */
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .button,
.wc-block-components-button {
	font-family: Archivo, sans-serif;
	font-weight: 600;
	letter-spacing: .04em;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	transform: translateY(-1px);
	box-shadow: 0 12px 26px -14px rgba(216, 28, 34, .9);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: rgba(255, 255, 255, .07);
}

/* ============================================================ product cards */
.woocommerce ul.products li.product,
.wc-block-grid__product {
	position: relative;
	border: 1px solid rgba(19, 17, 23, .12);
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
	transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.woocommerce ul.products li.product:hover {
	transform: translateY(-3px);
	border-color: rgba(216, 28, 34, .55);
	box-shadow: 0 26px 44px -30px rgba(19, 17, 23, .6);
}

.woocommerce ul.products li.product .ct-media-container,
.woocommerce ul.products li.product img {
	border-radius: 0;
}

.woocommerce ul.products li.product .ct-woo-card-inner,
.woocommerce ul.products li.product > .woocommerce-loop-product__link + *,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
	padding-inline: 1.1rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: Archivo, sans-serif;
	font-size: 1.02rem !important;
	font-weight: 600;
	line-height: 1.3;
	margin-top: 1rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title a,
.woocommerce ul.products li.product .price {
	color: var(--theme-palette-color-4, #131117);
}

.woocommerce ul.products li.product .price {
	font-family: Archivo, sans-serif;
	font-weight: 700;
	display: block;
	margin-top: .35rem;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
	display: inline-block;
	margin: .9rem 1.1rem 1.25rem;
	background: transparent;
	border: 1px solid rgba(19, 17, 23, .22);
	color: var(--theme-palette-color-4, #131117);
	border-radius: 2px;
	padding: .6rem 1.1rem;
	font-size: .84rem;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover {
	background: var(--pm-accent);
	border-color: var(--pm-accent);
	color: #fff;
}

/* ============================================================ single product */
.single-product div.product .price {
	font-family: Archivo, sans-serif;
	font-weight: 700;
}

.single-product div.product .single_add_to_cart_button {
	border-radius: 2px;
	text-transform: uppercase;
	letter-spacing: .08em;
	padding: .95rem 2rem;
}

.single-product div.product .woocommerce-product-details__short-description {
	font-size: 1.05rem;
	line-height: 1.7;
}

.single-product div.product .woocommerce-tabs .panel h3,
.single-product .related.products > h2 {
	font-family: Archivo, sans-serif;
}

/* ============================================================ shop archive */
.woocommerce-shop .hero-section,
.tax-product_cat .hero-section {
	background: var(--pm-ink);
}

.woocommerce-shop .hero-section .page-title,
.woocommerce-shop .hero-section .ct-breadcrumbs,
.woocommerce-shop .hero-section .ct-breadcrumbs a {
	color: #fff;
}

/* ============================================================ misc polish */
.wp-block-columns .wp-block-column[style*="border"] {
	transition: border-color .2s ease, background-color .2s ease;
}

.wp-block-columns .wp-block-column[style*="border"]:hover {
	border-color: rgba(216, 28, 34, .5) !important;
}

figure.wp-block-image img {
	border-radius: 4px;
}

/* tighten stacked sections on small screens */
@media (max-width: 782px) {
	.wp-block-group.alignfull {
		padding-left: 1.15rem !important;
		padding-right: 1.15rem !important;
	}

	.pm-reveal-wrap {
		max-width: 100% !important;
	}
}

/* ============================================================ trust strip */
.pm-trust .wp-block-column {
	border-left: 2px solid var(--pm-accent);
	padding-left: 1rem;
}

.pm-trust p {
	margin-block: 0 .3rem;
}

/* ============================================================ comparison table */
.pm-compare table {
	border-collapse: collapse;
	width: 100%;
	font-size: .98rem;
	background: #fff;
	border: 1px solid rgba(19, 17, 23, .10);
	border-radius: 6px;
	overflow: hidden;
}

.pm-compare thead th {
	background: var(--theme-palette-color-4, #131117);
	color: #fff;
	font-family: Archivo, sans-serif;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-align: left;
	padding: .95rem 1.1rem;
	border: 0;
}

.pm-compare td {
	padding: .95rem 1.1rem;
	border-top: 1px solid rgba(19, 17, 23, .08);
	vertical-align: top;
	line-height: 1.55;
}

.pm-compare tbody tr:last-child {
	background: rgba(216, 28, 34, .05);
}

.pm-compare tbody tr:last-child td {
	border-top-color: rgba(216, 28, 34, .35);
}

@media (max-width: 680px) {
	.pm-compare thead { display: none; }
	.pm-compare tr { display: block; border-top: 1px solid rgba(19,17,23,.1); padding: .5rem 0; }
	.pm-compare td { display: block; border: 0; padding: .3rem 1rem; }
	.pm-compare td:first-child { font-size: 1.02rem; }
}

/* ============================================================ FAQ */
.wp-block-details {
	border-bottom: 1px solid rgba(19, 17, 23, .12);
}

.wp-block-details summary {
	font-family: Archivo, sans-serif;
	font-size: 1.05rem;
	font-weight: 600;
	cursor: pointer;
	padding-right: 1.5rem;
	transition: color .18s ease;
}

.wp-block-details summary:hover {
	color: var(--pm-accent);
}

.wp-block-details[open] summary {
	color: var(--pm-accent);
	margin-bottom: .5rem;
}

/* ============================================================ footer */
#footer {
	background: var(--pm-ink);
	color: rgba(255, 255, 255, .72);
}

#footer [data-row] {
	border-top: 1px solid rgba(255, 255, 255, .07);
}

#footer h3 {
	font-family: Archivo, sans-serif;
	color: #fff;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-size: .82rem !important;
	margin-bottom: .9rem;
}

#footer a {
	color: rgba(255, 255, 255, .72);
	text-decoration: none;
}

#footer a:hover {
	color: #fff;
}

#footer ul.wp-block-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

#footer ul.wp-block-list li {
	margin-bottom: .45rem;
}

/* ============================================================ offcanvas / modals */
.ct-panel .ct-panel-inner,
#offcanvas .ct-panel-inner,
#search-modal .ct-panel-inner {
	background: var(--pm-ink);
}

.ct-panel .ct-menu-link,
.ct-panel a {
	color: rgba(255, 255, 255, .85);
}

.ct-panel .ct-toggle-close svg {
	fill: #fff;
}

/* ============================================================ cart / checkout blocks */
.wc-block-components-button:not(.is-link) {
	border-radius: 2px !important;
	background: var(--pm-accent) !important;
	color: #fff !important;
	font-family: Archivo, sans-serif;
	letter-spacing: .04em;
}

.wc-block-components-button:not(.is-link):hover {
	filter: brightness(1.08);
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	text-transform: uppercase;
	letter-spacing: .08em;
}

/* ============================================================ layout fixes */
/* full-bleed sections must touch each other — no white theme gaps */
.entry-content > .alignfull,
.entry-content > .wp-block-group.alignfull {
	margin-block: 0 !important;
}

.page .entry-content,
.page .ct-container > article > .entry-content {
	margin-block: 0 !important;
}

.page:not(.woocommerce-page) .site-main > .hero-section + .ct-container,
.page .site-main > .ct-container[data-vertical-spacing] {
	--theme-content-vertical-spacing: 0px;
	padding-block: 0 !important;
}

/* glow drawn directly on the section background (pseudo-elements sit behind
   the group's own background colour, so they never showed) */
.pm-top-section {
	background-image:
		radial-gradient(60vw 60vw at 88% 108%, rgba(216, 28, 34, .34) 0%, rgba(216, 28, 34, 0) 62%),
		radial-gradient(52vw 52vw at 6% -14%, rgba(132, 145, 160, .18) 0%, rgba(132, 145, 160, 0) 66%);
	background-repeat: no-repeat;
}

.pm-top-section::before,
.pm-top-section::after {
	content: none;
}

/* ============================================================ logo size */
#header .site-logo-container img,
#header .site-logo-container .default-logo {
	max-height: 26px !important;
	height: auto;
	width: auto;
}

@media (max-width: 782px) {
	#header .site-logo-container img,
	#header .site-logo-container .default-logo {
		max-height: 20px !important;
	}
}

/* ============================================================ reveal sizing */
.pm-reveal-wrap {
	max-width: 340px !important;
	margin-inline: auto !important;
}

@media (max-width: 781px) {
	.pm-reveal-wrap {
		margin-inline: auto !important;
	}
}

/* Fixed frame in BOTH states — revealing must not resize the section.
   Blurred: fill the frame. Revealed: fit the whole photo inside it. */
.pm-reveal {
	aspect-ratio: 4 / 5;
}

.pm-reveal img {
	height: 100%;
	object-fit: cover;
	object-position: center 40%;
}

.pm-reveal.is-revealed img {
	object-fit: contain;
	background: #0a0a0c;
}

@media (max-width: 600px) {
	.pm-reveal-wrap {
		max-width: 320px !important;
	}
}

/* ============================================================ page shell */
/* Blocksy wraps page content in .ct-container-full with its own vertical
   spacing; zero it so full-bleed sections stack edge to edge. */
.page .site-main > .ct-container-full,
.page .site-main > .ct-container-full > article,
.page .site-main > .ct-container-full > article > .entry-content {
	padding-block: 0 !important;
	margin-block: 0 !important;
	--theme-content-vertical-spacing: 0px;
}

.page .site-main {
	padding-block: 0 !important;
}

/* transparent header overlays the first section — clear it */
.entry-content > .alignfull:first-child {
	padding-top: 5rem !important;
}

@media (max-width: 782px) {
	.entry-content > .alignfull:first-child {
		padding-top: 3rem !important;
	}
}

/* ============================================================ bundle band */
.pm-bundle {
	border-top: 1px solid rgba(19, 17, 23, .08);
	border-bottom: 1px solid rgba(19, 17, 23, .08);
}

.pm-bundle__img img {
	border-radius: 4px;
	border: 1px solid rgba(19, 17, 23, .10);
}

.pm-bundle__price {
	margin-bottom: .6rem !important;
	font-family: Archivo, sans-serif;
}

.pm-bundle__price s {
	opacity: .38;
	font-size: 1.1rem;
	margin-right: .4rem;
}

@media (max-width: 900px) {
	.pm-bundle .wp-block-columns {
		flex-wrap: wrap !important;
	}

	.pm-bundle__price,
	.pm-bundle .wp-block-buttons {
		justify-content: flex-start !important;
		text-align: left !important;
	}

	.pm-bundle__img {
		max-width: 120px;
	}
}

/* ============================================================ contrast */
/* palette-color-3 is a mid grey — unreadable on the dark sections */
.has-palette-color-4-background-color .has-palette-color-3-color,
.pm-top-section .has-palette-color-3-color {
	color: rgba(255, 255, 255, .70) !important;
}

.has-palette-color-4-background-color .has-palette-color-6-color {
	color: rgba(255, 255, 255, .82) !important;
}

/* and slightly darker on light sections for body copy legibility */
.has-palette-color-8-background-color .has-palette-color-3-color,
.has-palette-color-7-background-color .has-palette-color-3-color {
	color: #4d555d !important;
}

.has-palette-color-4-background-color p a,
.has-palette-color-4-background-color li a,
.pm-top-section p a {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.wp-block-button__link,
.woocommerce a.button,
.wc-block-components-button {
	text-decoration: none !important;
}

/* ============================================================ FAQ rhythm */
.wp-block-details {
	padding-block: .85rem !important;
}

.wp-block-details summary {
	list-style: none;
	position: relative;
	padding-right: 2rem;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: .25rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.35rem;
	line-height: 1;
	font-weight: 400;
	color: var(--pm-accent);
	transition: transform .2s ease;
}

.wp-block-details[open] summary::after {
	content: "−";
}

.wp-block-details p {
	margin-bottom: 0;
}

/* ============================================================ overflow guards */
html,
body {
	max-width: 100%;
	overflow-x: clip;
}

img,
figure,
table,
iframe {
	max-width: 100%;
}

.pm-reveal-wrap {
	max-width: min(340px, 100%) !important;
}

.pm-compare {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 782px) {
	.wp-block-columns {
		gap: 1.25rem !important;
	}

	.wp-block-column {
		flex-basis: 100% !important;
	}

	.wp-block-buttons {
		gap: .65rem;
	}

	.wp-block-button__link {
		display: block;
		text-align: center;
	}
}

/* ============================================================ archive hero */
.woocommerce-shop .hero-section,
.tax-product_cat .hero-section,
.page .hero-section[data-type] {
	background-color: var(--pm-ink) !important;
	background-image: radial-gradient(50vw 50vw at 88% 130%, rgba(216, 28, 34, .22) 0%, rgba(216, 28, 34, 0) 60%) !important;
}

.hero-section .page-title,
.hero-section .ct-breadcrumbs,
.hero-section .ct-breadcrumbs a,
.hero-section .ct-breadcrumbs span {
	color: #fff !important;
}

.hero-section .ct-breadcrumbs {
	opacity: .72;
	font-size: .82rem;
}

.hero-section .page-title {
	font-family: Archivo, sans-serif;
	letter-spacing: -.01em;
}

/* shop grid: no orphaned sidebar column */
.woocommerce-shop .site-main > .ct-container[data-sidebar],
.tax-product_cat .site-main > .ct-container[data-sidebar] {
	grid-template-columns: 1fr !important;
	display: block !important;
}

.woocommerce-shop aside:empty,
.tax-product_cat aside:empty,
.woocommerce-shop .ct-sidebar:empty {
	display: none !important;
}

/* ============================================================ single product */
/* no hero band on products — breadcrumbs sit inline on the light page */
.single-product .hero-section {
	background: transparent !important;
	background-image: none !important;
	padding-block: 1.5rem 0 !important;
}

.single-product .hero-section .ct-breadcrumbs,
.single-product .hero-section .ct-breadcrumbs a,
.single-product .hero-section .ct-breadcrumbs span {
	color: rgba(19, 17, 23, .62) !important;
}

/* product layout should use the full container, not leave a sidebar gap.
   Scoped to <main> — the header rows use .ct-container too. */
.single-product .site-main > .ct-container[data-sidebar],
.single-product .site-main > .ct-container {
	display: block !important;
}

/* transparent header overlays the top of product/archive content */
.single-product .site-main {
	padding-top: 1.25rem;
}

@media (max-width: 782px) {
	.single-product .site-main {
		padding-top: 2rem;
	}
}

.single-product div.product {
	max-width: 1200px;
	margin-inline: auto;
}

.single-product .woocommerce-product-gallery {
	width: 46% !important;
}

.single-product div.product .summary {
	width: 50% !important;
}

@media (max-width: 900px) {
	.single-product .woocommerce-product-gallery,
	.single-product div.product .summary {
		width: 100% !important;
	}
}

.single-product .woocommerce-tabs ul.tabs li.active a {
	color: var(--pm-accent);
}

/* ============================================================ measure */
/* long-form prose gets a readable line length; grids/tables stay full width */
.entry-content .wp-block-group > :is(p, h1, h2, h3, h4, ul, ol, .wp-block-details, figure.wp-block-image) {
	max-width: 46rem !important;
	margin-inline: auto !important;
}

.entry-content .wp-block-group > :is(.wp-block-columns:not(.pm-hero-cols), .wp-block-table, .wp-block-buttons, .wp-block-group, .woocommerce, ul.products) {
	max-width: var(--pm-container, 1240px) !important;
	margin-inline: auto !important;
}

/* ============================================================ utility pages */
.woocommerce-cart .hero-section,
.woocommerce-checkout .hero-section,
.woocommerce-account .hero-section {
	background-color: var(--pm-ink) !important;
	padding-block: 3rem !important;
	text-align: center;
}

.woocommerce-cart .hero-section .page-title,
.woocommerce-checkout .hero-section .page-title,
.woocommerce-account .hero-section .page-title {
	color: #fff !important;
	font-family: Archivo, sans-serif;
	font-size: clamp(1.8rem, 3.4vw, 2.6rem) !important;
}

/* Blocksy product sliders / related blocks: match the shop card language */
.ct-related-products .woocommerce-loop-product__title a,
.wc-block-grid__product-title,
.products .product-title a,
.entry-content .woocommerce ul.products li.product .woocommerce-loop-product__title a {
	color: var(--theme-palette-color-4, #131117) !important;
}

.ct-related-products .button,
.ct-related-products .add_to_cart_button,
.wc-block-grid__product-add-to-cart .wp-block-button__link {
	background: transparent !important;
	border: 1px solid rgba(19, 17, 23, .22) !important;
	color: var(--theme-palette-color-4, #131117) !important;
	border-radius: 2px !important;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .82rem !important;
}

.ct-related-products .button:hover,
.ct-related-products .add_to_cart_button:hover,
.wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
	background: var(--pm-accent) !important;
	border-color: var(--pm-accent) !important;
	color: #fff !important;
}

/* empty-cart state */
.wc-block-cart__empty-cart__title,
.cart-empty {
	font-family: Archivo, sans-serif;
}

/* ============================================================ block cart */
.wc-block-cart .wc-block-components-product-name,
.wc-block-cart a.wc-block-components-product-name,
.wc-block-components-order-summary-item__description a {
	color: var(--theme-palette-color-4, #131117) !important;
	font-family: Archivo, sans-serif;
	font-weight: 600;
	text-decoration: none;
}

.wc-block-cart .wc-block-components-product-name:hover {
	color: var(--pm-accent) !important;
}

.wc-block-cart__cross-sells .wp-block-button__link,
.wc-block-cart__cross-sells .wc-block-components-product-add-to-cart-button,
.wc-block-cart__cross-sells button {
	background: transparent !important;
	border: 1px solid rgba(19, 17, 23, .22) !important;
	color: var(--theme-palette-color-4, #131117) !important;
	border-radius: 2px !important;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .8rem !important;
}

.wc-block-cart__cross-sells .wp-block-button__link:hover,
.wc-block-cart__cross-sells button:hover {
	background: var(--pm-accent) !important;
	border-color: var(--pm-accent) !important;
	color: #fff !important;
}

.wc-block-cart__cross-sells-product-name,
.wc-block-cart__cross-sells h3 a {
	color: var(--theme-palette-color-4, #131117) !important;
	font-family: Archivo, sans-serif;
}

.hero-section .page-title {
	text-align: center;
}

.woocommerce-cart .hero-section .ct-container,
.woocommerce-checkout .hero-section .ct-container,
.woocommerce-account .hero-section .ct-container {
	text-align: center;
}

/* ============================================================ 404 */
.pm-404 {
	background: var(--pm-ink);
	background-image: radial-gradient(50vw 50vw at 85% 120%, rgba(216, 28, 34, .28) 0%, rgba(216, 28, 34, 0) 62%);
	padding: 7rem 1.5rem 6rem;
	text-align: center;
}

.pm-404__inner {
	max-width: 46rem;
	margin-inline: auto;
}

.pm-404__eyebrow {
	color: var(--pm-accent);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}

.pm-404__title {
	font-family: Archivo, sans-serif;
	color: #fff;
	font-size: clamp(2rem, 5vw, 3.2rem);
	font-weight: 700;
	line-height: 1.1;
	margin-bottom: 1rem;
}

.pm-404__text {
	color: rgba(255, 255, 255, .70);
	font-size: 1.05rem;
	line-height: 1.7;
	margin-bottom: 2rem;
}

.pm-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	justify-content: center;
	margin-bottom: 2.5rem;
}

.pm-404__btn {
	font-family: Archivo, sans-serif;
	font-weight: 600;
	letter-spacing: .04em;
	padding: .9rem 2rem;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 2px;
	color: #fff;
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease;
}

.pm-404__btn:hover {
	background: rgba(255, 255, 255, .08);
	color: #fff;
}

.pm-404__btn--primary {
	background: var(--pm-accent);
	border-color: var(--pm-accent);
}

.pm-404__btn--primary:hover {
	background: #b8171c;
	border-color: #b8171c;
}

.pm-404__search form {
	max-width: 24rem;
	margin-inline: auto;
}

.pm-404__search input[type="search"] {
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .16);
	color: #fff;
}

.pm-404__search input,
.pm-404__search .ct-search-form input,
.pm-404 form input:not([type="submit"]) {
	background: rgba(255, 255, 255, .07) !important;
	border: 1px solid rgba(255, 255, 255, .18) !important;
	color: #fff !important;
}

.pm-404__search input::placeholder {
	color: rgba(255, 255, 255, .45) !important;
}

.pm-404__search button,
.pm-404__search svg {
	color: #fff !important;
	fill: #fff !important;
}

/* mailto headings in cards */
.wp-block-column h3 a[href^="mailto:"] {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(216, 28, 34, .45);
}

.wp-block-column h3 a[href^="mailto:"]:hover {
	color: var(--pm-accent);
	border-bottom-color: var(--pm-accent);
}

/* product gallery */
.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery__image img {
	border-radius: 4px;
}

.single-product .ct-slider-dots span,
.single-product .flex-control-thumbs li img {
	border-radius: 2px;
}

/* ============================================================ hero v3 */
/* pull both columns toward the middle: narrower row, tighter gap,
   image hugs the text instead of the far edge */
.pm-hero-cols {
	max-width: 920px !important;
	margin-inline: auto !important;
	gap: 3rem !important;
}

.pm-hero-cols .wp-block-column:first-child {
	flex-basis: 56% !important;
}

.pm-hero-cols .pm-hero-media {
	flex-basis: 44% !important;
}

.pm-hero-media .pm-reveal-wrap {
	margin-inline: auto !important;
}

@media (max-width: 781px) {
	.pm-hero-cols .wp-block-column:first-child {
		text-align: center;
	}

	.pm-hero-cols .wp-block-buttons {
		justify-content: center !important;
	}

	.pm-hero-cols p.has-text-align-left {
		text-align: center;
	}
}

/* ============================================================ boxed product rows */
/* home + how-it-works product grids: boxed, not full content width */
.entry-content .woocommerce ul.products.columns-3 {
	max-width: 1020px;
	margin-inline: auto;
}

/* hero headline: fit "Not bought in a bottle." on one line in the 56% column */
.pm-hero-cols h1 {
	font-size: clamp(2rem, 3.3vw, 2.8rem) !important;
	white-space: nowrap;
}

@media (max-width: 960px) {
	.pm-hero-cols h1 {
		white-space: normal;
	}
}

/* ============================================================ contained site */
/* Section BACKGROUNDS run edge to edge (header, hero, bands, footer).
   Section CONTENT is capped to the container so nothing hugs the screen edge. */
:root {
	--pm-container: 1240px;
}

body {
	background: #fff;
}

/* backgrounds: full bleed */
.entry-content > .alignfull,
.entry-content > .wp-block-group.alignfull,
.hero-section,
.pm-404 {
	max-width: none !important;
	margin-inline: 0 !important;
}

/* content inside those bands: contained */
.entry-content > .alignfull > *,
.pm-404 > *,
.hero-section > * {
	max-width: var(--pm-container);
	margin-inline: auto;
}

/* header / footer bars: bleed, inner content contained */
#header [data-row] > .ct-container,
#footer [data-row] > .ct-container {
	max-width: var(--pm-container);
	margin-inline: auto;
}

#header .ct-sticky-container,
#header .ct-sticky-container [data-row="middle"],
#header > [data-device],
#footer {
	max-width: none !important;
	margin-inline: 0 !important;
}

/* the page content wrapper must NOT cap the bands — they bleed, their
   children are what gets contained */
.site-main > .ct-container-full {
	max-width: none !important;
}

/* shop / product / cart bodies have no full-bleed bands, so cap them here */
.woocommerce-shop .site-main > .ct-container,
.single-product .site-main > .ct-container,
.woocommerce-cart .site-main > .ct-container,
.woocommerce-checkout .site-main > .ct-container,
.woocommerce-account .site-main > .ct-container,
.tax-product_cat .site-main > .ct-container {
	max-width: var(--pm-container);
	margin-inline: auto;
}

/* ============================================================ pricing card */
.pm-price-card {
	max-width: 520px;
	margin-inline: auto;
	background: rgba(255, 255, 255, .03);
}

.pm-price-card .pm-price {
	font-family: Archivo, sans-serif;
	margin-block: .25rem .5rem !important;
}

.pm-check {
	list-style: none;
	margin: 0 auto !important;
	padding: 0;
	max-width: 24rem;
}

.pm-check li {
	position: relative;
	padding: .45rem 0 .45rem 1.6rem;
	color: rgba(255, 255, 255, .78);
	font-size: .95rem;
	line-height: 1.6;
}

.pm-check li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--pm-accent);
	font-weight: 700;
}

/* ============================================================ card fixes */
/* the category line sits outside the padded elements — align it with the rest */
.woocommerce ul.products li.product .entry-meta,
.woocommerce ul.products li.product .ct-woo-card-actions {
	padding-inline: 1.1rem;
	margin-inline: 0;
}

.woocommerce ul.products li.product .entry-meta {
	margin-top: .35rem;
	margin-bottom: .25rem;
}

.woocommerce ul.products li.product .entry-meta a {
	color: rgba(19, 17, 23, .5);
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
}

.woocommerce ul.products li.product .entry-meta a:hover {
	color: var(--pm-accent);
}

/* ============================================================ button hover */
/* outline buttons on LIGHT sections: fill with brand red + white text
   (the theme default turned them washed-out pink with dark text) */
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
	background-color: var(--pm-accent) !important;
	border-color: var(--pm-accent) !important;
	color: #fff !important;
}

/* solid red buttons: darken rather than lighten on hover */
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background-color: #b3161b !important;
	color: #fff !important;
}

/* ============================================================ footer fixes */
/* Blocksy renders an empty "ghost" middle row — it was leaving a dead band */
#footer [data-row="middle"]:has(> .ct-container > [data-column="ghost"]:only-child) {
	display: none;
}

#footer [data-column="ghost"] {
	display: none;
}

#footer [data-row="bottom"] {
	border-top: 1px solid rgba(255, 255, 255, .08);
}

#footer [data-row="bottom"] .ct-container {
	padding-block: 1.25rem;
}

#footer .ct-footer-copyright {
	font-size: .82rem;
	color: rgba(255, 255, 255, .45);
}

#footer [data-row="top"] .ct-container {
	padding-bottom: 2.5rem;
}

/* ============================================================ rhythm + polish */
/* product rows share the container grid with every other section */
.entry-content .woocommerce ul.products.columns-3 {
	max-width: var(--pm-container) !important;
}

/* stop the orphaned last word on the wider section headings */
.entry-content .wp-block-group > h2 {
	max-width: 30ch !important;
	text-wrap: balance;
}

/* comparison table: row hover so it reads as a scannable table */
.pm-compare tbody tr {
	transition: background-color .15s ease;
}

.pm-compare tbody tr:hover {
	background-color: rgba(19, 17, 23, .04);
}

.pm-compare tbody tr:last-child:hover {
	background-color: rgba(216, 28, 34, .09);
}

/* card + link hover consistency on dark sections */
.has-palette-color-4-background-color .wp-block-column[style*="border"]:hover {
	border-color: rgba(216, 28, 34, .55) !important;
}

/* focus rings for keyboard users (was relying on the browser default) */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
.pm-reveal:focus-visible {
	outline: 2px solid var(--pm-accent);
	outline-offset: 3px;
}

/* ============================================================ FAQ density */
/* rows were 105px tall for a single line of text — mostly block margin */
.entry-content .wp-block-details {
	margin-block: 0 !important;
	padding-block: .7rem !important;
}

.entry-content .wp-block-details summary {
	font-size: 1rem;
	line-height: 1.45;
	padding-block: .1rem;
}

.entry-content .wp-block-details[open] summary {
	margin-bottom: .35rem;
}

.entry-content .wp-block-details p {
	font-size: .95rem !important;
	line-height: 1.65 !important;
	margin-block: 0 .2rem !important;
}

.entry-content .wp-block-details summary::after {
	font-size: 1.2rem;
}

/* ============================================================ dark/light sections */
/* One rule set so a section can flip background without touching its markup. */
.has-palette-color-4-background-color :is(h1, h2, h3, h4, h5) {
	color: #fff !important;
}

.has-palette-color-4-background-color p:not([class*="palette-color-2"]),
.has-palette-color-4-background-color li,
.has-palette-color-4-background-color figcaption {
	color: rgba(255, 255, 255, .72) !important;
}

.has-palette-color-4-background-color .wp-block-column[style*="border"] {
	border-color: rgba(255, 255, 255, .14) !important;
}

.has-palette-color-4-background-color strong {
	color: #fff;
}

.has-palette-color-8-background-color :is(h1, h2, h3, h4, h5) {
	color: var(--theme-palette-color-4, #131117) !important;
}

.has-palette-color-8-background-color p:not([class*="palette-color-2"]),
.has-palette-color-8-background-color li {
	color: #4d555d !important;
}

.has-palette-color-8-background-color .wp-block-column[style*="border"] {
	border-color: rgba(19, 17, 23, .12) !important;
}

/* FAQ when it sits on the dark band */
.has-palette-color-4-background-color .wp-block-details {
	border-bottom-color: rgba(255, 255, 255, .12) !important;
}

.has-palette-color-4-background-color .wp-block-details summary {
	color: #fff;
}

.has-palette-color-4-background-color .wp-block-details summary:hover,
.has-palette-color-4-background-color .wp-block-details[open] summary {
	color: var(--pm-accent);
}

/* comparison table on white */
.has-palette-color-8-background-color .pm-compare table {
	border-color: rgba(19, 17, 23, .12);
}

/* FAQ density, second pass — target ~56px rows */
.entry-content .wp-block-details {
	padding-block: .62rem !important;
}

.entry-content .wp-block-details summary {
	padding-block: 0;
}

/* hero: the header is transparent and overlays this section, so the top
   padding has to clear the header height (~140px) before the eyebrow */
.pm-top-section {
	padding-bottom: 5rem !important;
}

@media (max-width: 782px) {
	.pm-top-section {
		padding-bottom: 3rem !important;
	}
}

/* ============================================================ button contrast by section */
/* outline buttons carry a hard-coded text colour from the block markup, which
   goes invisible when a section flips tone — force it per background. */
.has-palette-color-4-background-color .wp-block-button.is-style-outline .wp-block-button__link {
	color: #fff !important;
	border-color: rgba(255, 255, 255, .38) !important;
}

.has-palette-color-4-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: #fff !important;
	border-color: #fff !important;
	color: var(--theme-palette-color-4, #131117) !important;
}

.has-palette-color-8-background-color .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--theme-palette-color-4, #131117) !important;
	border-color: rgba(19, 17, 23, .25) !important;
}

.has-palette-color-8-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--pm-accent) !important;
	border-color: var(--pm-accent) !important;
	color: #fff !important;
}

/* links inside light sections need the brand colour, not inherited white */
.has-palette-color-8-background-color p a {
	color: var(--pm-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ============================================================ FAQ symmetry */
/* the closed accordion was leaving ~22px of dead space under the question */
.entry-content .wp-block-details {
	padding-block: .8rem !important;
}

.entry-content .wp-block-details summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	line-height: 1.3;
	margin: 0 !important;
	padding-right: 0;
}

.entry-content .wp-block-details summary::after {
	position: static;
	transform: none;
	flex: none;
}

.entry-content .wp-block-details:not([open]) > *:not(summary) {
	display: none !important;
	margin: 0 !important;
}

.entry-content .wp-block-details[open] > *:not(summary) {
	margin-top: .3rem !important;
	margin-bottom: 0 !important;
}

/* ============================================================ card kickers */
/* the 01 / 02 / 03 (and TIME / CEILING) labels were eating a full row —
   tighten them into a kicker that sits right on top of its title */
.entry-content .wp-block-column[style*="border-color"] > p:first-child {
	margin-bottom: .3rem !important;
	font-size: 11px !important;
	letter-spacing: .2em !important;
	opacity: .95;
}

.entry-content .wp-block-column[style*="border-color"] > h3 {
	margin-top: 0 !important;
	margin-bottom: .5rem !important;
}

.entry-content .wp-block-column[style*="border-color"] > p:last-child {
	margin-bottom: 0 !important;
}

/* slightly tighter card padding now that the kicker is compact */
.entry-content .wp-block-column[style*="border-color"] {
	padding: 1.5rem !important;
}

/* ============================================================ section header rhythm */
/* eyebrow → heading → intro was running ~60-90px between each line.
   Tighten into one deliberate stack: 12px / 16px / 40px. */
.entry-content .wp-block-group > p:first-of-type[class*="palette-color-2"] {
	margin-bottom: 1rem !important;
}

.entry-content .wp-block-group > h1,
.entry-content .wp-block-group > h2 {
	margin-top: 0 !important;
	margin-bottom: 1.4rem !important;
}

/* heading lines shouldn't crowd each other at display sizes */
.entry-content .wp-block-group > h1,
.entry-content .wp-block-group > h2 {
	line-height: 1.18 !important;
}

.entry-content .wp-block-group > h2 + p {
	margin-top: 0 !important;
}

/* spacer blocks in the content were stacking on top of those margins */
.entry-content .wp-block-group > .wp-block-spacer {
	height: 2.25rem !important;
}

/* the hero column stack keeps its own tighter spacing */
.pm-hero-cols .wp-block-spacer {
	height: 1rem !important;
}

/* ==========================================================================
   FORUM + MEMBERSHIP
   bbPress and Simple Membership both ship generic markup; everything below
   pulls them onto the site's own type, colour and container system.
   ========================================================================== */

/* --------------------------------------------------- page-title band width */
/* The band was rendering 1440px wide inside a 1600px viewport because the
   Blocksy container it sits in keeps its own horizontal padding. Zero the
   padding on the shell and give it back to the band itself. */
.page .site-main > .ct-container-full,
.page .site-main > .ct-container-full > article,
.single-forum .site-main > .ct-container-full,
.single-topic .site-main > .ct-container-full,
.bbpress .site-main > .ct-container-full {
	padding-inline: 0 !important;
	max-width: none !important;
}

.site-main .hero-section {
	width: auto !important;
	max-width: none !important;
	margin-inline: 0 !important;
	padding-inline: 1.5rem !important;
}

.site-main .hero-section > * {
	max-width: var(--pm-container, 1240px);
	margin-inline: auto;
}

/* ------------------------------------------------------- shared page shell */
/* bbPress and SWPM render bare into .entry-content with no full-bleed group
   of their own, so give them the container the block sections get. */
.bbpress .entry-content,
.swpm-login-widget-form,
.swpm-registration-widget-form,
.swpm-profile-form,
#swpm-reset-form {
	max-width: var(--pm-container, 1240px);
	margin-inline: auto;
}

.bbpress .site-main > .ct-container-full > article > .entry-content {
	padding: 3.5rem 1.5rem 5rem !important;
}

/* ============================================================== SWPM forms */
/* Login / register / reset / profile all share these primitives. */
.swpm-login-widget-form,
.swpm-registration-widget-form,
.swpm-profile-form,
#swpm-reset-form {
	max-width: 34rem !important;
	margin: 3.5rem auto 5rem !important;
	padding: 2.5rem !important;
	border: 1px solid rgba(19, 17, 23, .14);
	border-radius: 4px;
	background: #fff;
}

.swpm-login-widget-form .swpm-label,
.swpm-registration-widget-form label,
.swpm-profile-form label,
#swpm-reset-form label {
	display: block;
	margin-bottom: .4rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(19, 17, 23, .62);
}

.swpm-text-field,
.swpm-registration-widget-form input[type="text"],
.swpm-registration-widget-form input[type="email"],
.swpm-registration-widget-form input[type="password"],
.swpm-profile-form input[type="text"],
.swpm-profile-form input[type="email"],
.swpm-profile-form input[type="password"],
#swpm-reset-form input[type="text"],
#swpm-reset-form input[type="email"] {
	width: 100% !important;
	max-width: 100% !important;
	padding: .85rem 1rem !important;
	border: 1px solid rgba(19, 17, 23, .18) !important;
	border-radius: 2px !important;
	background: #fbfbfb !important;
	font-size: 1rem !important;
	color: var(--pm-ink) !important;
	transition: border-color .15s ease, background-color .15s ease;
}

.swpm-text-field:focus,
.swpm-registration-widget-form input:focus,
.swpm-profile-form input:focus,
#swpm-reset-form input:focus {
	outline: none !important;
	border-color: var(--pm-accent) !important;
	background: #fff !important;
}

/* SWPM emits each field as its own pair of unstyled divs */
.swpm-username-input,
.swpm-password-input,
.swpm-registration-widget-form .swpm-margin-top-10,
.swpm-profile-form .swpm-margin-top-10 {
	margin-bottom: 1.25rem;
}

.swpm-username-label,
.swpm-password-label {
	margin-top: 1.25rem;
}

.swpm-remember-me {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: .25rem 0 1.5rem;
	font-size: .9rem;
	color: rgba(19, 17, 23, .7);
}

.swpm-remember-me input[type="checkbox"] {
	width: 1rem;
	height: 1rem;
	accent-color: var(--pm-accent);
}

.swpm-rememberme-label {
	margin: 0 !important;
	font-size: .9rem !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: inherit !important;
}

.swpm-login-form-submit,
.swpm-registration-submit-section input[type="submit"],
.swpm-profile-form input[type="submit"],
#swpm-reset-form input[type="submit"] {
	width: 100%;
	padding: 1rem 2rem !important;
	border: 0 !important;
	border-radius: 2px !important;
	background: var(--pm-accent) !important;
	color: #fff !important;
	font-size: .95rem !important;
	font-weight: 600 !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .15s ease, transform .05s ease;
}

.swpm-login-form-submit:hover,
.swpm-registration-submit-section input[type="submit"]:hover,
.swpm-profile-form input[type="submit"]:hover,
#swpm-reset-form input[type="submit"]:hover {
	background: var(--pm-ink) !important;
	color: #fff !important;
}

.swpm-login-form-submit:active { transform: translateY(1px); }

/* the two utility links under the button read as a footer row, not a list */
.swpm-forgot-pass-link,
.swpm-join-us-link {
	display: inline-block;
	margin-top: 1.25rem;
	font-size: .9rem;
}

.swpm-join-us-link { margin-left: 1.25rem; }

.swpm-forgot-pass-link a,
.swpm-join-us-link a {
	color: rgba(19, 17, 23, .62);
	text-decoration: none;
	border-bottom: 1px solid rgba(19, 17, 23, .2);
	padding-bottom: 1px;
}

.swpm-forgot-pass-link a:hover,
.swpm-join-us-link a:hover {
	color: var(--pm-accent);
	border-bottom-color: var(--pm-accent);
}

/* SWPM's own notices */
.swpm-login-action-msg,
.swpm-registration-action-msg,
.swpm-profile-action-msg {
	margin-bottom: 1.25rem;
}

.swpm-login-error-msg,
.swpm-registration-error-msg,
.swpm-profile-error-msg,
.swpm-red {
	padding: .85rem 1rem;
	border-left: 3px solid var(--pm-accent);
	background: rgba(216, 28, 34, .07);
	color: var(--pm-ink);
	font-size: .95rem;
}

.swpm-login-success-msg,
.swpm-green {
	padding: .85rem 1rem;
	border-left: 3px solid #1c7c43;
	background: rgba(28, 124, 67, .08);
	font-size: .95rem;
}

/* ---------------------------------------------------------- the gate notice */
.pm-gate-notice {
	max-width: var(--pm-container, 1240px);
	margin: 0 auto;
	padding: 1rem 1.5rem;
	border-bottom: 1px solid rgba(216, 28, 34, .25);
	background: rgba(216, 28, 34, .06);
}

.pm-gate-notice p {
	max-width: 46rem;
	margin: 0 auto;
	font-size: .95rem;
	color: var(--pm-ink);
}

.pm-gate-notice a {
	color: var(--pm-accent);
	font-weight: 600;
}

/* ================================================================= bbPress */
.bbpress #bbpress-forums {
	margin: 0;
	padding: 0;
	font-size: 1rem;
	color: var(--pm-ink);
}

/* --- section headers ----------------------------------------------------- */
.bbpress #bbpress-forums li.bbp-header {
	padding: .9rem 1.25rem;
	border: 1px solid rgba(19, 17, 23, .14);
	border-radius: 3px 3px 0 0;
	background: var(--pm-ink);
	color: #fff;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.bbpress #bbpress-forums li.bbp-header a { color: #fff; }

.bbpress #bbpress-forums li.bbp-footer { display: none; }

/* --- rows ---------------------------------------------------------------- */
.bbpress #bbpress-forums ul.bbp-forums,
.bbpress #bbpress-forums ul.bbp-topics,
.bbpress #bbpress-forums ul.bbp-replies {
	margin-bottom: 2.5rem;
	border: 1px solid rgba(19, 17, 23, .14);
	border-top: 0;
	border-radius: 0 0 3px 3px;
	background: #fff;
}

.bbpress #bbpress-forums li.bbp-body ul.forum,
.bbpress #bbpress-forums li.bbp-body ul.topic {
	padding: 1.15rem 1.25rem;
	border-bottom: 1px solid rgba(19, 17, 23, .08);
	transition: background-color .12s ease;
}

.bbpress #bbpress-forums li.bbp-body ul.forum:last-child,
.bbpress #bbpress-forums li.bbp-body ul.topic:last-child {
	border-bottom: 0;
}

.bbpress #bbpress-forums li.bbp-body ul.forum:hover,
.bbpress #bbpress-forums li.bbp-body ul.topic:hover {
	background: rgba(19, 17, 23, .025);
}

/* --- titles and meta ----------------------------------------------------- */
.bbpress #bbpress-forums .bbp-forum-title,
.bbpress #bbpress-forums .bbp-topic-permalink {
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--pm-ink);
	text-decoration: none;
}

.bbpress #bbpress-forums .bbp-forum-title:hover,
.bbpress #bbpress-forums .bbp-topic-permalink:hover {
	color: var(--pm-accent);
}

.bbpress #bbpress-forums .bbp-forum-content,
.bbpress #bbpress-forums p.bbp-topic-meta {
	margin-top: .4rem;
	font-size: .92rem;
	line-height: 1.6;
	color: rgba(19, 17, 23, .62);
}

.bbpress #bbpress-forums .bbp-forum-info .bbp-forum-content {
	max-width: 52ch;
}

/* --- counts column ------------------------------------------------------- */
.bbpress #bbpress-forums .bbp-forum-topic-count,
.bbpress #bbpress-forums .bbp-forum-reply-count,
.bbpress #bbpress-forums .bbp-topic-voice-count,
.bbpress #bbpress-forums .bbp-topic-reply-count {
	font-variant-numeric: tabular-nums;
	font-size: .95rem;
	color: rgba(19, 17, 23, .55);
}

.bbpress #bbpress-forums .bbp-forum-freshness,
.bbpress #bbpress-forums .bbp-topic-freshness {
	font-size: .85rem;
	color: rgba(19, 17, 23, .5);
}

/* --- breadcrumbs, pagination -------------------------------------------- */
.bbpress .bbp-breadcrumb {
	margin-bottom: 1.5rem;
	font-size: .85rem;
	color: rgba(19, 17, 23, .5);
}

.bbpress .bbp-breadcrumb a {
	color: rgba(19, 17, 23, .62);
	text-decoration: none;
	border-bottom: 1px solid rgba(19, 17, 23, .18);
}

.bbpress .bbp-breadcrumb a:hover {
	color: var(--pm-accent);
	border-bottom-color: var(--pm-accent);
}

.bbpress .bbp-pagination-links a,
.bbpress .bbp-pagination-links span.current {
	display: inline-block;
	min-width: 2.1rem;
	padding: .35rem .55rem;
	border: 1px solid rgba(19, 17, 23, .16);
	border-radius: 2px;
	margin-right: .3rem;
	text-align: center;
	text-decoration: none;
	font-size: .9rem;
	color: var(--pm-ink);
}

.bbpress .bbp-pagination-links span.current {
	background: var(--pm-ink);
	border-color: var(--pm-ink);
	color: #fff;
}

.bbpress .bbp-pagination-links a:hover {
	border-color: var(--pm-accent);
	color: var(--pm-accent);
}

/* --- reply / topic bodies ----------------------------------------------- */
.bbpress #bbpress-forums div.bbp-reply-header,
.bbpress #bbpress-forums div.bbp-topic-header {
	padding: .75rem 1.25rem;
	background: rgba(19, 17, 23, .035);
	border-bottom: 1px solid rgba(19, 17, 23, .08);
	font-size: .85rem;
	color: rgba(19, 17, 23, .55);
}

.bbpress #bbpress-forums div.bbp-reply-content,
.bbpress #bbpress-forums div.bbp-topic-content {
	padding: 1.5rem 1.25rem;
	line-height: 1.75;
}

.bbpress #bbpress-forums div.bbp-reply-author,
.bbpress #bbpress-forums div.bbp-topic-author {
	padding: 1.5rem 1rem;
	text-align: center;
}

.bbpress #bbpress-forums div.bbp-reply-author .bbp-author-name,
.bbpress #bbpress-forums div.bbp-topic-author .bbp-author-name {
	font-weight: 700;
	color: var(--pm-ink);
	text-decoration: none;
}

.bbpress #bbpress-forums img.avatar {
	border-radius: 50%;
}

/* --- forms --------------------------------------------------------------- */
.bbpress #bbpress-forums fieldset.bbp-form {
	margin-top: 2.5rem;
	padding: 2rem;
	border: 1px solid rgba(19, 17, 23, .14);
	border-radius: 4px;
	background: #fff;
}

.bbpress #bbpress-forums fieldset.bbp-form legend {
	padding: 0 .5rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(19, 17, 23, .62);
}

.bbpress #bbpress-forums fieldset.bbp-form input[type="text"],
.bbpress #bbpress-forums fieldset.bbp-form textarea,
.bbpress #bbpress-forums fieldset.bbp-form select {
	width: 100%;
	padding: .85rem 1rem;
	border: 1px solid rgba(19, 17, 23, .18);
	border-radius: 2px;
	background: #fbfbfb;
	font-size: 1rem;
}

.bbpress #bbpress-forums fieldset.bbp-form input:focus,
.bbpress #bbpress-forums fieldset.bbp-form textarea:focus {
	outline: none;
	border-color: var(--pm-accent);
	background: #fff;
}

.bbpress #bbpress-forums button.button.submit,
.bbpress #bbpress-forums input[type="submit"] {
	padding: .95rem 2rem;
	border: 0;
	border-radius: 2px;
	background: var(--pm-accent);
	color: #fff;
	font-size: .9rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
}

.bbpress #bbpress-forums button.button.submit:hover,
.bbpress #bbpress-forums input[type="submit"]:hover {
	background: var(--pm-ink);
	color: #fff;
}

/* --- empty state --------------------------------------------------------- */
.bbpress #bbpress-forums div.bbp-template-notice {
	padding: 1.15rem 1.25rem;
	border: 1px solid rgba(19, 17, 23, .14);
	border-left: 3px solid var(--pm-accent);
	border-radius: 2px;
	background: rgba(19, 17, 23, .025);
	color: rgba(19, 17, 23, .7);
	font-size: .95rem;
}

.bbpress #bbpress-forums div.bbp-template-notice p { margin: 0; }

/* --------------------------------------------------------- price suffix */
.pm-price .pm-per {
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: .02em;
	opacity: .62;
}

@media (max-width: 782px) {
	.swpm-login-widget-form,
	.swpm-registration-widget-form,
	.swpm-profile-form,
	#swpm-reset-form {
		padding: 1.75rem !important;
		margin: 2rem auto 3rem !important;
	}

	.bbpress .site-main > .ct-container-full > article > .entry-content {
		padding: 2rem 1.25rem 3rem !important;
	}
}

/* ------------------------------------------------ bbPress archive corrections */
/* The forum archive is not a .page, so it never got the zeroed container
   spacing — that plus an empty hero block was ~215px of dead air up top. */
.bbpress .site-main,
.bbpress .site-main > .ct-container-full,
.bbpress .site-main > .ct-container-full > article {
	padding-block: 0 !important;
	margin-block: 0 !important;
	--theme-content-vertical-spacing: 0px;
}

.bbpress .site-main > .ct-container-full > article > .entry-content {
	padding: 2.75rem 1.5rem 4rem !important;
}

/* archives render a title block with nothing in it */
.forum-archive .hero-section,
.forum-archive .entry-header {
	display: none !important;
}

/* the column headings are white-on-ink and must not inherit the dim row colour */
.bbpress #bbpress-forums ul.forum-titles li,
.bbpress #bbpress-forums li.bbp-header .bbp-forum-info,
.bbpress #bbpress-forums li.bbp-header .bbp-forum-topic-count,
.bbpress #bbpress-forums li.bbp-header .bbp-forum-reply-count,
.bbpress #bbpress-forums li.bbp-header .bbp-forum-freshness {
	color: #fff !important;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

/* ------------------------------------------------------------ reading size */
/* Default bbPress type is noticeably smaller than the rest of the site. */
.bbpress #bbpress-forums {
	font-size: 1.02rem;
}

.bbpress #bbpress-forums .bbp-forum-title,
.bbpress #bbpress-forums .bbp-topic-permalink {
	font-size: 1.18rem;
}

.bbpress #bbpress-forums li.bbp-body .bbp-forum-content,
.bbpress #bbpress-forums p.bbp-topic-meta {
	max-width: none;
	font-size: 1rem;
	line-height: 1.65;
}

.bbpress #bbpress-forums li.bbp-body .bbp-forum-topic-count,
.bbpress #bbpress-forums li.bbp-body .bbp-forum-reply-count,
.bbpress #bbpress-forums li.bbp-body .bbp-topic-voice-count,
.bbpress #bbpress-forums li.bbp-body .bbp-topic-reply-count {
	font-size: 1.02rem;
}

.bbpress #bbpress-forums li.bbp-body .bbp-forum-freshness,
.bbpress #bbpress-forums li.bbp-body .bbp-topic-freshness {
	font-size: .92rem;
}

.bbpress #bbpress-forums li.bbp-body ul.forum,
.bbpress #bbpress-forums li.bbp-body ul.topic {
	padding: 1.35rem 1.5rem;
}

/* ------------------------------------------------------------- search row */
.bbpress .bbp-search-form {
	margin-bottom: 1.5rem;
}

.bbpress .bbp-search-form input[type="text"] {
	padding: .7rem .9rem;
	border: 1px solid rgba(19, 17, 23, .18);
	border-radius: 2px 0 0 2px;
	background: #fff;
	font-size: .95rem;
}

.bbpress .bbp-search-form input[type="submit"] {
	padding: .72rem 1.5rem;
	border: 0;
	border-radius: 0 2px 2px 0;
	background: var(--pm-accent);
	color: #fff;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.bbpress .bbp-search-form input[type="submit"]:hover {
	background: var(--pm-ink);
}

/* ----------------------------------------------------- forum index header */
.bbpress #bbpress-forums {
	display: flex;
	flex-direction: column;
}

.pm-forum-head {
	order: -2;
	margin-bottom: 1.5rem;
}

.bbpress .bbp-search-form {
	order: -1;
}

.pm-forum-head h1 {
	margin: 0 0 .6rem;
	font-size: clamp(1.7rem, 3.2vw, 2.3rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--pm-ink);
}

.pm-forum-head > p {
	max-width: 52ch;
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.65;
	color: rgba(19, 17, 23, .62);
}

.pm-forum-head .pm-forum-me {
	margin-top: .9rem;
	font-size: .9rem;
	color: rgba(19, 17, 23, .5);
}

.pm-forum-head .pm-forum-me strong { color: var(--pm-ink); }

.pm-forum-head .pm-forum-me a {
	color: rgba(19, 17, 23, .62);
	text-decoration: none;
	border-bottom: 1px solid rgba(19, 17, 23, .2);
}

.pm-forum-head .pm-forum-me a:hover {
	color: var(--pm-accent);
	border-bottom-color: var(--pm-accent);
}

@media (min-width: 783px) {
	.bbpress .bbp-search-form {
		margin-top: -4.25rem;   /* pull the search box up beside the heading */
	}
}

/* Blocksy puts 40px under the page-title band; every page here opens with a
   full-bleed section that carries its own padding, so it read as a white seam. */
.site-main .hero-section {
	margin-bottom: 0 !important;
}

/* pre-launch notice on the join page */
.pm-notice {
	max-width: 34rem !important;
	margin: 0 auto 1.5rem !important;
	padding: 1rem 1.25rem;
	border: 1px solid rgba(255, 255, 255, .18);
	border-left: 3px solid var(--pm-accent);
	border-radius: 2px;
	background: rgba(255, 255, 255, .04);
}

/* The negative-margin trick collided with the "signed in as" line. Lay the
   heading and the search box out as a real two-column header row instead. */
@media (min-width: 783px) {
	.bbpress .bbp-search-form {
		margin-top: 0 !important;
	}

	.bbpress #bbpress-forums {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 2rem;
		align-items: start;
	}

	.bbpress #bbpress-forums > * {
		grid-column: 1 / -1;
	}

	.bbpress #bbpress-forums > .pm-forum-head {
		grid-column: 1;
		grid-row: 1;
		margin-bottom: 2.25rem;
	}

	.bbpress #bbpress-forums > .bbp-search-form {
		grid-column: 2;
		grid-row: 1;
		justify-self: end;
		margin: .35rem 0 2.25rem !important;
	}
}

/* ------------------------------------------------------ single board view */
/* Blocksy emits an empty title block for the forum CPT too */
.single-forum .hero-section,
.single-topic .hero-section,
.single-reply .hero-section,
.single-forum .entry-header,
.single-topic .entry-header {
	display: none !important;
}

.single-forum .site-main,
.single-forum .site-main > .ct-container-full,
.single-forum .site-main > .ct-container-full > article,
.single-topic .site-main,
.single-topic .site-main > .ct-container-full,
.single-topic .site-main > .ct-container-full > article {
	padding-block: 0 !important;
	margin-block: 0 !important;
	--theme-content-vertical-spacing: 0px;
}

.single-forum .site-main > .ct-container-full > article > .entry-content,
.single-topic .site-main > .ct-container-full > article > .entry-content {
	max-width: var(--pm-container, 1240px);
	margin-inline: auto;
	padding: 2.75rem 1.5rem 4rem !important;
}

.pm-crumb {
	margin: 0 0 .9rem;
	font-size: .85rem;
}

.pm-crumb a {
	color: rgba(19, 17, 23, .55);
	text-decoration: none;
	border-bottom: 1px solid rgba(19, 17, 23, .18);
}

.pm-crumb a:hover {
	color: var(--pm-accent);
	border-bottom-color: var(--pm-accent);
}

/* on a single board the header is the only thing in the top row */
@media (min-width: 783px) {
	.bbpress #bbpress-forums > .pm-forum-head--single {
		grid-column: 1 / -1;
	}
}

.bbpress #bbpress-forums .bbp-forum-subscribe,
.bbpress #bbpress-forums .bbp-topic-subscribe {
	margin-bottom: 1rem;
	font-size: .9rem;
}

.bbpress #bbpress-forums .subscription-toggle {
	display: inline-block;
	padding: .35rem .85rem;
	border: 1px solid rgba(19, 17, 23, .18);
	border-radius: 2px;
	color: rgba(19, 17, 23, .62);
	text-decoration: none;
	font-size: .85rem;
}

.bbpress #bbpress-forums .subscription-toggle:hover {
	border-color: var(--pm-accent);
	color: var(--pm-accent);
}

/* stack the two empty-state notices as one quiet block */
.bbpress #bbpress-forums > .bbp-template-notice {
	margin-bottom: .75rem;
}

/* Selects were clipping their own text: the theme sets a fixed height and my
   padding pushed the label out of the box. Let them size to content. */
.bbpress #bbpress-forums fieldset.bbp-form select,
.swpm-registration-widget-form select,
.swpm-profile-form select {
	box-sizing: border-box;
	width: 100%;
	height: auto !important;
	min-height: 3.1rem;
	padding: .85rem 2.75rem .85rem 1rem !important;
	line-height: 1.4 !important;
	border: 1px solid rgba(19, 17, 23, .18);
	border-radius: 2px;
	background-color: #fbfbfb;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23131117' stroke-width='1.6' stroke-opacity='.55' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	font-size: 1rem;
	color: var(--pm-ink);
}

.bbpress #bbpress-forums fieldset.bbp-form select:focus,
.swpm-registration-widget-form select:focus,
.swpm-profile-form select:focus {
	outline: none;
	border-color: var(--pm-accent);
	background-color: #fff;
}

/* the checkbox row under the editor */
.bbpress #bbpress-forums fieldset.bbp-form p:has(> input[type="checkbox"]),
.bbpress #bbpress-forums fieldset.bbp-form .bbp-topic-subscription {
	display: flex;
	align-items: center;
	gap: .55rem;
	margin: 1.25rem 0;
	font-size: .95rem;
}

.bbpress #bbpress-forums fieldset.bbp-form input[type="checkbox"] {
	width: 1rem;
	height: 1rem;
	margin: 0;
	accent-color: var(--pm-accent);
}

.bbpress #bbpress-forums fieldset.bbp-form label {
	display: block;
	margin-bottom: .4rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(19, 17, 23, .62);
}

/* ------------------------------------------------------- single topic view */
/* The author column is ~115px by default, which broke "franktufano" across
   two lines mid-word. */
.bbpress #bbpress-forums div.bbp-topic-author,
.bbpress #bbpress-forums div.bbp-reply-author {
	width: 190px;
	min-width: 190px;
	padding: 1.75rem 1.25rem;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

.bbpress #bbpress-forums div.bbp-topic-author .bbp-author-name,
.bbpress #bbpress-forums div.bbp-reply-author .bbp-author-name {
	display: block;
	margin-top: .6rem;
	font-size: .98rem;
	line-height: 1.35;
}

.bbpress #bbpress-forums div.bbp-topic-author .bbp-author-role,
.bbpress #bbpress-forums div.bbp-reply-author .bbp-author-role {
	display: block;
	margin-top: .15rem;
	font-size: .8rem;
	font-style: normal;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(19, 17, 23, .45);
}

/* moderators see the poster's IP — not something to put on the page */
.bbpress #bbpress-forums .bbp-author-ip {
	display: none !important;
}

.bbpress #bbpress-forums div.bbp-topic-author img.avatar,
.bbpress #bbpress-forums div.bbp-reply-author img.avatar {
	width: 64px;
	height: 64px;
	margin: 0 auto;
	float: none;
}

/* the AUTHOR / POSTS strip was ~90px tall and mostly empty */
.bbpress #bbpress-forums li.bbp-header ul.bbp-threaded-replies,
.bbpress #bbpress-forums li.bbp-header .bbp-topic-author,
.bbpress #bbpress-forums li.bbp-header .bbp-reply-author {
	width: 190px;
	min-width: 190px;
	padding: 0 1.25rem;
}

.bbpress #bbpress-forums li.bbp-header {
	padding-block: .8rem;
	line-height: 1.2;
}

/* topic content column */
.bbpress #bbpress-forums div.bbp-topic-content,
.bbpress #bbpress-forums div.bbp-reply-content {
	padding: 1.75rem 1.75rem 1.75rem 0;
	font-size: 1.02rem;
	line-height: 1.75;
}

.bbpress #bbpress-forums div.bbp-topic-content p,
.bbpress #bbpress-forums div.bbp-reply-content p {
	margin: 0 0 1.1rem;
}

.bbpress #bbpress-forums div.bbp-topic-content ul,
.bbpress #bbpress-forums div.bbp-reply-content ul {
	margin: 0 0 1.3rem;
	padding-left: 1.2rem;
}

.bbpress #bbpress-forums div.bbp-topic-content li,
.bbpress #bbpress-forums div.bbp-reply-content li {
	margin-bottom: .45rem;
}

/* strong lines act as the section headings inside a post */
.bbpress #bbpress-forums div.bbp-topic-content p > strong:only-child,
.bbpress #bbpress-forums div.bbp-reply-content p > strong:only-child {
	display: block;
	margin-top: .4rem;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(19, 17, 23, .55);
}

/* subscribe / favourite row */
.bbpress #bbpress-forums .bbp-topic-subscribe,
.bbpress #bbpress-forums .bbp-topic-favorite {
	display: inline-block;
	margin: 0 .5rem .25rem 0;
}

.bbpress #bbpress-forums .favorite-toggle a {
	display: inline-block;
	padding: .35rem .85rem;
	border: 1px solid rgba(19, 17, 23, .18);
	border-radius: 2px;
	color: rgba(19, 17, 23, .62);
	text-decoration: none;
	font-size: .85rem;
}

.bbpress #bbpress-forums .favorite-toggle a:hover {
	border-color: var(--pm-accent);
	color: var(--pm-accent);
}

/* admin row of EDIT | MERGE | CLOSE … links */
.bbpress #bbpress-forums .bbp-admin-links {
	font-size: .72rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	opacity: .45;
}

.bbpress #bbpress-forums .bbp-admin-links:hover {
	opacity: 1;
}

.bbpress #bbpress-forums .bbp-meta {
	padding: .7rem 1.25rem;
	font-size: .8rem;
}

@media (max-width: 782px) {
	.bbpress #bbpress-forums div.bbp-topic-author,
	.bbpress #bbpress-forums div.bbp-reply-author {
		width: auto;
		min-width: 0;
		display: flex;
		align-items: center;
		gap: .75rem;
		padding: 1rem 1.25rem;
		text-align: left;
		border-bottom: 1px solid rgba(19, 17, 23, .08);
	}

	.bbpress #bbpress-forums div.bbp-topic-author img.avatar,
	.bbpress #bbpress-forums div.bbp-reply-author img.avatar {
		width: 36px;
		height: 36px;
		margin: 0;
	}

	.bbpress #bbpress-forums div.bbp-topic-author .bbp-author-name,
	.bbpress #bbpress-forums div.bbp-reply-author .bbp-author-name {
		margin-top: 0;
	}

	.bbpress #bbpress-forums div.bbp-topic-content,
	.bbpress #bbpress-forums div.bbp-reply-content {
		padding: 1.25rem;
	}
}

/* /membership-join/ opens with its own "Join the private forum" heading, so the
   theme's page-title band just repeated it */
.page-id-1080 .hero-section {
	display: none !important;
}

/* --------------------------------------------- topic view: undo index layout */
/* The flex/grid header row belongs to the forum INDEX only. On a topic the
   subscribe/favourite spans are direct children of #bbpress-forums, so the
   grid gave each one its own row. */
.single-topic #bbpress-forums,
.single-forum #bbpress-forums {
	display: block !important;
}

/* bbPress separates those two links with a bare " | " text node; zeroing the
   font on the wrapper kills it without touching any real content. */
.single-topic #bbpress-forums {
	font-size: 0;
}

.single-topic #bbpress-forums > * {
	font-size: 1rem;
}

.single-topic #bbpress-forums > span[id$="-toggle"] {
	display: inline-block;
	margin: 0 .5rem 1.25rem 0;
	font-size: 1rem;
}

.single-topic #bbpress-forums > span[id$="-toggle"] a {
	display: inline-block;
	padding: .4rem .9rem;
	border: 1px solid rgba(19, 17, 23, .18);
	border-radius: 2px;
	color: rgba(19, 17, 23, .62);
	text-decoration: none;
	font-size: .85rem;
}

.single-topic #bbpress-forums > span[id$="-toggle"] a:hover {
	border-color: var(--pm-accent);
	color: var(--pm-accent);
}

/* the AUTHOR / POSTS strip inherited the post padding and grew to ~90px */
.bbpress #bbpress-forums li.bbp-header div.bbp-reply-author,
.bbpress #bbpress-forums li.bbp-header div.bbp-reply-content,
.bbpress #bbpress-forums li.bbp-header div.bbp-topic-author,
.bbpress #bbpress-forums li.bbp-header div.bbp-topic-content {
	padding-block: 0 !important;
	font-size: .78rem !important;
	line-height: 1.2 !important;
}

.bbpress #bbpress-forums li.bbp-header div.bbp-reply-content,
.bbpress #bbpress-forums li.bbp-header div.bbp-topic-content {
	padding-left: 0 !important;
}

/* "This forum has 1 topic…" / "This topic has 0 replies, 1 voice…" — on a new
   forum this only advertises how empty it is, and the counts are already in
   the index table. Scoped with :has so genuine info notices still show. */
.bbpress #bbpress-forums .bbp-template-notice.info:has(.bbp-forum-description),
.bbpress #bbpress-forums .bbp-template-notice.info:has(.bbp-topic-description) {
	display: none !important;
}

/* "Your account has the ability to post unrestricted HTML content." — bbPress
   shows this only to users with `unfiltered_html` (admins), never to members.
   It tells them nothing actionable. Validation errors carry .error, so they
   still render. */
.bbpress #bbpress-forums fieldset.bbp-form > .bbp-template-notice:not(.error):not(.warning) {
	display: none !important;
}

/* bbPress prints two stacked empty-state notices; keep the .info one only */
.bbpress #bbpress-forums > .bbp-template-notice:not(.info) {
	display: none !important;
}

/* ------------------------------------------------- post layout: kill the float */
/* bbPress floats the author column left but leaves the content column at full
   width, so long paragraphs wrapped underneath the avatar. Two real columns
   instead. */
.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] {
	display: flex;
	align-items: flex-start;
}

.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-reply-author,
.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-topic-author {
	float: none !important;
	flex: 0 0 190px;
}

.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-reply-content,
.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-topic-content {
	flex: 1 1 auto;
	min-width: 0;   /* let long words wrap instead of forcing the row wider */
}

/* keep the AUTHOR / POSTS strip on the same column grid */
.single-topic #bbpress-forums li.bbp-header {
	display: flex;
	align-items: center;
}

.single-topic #bbpress-forums li.bbp-header > .bbp-reply-author,
.single-topic #bbpress-forums li.bbp-header > .bbp-topic-author {
	float: none !important;
	flex: 0 0 190px;
}

@media (max-width: 782px) {
	.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] {
		display: block;
	}

	.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-reply-author,
	.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-topic-author {
		flex: none;
	}
}

/* bbPress puts a large margin-left on the content column to clear the old
   float. In the flex layout that margin is added on top of the column width,
   which left a ~150px hole between the avatar and the text. */
.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-reply-content,
.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-topic-content,
.single-topic #bbpress-forums li.bbp-header > .bbp-reply-content,
.single-topic #bbpress-forums li.bbp-header > .bbp-topic-content {
	margin-left: 0 !important;
	padding-left: .5rem !important;
}

/* the author rail only needs to fit an avatar and a name */
.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-reply-author,
.bbpress #bbpress-forums li.bbp-body > div[class*="loop-item"] > .bbp-topic-author,
.single-topic #bbpress-forums li.bbp-header > .bbp-reply-author,
.single-topic #bbpress-forums li.bbp-header > .bbp-topic-author {
	flex: 0 0 150px;
	width: 150px;
	min-width: 150px;
	padding-inline: 1rem;
}

/* The duplicate-notice rule must not reach the user profile tabs — favourites,
   subscriptions and topics-started render their empty state as a plain
   (non-.info) notice, and hiding it left a blank box. */
.bbpress #bbpress-forums > .bbp-template-notice:not(.info) {
	display: block !important;
}

.single-forum #bbpress-forums > .bbp-template-notice:not(.info) {
	display: none !important;
}

/* ------------------------------------------------------- user profile pages */
.bbpress #bbpress-forums #bbp-user-navigation ul {
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(19, 17, 23, .12);
}

.bbpress #bbpress-forums #bbp-user-navigation li {
	margin: 0;
	border-bottom: 1px solid rgba(19, 17, 23, .08);
}

.bbpress #bbpress-forums #bbp-user-navigation li a {
	display: block;
	padding: .7rem .9rem;
	color: rgba(19, 17, 23, .68);
	text-decoration: none;
	font-size: .92rem;
	transition: background-color .12s ease, color .12s ease;
}

.bbpress #bbpress-forums #bbp-user-navigation li a:hover {
	background: rgba(19, 17, 23, .03);
	color: var(--pm-accent);
}

.bbpress #bbpress-forums #bbp-user-navigation li.current a {
	background: var(--pm-ink);
	color: #fff;
	font-weight: 600;
}

.bbpress #bbpress-forums #bbp-user-body h2.entry-title,
.bbpress #bbpress-forums #bbp-user-body h2 {
	margin: 0 0 1.25rem;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--pm-ink);
}

.bbpress #bbpress-forums #bbp-single-user-details img.avatar {
	border-radius: 50%;
}

/* the 52ch measure is for the intro paragraph, not the one-line member strip */
.pm-forum-head .pm-forum-me {
	max-width: none;
	white-space: nowrap;
}

@media (max-width: 782px) {
	.pm-forum-head .pm-forum-me {
		white-space: normal;
	}
}

/* cross-reference between the membership account page and the forum profile */
.pm-profile-xref {
	max-width: 34rem;
	margin: 0 auto 3rem;
	padding: 1rem 1.25rem;
	border-left: 3px solid rgba(19, 17, 23, .18);
	background: rgba(19, 17, 23, .03);
	font-size: .92rem;
	line-height: 1.6;
	color: rgba(19, 17, 23, .68);
}

.pm-profile-xref a {
	color: var(--pm-accent);
	font-weight: 600;
}

/* -------------------------------------------------------- account hub links */
.pm-hub {
	max-width: 34rem;
	margin: 0 auto 4rem;
	padding: 1.75rem;
	border: 1px solid rgba(19, 17, 23, .14);
	border-radius: 4px;
	background: #fff;
}

.pm-hub-title {
	margin: 0 0 1rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(19, 17, 23, .55);
}

.pm-hub ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(19, 17, 23, .08);
}

.pm-hub li {
	margin: 0;
	padding: .85rem 0;
	border-bottom: 1px solid rgba(19, 17, 23, .08);
}

.pm-hub li a {
	display: block;
	font-size: 1rem;
	font-weight: 600;
	color: var(--pm-ink);
	text-decoration: none;
}

.pm-hub li a:hover { color: var(--pm-accent); }

.pm-hub li span {
	display: block;
	margin-top: .15rem;
	font-size: .88rem;
	color: rgba(19, 17, 23, .55);
}

/* compact link row on board / topic pages */
.pm-forum-links {
	margin: -.5rem 0 1.75rem;
	font-size: .88rem;
	color: rgba(19, 17, 23, .45);
}

.pm-forum-links a {
	color: rgba(19, 17, 23, .62);
	text-decoration: none;
	border-bottom: 1px solid rgba(19, 17, 23, .18);
}

.pm-forum-links a:hover {
	color: var(--pm-accent);
	border-bottom-color: var(--pm-accent);
}
