/* ==========================================================================
   Venus365 — Header, Basket and Mega Menu Styling
   ========================================================================== */


/* --------------------------------------------------------------------------
   0. Header colour aliases
   -------------------------------------------------------------------------- */

.gb-site-header-f2000001 {
	--v365-header-night: var(--contrast, #24201d);
	--v365-header-cream: var(--v365-cream, #eee6d9);
	--v365-header-sage: var(--v365-sage-dark, #3f4d3b);
	--v365-header-white: var(--base-3, #ffffff);
}


/* --------------------------------------------------------------------------
   1. Desktop header runtime states and utility controls

   Normal navigation dimensions, typography and hover styling live in the
   Site Header Element. These rules cover dynamic states and plugin markup.
   -------------------------------------------------------------------------- */

@media (min-width: 961px) {

	/* Navigation open, current and keyboard-focus states */

	.gb-menu-f2000008 > .menu-item > .gb-menu-link:focus-visible,
	.gb-menu-f2000008 > .menu-item > .gb-menu-link[aria-expanded="true"],
	.gb-menu-item-mi000008 > .gb-menu-link:focus-visible,
	.gb-menu-item-mi000008 > .gb-menu-link[aria-expanded="true"],
	.gb-menu-f2000008 > .current-menu-item > .gb-menu-link,
	.gb-menu-f2000008 > .current-menu-ancestor > .gb-menu-link,
	.gb-menu-f2000008 > .current-product_cat-ancestor > .gb-menu-link {
		color: var(--v365-header-sage) !important;
		background-color: var(--v365-header-cream) !important;
	}

	.gb-menu-f2000008 > .menu-item > .gb-menu-link:focus-visible,
	.gb-menu-item-mi000008 > .gb-menu-link:focus-visible {
		outline: 2px solid var(--v365-header-sage) !important;
		outline-offset: -4px !important;
	}


	/* Shared Search and Mini-Cart control dimensions */

	.gb-element-f200000b .dgwt-wcas-search-wrapp,
	.gb-element-f200000b .dgwt-wcas-search-icon,
	.gb-element-f200000b .wc-block-mini-cart,
	.gb-element-f200000b .wc-block-mini-cart__button {
		width: 76px !important;
		min-width: 76px !important;
		max-width: 76px !important;
		height: 64px !important;
		margin: 0 !important;
		padding: 0 !important;
	}


	/* FiboSearch header trigger */

	.gb-element-f200000b .dgwt-wcas-search-wrapp {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		flex: 0 0 76px !important;

		color: var(--v365-header-night) !important;
		background-color: transparent !important;
		border-radius: 0 !important;

		transition:
			background-color 0.18s ease,
			color 0.18s ease !important;
	}

	.gb-element-f200000b .dgwt-wcas-search-wrapp:hover,
	.gb-element-f200000b .dgwt-wcas-search-wrapp:focus-within {
		color: var(--v365-header-sage) !important;
		background-color: var(--v365-header-cream) !important;
	}

	.gb-element-f200000b .dgwt-wcas-search-icon {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		color: currentColor !important;
		background-color: transparent !important;
		border-radius: 0 !important;
		text-decoration: none !important;
	}

	.gb-element-f200000b .dgwt-wcas-search-icon:focus-visible {
		outline: 2px solid var(--v365-header-sage) !important;
		outline-offset: -4px !important;
	}

	.gb-element-f200000b .dgwt-wcas-ico-magnifier-handler {
		display: block !important;
		width: 26px !important;
		height: 26px !important;
		margin: 0 !important;
		padding: 0 !important;

		color: currentColor !important;
		fill: currentColor !important;
	}


	/* WooCommerce Mini-Cart trigger */

	.gb-element-f200000b .wc-block-mini-cart {
		flex: 0 0 76px !important;
	}

	.gb-element-f200000b .wc-block-mini-cart__button {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;

		color: var(--v365-header-night) !important;
		background-color: transparent !important;
		border-radius: 0 !important;

		transition:
			background-color 0.18s ease,
			color 0.18s ease !important;
	}

	.gb-element-f200000b .wc-block-mini-cart__button:hover,
	.gb-element-f200000b .wc-block-mini-cart__button:focus-visible,
	.gb-element-f200000b .wc-block-mini-cart__button[aria-expanded="true"] {
		color: var(--v365-header-sage) !important;
		background-color: var(--v365-header-cream) !important;
	}

	.gb-element-f200000b .wc-block-mini-cart__button:focus-visible {
		outline: 2px solid var(--v365-header-sage) !important;
		outline-offset: -4px !important;
	}

	.gb-element-f200000b .wc-block-mini-cart__button svg,
	.gb-element-f200000b .wc-block-mini-cart__icon {
		color: currentColor !important;
		fill: currentColor !important;
	}

	.gb-element-f200000b .wc-block-mini-cart__badge {
		color: var(--v365-header-white) !important;
		background-color: var(--v365-header-night) !important;
	}
}


/* --------------------------------------------------------------------------
   2. WooCommerce basket — keep Proceed to Checkout text white
   -------------------------------------------------------------------------- */

.inside-article .wc-block-cart__submit-button,
.inside-article .wc-block-cart__submit-button .wc-block-components-button__text,
.inside-article .wc-block-cart__submit-button:hover,
.inside-article .wc-block-cart__submit-button:hover .wc-block-components-button__text,
.inside-article .wc-block-cart__submit-button:focus,
.inside-article .wc-block-cart__submit-button:focus .wc-block-components-button__text {
	color: var(--base-3) !important;
}


/* --------------------------------------------------------------------------
   3. Mega menus — shared visual system

   Overlay Panels retain their content and responsive grid structure.
   Visual styling lives here so text and images remain safely editable.
   -------------------------------------------------------------------------- */

.v365-mega-panel {
	width: min(1172px, 92vw);
	max-width: calc(var(--gb-container-width) - 28px);
	padding: 30px 30px 32px;

	background-color: #ffffff;
	border: 1px solid #e8e3dc;
	border-radius: 0 0 18px 18px;
	box-shadow: 0 18px 50px rgba(36, 32, 29, 0.14);
}

.v365-mega-panel .gbp-mega-menu__heading {
	margin-bottom: 10px !important;

	color: #24201d !important;
	font-size: clamp(24px, 2vw, 32px) !important;
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
	line-height: 1.1 !important;
}

.v365-mega-panel > .gb-text {
	max-width: none;
	margin-bottom: 22px;

	color: #6f6a63;
	font-size: 0.875rem;
	line-height: 1.6;
}

.v365-mega-panel .gbp-mega-menu__list {
	display: grid;
	column-gap: 14px;
	row-gap: 14px;

	margin: 0;
	padding: 0;
	list-style: none;
}

.v365-mega-panel .gbp-mega-menu__list > li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.v365-mega-panel .gbp-mega-menu__link {
	height: 100%;

	color: #24201d;
	background-color: #f7f4ee;
	border: 1px solid transparent;
	border-radius: 14px;
	text-decoration: none;

	transition:
		border-color 0.18s ease,
		box-shadow 0.18s ease,
		transform 0.18s ease;
}

.v365-mega-panel .gbp-mega-menu__link:hover,
.v365-mega-panel .gbp-mega-menu__link:focus-visible {
	border-color: #cfae58;
	box-shadow: 0 8px 22px rgba(36, 32, 29, 0.08);
	transform: translateY(-2px);
}

.v365-mega-panel .gbp-mega-menu__link:focus-visible {
	outline: 2px solid #3f4d3b;
	outline-offset: 3px;
}


/* --------------------------------------------------------------------------
   3a. Shop and Shop by Mood cards
   -------------------------------------------------------------------------- */

.v365-mega-shop .gbp-mega-menu__link,
.v365-mega-mood .gbp-mega-menu__link {
	display: grid;
	grid-template-rows: auto 1fr auto;
	align-items: flex-start;
	row-gap: 0;
	padding: 20px;
}

.v365-mega-shop .gbp-mega-menu__link p,
.v365-mega-mood .gbp-mega-menu__link p {
	margin: 0;
}

.v365-mega-shop .gbp-mega-menu__link p:nth-of-type(1),
.v365-mega-mood .gbp-mega-menu__link p:nth-of-type(1) {
	margin-bottom: 6px;

	color: #24201d;
	font-weight: 700;
}

.v365-mega-shop .gbp-mega-menu__link p:nth-of-type(2),
.v365-mega-mood .gbp-mega-menu__link p:nth-of-type(2) {
	color: #6f6a63;
	font-size: 0.875rem;
	line-height: 1.45;
}

.v365-mega-shop .v365-mega-card__cta,
.v365-mega-mood .v365-mega-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	align-self: end;
	justify-self: start;

	width: auto;
	height: auto;
	min-width: 0;
	min-height: 0;

	margin: 14px 0 0;
	padding: 0;

	color: #3f4d3b;
	background-color: transparent;
	border: 0;
	border-radius: 0;

	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.3;
	white-space: nowrap;
}

.v365-mega-shop .v365-mega-card__cta > span,
.v365-mega-mood .v365-mega-card__cta > span {
	display: inline-block;
	width: auto;
	height: auto;
	margin: 0 0 0 5px;
	padding: 0;

	background: transparent;
	border: 0;
	border-radius: 0;

	transition: transform 0.18s ease;
}

.v365-mega-shop .gbp-mega-menu__link:hover .v365-mega-card__cta > span,
.v365-mega-shop .gbp-mega-menu__link:focus-visible .v365-mega-card__cta > span,
.v365-mega-mood .gbp-mega-menu__link:hover .v365-mega-card__cta > span,
.v365-mega-mood .gbp-mega-menu__link:focus-visible .v365-mega-card__cta > span {
	transform: translateX(3px);
}


/* --------------------------------------------------------------------------
   3b. Explore image cards
   -------------------------------------------------------------------------- */

.v365-mega-explore .gbp-mega-menu__link {
	display: grid;
	grid-template-rows: 200px auto 1fr;
	align-items: flex-start;
	row-gap: 0;
	overflow: hidden;
	padding: 0;
}

.v365-mega-explore .gbp-mega-menu__link img {
	display: block;
	width: 100%;
	height: 200px;
	max-width: none;
	object-fit: cover;
}

.v365-mega-explore .gbp-mega-menu__link > .gb-text {
	margin: 0;
	padding-right: 18px;
	padding-left: 18px;
}

.v365-mega-explore .gbp-mega-menu__link img + .gb-text {
	padding-top: 14px;

	color: #24201d;
	font-weight: 700;
}

.v365-mega-explore .gbp-mega-menu__link > .gb-text:last-child {
	padding-top: 4px;
	padding-bottom: 18px;

	color: #6f6a63;
	font-size: 0.875rem;
	line-height: 1.45;
}


/* --------------------------------------------------------------------------
   3c. Mega-menu responsive grids
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {

	.v365-mega-shop .gbp-mega-menu__list,
	.v365-mega-mood .gbp-mega-menu__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 960px) {

	.v365-mega-explore .gbp-mega-menu__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {

	.v365-mega-panel {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		padding: 24px 20px 26px;
	}

	.v365-mega-panel .gbp-mega-menu__list,
	.v365-mega-panel .gbp-mega-menu__list > li,
	.v365-mega-panel .gbp-mega-menu__link {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.v365-mega-shop .gbp-mega-menu__list,
	.v365-mega-mood .gbp-mega-menu__list,
	.v365-mega-explore .gbp-mega-menu__list {
		grid-template-columns: minmax(0, 1fr);
	}
}


/* --------------------------------------------------------------------------
   4. Mega menus — compact treatment for short laptop screens

   Applies above the 960px mobile-menu breakpoint only.
   -------------------------------------------------------------------------- */

@media (min-width: 961px) and (max-height: 600px) {

	.v365-mega-panel {
		padding-top: 18px !important;
		padding-bottom: 20px !important;
	}

	.v365-mega-panel .gbp-mega-menu__heading {
		margin-bottom: 6px !important;
		font-size: 24px !important;
		line-height: 1.1 !important;
	}

	.v365-mega-panel > .gb-text {
		margin-bottom: 12px !important;
		line-height: 1.35 !important;
	}

	.v365-mega-panel .gbp-mega-menu__list {
		column-gap: 12px !important;
		row-gap: 10px !important;
	}


	/* Shop and Shop by Mood */

	.v365-mega-shop .gbp-mega-menu__link,
	.v365-mega-mood .gbp-mega-menu__link {
		padding: 12px 14px !important;
	}

	.v365-mega-shop .gbp-mega-menu__link p:nth-of-type(1),
	.v365-mega-mood .gbp-mega-menu__link p:nth-of-type(1) {
		margin-bottom: 3px !important;
	}

	.v365-mega-shop .gbp-mega-menu__link p:nth-of-type(2),
	.v365-mega-mood .gbp-mega-menu__link p:nth-of-type(2) {
		font-size: 0.8rem !important;
		line-height: 1.3 !important;
	}

	.v365-mega-shop .v365-mega-card__cta,
	.v365-mega-mood .v365-mega-card__cta {
		width: auto !important;
		height: auto !important;
		min-width: 0 !important;
		min-height: 0 !important;

		margin: 9px 0 0 !important;
		padding: 0 !important;

		background-color: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;

		font-size: 0.75rem !important;
		line-height: 1.2 !important;
	}

	.v365-mega-shop .v365-mega-card__cta > span,
	.v365-mega-mood .v365-mega-card__cta > span {
		width: auto !important;
		height: auto !important;
		margin: 0 0 0 5px !important;
		padding: 0 !important;

		background-color: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
	}


	/* Explore */

	.v365-mega-explore .gbp-mega-menu__link {
		grid-template-rows: 160px auto 1fr !important;
		row-gap: 0 !important;
	}

	.v365-mega-explore .gbp-mega-menu__link img {
		height: 160px !important;
	}

	.v365-mega-explore .gbp-mega-menu__link > .gb-text {
		padding-right: 14px !important;
		padding-left: 14px !important;
	}

	.v365-mega-explore .gbp-mega-menu__link img + .gb-text {
		padding-top: 8px !important;
		font-size: 0.9rem !important;
		line-height: 1.2 !important;
	}

	.v365-mega-explore .gbp-mega-menu__link > .gb-text:last-child {
		padding-top: 2px !important;
		padding-bottom: 9px !important;
		font-size: 0.8rem !important;
		line-height: 1.25 !important;
	}
}


/* --------------------------------------------------------------------------
   5. Mobile header and navigation containment
   -------------------------------------------------------------------------- */

@media (max-width: 960px) {

	/* Closed mobile-header logo */

	.gb-site-header-f2000001 .gb-media-f2000003 {
		width: auto !important;
		height: 50px !important;
	}


	/* Full-screen mobile navigation */

	.gb-menu-container-f2000005.gb-menu-container--mobile {
		box-sizing: border-box !important;
		position: fixed !important;
		inset: 0 !important;

		width: 100dvw !important;
		max-width: 100dvw !important;
		height: 100dvh !important;
		max-height: 100dvh !important;
		min-width: 0 !important;

		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: none !important;
		-webkit-overflow-scrolling: touch;
	}


	/* Open-menu logo and alignment */

	.gb-menu-container-f2000005.gb-menu-container--mobile
	.gb-media-f2000007 {
		display: block !important;
		width: auto !important;
		max-width: 220px !important;
		height: 50px !important;
		object-fit: contain !important;
	}

	.gb-menu-container-f2000005.gb-menu-container--mobile
	.gb-element-f2000006 {
		padding-top: 10px !important;
		padding-left: 20px !important;
	}


	/* Main menu structure */

	.gb-menu-container-f2000005.gb-menu-container--mobile .gb-menu,
	.gb-menu-container-f2000005.gb-menu-container--mobile .menu-item {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}


	/* Reset desktop submenu positioning */

	.gb-menu-container-f2000005.gb-menu-container--mobile .gb-sub-menu,
	.gb-menu-container-f2000005.gb-menu-container--mobile
	[class*="gb-sub-menu-"] {
		box-sizing: border-box !important;
		position: static !important;

		top: auto !important;
		right: auto !important;
		left: auto !important;
		transform: none !important;

		width: calc(100dvw - 48px) !important;
		max-width: calc(100dvw - 48px) !important;
		min-width: 0 !important;

		margin: 0 !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}


	/* Mega-menu panel containment */

	.gb-menu-container-f2000005.gb-menu-container--mobile
	.v365-mega-panel {
		box-sizing: border-box !important;

		width: calc(100dvw - 48px) !important;
		max-width: calc(100dvw - 48px) !important;
		min-width: 0 !important;

		margin-right: 0 !important;
		margin-left: 0 !important;
	}


	/* Prevent grid descendants from forcing overflow */

	.gb-menu-container-f2000005.gb-menu-container--mobile
	.v365-mega-panel
	.gbp-mega-menu__list,

	.gb-menu-container-f2000005.gb-menu-container--mobile
	.v365-mega-panel
	.gbp-mega-menu__list > li,

	.gb-menu-container-f2000005.gb-menu-container--mobile
	.v365-mega-panel
	.gbp-mega-menu__link {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}


	/* Explore images */

	.gb-menu-container-f2000005.gb-menu-container--mobile
	.v365-mega-explore
	.gbp-mega-menu__link img {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}
}


/* --------------------------------------------------------------------------
   6. Mobile menu interaction controls

   Row spacing, link padding and the main Menu button are owned natively by
   GenerateBlocks Header Element 1345. These selectors remain here because
   the submenu button and its open/focus states are plugin-rendered controls.
   -------------------------------------------------------------------------- */

@media (max-width: 960px) {
	.gb-navigation--mobile .gb-submenu-toggle {
		position: absolute;
		top: 50%;
		right: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 0;
		transform: translateY(-50%);
	}

	.gb-navigation--mobile .gb-submenu-toggle::before {
		content: "";
		position: absolute;
		inset: 6px;
		border-radius: 50%;
		background: #e8e3dc;
		transition: background-color 160ms ease;
	}

	.gb-navigation--mobile .gb-submenu-toggle:hover::before,
	.gb-navigation--mobile .gb-submenu-toggle:focus-visible::before,
	.gb-navigation--mobile .gb-submenu-toggle[aria-expanded="true"]::before {
		background: #d8d2c9;
	}

	.gb-navigation--mobile .gb-menu .gb-submenu-toggle-icon,
	.gb-navigation--mobile .gb-menu .gb-submenu-toggle-icon svg {
		position: relative;
		z-index: 1;
		width: 20px;
		height: 20px;
	}
}


/* Venus365 — warm product archive image frames */
.woocommerce ul.products li.product img {
	border: 1px solid #E8E3DC;
	border-radius: 10px;
	background-color: #faf8f4;
	box-sizing: border-box;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce ul.products li.product a:hover img {
	border-color: #d9d1c7;
	box-shadow: 0 4px 14px rgba(36, 32, 29, 0.055);
}

/* Venus365 homepage newsletter — scoped to Gravity Form 3 only */
.gb-element-95d90db2 {
  grid-template-columns: minmax(0, 1.35fr) minmax(440px, .65fr) !important;
  gap: 56px;
  align-items: center;
}

.gb-element-c18e8cf4 {
  min-width: 0;
  padding: 24px 26px;
  border: 1px solid #e8e3dc;
  border-radius: 16px;
  background: #f7f4ee;
  box-shadow: 0 8px 24px rgba(36, 32, 29, .06);
}

.gb-element-c18e8cf4 .v365-newsletter-form_wrapper {
  width: 100%;
  margin: 0;
}

.gb-element-c18e8cf4 form.v365-newsletter-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  width: 100%;
}

.gb-element-c18e8cf4 .v365-newsletter-form .gform-body,
.gb-element-c18e8cf4 .v365-newsletter-form .gform_fields {
  display: contents;
}

.gb-element-c18e8cf4 .v365-newsletter-form #field_3_1 {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}

.gb-element-c18e8cf4 .v365-newsletter-form #field_3_3 {
  grid-column: 1 / -1;
  grid-row: 2;
  margin-top: 2px;
}

.gb-element-c18e8cf4 .v365-newsletter-form .gform_footer {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  padding: 0;
}

.gb-element-c18e8cf4 .v365-newsletter-form .ginput_container_email {
  width: 100%;
  max-width: none;
}

.gb-element-c18e8cf4 .v365-newsletter-form input[type="email"] {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  height: 52px;
  margin: 0;
  padding: 0 16px;
  border: 1px solid #d8d0c5;
  border-radius: 12px;
  background: #fff;
  color: #24201d;
  font: inherit;
  box-shadow: none;
}

.gb-element-c18e8cf4 .v365-newsletter-form input[type="email"]::placeholder {
  color: #6f6a63;
  opacity: 1;
}

.gb-element-c18e8cf4 .v365-newsletter-form input[type="email"]:focus {
  border-color: #3f4d3b;
  outline: 3px solid rgba(63, 77, 59, .16);
  outline-offset: 1px;
}

.gb-element-c18e8cf4 .v365-newsletter-form .gfield--type-checkbox .gfield_label {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.gb-element-c18e8cf4 .v365-newsletter-form .gfield_checkbox label {
  color: #6f6a63;
  font-size: 13px;
  line-height: 1.45;
}

.gb-element-c18e8cf4 .v365-newsletter-form .gfield_checkbox a {
  color: #3f4d3b;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gb-element-c18e8cf4 .v365-newsletter-form input[type="checkbox"] {
  accent-color: #3f4d3b;
}

.gb-element-c18e8cf4 .v365-newsletter-form button.gform_button {
  min-width: 124px;
  height: 52px;
  margin: 0;
  padding: 0 22px;
  border: 1px solid #3f4d3b;
  border-radius: 12px;
  background: #3f4d3b;
  color: #f7f4ee;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.gb-element-c18e8cf4 .v365-newsletter-form button.gform_button:hover {
  border-color: #24201d;
  background: #24201d;
  transform: translateY(-1px);
}

.gb-element-c18e8cf4 .v365-newsletter-form button.gform_button:focus-visible {
  outline: 3px solid rgba(63, 77, 59, .25);
  outline-offset: 3px;
}

.gb-element-c18e8cf4 .v365-newsletter-form .gform_validation_errors,
.gb-element-c18e8cf4 .v365-newsletter-form .gfield_validation_message {
  grid-column: 1 / -1;
  color: #7a2e2e;
  font-size: 13px;
}

@media (max-width: 767px) {
  .gb-element-95d90db2 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
    gap: 28px;
  }

  .gb-element-95d90db2,
  .gb-element-c18e8cf4,
  .gb-element-c18e8cf4 * {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .gb-element-c18e8cf4 {
    width: 100%;
    min-width: 0;
    padding: 20px;
  }

  .gb-element-c18e8cf4 form.v365-newsletter-form {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .gb-element-c18e8cf4 .v365-newsletter-form #field_3_1,
  .gb-element-c18e8cf4 .v365-newsletter-form .gform_footer,
  .gb-element-c18e8cf4 .v365-newsletter-form #field_3_3 {
    grid-column: 1;
  }

  .gb-element-c18e8cf4 .v365-newsletter-form #field_3_1 {
    grid-row: 1;
    width: 100%;
  }

  .gb-element-c18e8cf4 .v365-newsletter-form .gform_footer {
    grid-row: 2;
  }

  .gb-element-c18e8cf4 .v365-newsletter-form #field_3_3 {
    grid-row: 3;
  }

  .gb-element-c18e8cf4 .v365-newsletter-form input[type="email"],
  .gb-element-c18e8cf4 .v365-newsletter-form button.gform_button {
    width: 100%;
    max-width: none;
  }
}

#gform_wrapper_1 .gform_required_legend,
#gform_wrapper_2 .gform_required_legend {
  display: none;
}

