/**
 * Footer, and the sidebar filter panels.
 *
 * Both load site-wide: the footer is on every page, and the filters appear on
 * the shop, on category archives and on search results.
 */

/* --------------------------------------------------------------------------
   1. Footer
   -------------------------------------------------------------------------- */

.pctmart-footer {
	margin-top: clamp(40px, 6vw, 72px);
	background: var(--pct-footer-bg);
	color: rgba(255, 255, 255, 0.72);
	font-size: 14px;
	line-height: 1.6;
}

.pctmart-footer-main {
	display: grid;
	grid-template-columns: 1.6fr repeat(4, 1fr);
	gap: clamp(24px, 4vw, 48px);
	padding-top: clamp(32px, 5vw, 56px);
	padding-bottom: clamp(28px, 4vw, 44px);
}

.pctmart-footer-logo {
	margin: 0 0 12px;
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.pctmart-footer-logo-link {
	display: inline-block;
	color: inherit;
	text-decoration: none;
}

/* The header logo in monochrome: the coloured mark would compete with the
   dark footer, and grey keeps the brand shape without the colour. */
.pctmart-footer-logo-img {
	display: block;
	width: auto;
	max-width: 180px;
	height: auto;
	max-height: 60px;
	filter: grayscale(1);
}

.pctmart-footer-blurb {
	margin: 0 0 14px;
	max-width: 42ch;
}

.pctmart-footer-contact {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pctmart-footer-heading {
	margin: 0 0 14px;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.pctmart-footer-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pctmart-footer-list li {
	margin: 0 0 8px;
	list-style: none;
}

.pctmart-footer-list a {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
}

.pctmart-footer-list a:hover,
.pctmart-footer-list a:focus {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pctmart-footer-more {
	font-weight: 600;
}

/* The promise list is statements, not links, so it gets ticks rather than
   underlines to stop it reading as broken navigation. */
.pctmart-footer-promise li {
	position: relative;
	padding-left: 22px;
}

.pctmart-footer-promise li::before {
	content: "";
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 10px;
	height: 5px;
	border-left: 2px solid var(--pct-brand-mid);
	border-bottom: 2px solid var(--pct-brand-mid);
	transform: rotate(-45deg);
}

.pctmart-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 13px;
}

.pctmart-footer-bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
	padding-top: 18px;
	padding-bottom: 18px;
}

.pctmart-footer-copy {
	margin: 0;
}

.pctmart-footer-policies {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pctmart-footer-policies li {
	margin: 0;
	list-style: none;
}

.pctmart-footer-policies a {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
}

.pctmart-footer-policies a:hover,
.pctmart-footer-policies a:focus {
	color: #fff;
}

/* Full width on its own row: it is the longest line in the bar and should not
   squeeze the copyright. */
.pctmart-footer-disclaimer {
	flex: 1 1 100%;
	margin: 0;
	color: rgba(255, 255, 255, 0.5);
	font-size: 12px;
}

@media (max-width: 900px) {
	.pctmart-footer-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pctmart-footer-brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.pctmart-footer-main {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* --------------------------------------------------------------------------
   2. Sidebar filters

   Printed into the parent's #secondary on the shop, category archives and
   product search. The parent already positions and drawer-ifies that column
   on mobile, so these rules only style the panels inside it.
   -------------------------------------------------------------------------- */

.pctmart-filters {
	margin-bottom: 24px;
	font-size: 14px;
}

.pctmart-filter-active {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 16px;
	padding: 10px 12px;
	border-radius: 8px;
	background: var(--pct-brand-tint);
}

.pctmart-filter-active-count {
	color: var(--pct-brand-deep);
	font-size: 13px;
	font-weight: 600;
}

.pctmart-filter-clear {
	color: #b42318;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.pctmart-filter-clear:hover,
.pctmart-filter-clear:focus {
	text-decoration: underline;
}

.pctmart-filter-group {
	margin-bottom: 26px;
	padding-bottom: 20px;
	border-bottom: 1px solid #e4e7ec;
}

.pctmart-filter-group:last-child {
	border-bottom: 0;
}

.pctmart-filter-title {
	margin: 0 0 10px;
	color: #1d2327;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.pctmart-filter-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pctmart-filter-item {
	margin: 0;
	list-style: none;
}

/* A long ingredient list is the norm here — 20 rows — so it scrolls inside
   the panel rather than pushing the rest of the sidebar off the screen. */
.pctmart-filter-scroll {
	max-height: 340px;
	overflow-y: auto;
	padding-right: 4px;
	overscroll-behavior: contain;
}

.pctmart-filter-link,
.pctmart-filter-check {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 7px 8px;
	border-radius: 6px;
	color: #344054;
	line-height: 1.35;
	text-decoration: none;
}

.pctmart-filter-label {
	flex: 1 1 auto;
	min-width: 0;
}

.pctmart-filter-link:hover,
.pctmart-filter-link:focus,
.pctmart-filter-check:hover,
.pctmart-filter-check:focus {
	background: var(--pct-brand-tint-soft);
	color: #1d2327;
}

.pctmart-filter-link.is-current {
	background: var(--pct-brand-tint);
	color: var(--pct-brand-deep);
	font-weight: 600;
}

.pctmart-filter-count {
	flex: 0 0 auto;
	color: #667085;
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

/* The links are checkboxes in behaviour — every state is a URL — so they are
   drawn as checkboxes to match. */
.pctmart-filter-box {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	border: 1.5px solid #cfd6dd;
	border-radius: 4px;
	background: #fff;
	color: #fff;
}

.pctmart-filter-check.is-on {
	color: var(--pct-brand-deep);
	font-weight: 600;
}

.pctmart-filter-check.is-on .pctmart-filter-box {
	border-color: var(--pct-brand-deep);
	background: var(--pct-brand-deep);
}

/* Search at the top of the sidebar. The shared form is styled for the red
   header, so on the white sidebar it gets a border to show where the field is.
   The suggestion panel is wider than the column and opens over the product
   grid, since product names do not fit in a sidebar width. */
.pctmart-filter-search {
	margin-bottom: 22px;
}

.pctmart-search-sidebar .pctmart-search-input {
	border: 1px solid #d0d5dd;
	background: #fff;
	color: #1d2327;
}

.pctmart-search-sidebar .pctmart-search-input::placeholder,
.pctmart-search-sidebar .pctmart-search-icon,
.pctmart-search-sidebar .pctmart-search-clear {
	color: #667085;
}

.pctmart-search-sidebar .pctmart-search-input:focus {
	border-color: var(--pct-brand-deep);
	outline: 2px solid var(--pct-brand-tint);
	outline-offset: 0;
}

.pctmart-search-sidebar .pctmart-suggest {
	width: max(100%, 360px);
}

/* Category tree. A parent row is its link plus a separate fold button, so
   the name always navigates and only the button folds. */
.pctmart-filter-branch {
	display: flex;
	align-items: center;
	gap: 4px;
}

.pctmart-filter-branch .pctmart-filter-link {
	flex: 1 1 auto;
	min-width: 0;
}

/* A real target: a bordered 36px square with a bold chevron. */
.pctmart-filter-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 36px;
	height: 36px;
	padding: 0;
	border: 1px solid #cfd6dd;
	border-radius: 6px;
	background: #fff;
	color: #111;
	cursor: pointer;
}

.pctmart-filter-toggle:hover,
.pctmart-filter-toggle:focus-visible {
	border-color: #111;
	background: var(--pct-brand-tint-soft);
}

.pctmart-filter-toggle:focus-visible {
	outline: 2px solid var(--pct-brand-deep);
	outline-offset: 1px;
}

.pctmart-filter-toggle svg {
	transition: transform 0.15s ease;
}

.pctmart-filter-item.is-open > .pctmart-filter-branch .pctmart-filter-toggle svg {
	transform: rotate(180deg);
}

/* Closed branches are hidden only once the script has taken over; with no
   script every branch stays open and reachable. */
.pctmart-filter-tree.is-scripted .pctmart-filter-item.has-children:not(.is-open) > .pctmart-filter-sublist {
	display: none;
}

/* The category tree gets more height than the attribute lists: it is the
   main way through the catalogue. */
.pctmart-filter-tree.pctmart-filter-scroll {
	max-height: min(62vh, 560px);
}

/* In the mobile drawer the panel itself scrolls, so the lists inside it do
   not: one scroll, not one inside another. Rows grow to a comfortable tap
   height, and the chevrons sit clear of the drawer's scrollbar. */
@media (max-width: 992px) {
	.pctmart-filter-scroll {
		max-height: none;
		overflow: visible;
		padding-right: 0;
	}

	.pctmart-filter-tree.pctmart-filter-scroll {
		max-height: none;
	}

	.pctmart-filter-link,
	.pctmart-filter-check {
		min-height: 44px;
		padding-top: 9px;
		padding-bottom: 9px;
		font-size: 15px;
	}

	.pctmart-filter-toggle {
		flex-basis: 44px;
		height: 44px;
		margin-right: 4px;
	}

	.pctmart-filter-toggle svg {
		width: 20px;
		height: 20px;
	}
}

.pctmart-filter-sublist {
	margin: 2px 0 6px 14px;
	padding-left: 10px;
	border-left: 1px solid #e4e7ec;
}

.pctmart-filter-sublist .pctmart-filter-link {
	padding-top: 5px;
	padding-bottom: 5px;
	font-size: 13.5px;
}

.pctmart-filter-links {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin: 10px 0 0;
}

.pctmart-filter-more {
	display: inline-block;
	padding: 0 8px;
	color: var(--pct-brand-deep);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.pctmart-filter-more:hover,
.pctmart-filter-more:focus {
	text-decoration: underline;
}

/* --------------------------------------------------------------------------
   3. Category copy

   Two blocks: a short intro under the heading, and a longer note under the
   product grid. The note is measured for reading rather than left at the grid
   width, which on a four-column archive is far too wide for prose.
   -------------------------------------------------------------------------- */

.pctmart-cat-intro {
	margin: 0 0 24px;
	max-width: 76ch;
	color: #4a5565;
	font-size: 15px;
	line-height: 1.65;
}

.pctmart-cat-intro p:last-child {
	margin-bottom: 0;
}

.pctmart-cat-copy {
	clear: both;
	margin-top: clamp(32px, 4vw, 48px);
	padding-top: clamp(24px, 3vw, 32px);
	border-top: 1px solid #e4e7ec;
	max-width: 76ch;
	color: #4a5565;
	font-size: 15px;
	line-height: 1.7;
}

.pctmart-cat-copy p {
	margin: 0 0 1em;
}

.pctmart-cat-copy p:last-child {
	margin-bottom: 0;
}

/* The lead heading is the largest in the block; the section headings inside
   the body step down from it. Without this the body h2s inherit the theme's
   default h2 size and end up bigger than the heading they sit under. */
.pctmart-cat-copy-title {
	margin: 0 0 14px;
	color: #1d2327;
	font-size: clamp(20px, 2.3vw, 26px);
	font-weight: 700;
	line-height: 1.25;
}

.pctmart-cat-copy h2:not(.pctmart-cat-copy-title) {
	margin: 1.8em 0 0.6em;
	color: #1d2327;
	font-size: clamp(16px, 1.7vw, 19px);
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
}

/* --------------------------------------------------------------------------
   4. Category icons in the sidebar

   The icon is pasted SVG, so it is sized and coloured here rather than in the
   markup — which means one place to change it and no editing 32 icons.
   -------------------------------------------------------------------------- */

.pctmart-cat-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	color: #111;
}

.pctmart-cat-icon svg {
	width: 100%;
	height: 100%;
	/* Pasted icons vary; forcing these two makes a mixed set look like a set. */
	fill: none;
	stroke: currentColor;
}

.pctmart-cat-icon img,
.pctmart-cat-icon-img {
	width: 22px;
	height: 22px;
	border-radius: 4px;
	object-fit: cover;
}

/* Same column as the category icons, a step quieter so the checkbox stays
   the thing that reads as interactive. */
.pctmart-compound-icon {
	display: inline-flex;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	color: #111;
}

.pctmart-compound-icon svg {
	width: 100%;
	height: 100%;
}

.pctmart-filter-check.is-on .pctmart-compound-icon {
	color: #111;
}

/* Holds the column so labels line up whether or not an icon is set. */
.pctmart-cat-icon.is-empty {
	background: transparent;
}

.pctmart-filter-link.is-current .pctmart-cat-icon {
	color: #111;
}

/* Category archive banner. */
.pctmart-cat-banner {
	margin: 0 0 24px;
	border-radius: 12px;
	overflow: hidden;
	line-height: 0;
}

.pctmart-cat-banner img {
	display: block;
	width: 100%;
	height: auto;
}

/* Shop archive (inc/shop-seo.php): the heading is a full sentence, so the
   intro goes under it rather than in Shoptimizer's second column. */
.post-type-archive-product .woocommerce-products-header {
	flex-direction: column;
	align-items: stretch;
}

/* Manufacturer logo on its archive (inc/manufacturer.php). Shoptimizer paints
   the archive header as a beige banner for category artwork; here it only
   holds the logo, so it goes plain. Logos arrive in every shape, so the box
   caps both sides and the image keeps its own proportions. */
.tax-pa_manufacturer .woocommerce-products-header,
.tax-pa_active-ingredient .woocommerce-products-header {
	padding: 0;
	background: none;
}

/* Compound archive heading (inc/compound-pages.php): the brand names follow
   the compound in a lighter weight, so the generic name stays the heading. */
.pctmart-compound-head {
	margin: 0 0 24px;
}

.pctmart-compound-head .woocommerce-products-header__title {
	margin: 0;
}

.pctmart-compound-brands {
	color: #667085;
	font-weight: 500;
}

.pctmart-compound-intro {
	margin-top: 8px;
	max-width: 76ch;
	color: #4a5565;
	font-size: 15px;
	line-height: 1.6;
}

.pctmart-compound-intro p {
	margin: 0;
}

/* Logo square on the left, name and description beside it. */
.pctmart-brand-head {
	display: flex;
	align-items: center;
	gap: 20px;
	margin: 0 0 24px;
}

.pctmart-brand-hero {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 112px;
	width: 112px;
	height: 112px;
	margin: 0;
	padding: 10px;
	border: 1px solid var(--pct-line);
	border-radius: var(--pct-radius);
	background: #fff;
}

.pctmart-brand-hero-logo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.pctmart-brand-text {
	flex: 1 1 auto;
	min-width: 0;
}

.pctmart-brand-head .woocommerce-products-header__title {
	margin: 0;
}

.pctmart-brand-desc {
	margin-top: 6px;
	max-width: 72ch;
	color: #4a5565;
	font-size: 15px;
	line-height: 1.55;
}

.pctmart-brand-desc p {
	margin: 0;
}

@media (max-width: 560px) {
	.pctmart-brand-head {
		gap: 14px;
	}

	.pctmart-brand-hero {
		flex-basis: 80px;
		width: 80px;
		height: 80px;
		padding: 6px;
	}

	.pctmart-brand-desc {
		font-size: 14px;
	}
}

/* --------------------------------------------------------------------------
   5. WhatsApp band, below the footer
   -------------------------------------------------------------------------- */

.pctmart-whatsapp {
	background: var(--pct-brand-tint);
	border-top: 1px solid var(--pct-brand-tint-strong);
}

.pctmart-whatsapp-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 22px;
	padding-bottom: 22px;
}

.pctmart-whatsapp-kicker {
	margin: 0 0 2px;
	color: #0c111d;
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 600;
	line-height: 1.3;
}

.pctmart-whatsapp-sub {
	margin: 0;
	color: #475467;
	font-size: 14px;
}

.pctmart-whatsapp-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 6px;
	background: var(--pct-brand-mid);
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.pctmart-whatsapp-button:hover,
.pctmart-whatsapp-button:focus {
	background: var(--pct-brand-mid-deep);
	color: #fff;
}

/* All-categories page (inc/category-index.php). Cards flow into as many
   columns as fit; a card holds the category and its subcategory links. */
.pctmart-catindex {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	align-items: start;
	gap: 20px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.pctmart-catindex-card {
	margin: 0;
	padding: 16px;
	border: 1px solid var(--pct-line);
	border-radius: var(--pct-radius);
	background: #fff;
	list-style: none;
}

.pctmart-catindex-head {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 12px;
	align-items: center;
	color: #1d2327;
	text-decoration: none;
}

.pctmart-catindex-media {
	grid-row: 1 / span 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 8px;
	background: var(--pct-brand-tint-soft);
	overflow: hidden;
}

.pctmart-catindex-img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.pctmart-catindex-media .pctmart-catindex-icon {
	width: 28px;
	height: 28px;
}

.pctmart-catindex-name {
	align-self: end;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
}

.pctmart-catindex-total {
	align-self: start;
	color: #667085;
	font-size: 13px;
}

.pctmart-catindex-head:hover .pctmart-catindex-name,
.pctmart-catindex-head:focus .pctmart-catindex-name {
	color: var(--pct-brand-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pctmart-catindex-children {
	margin: 12px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid var(--pct-line);
	list-style: none;
	font-size: 14px;
}

.pctmart-catindex-children li {
	margin: 0 0 6px;
	list-style: none;
}

.pctmart-catindex-children .pctmart-catindex-children {
	margin: 6px 0 0 12px;
	padding: 0 0 0 10px;
	border-top: 0;
	border-left: 1px solid var(--pct-line);
}

.pctmart-catindex-children a {
	color: #344054;
	text-decoration: none;
}

.pctmart-catindex-children a:hover,
.pctmart-catindex-children a:focus {
	color: var(--pct-brand-deep);
	text-decoration: underline;
}

.pctmart-catindex-count {
	color: #98a2b3;
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

/* Product request and contact forms (inc/helpdesk.php). */
.pctmart-request {
	clear: both;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
	gap: 24px 40px;
	margin: clamp(32px, 5vw, 56px) 0 0;
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--pct-line);
	border-radius: var(--pct-radius);
	background: var(--pct-brand-tint-soft);
}

.pctmart-request-contact {
	grid-template-columns: minmax(0, 1fr);
	max-width: 760px;
	background: #fff;
}

.pctmart-request-title {
	margin: 0 0 8px;
	color: #1d2327;
	font-size: clamp(19px, 2vw, 23px);
	font-weight: 700;
	line-height: 1.25;
}

.pctmart-request-intro p {
	margin: 0;
	color: #4a5565;
	font-size: 15px;
	line-height: 1.55;
}

.pctmart-request-form {
	margin: 0;
}

.pctmart-request-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 16px;
}

.pctmart-request-field {
	position: relative;
	margin: 0 0 14px;
}

.pctmart-request-field label {
	display: block;
	margin-bottom: 5px;
	color: #344054;
	font-size: 13px;
	font-weight: 600;
}

.pctmart-request-req {
	color: #b42318;
}

.pctmart-request-field input,
.pctmart-request-field textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	color: #1d2327;
	font-size: 15px;
	line-height: 1.4;
	box-shadow: none;
}

.pctmart-request-field input:focus,
.pctmart-request-field textarea:focus {
	border-color: var(--pct-brand-deep);
	outline: 2px solid var(--pct-brand-tint);
	outline-offset: 0;
}

/* The stock suggestions open under the compound field, over the fields
   below it. */
.pctmart-request-field .pctmart-suggest {
	top: calc(100% + 4px);
	width: max(100%, 340px);
}

/* Input with a clear button sitting inside its right edge. */
.pctmart-suggest-wrap {
	position: relative;
	display: block;
}

.pctmart-suggest-wrap .pctmart-suggest-input {
	padding-right: 44px;
}

.pctmart-suggest-clear {
	position: absolute;
	top: 50%;
	right: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #667085;
	transform: translateY(-50%);
	cursor: pointer;
}

.pctmart-suggest-clear:hover,
.pctmart-suggest-clear:focus {
	background: #f2f4f7;
	color: #111;
}

.pctmart-suggest-clear svg {
	width: 18px;
	height: 18px;
}

.pctmart-suggest-clear[hidden] {
	display: none;
}

/* Off-screen rather than display:none: some bots skip fields they can tell
   are hidden. */
.pctmart-request-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.pctmart-request-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	margin: 4px 0 0;
}

.pctmart-request-as {
	color: #667085;
	font-size: 13px;
}

.pctmart-request-status {
	margin: 12px 0 0;
	font-size: 14px;
}

.pctmart-request-status:empty {
	display: none;
}

.pctmart-request-status.is-success {
	color: #067647;
}

.pctmart-request-status.is-error {
	color: #b42318;
}

@media (max-width: 768px) {
	.pctmart-request,
	.pctmart-request-row {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Product photos are squared with one level of zoom in the files themselves
   (inc/image-frame.php), so no padding is applied here. */

/* Free shipping nudge in the cart and mini cart (inc/promotions.php). */
.pctmart-free-ship {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	padding: 10px 14px;
	border-radius: 8px;
	background: #fdf4e7;
	color: #7a4b0a;
	font-size: 14px;
	line-height: 1.4;
}

.pctmart-free-ship.is-met {
	background: #e7f6ee;
	color: #067647;
}

.pctmart-free-ship svg {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
}

.pctmart-free-ship .woocommerce-Price-amount {
	font-weight: 600;
}

.widget_shopping_cart_content .pctmart-free-ship {
	margin: 0 0 10px;
	font-size: 13px;
}

/* All-manufacturers page (inc/manufacturer-index.php). */
.pctmart-makers {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 16px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.pctmart-maker {
	margin: 0;
	list-style: none;
}

.pctmart-maker-link {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	padding: 16px 14px 18px;
	border: 1px solid var(--pct-line);
	border-radius: var(--pct-radius);
	background: #fff;
	color: #1d2327;
	text-align: center;
	text-decoration: none;
}

.pctmart-maker-link:hover,
.pctmart-maker-link:focus {
	border-color: #111;
	color: #1d2327;
}

/* One box for every logo whatever its proportions, so the grid lines up. */
.pctmart-maker-media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 72px;
	margin-bottom: 12px;
}

.pctmart-maker-logo {
	display: block;
	width: auto;
	height: auto;
	max-width: 150px;
	max-height: 64px;
	object-fit: contain;
}

/* No logo: the initial in a tinted circle holds the same slot. */
.pctmart-maker-mark {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--pct-brand-tint-soft);
	color: #111;
	font-size: 24px;
	font-weight: 700;
}

.pctmart-maker-name {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}

.pctmart-maker-count {
	margin-top: 2px;
	color: #667085;
	font-size: 13px;
}

.pctmart-maker-blurb {
	margin-top: 8px;
	color: #4a5565;
	font-size: 13px;
	line-height: 1.45;
}

/* Deals of the week page. */
.pctmart-deals-lead {
	margin: 0 0 24px;
	color: #475467;
	font-size: 16px;
	line-height: 1.6;
}
