/*
 * AskPerTask Marketplace — /marketplace/ (post 357).
 *
 * All rules are scoped to body.page-id-357 so nothing here affects any
 * other page. Reuses aptv2-* design tokens/buttons from homepage-v2.css,
 * which is already enqueued on this page because apt_uses_new_header()
 * returns true for is_page('marketplace').
 *
 * MKT-2A rebuilt the page as a fixed sequence of custom shortcode
 * sections (class-apt-marketplace.php) wrapping the two real ACADP
 * shortcodes ([acadp_search_form], [acadp_listings]) — Elementor here is
 * just a thin section/column scaffold, not hand-built content blocks.
 * Element IDs referenced below (search/listings section + widget IDs)
 * are only stable because _elementor_data is fully regenerated by a
 * script each time this page structure changes, not hand-edited.
 *
 * Structure:
 *   1. Page foundation / overflow guard
 *   2. Hero — headline, 3 CTAs, decorative visual, trust strip
 *   3. Category tiles — shared system for real + "coming soon" tiles
 *   4. Search section — card wrapping the real ACADP form + extra filter chips
 *   5. Listings section — real ACADP markup (future-proofed) + empty state
 *   6. Local shops & sellers
 *   7. How Marketplace works
 *   8. Trust & safety
 *   9. Final CTA band
 *  10. Responsive overrides
 *  11. Search results page (post 362) — reuses the real card/empty-state
 *      markup from section 5 (MARKETPLACE-LISTING-FLOW-1H)
 *  12. Category/location term archives (posts 361/359) — same reuse,
 *      plus a new contextual term heading (MARKETPLACE-LISTING-FLOW-1I)
 *  13. Category/location index pages (posts 360/358) — term tile grid,
 *      term row list, index heading (MARKETPLACE-LISTING-FLOW-1J)
 */

/* =========================================================================
   1. Page foundation
   ========================================================================= */

body.page-id-357 {
	overflow-x: hidden;
}

body.page-id-357 .elementor-section {
	max-width: 100%;
}