.v365-form-field-space {
  margin-top: 6px !important;
  margin-bottom: 6px !important;
}

/* UX / UI amendment - 9 August 2026
 * Make consent choices easier to see and tap while retaining the existing
 * Gravity Forms wording and layout. The label remains the full click target. */
.gform_wrapper .gchoice {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  column-gap: 10px;
  align-items: start;
  padding-block: 4px;
}

.gform_wrapper .gchoice input.gfield-choice-input[type="checkbox"] {
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  accent-color: #3f4d3b;
}


/*
 * Venus365 FiboFilter control styling
 *
 * Keeps WooCommerce/FiboFilter sorting visually consistent with the
 * native FiboFilter buttons. Layout rules are mobile-only; the shared
 * sorting treatment also applies on desktop.
 */

/* Shared sorting control: match FiboFilter's desktop button treatment. */
.woocommerce-page .woocommerce-ordering {
	box-sizing: border-box;
	min-height: 40px;
	margin: 0;
	border: 0;
	background: transparent;
}

.woocommerce-page .woocommerce-ordering select.fibofilters-orderby {
	box-sizing: border-box;
	width: 100%;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 8px 40px 8px 12px !important;
	border: 0 !important;
	border-radius: 6px !important;
	box-shadow: inset 0 0 0 1px #363636;
	background-color: #fff !important;
	color: #363636;
	font-family: inherit;
	font-size: 1.1em !important;
	font-weight: 400 !important;
	line-height: 1.25;
}

