/* ============================================================
   GP Site Kit — global styles
   All colors/sizes read from :root tokens (see Style Manager).
   ============================================================ */

:root {
	--gp-accent: #111111;
	--gp-accent-alt: #2e7d32;
	--gp-dark: #111111;
	--gp-light: #ffffff;
	--gp-muted: #6b7280;
	--gp-surface: #f6f6f4;
	--gp-border: #e5e7eb;
	--gp-radius: 10px;
	--gp-btn-radius: 999px;
	--gp-font: 'Jost', sans-serif;
	--gp-maxw: 1200px;
}

/* ---------- Buttons ---------- */
.gp-btn {
	display: inline-block;
	font-family: var(--gp-font);
	font-weight: 600;
	font-size: 15px;
	line-height: 1;
	padding: 14px 30px;
	border-radius: var(--gp-btn-radius);
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: all .2s ease;
}
.gp-btn--primary { background: var(--gp-accent); color: var(--gp-light); }
.gp-btn--primary:hover { opacity: .85; color: var(--gp-light); }
.gp-btn--alt { background: var(--gp-accent-alt); color: var(--gp-light); }
.gp-btn--alt:hover { opacity: .85; color: var(--gp-light); }
.gp-btn--outline { background: transparent; color: var(--gp-dark); border-color: var(--gp-dark); }
.gp-btn--outline:hover { background: var(--gp-dark); color: var(--gp-light); }
.gp-btn--light { background: var(--gp-light); color: var(--gp-dark); }
.gp-btn--light:hover { opacity: .9; }

/* ---------- Notices ---------- */
.gp-notice {
	background: var(--gp-surface);
	border: 1px dashed var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 24px;
	font-family: var(--gp-font);
	color: var(--gp-muted);
	text-align: center;
}

/* ---------- Hero ---------- */
.gp-hero {
	position: relative;
	display: flex;
	align-items: center;
	background-color: var(--gp-surface);
	background-size: cover;
	background-position: center;
	border-radius: 0;
	overflow: hidden;
}
.gp-hero__overlay { position: absolute; inset: 0; opacity: .8; }
.gp-hero__inner {
	position: relative;
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 60px 24px;
	width: 100%;
	font-family: var(--gp-font);
	color: var(--gp-dark);
}
.gp-hero--center .gp-hero__inner { text-align: center; }
.gp-hero--left .gp-hero__inner { text-align: left; }
.gp-hero__title {
	font-size: clamp(32px, 5vw, 56px);
	font-weight: 600;
	line-height: 1.1;
	margin: 0 0 18px;
	max-width: 640px;
}
.gp-hero--center .gp-hero__title { margin-left: auto; margin-right: auto; }
.gp-hero__sub {
	font-size: 18px;
	color: inherit;
	opacity: .85;
	max-width: 560px;
	margin: 0 0 28px;
}
.gp-hero--center .gp-hero__sub { margin-left: auto; margin-right: auto; }

/* ---------- Trust icons ---------- */
.gp-trust {
	display: grid;
	grid-template-columns: repeat(var(--gp-trust-cols, 4), 1fr);
	gap: 28px;
	max-width: var(--gp-maxw);
	margin: 0 auto;
	font-family: var(--gp-font);
}
.gp-trust__item {
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 28px 22px;
	text-align: center;
	transition: box-shadow .2s ease, transform .2s ease;
}
.gp-trust__item:hover { box-shadow: 0 12px 30px rgba(0,0,0,.08); transform: translateY(-3px); }
.gp-trust__icon { width: 56px; height: 56px; object-fit: contain; margin: 0 auto 14px; display: block; }
.gp-trust__icon--dot { background: var(--gp-surface); border-radius: 50%; }
.gp-trust__title { font-size: 18px; font-weight: 600; margin: 0 0 8px; color: var(--gp-dark); }
.gp-trust__text { font-size: 14px; color: var(--gp-muted); margin: 0; }

/* ---------- Section heading ---------- */
.gp-heading { font-family: var(--gp-font); max-width: 760px; }
.gp-heading--center { margin: 0 auto; text-align: center; }
.gp-heading--left { text-align: left; }
.gp-heading__title { font-size: clamp(26px, 3.4vw, 38px); font-weight: 600; margin: 0 0 10px; color: var(--gp-dark); }
.gp-heading__sub { font-size: 16px; color: var(--gp-muted); margin: 0; }

/* ---------- Product grid ---------- */
.gp-products {
	display: grid;
	grid-template-columns: repeat(var(--gp-prod-cols, 4), 1fr);
	gap: 26px;
	max-width: var(--gp-maxw);
	margin: 0 auto;
	font-family: var(--gp-font);
}
.gp-product-card {
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 18px;
	display: flex;
	flex-direction: column;
	text-align: center;
	transition: box-shadow .2s ease, transform .2s ease;
}
.gp-product-card:hover { box-shadow: 0 14px 34px rgba(0,0,0,.09); transform: translateY(-3px); }
.gp-product-card__imgwrap { display: block; border-radius: calc(var(--gp-radius) - 4px); overflow: hidden; background: var(--gp-surface); margin-bottom: 14px; }
.gp-product-card__imgwrap img { width: 100%; height: auto; aspect-ratio: 1/1; object-fit: cover; display: block; transition: transform .3s ease; }
.gp-product-card:hover .gp-product-card__imgwrap img { transform: scale(1.04); }
.gp-product-card__title { font-size: 17px; font-weight: 600; margin: 0 0 6px; line-height: 1.35; }
.gp-product-card__title a { color: var(--gp-dark); text-decoration: none; }
.gp-product-card__title a:hover { color: var(--gp-accent-alt); }
.gp-product-card__price { font-size: 17px; font-weight: 600; color: var(--gp-dark); margin-bottom: 14px; }
.gp-product-card__price del { color: var(--gp-muted); font-weight: 400; margin-right: 6px; }
.gp-product-card__actions { margin-top: auto; display: flex; flex-direction: column; gap: 8px; }
.gp-product-card__actions .gp-btn { padding: 11px 18px; font-size: 14px; }

/* ---------- Category showcase ---------- */
.gp-cats {
	display: grid;
	grid-template-columns: repeat(var(--gp-cat-cols, 4), 1fr);
	gap: 24px;
	max-width: var(--gp-maxw);
	margin: 0 auto;
	font-family: var(--gp-font);
}
.gp-cat-card { display: block; text-decoration: none; text-align: center; }
.gp-cat-card__imgwrap { display: block; border-radius: var(--gp-radius); overflow: hidden; margin-bottom: 12px; }
.gp-cat-card__imgwrap img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: transform .3s ease; }
.gp-cat-card:hover .gp-cat-card__imgwrap img { transform: scale(1.05); }
.gp-cat-card__title { font-size: 16px; font-weight: 600; color: var(--gp-dark); }
.gp-cat-card:hover .gp-cat-card__title { color: var(--gp-accent-alt); }

/* ---------- Offer banner ---------- */
.gp-offer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
	background-color: var(--gp-dark);
	background-size: cover;
	background-position: center;
	border-radius: var(--gp-radius);
	padding: 48px 44px;
	max-width: var(--gp-maxw);
	margin: 0 auto;
	font-family: var(--gp-font);
	color: var(--gp-light);
}
.gp-offer__eyebrow { display: block; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; opacity: .75; margin-bottom: 8px; }
.gp-offer__title { font-size: clamp(28px, 4vw, 44px); font-weight: 700; margin: 0 0 20px; color: inherit; }
.gp-offer__chips { display: flex; flex-direction: column; gap: 10px; }
.gp-offer__chip {
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.25);
	border-radius: var(--gp-btn-radius);
	padding: 10px 22px;
	font-size: 14px;
	font-weight: 500;
	text-align: center;
}

/* ---------- Newsletter ---------- */
.gp-newsletter { font-family: var(--gp-font); max-width: 520px; }
.gp-newsletter__title { font-size: 18px; font-weight: 600; margin: 0 0 12px; color: var(--gp-dark); }
.gp-newsletter__form { display: flex; gap: 10px; flex-wrap: wrap; }
.gp-newsletter__input {
	flex: 1 1 240px;
	padding: 13px 18px;
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-btn-radius);
	font-family: var(--gp-font);
	font-size: 15px;
}
.gp-newsletter__ok { color: var(--gp-accent-alt); font-size: 14px; margin-top: 10px; }

/* ============================================================
   WooCommerce skin — shop / product / cart / checkout
   Scoped to .woocommerce so it only affects Woo templates.
   ============================================================ */

.woocommerce, .woocommerce-page { font-family: var(--gp-font); }

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce-page a.button {
	background: var(--gp-accent);
	color: var(--gp-light);
	border-radius: var(--gp-btn-radius);
	padding: 13px 26px;
	font-weight: 600;
	transition: opacity .2s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover { background: var(--gp-accent); opacity: .85; color: var(--gp-light); }

.woocommerce .single_add_to_cart_button { background: var(--gp-accent-alt) !important; }

/* Shop loop cards */
.woocommerce ul.products li.product {
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 16px;
	text-align: center;
	transition: box-shadow .2s ease, transform .2s ease;
}
.woocommerce ul.products li.product:hover { box-shadow: 0 14px 34px rgba(0,0,0,.09); transform: translateY(-3px); }
.woocommerce ul.products li.product img { border-radius: calc(var(--gp-radius) - 4px); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 16px; font-weight: 600; color: var(--gp-dark); }
.woocommerce ul.products li.product .price { color: var(--gp-dark); font-weight: 600; font-size: 16px; }
.woocommerce ul.products li.product .price del { color: var(--gp-muted); }
.woocommerce ul.products li.product .button { margin-top: 10px; }
.woocommerce span.onsale {
	background: var(--gp-accent-alt);
	border-radius: var(--gp-btn-radius);
	min-height: auto; min-width: auto; line-height: 1;
	padding: 8px 14px; font-weight: 600;
}

/* Single product */
.woocommerce div.product .product_title { font-weight: 600; }
.woocommerce div.product p.price { color: var(--gp-dark); font-size: 26px; font-weight: 600; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--gp-muted); }
.woocommerce div.product form.cart .quantity .qty {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-btn-radius);
	padding: 10px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: var(--gp-surface);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius) var(--gp-radius) 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--gp-light); }

/* Cart */
.woocommerce table.shop_table {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	border-collapse: separate;
	overflow: hidden;
}
.woocommerce table.shop_table th { background: var(--gp-surface); }
.woocommerce .cart_totals { border: 1px solid var(--gp-border); border-radius: var(--gp-radius); padding: 20px; }
.woocommerce .cart_totals h2 { font-size: 20px; font-weight: 600; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	background: var(--gp-dark);
	border-radius: var(--gp-btn-radius);
	font-size: 16px;
}

/* Checkout */
.woocommerce-checkout #payment {
	background: var(--gp-surface);
	border-radius: var(--gp-radius);
	border: 1px solid var(--gp-border);
}
.woocommerce-checkout #payment div.payment_box { background: var(--gp-light); border-radius: calc(var(--gp-radius) - 4px); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	border: 1px solid var(--gp-border);
	border-radius: calc(var(--gp-radius) - 2px);
	padding: 12px 14px;
	font-family: var(--gp-font);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: var(--gp-dark); outline: none; }
.woocommerce-checkout #place_order {
	width: 100%;
	background: var(--gp-accent-alt);
	font-size: 16px;
	border-radius: var(--gp-btn-radius);
}
.woocommerce-checkout h3 { font-weight: 600; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-radius: var(--gp-radius);
	font-family: var(--gp-font);
}
.woocommerce-message { border-top-color: var(--gp-accent-alt); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.gp-trust, .gp-products, .gp-cats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.gp-trust, .gp-products, .gp-cats { grid-template-columns: 1fr; }
	.gp-offer { padding: 36px 24px; }
	.gp-offer__chips { width: 100%; flex-direction: row; flex-wrap: wrap; }
	.gp-hero__inner { padding: 48px 20px; }
}

/* ============================================================
   Header & Footer (plugin-rendered, no Pro needed)
   ============================================================ */

