/**
 * HiGuppy Shop Page — Professional WooCommerce archive styling
 *
 * Targets /shop/ and product category archives. Works with XStore +
 * existing higuppy-visual.css product card base styles.
 *
 * @package HiGuppy
 * @since 1.2.0
 */

/* ==========================================================================
   PAGE SHELL
   ========================================================================== */

body.woocommerce-shop,
body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
	--hg-shop-blue: #1747b8;
	--hg-shop-blue-soft: #eaf6ff;
	--hg-shop-cream: #fff6e6;
	--hg-shop-orange: #ff6b35;
	--hg-shop-orange-dark: #e55a2b;
	--hg-shop-ink: #13203a;
	--hg-shop-muted: #667085;
	--hg-shop-border: #e6ecf7;
	--hg-shop-radius: 18px;
	--hg-shop-shadow: 0 10px 30px rgba(23, 71, 184, 0.08);
	background: #f7fbff;
}

/* Hide empty duplicate XStore header shell */
body.woocommerce-shop #header.site-header,
body.post-type-archive-product #header.site-header,
body.tax-product_cat #header.site-header {
	display: none !important;
}

body.woocommerce-shop .template-content,
body.post-type-archive-product .template-content,
body.tax-product_cat .template-content {
	background: transparent;
}

/* ==========================================================================
   PAGE HERO / BREADCRUMB
   ========================================================================== */

body.woocommerce-shop .page-heading,
body.post-type-archive-product .page-heading,
body.tax-product_cat .page-heading {
	background: linear-gradient(135deg, var(--hg-shop-cream) 0%, #fff 55%, var(--hg-shop-blue-soft) 100%);
	border-bottom: 1px solid rgba(23, 71, 184, 0.08);
	padding: 34px 0 38px;
	margin-bottom: 0;
	position: relative;
	overflow: hidden;
}

body.woocommerce-shop .page-heading::before,
body.post-type-archive-product .page-heading::before,
body.tax-product_cat .page-heading::before {
	content: "";
	position: absolute;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background: rgba(253, 187, 45, 0.35);
	left: -120px;
	bottom: -150px;
	pointer-events: none;
}

body.woocommerce-shop .page-heading::after,
body.post-type-archive-product .page-heading::after,
body.tax-product_cat .page-heading::after {
	content: "";
	position: absolute;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: rgba(23, 71, 184, 0.06);
	right: -70px;
	top: -90px;
	pointer-events: none;
}

body.woocommerce-shop .page-heading .container,
body.post-type-archive-product .page-heading .container,
body.tax-product_cat .page-heading .container {
	position: relative;
	z-index: 1;
	max-width: 1160px;
}

body.woocommerce-shop .page-heading .title,
body.post-type-archive-product .page-heading .title,
body.tax-product_cat .page-heading .title {
	display: none !important;
}

body.woocommerce-shop .woocommerce-breadcrumb,
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--hg-shop-muted);
	margin: 0;
}

body.woocommerce-shop .woocommerce-breadcrumb a,
body.post-type-archive-product .woocommerce-breadcrumb a,
body.tax-product_cat .woocommerce-breadcrumb a {
	color: var(--hg-shop-orange);
	text-decoration: none;
}

body.woocommerce-shop .woocommerce-breadcrumb a:hover,
body.post-type-archive-product .woocommerce-breadcrumb a:hover,
body.tax-product_cat .woocommerce-breadcrumb a:hover {
	color: var(--hg-shop-blue);
}

body.woocommerce-shop .woocommerce-breadcrumb .delimeter,
body.post-type-archive-product .woocommerce-breadcrumb .delimeter,
body.tax-product_cat .woocommerce-breadcrumb .delimeter {
	color: var(--hg-shop-blue);
	opacity: 0.55;
}

body.woocommerce-shop .page-heading .back-history,
body.post-type-archive-product .page-heading .back-history,
body.tax-product_cat .page-heading .back-history {
	display: none !important;
}

/* ==========================================================================
   SHOP SHELL WRAPPER
   ========================================================================== */

body.woocommerce-shop .higuppy-shop-shell,
body.post-type-archive-product .higuppy-shop-shell,
body.tax-product_cat .higuppy-shop-shell {
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Collapse empty wrappers so they never reserve a blank white gap. The top
   shell only carries a breadcrumb that is hidden (the theme prints its own),
   so keep it from reserving vertical space on every breakpoint. */
body.woocommerce-shop .higuppy-shop-gb-shell--top,
body.post-type-archive-product .higuppy-shop-gb-shell--top,
body.tax-product_cat .higuppy-shop-gb-shell--top {
	margin: 0 !important;
	padding: 0 !important;
	gap: 0 !important;
}

body.woocommerce-shop .higuppy-shop-shell:empty,
body.post-type-archive-product .higuppy-shop-shell:empty,
body.tax-product_cat .higuppy-shop-shell:empty,
body.woocommerce-shop .higuppy-shop-hero:empty,
body.post-type-archive-product .higuppy-shop-hero:empty,
body.tax-product_cat .higuppy-shop-hero:empty,
body.woocommerce-shop .higuppy-shop-footer-shell:empty,
body.post-type-archive-product .higuppy-shop-footer-shell:empty,
body.tax-product_cat .higuppy-shop-footer-shell:empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Hide XStore demo promo block on live-fish storefront. */
body.woocommerce-shop .shop-page-sidebar-banner,
body.post-type-archive-product .shop-page-sidebar-banner,
body.tax-product_cat .shop-page-sidebar-banner,
body.woocommerce-shop .shop-text-widget,
body.post-type-archive-product .shop-text-widget,
body.tax-product_cat .shop-text-widget {
	display: none !important;
}

/* ==========================================================================
   HERO SECTION (injected via PHP)
   ========================================================================== */

.higuppy-shop-hero {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 20px;
	padding: 22px;
	margin: 10px 0 14px;
	border-radius: 24px;
	background: linear-gradient(135deg, #ffffff 0%, #eef6ff 60%, #fff7e8 100%);
	border: 1px solid rgba(23, 71, 184, 0.12);
	box-shadow: 0 16px 38px rgba(23, 71, 184, 0.1);
}

.higuppy-shop-hero__eyebrow {
	margin: 0 0 10px;
	color: var(--hg-shop-orange);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.higuppy-shop-hero h1 {
	margin: 0 0 12px;
	font-size: clamp(1.5rem, 3.4vw, 2.1rem);
	line-height: 1.1;
	letter-spacing: -0.03em;
	color: var(--hg-shop-blue);
}

.higuppy-shop-hero p {
	margin: 0;
	color: var(--hg-shop-muted);
	font-size: 15px;
	line-height: 1.68;
}

.higuppy-shop-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.higuppy-shop-hero__meta span {
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(23, 71, 184, 0.08);
	color: var(--hg-shop-blue);
	font-size: 12px;
	font-weight: 700;
}

.higuppy-shop-hero__actions {
	display: grid;
	gap: 10px;
	align-content: center;
	justify-items: end;
}

.higuppy-shop-hero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	min-width: 220px;
	padding: 10px 20px;
	border-radius: 999px;
	background: var(--hg-shop-blue);
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 800;
}

.higuppy-shop-hero__btn:hover {
	color: #fff;
	background: var(--hg-shop-orange);
}

.higuppy-shop-hero__btn--outline {
	background: #fff;
	color: var(--hg-shop-blue);
	border: 1px solid rgba(23, 71, 184, 0.22);
}

/* The visible pill is the inner <a>.wp-block-button__link, which otherwise
   picks up the theme's grey default. Style the link directly so all three
   hero buttons share one consistent branded look (and drop the stray blue
   ring the wrapper background created on the first button). */
.higuppy-shop-hero__actions .wp-block-button,
.higuppy-shop-hero__btn {
	background: transparent !important;
	border: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
}

.higuppy-shop-hero__actions .wp-block-button__link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 46px;
	min-width: 220px;
	padding: 10px 20px !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--hg-shop-blue) !important;
	border: 1.5px solid rgba(23, 71, 184, 0.35) !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	text-decoration: none !important;
	box-shadow: none !important;
}

.higuppy-shop-hero__actions .wp-block-button__link:hover,
.higuppy-shop-hero__actions .wp-block-button__link:focus-visible {
	background: var(--hg-shop-blue) !important;
	color: #fff !important;
	border-color: var(--hg-shop-blue) !important;
}

/* ==========================================================================
   SHOP INTRO + CATEGORY SHORTCUTS (injected via PHP)
   ========================================================================== */

.higuppy-shop-intro {
	max-width: 100%;
	margin: 0;
	padding: 22px 0 8px;
}

.higuppy-shop-intro__inner {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	gap: 24px;
	align-items: center;
}

.higuppy-shop-intro__eyebrow {
	margin: 0 0 8px;
	color: var(--hg-shop-orange);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.higuppy-shop-intro h2 {
	margin: 0 0 10px;
	color: var(--hg-shop-blue);
	font-size: clamp(1.35rem, 3.5vw, 1.85rem);
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1.15;
}

.higuppy-shop-intro p {
	margin: 0;
	color: var(--hg-shop-muted);
	font-size: 15px;
	line-height: 1.65;
	max-width: 620px;
}

.higuppy-shop-intro__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-end;
}

.higuppy-shop-intro__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--hg-shop-border);
	box-shadow: 0 6px 18px rgba(23, 71, 184, 0.06);
	font-size: 13px;
	font-weight: 700;
	color: var(--hg-shop-ink);
}

.higuppy-shop-intro__badge svg {
	flex-shrink: 0;
	color: var(--hg-shop-orange);
}

.higuppy-shop-categories {
	max-width: 100%;
	margin: 0;
	padding: 8px 0 22px;
	position: relative;
}

.higuppy-shop-categories__viewport {
	position: relative;
	overflow: hidden;
}

.higuppy-shop-categories__viewport::before,
.higuppy-shop-categories__viewport::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 10px;
	width: 28px;
	z-index: 2;
	pointer-events: none;
}