/* Wide desktop toolbar: filters left and sorting right on one baseline.
 * This deliberately stops at the site's 960px mobile-header breakpoint. */
/* Shared grid-child span for the desktop and mobile grid layouts. */
@media (min-width: 961px), (max-width: 768px) {
	.woocommerce-page .wc-columns-container > * {
		grid-column: 1 / -1;
	}
}

@media (min-width: 961px) {
	.woocommerce-page .wc-columns-container {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 16px;
		align-items: start;
	}

	.woocommerce-page .wc-columns-container > .woocommerce-notices-wrapper { order: 0; }
	.woocommerce-page .wc-columns-container > .woocommerce-result-count { order: 10; }

	.woocommerce-page .wc-columns-container > .fibofilters-horizontal-filters-container {
		grid-column: 1;
		order: 20;
		min-width: 0;
	}

	.woocommerce-page .wc-columns-container > .woocommerce-ordering {
		grid-column: 2;
		order: 21;
		align-self: start;
	}

	.woocommerce-page .wc-columns-container > .fibofilters-applied-filters-container { order: 30; }
	.woocommerce-page .wc-columns-container > .fibofilters-show-previous-button-container { order: 35; }
	.woocommerce-page .wc-columns-container > ul.products { order: 40; }
	.woocommerce-page .wc-columns-container > .fibofilters-show-more-button-container { order: 50; }
}