/* Hide theme default header/footer when kit versions are on */
body.gp-has-header .site-header,
body.gp-has-header header#masthead { display: none; }
body.gp-has-footer .site-footer,
body.gp-has-footer footer#colophon { display: none; }

.gp-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background: var(--gp-light);
	border-bottom: 1px solid var(--gp-border);
	font-family: var(--gp-font);
}
.gp-header__inner {
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 14px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.gp-header__logo { display: flex; align-items: center; text-decoration: none; }
.gp-header__logo img { max-height: 52px; width: auto; display: block; }
.gp-header__logotext { font-size: 22px; font-weight: 700; letter-spacing: 3px; color: var(--gp-dark); }

.gp-header__nav { flex: 1; display: flex; justify-content: center; }
.gp-header__menu { list-style: none; display: flex; gap: 30px; margin: 0; padding: 0; }
.gp-header__menu li { position: relative; }
.gp-header__menu a {
	color: var(--gp-dark);
	text-decoration: none;
	font-size: 15px;
	font-weight: 500;
	padding: 8px 0;
	display: inline-block;
}
.gp-header__menu a:hover { color: var(--gp-accent-alt); }
.gp-header__menu .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 8px 0;
	min-width: 200px;
	list-style: none;
	box-shadow: 0 12px 30px rgba(0,0,0,.1);
}
.gp-header__menu li:hover > .sub-menu { display: block; }
.gp-header__menu .sub-menu a { padding: 8px 18px; display: block; }
.gp-header__menu-hint { font-size: 11px; color: var(--gp-muted); }

.gp-header__actions { display: flex; align-items: center; gap: 16px; }
.gp-header__cart { position: relative; color: var(--gp-dark); display: inline-flex; }
.gp-header__cart:hover { color: var(--gp-accent-alt); }
.gp-header__cart-count {
	position: absolute;
	top: -8px;
	right: -10px;
	background: var(--gp-accent-alt);
	color: var(--gp-light);
	font-size: 11px;
	font-weight: 600;
	min-width: 18px;
	height: 18px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 4px;
}
.gp-header__burger { display: none; background: none; border: 0; cursor: pointer; padding: 6px; }
.gp-header__burger span {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--gp-dark);
	margin: 5px 0;
	transition: transform .2s ease, opacity .2s ease;
}

/* Footer */
.gp-footer {
	background: var(--gp-dark);
	color: rgba(255,255,255,.8);
	font-family: var(--gp-font);
	margin-top: 60px;
}
.gp-footer__inner {
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 60px 24px 40px;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.4fr;
	gap: 40px;
}
.gp-footer__logo { max-height: 46px; width: auto; margin-bottom: 14px; filter: brightness(0) invert(1); }
.gp-footer__logotext { font-size: 20px; font-weight: 700; letter-spacing: 3px; color: var(--gp-light); display: block; margin-bottom: 14px; }
.gp-footer h5 { color: var(--gp-light); font-size: 16px; font-weight: 600; margin: 0 0 16px; }
.gp-footer p { font-size: 14px; line-height: 1.7; margin: 0; }
.gp-footer__menu { list-style: none; margin: 0; padding: 0; }
.gp-footer__menu li { margin-bottom: 10px; }
.gp-footer__menu a, .gp-footer__contact a { color: rgba(255,255,255,.8); text-decoration: none; font-size: 14px; }
.gp-footer__menu a:hover, .gp-footer__contact a:hover { color: var(--gp-light); }
.gp-footer .gp-newsletter__input { border: 0; }
.gp-footer__bottom {
	border-top: 1px solid rgba(255,255,255,.12);
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 20px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	font-size: 13px;
}
.gp-footer__payments { display: flex; gap: 8px; }
.gp-payicon {
	background: rgba(255,255,255,.12);
	border-radius: 4px;
	padding: 4px 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	color: var(--gp-light);
}

@media (max-width: 900px) {
	.gp-header__nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--gp-light);
		border-bottom: 1px solid var(--gp-border);
		padding: 16px 24px;
	}
	.gp-header { position: sticky; }
	.gp-header__nav.gp-open { display: block; }
	.gp-header__menu { flex-direction: column; gap: 4px; }
	.gp-header__menu .sub-menu { position: static; box-shadow: none; border: 0; display: block; padding-left: 16px; }
	.gp-header__burger { display: block; }
	.gp-footer__inner { grid-template-columns: 1fr; gap: 32px; padding: 44px 20px 30px; }
}

/* ============================================================
   Announcement bar + Header Bar widgets (for use inside your
   own header template)
   ============================================================ */
.gp-announce {
	background: var(--gp-dark);
	color: var(--gp-light);
	text-align: center;
	padding: 10px 16px;
	font-family: var(--gp-font);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .3px;
}
.gp-announce__code {
	background: var(--gp-accent-alt);
	color: var(--gp-dark);
	border-radius: 5px;
	padding: 3px 10px;
	margin-left: 8px;
	font-weight: 700;
}
.gp-announce__icon { margin-right: 6px; }

.gp-headerbar {
	font-family: var(--gp-font);
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	background: var(--gp-light);
}
.gp-headerbar__logo { text-decoration: none; }
.gp-headerbar__logo img { max-height: 40px; display: block; }
.gp-headerbar__logotext { font-size: 20px; font-weight: 700; letter-spacing: 3px; color: var(--gp-dark); }
.gp-headerbar__nav ul { list-style: none; display: flex; gap: 28px; margin: 0; padding: 0; }
.gp-headerbar__nav a { color: var(--gp-dark); text-decoration: none; font-size: 15px; font-weight: 500; }
.gp-headerbar__nav a:hover { color: var(--gp-accent-alt); }
.gp-headerbar__icons { display: flex; align-items: center; gap: 18px; }
.gp-headerbar__icon { position: relative; color: var(--gp-dark); background: none; border: 0; cursor: pointer; display: inline-flex; padding: 0; }
.gp-headerbar__icon:hover { color: var(--gp-accent-alt); }
.gp-headerbar__badge {
	position: absolute; top: -8px; right: -9px;
	background: var(--gp-accent-alt); color: var(--gp-dark);
	font-size: 10px; font-weight: 700; min-width: 16px; height: 16px;
	border-radius: 50%; display: flex; align-items: center; justify-content: center;
}
.gp-headerbar__burger { display: none; background: none; border: 0; cursor: pointer; }
.gp-headerbar__burger span { display: block; width: 20px; height: 2px; background: var(--gp-dark); margin: 5px 0; }

@media (max-width: 900px) {
	.gp-headerbar__nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--gp-light); border-bottom: 1px solid var(--gp-border); padding: 14px 24px; }
	.gp-headerbar { position: relative; }
	.gp-headerbar__nav.gp-open { display: block; }
	.gp-headerbar__nav ul { flex-direction: column; gap: 6px; }
	.gp-headerbar__burger { display: block; }
}

/* ============================================================
   USP Strip
   ============================================================ */
.gp-usp {
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 18px 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
	font-family: var(--gp-font);
	border-bottom: 1px solid var(--gp-border);
}
.gp-usp__item { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; letter-spacing: .3px; color: var(--gp-dark); }
.gp-usp__icon { color: var(--gp-accent-alt); }
.gp-usp__dot { color: var(--gp-border); font-size: 6px; }

/* ============================================================
   Dark Feature Block
   ============================================================ */
.gp-feature {
	background: var(--gp-dark);
	color: var(--gp-light);
	font-family: var(--gp-font);
	padding: 60px 24px;
	text-align: center;
}
.gp-feature__head { max-width: 640px; margin: 0 auto 40px; }
.gp-feature__eyebrow { display: block; color: var(--gp-accent-alt); font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; }
.gp-feature__title { font-size: clamp(26px, 3.4vw, 38px); font-weight: 600; margin: 0 0 14px; }
.gp-feature__sub { color: rgba(255,255,255,.65); font-size: 15px; margin: 0; }
.gp-feature__cols { max-width: var(--gp-maxw); margin: 0 auto 36px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; text-align: left; }
.gp-feature__col { border: 1px solid rgba(255,255,255,.14); border-radius: var(--gp-radius); padding: 26px; }
.gp-feature__icon { font-size: 26px; display: block; margin-bottom: 14px; }
.gp-feature__col h4 { font-size: 17px; font-weight: 600; margin: 0 0 8px; }
.gp-feature__col p { font-size: 14px; color: rgba(255,255,255,.65); margin: 0; }
.gp-btn--outline-light { background: transparent; color: var(--gp-accent-alt); border: 2px solid var(--gp-accent-alt); }
.gp-btn--outline-light:hover { background: var(--gp-accent-alt); color: var(--gp-dark); }

/* ============================================================
   Testimonial strip
   ============================================================ */
.gp-testi { background: var(--gp-dark); color: var(--gp-light); font-family: var(--gp-font); padding: 60px 24px; }
.gp-testi__head { text-align: center; max-width: 640px; margin: 0 auto 40px; }
.gp-testi__head h2 { font-size: clamp(24px, 3vw, 32px); font-weight: 600; margin: 0 0 12px; }
.gp-testi__rating { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 14px; color: rgba(255,255,255,.7); }
.gp-testi__stars { color: var(--gp-accent-alt); letter-spacing: 2px; }
.gp-testi__grid { max-width: var(--gp-maxw); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gp-testi__card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); border-radius: var(--gp-radius); padding: 26px; }
.gp-testi__card-stars { color: var(--gp-accent-alt); letter-spacing: 2px; display: block; margin-bottom: 12px; }
.gp-testi__card p { font-size: 14px; color: rgba(255,255,255,.8); line-height: 1.6; margin: 0 0 14px; }
.gp-testi__author { font-size: 13px; color: rgba(255,255,255,.55); }

/* ============================================================
   How It Works
   ============================================================ */
.gp-how { font-family: var(--gp-font); padding: 60px 24px; text-align: center; }
.gp-how__title { font-size: clamp(24px, 3vw, 32px); font-weight: 600; margin: 0 0 40px; }
.gp-how__grid { max-width: var(--gp-maxw); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; text-align: left; }
.gp-how__step { position: relative; padding-top: 10px; }
.gp-how__num { color: var(--gp-accent-alt); font-weight: 700; font-size: 13px; letter-spacing: 1px; }
.gp-how__icon { display: block; font-size: 24px; margin: 10px 0 12px; }
.gp-how__step h4 { font-size: 17px; font-weight: 600; margin: 0 0 8px; color: var(--gp-dark); }
.gp-how__step p { font-size: 14px; color: var(--gp-muted); margin: 0; }

/* ============================================================
   FAQ
   ============================================================ */
.gp-faq { font-family: var(--gp-font); max-width: var(--gp-maxw); margin: 0 auto; padding: 60px 24px; display: grid; grid-template-columns: 1fr 1.3fr; gap: 50px; align-items: start; }
.gp-faq__image img { width: 100%; border-radius: var(--gp-radius); display: block; }
.gp-faq__content h2 { font-size: clamp(24px, 3vw, 32px); font-weight: 600; margin: 0 0 24px; color: var(--gp-dark); }
.gp-faq__item { border-bottom: 1px solid var(--gp-border); }
.gp-faq__q {
	width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
	padding: 18px 0; font-family: var(--gp-font); font-size: 15px; font-weight: 500;
	color: var(--gp-dark); display: flex; justify-content: space-between; align-items: center;
}
.gp-faq__plus { transition: transform .2s ease; color: var(--gp-muted); font-size: 18px; }
.gp-faq__item.gp-open .gp-faq__plus { transform: rotate(45deg); }
.gp-faq__a { max-height: 0; overflow: hidden; transition: max-height .25s ease; }
.gp-faq__a p { font-size: 14px; color: var(--gp-muted); margin: 0 0 18px; line-height: 1.6; }

/* ============================================================
   Light footer (matches Align layout)
   ============================================================ */