.higuppy-shop-categories__viewport::before {
	left: 0;
	background: linear-gradient(90deg, #f7fbff 15%, transparent);
}

.higuppy-shop-categories__viewport::after {
	right: 0;
	background: linear-gradient(270deg, #f7fbff 15%, transparent);
}

.higuppy-shop-categories__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.higuppy-shop-categories__title {
	margin: 0;
	font-size: 15px;
	font-weight: 900;
	color: var(--hg-shop-blue);
	letter-spacing: -0.02em;
}

.higuppy-shop-categories__controls {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

.higuppy-shop-categories__arrow {
	display: inline-grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--hg-shop-border);
	border-radius: 999px;
	background: #fff;
	color: var(--hg-shop-blue);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(23, 71, 184, 0.08);
	transition: opacity 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.higuppy-shop-categories__arrow:hover:not(:disabled) {
	border-color: rgba(255, 107, 53, 0.45);
	color: var(--hg-shop-orange);
}

.higuppy-shop-categories__arrow:disabled {
	opacity: 0.35;
	cursor: default;
}

.higuppy-shop-categories__track {
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
	overflow-x: auto;
	overflow-y: hidden;
	padding: 2px 2px 10px;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.higuppy-shop-categories__track::-webkit-scrollbar {
	display: none;
}

.higuppy-shop-categories__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex: 0 0 132px;
	width: 132px;
	min-height: 96px;
	padding: 14px 10px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--hg-shop-border);
	box-shadow: 0 6px 18px rgba(23, 71, 184, 0.05);
	text-decoration: none;
	scroll-snap-align: start;
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.higuppy-shop-categories__item:hover,
.higuppy-shop-categories__item:focus {
	transform: translateY(-2px);
	border-color: rgba(255, 107, 53, 0.45);
	box-shadow: var(--hg-shop-shadow);
	text-decoration: none;
}

.higuppy-shop-categories__icon {
	width: 42px;
	height: 42px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	background: var(--hg-shop-blue-soft);
	font-size: 16px;
	font-weight: 800;
	line-height: 1;
}

.higuppy-shop-categories__label {
	font-size: 13px;
	font-weight: 800;
	color: var(--hg-shop-ink);
	text-align: center;
	line-height: 1.25;
}

/* ==========================================================================
   MAIN CONTENT LAYOUT
   ========================================================================== */

body.woocommerce-shop .content-page,
body.post-type-archive-product .content-page,
body.tax-product_cat .content-page {
	max-width: 1160px;
	padding-top: 8px;
	padding-bottom: 56px;
}

body.woocommerce-shop .sidebar-position-left > .row,
body.post-type-archive-product .sidebar-position-left > .row,
body.tax-product_cat .sidebar-position-left > .row {
	display: block;
}

body.woocommerce-shop .main-products-loop,
body.post-type-archive-product .main-products-loop,
body.tax-product_cat .main-products-loop {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	left: auto !important;
	right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Off-canvas filter panel — sidebar may sit outside .sidebar-position-left in XStore markup */
body.woocommerce-shop .sidebar.sidebar-left,
body.post-type-archive-product .sidebar.sidebar-left,
body.tax-product_cat .sidebar.sidebar-left,
body.hg-shop-page-active .sidebar.sidebar-left {
	display: block !important;
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	z-index: 10060;
	width: min(320px, 88vw);
	margin: 0;
	padding: 72px 18px 24px;
	background: #fff;
	border-right: 1px solid var(--hg-shop-border);
	box-shadow: 0 18px 50px rgba(23, 71, 184, 0.18);
	overflow-x: hidden;
	overflow-y: auto;
	transform: translateX(-108%);
	transition: transform 0.28s ease;
	visibility: hidden;
	pointer-events: none;
}

body.higuppy-shop-filters-open.woocommerce-shop .sidebar.sidebar-left,
body.higuppy-shop-filters-open.post-type-archive-product .sidebar.sidebar-left,
body.higuppy-shop-filters-open.tax-product_cat .sidebar.sidebar-left,
body.higuppy-shop-filters-open.hg-shop-page-active .sidebar.sidebar-left {
	transform: translateX(0);
	visibility: visible;
	pointer-events: auto;
}

body.higuppy-shop-filters-open::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 10050;
	background: rgba(19, 32, 58, 0.45);
	backdrop-filter: blur(2px);
}

.higuppy-shop-filter-btn {
	display: none !important;
}

.higuppy-shop-filter-btn svg {
	flex-shrink: 0;
	color: var(--hg-shop-blue);
}

.higuppy-shop-filter-close {
	position: fixed;
	top: 14px;
	left: min(272px, calc(88vw - 48px));
	z-index: 10070;
	display: none;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 999px;
	background: var(--hg-shop-blue);
	color: #fff;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(23, 71, 184, 0.25);
}

body.higuppy-shop-filters-open .higuppy-shop-filter-close {
	display: inline-grid;
	place-items: center;
}

body.higuppy-shop-filters-open {
	overflow: hidden;
}

body.woocommerce-shop .sidebar-mobile-off_canvas .sidebar-toggle,
body.post-type-archive-product .sidebar-mobile-off_canvas .sidebar-toggle,
body.tax-product_cat .sidebar-mobile-off_canvas .sidebar-toggle,
body.woocommerce-shop .sidebar-mobile-off_canvas .et-toggle-sidebar,
body.post-type-archive-product .sidebar-mobile-off_canvas .et-toggle-sidebar,
body.tax-product_cat .sidebar-mobile-off_canvas .et-toggle-sidebar,
body.woocommerce-shop .sidebar-mobile-off_canvas .open-filter,
body.post-type-archive-product .sidebar-mobile-off_canvas .open-filter,
body.tax-product_cat .sidebar-mobile-off_canvas .open-filter {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid var(--hg-shop-border);
	background: #fff;
	color: var(--hg-shop-ink);
	font-size: 13px;
	font-weight: 700;
	box-shadow: 0 5px 16px rgba(23, 71, 184, 0.06);
}

/* ==========================================================================
   TOOLBAR (SORT / VIEW / PER PAGE)
   ========================================================================== */

body.woocommerce-shop .filter-wrap,
body.post-type-archive-product .filter-wrap,
body.tax-product_cat .filter-wrap {
	margin: 0 0 22px;
	padding: 0;
	background: transparent;
	border: 0;
}

body.woocommerce-shop .filter-content,
body.post-type-archive-product .filter-content,
body.tax-product_cat .filter-content {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px;
	background: #fff;
	border: 1px solid var(--hg-shop-border);
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(23, 71, 184, 0.05);
}

/* Hide filter toggles + trust bar in toolbar */
body.woocommerce-shop .filter-content .higuppy-shop-filter-btn,
body.post-type-archive-product .filter-content .higuppy-shop-filter-btn,
body.tax-product_cat .filter-content .higuppy-shop-filter-btn,
body.woocommerce-shop .filter-content .sidebar-toggle,
body.post-type-archive-product .filter-content .sidebar-toggle,
body.tax-product_cat .filter-content .sidebar-toggle,
body.woocommerce-shop .filter-content .et-toggle-sidebar,
body.post-type-archive-product .filter-content .et-toggle-sidebar,
body.tax-product_cat .filter-content .et-toggle-sidebar,
body.woocommerce-shop .filter-content .open-filter,
body.post-type-archive-product .filter-content .open-filter,
body.tax-product_cat .filter-content .open-filter,
body.woocommerce-shop .filter-content .higuppy-trust-bar,
body.post-type-archive-product .filter-content .higuppy-trust-bar,
body.tax-product_cat .filter-content .higuppy-trust-bar,
body.woocommerce-shop .higuppy-trust-bar,
body.post-type-archive-product .higuppy-trust-bar,
body.tax-product_cat .higuppy-trust-bar {
	display: none !important;
}

body.woocommerce-shop .woocommerce-ordering,
body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering {
	margin: 0;
	float: none;
	flex: 1 1 auto;
	min-width: 0;
	order: 1;
}

body.woocommerce-shop .orderby,
body.post-type-archive-product .orderby,
body.tax-product_cat .orderby,
body.woocommerce-shop .et-per-page-select,
body.post-type-archive-product .et-per-page-select,
body.tax-product_cat .et-per-page-select {
	min-height: 44px;
	padding: 0 38px 0 14px;
	border: 1px solid var(--hg-shop-border);
	border-radius: 12px;
	background: #fff;
	color: var(--hg-shop-ink);
	font-size: 13px;
	font-weight: 600;
	box-shadow: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}

body.woocommerce-shop .view-switcher,
body.post-type-archive-product .view-switcher,
body.tax-product_cat .view-switcher {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}

body.woocommerce-shop .view-switcher > label,
body.post-type-archive-product .view-switcher > label,
body.tax-product_cat .view-switcher > label {
	display: none;
}

body.woocommerce-shop .view-switcher .switch-grid,
body.woocommerce-shop .view-switcher .switch-list,
body.post-type-archive-product .view-switcher .switch-grid,
body.post-type-archive-product .view-switcher .switch-list,
body.tax-product_cat .view-switcher .switch-grid,
body.tax-product_cat .view-switcher .switch-list {
	margin: 0;
}

body.woocommerce-shop .view-switcher a,
body.post-type-archive-product .view-switcher a,
body.tax-product_cat .view-switcher a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border-radius: 12px;
	border: 1px solid var(--hg-shop-border);
	background: #fff;
	color: var(--hg-shop-muted);
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

body.woocommerce-shop .view-switcher .switcher-active a,
body.post-type-archive-product .view-switcher .switcher-active a,
body.tax-product_cat .view-switcher .switcher-active a {
	background: var(--hg-shop-blue);
	border-color: var(--hg-shop-blue);
	color: #fff;
}

body.woocommerce-shop .products-per-page,
body.post-type-archive-product .products-per-page,
body.tax-product_cat .products-per-page {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	flex: 0 0 auto;
	order: 2;
	font-size: 13px;
	font-weight: 600;
	color: var(--hg-shop-muted);
}

body.woocommerce-shop .products-per-page .mob-hide,
body.post-type-archive-product .products-per-page .mob-hide,
body.tax-product_cat .products-per-page .mob-hide {
	display: none;
}

/* Per-page numbers — bold pill style (12, 24, …) */
body.woocommerce-shop .products-per-page a,
body.post-type-archive-product .products-per-page a,
body.tax-product_cat .products-per-page a,
body.woocommerce-shop .products-per-page .per-page-variation,
body.post-type-archive-product .products-per-page .per-page-variation,
body.tax-product_cat .products-per-page .per-page-variation {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border-radius: 12px;
	border: 2px solid rgba(23, 71, 184, 0.16);
	background: #fff;
	color: var(--hg-shop-blue);
	font-size: 16px;
	font-weight: 900;
	line-height: 1;
	text-decoration: none;
	box-shadow: 0 4px 12px rgba(23, 71, 184, 0.08);
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

body.woocommerce-shop .products-per-page a.active,
body.post-type-archive-product .products-per-page a.active,
body.tax-product_cat .products-per-page a.active,
body.woocommerce-shop .products-per-page .per-page-variation.active,
body.post-type-archive-product .products-per-page .per-page-variation.active,
body.tax-product_cat .products-per-page .per-page-variation.active,
body.woocommerce-shop .products-per-page a:hover,
body.post-type-archive-product .products-per-page a:hover,
body.tax-product_cat .products-per-page a:hover {
	background: linear-gradient(135deg, var(--hg-shop-orange) 0%, #ff9f3f 100%);
	border-color: var(--hg-shop-orange);
	color: #fff;
	transform: translateY(-1px);
}

body.woocommerce-shop .et-per-page-select,
body.post-type-archive-product .et-per-page-select,
body.tax-product_cat .et-per-page-select {
	min-width: 56px;
	min-height: 44px;
	padding: 0 32px 0 14px;
	border: 2px solid var(--hg-shop-blue);
	border-radius: 12px;
	background: #fff;
	color: var(--hg-shop-blue);
	font-size: 16px;
	font-weight: 900;
	text-align: center;
	box-shadow: 0 4px 12px rgba(23, 71, 184, 0.1);
}

body.woocommerce-shop .view-switcher,
body.post-type-archive-product .view-switcher,
body.tax-product_cat .view-switcher {
	display: none !important;
}

/* ==========================================================================
   WOOCOMMERCE BLOCK SHOP TOOLBAR — filter + results + sort
   ========================================================================== */

body.woocommerce-shop .product-filters-wrapper,
body.post-type-archive-product .product-filters-wrapper,
body.tax-product_cat .product-filters-wrapper {
	border-bottom: 0 !important;
	padding-bottom: 0 !important;
}

body.woocommerce-shop .wc-block-product-filters__open-overlay,
body.post-type-archive-product .wc-block-product-filters__open-overlay,
body.tax-product_cat .wc-block-product-filters__open-overlay {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 8px 14px !important;
	border: 1px solid var(--hg-shop-border) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--hg-shop-ink) !important;
	box-shadow: 0 4px 12px rgba(23, 71, 184, 0.08) !important;
}

body.woocommerce-shop .wc-block-product-filters__open-overlay::before,
body.woocommerce-shop .wc-block-product-filters__open-overlay::after,
body.post-type-archive-product .wc-block-product-filters__open-overlay::before,
body.post-type-archive-product .wc-block-product-filters__open-overlay::after,
body.tax-product_cat .wc-block-product-filters__open-overlay::before,
body.tax-product_cat .wc-block-product-filters__open-overlay::after {
	content: none !important;
	display: none !important;
}

/* Safeguard (all breakpoints): a product badge must never render inside the
   filter controls. Cards are now position:relative so badges stay contained,
   but keep this so a stray badge can't overlap the "Filter products" button. */
body.woocommerce-shop .wc-block-product-filters .higuppy-shop-badge,
body.woocommerce-shop .product-filters-wrapper .higuppy-shop-badge,
body.woocommerce-shop .wc-block-product-filters__open-overlay .higuppy-shop-badge,
body.post-type-archive-product .wc-block-product-filters .higuppy-shop-badge,
body.post-type-archive-product .product-filters-wrapper .higuppy-shop-badge,
body.tax-product_cat .wc-block-product-filters .higuppy-shop-badge,
body.tax-product_cat .product-filters-wrapper .higuppy-shop-badge {
	display: none !important;
}

body.woocommerce-shop .wc-block-product-results-count .woocommerce-result-count,
body.post-type-archive-product .wc-block-product-results-count .woocommerce-result-count,
body.tax-product_cat .wc-block-product-results-count .woocommerce-result-count {
	margin: 0 !important;
	color: var(--hg-shop-muted);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
}

body.woocommerce-shop .wp-block-woocommerce-catalog-sorting .orderby,
body.post-type-archive-product .wp-block-woocommerce-catalog-sorting .orderby,
body.tax-product_cat .wp-block-woocommerce-catalog-sorting .orderby {
	min-height: 42px;
	min-width: 148px;
	padding: 0 36px 0 14px;
	border: 1px solid var(--hg-shop-border);
	border-radius: 999px;
	background: #fff;
	color: var(--hg-shop-blue);
	font-size: 13px;
	font-weight: 700;
	box-shadow: 0 4px 12px rgba(23, 71, 184, 0.08);
}

@media (max-width: 782px) {
	/* One compact toolbar card: filter | sort, then results count. */
	body.woocommerce-shop .wp-block-columns:has(.product-filters-wrapper),
	body.post-type-archive-product .wp-block-columns:has(.product-filters-wrapper),
	body.tax-product_cat .wp-block-columns:has(.product-filters-wrapper) {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		grid-template-areas:
			"filter sort"
			"results results"
			"catalog catalog";
		gap: 10px 12px;
		align-items: center;
		margin: 0 10px 14px;
		padding: 12px 14px;
		background: #fff;
		border: 1px solid var(--hg-shop-border);
		border-radius: 16px;
		box-shadow: 0 8px 24px rgba(23, 71, 184, 0.05);
	}

	body.woocommerce-shop .wp-block-columns:has(.product-filters-wrapper) > .wp-block-column:nth-child(2),
	body.post-type-archive-product .wp-block-columns:has(.product-filters-wrapper) > .wp-block-column:nth-child(2),
	body.tax-product_cat .wp-block-columns:has(.product-filters-wrapper) > .wp-block-column:nth-child(2) {
		display: none !important;
	}

	body.woocommerce-shop .wp-block-column:has(.product-filters-wrapper),
	body.post-type-archive-product .wp-block-column:has(.product-filters-wrapper),
	body.tax-product_cat .wp-block-column:has(.product-filters-wrapper) {
		display: contents;
	}

	body.woocommerce-shop .wp-block-column:has(.higuppy-shop-shell),
	body.post-type-archive-product .wp-block-column:has(.higuppy-shop-shell),
	body.tax-product_cat .wp-block-column:has(.higuppy-shop-shell) {
		display: contents;
	}

	body.woocommerce-shop .product-filters-wrapper,
	body.post-type-archive-product .product-filters-wrapper,
	body.tax-product_cat .product-filters-wrapper {
		grid-area: filter;
	}

	body.woocommerce-shop .wp-block-column:has(.higuppy-shop-shell) > .wp-block-spacer,
	body.post-type-archive-product .wp-block-column:has(.higuppy-shop-shell) > .wp-block-spacer,
	body.tax-product_cat .wp-block-column:has(.higuppy-shop-shell) > .wp-block-spacer {
		display: none !important;
	}

	body.woocommerce-shop .wp-block-group.alignwide.is-content-justification-space-between,
	body.post-type-archive-product .wp-block-group.alignwide.is-content-justification-space-between,
	body.tax-product_cat .wp-block-group.alignwide.is-content-justification-space-between {
		display: contents !important;
		padding: 0 !important;
	}

	body.woocommerce-shop .wc-block-product-results-count,
	body.post-type-archive-product .wc-block-product-results-count,
	body.tax-product_cat .wc-block-product-results-count {
		grid-area: results;
	}

	body.woocommerce-shop .wp-block-woocommerce-catalog-sorting,
	body.post-type-archive-product .wp-block-woocommerce-catalog-sorting,
	body.tax-product_cat .wp-block-woocommerce-catalog-sorting {
		grid-area: sort;
		justify-self: end;
		width: 100%;
		max-width: 220px;
	}

	body.woocommerce-shop .wp-block-woocommerce-catalog-sorting .orderby,
	body.post-type-archive-product .wp-block-woocommerce-catalog-sorting .orderby,
	body.tax-product_cat .wp-block-woocommerce-catalog-sorting .orderby {
		width: 100%;
		max-width: 220px;
	}

	body.woocommerce-shop .higuppy-shop-shell,
	body.post-type-archive-product .higuppy-shop-shell,
	body.tax-product_cat .higuppy-shop-shell {
		grid-area: catalog;
		margin: 0;
		padding: 0;
	}

	body.woocommerce-shop .higuppy-shop-gb-shell--top,
	body.post-type-archive-product .higuppy-shop-gb-shell--top,
	body.tax-product_cat .higuppy-shop-gb-shell--top {
		display: none !important;
	}

	/* Product badges must not bleed into the toolbar card. */
	body.woocommerce-shop .product-filters-wrapper .higuppy-shop-badge,
	body.woocommerce-shop .wc-block-product-filters .higuppy-shop-badge,
	body.woocommerce-shop .wp-block-columns:has(.product-filters-wrapper) .higuppy-shop-badge {
		display: none !important;
	}
}

/* ==========================================================================
   PRODUCT GRID
   ========================================================================== */

body.woocommerce-shop .products-loop,
body.post-type-archive-product .products-loop,
body.tax-product_cat .products-loop {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px 20px;
	margin: 0;
	align-items: start;
}

body.woocommerce-shop .products-loop > .product,
body.post-type-archive-product .products-loop > .product,
body.tax-product_cat .products-loop > .product {
	width: auto !important;
	flex: none !important;
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-bottom: 0;
}

body.woocommerce-shop .products-loop.row-count-4 > .product,
body.post-type-archive-product .products-loop.row-count-4 > .product,
body.tax-product_cat .products-loop.row-count-4 > .product {
	width: auto !important;
	flex: none !important;
	max-width: none !important;
}

/* ==========================================================================
   PRODUCT CARDS
   ========================================================================== */

body.woocommerce-shop .products-loop > .product,
body.post-type-archive-product .products-loop > .product,
body.tax-product_cat .products-loop > .product {
	position: relative;
}

body.woocommerce-shop .content-product,
body.post-type-archive-product .content-product,
body.tax-product_cat .content-product {
	height: auto;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--hg-shop-border);
	border-radius: var(--hg-shop-radius);
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(23, 71, 184, 0.06);
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
	position: relative;
}

body.woocommerce-shop .content-product:hover,
body.post-type-archive-product .content-product:hover,
body.tax-product_cat .content-product:hover {
	transform: translateY(-4px);
	border-color: rgba(23, 71, 184, 0.18);
	box-shadow: var(--hg-shop-shadow);
}

body.woocommerce-shop .product-image-wrapper,
body.post-type-archive-product .product-image-wrapper,
body.tax-product_cat .product-image-wrapper {
	background: linear-gradient(180deg, #f3f9ff 0%, #eef5ff 100%);
	border-bottom: 1px solid rgba(23, 71, 184, 0.06);
	aspect-ratio: 1 / 1;
	overflow: hidden;
	position: relative;
	display: block;
	height: auto !important;
	min-height: 0 !important;
}

body.woocommerce-shop .product-image-wrapper .images-slider-wrapper,
body.post-type-archive-product .product-image-wrapper .images-slider-wrapper,
body.tax-product_cat .product-image-wrapper .images-slider-wrapper {
	display: block;
	width: 100%;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
}

body.woocommerce-shop .product-content-image,
body.post-type-archive-product .product-content-image,
body.tax-product_cat .product-content-image {
	display: block;
	width: 100%;
	height: 100%;
}

body.woocommerce-shop .product-image-wrapper img,
body.post-type-archive-product .product-image-wrapper img,
body.tax-product_cat .product-image-wrapper img,
body.woocommerce-shop .product-image-wrapper .woocommerce-placeholder,
body.post-type-archive-product .product-image-wrapper .woocommerce-placeholder,
body.tax-product_cat .product-image-wrapper .woocommerce-placeholder {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	min-width: unset !important;
	min-height: unset !important;
	max-height: none !important;
}

/* Nicer placeholder when product photo is missing */
body.woocommerce-shop .product-image-wrapper img.woocommerce-placeholder,
body.post-type-archive-product .product-image-wrapper img.woocommerce-placeholder,
body.tax-product_cat .product-image-wrapper img.woocommerce-placeholder,
body.woocommerce-shop .product-image-wrapper img.higuppy-product-fallback-image,
body.post-type-archive-product .product-image-wrapper img.higuppy-product-fallback-image,
body.tax-product_cat .product-image-wrapper img.higuppy-product-fallback-image {
	object-fit: contain !important;
	padding: 14%;
	opacity: 0.7;
	filter: saturate(0.9);
}

.higuppy-shop-badge {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 22px;
	padding: 3px 8px;
	border-radius: 999px;
	font-size: 9px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #fff;
	box-shadow: 0 4px 10px rgba(19, 32, 58, 0.16);
	pointer-events: none;
}

.higuppy-shop-badge--hot {
	background: linear-gradient(135deg, #ff6b35 0%, #fdbb2d 100%);
}

.higuppy-shop-badge--new {
	background: linear-gradient(135deg, #15bfd0 0%, #1747b8 100%);
}

.higuppy-shop-badge--best-seller {
	background: linear-gradient(135deg, #1747b8 0%, #0e2f86 100%);
}

body.woocommerce-shop .product-details,
body.post-type-archive-product .product-details,
body.tax-product_cat .product-details {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	text-align: left;
	padding: 10px 10px 10px;
	flex: 0 0 auto;
}

body.woocommerce-shop .products-page-cats,
body.post-type-archive-product .products-page-cats,
body.tax-product_cat .products-page-cats {
	margin-bottom: 4px;
	line-height: 1;
}

body.woocommerce-shop .products-page-cats a,
body.post-type-archive-product .products-page-cats a,
body.tax-product_cat .products-page-cats a {
	display: inline-block;
	max-width: 100%;
	padding: 1px 6px;
	border-radius: 999px;
	background: rgba(23, 71, 184, 0.07);
	color: var(--hg-shop-blue);
	font-size: 7px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: top;
}

body.woocommerce-shop .product-title,
body.post-type-archive-product .product-title,
body.tax-product_cat .product-title {
	margin: 0 0 6px !important;
	padding: 0 !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 1.28 !important;
	letter-spacing: -0.02em;
	color: var(--hg-shop-ink) !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

body.woocommerce-shop .product-title a,
body.post-type-archive-product .product-title a,
body.tax-product_cat .product-title a {
	color: inherit;
	text-decoration: none;
}

body.woocommerce-shop .product-title a:hover,
body.post-type-archive-product .product-title a:hover,
body.tax-product_cat .product-title a:hover {
	color: var(--hg-shop-blue);
}

body.woocommerce-shop .product-details .price,
body.post-type-archive-product .product-details .price,
body.tax-product_cat .product-details .price {
	margin: 0 0 12px !important;
	padding: 0 !important;
	font-size: 1.125rem !important;
	font-weight: 900 !important;
	color: var(--hg-shop-orange) !important;
}

/* Compact card footer: price + Add | Buy Now below */
body.woocommerce-shop .higuppy-shop-card-cta,
body.post-type-archive-product .higuppy-shop-card-cta,
body.tax-product_cat .higuppy-shop-card-cta,
body.hg-shop-page-active .higuppy-shop-card-cta {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 4px 6px;
	margin-top: auto;
	padding-top: 8px;
	border-top: 1px solid var(--hg-shop-border);
	width: 100%;
}

body.woocommerce-shop .higuppy-shop-card-cta > .price,
body.post-type-archive-product .higuppy-shop-card-cta > .price,
body.tax-product_cat .higuppy-shop-card-cta > .price,
body.hg-shop-page-active .higuppy-shop-card-cta > .price {
	grid-column: 1;
	grid-row: 1;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 0.92rem !important;
	font-weight: 900 !important;
	line-height: 1;
	color: var(--hg-shop-blue) !important;
	white-space: nowrap;
}

body.woocommerce-shop .higuppy-shop-card-actions,
body.post-type-archive-product .higuppy-shop-card-actions,
body.tax-product_cat .higuppy-shop-card-actions,
body.hg-shop-page-active .higuppy-shop-card-actions {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex: 0 0 auto;
	min-width: 0;
}

body.woocommerce-shop .higuppy-shop-card-actions .button,
body.post-type-archive-product .higuppy-shop-card-actions .button,
body.tax-product_cat .higuppy-shop-card-actions .button,
body.hg-shop-page-active .higuppy-shop-card-actions .button,
body.woocommerce-shop .higuppy-shop-card-actions .add_to_cart_button,
body.post-type-archive-product .higuppy-shop-card-actions .add_to_cart_button,
body.tax-product_cat .higuppy-shop-card-actions .add_to_cart_button,
body.hg-shop-page-active .higuppy-shop-card-actions .add_to_cart_button,
body.woocommerce-shop .products-loop .product .higuppy-shop-card-actions .button,
body.hg-shop-page-active .products-loop .product .higuppy-shop-card-actions .add_to_cart_button {
	width: auto !important;
	min-width: 72px;
	margin: 0 !important;
	min-height: 28px !important;
	padding: 4px 8px !important;
	font-size: 9px !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	white-space: normal !important;
	text-align: center;
	border: 1.5px solid var(--hg-shop-orange) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--hg-shop-orange) !important;
	box-shadow: none !important;
}

body.woocommerce-shop .higuppy-shop-card-actions .button:hover,
body.post-type-archive-product .higuppy-shop-card-actions .button:hover,
body.tax-product_cat .higuppy-shop-card-actions .button:hover,
body.hg-shop-page-active .higuppy-shop-card-actions .button:hover,
body.woocommerce-shop .higuppy-shop-card-actions .add_to_cart_button:hover,
body.post-type-archive-product .higuppy-shop-card-actions .add_to_cart_button:hover,
body.tax-product_cat .higuppy-shop-card-actions .add_to_cart_button:hover,
body.hg-shop-page-active .higuppy-shop-card-actions .add_to_cart_button:hover {
	background: var(--hg-shop-cream) !important;
	color: var(--hg-shop-orange-dark) !important;
	transform: none !important;
}

body.woocommerce-shop .higuppy-shop-card-cta > .higuppy-shop-buy-now,
body.post-type-archive-product .higuppy-shop-card-cta > .higuppy-shop-buy-now,
body.tax-product_cat .higuppy-shop-card-cta > .higuppy-shop-buy-now,
body.hg-shop-page-active .higuppy-shop-card-cta > .higuppy-shop-buy-now,
body.woocommerce-shop .products-loop .product a.higuppy-shop-buy-now,
body.post-type-archive-product .products-loop .product a.higuppy-shop-buy-now,
body.tax-product_cat .products-loop .product a.higuppy-shop-buy-now,
body.hg-shop-page-active .products-loop .product a.higuppy-shop-buy-now,
body.woocommerce-shop .product-details a.higuppy-shop-buy-now,
body.post-type-archive-product .product-details a.higuppy-shop-buy-now,
body.tax-product_cat .product-details a.higuppy-shop-buy-now,
body.hg-shop-page-active .product-details a.higuppy-shop-buy-now {
	grid-column: 1 / -1;
	grid-row: 2;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	margin: 0 !important;
	min-height: 28px !important;
	padding: 4px 10px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #1747b8 !important;
	color: #fff !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	text-align: center;
	text-decoration: none;
	box-shadow: none !important;
}

body.woocommerce-shop .higuppy-shop-card-cta > .higuppy-shop-buy-now:hover,
body.post-type-archive-product .higuppy-shop-card-cta > .higuppy-shop-buy-now:hover,
body.tax-product_cat .higuppy-shop-card-cta > .higuppy-shop-buy-now:hover,
body.hg-shop-page-active .higuppy-shop-card-cta > .higuppy-shop-buy-now:hover,
body.woocommerce-shop .products-loop .product a.higuppy-shop-buy-now:hover,
body.post-type-archive-product .products-loop .product a.higuppy-shop-buy-now:hover,
body.tax-product_cat .products-loop .product a.higuppy-shop-buy-now:hover,
body.hg-shop-page-active .products-loop .product a.higuppy-shop-buy-now:hover,
body.woocommerce-shop .product-details a.higuppy-shop-buy-now:hover,
body.post-type-archive-product .product-details a.higuppy-shop-buy-now:hover,
body.tax-product_cat .product-details a.higuppy-shop-buy-now:hover,
body.hg-shop-page-active .product-details a.higuppy-shop-buy-now:hover {
	background: #0e2f86 !important;
	color: #fff !important;
	transform: none !important;
}

body.woocommerce-shop .product-details .button:not(.higuppy-shop-buy-now),
body.post-type-archive-product .product-details .button:not(.higuppy-shop-buy-now),
body.tax-product_cat .product-details .button:not(.higuppy-shop-buy-now),
body.woocommerce-shop .product-details .add_to_cart_button,
body.post-type-archive-product .product-details .add_to_cart_button,
body.tax-product_cat .product-details .add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	margin: auto 0 0 !important;
	padding: 11px 14px !important;
	min-height: 44px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--hg-shop-orange) !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	text-transform: none !important;
	letter-spacing: 0;
	box-shadow: 0 8px 18px rgba(255, 107, 53, 0.22);
}

body.woocommerce-shop .product-details .button:not(.higuppy-shop-buy-now):hover,
body.post-type-archive-product .product-details .button:not(.higuppy-shop-buy-now):hover,
body.tax-product_cat .product-details .button:not(.higuppy-shop-buy-now):hover,
body.woocommerce-shop .product-details .add_to_cart_button:hover,
body.post-type-archive-product .product-details .add_to_cart_button:hover,
body.tax-product_cat .product-details .add_to_cart_button:hover {
	background: var(--hg-shop-orange-dark) !important;
	color: #fff !important;
	transform: translateY(-1px);
}

/* ==========================================================================
   BLOCK PRODUCT GRID — shrink WooCommerce "Add to cart" button
   (Product Collection block uses .wc-block-components-product-button,
   which the classic .higuppy-shop-card-actions rules never matched.)
   ========================================================================== */
.higuppy-shop-shell .wc-block-components-product-button__button,
.higuppy-shop-shell .wc-block-components-product-button .wp-block-button__link {
	min-height: 0 !important;
	padding: 7px 18px !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.02em !important;
	border-radius: 999px !important;
}

@media (max-width: 600px) {
	.higuppy-shop-shell .wc-block-components-product-button__button,
	.higuppy-shop-shell .wc-block-components-product-button .wp-block-button__link {
		padding: 5px 12px !important;
		font-size: 10px !important;
	}
}

/* Hide hover-only icon cart duplicates on shop cards */
body.woocommerce-shop .content-product .footer-product,
body.post-type-archive-product .content-product .footer-product,
body.tax-product_cat .content-product .footer-product,
body.woocommerce-shop .content-product .show-quickly,
body.post-type-archive-product .content-product .show-quickly,
body.tax-product_cat .content-product .show-quickly {
	display: none !important;
}

/* ==========================================================================
   TRUST BAR ON SHOP
   ========================================================================== */

body.woocommerce-shop .higuppy-trust-bar,
body.post-type-archive-product .higuppy-trust-bar,
body.tax-product_cat .higuppy-trust-bar {
	margin: 0 auto 18px;
	max-width: 1160px;
	border-radius: 16px;
	overflow: hidden;
}

/* ==========================================================================
   LOAD MORE PRODUCTS (XStore infinite scroll button)
   ========================================================================== */

body.woocommerce-shop #sb-infinite-scroll-load-more,
body.post-type-archive-product #sb-infinite-scroll-load-more,
body.tax-product_cat #sb-infinite-scroll-load-more,
body.hg-shop-page-active #sb-infinite-scroll-load-more,
body.woocommerce-shop .sb-infinite-scroll-load-more,
body.post-type-archive-product .sb-infinite-scroll-load-more,
body.tax-product_cat .sb-infinite-scroll-load-more,
body.hg-shop-page-active .sb-infinite-scroll-load-more {
	display: block;
	width: 100%;
	margin: 0 auto 10px;
	padding: 0 16px;
	text-align: center;
}

body.woocommerce-shop #sb-infinite-scroll-load-more .sb-clear,
body.post-type-archive-product #sb-infinite-scroll-load-more .sb-clear,
body.tax-product_cat #sb-infinite-scroll-load-more .sb-clear,
body.hg-shop-page-active #sb-infinite-scroll-load-more .sb-clear {
	display: none;
}

body.woocommerce-shop #sb-infinite-scroll-load-more a,
body.post-type-archive-product #sb-infinite-scroll-load-more a,
body.tax-product_cat #sb-infinite-scroll-load-more a,
body.hg-shop-page-active #sb-infinite-scroll-load-more a,
body.woocommerce-shop .sb-infinite-scroll-load-more a,
body.post-type-archive-product .sb-infinite-scroll-load-more a,
body.tax-product_cat .sb-infinite-scroll-load-more a,
body.hg-shop-page-active .sb-infinite-scroll-load-more a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	min-width: min(100%, 280px);
	padding: 11px 28px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: linear-gradient(135deg, var(--hg-shop-blue) 0%, #0e2f86 100%) !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.01em;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: 0 10px 24px rgba(23, 71, 184, 0.22);
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

body.woocommerce-shop #sb-infinite-scroll-load-more a:hover,
body.post-type-archive-product #sb-infinite-scroll-load-more a:hover,
body.tax-product_cat #sb-infinite-scroll-load-more a:hover,
body.hg-shop-page-active #sb-infinite-scroll-load-more a:hover,
body.woocommerce-shop .sb-infinite-scroll-load-more a:hover,
body.post-type-archive-product .sb-infinite-scroll-load-more a:hover,
body.tax-product_cat .sb-infinite-scroll-load-more a:hover,
body.hg-shop-page-active .sb-infinite-scroll-load-more a:hover {
	background: linear-gradient(135deg, var(--hg-shop-orange) 0%, #fdbb2d 100%) !important;
	color: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 12px 28px rgba(255, 107, 53, 0.24);
}

body.woocommerce-shop #sb-infinite-scroll-load-more.finished a,
body.post-type-archive-product #sb-infinite-scroll-load-more.finished a,
body.tax-product_cat #sb-infinite-scroll-load-more.finished a,
body.hg-shop-page-active #sb-infinite-scroll-load-more.finished a,
body.woocommerce-shop .sb-infinite-scroll-load-more.finished a,
body.hg-shop-page-active .sb-infinite-scroll-load-more.finished a {
	background: #fff !important;
	color: var(--hg-shop-muted) !important;
	border: 1px solid var(--hg-shop-border) !important;
	box-shadow: none !important;
	cursor: default !important;
	transform: none !important;
	min-width: auto;
	padding: 10px 20px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
}

/* ==========================================================================
   BOTTOM DESCRIPTION (injected via PHP)
   ========================================================================== */

.higuppy-shop-bottom-note {
	max-width: 1160px;
	margin: 8px auto 12px;
	padding: 16px 18px;
	border-radius: 18px;
	background: linear-gradient(135deg, #fff 0%, #f5faff 70%);
	border: 1px solid var(--hg-shop-border);
	box-shadow: 0 8px 22px rgba(23, 71, 184, 0.06);
	text-align: center;
}

.higuppy-shop-bottom-note h2 {
	margin: 0 0 8px;
	color: var(--hg-shop-blue);
	font-size: clamp(1.15rem, 2.2vw, 1.55rem);
	font-weight: 900;
}

.higuppy-shop-bottom-note p {
	margin: 0 auto;
	color: var(--hg-shop-muted);
	line-height: 1.6;
	font-size: 14px;
	max-width: 720px;
}

.higuppy-shop-bottom-note__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 12px;
}

.higuppy-shop-bottom-note__links a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid rgba(23, 71, 184, 0.18);
	background: #fff;
	color: var(--hg-shop-blue);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.higuppy-shop-bottom-note__links a:hover {
	background: var(--hg-shop-blue);
	color: #fff;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 991px) {
	.higuppy-shop-hero {
		grid-template-columns: 1fr;
		padding: 18px;
	}

	.higuppy-shop-hero__actions {
		justify-items: start;
	}

	body.woocommerce-shop .products-loop,
	body.post-type-archive-product .products-loop,
	body.tax-product_cat .products-loop {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 16px;
	}

	.higuppy-shop-intro__inner {
		grid-template-columns: 1fr;
	}

	.higuppy-shop-intro__badges {
		justify-content: flex-start;
	}

	.higuppy-shop-categories__item {
		flex-basis: 118px;
		width: 118px;
	}
}

@media (max-width: 767px) {
	.higuppy-shop-hero {
		border-radius: 18px;
		padding: 14px;
		margin-bottom: 10px;
	}

	.higuppy-shop-hero__btn {
		width: 100%;
		min-width: 0;
	}

	/* One horizontal inset from shell — avoid stacked container/col padding */
	body.woocommerce-shop .higuppy-shop-shell,
	body.post-type-archive-product .higuppy-shop-shell,
	body.tax-product_cat .higuppy-shop-shell {
		padding-left: 10px;
		padding-right: 10px;
	}

	body.woocommerce-shop .higuppy-shop-shell > .content-page,
	body.post-type-archive-product .higuppy-shop-shell > .content-page,
	body.tax-product_cat .higuppy-shop-shell > .content-page,
	body.woocommerce-shop .higuppy-shop-shell .container,
	body.post-type-archive-product .higuppy-shop-shell .container,
	body.tax-product_cat .higuppy-shop-shell .container {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	body.woocommerce-shop .content-page,
	body.post-type-archive-product .content-page,
	body.tax-product_cat .content-page {
		padding-left: 0;
		padding-right: 0;
	}

	body.woocommerce-shop .page-heading,
	body.post-type-archive-product .page-heading,
	body.tax-product_cat .page-heading {
		padding: 24px 0 26px;
	}

	body.woocommerce-shop .filter-content,
	body.post-type-archive-product .filter-content,
	body.tax-product_cat .filter-content {
		padding: 8px 10px;
		border-radius: 14px;
		flex-wrap: nowrap;
		gap: 10px;
	}

	body.woocommerce-shop .woocommerce-ordering,
	body.post-type-archive-product .woocommerce-ordering,
	body.tax-product_cat .woocommerce-ordering {
		flex: 1 1 auto;
		min-width: 0;
	}

	body.woocommerce-shop .orderby,
	body.post-type-archive-product .orderby,
	body.tax-product_cat .orderby {
		width: 100%;
		max-width: 100%;
	}

	body.woocommerce-shop .products-per-page,
	body.post-type-archive-product .products-per-page,
	body.tax-product_cat .products-per-page {
		flex: 0 0 auto;
		margin-left: 0;
	}

	.higuppy-shop-intro,
	.higuppy-shop-categories {
		padding-left: 0;
		padding-right: 0;
	}

	.higuppy-shop-categories__item {
		min-height: 88px;
	}

	.higuppy-shop-bottom-note {
		margin: 6px auto 10px;
		padding: 12px 14px;
		border-radius: 14px;
		text-align: center;
	}

	.higuppy-shop-bottom-note h2 {
		margin-bottom: 6px;
		font-size: 1.05rem;
	}

	.higuppy-shop-bottom-note p {
		font-size: 13px;
		line-height: 1.55;
	}

	.higuppy-shop-bottom-note__links {
		justify-content: center;
		margin-top: 10px;
		gap: 6px;
	}

	.higuppy-shop-bottom-note__links a {
		min-height: 32px;
		padding: 5px 10px;
		font-size: 12px;
	}

	body.woocommerce-shop #sb-infinite-scroll-load-more a,
	body.post-type-archive-product #sb-infinite-scroll-load-more a,
	body.tax-product_cat #sb-infinite-scroll-load-more a,
	body.hg-shop-page-active #sb-infinite-scroll-load-more a {
		min-height: 42px;
		padding: 10px 22px !important;
		font-size: 13px !important;
	}

	/* Neutralize Bootstrap col padding from parent responsive rules */
	body.woocommerce-shop .products-loop > .product[class*="col-"],
	body.post-type-archive-product .products-loop > .product[class*="col-"],
	body.tax-product_cat .products-loop > .product[class*="col-"] {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* 2-column grid — balanced gutter, full card width */
	body.woocommerce-shop .products-loop,
	body.post-type-archive-product .products-loop,
	body.tax-product_cat .products-loop {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 12px;
	}

	/* Compact product cards */
	body.woocommerce-shop .content-product,
	body.post-type-archive-product .content-product,
	body.tax-product_cat .content-product {
		border-radius: 14px;
		box-shadow: 0 4px 14px rgba(23, 71, 184, 0.06);
	}

	body.woocommerce-shop .content-product:hover,
	body.post-type-archive-product .content-product:hover,
	body.tax-product_cat .content-product:hover {
		transform: translateY(-2px);
	}

	body.woocommerce-shop .products-page-cats,
	body.post-type-archive-product .products-page-cats,
	body.tax-product_cat .products-page-cats {
		margin-bottom: 3px;
	}

	body.woocommerce-shop .products-page-cats a,
	body.post-type-archive-product .products-page-cats a,
	body.tax-product_cat .products-page-cats a {
		padding: 2px 6px;
		font-size: 7px;
	}

	body.woocommerce-shop .product-title,
	body.post-type-archive-product .product-title,
	body.tax-product_cat .product-title {
		font-size: 13px !important;
		line-height: 1.3 !important;
		margin-bottom: 6px !important;
		-webkit-line-clamp: 2;
	}

	body.woocommerce-shop .product-details,
	body.post-type-archive-product .product-details,
	body.tax-product_cat .product-details {
		text-align: left;
		padding: 8px 8px 8px;
	}

	body.woocommerce-shop .higuppy-shop-card-cta,
	body.post-type-archive-product .higuppy-shop-card-cta,
	body.tax-product_cat .higuppy-shop-card-cta {
		padding-top: 6px;
		gap: 4px;
	}

	body.woocommerce-shop .higuppy-shop-card-cta > .price,
	body.post-type-archive-product .higuppy-shop-card-cta > .price,
	body.tax-product_cat .higuppy-shop-card-cta > .price {
		font-size: 0.85rem !important;
	}

	body.woocommerce-shop .higuppy-shop-card-actions .button,
	body.post-type-archive-product .higuppy-shop-card-actions .button,
	body.tax-product_cat .higuppy-shop-card-actions .button,
	body.woocommerce-shop .higuppy-shop-card-actions .add_to_cart_button,
	body.post-type-archive-product .higuppy-shop-card-actions .add_to_cart_button,
	body.tax-product_cat .higuppy-shop-card-actions .add_to_cart_button {
		min-width: 46px;
		min-height: 26px !important;
		padding: 4px 8px !important;
		font-size: 9px !important;
	}

	body.woocommerce-shop .higuppy-shop-card-cta > .higuppy-shop-buy-now,
	body.post-type-archive-product .higuppy-shop-card-cta > .higuppy-shop-buy-now,
	body.tax-product_cat .higuppy-shop-card-cta > .higuppy-shop-buy-now {
		min-height: 26px !important;
		padding: 4px 8px !important;
		font-size: 9px !important;
	}
}

@media (max-width: 480px) {
	/* Keep 2 columns on small phones — tighter but still readable */
	body.woocommerce-shop .higuppy-shop-shell,
	body.post-type-archive-product .higuppy-shop-shell,
	body.tax-product_cat .higuppy-shop-shell {
		padding-left: 8px;
		padding-right: 8px;
	}

	body.woocommerce-shop .products-loop,
	body.post-type-archive-product .products-loop,
	body.tax-product_cat .products-loop {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px 10px;
	}

	body.woocommerce-shop .product-details,
	body.post-type-archive-product .product-details,
	body.tax-product_cat .product-details {
		padding: 8px 8px 10px;
	}

	body.woocommerce-shop .product-title,
	body.post-type-archive-product .product-title,
	body.tax-product_cat .product-title {
		font-size: 12px !important;
	}

	body.woocommerce-shop .higuppy-shop-card-cta > .price,
	body.post-type-archive-product .higuppy-shop-card-cta > .price,
	body.tax-product_cat .higuppy-shop-card-cta > .price {
		font-size: 0.8rem !important;
	}

	body.woocommerce-shop .higuppy-shop-card-actions .button,
	body.post-type-archive-product .higuppy-shop-card-actions .button,
	body.tax-product_cat .higuppy-shop-card-actions .button,
	body.woocommerce-shop .higuppy-shop-card-actions .add_to_cart_button,
	body.post-type-archive-product .higuppy-shop-card-actions .add_to_cart_button,
	body.tax-product_cat .higuppy-shop-card-actions .add_to_cart_button {
		min-width: 42px;
		min-height: 24px !important;
		font-size: 8px !important;
	}

	body.woocommerce-shop .higuppy-shop-card-cta > .higuppy-shop-buy-now,
	body.post-type-archive-product .higuppy-shop-card-cta > .higuppy-shop-buy-now,
	body.tax-product_cat .higuppy-shop-card-cta > .higuppy-shop-buy-now {
		min-height: 24px !important;
		font-size: 8px !important;
	}
}

/* ==========================================================================
   MOBILE HEADER — keep hg-nav collapsed until hamburger opens
   higuppy-responsive touch-target rules can override hg-shell without !important
   ========================================================================== */

@media (max-width: 900px) {
	body.woocommerce-shop > nav.hg-nav,
	body.woocommerce-shop nav#hgSiteNav.hg-nav,
	body.post-type-archive-product > nav.hg-nav,
	body.post-type-archive-product nav#hgSiteNav.hg-nav,
	body.tax-product_cat > nav.hg-nav,
	body.tax-product_cat nav#hgSiteNav.hg-nav,
	body.tax-product_tag > nav.hg-nav,
	body.tax-product_tag nav#hgSiteNav.hg-nav {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px 10px;
		border-radius: 22px;
		width: min(100% - 20px, 1160px);
		margin: 10px auto 12px;
		padding: 10px 14px;
		min-height: 58px;
		grid-template-columns: none;
	}

	body.woocommerce-shop > nav.hg-nav .hg-logo,
	body.woocommerce-shop nav#hgSiteNav.hg-nav .hg-logo,
	body.post-type-archive-product > nav.hg-nav .hg-logo,
	body.post-type-archive-product nav#hgSiteNav.hg-nav .hg-logo,
	body.tax-product_cat > nav.hg-nav .hg-logo,
	body.tax-product_cat nav#hgSiteNav.hg-nav .hg-logo,
	body.tax-product_tag > nav.hg-nav .hg-logo,
	body.tax-product_tag nav#hgSiteNav.hg-nav .hg-logo {
		flex: 0 0 auto;
	}

	body.woocommerce-shop > nav.hg-nav .hg-menu,
	body.woocommerce-shop nav#hgSiteNav.hg-nav .hg-menu,
	body.post-type-archive-product > nav.hg-nav .hg-menu,
	body.post-type-archive-product nav#hgSiteNav.hg-nav .hg-menu,
	body.tax-product_cat > nav.hg-nav .hg-menu,
	body.tax-product_cat nav#hgSiteNav.hg-nav .hg-menu,
	body.tax-product_tag > nav.hg-nav .hg-menu,
	body.tax-product_tag nav#hgSiteNav.hg-nav .hg-menu {
		display: none !important;
		order: 4;
		width: 100%;
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
		padding: 0 0 10px;
	}

	body.woocommerce-shop > nav.hg-nav.is-open .hg-menu,
	body.woocommerce-shop nav#hgSiteNav.hg-nav.is-open .hg-menu,
	body.post-type-archive-product > nav.hg-nav.is-open .hg-menu,
	body.post-type-archive-product nav#hgSiteNav.hg-nav.is-open .hg-menu,
	body.tax-product_cat > nav.hg-nav.is-open .hg-menu,
	body.tax-product_cat nav#hgSiteNav.hg-nav.is-open .hg-menu,
	body.tax-product_tag > nav.hg-nav.is-open .hg-menu,
	body.tax-product_tag nav#hgSiteNav.hg-nav.is-open .hg-menu {
		display: flex !important;
	}

	body.woocommerce-shop > nav.hg-nav .hg-menu a,
	body.woocommerce-shop nav#hgSiteNav.hg-nav .hg-menu a,
	body.post-type-archive-product > nav.hg-nav .hg-menu a,
	body.post-type-archive-product nav#hgSiteNav.hg-nav .hg-menu a,
	body.tax-product_cat > nav.hg-nav .hg-menu a,
	body.tax-product_cat nav#hgSiteNav.hg-nav .hg-menu a,
	body.tax-product_tag > nav.hg-nav .hg-menu a,
	body.tax-product_tag nav#hgSiteNav.hg-nav .hg-menu a {
		display: block !important;
		width: 100%;
		justify-content: flex-start;
		padding: 8px 0;
	}

	body.woocommerce-shop > nav.hg-nav .hg-menu a::after,
	body.woocommerce-shop nav#hgSiteNav.hg-nav .hg-menu a::after,
	body.post-type-archive-product > nav.hg-nav .hg-menu a::after,
	body.post-type-archive-product nav#hgSiteNav.hg-nav .hg-menu a::after,
	body.tax-product_cat > nav.hg-nav .hg-menu a::after,
	body.tax-product_cat nav#hgSiteNav.hg-nav .hg-menu a::after,
	body.tax-product_tag > nav.hg-nav .hg-menu a::after,
	body.tax-product_tag nav#hgSiteNav.hg-nav .hg-menu a::after {
		display: none;
	}

	body.woocommerce-shop > nav.hg-nav .hg-actions,
	body.woocommerce-shop nav#hgSiteNav.hg-nav .hg-actions,
	body.post-type-archive-product > nav.hg-nav .hg-actions,
	body.post-type-archive-product nav#hgSiteNav.hg-nav .hg-actions,
	body.tax-product_cat > nav.hg-nav .hg-actions,
	body.tax-product_cat nav#hgSiteNav.hg-nav .hg-actions,
	body.tax-product_tag > nav.hg-nav .hg-actions,
	body.tax-product_tag nav#hgSiteNav.hg-nav .hg-actions {
		margin-left: auto;
	}

	body.woocommerce-shop > nav.hg-nav .hg-menu-toggle,
	body.woocommerce-shop nav#hgSiteNav.hg-nav .hg-menu-toggle,
	body.post-type-archive-product > nav.hg-nav .hg-menu-toggle,
	body.post-type-archive-product nav#hgSiteNav.hg-nav .hg-menu-toggle,
	body.tax-product_cat > nav.hg-nav .hg-menu-toggle,
	body.tax-product_cat nav#hgSiteNav.hg-nav .hg-menu-toggle,
	body.tax-product_tag > nav.hg-nav .hg-menu-toggle,
	body.tax-product_tag nav#hgSiteNav.hg-nav .hg-menu-toggle {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		margin-left: 4px;
	}
}