/* Tablet and mobile touch targets. Choice rows and both toolbar controls stay
 * comfortably tappable up to the shared 960px navigation breakpoint. */
@media (max-width: 960px) {
	.fibofilters-item__interactive {
		box-sizing: border-box;
		min-height: 44px;
		padding-block: 10px;
	}

	body.woocommerce-page .fibofilters-mobile-filters-container .js-fibofilters-filter-button-all-filters,
	.woocommerce-page .woocommerce-ordering,
	.woocommerce-page .woocommerce-ordering select.fibofilters-orderby {
		height: 44px !important;
		min-height: 44px !important;
	}
}

/* Mobile toolbar: two equal columns, then force both controls to one size. */
@media (max-width: 768px) {
	.woocommerce-page .wc-columns-container {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: 8px;
		align-items: start;
	}

	.woocommerce-page .wc-columns-container > .woocommerce-result-count { order: 10; }

	.woocommerce-page .wc-columns-container > .fibofilters-mobile-filters-container {
		grid-column: 1;
		order: 20;
		margin: 0;
	}

	.woocommerce-page .wc-columns-container > .woocommerce-ordering {
		grid-column: 2;
		order: 21;
		float: none;
		width: 100%;
	}

	.woocommerce-page .fibofilters-mobile-filters-container .js-fibofilters-filter-button-all-filters,
	.woocommerce-page .woocommerce-ordering select.fibofilters-orderby {
		box-sizing: border-box;
		width: 100%;
		margin: 0 !important;
		border: 0 !important;
		border-radius: 4px !important;
		box-shadow: inset 0 0 0 1px #363636;
		background-color: #fff !important;
		color: #363636;
		font-family: inherit;
		font-size: 16px !important;
		font-weight: 400 !important;
		line-height: 1.2;
	}

	.woocommerce-page .fibofilters-mobile-filters-container .js-fibofilters-filter-button-all-filters {
		display: flex !important;
		align-items: center;
		justify-content: flex-start;
		padding: 0 12px !important;
		text-align: left;
		white-space: nowrap;
	}

	/* GeneratePress otherwise leaves the icon aligned to the text baseline. */
	.woocommerce-page .fibofilters-mobile-filters-container .js-fibofilters-filter-button-all-filters svg {
		flex: 0 0 auto;
		margin: 0 0 0 6px;
	}

	.woocommerce-page .woocommerce-ordering select.fibofilters-orderby {
		padding: 0 40px 0 12px !important;
	}

	.woocommerce-page .wc-columns-container > .fibofilters-applied-filters-container { order: 30; }
	.woocommerce-page .wc-columns-container > .fibofilters-show-previous-button-container { order: 35; }
	.woocommerce-page .wc-columns-container > ul.products { order: 40; }
	.woocommerce-page .wc-columns-container > .fibofilters-show-more-button-container { order: 50; }
}
	