.gp-footerlight { font-family: var(--gp-font); background: var(--gp-light); border-top: 1px solid var(--gp-border); margin-top: 40px; }
.gp-footerlight__disclaimer { max-width: var(--gp-maxw); margin: 0 auto; padding: 24px 24px 0; font-size: 12px; color: var(--gp-muted); text-align: center; line-height: 1.6; }
.gp-footerlight__inner { max-width: var(--gp-maxw); margin: 0 auto; padding: 40px 24px; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.4fr; gap: 36px; }
.gp-footerlight__logo { max-height: 40px; margin-bottom: 14px; }
.gp-footerlight__logotext { display: block; font-size: 18px; font-weight: 700; letter-spacing: 3px; color: var(--gp-dark); margin-bottom: 14px; }
.gp-footerlight__col p { font-size: 14px; color: var(--gp-muted); line-height: 1.7; margin: 0 0 10px; }
.gp-footerlight__col h5 { font-size: 15px; font-weight: 600; margin: 0 0 16px; color: var(--gp-dark); }
.gp-footerlight__col ul { list-style: none; margin: 0; padding: 0; }
.gp-footerlight__col li { margin-bottom: 10px; }
.gp-footerlight__col a { color: var(--gp-muted); text-decoration: none; font-size: 14px; }
.gp-footerlight__col a:hover { color: var(--gp-dark); }
.gp-footerlight__nlsub { font-size: 12px; margin-top: 8px; }
.gp-footerlight__bottom { border-top: 1px solid var(--gp-border); max-width: var(--gp-maxw); margin: 0 auto; padding: 18px 24px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: 12px; color: var(--gp-muted); }
.gp-footerlight__pay { display: flex; gap: 8px; }
.gp-payicon--light { background: var(--gp-surface); color: var(--gp-dark); border: 1px solid var(--gp-border); }

@media (max-width: 900px) {
	.gp-feature__cols, .gp-testi__grid, .gp-how__grid { grid-template-columns: 1fr; }
	.gp-faq { grid-template-columns: 1fr; }
	.gp-footerlight__inner { grid-template-columns: 1fr; }
}

/* Hero: text + side media layout, dual buttons */
.gp-hero__inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.gp-hero__text { flex: 1 1 55%; }
.gp-hero__media { flex: 1 1 40%; }
.gp-hero__media img { width: 100%; height: auto; display: block; border-radius: var(--gp-radius); }
.gp-hero__btns { display: flex; gap: 14px; flex-wrap: wrap; }
.gp-hero--center .gp-hero__btns { justify-content: center; }
@media (max-width: 900px) {
	.gp-hero__inner { flex-direction: column; text-align: center; }
	.gp-hero__btns { justify-content: center; }
}

/* ============================================================
   v1.3 refinements — badges, eyebrows, plain trust, FAQ reset
   ============================================================ */

/* Card badges (top-left corner, like reference layout) */
.gp-product-card { position: relative; }
.gp-card-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .6px;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 4px;
	color: #fff;
}
.gp-card-badge--red { background: var(--gp-badge); }
.gp-card-badge--green { background: var(--gp-accent-alt); color: var(--gp-dark); }
.gp-card-badge--dark { background: var(--gp-dark); }

/* Section heading eyebrow */
.gp-heading__eyebrow {
	display: block;
	color: var(--gp-accent-alt);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	margin-bottom: 8px;
}

/* Plain trust icons (no cards) — used for "Why Choose Us" */
.gp-trust--plain .gp-trust__item { border: 0; background: transparent; padding: 10px; }
.gp-trust--plain .gp-trust__item:hover { box-shadow: none; transform: none; }

/* Offer banner subtext */
.gp-offer__sub { color: rgba(255,255,255,.75); font-size: 15px; max-width: 480px; margin: -8px 0 22px; }

/* FAQ hard reset — beat theme button/link styles that bleed in */
.gp-faq .gp-faq__q,
.gp-faq .gp-faq__q:hover,
.gp-faq .gp-faq__q:focus,
.gp-faq .gp-faq__q:active {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	color: var(--gp-dark) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	width: 100% !important;
	border-radius: 0 !important;
}
.gp-faq .gp-faq__item { border-bottom: 1px solid var(--gp-border) !important; }
.gp-faq .gp-faq__q:hover { color: var(--gp-accent-alt) !important; }

/* Product card link color guard against theme link colors */
.gp-product-card__title a,
.gp-cat-card__title,
.gp-headerbar__nav a,
.gp-footerlight__col a { color: var(--gp-dark); }

/* ============================================================
   Cart page layout — two-column with sidebar card
   ============================================================ */
body.gp-cart-layout .woocommerce {
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 0 24px 60px;
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 36px;
	align-items: start;
	font-family: var(--gp-font);
}
.gp-cart-head { grid-column: 1 / -1; text-align: center; padding: 30px 0 6px; }
.gp-cart-head h1 { font-size: clamp(28px, 4vw, 40px); font-weight: 600; margin: 0 0 8px; color: var(--gp-dark); }
.gp-cart-head p { color: var(--gp-muted); font-size: 15px; margin: 0; }

body.gp-cart-layout .woocommerce-cart-form { grid-column: 1; }
body.gp-cart-layout .cart-collaterals {
	grid-column: 2;
	grid-row: 2 / span 3;
	background: var(--gp-surface);
	border-radius: var(--gp-radius);
	padding: 26px;
}
body.gp-cart-layout .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.gp-cart-layout .cross-sells { grid-column: 1; }

/* Cart table — clean borderless rows */
body.gp-cart-layout table.shop_table.cart { border: 0; }
body.gp-cart-layout table.shop_table.cart th {
	background: transparent;
	border-bottom: 1px solid var(--gp-border);
	font-size: 14px;
	font-weight: 600;
	color: var(--gp-dark);
	padding: 12px 8px;
}
body.gp-cart-layout table.shop_table.cart td {
	border: 0;
	border-bottom: 1px dashed var(--gp-border);
	padding: 18px 8px;
	vertical-align: middle;
}
body.gp-cart-layout table.shop_table.cart td.product-thumbnail img {
	width: 72px; height: 72px; object-fit: cover;
	border-radius: calc(var(--gp-radius) - 4px);
	background: var(--gp-surface);
}
body.gp-cart-layout td.product-name a { color: var(--gp-dark); font-weight: 600; text-decoration: none; }
body.gp-cart-layout td.product-remove a.remove {
	color: var(--gp-muted) !important;
	font-size: 14px;
	width: auto; height: auto;
	text-decoration: underline;
	border-radius: 0;
	background: none !important;
}
body.gp-cart-layout td.product-remove a.remove:hover { color: var(--gp-badge) !important; }

/* Quantity steppers */
body.gp-cart-layout .quantity {
	display: inline-flex;
	align-items: center;
	background: var(--gp-surface);
	border-radius: var(--gp-btn-radius);
	padding: 4px;
}
.gp-qty-btn {
	width: 30px; height: 30px;
	border: 0; background: transparent;
	font-size: 16px; cursor: pointer;
	color: var(--gp-dark);
	border-radius: 50%;
	line-height: 1;
}
.gp-qty-btn:hover { background: var(--gp-light); }
body.gp-cart-layout .quantity .qty {
	border: 0 !important;
	background: transparent;
	width: 40px;
	text-align: center;
	font-family: var(--gp-font);
	font-size: 15px;
	padding: 0 !important;
}
body.gp-cart-layout button[name="update_cart"] { display: none !important; }

/* Coupon row */
body.gp-cart-layout .coupon { display: flex; gap: 10px; align-items: center; }
body.gp-cart-layout .coupon .input-text {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-btn-radius);
	padding: 12px 18px !important;
	width: 200px !important;
	font-family: var(--gp-font);
}
body.gp-cart-layout .coupon button {
	background: var(--gp-dark) !important;
	border-radius: var(--gp-btn-radius) !important;
}

/* Free shipping progress */
.gp-ship-progress { margin-bottom: 22px; }
.gp-ship-progress__track {
	position: relative;
	height: 8px;
	background: var(--gp-border);
	border-radius: 999px;
}
.gp-ship-progress__fill {
	height: 100%;
	background: repeating-linear-gradient(45deg, var(--gp-accent-alt), var(--gp-accent-alt) 8px, color-mix(in srgb, var(--gp-accent-alt) 70%, #000) 8px, color-mix(in srgb, var(--gp-accent-alt) 70%, #000) 16px);
	border-radius: 999px;
	transition: width .3s ease;
}
.gp-ship-progress__truck {
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: 50%;
	width: 30px; height: 30px;
	display: flex; align-items: center; justify-content: center;
	font-size: 14px;
}
.gp-ship-progress__label { font-size: 14px; margin: 12px 0 0; color: var(--gp-dark); }

/* Order note */
.gp-cart-note { margin-bottom: 22px; }
.gp-cart-note h4 { font-size: 16px; font-weight: 600; margin: 0 0 10px; color: var(--gp-dark); }
.gp-cart-note textarea {
	width: 100%;
	border: 1px solid var(--gp-border);
	border-radius: calc(var(--gp-radius) - 2px);
	padding: 12px 14px;
	font-family: var(--gp-font);
	font-size: 14px;
	resize: vertical;
	background: var(--gp-light);
}

/* Totals card */
body.gp-cart-layout .cart_totals { border: 0 !important; padding: 0 !important; float: none !important; width: 100% !important; }
body.gp-cart-layout .cart_totals h2 { font-size: 20px; font-weight: 600; margin: 0 0 14px; }
body.gp-cart-layout .cart_totals table.shop_table { border: 0; }
body.gp-cart-layout .cart_totals th, body.gp-cart-layout .cart_totals td { border: 0; background: transparent; padding: 8px 0; font-size: 15px; }
body.gp-cart-layout .cart_totals .order-total th, body.gp-cart-layout .cart_totals .order-total td { border-top: 1px solid var(--gp-border); padding-top: 14px; font-size: 17px; }
body.gp-cart-layout .wc-proceed-to-checkout { padding: 12px 0 0 !important; }
body.gp-cart-layout .wc-proceed-to-checkout a.checkout-button {
	background: var(--gp-dark) !important;
	border-radius: var(--gp-btn-radius) !important;
	width: 100%;
	text-align: center;
	font-size: 15px !important;
	padding: 16px !important;
}

/* Delivery info card */
.gp-cart-info { margin-top: 26px; background: var(--gp-light); border-radius: var(--gp-radius); padding: 22px; }
.gp-cart-info h4 { font-size: 15px; font-weight: 600; margin: 0 0 8px; color: var(--gp-dark); }
.gp-cart-info p { font-size: 13px; color: var(--gp-muted); line-height: 1.6; margin: 0 0 16px; }
.gp-cart-info__pay { display: flex; gap: 6px; flex-wrap: wrap; }

/* Cross-sells as horizontal cards */
body.gp-cart-layout .cross-sells > h2 { font-size: 20px; font-weight: 600; margin: 28px 0 16px; }
body.gp-cart-layout .cross-sells ul.products { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 18px; }
body.gp-cart-layout .cross-sells ul.products li.product {
	display: grid;
	grid-template-columns: 84px 1fr;
	gap: 14px;
	align-items: center;
	text-align: left;
	width: 100% !important;
	margin: 0 !important;
	padding: 14px;
}
body.gp-cart-layout .cross-sells li.product img { width: 84px !important; height: 84px; object-fit: cover; margin: 0 !important; grid-row: span 3; }
body.gp-cart-layout .cross-sells li.product .woocommerce-loop-product__title { padding: 0; font-size: 15px; }
body.gp-cart-layout .cross-sells li.product .price { font-size: 15px; margin: 2px 0; }
body.gp-cart-layout .cross-sells li.product .button {
	margin: 4px 0 0;
	background: var(--gp-accent-alt) !important;
	color: var(--gp-dark) !important;
	padding: 8px 16px !important;
	font-size: 13px !important;
	justify-self: start;
}
body.gp-cart-layout .cross-sells li.product .onsale { display: none; }

/* ============================================================
   Checkout page layout — form left, summary card right
   ============================================================ */
body.gp-checkout-layout form.checkout {
	max-width: var(--gp-maxw);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 40px;
	align-items: start;
	font-family: var(--gp-font);
}
body.gp-checkout-layout #customer_details { grid-column: 1; width: 100% !important; float: none !important; }
body.gp-checkout-layout #customer_details .col-1,
body.gp-checkout-layout #customer_details .col-2 { width: 100% !important; float: none !important; }
body.gp-checkout-layout #order_review_heading,
body.gp-checkout-layout #order_review {
	grid-column: 2;
	width: 100% !important;
	float: none !important;
}
body.gp-checkout-layout #order_review {
	background: var(--gp-surface);
	border-radius: var(--gp-radius);
	padding: 26px;
	position: sticky;
	top: 90px;
}
body.gp-checkout-layout #order_review_heading { font-size: 20px; font-weight: 600; margin: 0; align-self: end; }
body.gp-checkout-layout h3 { font-size: 18px; font-weight: 600; }
body.gp-checkout-layout table.shop_table { border: 0; }
body.gp-checkout-layout table.shop_table th,
body.gp-checkout-layout table.shop_table td { border: 0; background: transparent; padding: 8px 0; font-size: 14px; }
body.gp-checkout-layout table.shop_table tr.order-total th,
body.gp-checkout-layout table.shop_table tr.order-total td { border-top: 1px solid var(--gp-border); padding-top: 14px; font-size: 16px; }
body.gp-checkout-layout #payment { background: var(--gp-light); border: 1px solid var(--gp-border); }
body.gp-checkout-layout #place_order {
	background: var(--gp-dark) !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 16px !important;
	font-size: 15px !important;
}

