/*
Theme Name: Flatsome Child
Description: This is a child theme for Flatsome Theme
Author: UX Themes
Template: flatsome
Version: 3.0
*/

/*************** ADD CUSTOM CSS HERE.   ***************/

.width-250 {
	width: 250px !important;
}

/* ─────────────────────────────────────────────────────────────────
   Site chrome — header & footer (Phase 2)
   ───────────────────────────────────────────────────────────────── */

.header-wrapper {
	background: #fff;
	border-bottom: 1px solid var(--gpm-border, #E2E5F1);
}

.gpm-topbar {
	background: var(--gpm-bg, #F1F5F9);
	border-bottom: 1px solid var(--gpm-border, #E2E5F1);
	padding: 10px 0;
}

.gpm-topbar__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 16px;
}

.gpm-topbar__left {
	justify-self: start;
}

.gpm-topbar__center {
	justify-self: center;
}

.gpm-topbar__right {
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 16px;
}

.gpm-topbar__collect {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px;
	border: 1px solid var(--gpm-border, #E2E5F1);
	border-radius: 999px;
	background: #fff;
	color: var(--gpm-text, #3E4265);
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
}

.gpm-topbar__address {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--gpm-text, #3E4265);
	font-size: .82rem;
	font-weight: 500;
	text-decoration: none;
}

.gpm-topbar__address:hover {
	color: var(--gpm-green, #0CB452);
}

.gpm-topbar__pin {
	color: var(--gpm-green, #0CB452);
	flex-shrink: 0;
}

.gpm-topbar__nav {
	display: flex;
	align-items: center;
	gap: 16px;
}

.gpm-topbar__menu {
	display: flex;
	align-items: center;
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gpm-topbar__menu a {
	color: var(--gpm-text, #3E4265);
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
}

.gpm-topbar__menu a:hover {
	color: var(--gpm-green, #0CB452);
}

.gpm-lang-switcher {
	position: relative;
}

.gpm-lang-switcher__toggle {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: none;
	border: none;
	color: var(--gpm-text, #3E4265);
	font-size: .82rem;
	font-weight: 600;
	cursor: pointer;
	padding: 0;
}

.gpm-lang-switcher__list {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	background: #fff;
	border: 1px solid var(--gpm-border, #E2E5F1);
	border-radius: 8px;
	box-shadow: var(--gpm-shadow, 0 2px 8px rgba(0,0,0,.06));
	list-style: none;
	margin: 0;
	padding: 6px 0;
	min-width: 120px;
	z-index: 100;
}

.gpm-lang-switcher__list a {
	display: block;
	padding: 6px 14px;
	color: var(--gpm-text, #3E4265);
	font-size: .82rem;
	text-decoration: none;
}

.gpm-lang-switcher__list a:hover {
	background: var(--gpm-green-bg, #DDF4E8);
}

.gpm-header {
	background: #fff;
	padding: 16px 0 8px;
}

/* Flatsome's Customizer emits a fixed `.header-main { height: 90px }` inline
   (and `70px !important` under `.stuck`). This header keeps the `header-main`
   class for Flatsome's sticky/background wiring, but stacks three rows
   (~266px), so the fixed height cut the box short and `<main>` started
   partway up it — the brand and nav rows overlapped the page content.
   Scoped to `.gpm-header` so Flatsome's own headers keep the setting; the
   inline Customizer CSS wins on order, hence the higher specificity. */
.header-main.gpm-header,
.transparent .header-main.gpm-header,
.stuck .header-main.gpm-header {
	height: auto !important;
}

.gpm-header__row--main {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 20px;
}

.gpm-header__logo-col {
	display: flex;
	align-items: center;
	gap: 8px;
}

.gpm-header__search-col {
	min-width: 0;
}

.gpm-header__row--brands {
	margin-top: 10px;
	padding-top: 8px;
	border-top: 1px solid var(--gpm-border, #E2E5F1);
}

.gpm-header__row--nav {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px solid var(--gpm-border, #E2E5F1);
}

.gpm-header__row--nav .gpm-header__menu {
	flex-wrap: wrap;
	gap: 12px 24px;
}

.gpm-header-brand-slide {
	width: auto !important;
}

.gpm-header-brand-link {
	color: var(--gpm-muted, #9397AD);
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.gpm-header-brand-link:hover {
	color: var(--gpm-green, #0CB452);
}

.gpm-header__pickup {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	font-size: .78rem;
	font-weight: 600;
	color: var(--gpm-green-dark, #065D2F);
}

.gpm-header__action--outline {
	background: #fff;
	border: 1px solid var(--gpm-green, #0CB452);
	color: var(--gpm-green, #0CB452);
}

.gpm-header__action--solid {
	background: var(--gpm-green, #0CB452);
	border: 1px solid var(--gpm-green, #0CB452);
	color: #fff !important;
}

.gpm-header__action--solid:hover {
	background: var(--gpm-green-dark, #065D2F);
	border-color: var(--gpm-green-dark, #065D2F);
	color: #fff !important;
}

.gpm-header__logo {
	flex-shrink: 0;
}

.gpm-header__logo img {
	max-height: 40px;
	width: auto;
}

.gpm-header__search-col .gpm-search-form {
	max-width: none;
}

.gpm-search-form {
	display: flex;
	align-items: center;
	background: var(--gpm-bg, #F1F5F9);
	border: 1px solid var(--gpm-border, #E2E5F1);
	border-radius: 999px;
	overflow: hidden;
	padding: 4px 4px 4px 16px;
}

.gpm-search-form__input {
	flex: 1;
	border: none;
	background: transparent;
	font-size: .9rem;
	outline: none;
	min-width: 0;
}

.gpm-search-form__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: none;
	border-radius: 50%;
	background: var(--gpm-green, #0CB452);
	color: #fff;
	cursor: pointer;
	flex-shrink: 0;
}

.gpm-header__menu {
	display: flex;
	align-items: center;
	gap: 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gpm-header__menu a {
	color: var(--gpm-text, #3E4265);
	font-size: .88rem;
	font-weight: 600;
	text-decoration: none;
}

.gpm-header__menu a:hover {
	color: var(--gpm-green, #0CB452);
}

.gpm-header__actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.gpm-header__action {
	color: var(--gpm-text, #3E4265);
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
	padding: 6px 12px;
	border: 1px solid var(--gpm-border, #E2E5F1);
	border-radius: 999px;
}

.gpm-header__action:hover {
	border-color: var(--gpm-green, #0CB452);
	color: var(--gpm-green, #0CB452);
}

.gpm-header__cart {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	color: var(--gpm-text, #3E4265);
	text-decoration: none;
}

.gpm-header__cart-count {
	position: absolute;
	top: 0;
	right: 0;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	background: var(--gpm-green, #0CB452);
	color: #fff;
	font-size: .65rem;
	font-weight: 700;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.gpm-header__menu-toggle {
	background: none;
	border: none;
	padding: 8px;
	color: var(--gpm-text, #3E4265);
	cursor: pointer;
}

.gpm-header__mobile-meta {
	background: var(--gpm-green-bg, #DDF4E8);
	padding: 8px 0;
	font-size: .78rem;
}

.gpm-header__mobile-meta .gpm-container {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.gpm-header__pickup {
	font-weight: 700;
	color: var(--gpm-green-dark, #065D2F);
}

.gpm-header__mobile-address {
	color: var(--gpm-text, #3E4265);
}

/* Footer */
.gpm-footer {
	background: #fff;
	border-top: 1px solid var(--gpm-border, #E2E5F1);
	padding-top: 32px;
}

.gpm-footer__brand {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 24px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--gpm-border, #E2E5F1);
	margin-bottom: 28px;
}

.gpm-footer__logo img {
	max-height: 36px;
	width: auto;
}

.gpm-footer__tagline p {
	margin: 0 0 8px;
	color: var(--gpm-text, #3E4265);
	font-size: .9rem;
}

.gpm-footer__contact-link {
	color: var(--gpm-green, #0CB452);
	font-weight: 600;
	text-decoration: none;
}

.gpm-footer__columns {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	padding-bottom: 28px;
}

.gpm-footer__heading {
	font-size: .9rem;
	font-weight: 700;
	color: var(--gpm-green-dark, #065D2F);
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.gpm-footer__heading--sub {
	margin-top: 16px;
}

.gpm-footer__text {
	font-size: .85rem;
	color: var(--gpm-muted, #9397AD);
	line-height: 1.5;
	margin: 0 0 6px;
}

.gpm-footer__text a {
	color: var(--gpm-text, #3E4265);
	text-decoration: none;
}

.gpm-footer__text a:hover {
	color: var(--gpm-green, #0CB452);
}

.gpm-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gpm-footer__menu li {
	margin-bottom: 6px;
}

.gpm-footer__menu a {
	color: var(--gpm-muted, #9397AD);
	font-size: .85rem;
	text-decoration: none;
}

.gpm-footer__menu a:hover {
	color: var(--gpm-green, #0CB452);
}

.gpm-footer__bottom {
	padding: 16px 0 24px;
	border-top: 1px solid var(--gpm-border, #E2E5F1);
	text-align: center;
}

.gpm-footer__bottom p {
	margin: 0;
	font-size: .8rem;
	color: var(--gpm-muted, #9397AD);
}

.footer-wrapper .footer-widgets {
	display: none;
}

/* GPM responsive visibility (850px = Flatsome large breakpoint) */
.gpm-show-desktop {
	display: none !important;
}

.gpm-show-mobile {
	display: block;
}

.gpm-header__menu-toggle.gpm-show-mobile {
	display: inline-flex !important;
}

@media only screen and (min-width: 850px) {
	.gpm-show-desktop {
		display: block !important;
	}

	.gpm-header__row--nav.gpm-show-desktop,
	.gpm-topbar__right.gpm-show-desktop {
		display: flex !important;
	}

	.gpm-header__pickup.gpm-show-desktop {
		display: inline-flex !important;
	}

	.gpm-show-mobile {
		display: none !important;
	}
}

/* Desktop header + UX Builder homepage */
@media only screen and (min-width: 850px) {
	.gpm-topbar {
		display: block;
	}

	.gpm-header__row--main {
		grid-template-columns: auto minmax(280px, 1fr) auto;
		gap: 24px;
	}

	.gpm-header__search-col .gpm-search-form {
		max-width: 640px;
		margin: 0 auto;
	}

	.gpm-header__actions {
		gap: 12px;
	}

	.gpm-header__logo img {
		max-height: 48px;
	}

	/* UX Builder static front page — match GPM desktop layout */
	.home .page-wrapper {
		background: var(--gpm-bg, #F1F5F9);
	}

	.home .page-wrapper > .row.row-main {
		max-width: 1260px;
		margin-left: auto;
		margin-right: auto;
		padding-left: 20px;
		padding-right: 20px;
	}

	.home .ux-slider-wrapper .banner {
		min-height: 440px;
	}

	.home .section-title span {
		border-bottom: 2px solid var(--gpm-green, #0CB452);
		padding-bottom: 4px;
	}

	.home .product-small .box-text {
		text-align: left;
	}

	.home .slider-nav-circle .flickity-prev-next-button {
		opacity: 1;
	}
}

@media only screen and (max-width: 48em) {
	.gpm-topbar__inner {
		grid-template-columns: 1fr;
	}

	.gpm-header__row--main {
		grid-template-columns: auto 1fr auto;
		gap: 10px;
	}

	.gpm-header__search-col {
		grid-column: 1 / -1;
		order: 3;
	}

	.gpm-header__search-col,
	.gpm-header__row--nav,
	.gpm-header__row--brands,
	.gpm-header__pickup,
	.gpm-show-desktop {
		display: none !important;
	}

	.gpm-header__action {
		display: none !important;
	}

	.gpm-footer__columns {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media only screen and (max-width: 30em) {
	.gpm-footer__columns {
		grid-template-columns: 1fr;
	}
}

/* ─────────────────────────────────────────────────────────────────
   Home page – market layout (front-page.php)
   ───────────────────────────────────────────────────────────────── */

:root {
	--gpm-green:       #0CB452;
	--gpm-green-light: #0FC259;
	--gpm-green-dark:  #065D2F;
	--gpm-green-bg:    #DDF4E8;
	--gpm-bg:          #F1F5F9;
	--gpm-surface:     #F9F9F9;
	--gpm-border:      #E2E5F1;
	--gpm-text:        #3E4265;
	--gpm-muted:       #9397AD;
	--gpm-sale:        #EF4444;
	--gpm-radius:      12px;
	--gpm-shadow:      0 2px 8px rgba(0,0,0,.06);
	--gpm-shadow-hover:0 6px 20px rgba(0,0,0,.12);
}

#gpm-homepage {
	background: var(--gpm-bg);
}

/* Container */
.gpm-container {
	max-width: 1260px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ── Category icon nav ────────────────────────────────────────────── */
.gpm-cat-icons {
	background: #fff;
	padding: 20px 0 8px;
	border-bottom: 1px solid var(--gpm-border);
}

.gpm-cat-icon-slide {
	width: 92px !important;
}

.gpm-cat-icon {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	color: var(--gpm-text);
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	width: 100%;
}

.gpm-cat-icon__img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--gpm-green-bg);
	border: 2px solid var(--gpm-border);
	display: flex;
	align-items: center;
	justify-content: center;
}

.gpm-cat-icon__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gpm-cat-icon__img--categories {
	background: linear-gradient(135deg, #DDF4E8, #8CE6B1);
}

.gpm-cat-icon__img--promo {
	background: linear-gradient(135deg, #FEE2E2, #EF4444);
}

.gpm-cat-icon__fallback {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--gpm-green-dark);
}

.gpm-cat-icon__label {
	font-size: .68rem;
	font-weight: 600;
	text-align: center;
	line-height: 1.25;
	max-width: 88px;
	/* Category names are single unbreakable words (NOUILLEINSTANTANEE,
	   PLANTEGRAINECEREALE); without this they render past max-width and
	   collide with the neighbouring slide's label. */
	overflow-wrap: anywhere;
}

/* ── Hero ───────────────────────────────────────────────────────── */
.gpm-hero {
	background: var(--gpm-bg);
	padding: 16px 0 24px;
}

.gpm-hero-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-template-rows: auto auto;
	gap: 12px;
}

.gpm-hero-banner {
	border-radius: var(--gpm-radius);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	min-height: 120px;
	display: flex;
	align-items: flex-end;
	padding: 20px;
}

.gpm-hero-banner--main {
	grid-row: span 2;
	background: linear-gradient(135deg, var(--gpm-green-dark) 0%, var(--gpm-green) 55%, var(--gpm-green-light) 100%);
	color: #fff;
	min-height: 280px;
	align-items: center;
}

.gpm-hero-banner--blue {
	background: linear-gradient(135deg, #DBEAFE, #60A5FA);
	color: #1e3a5f;
}

.gpm-hero-banner--red {
	background: linear-gradient(135deg, #FEE2E2, #EF4444);
	color: #fff;
}

.gpm-hero-banner__eyebrow {
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	opacity: .85;
	margin: 0 0 8px;
}

.gpm-hero-banner__title {
	font-size: 1.75rem;
	font-weight: 700;
	margin: 0 0 10px;
	color: #fff;
}

.gpm-hero-banner__text {
	font-size: .9rem;
	opacity: .9;
	margin: 0 0 16px;
	max-width: 420px;
	line-height: 1.5;
}

.gpm-hero-banner__side-title {
	font-weight: 700;
	font-size: .95rem;
}

.gpm-btn--inline {
	display: inline-block;
	width: auto;
}

.gpm-hero-swiper {
	width: 100%;
	min-height: 280px;
	max-height: 420px;
}

.gpm-hero-swiper .swiper-slide {
	height: auto;
}

.gpm-hero__slide-link {
	display: block;
	height: 100%;
}

.gpm-hero__slide-img {
	width: 100%;
	height: 280px;
	object-fit: cover;
	display: block;
}

.gpm-hero__slide-caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 12px 20px;
	background: linear-gradient(transparent, rgba(0,0,0,.55));
	color: #fff;
	font-weight: 600;
}

.gpm-hero__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	pointer-events: none;
	background: linear-gradient(90deg, rgba(6,93,47,.82) 0%, rgba(6,93,47,.45) 45%, transparent 70%);
}

.gpm-hero__overlay-inner {
	pointer-events: auto;
	max-width: 480px;
	padding: 32px 0;
	color: #fff;
}

.gpm-hero-swiper .swiper-pagination-bullet {
	background: #fff;
	opacity: .5;
}

.gpm-hero-swiper .swiper-pagination-bullet-active {
	opacity: 1;
}

.gpm-hero-swiper .swiper-button-prev,
.gpm-hero-swiper .swiper-button-next {
	color: #fff;
}

.gpm-hero__inner {
	max-width: 1260px;
	margin: 0 auto;
	display: flex;
	align-items: stretch;
	min-height: 320px;
}

.gpm-hero__inner--text {
	justify-content: center;
}

.gpm-hero__image {
	flex: 0 0 55%;
	position: relative;
	overflow: hidden;
}

.gpm-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gpm-hero__placeholder {
	width: 100%;
	height: 100%;
	min-height: 320px;
	background: rgba(255,255,255,.1);
}

.gpm-hero__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 48px 40px;
	color: #fff;
}

.gpm-hero__eyebrow {
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .12em;
	opacity: .8;
	margin-bottom: 8px;
}

.gpm-hero__title {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: 12px;
	color: #fff;
}

.gpm-hero__subtitle {
	font-size: 1rem;
	opacity: .85;
	margin-bottom: 28px;
	line-height: 1.5;
}

/* ── Buttons ────────────────────────────────────────────────────── */
.gpm-btn {
	display: inline-block;
	padding: 12px 28px;
	border-radius: var(--gpm-radius);
	font-weight: 600;
	font-size: .9rem;
	text-decoration: none;
	transition: all .2s;
	cursor: pointer;
	border: none;
}

.gpm-btn--primary {
	background: #fff;
	color: var(--gpm-green-dark);
}

.gpm-btn--primary:hover {
	background: var(--gpm-green-bg);
	color: var(--gpm-green-dark);
}

/* ── Brand carousel ─────────────────────────────────────────────── */
.gpm-brands {
	background: #fff;
	border-bottom: 1px solid var(--gpm-border);
	padding: 16px 0;
}

.gpm-brand-slide {
	width: auto !important;
}

.gpm-brand-card {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 100px;
	height: 56px;
	padding: 8px 16px;
	border: 1px solid var(--gpm-border);
	border-radius: 999px;
	background: var(--gpm-surface);
	text-decoration: none;
	transition: border-color .2s, box-shadow .2s;
}

.gpm-brand-card:hover {
	border-color: var(--gpm-green);
	box-shadow: var(--gpm-shadow);
}

.gpm-brand-card__img {
	max-height: 36px;
	max-width: 100px;
	object-fit: contain;
}

.gpm-brand-card__label {
	font-size: .78rem;
	font-weight: 600;
	color: var(--gpm-text);
	white-space: nowrap;
}

/* ── Category pills & tabs ──────────────────────────────────────── */
.gpm-pills {
	background: #fff;
	padding: 12px 0;
	border-bottom: 1px solid var(--gpm-border);
}

.gpm-home-tabs {
	display: flex;
	gap: 8px;
	margin-bottom: 16px;
}

.gpm-home-tabs__btn {
	padding: 8px 18px;
	border: 1px solid var(--gpm-border);
	border-radius: 999px;
	background: #fff;
	color: var(--gpm-text);
	font-size: .85rem;
	font-weight: 600;
	cursor: pointer;
	transition: all .2s;
}

.gpm-home-tabs__btn.is-active,
.gpm-home-tabs__btn:hover {
	background: var(--gpm-green);
	border-color: var(--gpm-green);
	color: #fff;
}

.gpm-pill-slide {
	width: auto !important;
}

.gpm-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border: 1px solid var(--gpm-border);
	border-radius: 999px;
	background: var(--gpm-green-bg);
	color: var(--gpm-green-dark);
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: all .2s;
}

.gpm-pill:hover {
	background: var(--gpm-green);
	border-color: var(--gpm-green);
	color: #fff;
}

.gpm-pill__icon {
	border-radius: 50%;
	object-fit: cover;
}

.gpm-empty {
	color: var(--gpm-muted);
	text-align: center;
	padding: 32px 0;
}

/* ── Category section ───────────────────────────────────────────── */
.gpm-cat-section {
	padding: 28px 0 8px;
}

.gpm-cat-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--gpm-green);
}

.gpm-cat-header__left {
	display: flex;
	align-items: center;
	gap: 10px;
}

.gpm-cat-header__icon {
	width: 32px;
	height: 32px;
	object-fit: cover;
	border-radius: 50%;
}

.gpm-cat-title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--gpm-text);
	margin: 0;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.gpm-see-all {
	font-size: .85rem;
	color: var(--gpm-green);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	padding: 4px 12px;
	border: 1px solid var(--gpm-green);
	border-radius: 20px;
	transition: all .2s;
}

.gpm-see-all:hover {
	background: var(--gpm-green);
	color: #fff;
}

/* ── Product row (swiper) ───────────────────────────────────────── */
.gpm-product-row-wrap {
	overflow: hidden;
	margin-bottom: 8px;
}

.gpm-product-swiper {
	overflow: visible;
	padding-bottom: 4px;
}

.gpm-product-swiper .swiper-slide {
	width: 220px;
	height: auto;
}

/* ── Product card ───────────────────────────────────────────────── */
.gpm-product-card {
	background: #fff;
	border-radius: var(--gpm-radius);
	border: 1px solid var(--gpm-border);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 300px;
	transition: box-shadow .2s, transform .2s;
}

.gpm-product-card:hover {
	box-shadow: var(--gpm-shadow-hover);
}

.gpm-product-card__media {
	flex: 0 0 50%;
	min-height: 140px;
}

.gpm-product-card__img-wrap {
	display: block;
	position: relative;
	overflow: hidden;
	background: #fafafa;
	height: 100%;
	min-height: 140px;
}

.gpm-product-card__img {
	width: 100%;
	height: 100%;
	min-height: 140px;
	object-fit: cover;
	display: block;
	transition: transform .3s;
}

.gpm-product-card:hover .gpm-product-card__img {
	transform: scale(1.05);
}

.gpm-badge {
	position: absolute;
	top: 8px;
	left: 8px;
	padding: 3px 7px;
	border-radius: 4px;
	font-size: .75rem;
	font-weight: 700;
	line-height: 1;
}

.gpm-badge--sale {
	background: var(--gpm-sale);
	color: #fff;
}

.gpm-product-card__info {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 10px 12px 12px;
}

.gpm-product-card__name {
	font-size: .82rem;
	font-weight: 700;
	color: rgba(0,0,0,.6);
	text-decoration: none;
	line-height: 1.35;
	margin-bottom: 6px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.gpm-product-card__name:hover {
	color: var(--gpm-green);
}

.gpm-product-card__price {
	font-size: 1rem;
	font-weight: 700;
	color: var(--gpm-text);
	margin-bottom: 6px;
}

.gpm-product-card__price del {
	color: var(--gpm-muted);
	font-weight: 400;
	font-size: .8rem;
}

.gpm-product-card__price ins {
	text-decoration: none;
	color: var(--gpm-sale);
}

.gpm-product-card__meta-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px;
	margin-top: auto;
}

.gpm-product-card__meta {
	flex: 1;
	min-width: 0;
}

.gpm-product-card__unit {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: .72rem;
	color: var(--gpm-text);
	margin-bottom: 2px;
}

.gpm-product-card__unit-icon {
	color: var(--gpm-green);
	flex-shrink: 0;
}

.gpm-product-card__stock {
	font-size: .7rem;
	color: var(--gpm-green);
	margin: 0;
	line-height: 1.3;
}

.gpm-product-card__cart-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--gpm-green);
	color: #fff !important;
	border: none;
	text-decoration: none;
	transition: background .2s, transform .2s;
	padding: 0;
}

.gpm-product-card__cart-btn:hover {
	background: var(--gpm-green-dark);
	color: #fff !important;
	transform: scale(1.05);
}

.gpm-product-card__cart-btn--view {
	background: var(--gpm-muted);
}

/* ── Hot promo banner ───────────────────────────────────────────── */
.gpm-hot-promo-banner {
	padding: 16px 0 8px;
}

.gpm-hot-promo-banner__link {
	display: block;
}

.gpm-hot-promo-banner__img {
	width: 100%;
	border-radius: var(--gpm-radius);
	display: block;
	max-height: 180px;
	object-fit: cover;
}

/* ── Best sellers ───────────────────────────────────────────────── */
.gpm-best-sellers {
	border-top: 2px solid var(--gpm-green-bg);
	margin-top: 8px;
}

.gpm-cat-header__icon-svg {
	color: var(--gpm-green);
	flex-shrink: 0;
}

/* ─────────────────────────────────────────────────────────────────
   Wholesale
   ───────────────────────────────────────────────────────────────── */

.gpm-wholesale-label {
	display: inline-block;
	background: #e8f5e9;
	color: var(--gpm-green-dark);
	border: 1px solid var(--gpm-green);
	border-radius: 4px;
	padding: 4px 10px;
	font-size: .8rem;
	font-weight: 600;
	margin-bottom: 8px;
}

/* ─────────────────────────────────────────────────────────────────
   Store locator [gpm_stores]
   ───────────────────────────────────────────────────────────────── */

.gpm-store-locator {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
	margin: 32px 0;
}

.gpm-store-card {
	background: #fff;
	border: 1px solid var(--gpm-border);
	border-radius: var(--gpm-radius);
	padding: 24px;
	box-shadow: var(--gpm-shadow);
}

.gpm-store-card__name {
	font-size: 1rem;
	font-weight: 700;
	color: var(--gpm-green-dark);
	margin-bottom: 10px;
}

.gpm-store-card__address {
	font-style: normal;
	color: var(--gpm-text);
	font-size: .9rem;
	line-height: 1.6;
	margin-bottom: 8px;
}

.gpm-store-card__phone a {
	color: var(--gpm-green);
	font-weight: 600;
	text-decoration: none;
}

.gpm-store-card__hours {
	font-size: .82rem;
	color: var(--gpm-muted);
	margin-top: 8px;
}

/* ─────────────────────────────────────────────────────────────────
   Contact page
   ───────────────────────────────────────────────────────────────── */

#gpm-contact {
	background: var(--gpm-bg);
	padding: 40px 0 64px;
}

.gpm-contact__title {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--gpm-text);
	margin-bottom: 8px;
}

.gpm-contact__subtitle {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--gpm-green-dark);
	margin-bottom: 8px;
}

.gpm-contact__intro {
	color: var(--gpm-muted);
	margin-bottom: 32px;
	max-width: 640px;
	line-height: 1.6;
}

.gpm-contact__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: 1fr;
}

@media only screen and (min-width: 48em) {
	.gpm-contact__grid {
		grid-template-columns: 1fr 2fr;
	}
}

.gpm-contact__info {
	background: #fff;
	border: 1px solid #58D88D;
	border-radius: 16px;
	box-shadow: 0 2px 23px rgba(99, 103, 124, .1);
	padding: 28px;
}

.gpm-contact__info-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--gpm-green-dark);
	margin-bottom: 24px;
}

.gpm-contact__logo {
	margin-bottom: 24px;
}

.gpm-contact__info-row {
	display: flex;
	gap: 12px;
	margin-bottom: 20px;
}

.gpm-contact__info-row svg {
	flex-shrink: 0;
	margin-top: 2px;
}

.gpm-contact__info-label {
	font-weight: 600;
	color: var(--gpm-text);
	font-size: .875rem;
	margin-bottom: 4px;
}

.gpm-contact__info-value {
	color: var(--gpm-muted);
	font-size: .9rem;
	line-height: 1.5;
	margin: 0 0 6px;
}

.gpm-contact__info-value a {
	color: var(--gpm-green);
	text-decoration: none;
	font-weight: 600;
}

.gpm-contact__info-value a:hover {
	color: var(--gpm-green-dark);
}

.gpm-contact__hours {
	background: #F1FFF8;
	border-radius: var(--gpm-radius);
	padding: 12px 16px;
	flex: 1;
}

.gpm-contact__form-card {
	background: #fff;
	border-radius: 16px;
	box-shadow: var(--gpm-shadow);
	padding: 28px;
}

.gpm-contact__form-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--gpm-green-dark);
	margin-bottom: 24px;
}

.gpm-contact__form-fallback {
	color: var(--gpm-muted);
}

.gpm-contact__form-fields {
	display: grid;
	gap: 16px;
	grid-template-columns: 1fr;
	margin-bottom: 16px;
}

.gpm-contact__form-fields p {
	margin: 0;
}

@media only screen and (min-width: 48em) {
	.gpm-contact__form-fields {
		grid-template-columns: 1fr 1fr;
	}
}

.gpm-contact .wpcf7-form > p {
	margin-bottom: 16px;
}

.gpm-contact__input,
.gpm-contact__textarea,
.gpm-contact .wpcf7-form input[type="text"],
.gpm-contact .wpcf7-form input[type="email"],
.gpm-contact .wpcf7-form textarea {
	width: 100%;
	border: 1px solid var(--gpm-border);
	border-radius: 8px;
	padding: 8px 12px;
	font-size: .9rem;
	color: var(--gpm-text);
	background: #fff;
	box-sizing: border-box;
}

.gpm-contact__textarea,
.gpm-contact .wpcf7-form textarea {
	min-height: 80px;
	resize: vertical;
}

.gpm-contact__submit,
.gpm-contact .wpcf7-form input[type="submit"] {
	background: var(--gpm-green);
	color: #fff;
	border: none;
	border-radius: var(--gpm-radius);
	padding: 12px 28px;
	font-weight: 600;
	font-size: .9rem;
	cursor: pointer;
	transition: background .2s;
}

.gpm-contact__submit:hover,
.gpm-contact .wpcf7-form input[type="submit"]:hover {
	background: var(--gpm-green-dark);
}

.gpm-contact .wpcf7-not-valid-tip {
	font-size: .8rem;
	color: var(--gpm-sale);
	margin-top: 4px;
}

.gpm-contact .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 16px;
	border-radius: var(--gpm-radius);
	font-size: .875rem;
}

/* ─────────────────────────────────────────────────────────────────
   Single blog post — market layout (single.php)
   ───────────────────────────────────────────────────────────────── */

#gpm-blog {
	background: var(--gpm-bg);
	padding: 40px 0 64px;
}

.gpm-blog__container {
	max-width: 820px;
}

.gpm-blog__breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	font-size: .8125rem;
	color: var(--gpm-muted);
	margin-bottom: 20px;
}

.gpm-blog__breadcrumb a {
	color: var(--gpm-muted);
	text-decoration: none;
}

.gpm-blog__breadcrumb a:hover {
	color: var(--gpm-green);
}

.gpm-blog__breadcrumb-current {
	color: var(--gpm-text);
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 260px;
}

.gpm-blog__header {
	text-align: center;
	margin-bottom: 24px;
}

.gpm-blog__category {
	display: inline-block;
	background: var(--gpm-green-bg);
	color: var(--gpm-green-dark);
	font-size: .75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	padding: 5px 14px;
	border-radius: 999px;
	text-decoration: none;
	margin-bottom: 16px;
}

.gpm-blog__title {
	font-size: 2rem;
	font-weight: 700;
	color: var(--gpm-text);
	line-height: 1.25;
	margin: 0 0 16px;
}

.gpm-blog__meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--gpm-muted);
	font-size: .875rem;
}

.gpm-blog__meta-author {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--gpm-text);
	font-weight: 600;
}

.gpm-blog__avatar {
	border-radius: 50%;
	width: 32px;
	height: 32px;
}

.gpm-blog__meta-dot {
	color: var(--gpm-border);
}

.gpm-blog__thumbnail {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--gpm-shadow);
	margin-bottom: 24px;
}

.gpm-blog__thumbnail img {
	display: block;
	width: 100%;
	height: auto;
}

.gpm-blog__content-card {
	background: #fff;
	border: 1px solid var(--gpm-border);
	border-radius: 16px;
	box-shadow: var(--gpm-shadow);
	padding: 32px;
	margin-bottom: 24px;
}

.gpm-blog__content {
	color: var(--gpm-text);
	line-height: 1.75;
}

.gpm-blog__content h2,
.gpm-blog__content h3,
.gpm-blog__content h4 {
	color: var(--gpm-text);
	font-weight: 700;
}

.gpm-blog__content a {
	color: var(--gpm-green);
}

.gpm-blog__content a:hover {
	color: var(--gpm-green-dark);
}

.gpm-blog__content img {
	border-radius: var(--gpm-radius);
	height: auto;
	max-width: 100%;
}

.gpm-blog__pagination {
	margin-top: 20px;
}

.gpm-blog__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--gpm-border);
}

.gpm-blog__tag {
	background: var(--gpm-bg);
	color: var(--gpm-text);
	font-size: .8125rem;
	font-weight: 600;
	padding: 6px 14px;
	border-radius: 999px;
	text-decoration: none;
}

.gpm-blog__tag:hover {
	background: var(--gpm-green-bg);
	color: var(--gpm-green-dark);
}

.gpm-blog__author-box {
	display: flex;
	gap: 16px;
	background: #fff;
	border: 1px solid var(--gpm-border);
	border-radius: 16px;
	box-shadow: var(--gpm-shadow);
	padding: 24px;
	margin-bottom: 24px;
}

.gpm-blog__author-avatar {
	border-radius: 50%;
	flex-shrink: 0;
	width: 64px;
	height: 64px;
}

.gpm-blog__author-name {
	font-weight: 700;
	color: var(--gpm-text);
	margin-bottom: 4px;
}

.gpm-blog__author-desc {
	color: var(--gpm-muted);
	font-size: .875rem;
	line-height: 1.6;
	margin: 0;
}

.gpm-blog__nav {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 24px;
}

.gpm-blog__nav a {
	display: inline-block;
	color: var(--gpm-text);
	font-weight: 600;
	font-size: .875rem;
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--gpm-border);
	border-radius: var(--gpm-radius);
	padding: 10px 18px;
}

.gpm-blog__nav a:hover {
	border-color: var(--gpm-green);
	color: var(--gpm-green);
}

.gpm-blog__nav-next {
	margin-left: auto;
	text-align: right;
}

.gpm-blog__comments {
	background: #fff;
	border: 1px solid var(--gpm-border);
	border-radius: 16px;
	box-shadow: var(--gpm-shadow);
	padding: 32px;
}

/* ─────────────────────────────────────────────────────────────────
   Responsive
   ───────────────────────────────────────────────────────────────── */
@media only screen and (max-width: 48em) {

	.gpm-hero__slide-img {
		height: 200px;
	}

	.gpm-hero__overlay {
		background: linear-gradient(180deg, transparent 30%, rgba(6,93,47,.85) 100%);
		align-items: flex-end;
	}

	.gpm-hero__overlay-inner {
		padding: 20px 0;
		max-width: 100%;
	}

	.gpm-hero__inner {
		flex-direction: column;
		min-height: auto;
	}

	.gpm-hero__image {
		flex: 0 0 auto;
		max-height: 200px;
	}

	.gpm-hero__content {
		padding: 28px 20px;
	}

	.gpm-hero__title {
		font-size: 1.4rem;
	}

	.gpm-product-row {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
	}

	.gpm-cat-title {
		font-size: .95rem;
	}

	.gpm-hero-grid {
		grid-template-columns: 1fr;
	}

	.gpm-hero-banner--main {
		grid-row: auto;
		min-height: 220px;
	}

	.gpm-cat-icon-slide {
		width: 80px !important;
	}

	.gpm-cat-icon__img {
		width: 56px;
		height: 56px;
	}

	.gpm-product-swiper .swiper-slide {
		width: 170px;
	}

	#gpm-contact {
		padding: 24px 0 40px;
	}

	.gpm-contact__info,
	.gpm-contact__form-card {
		padding: 12px;
	}

	#gpm-blog {
		padding: 24px 0 40px;
	}

	.gpm-blog__title {
		font-size: 1.5rem;
	}

	.gpm-blog__content-card,
	.gpm-blog__comments {
		padding: 20px;
	}

	.gpm-blog__author-box {
		flex-direction: column;
		align-items: flex-start;
	}

	.gpm-blog__nav {
		flex-direction: column;
	}

	.gpm-blog__nav-next {
		margin-left: 0;
		text-align: left;
	}

}

/* ------------------------------------------------------------------
   WC coming-soon landing (GP-113)
   Flatsome sets `html` to gray (#5b5b5b). When the coming-soon block is
   shorter than the viewport that letterbox shows as a broken bottom strip.
   ------------------------------------------------------------------ */
html:has(.woocommerce-coming-soon-entire-site),
html:has(.gpm-coming-soon) {
	background-color: #ffffff !important;
}

body:has(.woocommerce-coming-soon-entire-site),
body:has(.gpm-coming-soon) {
	background-color: #ffffff !important;
	margin: 0;
}

.woocommerce-coming-soon-entire-site.gpm-coming-soon {
	min-height: 100vh;
	box-sizing: border-box;
}