/*
 * Venus365 - UX / UI Amendments - CSS
 * Added: 9 August 2026; consolidated: 10 August 2026
 *
 * Purpose: small, reversible WooCommerce and FiboSearch usability improvements
 * identified in the pre-launch customer-journey audit. Header structure and
 * mobile sizing are owned by GenerateBlocks Header Element 1345; plugin-rendered
 * header interactions stay in snippet 19. FiboFilter controls stay in snippet 26.
 * Deactivate this snippet to remove the remaining rules below.
 */

/* 1. WooCommerce basket: keep the 44px targets, but make the quantity selector
 * read as one deliberately styled control instead of three loose elements. */
.wc-block-cart .wc-block-components-quantity-selector {
  box-sizing: border-box;
  width: 124px;
  height: 46px;
  min-height: 46px;
  overflow: hidden;
  border: 1px solid #d8d2c9;
  border-radius: 3px;
  background: #fff;
}

.wc-block-cart .wc-block-components-quantity-selector__button {
  flex: 0 0 44px;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  background: #f7f4ee !important;
  color: #24201d !important;
  font-size: 17px !important;
  font-weight: 600;
  line-height: 1;
}

.wc-block-cart .wc-block-components-quantity-selector__button--minus {
  border-right: 1px solid #e8e3dc !important;
}