@media (max-width: 900px) {
	body.gp-cart-layout .woocommerce,
	body.gp-checkout-layout form.checkout { grid-template-columns: 1fr; }
	body.gp-cart-layout .cart-collaterals { grid-column: 1; grid-row: auto; }
	body.gp-cart-layout .cross-sells ul.products { grid-template-columns: 1fr; }
	body.gp-checkout-layout #order_review_heading,
	body.gp-checkout-layout #order_review { grid-column: 1; position: static; }
}

/* ============================================================
   v1.5 — homepage polish + single product page
   ============================================================ */

/* Trust icon emoji */
.gp-trust__emoji { display: block; font-size: 34px; margin: 0 auto 14px; line-height: 1; }

/* How It Works: green top rule with dot marker */
.gp-how__step { border-top: 2px solid var(--gp-border); padding-top: 18px; }
.gp-how__step::before {
	content: '';
	display: block;
	width: 10px; height: 10px;
	background: var(--gp-accent-alt);
	border-radius: 50%;
	margin-top: -24px;
	margin-bottom: 14px;
}

/* FAQ: force left alignment against theme centering */
.gp-faq__content { text-align: left; }
.gp-faq .gp-faq__q { text-align: left !important; justify-content: space-between !important; }
.gp-faq__content h2 { text-align: left; }
.gp-faq__a p { text-align: left; }

/* Offer banner: keep chips right, stop wrap collapse */
.gp-offer__main { flex: 1 1 380px; min-width: 0; }
.gp-offer__chips { flex: 0 0 auto; align-self: center; }

/* ============================================================
   Single product page (gp-product-layout)
   ============================================================ */
body.gp-product-layout div.product { font-family: var(--gp-font); }

/* Gallery + summary balance */
body.gp-product-layout div.product div.images { width: 46% !important; }
body.gp-product-layout div.product div.summary { width: 50% !important; }
body.gp-product-layout div.product div.images img { border-radius: var(--gp-radius); background: var(--gp-surface); }

/* Top labels */
.gp-pp-toplabels { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; }
.gp-card-badge--inline { position: static; }
.gp-pp-catchip {
	background: var(--gp-accent-alt);
	color: var(--gp-dark);
	font-size: 11px; font-weight: 700;
	letter-spacing: .6px; text-transform: uppercase;
	padding: 5px 10px; border-radius: 4px;
}

body.gp-product-layout .product_title { font-size: clamp(26px, 3vw, 36px); font-weight: 600; margin-bottom: 6px; }
body.gp-product-layout div.product p.price { font-size: 26px; font-weight: 600; color: var(--gp-dark); }

/* Promo strip */
.gp-pp-promo {
	background: #fff7e6;
	border: 1px solid #f0dbb0;
	color: #7a5b13;
	border-radius: var(--gp-btn-radius);
	display: inline-block;
	padding: 9px 18px;
	font-size: 13px; font-weight: 600;
	margin: 6px 0 14px;
}
.gp-pp-promo__code { background: var(--gp-dark); color: #fff; border-radius: 4px; padding: 2px 8px; margin-left: 4px; }

/* Spec rows */
.gp-pp-specs { border-top: 1px solid var(--gp-border); margin: 14px 0 18px; }
.gp-pp-specs__row { display: flex; align-items: center; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--gp-border); }
.gp-pp-specs__pill {
	background: var(--gp-dark); color: #fff;
	font-size: 10px; font-weight: 700; letter-spacing: .8px;
	padding: 5px 12px; border-radius: var(--gp-btn-radius);
	min-width: 84px; text-align: center;
}
.gp-pp-specs__val { font-size: 14px; color: var(--gp-dark); }

/* COA buttons */
.gp-pp-coas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 6px 0 14px; }
.gp-pp-coa {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 13px 16px;
	font-size: 14px; font-weight: 600;
	color: var(--gp-dark);
	text-decoration: none;
	background: var(--gp-light);
	transition: border-color .2s ease;
}
.gp-pp-coa:hover { border-color: var(--gp-dark); color: var(--gp-dark); }

/* Notice box */
.gp-pp-notice {
	background: #fffbea;
	border: 1px solid #f2e2ad;
	border-radius: var(--gp-radius);
	padding: 16px 18px;
	display: flex; gap: 12px;
	margin: 0 0 18px;
}
.gp-pp-notice__ico {
	background: var(--gp-accent-alt);
	color: var(--gp-dark);
	width: 24px; height: 24px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; flex: 0 0 24px; font-size: 13px;
}
.gp-pp-notice strong { display: block; font-size: 14px; margin-bottom: 4px; color: var(--gp-dark); }
.gp-pp-notice p { font-size: 13px; color: #6b5d2a; margin: 0; line-height: 1.6; }

/* Add to cart: green, full width, pill */
body.gp-product-layout form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
body.gp-product-layout form.cart .quantity { background: var(--gp-surface); border-radius: var(--gp-btn-radius); padding: 4px 8px; }
body.gp-product-layout form.cart .quantity .qty { border: 0 !important; background: transparent; width: 52px; text-align: center; }
body.gp-product-layout .single_add_to_cart_button {
	flex: 1 1 auto;
	background: var(--gp-accent-alt) !important;
	color: var(--gp-dark) !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 16px 24px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	text-align: center;
}
body.gp-product-layout .single_add_to_cart_button:hover { opacity: .88; }

/* Trust chips */
.gp-pp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; }
.gp-pp-chip {
	background: var(--gp-dark); color: #fff;
	font-size: 12px; font-weight: 600;
	padding: 7px 14px; border-radius: var(--gp-btn-radius);
}

/* Delivery box */
.gp-pp-delivery {
	background: var(--gp-dark); color: #fff;
	border-radius: var(--gp-radius);
	padding: 14px 18px;
	margin: 16px 0 0;
	border-left: 4px solid var(--gp-accent-alt);
}
.gp-pp-delivery p { margin: 4px 0; font-size: 13px; color: rgba(255,255,255,.9); }

/* Payment badges */
.gp-pp-pay {
	background: var(--gp-surface);
	border-radius: var(--gp-radius);
	padding: 16px 18px;
	margin: 16px 0 0;
	text-align: center;
}
.gp-pp-pay__title { display: block; font-size: 13px; font-weight: 600; color: var(--gp-dark); margin-bottom: 10px; }
.gp-pp-pay__icons { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }

/* Tabs cleanup */
body.gp-product-layout .woocommerce-tabs { margin-top: 40px; }

@media (max-width: 768px) {
	body.gp-product-layout div.product div.images,
	body.gp-product-layout div.product div.summary { width: 100% !important; float: none !important; }
	.gp-pp-coas { grid-template-columns: 1fr; }
}

/* ============================================================
   v1.6 — Cart drawer + checkout bump/upsells
   ============================================================ */

/* Overlay + panel */
.gp-drawer-overlay {
	position: fixed; inset: 0;
	background: rgba(0,0,0,.45);
	opacity: 0; visibility: hidden;
	transition: opacity .25s ease;
	z-index: 9998;
}
.gp-drawer-overlay.gp-open { opacity: 1; visibility: visible; }
.gp-drawer {
	position: fixed; top: 0; right: 0; bottom: 0;
	width: 420px; max-width: 92vw;
	background: var(--gp-light);
	z-index: 9999;
	transform: translateX(100%);
	transition: transform .3s ease;
	display: flex; flex-direction: column;
	font-family: var(--gp-font);
	box-shadow: -18px 0 44px rgba(0,0,0,.14);
}
.gp-drawer.gp-open { transform: translateX(0); }
.gp-drawer.gp-busy { opacity: .6; pointer-events: none; }

.gp-drawer__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 18px 22px;
	border-bottom: 1px solid var(--gp-border);
}
.gp-drawer__head h3 { font-size: 20px; font-weight: 600; margin: 0; color: var(--gp-dark); }
.gp-drawer__close {
	background: none; border: 0; cursor: pointer;
	font-size: 26px; line-height: 1; color: var(--gp-dark); padding: 4px;
}

#gp-drawer-body { flex: 1; overflow-y: auto; padding: 18px 22px; }
#gp-drawer-body .gp-ship-progress { background: var(--gp-surface); border-radius: var(--gp-radius); padding: 14px; }
.gp-drawer__empty { color: var(--gp-muted); text-align: center; padding: 40px 0; }

.gp-drawer__item {
	display: grid;
	grid-template-columns: 72px 1fr auto;
	gap: 14px;
	align-items: start;
	padding: 16px 0;
	border-bottom: 1px solid var(--gp-border);
}
.gp-drawer__thumb img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; background: var(--gp-surface); }
.gp-drawer__name { font-weight: 600; color: var(--gp-dark); text-decoration: none; font-size: 15px; display: block; }
.gp-drawer__price { color: var(--gp-dark); font-size: 14px; display: block; margin: 4px 0 8px; }
.gp-drawer__qty {
	display: inline-flex; align-items: center; gap: 2px;
	background: var(--gp-surface); border-radius: 8px; padding: 2px;
}
.gp-drawer__qtybtn {
	width: 30px; height: 30px; border: 0; background: transparent;
	cursor: pointer; font-size: 15px; color: var(--gp-dark); border-radius: 6px;
}
.gp-drawer__qtybtn:hover { background: var(--gp-light); }
.gp-drawer__qtyval { min-width: 26px; text-align: center; font-size: 14px; }
.gp-drawer__remove { background: none; border: 0; cursor: pointer; font-size: 15px; color: var(--gp-muted); padding: 2px; }
.gp-drawer__remove:hover { color: var(--gp-badge); }

.gp-drawer__upsells { margin-top: 22px; }
.gp-drawer__upsells h4 { font-size: 16px; font-weight: 600; margin: 0 0 14px; color: var(--gp-dark); }
.gp-drawer__upsell-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.gp-drawer__upsell { text-align: center; }
.gp-drawer__upsell img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 8px; background: var(--gp-surface); }
.gp-drawer__upsell-name { display: block; font-size: 12px; font-weight: 600; color: var(--gp-dark); margin: 8px 0 2px; }
.gp-drawer__upsell-price { display: block; font-size: 12px; color: var(--gp-muted); margin-bottom: 8px; }
.gp-drawer__upsell-price del { margin-right: 4px; }
.gp-drawer__upsell-btn { padding: 8px 0 !important; width: 100%; font-size: 12px !important; }

#gp-drawer-foot {
	border-top: 1px solid var(--gp-border);
	padding: 18px 22px;
	background: var(--gp-surface);
}
.gp-drawer__subtotal {
	display: flex; justify-content: space-between; align-items: center;
	font-size: 17px; margin-bottom: 14px; color: var(--gp-dark);
}
.gp-drawer__btn { display: block; width: 100%; text-align: center; margin-bottom: 10px; box-sizing: border-box; }
#gp-drawer-foot .gp-drawer__btn:last-child { margin-bottom: 0; }