/* ==========================================================================
   FINAL MOBILE SHOP OVERRIDES
   Keep the product cards compact even when XStore/plugin CSS loads nearby.
   ========================================================================== */

body.woocommerce-shop .filter-content .higuppy-shop-filter-btn,
body.post-type-archive-product .filter-content .higuppy-shop-filter-btn,
body.tax-product_cat .filter-content .higuppy-shop-filter-btn,
body.hg-shop-page-active .filter-content .higuppy-shop-filter-btn {
	display: inline-flex !important;
	order: -3;
	flex: 0 0 auto;
	margin-right: auto;
}

body.higuppy-shop-filters-open .sidebar.sidebar-left,
body.higuppy-shop-filters-open.hg-shop-page-active .sidebar.sidebar-left,
body.higuppy-shop-filters-open.woocommerce-shop .sidebar.sidebar-left {
	display: block !important;
	transform: translateX(0) !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

body.woocommerce-shop .content-product,
body.post-type-archive-product .content-product,
body.tax-product_cat .content-product,
body.hg-shop-page-active .content-product {
	height: auto !important;
	min-height: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	align-self: start !important;
}

body.woocommerce-shop .product-image-wrapper,
body.post-type-archive-product .product-image-wrapper,
body.tax-product_cat .product-image-wrapper,
body.hg-shop-page-active .product-image-wrapper {
	aspect-ratio: 1 / 1 !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
}

body.woocommerce-shop .product-image-wrapper .images-slider-wrapper,
body.post-type-archive-product .product-image-wrapper .images-slider-wrapper,
body.tax-product_cat .product-image-wrapper .images-slider-wrapper,
body.hg-shop-page-active .product-image-wrapper .images-slider-wrapper,
body.woocommerce-shop .product-content-image,
body.post-type-archive-product .product-content-image,
body.tax-product_cat .product-content-image,
body.hg-shop-page-active .product-content-image {
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
}

body.woocommerce-shop .product-image-wrapper img:not(.higuppy-product-fallback-image),
body.post-type-archive-product .product-image-wrapper img:not(.higuppy-product-fallback-image),
body.tax-product_cat .product-image-wrapper img:not(.higuppy-product-fallback-image),
body.hg-shop-page-active .product-image-wrapper img:not(.higuppy-product-fallback-image) {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center !important;
}

body.woocommerce-shop .product-details,
body.post-type-archive-product .product-details,
body.tax-product_cat .product-details,
body.hg-shop-page-active .product-details {
	flex: 0 0 auto !important;
	min-height: 0 !important;
	padding: 9px 9px 6px !important;
}

body.woocommerce-shop .higuppy-shop-card-cta,
body.post-type-archive-product .higuppy-shop-card-cta,
body.tax-product_cat .higuppy-shop-card-cta,
body.hg-shop-page-active .higuppy-shop-card-cta {
	margin: 6px 0 0 !important;
	padding-top: 6px !important;
	padding-bottom: 0 !important;
	align-self: stretch !important;
}

/* ==========================================================================
   CARD CTA — bold price + Buy Now on the same row as the price
   (Block cards use .wp-block-woocommerce-product-price, not .price)
   ========================================================================== */
body.woocommerce-shop .higuppy-shop-card-cta,
body.post-type-archive-product .higuppy-shop-card-cta,
body.tax-product_cat .higuppy-shop-card-cta,
body.hg-shop-page-active .higuppy-shop-card-cta {
	grid-template-columns: minmax(0, 1fr) auto !important;
	align-items: center !important;
	gap: 6px 10px !important;
}

body.woocommerce-shop .higuppy-shop-card-cta > .wp-block-woocommerce-product-price,
body.post-type-archive-product .higuppy-shop-card-cta > .wp-block-woocommerce-product-price,
body.tax-product_cat .higuppy-shop-card-cta > .wp-block-woocommerce-product-price,
body.hg-shop-page-active .higuppy-shop-card-cta > .wp-block-woocommerce-product-price {
	grid-column: 1 !important;
	grid-row: 1 !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 1.12rem !important;
	font-weight: 900 !important;
	line-height: 1.1 !important;
	color: var(--hg-shop-blue) !important;
	white-space: nowrap;
	text-align: left !important;
}

body.woocommerce-shop .higuppy-shop-card-cta > .wp-block-woocommerce-product-price .woocommerce-Price-amount,
body.post-type-archive-product .higuppy-shop-card-cta > .wp-block-woocommerce-product-price .woocommerce-Price-amount,
body.tax-product_cat .higuppy-shop-card-cta > .wp-block-woocommerce-product-price .woocommerce-Price-amount,
body.hg-shop-page-active .higuppy-shop-card-cta > .wp-block-woocommerce-product-price .woocommerce-Price-amount {
	font-weight: 900 !important;
	color: var(--hg-shop-blue) !important;
}

/* Collapse the empty add-to-cart slot so Buy Now can sit next to the price */
body.woocommerce-shop .higuppy-shop-card-cta > .higuppy-shop-card-actions:empty,
body.post-type-archive-product .higuppy-shop-card-cta > .higuppy-shop-card-actions:empty,
body.tax-product_cat .higuppy-shop-card-cta > .higuppy-shop-card-actions:empty,
body.hg-shop-page-active .higuppy-shop-card-cta > .higuppy-shop-card-actions:empty {
	display: none !important;
}

body.woocommerce-shop .higuppy-shop-card-cta > .higuppy-shop-buy-now,
body.post-type-archive-product .higuppy-shop-card-cta > .higuppy-shop-buy-now,
body.tax-product_cat .higuppy-shop-card-cta > .higuppy-shop-buy-now,
body.hg-shop-page-active .higuppy-shop-card-cta > .higuppy-shop-buy-now {
	grid-column: 2 !important;
	grid-row: 1 !important;
	width: auto !important;
	white-space: nowrap;
	padding: 6px 16px !important;
}

body.woocommerce-shop .product-details > *:last-child,
body.post-type-archive-product .product-details > *:last-child,
body.tax-product_cat .product-details > *:last-child,
body.hg-shop-page-active .product-details > *:last-child {
	margin-bottom: 0 !important;
}

body.woocommerce-shop .products-loop,
body.post-type-archive-product .products-loop,
body.tax-product_cat .products-loop,
body.hg-shop-page-active .products-loop {
	align-items: start !important;
}

body.woocommerce-shop .products-loop > .product,
body.post-type-archive-product .products-loop > .product,
body.tax-product_cat .products-loop > .product,
body.hg-shop-page-active .products-loop > .product,
body.woocommerce-shop ul.products > li.product,
body.post-type-archive-product ul.products > li.product,
body.tax-product_cat ul.products > li.product,
body.hg-shop-page-active ul.products > li.product {
	align-self: start !important;
	height: auto !important;
	min-height: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

body.woocommerce-shop .products-page-cats a,
body.post-type-archive-product .products-page-cats a,
body.tax-product_cat .products-page-cats a,
body.hg-shop-page-active .products-page-cats a {
	padding: 1px 6px !important;
	min-height: 0 !important;
	font-size: 7px !important;
	line-height: 1.25 !important;
	letter-spacing: 0.045em !important;
	border-radius: 999px !important;
}

body.woocommerce-shop .higuppy-shop-card-actions .add_to_cart_button,
body.post-type-archive-product .higuppy-shop-card-actions .add_to_cart_button,
body.tax-product_cat .higuppy-shop-card-actions .add_to_cart_button,
body.hg-shop-page-active .higuppy-shop-card-actions .add_to_cart_button {
	min-width: 76px !important;
	min-height: 26px !important;
	margin: 0 !important;
	padding: 4px 8px !important;
	font-size: 8px !important;
	line-height: 1.05 !important;
	background: #fff !important;
	color: var(--hg-shop-orange) !important;
	border: 1.5px solid var(--hg-shop-orange) !important;
	box-shadow: none !important;
}

body.woocommerce-shop .product-details a.higuppy-shop-buy-now,
body.post-type-archive-product .product-details a.higuppy-shop-buy-now,
body.tax-product_cat .product-details a.higuppy-shop-buy-now,
body.hg-shop-page-active .product-details a.higuppy-shop-buy-now {
	min-height: 26px !important;
	margin: 0 !important;
	padding: 4px 10px !important;
	background: #1747b8 !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
}

body.woocommerce-shop .product-details a.higuppy-shop-buy-now:hover,
body.post-type-archive-product .product-details a.higuppy-shop-buy-now:hover,
body.tax-product_cat .product-details a.higuppy-shop-buy-now:hover,
body.hg-shop-page-active .product-details a.higuppy-shop-buy-now:hover {
	background: #0e2f86 !important;
	color: #fff !important;
}

/* Final filter drawer state: JS adds this class directly to avoid theme overrides. */
body .sidebar.sidebar-left.is-higuppy-filter-open {
	display: block !important;
	left: 0 !important;
	right: auto !important;
	margin-left: 0 !important;
	width: min(86vw, 340px) !important;
	transform: translate3d(0, 0, 0) !important;
	visibility: visible !important;
	pointer-events: auto !important;
	opacity: 1 !important;
}

@media (max-width: 767px) {
	body.woocommerce-shop .products-loop .product .content-product .product-details,
	body.post-type-archive-product .products-loop .product .content-product .product-details,
	body.tax-product_cat .products-loop .product .content-product .product-details,
	body.hg-shop-page-active .products-loop .product .content-product .product-details,
	body.woocommerce-shop .products-loop .product .content-product .text-center.product-details,
	body.hg-shop-page-active .products-loop .product .content-product .text-center.product-details {
		padding: 9px 9px 3px !important;
	}

	body.woocommerce-shop .products-loop .product .content-product,
	body.post-type-archive-product .products-loop .product .content-product,
	body.tax-product_cat .products-loop .product .content-product,
	body.hg-shop-page-active .products-loop .product .content-product {
		margin-bottom: 0 !important;
	}

	body.woocommerce-shop .products-loop .product,
	body.post-type-archive-product .products-loop .product,
	body.tax-product_cat .products-loop .product,
	body.hg-shop-page-active .products-loop .product {
		height: auto !important;
	}

	body.woocommerce-shop .products-loop .product .swiper-button-prev,
	body.woocommerce-shop .products-loop .product .swiper-button-next,
	body.woocommerce-shop .products-loop .product .slick-arrow,
	body.woocommerce-shop .products-loop .product .owl-prev,
	body.woocommerce-shop .products-loop .product .owl-next,
	body.woocommerce-shop .products-loop .product .et-swiper-elementor-nav,
	body.post-type-archive-product .products-loop .product .swiper-button-prev,
	body.post-type-archive-product .products-loop .product .swiper-button-next,
	body.post-type-archive-product .products-loop .product .slick-arrow,
	body.post-type-archive-product .products-loop .product .owl-prev,
	body.post-type-archive-product .products-loop .product .owl-next,
	body.post-type-archive-product .products-loop .product .et-swiper-elementor-nav,
	body.hg-shop-page-active .products-loop .product .swiper-button-prev,
	body.hg-shop-page-active .products-loop .product .swiper-button-next,
	body.hg-shop-page-active .products-loop .product .slick-arrow,
	body.hg-shop-page-active .products-loop .product .owl-prev,
	body.hg-shop-page-active .products-loop .product .owl-next,
	body.hg-shop-page-active .products-loop .product .et-swiper-elementor-nav {
		display: none !important;
	}
}

/* ---------------------------------------------------------------------------
 * Block product-collection grid: uniform cards
 * The WooCommerce product-image block ships with aspect-ratio "auto", so real
 * photos and the square fallback render at different heights and stagger the
 * grid rows. Force a consistent square image so every card lines up.
 * ------------------------------------------------------------------------- */
body.woocommerce-shop .wc-block-product-template,
body.post-type-archive-product .wc-block-product-template,
body.tax-product_cat .wc-block-product-template {
	align-items: stretch;
}

body.woocommerce-shop .wc-block-product-template > .wc-block-product,
body.post-type-archive-product .wc-block-product-template > .wc-block-product,
body.tax-product_cat .wc-block-product-template > .wc-block-product {
	/* Positioning context so .higuppy-shop-badge stays inside its own card
	   instead of escaping to a distant ancestor and landing on the toolbar. */
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
}

body.woocommerce-shop .wp-block-woocommerce-product-image,
body.post-type-archive-product .wp-block-woocommerce-product-image,
body.tax-product_cat .wp-block-woocommerce-product-image {
	width: 100%;
}

body.woocommerce-shop .wp-block-woocommerce-product-image > a,
body.post-type-archive-product .wp-block-woocommerce-product-image > a,
body.tax-product_cat .wp-block-woocommerce-product-image > a {
	display: block;
}

body.woocommerce-shop .wp-block-woocommerce-product-image img.wp-post-image,
body.post-type-archive-product .wp-block-woocommerce-product-image img.wp-post-image,
body.tax-product_cat .wp-block-woocommerce-product-image img.wp-post-image {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 14px;
	background: var(--hg-shop-sky, #eaf6ff);
}

/* ==========================================================================
   "SHOP GUPPIES BY CATEGORY" CIRCLE GRID
   Markup lives in the shop page content (perfect-circle cover blocks with an
   inline font-size:22px). Constrain the section here so long labels such as
   "Guppy Fry Packs" and "Wholesale Lots" stay inside the circle instead of
   spilling over the rounded edges.
   ========================================================================== */

body.woocommerce-shop .higuppy-shopcat,
body.post-type-archive-product .higuppy-shopcat,
body.tax-product_cat .higuppy-shopcat {
	max-width: 1160px;
	margin: 6px auto 26px;
	padding: 0 16px;
}

body.woocommerce-shop .higuppy-shopcat__title,
body.post-type-archive-product .higuppy-shopcat__title,
body.tax-product_cat .higuppy-shopcat__title {
	margin: 0 0 6px;
	color: var(--hg-shop-blue);
	font-size: clamp(1.35rem, 3.4vw, 1.85rem);
	font-weight: 900;
	letter-spacing: -0.02em;
}

body.woocommerce-shop .higuppy-shopcat__sub,
body.post-type-archive-product .higuppy-shopcat__sub,
body.tax-product_cat .higuppy-shopcat__sub {
	margin: 0 auto 4px;
	max-width: 640px;
	color: var(--hg-shop-muted);
	font-size: 15px;
	line-height: 1.55;
}

/* 5-up circle grid on desktop; keep the columns even. */
body.woocommerce-shop .higuppy-shopcat .wp-block-group.is-layout-grid,
body.post-type-archive-product .higuppy-shopcat .wp-block-group.is-layout-grid,
body.tax-product_cat .higuppy-shopcat .wp-block-group.is-layout-grid {
	grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	gap: 16px !important;
	align-items: stretch;
}

/* Keep a true circle, clip anything that would poke past the round edge. */
body.woocommerce-shop .higuppy-shopcat .wp-block-cover,
body.post-type-archive-product .higuppy-shopcat .wp-block-cover,
body.tax-product_cat .higuppy-shopcat .wp-block-cover {
	display: flex !important;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1 !important;
	min-height: 0 !important;
	width: 100%;
	padding: 12% !important;
	border-radius: 50% !important;
	overflow: hidden !important;
	box-shadow: 0 12px 28px rgba(23, 71, 184, 0.14);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.woocommerce-shop .higuppy-shopcat .wp-block-cover:hover,
body.post-type-archive-product .higuppy-shopcat .wp-block-cover:hover,
body.tax-product_cat .higuppy-shopcat .wp-block-cover:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px rgba(23, 71, 184, 0.2);
}

/* Neutralize the block's global padding so the label can use the full circle. */
body.woocommerce-shop .higuppy-shopcat .wp-block-cover__inner-container,
body.post-type-archive-product .higuppy-shopcat .wp-block-cover__inner-container,
body.tax-product_cat .higuppy-shopcat .wp-block-cover__inner-container {
	width: 100%;
	max-width: 100%;
	padding: 0 !important;
}

/* Override the inline font-size:22px so labels wrap and fit inside the circle. */
body.woocommerce-shop .higuppy-shopcat .wp-block-cover p,
body.post-type-archive-product .higuppy-shopcat .wp-block-cover p,
body.tax-product_cat .higuppy-shopcat .wp-block-cover p {
	margin: 0 !important;
	font-size: clamp(13px, 1.15vw, 17px) !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	overflow-wrap: anywhere;
	hyphens: auto;
}

/* Category circle labels: link inherits the cover text color for contrast. */
body.woocommerce-shop .higuppy-shopcat .wp-block-cover a,
body.post-type-archive-product .higuppy-shopcat .wp-block-cover a,
body.tax-product_cat .higuppy-shopcat .wp-block-cover a {
	color: inherit;
	text-decoration: none;
}

body.woocommerce-shop .higuppy-shopcat .wp-block-cover:hover a,
body.post-type-archive-product .higuppy-shopcat .wp-block-cover:hover a,
body.tax-product_cat .higuppy-shopcat .wp-block-cover:hover a {
	text-decoration: underline;
}

/* Tablet: 3-up keeps circles from getting oversized. */
@media (max-width: 991px) {
	body.woocommerce-shop .higuppy-shopcat .wp-block-group.is-layout-grid,
	body.post-type-archive-product .higuppy-shopcat .wp-block-group.is-layout-grid,
	body.tax-product_cat .higuppy-shopcat .wp-block-group.is-layout-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

/* Even out the "Shop Guppies by Category" circle grid on small screens. */
@media (max-width: 782px) {
	body.woocommerce-shop .higuppy-shopcat .wp-block-group.is-layout-grid,
	body.post-type-archive-product .higuppy-shopcat .wp-block-group.is-layout-grid,
	body.tax-product_cat .higuppy-shopcat .wp-block-group.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 14px !important;
	}

	body.woocommerce-shop .higuppy-shopcat .wp-block-cover p,
	body.post-type-archive-product .higuppy-shopcat .wp-block-cover p,
	body.tax-product_cat .higuppy-shopcat .wp-block-cover p {
		font-size: clamp(13px, 4vw, 18px) !important;
	}
}

@media (max-width: 480px) {
	body.woocommerce-shop .higuppy-shopcat .wp-block-cover,
	body.post-type-archive-product .higuppy-shopcat .wp-block-cover,
	body.tax-product_cat .higuppy-shopcat .wp-block-cover {
		padding: 14% !important;
	}

	body.woocommerce-shop .higuppy-shopcat .wp-block-cover p,
	body.post-type-archive-product .higuppy-shopcat .wp-block-cover p,
	body.tax-product_cat .higuppy-shopcat .wp-block-cover p {
		font-size: clamp(12px, 3.8vw, 16px) !important;
	}
}

/* Category SEO intro (Phase B) */
.higuppy-category-intro {
  width: min(920px, 100%);
  margin: 0 auto 1.25rem;
  padding: 1rem 1.15rem;
  background: linear-gradient(135deg, #EAF6FF 0%, #FFF6E6 100%);
  border: 1px solid #E3EBF7;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(23, 71, 184, 0.06);
}
.higuppy-category-intro__inner p {
  margin: 0;
  color: #13203A;
  font-size: 0.98rem;
  line-height: 1.65;
}