.wc-block-cart .wc-block-components-quantity-selector__button--plus {
  border-left: 1px solid #e8e3dc !important;
}

.wc-block-cart .wc-block-components-quantity-selector__button:hover,
.wc-block-cart .wc-block-components-quantity-selector__button:focus-visible {
  background: #ebe6dd !important;
}

.wc-block-cart .wc-block-components-quantity-selector__input {
  flex: 0 0 34px;
  width: 34px !important;
  min-width: 34px !important;
  height: 44px;
  padding: 0 !important;
  text-align: center;
}

.wc-block-cart .wc-block-cart-item__remove-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px;
  min-height: 44px !important;
  border: 1px solid #e8e3dc !important;
  border-radius: 3px !important;
  background: #fff !important;
}

.wc-block-cart .wc-block-cart-item__remove-link:hover,
.wc-block-cart .wc-block-cart-item__remove-link:focus-visible {
  background: #f7f4ee !important;
}

/* 2. Very narrow basket: retain the product image, remove the duplicated line
 * total column, and let the unit price in the product column remain visible.
 * If a future WooCommerce Blocks update breaks this layout, deactivate this
 * snippet first; hiding .wc-block-cart-item__image is the simple fallback. */
@media (max-width: 360px) {
  .wc-block-cart-items__row {
    grid-template-columns: 60px minmax(0, 1fr) !important;
    width: 100% !important;
  }

  .wc-block-cart-items__row .wc-block-cart-item__image {
    grid-column: 1 !important;
    width: 60px !important;
    padding-right: 12px !important;
  }

  .wc-block-cart-items__row .wc-block-cart-item__image img {
    width: 48px !important;
    height: auto !important;
  }

  .wc-block-cart-items__row .wc-block-cart-item__product {
    grid-column: 2 !important;
    min-width: 0;
    width: auto !important;
  }

  .wc-block-cart-items__row .wc-block-cart-item__total {
    display: none !important;
  }

  .wc-block-cart .wc-block-cart-item__quantity {
    flex-wrap: wrap;
    gap: 8px;
  }

}