/* ---------- Checkout summary items ---------- */
.gp-co-item { display: inline-flex; align-items: center; gap: 12px; }
.gp-co-item img.gp-co-thumb, .gp-co-item img {
	width: 54px; height: 54px; object-fit: cover;
	border-radius: 8px; background: var(--gp-surface);
	border: 1px solid var(--gp-border);
}
.gp-co-item__name { font-size: 14px; font-weight: 500; color: var(--gp-dark); }

/* ---------- Order bump ---------- */
.gp-bump {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	background: var(--gp-light);
	margin-bottom: 20px;
	overflow: hidden;
}
.gp-bump__head {
	display: flex; align-items: center; gap: 10px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--gp-border);
	cursor: pointer;
	font-size: 15px;
	color: var(--gp-dark);
}
.gp-bump__head input { width: 18px; height: 18px; accent-color: var(--gp-accent-alt); }
.gp-bump__body { display: flex; gap: 14px; padding: 16px 18px; align-items: center; }
.gp-bump__body img { width: 76px; height: 76px; object-fit: cover; border-radius: 8px; background: var(--gp-surface); }
.gp-bump__body p { margin: 0 0 6px; font-size: 14px; color: var(--gp-muted); }
.gp-bump__price del { color: var(--gp-muted); margin-right: 8px; }
.gp-bump__price strong { color: var(--gp-dark); font-size: 16px; }

/* ---------- Checkout upsells ---------- */
.gp-co-upsells { margin-top: 22px; }
.gp-co-upsells__title {
	font-size: 12px; font-weight: 700; letter-spacing: 1.4px;
	color: var(--gp-dark);
	border-left: 3px solid var(--gp-accent-alt);
	padding-left: 10px;
	margin: 0 0 14px;
}
.gp-co-upsell {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 14px; align-items: center;
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 12px 14px;
	margin-bottom: 12px;
}
.gp-co-upsell img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; background: var(--gp-surface); }
.gp-co-upsell__info strong { display: block; font-size: 14px; color: var(--gp-dark); margin-bottom: 4px; }
.gp-co-upsell__price del { color: var(--gp-muted); font-size: 13px; margin-right: 6px; }
.gp-co-upsell__price em { font-style: normal; color: var(--gp-accent-alt); font-weight: 700; font-size: 15px; filter: brightness(.8); }
.gp-co-upsell__add {
	background: var(--gp-accent-alt);
	color: var(--gp-dark);
	border: 0; cursor: pointer;
	font-size: 12px; font-weight: 700; letter-spacing: .4px;
	padding: 12px 16px;
	border-radius: 8px;
	transition: opacity .2s ease;
	font-family: var(--gp-font);
}
.gp-co-upsell__add:hover { opacity: .85; }
.gp-co-upsell__add:disabled { opacity: .6; cursor: default; }

@media (max-width: 520px) {
	.gp-drawer { width: 100vw; max-width: 100vw; }
	.gp-drawer__upsell-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
}

/* ============================================================
   v1.6.2 — layout placement fixes, button hardening, mobile
   (appended last so these override earlier rules)
   ============================================================ */

/* ---------- Hide duplicate theme page titles on cart/checkout ---------- */
body.gp-cart-layout h1.entry-title,
body.gp-cart-layout .page-title,
body.gp-cart-layout .entry-header,
body.gp-checkout-layout h1.entry-title,
body.gp-checkout-layout .page-title,
body.gp-checkout-layout .entry-header { display: none !important; }

/* ---------- CART: corrected explicit grid placement ---------- */
body.gp-cart-layout .woocommerce {
	display: grid !important;
	grid-template-columns: 1.6fr 1fr;
	grid-auto-rows: auto;
	gap: 0 36px;
	align-items: start;
}
body.gp-cart-layout .gp-cart-head { grid-column: 1 / -1; grid-row: 1; }
body.gp-cart-layout .woocommerce-notices-wrapper { grid-column: 1 / -1; grid-row: 2; }
body.gp-cart-layout form.woocommerce-cart-form { grid-column: 1; grid-row: 3; }
body.gp-cart-layout .cart-collaterals {
	grid-column: 2;
	grid-row: 3 / span 2;
	margin-top: 0;
}
body.gp-cart-layout .cross-sells { grid-column: 1; grid-row: 4; margin-top: 10px; }
body.gp-cart-layout .woocommerce > *:not(.gp-cart-head):not(.woocommerce-notices-wrapper):not(.woocommerce-cart-form):not(.cart-collaterals):not(.cross-sells) {
	grid-column: 1 / -1;
}

/* ---------- CHECKOUT: corrected explicit grid placement ---------- */
body.gp-checkout-layout form.checkout {
	display: grid !important;
	grid-template-columns: 1.4fr 1fr;
	gap: 0 40px;
	align-items: start;
}
body.gp-checkout-layout #customer_details { grid-column: 1; grid-row: 1 / span 6; }
body.gp-checkout-layout #order_review_heading {
	grid-column: 2; grid-row: 1;
	align-self: start !important;
	margin: 0 0 14px;
}
body.gp-checkout-layout .gp-bump { grid-column: 2; grid-row: 2; }
body.gp-checkout-layout #order_review { grid-column: 2; grid-row: 3; position: static !important; }
body.gp-checkout-layout .gp-co-upsells { grid-column: 2; grid-row: 4; }

/* ---------- Buttons: hard reset against theme styles ---------- */
.gp-qty-btn,
.gp-drawer__qtybtn,
.gp-drawer__remove,
.gp-drawer__close,
.gp-headerbar__icon,
.gp-headerbar__burger {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	color: var(--gp-dark) !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-family: var(--gp-font) !important;
}
.gp-qty-btn { width: 32px !important; height: 32px !important; font-size: 16px !important; border-radius: 50% !important; }
.gp-qty-btn:hover { background: var(--gp-light) !important; }
.gp-drawer__qtybtn { width: 32px !important; height: 32px !important; font-size: 15px !important; border-radius: 8px !important; }
.gp-drawer__qtybtn:hover { background: var(--gp-light) !important; }
.gp-drawer__remove { font-size: 16px !important; color: var(--gp-muted) !important; }
.gp-drawer__remove:hover { color: var(--gp-badge) !important; }
.gp-drawer__close { font-size: 26px !important; line-height: 1 !important; }

body.gp-cart-layout td.product-remove a.remove {
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	font-size: 14px !important;
	width: auto !important; height: auto !important;
}

/* GP buttons: enforce palette over theme button/link styles */
.gp-btn { text-decoration: none !important; box-shadow: none !important; text-transform: none !important; }
.gp-btn--primary, button.gp-btn--primary { background: var(--gp-accent) !important; color: var(--gp-light) !important; border: 2px solid transparent !important; }
.gp-btn--alt, button.gp-btn--alt { background: var(--gp-accent-alt) !important; color: var(--gp-dark) !important; border: 2px solid transparent !important; }
.gp-btn--outline, button.gp-btn--outline { background: transparent !important; color: var(--gp-dark) !important; border: 2px solid var(--gp-dark) !important; }
.gp-btn--outline:hover { background: var(--gp-dark) !important; color: var(--gp-light) !important; }
.gp-btn--light, button.gp-btn--light { background: var(--gp-light) !important; color: var(--gp-dark) !important; border: 2px solid transparent !important; }
.gp-btn--outline-light, button.gp-btn--outline-light { background: transparent !important; color: var(--gp-accent-alt) !important; border: 2px solid var(--gp-accent-alt) !important; }

/* Cart page quantity pill: keep buttons flush inside */
body.gp-cart-layout .quantity { border: 1px solid var(--gp-border); }
body.gp-cart-layout .quantity .qty { color: var(--gp-dark) !important; }

/* Drawer upsell links: neutralize theme link color */
.gp-drawer a, .gp-drawer a:hover { text-decoration: none; }
.gp-drawer__name, .gp-drawer__upsell-name { color: var(--gp-dark) !important; }

/* ---------- Mobile: 100% responsive pass ---------- */
@media (max-width: 900px) {
	/* Cart: single column, natural order */
	body.gp-cart-layout .woocommerce { display: block !important; padding: 0 16px 40px; }
	body.gp-cart-layout .cart-collaterals { margin-top: 24px; padding: 20px; }
	body.gp-cart-layout .cross-sells { margin-top: 24px; }

	/* Checkout: single column, summary after form */
	body.gp-checkout-layout form.checkout { display: block !important; }
	body.gp-checkout-layout #order_review_heading { margin-top: 26px; }
	body.gp-checkout-layout .gp-bump { margin-top: 14px; }
}

@media (max-width: 768px) {
	/* Stacked cart table rows */
	body.gp-cart-layout table.shop_table.cart thead { display: none; }
	body.gp-cart-layout table.shop_table.cart tr {
		display: block;
		border-bottom: 1px solid var(--gp-border);
		padding: 14px 0;
	}
	body.gp-cart-layout table.shop_table.cart td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		border: 0 !important;
		padding: 6px 0;
		text-align: right;
	}
	body.gp-cart-layout table.shop_table.cart td::before {
		content: attr(data-title);
		font-weight: 600;
		color: var(--gp-dark);
		text-align: left;
		margin-right: auto;
	}
	body.gp-cart-layout table.shop_table.cart td.product-thumbnail { justify-content: center; }
	body.gp-cart-layout table.shop_table.cart td.product-thumbnail::before,
	body.gp-cart-layout table.shop_table.cart td.product-remove::before { content: none; }
	body.gp-cart-layout table.shop_table.cart td.actions { display: block; }
	body.gp-cart-layout .coupon { flex-direction: column; align-items: stretch; }
	body.gp-cart-layout .coupon .input-text { width: 100% !important; box-sizing: border-box; }

	/* Checkout summary items wrap nicely */
	.gp-co-item { gap: 8px; }
	.gp-co-item img { width: 44px; height: 44px; }

	/* Product page chips/boxes breathing room */
	.gp-pp-chips { gap: 6px; }
	.gp-pp-chip { font-size: 11px; padding: 6px 10px; }
}

@media (max-width: 480px) {
	.gp-cart-head h1 { font-size: 26px; }
	.gp-drawer__upsell-grid { grid-template-columns: repeat(2, 1fr); }
	.gp-hero__title { font-size: 30px; }
	.gp-offer { padding: 28px 18px; }
	body.gp-checkout-layout #order_review { padding: 18px; }
}

/* ============================================================
   v1.6.3 — coupon text fix + deeper mobile polish
   ============================================================ */

/* Apply coupon / Woo buttons: enforce readable text over theme colors */
body.gp-cart-layout .coupon button,
body.gp-cart-layout .coupon button.button,
body.gp-cart-layout button[name="apply_coupon"] {
	color: #ffffff !important;
	background: var(--gp-dark) !important;
	border: 0 !important;
	opacity: 1 !important;
	font-weight: 600 !important;
}
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order {
	color: #ffffff !important;
}
body.gp-product-layout .single_add_to_cart_button { color: var(--gp-dark) !important; }
body.gp-cart-layout .cross-sells li.product .button { color: var(--gp-dark) !important; }
.gp-co-upsell__add { color: var(--gp-dark) !important; }