body.page-id-357 .apt-mkt-section-subtitle {
	color: var(--aptv2-text-muted, #6B7280);
	max-width: 640px;
	margin: 0 auto var(--aptv2-space-6, 32px);
	text-align: center;
	line-height: 1.6;
}

/* =========================================================================
   2. Hero
   ========================================================================= */

body.page-id-357 .apt-mkt-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, var(--aptv2-green-light, #EAF7EE) 0%, var(--aptv2-bg, #fff) 65%);
	padding: var(--aptv2-space-8, 64px) var(--aptv2-space-5, 24px) var(--aptv2-space-6, 32px);
}

/* Soft decorative colour blobs behind the hero content — pure CSS,
   no imagery, no data of any kind. Purely atmospheric. */
body.page-id-357 .apt-mkt-hero::before,
body.page-id-357 .apt-mkt-hero::after {
	content: '';
	position: absolute;
	z-index: 0;
	border-radius: 50%;
	pointer-events: none;
}

body.page-id-357 .apt-mkt-hero::before {
	top: -140px;
	right: -100px;
	width: 340px;
	height: 340px;
	background: radial-gradient(circle, var(--aptv2-blue-light, #EAF1FD) 0%, transparent 70%);
}

body.page-id-357 .apt-mkt-hero::after {
	bottom: -120px;
	left: -110px;
	width: 300px;
	height: 300px;
	background: radial-gradient(circle, var(--aptv2-orange-light, #FDEFE6) 0%, transparent 70%);
}

body.page-id-357 .apt-mkt-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
}

body.page-id-357 .apt-mkt-hero__grid {
	display: flex;
	align-items: center;
	gap: var(--aptv2-space-7, 48px);
}

body.page-id-357 .apt-mkt-hero__copy {
	flex: 1 1 480px;
	text-align: left;
}

body.page-id-357 .apt-mkt-hero__eyebrow {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--aptv2-green-dark, #168238);
	background: linear-gradient(90deg, var(--aptv2-green-light, #EAF7EE) 0%, var(--aptv2-blue-light, #EAF1FD) 100%);
	border: 1px solid var(--aptv2-green, #1FA34A);
	border-radius: var(--aptv2-radius-pill, 999px);
	padding: 5px 16px;
	margin-bottom: var(--aptv2-space-3, 12px);
	box-shadow: var(--aptv2-shadow-sm, 0 1px 2px rgba(16, 24, 40, 0.05));
}

body.page-id-357 .apt-mkt-hero__title {
	font-size: clamp(1.85rem, 3.4vw, 2.75rem);
	font-weight: 800;
	line-height: 1.15;
	color: var(--aptv2-navy, #1A2E52);
	margin: 0 0 var(--aptv2-space-4, 16px);
}

body.page-id-357 .apt-mkt-hero__subtitle {
	font-size: 1.05rem;
	color: var(--aptv2-text-muted, #6B7280);
	max-width: 520px;
	margin: 0 0 var(--aptv2-space-6, 32px);
	line-height: 1.6;
}

body.page-id-357 .apt-mkt-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--aptv2-space-3, 12px);
}

/* Decorative visual composition — no real listing data, just a layered
   card (a soft second card peeks out behind the main one to suggest
   "a stack of local listings") with floating category-icon badges to
   fill the hero's visual side. */
body.page-id-357 .apt-mkt-hero__visual {
	flex: 1 1 360px;
	display: flex;
	justify-content: center;
}

body.page-id-357 .apt-mkt-hero__visual-card {
	position: relative;
	width: 100%;
	max-width: 380px;
	aspect-ratio: 4 / 3;
	background:
		radial-gradient(circle at 15% 20%, rgba(45, 108, 223, 0.14) 0%, transparent 45%),
		radial-gradient(circle at 85% 80%, rgba(242, 136, 75, 0.14) 0%, transparent 45%),
		linear-gradient(135deg, var(--aptv2-green-light, #EAF7EE) 0%, var(--aptv2-blue-light, #EAF1FD) 100%);
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	box-shadow: var(--aptv2-shadow-lg, 0 8px 24px rgba(16, 24, 40, 0.08));
}

body.page-id-357 .apt-mkt-hero__visual-card::before {
	content: '';
	position: absolute;
	top: 16px;
	left: 16px;
	right: -16px;
	bottom: -16px;
	background: linear-gradient(135deg, var(--aptv2-orange-light, #FDEFE6) 0%, var(--aptv2-blue-light, #EAF1FD) 100%);
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	transform: rotate(-3deg);
	z-index: -1;
}

body.page-id-357 .apt-mkt-hero__visual-badge {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--aptv2-radius-pill, 999px);
	box-shadow: var(--aptv2-shadow-md, 0 6px 16px rgba(16, 24, 40, 0.14));
	color: #fff;
	animation: apt-mkt-float 5s ease-in-out infinite;
}

body.page-id-357 .apt-mkt-hero__visual-badge svg {
	width: 46%;
	height: 46%;
	stroke-width: 1.75;
}

body.page-id-357 .apt-mkt-hero__visual-badge--accent-orange { background: linear-gradient(135deg, #F2884B 0%, #D9662C 100%); }
body.page-id-357 .apt-mkt-hero__visual-badge--accent-blue   { background: linear-gradient(135deg, #4C86E8 0%, #2D6CDF 100%); }
body.page-id-357 .apt-mkt-hero__visual-badge--accent-navy   { background: linear-gradient(135deg, #2D4373 0%, #1A2E52 100%); }
body.page-id-357 .apt-mkt-hero__visual-badge--accent-green  { background: linear-gradient(135deg, #1FA34A 0%, #168238 100%); }
body.page-id-357 .apt-mkt-hero__visual-badge--accent-amber  { background: linear-gradient(135deg, #D97706 0%, #B45309 100%); }

body.page-id-357 .apt-mkt-hero__visual-badge--1 { top: 8%; left: 6%; width: 72px; height: 72px; transform: rotate(-6deg); animation-delay: 0s; }
body.page-id-357 .apt-mkt-hero__visual-badge--2 { top: 2%; right: 16%; width: 54px; height: 54px; transform: rotate(8deg); animation-delay: .7s; }
body.page-id-357 .apt-mkt-hero__visual-badge--3 { top: 42%; right: 2%; width: 58px; height: 58px; transform: rotate(-5deg); animation-delay: 1.4s; }
body.page-id-357 .apt-mkt-hero__visual-badge--4 { bottom: 6%; right: 14%; width: 72px; height: 72px; transform: rotate(6deg); animation-delay: 2.1s; }
body.page-id-357 .apt-mkt-hero__visual-badge--5 { bottom: 16%; left: 12%; width: 56px; height: 56px; transform: rotate(-8deg); animation-delay: 2.8s; }

@keyframes apt-mkt-float {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -8px; }
}

@media (prefers-reduced-motion: reduce) {
	body.page-id-357 .apt-mkt-hero__visual-badge {
		animation: none;
	}
}

/* Trust strip under hero */
body.page-id-357 .apt-mkt-hero__trust-strip {
	margin-top: var(--aptv2-space-7, 48px);
	padding-top: var(--aptv2-space-6, 32px);
	border-top: 1px solid var(--aptv2-border, #E5E7EB);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--aptv2-space-6, 32px);
}

body.page-id-357 .apt-mkt-trust-chip {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--aptv2-space-2, 8px);
	max-width: 160px;
}

body.page-id-357 .apt-mkt-trust-chip__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	color: var(--aptv2-green-dark, #168238);
}

body.page-id-357 .apt-mkt-trust-chip__icon svg {
	width: 24px;
	height: 24px;
}

body.page-id-357 .apt-mkt-trust-chip__label {
	font-size: 0.85rem;
	color: var(--aptv2-text-muted, #6B7280);
	font-weight: 500;
}

/* =========================================================================
   3. Category tiles — shared system for the 10 tiles rendered by
   [apt_marketplace_categories] (7 real + 3 "coming soon").
   ========================================================================= */

body.page-id-357 .apt-mkt-cats {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	padding: 0 var(--aptv2-space-5, 24px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 10px;
}

body.page-id-357 .apt-mkt-cat-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 20px 10px 16px;
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: 16px;
	background: linear-gradient(180deg, #fff 0%, #FAFBFC 100%);
	text-align: center;
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

body.page-id-357 .apt-mkt-cat-tile--real:hover {
	box-shadow: 0 14px 30px rgba(16, 24, 40, 0.12);
	border-color: transparent;
	transform: translateY(-4px);
}

body.page-id-357 .apt-mkt-cat-tile--real::after {
	content: '\2192';
	position: absolute;
	bottom: 10px;
	right: 14px;
	color: var(--aptv2-text-light, #9CA3AF);
	font-size: 0.9rem;
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

body.page-id-357 .apt-mkt-cat-tile--real:hover::after {
	opacity: 1;
	transform: translateX(0);
}

body.page-id-357 .apt-mkt-cat-tile__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--aptv2-radius-pill, 999px);
	color: #fff;
	box-shadow: 0 6px 12px rgba(16, 24, 40, 0.16);
	transition: transform 0.2s ease;
}

body.page-id-357 .apt-mkt-cat-tile--real:hover .apt-mkt-cat-tile__icon {
	transform: scale(1.08) rotate(-4deg);
}

body.page-id-357 .apt-mkt-cat-tile__icon svg {
	width: 22px;
	height: 22px;
	stroke-width: 1.75;
}

body.page-id-357 .apt-mkt-cat-tile__icon--orange { background: linear-gradient(135deg, #F2884B 0%, #D9662C 100%); }
body.page-id-357 .apt-mkt-cat-tile__icon--blue   { background: linear-gradient(135deg, #4C86E8 0%, #2D6CDF 100%); }
body.page-id-357 .apt-mkt-cat-tile__icon--navy   { background: linear-gradient(135deg, #2D4373 0%, #1A2E52 100%); }
body.page-id-357 .apt-mkt-cat-tile__icon--green  { background: linear-gradient(135deg, #1FA34A 0%, #168238 100%); }
body.page-id-357 .apt-mkt-cat-tile__icon--amber  { background: linear-gradient(135deg, #D97706 0%, #B45309 100%); }

body.page-id-357 .apt-mkt-cat-tile__label {
	font-weight: 700;
	color: var(--aptv2-text, #1A1A1A);
	font-size: 0.88rem;
	line-height: 1.3;
}

body.page-id-357 .apt-mkt-cat-tile--soon {
	border-style: dashed;
	background: var(--aptv2-bg-soft, #F7F8F7);
	cursor: default;
}

body.page-id-357 .apt-mkt-cat-tile--soon .apt-mkt-cat-tile__icon {
	background: #fff;
	border: 1.5px dashed var(--aptv2-border, #E5E7EB);
	color: var(--aptv2-text-muted, #6B7280);
	box-shadow: none;
}

body.page-id-357 .apt-mkt-cat-tile--soon .apt-mkt-cat-tile__label {
	color: var(--aptv2-text-muted, #6B7280);
}

body.page-id-357 .apt-mkt-cat-tile__badge {
	position: absolute;
	top: 10px;
	right: 10px;
	font-size: 0.62rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #fff;
	background: var(--aptv2-navy, #1A2E52);
	opacity: 0.82;
	border-radius: var(--aptv2-radius-pill, 999px);
	padding: 3px 9px;
}

/* =========================================================================
   4. Search section — card wrapping the real ACADP form, plus the
   non-functional "coming soon" filter chip row alongside it.
   ========================================================================= */

body.page-id-357 #mkt-search {
	scroll-margin-top: 90px;
}

/* MKT-2C-1: "Browse Marketplace" CTA target — the "Latest local
   listings" section (Elementor CSS ID set via _elementor_data), so the
   button scrolls to the browse/listings area instead of the search
   panel. */
body.page-id-357 #mkt-listings {
	scroll-margin-top: 90px;
}

/* MKT-2B-F2: tightened section rhythm — was 48px between every major
   block; compacted so more real content is visible in the first
   viewport. */
body.page-id-357 .elementor-element-c018c11,
body.page-id-357 .elementor-element-78f0c01,
body.page-id-357 .elementor-element-143c6a2 {
	margin-top: var(--aptv2-space-6, 32px) !important;
}

body.page-id-357 .elementor-element-c018c11 .elementor-widget-heading:first-child,
body.page-id-357 .elementor-element-143c6a2 .elementor-widget-heading:first-child {
	margin-bottom: 14px;
}

/* Kill Elementor's default 20px inter-widget spacing for the pairs we
   space explicitly ourselves below (subtitle→panel, panel→quick
   filters), so the gap is set once, deliberately, in one place. */
body.page-id-357 .elementor-element-1459a5e,
body.page-id-357 .elementor-element-b1eeb68 {
	margin-block-end: 0 !important;
}

/* Section headings — "Find local items near you" / "Popular categories" —
   get a small circular icon badge + stronger hierarchy so the search and
   category blocks read as intentional, productized sections rather than
   plain Elementor heading widgets. */
body.page-id-357 .elementor-element-c018c11 .elementor-widget-wrap,
body.page-id-357 .elementor-element-78f0c01 .elementor-widget-wrap {
	text-align: center;
}

body.page-id-357 .elementor-element-5a72acc .elementor-heading-title,
body.page-id-357 .elementor-element-c5fdc47 .elementor-heading-title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: clamp(1.5rem, 2.2vw, 1.9rem);
	font-weight: 800;
	color: var(--aptv2-navy, #1A2E52);
}

body.page-id-357 .elementor-element-5a72acc .elementor-heading-title::before,
body.page-id-357 .elementor-element-c5fdc47 .elementor-heading-title::before {
	content: '';
	display: inline-block;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 18px 18px;
}

body.page-id-357 .elementor-element-5a72acc .elementor-heading-title::before {
	background-color: var(--aptv2-green-light, #EAF7EE);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(22,130,56)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z'/%3E%3C/svg%3E");
}

body.page-id-357 .elementor-element-c5fdc47 .elementor-heading-title::before {
	background-color: var(--aptv2-blue-light, #EAF1FD);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(45,108,223)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='7' height='7' rx='1.5'/%3E%3Crect x='13' y='4' width='7' height='7' rx='1.5'/%3E%3Crect x='4' y='13' width='7' height='7' rx='1.5'/%3E%3Crect x='13' y='13' width='7' height='7' rx='1.5'/%3E%3C/svg%3E");
}

body.page-id-357 .elementor-element-1459a5e .elementor-heading-title {
	color: var(--aptv2-text-muted, #6B7280);
	font-size: 1rem;
}

/* MKT-2C-2: the search STRIP — browse-first pass. Was a large detached
   card (padding 24-32px, 3 stacked rows, ~270-330px tall); now one slim
   bar so listings can lead the page instead of the form. Same real
   ACADP <form> structure as before (keyword .acadp-form-group, the
   .acadp-grid holding category + city + the .acadp-self-end button
   group) — only sizing/layout changed, no markup added or removed. */
/* MARKETPLACE-VISUAL-POLISH-1A: matches the hero/category-grid container
   width (var(--aptv2-container)) instead of its own narrower 1100px cap —
   the search card previously sat visibly inset from the sections directly
   above and below it, and the extra ~100px also gives the search-form
   grid (below) the room the Listing Type filter needs (see the
   .apt-mkt-type-filter rules under MARKETPLACE-LISTING-TYPE-MODEL-
   CLOSURE-1B further down) without introducing horizontal overflow. */
body.page-id-357 .elementor-element-b1eeb68 .elementor-widget-container {
	max-width: var(--aptv2-container, 1200px);
	margin: 12px auto 0;
	background: #FFFFFF;
	border: 1px solid #E2E8F0;
	border-radius: 18px;
	box-shadow: 0 10px 24px rgba(16, 24, 40, 0.07), 0 2px 6px rgba(16, 24, 40, 0.04);
	padding: 16px 20px;
}

/* MARKETPLACE-LISTING-FLOW-1K: every rule in this subsection is
   dual-scoped to body.page-id-357 (the Marketplace archive) AND
   body.page-id-362 (acadp_page_settings['search'], the dedicated
   results page the archive's own form submits to — confirmed via
   live body-class inspection). Both pages render the exact same real
   ACADP <acadp-search-form> markup; 362 previously received none of
   this styling (MARKETPLACE-LISTING-FLOW-1H only extended the card /
   empty-state rules there, not the form itself), so it still showed
   the raw, cramped, unbranded field layout this batch fixes. The
   page-357-only Elementor card wrapper above (elementor-element-
   b1eeb68) is deliberately NOT duplicated — that element ID doesn't
   exist on 362, which has no equivalent boxed wrapper. */
body.page-id-357 .acadp-search-form form,
body.page-id-362 .acadp-search-form form {
	display: flex;
	flex-direction: column;
	gap: 10px !important;
}

/* MARKETPLACE-VISUAL-POLISH-1A: the Listing Type filter's own <label>
   (appended by APT_Marketplace_Listing_Type_Filter::append_type_filter(),
   not part of ACADP's own template) had no styling at all, so it rendered
   in plain body copy next to ACADP's own bold/uppercase field labels —
   folded into the same rule here purely for visual parity, nothing else
   about that filter changes. */
body.page-id-357 .acadp-form-label,
body.page-id-357 .apt-mkt-type-filter > label,
body.page-id-362 .acadp-form-label,
body.page-id-362 .apt-mkt-type-filter > label {
	display: block;
	font-size: 0.74rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #4B5563;
	margin-bottom: 5px;
}

body.page-id-357 .acadp-form-control,
body.page-id-357 .acadp-form-input,
body.page-id-357 .acadp-form-select,
body.page-id-362 .acadp-form-control,
body.page-id-362 .acadp-form-input,
body.page-id-362 .acadp-form-select {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #D7DEE8 !important;
	border-radius: 12px !important;
	padding: 8px 14px !important;
	font-size: 0.88rem;
	min-height: 44px;
	background-color: #F8FAFC;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

body.page-id-357 .acadp-form-control:focus,
body.page-id-357 .acadp-form-input:focus,
body.page-id-362 .acadp-form-control:focus,
body.page-id-362 .acadp-form-input:focus {
	border-color: var(--aptv2-green, #1FA34A) !important;
	outline: none;
	background-color: var(--aptv2-bg, #fff);
	box-shadow: 0 0 0 3px var(--aptv2-green-light, #EAF7EE);
}

/* Both the location AND category fields are ACADP's real
   <acadp-dropdown-terms> custom element, which carries .acadp-form-control
   on itself AND wraps an inner <input class="acadp-form-control
   acadp-form-select"> with the same class — without this, BOTH get full
   field chrome (border + 8px/14px padding + 44px min-height), so the
   outer box has to grow to ~62px just to fit the already-44px inner input
   inside its own padding. This was previously scoped to only
   .acadp-category-field.acadp-form-control (Category's own extra marker
   class), so Location — which has no such marker — still doubled up,
   making its field 18px taller than every other field in the same grid
   row (MARKETPLACE-VISUAL-POLISH-1A). Matching on the custom element tag
   itself rather than that one modifier class fixes both consistently. */
body.page-id-357 acadp-dropdown-terms.acadp-form-control,
body.page-id-362 acadp-dropdown-terms.acadp-form-control {
	border: none !important;
	padding: 0 !important;
	min-height: auto !important;
	background: transparent !important;
	display: block;
	width: 100%;
}

/* Location/category use ACADP's real <acadp-dropdown-terms> custom
   element. Its own core CSS pins the opened panel's left AND right
   edges to its trigger (left:0; right:0), so the panel's width is
   locked to whatever narrow column the trigger happens to sit in —
   the root cause of the "narrow and excessively tall" dropdown. Freeing
   the right edge and letting the panel size to its own content (capped
   so it can never push past the viewport) keeps it left-aligned to the
   control while giving long term names room to sit on one line instead
   of stacking the panel into a tall, cramped column. Height stays
   governed by ACADP's own unmodified .acadp-dropdown-body max-height +
   internal scroll. */
body.page-id-357 .acadp-search-form acadp-dropdown-terms .acadp-dropdown,
body.page-id-362 .acadp-search-form acadp-dropdown-terms .acadp-dropdown {
	right: auto;
	min-width: 100%;
	width: max-content;
	max-width: min(300px, calc(100vw - 40px));
}

/* Pre-existing, independent of the width fix above: every ACADP term
   row's radio/checkbox input also carries .acadp-form-control (see
   includes/helpers/html.php), so the same universal field styling
   above (width:100%, min-height:44px, 12px border-radius) was blowing
   each one up into a large blank rectangle instead of ACADP's own
   intended small round/square selector (public/assets/css/style.css
   .acadp-form-radio/.acadp-form-checkbox, ~1rem). Restoring that small
   size only inside the dropdown's own term list. */
body.page-id-357 .acadp-search-form .acadp-dropdown-body .acadp-term-input.acadp-form-control,
body.page-id-362 .acadp-search-form .acadp-dropdown-body .acadp-term-input.acadp-form-control {
	width: 1rem !important;
	height: 1rem !important;
	min-height: 0 !important;
	padding: 0 !important;
	border-radius: 9999px !important;
	background-color: transparent !important;
}

body.page-id-357 .acadp-search-form .acadp-dropdown-body .acadp-term-input.acadp-form-control:focus,
body.page-id-362 .acadp-search-form .acadp-dropdown-body .acadp-term-input.acadp-form-control:focus {
	box-shadow: none !important;
	background-color: transparent !important;
}

/* Keyword field — no label (icon carries the meaning), the widest
   column so it still reads as the primary control even at this size. */
body.page-id-357 .acadp-search-form form > .acadp-form-group:first-child,
body.page-id-362 .acadp-search-form form > .acadp-form-group:first-child {
	position: relative;
}

body.page-id-357 .acadp-search-form form > .acadp-form-group:first-child::before,
body.page-id-362 .acadp-search-form form > .acadp-form-group:first-child::before {
	content: '';
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 17px;
	height: 17px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(107,114,128)' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z'/%3E%3C/svg%3E") no-repeat center / contain;
	pointer-events: none;
}

body.page-id-357 .acadp-search-form form > .acadp-form-group:first-child .acadp-form-input,
body.page-id-362 .acadp-search-form form > .acadp-form-group:first-child .acadp-form-input {
	padding-left: 40px !important;
	font-size: 0.92rem;
	min-height: 46px;
	border: 1px solid #D7DEE8 !important;
	background-color: #FFFFFF;
}

body.page-id-357 .acadp-search-form .acadp-grid,
body.page-id-362 .acadp-search-form .acadp-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}

body.page-id-357 .acadp-form-group.acadp-self-end,
body.page-id-362 .acadp-form-group.acadp-self-end {
	align-self: auto;
}

body.page-id-357 .acadp-button-group,
body.page-id-362 .acadp-button-group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: flex-start;
}

body.page-id-357 .acadp-button-submit,
body.page-id-362 .acadp-button-submit {
	flex: 0 0 auto;
	justify-content: center;
	background: linear-gradient(135deg, var(--aptv2-green, #1FA34A) 0%, var(--aptv2-green-dark, #168238) 100%) !important;
	border-color: var(--aptv2-green-dark, #168238) !important;
	color: #fff !important;
	font-weight: 700;
	font-size: 0.88rem;
	border-radius: 12px !important;
	padding: 8px 18px !important;
	min-height: 44px;
	box-shadow: 0 6px 16px rgba(31, 163, 74, 0.26);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

body.page-id-357 .acadp-button-submit:hover,
body.page-id-362 .acadp-button-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(31, 163, 74, 0.32);
}

body.page-id-357 .acadp-button-reset,
body.page-id-362 .acadp-button-reset {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff !important;
	border: 1px solid #D7DEE8 !important;
	color: var(--aptv2-text, #1A1A1A) !important;
	font-weight: 600;
	font-size: 0.85rem;
	text-decoration: none;
	border-radius: 12px !important;
	padding: 8px 16px !important;
	min-height: 44px;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.page-id-357 .acadp-button-reset:hover,
body.page-id-362 .acadp-button-reset:hover {
	background: #F8FAFC !important;
	border-color: #B9C2CF !important;
}

/* One row on wider screens: keyword | location | category | price |
   city | Search/Reset. The real ACADP markup nests location, category,
   price and city (plus the button group) all inside one .acadp-grid
   wrapper, itself a sibling of the keyword field. Previously that
   wrapper was its own nested flex row sharing only 2 of ~3.3 flex
   shares of the outer row, so its 4-5 children were each squeezed to
   roughly 100-110px (price showing a bare "m" instead of "min"/"max").
   Promoting .acadp-grid's children onto the SAME grid as the keyword
   field (display:contents — the wrapper renders no box of its own, so
   nothing is lost) and giving every field an explicit minimum column
   width fixes the cramped columns without touching the ACADP markup,
   query args or the button group's position (still last). */
@media (min-width: 860px) {
	body.page-id-357 .acadp-search-form form,
	body.page-id-362 .acadp-search-form form {
		display: grid;
		grid-template-columns: minmax(190px, 1fr) minmax(150px, 0.85fr) minmax(300px, 1.6fr) minmax(145px, 0.8fr) minmax(90px, 0.5fr) auto;
		align-items: end;
		gap: 12px;
	}

	body.page-id-357 .acadp-search-form .acadp-grid,
	body.page-id-362 .acadp-search-form .acadp-grid {
		display: contents;
	}

	body.page-id-357 .acadp-search-form form > .acadp-form-group,
	body.page-id-357 .acadp-search-form .acadp-grid > .acadp-form-group,
	body.page-id-362 .acadp-search-form form > .acadp-form-group,
	body.page-id-362 .acadp-search-form .acadp-grid > .acadp-form-group {
		min-width: 0;
	}

	body.page-id-357 .acadp-form-group.acadp-self-end,
	body.page-id-362 .acadp-form-group.acadp-self-end {
		align-self: end;
		margin-top: 0;
	}

	/* Price is the one column holding two side-by-side inputs — without
	   an explicit floor here its "min"/"max" placeholders clip to a
	   bare "m" long before the other single-input columns run out of
	   room. */
	body.page-id-357 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .acadp-flex.acadp-gap-2) .acadp-w-1\/2,
	body.page-id-362 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .acadp-flex.acadp-gap-2) .acadp-w-1\/2 {
		min-width: 76px;
	}

	/* MARKETPLACE-VISUAL-POLISH-1A: APT_Marketplace_Listing_Type_Filter
	   (class-apt-marketplace-listing-type-filter.php) appends its own
	   "Listing Type" label+<select> INSIDE the category field's own
	   .acadp-form-group via the acadp_search_form_categories_dropdown_html
	   filter — the only extension point ACADP exposes for adding a field
	   next to Category without touching its template. That nested
	   .apt-mkt-type-filter div stacks a second label+control below the
	   category dropdown, making this one grid cell taller than its
	   siblings; with the row's align-items:end, the shorter cells (Select
	   Location, Price, City) then anchor to that taller cell's bottom
	   edge, so their own labels visibly drop out of register with
	   Category's label above them — the staggered, "broken grid" look.
	   Turning this one .acadp-form-group into its own 2-column mini-grid
	   and promoting .apt-mkt-type-filter's label/select into it (via
	   display:contents, so the wrapper draws no box of its own) restores
	   a single label-row + single field-row here, matching every other
	   column's height — no query/filter logic, GET param, or select
	   options touched, purely where the same real markup is positioned. */
	body.page-id-357 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter),
	body.page-id-362 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto auto;
		column-gap: 10px;
		align-items: end;
	}

	body.page-id-357 .apt-mkt-type-filter,
	body.page-id-362 .apt-mkt-type-filter {
		display: contents;
	}

	/* Explicit grid-row on all 4 promoted items, not just grid-column:
	   auto-placement's row cursor only ever moves forward (sparse packing),
	   so once the category dropdown is pushed to row 2 (to clear its own
	   label in row 1, column 1), the cursor never backtracks to fill row 1
	   column 2 — the type filter's label/select were landing in rows 3/4
	   instead of sitting beside category's label/dropdown in rows 1/2. */
	body.page-id-357 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) > .acadp-form-label,
	body.page-id-362 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) > .acadp-form-label {
		grid-column: 1;
		grid-row: 1;
	}

	body.page-id-357 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) > acadp-dropdown-terms,
	body.page-id-362 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) > acadp-dropdown-terms {
		grid-column: 1;
		grid-row: 2;
	}

	body.page-id-357 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) .apt-mkt-type-filter > label,
	body.page-id-362 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) .apt-mkt-type-filter > label {
		grid-column: 2;
		grid-row: 1;
	}

	body.page-id-357 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) .apt-mkt-type-filter > select,
	body.page-id-362 .acadp-search-form .acadp-grid > .acadp-form-group:has(> .apt-mkt-type-filter) .apt-mkt-type-filter > select {
		grid-column: 2;
		grid-row: 2;
	}
}

@media (max-width: 767px) {
	body.page-id-357 .acadp-button-group,
	body.page-id-362 .acadp-button-group {
		flex-direction: column;
		align-items: stretch;
	}

	body.page-id-357 .acadp-button-submit,
	body.page-id-357 .acadp-button-reset,
	body.page-id-362 .acadp-button-submit,
	body.page-id-362 .acadp-button-reset {
		width: 100%;
	}
}

/* MKT-2C-2: quick filters shrunk from a boxed chip grid to a single
   tiny muted text line — no card, no background, no border — so it
   reads as a small disabled caption under the strip, not a module. */
body.page-id-357 .elementor-element-d2a309f .elementor-widget-container {
	max-width: 1040px;
	margin: 0 auto;
}

body.page-id-357 .apt-mkt-search-extra {
	margin: 8px auto 0;
	padding: 0 18px;
	text-align: center;
	font-size: 0.8rem;
	line-height: 1.5;
	color: var(--aptv2-text-muted, #6B7280);
	cursor: default;
}

body.page-id-357 .apt-mkt-search-extra__label {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin-right: 2px;
}

@media (max-width: 767px) {
	body.page-id-357 .elementor-element-b1eeb68 .elementor-widget-container {
		padding: 12px 14px;
		border-radius: 16px;
	}
}

/* =========================================================================
   5. Listings section — real ACADP markup (future-proofed) + empty state
   ========================================================================= */

/* MARKETPLACE-LISTING-FLOW-1H: .acadp-card is a direct CSS grid child, so
   it already stretches to the row's tallest card (grid default
   align-items: stretch) — but the card itself was not a flex container,
   so ACADP's own .acadp-mt-auto class on .acadp-footer had nothing to
   push against and the price row did not sink to a consistent baseline
   when one card in a row had a longer title/category list than its
   neighbours. display:flex + flex-direction:column here is what makes
   that existing acadp-mt-auto utility (already in the markup) work. */
body.page-id-357 .acadp-card {
	position: relative;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	overflow: hidden;
	background: var(--aptv2-bg, #fff);
	box-shadow: var(--aptv2-shadow-sm, 0 1px 2px rgba(16, 24, 40, 0.05));
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

body.page-id-357 .acadp-card:hover {
	box-shadow: var(--aptv2-shadow-md, 0 4px 12px rgba(16, 24, 40, 0.08));
	transform: translateY(-2px);
}

/* Card-hierarchy declutter (focused QA card list): the approved public
   card shows image, title, price, category, masked location and
   date/status only. Excerpt, raw view counts and custom fields are real
   ACADP data (never fake) but sit outside that list, so they are hidden
   here only — nothing is removed from the query, the post, or the
   acadp_listings_settings option, so this is fully reversible. */
body.page-id-357 .acadp-excerpt,
body.page-id-357 .acadp-views-count,
body.page-id-357 .acadp-fields {
	display: none;
}

body.page-id-357 .acadp-content {
	flex-grow: 1;
}

/* Long titles clamp to 2 lines instead of stretching an individual card
   taller than its row (focused QA #4). The stretched ::after below is
   attached to this same real permalink <a> — the only "View listing"
   destination on the card — so a long title never gains a second,
   different click target. */
body.page-id-357 .acadp-title a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-weight: 600;
	color: var(--aptv2-text, #1A1A1A);
	text-decoration: none;
}

/* Whole-card "View listing" click target (focused QA #7): stretches the
   card's own existing title link — the same URL the image link already
   points to — over the full card via the nearest positioned ancestor
   (.acadp-card). Category/location/author links are real, independent
   destinations, so they are lifted back above the stretch layer with
   their own z-index rather than being swallowed by it. */
body.page-id-357 .acadp-title a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

body.page-id-357 .acadp-categories a,
body.page-id-357 .acadp-locations a,
body.page-id-357 .acadp-author-datetime a,
body.page-id-357 .acadp-favourites a {
	position: relative;
	z-index: 2;
}

/* Long category/location term names truncate to one line rather than
   wrapping and pushing the rest of the card down (focused QA #4). */
body.page-id-357 .acadp-categories,
body.page-id-357 .acadp-locations {
	color: var(--aptv2-text-muted, #6B7280);
	min-width: 0;
}

body.page-id-357 .acadp-categories svg,
body.page-id-357 .acadp-locations svg {
	color: var(--aptv2-text-light, #9CA3AF);
}

body.page-id-357 .acadp-categories .acadp-terms-links,
body.page-id-357 .acadp-locations .acadp-terms-links {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}

body.page-id-357 .acadp-author-datetime {
	color: var(--aptv2-text-light, #9CA3AF);
}

/* Decorative-only label pairing with the stretched card link above — not
   a second, separate control, so it never needs its own href and cannot
   go anywhere the title link doesn't. Lives on .acadp-content (always
   rendered) rather than .acadp-footer (only rendered when a price or
   favourite exists) so free/no-price listings still show a clear "View
   listing" affordance. */
body.page-id-357 .acadp-content::after {
	content: 'View listing \2192';
	margin-top: 4px;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--aptv2-text-muted, #6B7280);
	transition: color 0.15s ease;
}

body.page-id-357 .acadp-card:hover .acadp-content::after {
	color: var(--aptv2-green-dark, #168238);
}

body.page-id-357 .acadp-price {
	color: var(--aptv2-green-dark, #168238);
	font-size: 1.1rem;
}

/* MKT-2C-2: compact empty state — was a full-width band with 64px
   vertical padding; now a small centered card so it reads as a short
   "nothing here yet" note rather than taking half the page. "No
   listings found" copy is filtered in PHP; this only changes how
   ACADP's own <span> wrapper displays it. */
body.page-id-357 .elementor-element-f7c1e18 .elementor-shortcode > span {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
	max-width: 460px;
	margin: 0 auto;
	padding: 28px 24px;
	background: var(--aptv2-bg-soft, #F7F8F7);
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: 16px;
}

body.page-id-357 .apt-mkt-empty__title {
	font-size: 1.05rem;
	color: var(--aptv2-navy, #1A2E52);
}

body.page-id-357 .apt-mkt-empty__desc {
	font-size: 0.9rem;
	color: var(--aptv2-text-muted, #6B7280);
}

body.page-id-357 .apt-mkt-empty__cta {
	margin-top: 4px;
	padding-top: 10px !important;
	padding-bottom: 10px !important;
	font-size: 0.9rem;
}

/* =========================================================================
   6. Local shops & sellers
   ========================================================================= */

body.page-id-357 .apt-mkt-shops {
	padding: var(--aptv2-space-7, 48px) var(--aptv2-space-5, 24px);
	margin-top: var(--aptv2-space-7, 48px);
}

body.page-id-357 .apt-mkt-shops__inner {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	text-align: center;
}

body.page-id-357 .apt-mkt-shops__inner h2 {
	color: var(--aptv2-navy, #1A2E52);
	margin-bottom: var(--aptv2-space-2, 8px);
}

body.page-id-357 .apt-mkt-shops__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--aptv2-space-5, 24px);
	text-align: left;
}

body.page-id-357 .apt-mkt-shop-tile {
	padding: var(--aptv2-space-5, 24px);
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	background: var(--aptv2-bg, #fff);
}

body.page-id-357 .apt-mkt-shop-tile__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--aptv2-radius-pill, 999px);
	background: var(--aptv2-blue-light, #EAF1FD);
	color: var(--aptv2-blue, #2D6CDF);
	margin-bottom: var(--aptv2-space-3, 12px);
}

body.page-id-357 .apt-mkt-shop-tile__icon svg {
	width: 24px;
	height: 24px;
}

body.page-id-357 .apt-mkt-shop-tile h3 {
	font-size: 1rem;
	color: var(--aptv2-text, #1A1A1A);
	margin: 0 0 var(--aptv2-space-2, 8px);
}

body.page-id-357 .apt-mkt-shop-tile p {
	font-size: 0.9rem;
	color: var(--aptv2-text-muted, #6B7280);
	margin: 0;
	line-height: 1.5;
}

/* =========================================================================
   7. How Marketplace works
   ========================================================================= */

body.page-id-357 .apt-mkt-how {
	padding: var(--aptv2-space-7, 48px) var(--aptv2-space-5, 24px);
	background: var(--aptv2-bg-soft, #F7F8F7);
}

body.page-id-357 .apt-mkt-how__inner {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	text-align: center;
}

body.page-id-357 .apt-mkt-how__inner h2 {
	color: var(--aptv2-navy, #1A2E52);
	margin-bottom: var(--aptv2-space-6, 32px);
}

body.page-id-357 .apt-mkt-how__steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--aptv2-space-5, 24px);
}

body.page-id-357 .apt-mkt-how-step {
	position: relative;
	padding: var(--aptv2-space-5, 24px);
	background: var(--aptv2-bg, #fff);
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	text-align: left;
}

body.page-id-357 .apt-mkt-how-step__number {
	position: absolute;
	top: var(--aptv2-space-4, 16px);
	right: var(--aptv2-space-4, 16px);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--aptv2-text-light, #9CA3AF);
}

body.page-id-357 .apt-mkt-how-step__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--aptv2-radius-pill, 999px);
	background: var(--aptv2-green-light, #EAF7EE);
	color: var(--aptv2-green-dark, #168238);
	margin-bottom: var(--aptv2-space-3, 12px);
}

body.page-id-357 .apt-mkt-how-step__icon svg {
	width: 24px;
	height: 24px;
}

body.page-id-357 .apt-mkt-how-step h3 {
	font-size: 1rem;
	color: var(--aptv2-text, #1A1A1A);
	margin: 0 0 var(--aptv2-space-2, 8px);
}

body.page-id-357 .apt-mkt-how-step p {
	font-size: 0.9rem;
	color: var(--aptv2-text-muted, #6B7280);
	margin: 0;
	line-height: 1.5;
}

/* =========================================================================
   8. Trust & safety
   ========================================================================= */

body.page-id-357 .apt-mkt-trust {
	padding: var(--aptv2-space-7, 48px) var(--aptv2-space-5, 24px);
}

body.page-id-357 .apt-mkt-trust__inner {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	text-align: center;
}

body.page-id-357 .apt-mkt-trust__inner h2 {
	color: var(--aptv2-navy, #1A2E52);
	margin-bottom: var(--aptv2-space-6, 32px);
}

body.page-id-357 .apt-mkt-trust__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: var(--aptv2-space-4, 16px);
}

body.page-id-357 .apt-mkt-trust-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--aptv2-space-2, 8px);
	padding: var(--aptv2-space-4, 16px);
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	background: var(--aptv2-bg, #fff);
	text-align: center;
}

body.page-id-357 .apt-mkt-trust-tile__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--aptv2-radius-pill, 999px);
	background: var(--aptv2-green-light, #EAF7EE);
	color: var(--aptv2-green-dark, #168238);
}

body.page-id-357 .apt-mkt-trust-tile__icon svg {
	width: 22px;
	height: 22px;
}

body.page-id-357 .apt-mkt-trust-tile__label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--aptv2-text, #1A1A1A);
}

body.page-id-357 .apt-mkt-trust-tile .apt-mkt-cat-tile__badge {
	position: static;
	display: inline-block;
	opacity: 1;
	color: var(--aptv2-text-muted, #6B7280);
	background: var(--aptv2-border, #E5E7EB);
	margin-top: 2px;
}

/* =========================================================================
   9. Final CTA band
   ========================================================================= */

body.page-id-357 .apt-mkt-final-cta {
	background: var(--aptv2-navy, #1A2E52);
	padding: var(--aptv2-space-7, 48px) var(--aptv2-space-5, 24px);
	margin-top: var(--aptv2-space-7, 48px);
}

body.page-id-357 .apt-mkt-final-cta__inner {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}

body.page-id-357 .apt-mkt-final-cta__inner h2 {
	color: #fff;
	margin: 0 0 var(--aptv2-space-2, 8px);
}

body.page-id-357 .apt-mkt-final-cta__inner p {
	color: rgba(255, 255, 255, 0.75);
	margin: 0 0 var(--aptv2-space-6, 32px);
}

body.page-id-357 .apt-mkt-final-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--aptv2-space-3, 12px);
}

body.page-id-357 .apt-mkt-final-cta .aptv2-btn--ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.35);
	color: #fff;
}

body.page-id-357 .apt-mkt-final-cta .aptv2-btn--ghost:hover {
	border-color: #fff;
}

/* =========================================================================
   10. Responsive overrides
   ========================================================================= */

@media (max-width: 1023px) {
	body.page-id-357 .apt-mkt-shops__grid,
	body.page-id-357 .apt-mkt-how__steps {
		grid-template-columns: repeat(2, 1fr);
	}

	body.page-id-357 .apt-mkt-trust__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 900px) {
	body.page-id-357 .apt-mkt-hero__grid {
		flex-direction: column;
		text-align: center;
	}

	body.page-id-357 .apt-mkt-hero__copy {
		text-align: center;
	}

	body.page-id-357 .apt-mkt-hero__subtitle {
		margin-left: auto;
		margin-right: auto;
	}

	body.page-id-357 .apt-mkt-hero__actions {
		justify-content: center;
	}

	body.page-id-357 .apt-mkt-hero__visual {
		max-width: 320px;
		margin: 0 auto;
	}
}

@media (max-width: 767px) {
	body.page-id-357 .apt-mkt-hero {
		padding: var(--aptv2-space-6, 32px) var(--aptv2-space-4, 16px);
	}

	body.page-id-357 .apt-mkt-hero__trust-strip {
		gap: var(--aptv2-space-4, 16px);
	}

	body.page-id-357 .apt-mkt-cats {
		grid-template-columns: repeat(2, 1fr);
	}

	body.page-id-357 .apt-mkt-shops__grid,
	body.page-id-357 .apt-mkt-how__steps,
	body.page-id-357 .apt-mkt-trust__grid {
		grid-template-columns: 1fr 1fr;
	}
}

/* =========================================================================
   11. Search results page (post 362, acadp_page_settings['search'])

   The archive's own real ACADP search form (section 4 above) submits
   here — this is not a second page design, only ensuring the one hop a
   visitor takes from the archive still shows the same real, styled
   .acadp-card markup and the same polished empty state instead of a raw,
   unbranded ACADP page (see class-apt-marketplace.php::
   is_search_results_page()). This page does not load homepage-v2.css, so
   it never had the --aptv2-* custom properties available — every rule
   in section 5 already carries a literal hex fallback for that exact
   reason, so the same declarations are safe to reuse here verbatim.

   Category/location archive pages (/listing-category/*, /listing-location/*)
   were found during 1H's source trace to share this same raw pattern,
   but are separate browse entry points from the archive, not the named
   "Marketplace archive" page itself — left untouched, out of scope for
   this batch.
   ========================================================================= */

body.page-id-362 {
	overflow-x: hidden;
}

body.page-id-362 .page__text {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	padding: var(--aptv2-space-6, 32px) var(--aptv2-space-5, 24px);
	box-sizing: border-box;
}

body.page-id-362 .acadp-card {
	position: relative;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	overflow: hidden;
	background: var(--aptv2-bg, #fff);
	box-shadow: var(--aptv2-shadow-sm, 0 1px 2px rgba(16, 24, 40, 0.05));
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

body.page-id-362 .acadp-card:hover {
	box-shadow: var(--aptv2-shadow-md, 0 4px 12px rgba(16, 24, 40, 0.08));
	transform: translateY(-2px);
}

body.page-id-362 .acadp-excerpt,
body.page-id-362 .acadp-views-count,
body.page-id-362 .acadp-fields {
	display: none;
}

body.page-id-362 .acadp-content {
	flex-grow: 1;
}

body.page-id-362 .acadp-title a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-weight: 600;
	color: var(--aptv2-text, #1A1A1A);
	text-decoration: none;
}

body.page-id-362 .acadp-title a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

body.page-id-362 .acadp-categories a,
body.page-id-362 .acadp-locations a,
body.page-id-362 .acadp-author-datetime a,
body.page-id-362 .acadp-favourites a {
	position: relative;
	z-index: 2;
}

body.page-id-362 .acadp-categories,
body.page-id-362 .acadp-locations {
	color: var(--aptv2-text-muted, #6B7280);
	min-width: 0;
}

body.page-id-362 .acadp-categories svg,
body.page-id-362 .acadp-locations svg {
	color: var(--aptv2-text-light, #9CA3AF);
}

body.page-id-362 .acadp-categories .acadp-terms-links,
body.page-id-362 .acadp-locations .acadp-terms-links {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}

body.page-id-362 .acadp-author-datetime {
	color: var(--aptv2-text-light, #9CA3AF);
}

body.page-id-362 .acadp-content::after {
	content: 'View listing \2192';
	margin-top: 4px;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--aptv2-text-muted, #6B7280);
	transition: color 0.15s ease;
}

body.page-id-362 .acadp-card:hover .acadp-content::after {
	color: var(--aptv2-green-dark, #168238);
}

body.page-id-362 .acadp-price {
	color: var(--aptv2-green-dark, #168238);
	font-size: 1.1rem;
}

/* Empty state: filter_empty_state_copy() replaces the text inside
   ACADP's own raw <span>No listings found</span> (no wrapping Elementor
   container exists on this page, unlike page 357), so the 3 inner
   elements are switched to block-level here to stack them instead of
   needing an extra flex wrapper. */
body.page-id-362 .apt-mkt-empty__title,
body.page-id-362 .apt-mkt-empty__desc,
body.page-id-362 .apt-mkt-empty__cta {
	display: block;
}

body.page-id-362 .apt-mkt-empty__title {
	font-size: 1.05rem;
	color: var(--aptv2-navy, #1A2E52);
}

body.page-id-362 .apt-mkt-empty__desc {
	margin-top: 4px;
	font-size: 0.9rem;
	color: var(--aptv2-text-muted, #6B7280);
}

/* This page never loads homepage-v2.css, so unlike page 357 the .aptv2-btn
   base classes already on this link (shared markup from
   filter_empty_state_copy()) have no definition here at all — this gives
   it its own real button appearance rather than rendering as plain text. */
body.page-id-362 .apt-mkt-empty__cta {
	margin-top: 12px;
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border-radius: 10px;
	background: var(--aptv2-green, #1FA34A);
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}

body.page-id-362 .apt-mkt-empty__cta:hover {
	background: var(--aptv2-green-dark, #168238);
}

/* =========================================================================
   12. Category and location term archives (posts 361 / 359,
   acadp_page_settings['category'] / ['location']) — MARKETPLACE-LISTING-
   FLOW-1I

   /listing-category/{slug}/ and /listing-location/{slug}/ resolve here.
   Same real .acadp-card grid markup and "No listings found" string as
   the search results page (section 11) — reused verbatim for the same
   reason: neither page loads homepage-v2.css, so every rule below needs
   its own literal hex fallback rather than relying on --aptv2-* actually
   resolving. apt-mkt-term-header is the one genuinely new element this
   batch adds (see class-apt-marketplace.php::prepend_term_archive_header()) —
   everything else here is the same card/empty-state treatment as 357/362.
   ========================================================================= */

body.page-id-361,
body.page-id-359 {
	overflow-x: hidden;
}

body.page-id-361 .page__text,
body.page-id-359 .page__text {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	padding: var(--aptv2-space-6, 32px) var(--aptv2-space-5, 24px);
	box-sizing: border-box;
}

body.page-id-361 .acadp-card,
body.page-id-359 .acadp-card {
	position: relative;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	overflow: hidden;
	background: var(--aptv2-bg, #fff);
	box-shadow: var(--aptv2-shadow-sm, 0 1px 2px rgba(16, 24, 40, 0.05));
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

body.page-id-361 .acadp-card:hover,
body.page-id-359 .acadp-card:hover {
	box-shadow: var(--aptv2-shadow-md, 0 4px 12px rgba(16, 24, 40, 0.08));
	transform: translateY(-2px);
}

body.page-id-361 .acadp-excerpt,
body.page-id-359 .acadp-excerpt,
body.page-id-361 .acadp-views-count,
body.page-id-359 .acadp-views-count,
body.page-id-361 .acadp-fields,
body.page-id-359 .acadp-fields {
	display: none;
}

body.page-id-361 .acadp-content,
body.page-id-359 .acadp-content {
	flex-grow: 1;
}

body.page-id-361 .acadp-title a,
body.page-id-359 .acadp-title a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-weight: 600;
	color: var(--aptv2-text, #1A1A1A);
	text-decoration: none;
}

body.page-id-361 .acadp-title a::after,
body.page-id-359 .acadp-title a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

body.page-id-361 .acadp-categories a,
body.page-id-359 .acadp-categories a,
body.page-id-361 .acadp-locations a,
body.page-id-359 .acadp-locations a,
body.page-id-361 .acadp-author-datetime a,
body.page-id-359 .acadp-author-datetime a,
body.page-id-361 .acadp-favourites a,
body.page-id-359 .acadp-favourites a {
	position: relative;
	z-index: 2;
}

body.page-id-361 .acadp-categories,
body.page-id-359 .acadp-categories,
body.page-id-361 .acadp-locations,
body.page-id-359 .acadp-locations {
	color: var(--aptv2-text-muted, #6B7280);
	min-width: 0;
}

body.page-id-361 .acadp-categories svg,
body.page-id-359 .acadp-categories svg,
body.page-id-361 .acadp-locations svg,
body.page-id-359 .acadp-locations svg {
	color: var(--aptv2-text-light, #9CA3AF);
}

body.page-id-361 .acadp-categories .acadp-terms-links,
body.page-id-359 .acadp-categories .acadp-terms-links,
body.page-id-361 .acadp-locations .acadp-terms-links,
body.page-id-359 .acadp-locations .acadp-terms-links {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}

body.page-id-361 .acadp-author-datetime,
body.page-id-359 .acadp-author-datetime {
	color: var(--aptv2-text-light, #9CA3AF);
}

body.page-id-361 .acadp-content::after,
body.page-id-359 .acadp-content::after {
	content: 'View listing \2192';
	margin-top: 4px;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--aptv2-text-muted, #6B7280);
	transition: color 0.15s ease;
}

body.page-id-361 .acadp-card:hover .acadp-content::after,
body.page-id-359 .acadp-card:hover .acadp-content::after {
	color: var(--aptv2-green-dark, #168238);
}

body.page-id-361 .acadp-price,
body.page-id-359 .acadp-price {
	color: var(--aptv2-green-dark, #168238);
	font-size: 1.1rem;
}

body.page-id-361 .apt-mkt-empty__title,
body.page-id-359 .apt-mkt-empty__title,
body.page-id-361 .apt-mkt-empty__desc,
body.page-id-359 .apt-mkt-empty__desc,
body.page-id-361 .apt-mkt-empty__cta,
body.page-id-359 .apt-mkt-empty__cta {
	display: block;
}

body.page-id-361 .apt-mkt-empty__title,
body.page-id-359 .apt-mkt-empty__title {
	font-size: 1.05rem;
	color: var(--aptv2-navy, #1A2E52);
}

body.page-id-361 .apt-mkt-empty__desc,
body.page-id-359 .apt-mkt-empty__desc {
	margin-top: 4px;
	font-size: 0.9rem;
	color: var(--aptv2-text-muted, #6B7280);
}

body.page-id-361 .apt-mkt-empty__cta,
body.page-id-359 .apt-mkt-empty__cta {
	margin-top: 12px;
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border-radius: 10px;
	background: var(--aptv2-green, #1FA34A);
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}

body.page-id-361 .apt-mkt-empty__cta:hover,
body.page-id-359 .apt-mkt-empty__cta:hover {
	background: var(--aptv2-green-dark, #168238);
}

/* Contextual term heading (class-apt-marketplace.php::
   prepend_term_archive_header()) — the one new element in this batch,
   sitting above ACADP's own real shortcode output. Real term name/
   description only; no fabricated counts or claims. */
body.page-id-361 .apt-mkt-term-header,
body.page-id-359 .apt-mkt-term-header {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	padding: var(--aptv2-space-6, 32px) var(--aptv2-space-5, 24px) 0;
	box-sizing: border-box;
}

body.page-id-361 .apt-mkt-term-header__eyebrow,
body.page-id-359 .apt-mkt-term-header__eyebrow {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--aptv2-green-dark, #168238);
	margin-bottom: 4px;
}

body.page-id-361 .apt-mkt-term-header__title,
body.page-id-359 .apt-mkt-term-header__title {
	margin: 0 0 6px;
	font-size: clamp(1.4rem, 2.2vw, 1.8rem);
	font-weight: 800;
	color: var(--aptv2-navy, #1A2E52);
}

body.page-id-361 .apt-mkt-term-header__desc,
body.page-id-359 .apt-mkt-term-header__desc {
	margin: 0 0 14px;
	max-width: 640px;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--aptv2-text-muted, #6B7280);
}

body.page-id-361 .apt-mkt-term-header__cta,
body.page-id-359 .apt-mkt-term-header__cta {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border-radius: 10px;
	background: var(--aptv2-green, #1FA34A);
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}

body.page-id-361 .apt-mkt-term-header__cta:hover,
body.page-id-359 .apt-mkt-term-header__cta:hover {
	background: var(--aptv2-green-dark, #168238);
}

@media (max-width: 600px) {
	body.page-id-361 .apt-mkt-term-header,
	body.page-id-359 .apt-mkt-term-header,
	body.page-id-361 .page__text,
	body.page-id-359 .page__text {
		padding-left: var(--aptv2-space-4, 16px);
		padding-right: var(--aptv2-space-4, 16px);
	}
}

/* =========================================================================
   13. Category and location index pages (posts 360 / 358,
   acadp_page_settings['categories'] / ['locations']) — MARKETPLACE-
   LISTING-FLOW-1J

   /listing-categories/ and /listing-locations/ resolve here — "browse all
   terms" pages, distinct from the single-term archives styled in section
   12. Neither page loads homepage-v2.css (same as sections 11/12), so
   every rule below carries its own literal hex fallback. Card/list markup
   here is [acadp_categories]/[acadp_locations] output (public/templates/
   categories/layout-grid.php, public/templates/locations/layout-list.php)
   — a genuinely different template from the listing-card grid styled in
   sections 5/11/12, so rules are written fresh rather than reused: there
   is no listing price/badge/favourite here, only a term tile/row linking
   to its own real term archive with a real, source-confirmed count
   (acadp_get_listings_count_by_category()/_location(), both already
   filtered to post_status='publish' — verified in
   includes/helpers/functions.php, no draft/pending/Trash inflation).
   ========================================================================= */

body.page-id-360,
body.page-id-358 {
	overflow-x: hidden;
}

body.page-id-360 .page__text,
body.page-id-358 .page__text {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	padding: var(--aptv2-space-6, 32px) var(--aptv2-space-5, 24px);
	box-sizing: border-box;
}

/* Root defect found during 1J source-tracing: page 360's own post_content
   embeds an unrelated HivePress "listing categories" Gutenberg block
   (hp-listing-categories) that renders HivePress's *service* category
   taxonomy (e.g. "Business Services", linking to /service-category/*) —
   a completely different part of the site, stacked directly under the
   real ACADP Marketplace category grid. Editing the page's own
   post_content to remove the block is a post update (Stop-before-risk),
   so it is suppressed visually here instead — fully reversible, no DB
   write, and the block itself is untouched if ever wanted elsewhere. */
body.page-id-360 .hp-listing-categories {
	display: none;
}

/* Category tiles (image_grid view) */
body.page-id-360 .acadp-categories .acadp-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: var(--aptv2-radius-lg, 16px);
	overflow: hidden;
	background: var(--aptv2-bg, #fff);
	box-shadow: var(--aptv2-shadow-sm, 0 1px 2px rgba(16, 24, 40, 0.05));
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

body.page-id-360 .acadp-categories .acadp-card:hover {
	box-shadow: var(--aptv2-shadow-md, 0 4px 12px rgba(16, 24, 40, 0.08));
	transform: translateY(-2px);
}

body.page-id-360 .acadp-categories .acadp-title a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-weight: 600;
	color: var(--aptv2-text, #1A1A1A);
	text-decoration: none;
}

body.page-id-360 .acadp-categories .acadp-listings-count {
	font-size: 0.82rem;
	color: var(--aptv2-text-muted, #6B7280);
}

/* Location rows (text_list view) — plain bullet-less <li><a> in the real
   markup; styled here as a responsive row grid of tap-friendly link
   rows rather than a bare list. */
body.page-id-358 .acadp-locations ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

body.page-id-358 .acadp-locations li {
	min-width: 0;
}

body.page-id-358 .acadp-locations li a {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	padding: 12px 16px;
	border: 1px solid var(--aptv2-border, #E5E7EB);
	border-radius: 10px;
	background: var(--aptv2-bg, #fff);
	color: var(--aptv2-text, #1A1A1A);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.92rem;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.page-id-358 .acadp-locations li a:hover {
	border-color: var(--aptv2-green, #1FA34A);
	background: var(--aptv2-green-light, #EAF7EE);
}

/* Nested child-location rows (only render if acadp_locations_settings
   depth > 1 is ever configured — currently depth:0 on this install, so
   this rule is inert today but keeps a future nested list from breaking
   the row-grid layout above). */
body.page-id-358 .acadp-locations li ul {
	grid-template-columns: 1fr;
	margin-top: 8px;
}

body.page-id-360 .apt-mkt-empty__title,
body.page-id-358 .apt-mkt-empty__title,
body.page-id-360 .apt-mkt-empty__desc,
body.page-id-358 .apt-mkt-empty__desc,
body.page-id-360 .apt-mkt-empty__cta,
body.page-id-358 .apt-mkt-empty__cta {
	display: block;
}

body.page-id-360 .apt-mkt-empty__title,
body.page-id-358 .apt-mkt-empty__title {
	font-size: 1.05rem;
	color: var(--aptv2-navy, #1A2E52);
}

body.page-id-360 .apt-mkt-empty__desc,
body.page-id-358 .apt-mkt-empty__desc {
	margin-top: 4px;
	font-size: 0.9rem;
	color: var(--aptv2-text-muted, #6B7280);
}

body.page-id-360 .apt-mkt-empty__cta,
body.page-id-358 .apt-mkt-empty__cta {
	margin-top: 12px;
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border-radius: 10px;
	background: var(--aptv2-green, #1FA34A);
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}

body.page-id-360 .apt-mkt-empty__cta:hover,
body.page-id-358 .apt-mkt-empty__cta:hover {
	background: var(--aptv2-green-dark, #168238);
}

/* Contextual index heading (class-apt-marketplace.php::
   prepend_term_index_header()) */
body.page-id-360 .apt-mkt-index-header,
body.page-id-358 .apt-mkt-index-header {
	max-width: var(--aptv2-container, 1200px);
	margin: 0 auto;
	padding: var(--aptv2-space-6, 32px) var(--aptv2-space-5, 24px) 0;
	box-sizing: border-box;
}

body.page-id-360 .apt-mkt-index-header__title,
body.page-id-358 .apt-mkt-index-header__title {
	margin: 0 0 6px;
	font-size: clamp(1.4rem, 2.2vw, 1.8rem);
	font-weight: 800;
	color: var(--aptv2-navy, #1A2E52);
}

body.page-id-360 .apt-mkt-index-header__desc,
body.page-id-358 .apt-mkt-index-header__desc {
	margin: 0 0 14px;
	max-width: 640px;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--aptv2-text-muted, #6B7280);
}

body.page-id-360 .apt-mkt-index-header__cta,
body.page-id-358 .apt-mkt-index-header__cta {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border-radius: 10px;
	background: var(--aptv2-green, #1FA34A);
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}

body.page-id-360 .apt-mkt-index-header__cta:hover,
body.page-id-358 .apt-mkt-index-header__cta:hover {
	background: var(--aptv2-green-dark, #168238);
}

/* BRAND-IDENTITY-SEO-1A: "Marketplace categories" heading + services
   cross-link on the categories index (360) —
   class-apt-marketplace.php::prepend_term_index_header() /
   structure_category_index() */
body.page-id-360 .apt-mkt-index-section {
	margin: var(--aptv2-space-6, 32px) 0 var(--aptv2-space-4, 16px);
}

body.page-id-360 .apt-mkt-index-section__title {
	margin: var(--aptv2-space-6, 32px) 0 var(--aptv2-space-4, 16px);
	font-size: clamp(1.15rem, 1.6vw, 1.35rem);
	font-weight: 700;
	color: var(--aptv2-navy, #1A2E52);
}

body.page-id-360 .apt-mkt-index-section__desc {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--aptv2-text-muted, #6B7280);
}

@media (max-width: 767px) {
	body.page-id-358 .acadp-locations ul {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	body.page-id-360 .apt-mkt-index-header,
	body.page-id-358 .apt-mkt-index-header,
	body.page-id-360 .page__text,
	body.page-id-358 .page__text {
		padding-left: var(--aptv2-space-4, 16px);
		padding-right: var(--aptv2-space-4, 16px);
	}

	body.page-id-358 .acadp-locations ul {
		grid-template-columns: 1fr;
	}
}