/* 3. FiboSearch: present the native "more results" action as an obvious,
 * full-width button on every viewport. */
.dgwt-wcas-suggestion-more {
  box-sizing: border-box;
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 44px !important;
  padding: 10px 16px !important;
  border-top: 1px solid #e8e3dc !important;
  background: #3f4d3b !important;
  color: #fff !important;
  font-weight: 600;
  text-align: center;
}

.dgwt-wcas-suggestion-more:hover,
.dgwt-wcas-suggestion-more:focus,
.dgwt-wcas-suggestion-more:focus-visible {
  background: #24201d !important;
  color: #fff !important;
}

/* 4. Product metadata: turn the loose link cluster into a restrained details
 * panel that follows the existing Venus365 border and spacing language. */
.single-product .product_meta {
  display: grid;
  gap: 0;
  margin-top: 30px;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e8e3dc;
  border-radius: 2px;
  background: #f7f4ee;
  color: #24201d;
  font-size: 14px;
  line-height: 1.5;
}

.single-product .product_meta > span {
  display: block;
  min-height: 44px;
  padding: 10px 14px;
}

.single-product .product_meta a {
  display: inline-block;
  padding-block: 2px;
  color: #3f4d3b;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.single-product .product_meta a:hover,
.single-product .product_meta a:focus,
.single-product .product_meta a:focus-visible {
  color: #24201d;
  text-decoration-thickness: 2px;
}

/* 5. Add-to-basket confirmation: use the established paper/sage palette and
 * give the onward basket action a proper touch target. */
.woocommerce-message,
.wc-block-components-notice-banner.is-success {
  border-color: #3f4d3b !important;
  background: #f7f4ee !important;
  color: #24201d !important;
}

.woocommerce-message {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
  min-height: 84px;
}

.woocommerce-message::before,
.wc-block-components-notice-banner.is-success > svg {
  color: #3f4d3b !important;
  fill: #3f4d3b !important;
}

.woocommerce-message .button,
.wc-block-components-notice-banner.is-success a,
.wc-block-components-notice-banner.is-success button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
}