/* ---------- Mobile: deeper pass ---------- */
@media (max-width: 768px) {
	/* Prevent iOS zoom on focus */
	input[type="text"], input[type="email"], input[type="tel"],
	input[type="number"], textarea, select, .qty { font-size: 16px !important; }

	/* Single product: stack qty + full-width add to cart */
	body.gp-product-layout form.cart { flex-direction: row; }
	body.gp-product-layout .single_add_to_cart_button { flex: 1 1 100%; order: 2; }
	body.gp-product-layout form.cart .quantity { order: 1; }
	.gp-pp-toplabels { gap: 6px; }
	.gp-pp-specs__row { gap: 10px; }
	.gp-pp-coas { grid-template-columns: 1fr; }
	.gp-pp-delivery, .gp-pp-pay, .gp-pp-notice { padding: 12px 14px; }

	/* Announcement + USP strips */
	.gp-announce { font-size: 11px; padding: 8px 12px; }
	.gp-usp { gap: 10px; padding: 12px 16px; }
	.gp-usp__item { font-size: 11px; }
	.gp-usp__dot { display: none; }

	/* Checkout fields and summary full width */
	body.gp-checkout-layout form .form-row { width: 100% !important; float: none !important; }
	body.gp-checkout-layout #order_review { padding: 18px 14px; }
	.gp-bump__body { flex-direction: row; }
	.gp-co-upsell { grid-template-columns: 52px 1fr auto; gap: 10px; padding: 10px; }
	.gp-co-upsell img { width: 52px; height: 52px; }
	.gp-co-upsell__add { padding: 10px 12px; font-size: 11px; }

	/* Footer bottom bar stacks */
	.gp-footerlight__bottom { flex-direction: column; text-align: center; }
	.gp-footerlight__pay { justify-content: center; }

	/* Testimonials / features / steps spacing */
	.gp-feature, .gp-testi, .gp-how { padding: 40px 18px; }
	.gp-faq { padding: 40px 18px; gap: 26px; }
}

@media (max-width: 380px) {
	.gp-drawer__item { grid-template-columns: 60px 1fr auto; gap: 10px; }
	.gp-drawer__thumb img { width: 60px; height: 60px; }
	#gp-drawer-body, #gp-drawer-foot, .gp-drawer__head { padding-left: 14px; padding-right: 14px; }
}

/* ============================================================
   v1.7 — category link, Show More, accordion, brand badges
   ============================================================ */

/* Category link above title */
.gp-pp-toplabels { flex-wrap: wrap; }
.gp-pp-catlink {
	display: block;
	width: 100%;
	order: 2;
	font-size: 15px;
	color: var(--gp-dark) !important;
	text-decoration: none !important;
	margin: 2px 0;
}
.gp-pp-catlink:hover { color: var(--gp-accent-alt) !important; }
.gp-card-badge--inline { order: 1; }
.gp-pp-catchip { order: 3; }

/* Short description clamp + toggle */
.woocommerce-product-details__short-description.gp-clamped {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.gp-showmore {
	display: inline-block;
	margin: 4px 0 14px;
	font-family: var(--gp-font);
	font-size: 14px;
	font-weight: 600;
	color: var(--gp-dark) !important;
	text-decoration: underline !important;
}

/* Accordion tabs */
body.gp-product-layout .woocommerce-tabs { max-width: 100%; }
body.gp-product-layout .woocommerce-tabs .panel { margin: 0 !important; padding: 0 0 22px !important; box-shadow: none !important; border: 0 !important; }
.gp-acc__head {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	background: transparent !important;
	border: 0 !important;
	border-top: 1px solid var(--gp-border) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 20px 4px !important;
	cursor: pointer;
	font-family: var(--gp-font) !important;
	font-size: 20px !important;
	font-weight: 600 !important;
	color: var(--gp-dark) !important;
	text-align: left !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.gp-acc__head:hover { color: var(--gp-accent-alt) !important; background: transparent !important; }
.gp-acc__icon { font-size: 22px; font-weight: 400; color: var(--gp-muted); }
.gp-acc__head.gp-open .gp-acc__icon { color: var(--gp-dark); }
.gp-acc__panel { font-family: var(--gp-font); color: var(--gp-muted); font-size: 15px; line-height: 1.7; }
body.gp-product-layout .woocommerce-tabs::after { content: ''; display: block; border-top: 1px solid var(--gp-border); }

/* Brand payment badges: text chips in brand-inspired colors */
.gp-paybadge {
	display: inline-block;
	font-family: var(--gp-font);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .3px;
	padding: 6px 12px;
	border-radius: 5px;
	margin: 2px;
	line-height: 1;
}
.gp-paybadge--amex   { background: #2e77bc; color: #fff; }
.gp-paybadge--klarna { background: #ffb3c7; color: #17120f; }
.gp-paybadge--mc     { background: #1a1a1a; color: #ff9f00; }
.gp-paybadge--visa   { background: #1a1f71; color: #fff; font-style: italic; }
.gp-paybadge--paypal { background: #253b80; color: #fff; }

.gp-pp-pay__icons, .gp-cart-info__pay { display: flex; flex-wrap: wrap; gap: 4px; justify-content: center; }
.gp-cart-info__pay { justify-content: flex-start; }

@media (max-width: 768px) {
	.gp-acc__head { font-size: 17px !important; padding: 16px 2px !important; }
}

/* Payment badges image (replaces text chips when configured) */
.gp-pay-image {
	max-width: 100%;
	height: auto;
	max-height: 42px;
	width: auto;
	display: inline-block;
}
.gp-pp-pay .gp-pay-image { margin: 0 auto; }

/* ============================================================
   v1.7.2 — meta line removed, tabs relocated into summary column
   ============================================================ */

/* Tabs now render inside div.summary (right column) — constrain width,
   remove any leftover full-width assumptions. */
body.gp-product-layout div.summary .woocommerce-tabs {
	width: 100%;
	margin-top: 8px;
}
body.gp-product-layout div.product div.images + div.summary { overflow: visible; }

@media (max-width: 768px) {
	body.gp-product-layout div.summary .woocommerce-tabs { margin-top: 4px; }
}

/* ============================================================
   v1.7.3 — accordion closed-state hardening, layout clearfix,
   Related/Upsells restyled to match homepage product cards
   ============================================================ */

/* Force-closed by default, immune to theme !important panel rules.
   Opened only via the .gp-panel-open class the JS toggles. */
body.gp-product-layout .woocommerce-tabs .panel.gp-acc__panel {
	display: none !important;
}
body.gp-product-layout .woocommerce-tabs .panel.gp-acc__panel.gp-panel-open {
	display: block !important;
}

/* ---------- Clearfix: stop floated image/summary columns from ---------- */
/* swallowing "Related products" / "You may also like" into the gap    */
body.gp-product-layout div.product::after {
	content: '';
	display: table;
	clear: both;
}
body.gp-product-layout .related.products,
body.gp-product-layout .upsells.products,
body.gp-product-layout .woocommerce-tabs {
	clear: both !important;
	float: none !important;
	width: 100% !important;
}
body.gp-product-layout .related.products,
body.gp-product-layout .upsells.products {
	margin-top: 50px;
}

/* ---------- Related / Upsells: match homepage product-card scheme ---------- */
body.gp-product-layout .related.products > h2,
body.gp-product-layout .upsells.products > h2 {
	font-family: var(--gp-font);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 600;
	color: var(--gp-dark);
	text-align: center;
	margin: 0 0 30px;
}
body.gp-product-layout .related.products ul.products,
body.gp-product-layout .upsells.products ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin: 0 !important;
	padding: 0 !important;
}
body.gp-product-layout .related.products ul.products li.product,
body.gp-product-layout .upsells.products ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	padding: 16px !important;
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	text-align: center;
	transition: box-shadow .2s ease, transform .2s ease;
	font-family: var(--gp-font);
}
body.gp-product-layout .related.products ul.products li.product:hover,
body.gp-product-layout .upsells.products ul.products li.product:hover {
	box-shadow: 0 14px 34px rgba(0,0,0,.09);
	transform: translateY(-3px);
}
body.gp-product-layout .related.products ul.products li.product img,
body.gp-product-layout .upsells.products ul.products li.product img {
	width: 100% !important;
	height: auto;
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: calc(var(--gp-radius) - 4px);
	margin: 0 0 14px !important;
}
body.gp-product-layout .related.products ul.products li.product .woocommerce-loop-product__title,
body.gp-product-layout .upsells.products ul.products li.product .woocommerce-loop-product__title {
	font-size: 16px;
	font-weight: 600;
	color: var(--gp-dark);
	padding: 0;
	margin: 0 0 6px;
}
body.gp-product-layout .related.products ul.products li.product .price,
body.gp-product-layout .upsells.products ul.products li.product .price {
	font-size: 16px;
	font-weight: 600;
	color: var(--gp-dark);
	margin-bottom: 14px;
	display: block;
}
body.gp-product-layout .related.products ul.products li.product .button,
body.gp-product-layout .upsells.products ul.products li.product .button {
	background: var(--gp-accent) !important;
	color: #ffffff !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 11px 18px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	width: 100%;
	opacity: 1 !important;
	border: 0 !important;
}
body.gp-product-layout .related.products ul.products li.product .button:hover,
body.gp-product-layout .upsells.products ul.products li.product .button:hover {
	opacity: .85 !important;
}
body.gp-product-layout .related.products ul.products li.product .onsale,
body.gp-product-layout .upsells.products ul.products li.product .onsale {
	background: var(--gp-badge);
	border-radius: var(--gp-btn-radius);
	min-height: auto; min-width: auto;
	padding: 6px 12px;
	font-weight: 600;
	top: 12px; left: 12px; right: auto;
}

@media (max-width: 1024px) {
	body.gp-product-layout .related.products ul.products,
	body.gp-product-layout .upsells.products ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	body.gp-product-layout .related.products ul.products,
	body.gp-product-layout .upsells.products ul.products { grid-template-columns: 1fr; }
}

/* ============================================================
   v1.7.4 — kill sticky product gallery, harden related/upsell grid
   ============================================================ */

/* (v1.7.5) sticky handling moved to controlled flex layout below */

/* Neutralize any leftover carousel wrapper sizing so the grid renders
   as a normal static layout rather than a slide track. */
body.gp-product-layout .related.products .owl-stage,
body.gp-product-layout .related.products .owl-stage-outer,
body.gp-product-layout .related.products .slick-track,
body.gp-product-layout .related.products .slick-list,
body.gp-product-layout .related.products .swiper-wrapper,
body.gp-product-layout .upsells.products .owl-stage,
body.gp-product-layout .upsells.products .owl-stage-outer,
body.gp-product-layout .upsells.products .slick-track,
body.gp-product-layout .upsells.products .slick-list,
body.gp-product-layout .upsells.products .swiper-wrapper {
	display: block !important;
	width: 100% !important;
	transform: none !important;
}
body.gp-product-layout .related.products .owl-nav,
body.gp-product-layout .related.products .owl-dots,
body.gp-product-layout .related.products .slick-arrow,
body.gp-product-layout .related.products .slick-dots,
body.gp-product-layout .upsells.products .owl-nav,
body.gp-product-layout .upsells.products .owl-dots,
body.gp-product-layout .upsells.products .slick-arrow,
body.gp-product-layout .upsells.products .slick-dots {
	display: none !important;
}

/* Hide clone/duplicate slides outright as an extra safety net */
body.gp-product-layout .related.products li.product.cloned,
body.gp-product-layout .related.products li.product[aria-hidden="true"],
body.gp-product-layout .upsells.products li.product.cloned,
body.gp-product-layout .upsells.products li.product[aria-hidden="true"] {
	display: none !important;
}

/* Force every real card back to normal static flow inside the grid */
body.gp-product-layout .related.products ul.products li.product,
body.gp-product-layout .upsells.products ul.products li.product {
	position: static !important;
	left: auto !important;
	transform: none !important;
	opacity: 1 !important;
	visibility: visible !important;
}

/* ============================================================
   v1.7.5 — flex product layout with controlled sticky gallery,
   pseudo-element grid-cell fix for product grids
   ============================================================ */

/* WooCommerce puts clearfix ::before/::after on ul.products —
   under CSS grid those pseudo-elements become invisible grid items
   that eat the first cell. Remove them wherever we use grid. */
body.gp-product-layout .related.products ul.products::before,
body.gp-product-layout .related.products ul.products::after,
body.gp-product-layout .upsells.products ul.products::before,
body.gp-product-layout .upsells.products ul.products::after,
body.gp-cart-layout .cross-sells ul.products::before,
body.gp-cart-layout .cross-sells ul.products::after {
	content: none !important;
	display: none !important;
}

/* Product columns: JS wraps gallery + summary in .gp-product-cols.
   Sticky is bounded by that wrapper, so the image pins ONLY while the
   summary scrolls and can never slide over Related Products below
   (Woo renders Related inside the same div.product, which is why a
   sticky bounded by div.product itself was overlapping it). */
body.gp-product-layout div.product {
	display: block !important;
	overflow: visible !important;
}
@media (min-width: 901px) {
	body.gp-product-layout .gp-product-cols {
		display: flex;
		flex-wrap: nowrap;
		align-items: flex-start;
		gap: 4%;
	}
	body.gp-product-layout .gp-product-cols > div.images {
		float: none !important;
		width: 46% !important;
		margin: 0 !important;
		position: -webkit-sticky !important;
		position: sticky !important;
		top: 110px;
		align-self: flex-start;
	}
	body.gp-product-layout .gp-product-cols > div.summary {
		float: none !important;
		width: 50% !important;
		margin: 0 !important;
	}
}

/* Gallery can never exceed its column, whatever the slider script set */
body.gp-product-layout div.images,
body.gp-product-layout .woocommerce-product-gallery {
	max-width: 100% !important;
	box-sizing: border-box;
}
body.gp-product-layout div.images img {
	max-width: 100% !important;
	height: auto !important;
}
body.gp-product-layout .flex-viewport { overflow: hidden !important; }
body.gp-product-layout .flex-control-thumbs { margin: 10px 0 0 !important; overflow: hidden; }
body.gp-product-layout .flex-control-thumbs img { max-width: 100%; }

@media (max-width: 900px) {
	body.gp-product-layout .gp-product-cols { display: block; }
	body.gp-product-layout .gp-product-cols > div.images,
	body.gp-product-layout .gp-product-cols > div.summary {
		width: 100% !important;
		position: static !important;
	}
}

/* Sticky needs no overflow-clipping ancestors */
body.gp-product-layout { overflow: visible !important; }

/* Gallery internals restored to Woo defaults (absolute layers work again);
   just keep the container tidy. */
body.gp-product-layout .woocommerce-product-gallery { margin-bottom: 0 !important; }

@media (max-width: 900px) {
	body.gp-product-layout div.product div.images {
		position: static !important;
		width: 100% !important;
	}
}

/* ============================================================
   v1.8 — Shop/category archive: hardened card + button styling
   (same washed-out button bug as Related Products — theme colors
   were beating our base rules, so these carry !important + higher
   specificity, same treatment we gave Related/Upsells.)
   ============================================================ */

.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none !important;
	display: none !important;
}
.woocommerce ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	padding: 16px !important;
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	text-align: center;
	font-family: var(--gp-font);
	position: relative;
	transition: box-shadow .2s ease, transform .2s ease;
}
.woocommerce ul.products li.product:hover {
	box-shadow: 0 14px 34px rgba(0,0,0,.09);
	transform: translateY(-3px);
}
.woocommerce ul.products li.product a img {
	width: 100% !important;
	height: auto;
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: calc(var(--gp-radius) - 4px) !important;
	margin: 0 0 14px !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 16px;
	font-weight: 600;
	color: var(--gp-dark);
	padding: 0 !important;
	margin: 0 0 6px !important;
}
.woocommerce ul.products li.product .price {
	font-size: 16px;
	font-weight: 600;
	color: var(--gp-dark) !important;
	margin: 0 0 14px !important;
	display: block;
}
.woocommerce ul.products li.product .price del { color: var(--gp-muted) !important; opacity: .7; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* The actual bug: theme was setting a washed-out/disabled-looking button
   color that beat our earlier non-!important rule. Force it here. */
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.ajax_add_to_cart {
	background: var(--gp-accent) !important;
	color: #ffffff !important;
	border: 0 !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 11px 18px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	width: 100%;
	opacity: 1 !important;
	box-shadow: none !important;
	margin: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.woocommerce ul.products li.product a.button:hover,
.woocommerce ul.products li.product a.add_to_cart_button:hover {
	opacity: .85 !important;
}
.woocommerce ul.products li.product a.button.loading::after {
	border-top-color: #ffffff !important;
}

/* Sale/on-sale badge, positioned like the homepage grid badges */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	background: var(--gp-badge) !important;
	color: #fff !important;
	border-radius: var(--gp-btn-radius) !important;
	min-height: auto !important;
	min-width: auto !important;
	padding: 6px 12px !important;
	font-weight: 600 !important;
	font-size: 11px !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	position: absolute !important;
}

/* Shop page heading + result count + sorting bar */
.woocommerce-products-header,
.woocommerce-result-count,
.woocommerce-ordering {
	font-family: var(--gp-font);
}
.woocommerce-products-header__title.page-title {
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 600;
	color: var(--gp-dark);
	margin: 30px 0 6px;
}
.woocommerce-result-count { color: var(--gp-muted); font-size: 14px; }
.woocommerce-ordering select {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 12px 16px;
	font-family: var(--gp-font);
	background: var(--gp-light);
	color: var(--gp-dark);
}
nav.woocommerce-pagination ul { border: 0 !important; }
nav.woocommerce-pagination ul li { border: 0 !important; }
nav.woocommerce-pagination ul li a,
nav.woocommerce-pagination ul li span {
	border-radius: 8px !important;
	border: 1px solid var(--gp-border) !important;
	margin: 0 4px;
	color: var(--gp-dark) !important;
}
nav.woocommerce-pagination ul li span.current {
	background: var(--gp-dark) !important;
	color: #fff !important;
	border-color: var(--gp-dark) !important;
}

/* ---------- Responsive columns ---------- */
@media (max-width: 1024px) {
	.woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.woocommerce ul.products li.product { padding: 12px !important; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 14px; }
	.woocommerce ul.products li.product .price { font-size: 14px; }
	.woocommerce ul.products li.product a.button { font-size: 13px !important; padding: 10px 14px !important; }
	.woocommerce-ordering, .woocommerce-result-count { display: inline-block; }
}
@media (max-width: 480px) {
	.woocommerce ul.products { grid-template-columns: 1fr; }
}

/* ============================================================
   About / Story widget
   ============================================================ */
.gp-story {
	display: flex;
	align-items: center;
	gap: 60px;
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 60px 24px;
	font-family: var(--gp-font);
}
.gp-story--reverse { flex-direction: row-reverse; }
.gp-story__media { flex: 1 1 42%; }
.gp-story__media img {
	width: 100%;
	height: auto;
	border-radius: var(--gp-radius);
	display: block;
	object-fit: cover;
}
.gp-story__content { flex: 1 1 54%; }
.gp-story__eyebrow {
	display: block;
	color: var(--gp-accent-alt);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	margin-bottom: 14px;
}
.gp-story__title {
	font-size: clamp(24px, 3.2vw, 34px);
	font-weight: 600;
	color: var(--gp-dark);
	margin: 0 0 16px;
}
.gp-story__text { color: var(--gp-muted); font-size: 15px; line-height: 1.8; }
.gp-story__text p { margin: 0 0 16px; }
.gp-story__text p:last-child { margin-bottom: 0; }
.gp-story__tagline {
	margin: 18px 0 0;
	font-weight: 600;
	color: var(--gp-dark);
	font-size: 15px;
	border-left: 3px solid var(--gp-accent-alt);
	padding-left: 14px;
}

@media (max-width: 900px) {
	.gp-story, .gp-story--reverse {
		flex-direction: column;
		gap: 28px;
		padding: 40px 20px;
		text-align: left;
	}
	.gp-story__media, .gp-story__content { flex: 1 1 100%; width: 100%; }
}

/* ============================================================
   Page hero + stats band (About page)
   ============================================================ */
.gp-pagehero {
	background: var(--gp-surface);
	text-align: center;
	padding: 70px 24px;
	font-family: var(--gp-font);
}
.gp-pagehero__eyebrow { display: block; color: var(--gp-accent-alt); font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 14px; }
.gp-pagehero__title { font-size: clamp(30px, 4.5vw, 48px); font-weight: 600; color: var(--gp-dark); margin: 0 auto 16px; max-width: 760px; line-height: 1.15; }
.gp-pagehero__sub { color: var(--gp-muted); font-size: 17px; max-width: 620px; margin: 0 auto; line-height: 1.7; }

.gp-stats {
	display: grid;
	grid-template-columns: repeat(var(--gp-stats-cols, 4), 1fr);
	gap: 20px;
	max-width: var(--gp-maxw);
	margin: 0 auto;
	padding: 50px 24px;
	font-family: var(--gp-font);
}
.gp-stats__item { text-align: center; padding: 24px 16px; border: 1px solid var(--gp-border); border-radius: var(--gp-radius); }
.gp-stats__num { display: block; font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--gp-dark); margin-bottom: 8px; }
.gp-stats__label { font-size: 13px; color: var(--gp-muted); line-height: 1.5; }

@media (max-width: 900px) {
	.gp-stats { grid-template-columns: repeat(2, 1fr); }
	.gp-pagehero { padding: 50px 20px; }
}
@media (max-width: 480px) {
	.gp-stats { grid-template-columns: 1fr; }
}

/* ============================================================
   v1.9.1 — My Account page
   ============================================================ */

body.gp-account-layout .woocommerce {
	max-width: var(--gp-maxw) !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding: 40px 24px 60px !important;
	font-family: var(--gp-font);
	display: grid !important;
	grid-template-columns: 260px 1fr !important;
	gap: 40px !important;
	align-items: start !important;
	box-sizing: border-box;
}
body.gp-account-layout .woocommerce-MyAccount-navigation {
	grid-column: 1 !important;
	width: 100% !important;
}
body.gp-account-layout .woocommerce-MyAccount-content {
	grid-column: 2 !important;
	width: 100% !important;
}
/* Some themes wrap page content in a narrower container — make sure that
   ancestor doesn't clip our grid down to its own max-width. */
body.gp-account-layout .content-area,
body.gp-account-layout #primary,
body.gp-account-layout .site-content,
body.gp-account-layout .entry-content {
	max-width: none !important;
	width: 100% !important;
}
body.gp-account-layout h1.entry-title,
body.gp-account-layout .page-title {
	max-width: var(--gp-maxw);
	margin: 30px auto 0;
	padding: 0 24px;
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 600;
	color: var(--gp-dark);
}

/* Sidebar nav card */
body.gp-account-layout .woocommerce-MyAccount-navigation {
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 10px;
}
body.gp-account-layout .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
body.gp-account-layout .woocommerce-MyAccount-navigation li { margin: 0; }
body.gp-account-layout .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 16px;
	border-radius: calc(var(--gp-radius) - 4px);
	color: var(--gp-dark) !important;
	text-decoration: none !important;
	font-size: 15px;
	font-weight: 500;
	transition: background .15s ease;
}
body.gp-account-layout .woocommerce-MyAccount-navigation li a:hover { background: var(--gp-surface); }
body.gp-account-layout .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--gp-dark);
	color: #ffffff !important;
	font-weight: 600;
}

/* Content column */
body.gp-account-layout .woocommerce-MyAccount-content {
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 30px;
}
body.gp-account-layout .woocommerce-MyAccount-content p { color: var(--gp-muted); line-height: 1.8; font-size: 15px; }
body.gp-account-layout .woocommerce-MyAccount-content a { color: var(--gp-dark); font-weight: 600; text-decoration: underline; }
body.gp-account-layout .woocommerce-MyAccount-content a:hover { color: var(--gp-accent-alt); }
.gp-account__hint { font-size: 15px; color: var(--gp-muted); margin-bottom: 20px !important; }

/* Dashboard greeting */
body.gp-account-layout .woocommerce-MyAccount-content > p:first-of-type {
	background: var(--gp-surface);
	border-radius: calc(var(--gp-radius) - 4px);
	padding: 14px 18px;
	font-size: 14px;
}