.woocommerce-message .button {
  display: inline-flex !important;
  float: none !important;
  order: 2;
  flex: 0 0 auto;
  margin-left: auto !important;
  border: 1px solid #3f4d3b !important;
  background: #3f4d3b !important;
  color: #fff !important;
  text-decoration: none !important;
  padding: 10px 22px !important;
}

.woocommerce-message .button:hover,
.woocommerce-message .button:focus,
.woocommerce-message .button:focus-visible {
  border-color: #24201d !important;
  background: #24201d !important;
  color: #fff !important;
}

@media (max-width: 600px) {
  .woocommerce-message {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    text-align: center;
  }

  .woocommerce-message .button {
    width: 100%;
    margin-left: 0 !important;
  }
}

/* PDP 'Pair With' URL Link Styling */
.single-product a.v365-pair-with {
	color: var(--v365-cream);
	text-decoration-color: var(--v365-champagne);
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.single-product a.v365-pair-with:hover,
.single-product a.v365-pair-with:focus {
	color: var(--v365-paper);
	text-decoration-color: var(--v365-cream);
}

/* PDP Description Text Link Styling */
.single-product .woocommerce-Tabs-panel--description a:not(.button) {
	color: var(--v365-night);
	text-decoration-color: var(--v365-champagne);
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.single-product .woocommerce-Tabs-panel--description a:not(.button):hover,
.single-product .woocommerce-Tabs-panel--description a:not(.button):focus {
	color: #3F4D3B;
	text-decoration-color: var(--v365-night);
}

/* Venus365 — PDP Add to basket fills remaining row */
.single-product.woocommerce div.product form.cart .single_add_to_cart_button {
    float: none;
    flex: 1 1 0;
    width: auto;
}