/* Orders table */
body.gp-account-layout table.woocommerce-orders-table {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	border-collapse: separate;
	overflow: hidden;
	width: 100%;
}
body.gp-account-layout table.woocommerce-orders-table th {
	background: var(--gp-surface);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .4px;
	color: var(--gp-muted);
	padding: 14px 16px;
}
body.gp-account-layout table.woocommerce-orders-table td { padding: 14px 16px; border-top: 1px solid var(--gp-border); font-size: 14px; }
body.gp-account-layout .woocommerce-orders-table__cell-order-status {
	display: inline-block;
	background: var(--gp-surface);
	border-radius: var(--gp-btn-radius);
	padding: 5px 12px;
	font-size: 12px;
	font-weight: 600;
	color: var(--gp-dark);
}
body.gp-account-layout .woocommerce-button {
	background: var(--gp-dark) !important;
	color: #fff !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 9px 16px !important;
	font-size: 13px !important;
	text-decoration: none !important;
}

/* Address cards — Woo's default markup floats .u-columns/.col-1/.col-2,
   which was beating an unguarded grid rule (same class of bug as the
   sidebar layout). Hardened with !important + explicit float reset. */
body.gp-account-layout .woocommerce-Addresses,
body.gp-account-layout .woocommerce-Addresses.addresses,
body.gp-account-layout .u-columns {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 20px !important;
	width: 100% !important;
}
body.gp-account-layout .woocommerce-Addresses::before,
body.gp-account-layout .woocommerce-Addresses::after,
body.gp-account-layout .u-columns::before,
body.gp-account-layout .u-columns::after {
	content: none !important;
	display: none !important;
}
body.gp-account-layout .woocommerce-Address,
body.gp-account-layout .u-column1,
body.gp-account-layout .u-column2,
body.gp-account-layout .col-1,
body.gp-account-layout .col-2 {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 22px;
	box-sizing: border-box;
}
body.gp-account-layout .woocommerce-Address-title {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px;
	margin-bottom: 14px;
}
body.gp-account-layout .woocommerce-Address-title h2,
body.gp-account-layout .woocommerce-Address-title h3 {
	font-size: 17px !important;
	font-weight: 600 !important;
	margin: 0 !important;
	color: var(--gp-dark) !important;
	line-height: 1.3;
}
body.gp-account-layout .woocommerce-Address-title .edit,
body.gp-account-layout .woocommerce-Address-title a {
	background: var(--gp-dark) !important;
	color: #fff !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 8px 16px !important;
	font-size: 13px !important;
	white-space: nowrap;
	text-decoration: none !important;
	flex-shrink: 0;
}
body.gp-account-layout address { font-style: normal; color: var(--gp-muted); font-size: 14px; line-height: 1.7; margin: 0; }

@media (max-width: 700px) {
	body.gp-account-layout .woocommerce-Addresses,
	body.gp-account-layout .u-columns {
		grid-template-columns: 1fr !important;
	}
	body.gp-account-layout .woocommerce-Address-title { flex-direction: column; align-items: flex-start !important; }
}

/* Form fields (edit account / address / login) */
body.gp-account-layout .woocommerce-form-row label { font-size: 14px; font-weight: 600; color: var(--gp-dark); margin-bottom: 6px; display: block; }
body.gp-account-layout input.input-text,
body.gp-account-layout select {
	border: 1px solid var(--gp-border) !important;
	border-radius: calc(var(--gp-radius) - 2px) !important;
	padding: 12px 14px !important;
	font-family: var(--gp-font) !important;
	width: 100%;
}
body.gp-account-layout button[type="submit"] {
	background: var(--gp-dark) !important;
	color: #fff !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 13px 26px !important;
	font-weight: 600 !important;
	border: 0 !important;
}
body.gp-account-layout fieldset {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 20px;
	margin-top: 20px;
}
body.gp-account-layout fieldset legend { font-weight: 600; color: var(--gp-dark); padding: 0 8px; }

/* Login/register form (logged-out My Account view) */
body.gp-account-layout .woocommerce-form-login,
body.gp-account-layout .woocommerce-form-register {
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 26px;
	max-width: 420px;
}
body.gp-account-layout .woocommerce-LostPassword a { color: var(--gp-dark); }

@media (max-width: 900px) {
	body.gp-account-layout .woocommerce { grid-template-columns: 1fr; padding: 24px 16px 40px; }
	body.gp-account-layout .woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; gap: 6px; }
	body.gp-account-layout .woocommerce-MyAccount-navigation li a { white-space: nowrap; }
	body.gp-account-layout table.woocommerce-orders-table,
	body.gp-account-layout table.woocommerce-orders-table thead { display: none; }
	body.gp-account-layout table.woocommerce-orders-table tbody,
	body.gp-account-layout table.woocommerce-orders-table tr,
	body.gp-account-layout table.woocommerce-orders-table td { display: block; width: 100%; }
	body.gp-account-layout table.woocommerce-orders-table tr {
		border: 1px solid var(--gp-border);
		border-radius: var(--gp-radius);
		margin-bottom: 14px;
		padding: 10px 14px;
	}
	body.gp-account-layout table.woocommerce-orders-table td {
		border: 0 !important;
		display: flex;
		justify-content: space-between;
		padding: 8px 0 !important;
	}
	body.gp-account-layout table.woocommerce-orders-table td::before {
		content: attr(data-title);
		font-weight: 600;
		color: var(--gp-dark);
	}
}

/* ============================================================
   Contact Info widget + WPForms shortcode wrapper
   ============================================================ */
.gp-contact { font-family: var(--gp-font); }
.gp-contact__title { font-size: clamp(24px, 3vw, 32px); font-weight: 600; color: var(--gp-dark); margin: 0 0 12px; }
.gp-contact__sub { color: var(--gp-muted); font-size: 15px; line-height: 1.7; margin: 0 0 30px; max-width: 460px; }
.gp-contact__rows { display: flex; flex-direction: column; gap: 14px; }
.gp-contact__row {
	display: flex;
	align-items: center;
	gap: 16px;
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 16px 18px;
	text-decoration: none !important;
	color: inherit;
	transition: border-color .2s ease, background .2s ease;
}
a.gp-contact__row:hover { border-color: var(--gp-dark); background: var(--gp-surface); }
.gp-contact__icon {
	width: 42px; height: 42px;
	background: var(--gp-surface);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: 18px;
	flex-shrink: 0;
}
.gp-contact__text { display: flex; flex-direction: column; }
.gp-contact__label { font-size: 12px; color: var(--gp-muted); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 2px; }
.gp-contact__value { font-size: 15px; font-weight: 600; color: var(--gp-dark) !important; }

/* Wrapper card for the WPForms shortcode so it visually matches the site */
.gp-form-card {
	background: var(--gp-light);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius);
	padding: 30px;
	font-family: var(--gp-font);
}
.gp-form-card .wpforms-container { margin: 0 !important; }
.gp-form-card .wpforms-field label {
	font-weight: 600 !important;
	color: var(--gp-dark) !important;
	font-family: var(--gp-font) !important;
}
.gp-form-card .wpforms-field input:not([type=checkbox]):not([type=radio]),
.gp-form-card .wpforms-field textarea,
.gp-form-card .wpforms-field select {
	border: 1px solid var(--gp-border) !important;
	border-radius: calc(var(--gp-radius) - 2px) !important;
	padding: 12px 14px !important;
	font-family: var(--gp-font) !important;
}
.gp-form-card .wpforms-submit-container button,
.gp-form-card button[type="submit"] {
	background: var(--gp-dark) !important;
	color: #fff !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 13px 28px !important;
	font-weight: 600 !important;
	border: 0 !important;
	font-family: var(--gp-font) !important;
}

@media (max-width: 900px) {
	.gp-form-card { padding: 20px; }
}

/* Form card wrapper — applied via a custom Element ID on the shortcode
   widget (the "CSS classes" control key varies across Elementor versions,
   but Element ID has been stable since 2.0, so this targets reliably). */
#gp-contact-form-wrap.elementor-widget-shortcode,
#gp-contact-form-wrap {
	background: var(--gp-light) !important;
	border: 1px solid var(--gp-border) !important;
	border-radius: var(--gp-radius) !important;
	padding: 32px !important;
	box-sizing: border-box;
}

/* ---------- WPForms: full polish pass ---------- */
#gp-contact-form-wrap .wpforms-container { margin: 0 !important; }
#gp-contact-form-wrap .wpforms-form { font-family: var(--gp-font) !important; }
#gp-contact-form-wrap .wpforms-field { padding: 0 0 20px !important; }
#gp-contact-form-wrap .wpforms-field label.wpforms-field-label {
	font-family: var(--gp-font) !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: var(--gp-dark) !important;
	margin-bottom: 8px !important;
}
#gp-contact-form-wrap .wpforms-field-required {
	color: var(--gp-badge) !important;
}
#gp-contact-form-wrap .wpforms-field input[type="text"],
#gp-contact-form-wrap .wpforms-field input[type="email"],
#gp-contact-form-wrap .wpforms-field input[type="tel"],
#gp-contact-form-wrap .wpforms-field input[type="number"],
#gp-contact-form-wrap .wpforms-field input[type="url"],
#gp-contact-form-wrap .wpforms-field textarea,
#gp-contact-form-wrap .wpforms-field select {
	border: 1px solid var(--gp-border) !important;
	border-radius: calc(var(--gp-radius) - 2px) !important;
	padding: 13px 16px !important;
	font-family: var(--gp-font) !important;
	font-size: 15px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	background: var(--gp-surface) !important;
	transition: border-color .2s ease, background .2s ease;
}
#gp-contact-form-wrap .wpforms-field input:focus,
#gp-contact-form-wrap .wpforms-field textarea:focus,
#gp-contact-form-wrap .wpforms-field select:focus {
	border-color: var(--gp-dark) !important;
	background: var(--gp-light) !important;
	outline: none !important;
	box-shadow: none !important;
}
#gp-contact-form-wrap .wpforms-field textarea { min-height: 140px !important; resize: vertical; }

/* Submit button — WPForms' actual class is .wpforms-submit, not .button */
#gp-contact-form-wrap button.wpforms-submit,
#gp-contact-form-wrap input.wpforms-submit,
#gp-contact-form-wrap .wpforms-submit-container button {
	background: var(--gp-dark) !important;
	color: #ffffff !important;
	border: 0 !important;
	border-radius: var(--gp-btn-radius) !important;
	padding: 15px 34px !important;
	font-family: var(--gp-font) !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	cursor: pointer;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	transition: opacity .2s ease;
}
#gp-contact-form-wrap button.wpforms-submit:hover,
#gp-contact-form-wrap input.wpforms-submit:hover {
	opacity: .85 !important;
}
#gp-contact-form-wrap .wpforms-submit-container { margin-top: 6px !important; }

/* Error/success messaging */
#gp-contact-form-wrap .wpforms-error {
	color: var(--gp-badge) !important;
	font-size: 13px !important;
	margin-top: 6px !important;
}
#gp-contact-form-wrap .wpforms-field-input-error,
#gp-contact-form-wrap input.wpforms-error,
#gp-contact-form-wrap textarea.wpforms-error {
	border-color: var(--gp-badge) !important;
}
#gp-contact-form-wrap .wpforms-confirmation-container {
	background: var(--gp-surface) !important;
	border: 1px solid var(--gp-border) !important;
	border-radius: var(--gp-radius) !important;
	padding: 20px !important;
	color: var(--gp-dark) !important;
	font-family: var(--gp-font) !important;
}

@media (max-width: 700px) {
	#gp-contact-form-wrap { padding: 22px !important; }
}

/* ============================================================
   v2.0.3 — simplified 3-column footer
   ============================================================ */
.gp-footerlight__inner--simple {
	grid-template-columns: 1.8fr 1fr 1fr !important;
}
.gp-footerlight__social {
	display: flex;
	gap: 12px;
	margin-top: 18px;
}
.gp-footerlight__social-icon {
	width: 38px; height: 38px;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--gp-border);
	border-radius: 50%;
	color: var(--gp-muted);
	transition: color .2s ease, border-color .2s ease;
}
.gp-footerlight__social-icon:hover { color: var(--gp-dark); border-color: var(--gp-dark); }

@media (max-width: 900px) {
	.gp-footerlight__inner--simple { grid-template-columns: 1fr !important; }
}

/* Footer brand tagline */
.gp-footerlight__tagline {
	margin: 14px 0 0;
	color: var(--gp-muted);
	font-size: 14px;
	line-height: 1.7;
	max-width: 320px;
}
