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

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

/* Give real-time product price calculations a quiet visual loading state. */
.price-wrapper > .price.sebinfo-live-price--loading,
.woocommerce-variation-price .price.sebinfo-live-price--loading {
	opacity: 0.55;
	transition: opacity 0.15s ease;
}

/* Prominent, responsive bulk-pricing card on single-product pages. */
.single-product .wdp_bulk_table_content {
	display: block;
	width: 100%;
	margin: 28px 0 10px;
}

.single-product .wdp_bulk_table_content .sebinfo-bulk-offer-card {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(68, 96, 132, 0.2);
	border-radius: 16px;
	box-shadow: 0 14px 36px rgba(36, 55, 80, 0.14);
	animation: sebinfo-bulk-offer-reveal 0.45s ease both;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table_caption {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 13px;
	align-items: center;
	margin: 0;
	padding: 18px 20px;
	background: linear-gradient(135deg, #446084 0%, #314c70 100%);
	color: #fff;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table_caption::before {
	display: flex;
	grid-row: 1 / span 2;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	background: #b65031;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 50%;
	box-shadow: 0 5px 14px rgba(26, 42, 63, 0.28);
	color: #fff;
	content: "%";
	font-size: 22px;
	font-weight: 800;
	line-height: 1;
}

.single-product .sebinfo-bulk-offer-title {
	display: block;
	color: #fff !important;
	font-size: 19px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.01em;
}

.single-product .sebinfo-bulk-offer-subtitle {
	display: block;
	margin-top: 3px;
	color: #edf4fc !important;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table {
	width: 100% !important;
	margin: 0 !important;
	background: #fff;
	border: 0 !important;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 14px;
	table-layout: fixed;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table thead {
	background: #edf2f7 !important;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table thead td {
	padding: 11px 14px !important;
	background: transparent !important;
	border: 0 !important;
	color: #66768a;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.07em;
	text-align: center;
	text-transform: uppercase;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr {
	background: #fff;
	transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr.is-best-value {
	background: #fff8f4;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr:hover {
	background: #f4f7fb;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr.is-active-tier {
	background: #eef4fb;
	box-shadow: inset 4px 0 0 #b65031, inset 0 0 0 2px rgba(182, 80, 49, 0.22);
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr.is-active-tier.is-best-value {
	background: #fff1e9;
}

/* Let the card itself draw the rounded bottom edge of an active last tier. */
@media only screen and (min-width: 550px) {
	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr:last-child.is-active-tier {
		box-shadow: inset 0 2px 0 rgba(182, 80, 49, 0.22);
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr:last-child.is-active-tier td:first-child {
		position: relative;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr:last-child.is-active-tier td:first-child::after {
		position: absolute;
		top: 0;
		bottom: 13px;
		left: 0;
		width: 4px;
		background: #b65031;
		border-radius: 0 0 4px;
		content: "";
		pointer-events: none;
	}
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td {
	padding: 14px !important;
	background: transparent !important;
	border: 0 !important;
	border-top: 1px solid #e7edf3 !important;
	color: #33445a;
	font-size: 14px;
	line-height: 1.35;
	text-align: center;
	vertical-align: middle;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td + td {
	border-left: 1px solid #edf1f5 !important;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td:first-child {
	color: #446084;
	font-size: 16px;
	font-weight: 800;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td:last-child,
.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td:last-child .amount {
	color: #b94d2c;
	font-size: 16px;
	font-weight: 800;
}

.single-product .sebinfo-bulk-best-badge {
	display: block;
	width: fit-content;
	margin: 6px auto 0;
	padding: 4px 7px;
	background: #b65031;
	border-radius: 999px;
	color: #fff;
	font-size: 8px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.single-product .sebinfo-bulk-offer-card .wdp_pricing_table_footer:empty {
	display: none;
}

@keyframes sebinfo-bulk-offer-reveal {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.single-product .wdp_bulk_table_content .sebinfo-bulk-offer-card {
		animation: none;
	}
}

@media only screen and (max-width: 549px) {
	.single-product .wdp_bulk_table_content {
		margin-top: 22px;
	}

	.single-product .wdp_bulk_table_content .sebinfo-bulk-offer-card {
		border-radius: 14px;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table_caption {
		grid-template-columns: 40px minmax(0, 1fr);
		column-gap: 11px;
		padding: 15px;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table_caption::before {
		width: 40px;
		height: 40px;
		font-size: 19px;
	}

	.single-product .sebinfo-bulk-offer-title {
		font-size: 17px;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
		clip-path: inset(50%);
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody,
	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr {
		display: block;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		padding: 12px 8px;
		border-top: 1px solid #e7edf3;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody tr.is-active-tier {
		box-shadow: inset 4px 0 0 #b65031;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td {
		display: block;
		min-width: 0;
		padding: 5px 7px !important;
		border: 0 !important;
		font-size: 12px;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td::before {
		display: block;
		margin-bottom: 4px;
		color: #8592a2;
		content: attr(data-label);
		font-size: 8px;
		font-weight: 800;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}

	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td:first-child,
	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td:last-child,
	.single-product .sebinfo-bulk-offer-card .wdp_pricing_table tbody td:last-child .amount {
		font-size: 13px;
	}

	.single-product .sebinfo-bulk-best-badge {
		font-size: 7px;
	}
}

/* Keep the desktop search from crowding the account controls. */
@media only screen and (min-width: 850px) {
	.header-main .header-search-form {
		width: 90%;
		max-width: 950px;
		margin-inline-end: 28px;
	}
}

/*
 * Live-search dropdown: stop long product names from forcing a horizontal
 * scrollbar. Each result is a flexbox (image · name · price) and Flatsome gives
 * the name flex:1 but no min-width, so an unbreakable token such as
 * "CE278A/CE285A/CB435A/…" (slashes aren't line-break opportunities) sets the
 * row's minimum width and pushes it past the panel edge. Letting the name
 * shrink, breaking such tokens, and clamping to two lines with an ellipsis
 * keeps every result — and its price — inside the dropdown, no sideways scroll.
 */
.autocomplete-suggestions {
	overflow-x: hidden;
}

.autocomplete-suggestion {
	min-width: 0;
}

.autocomplete-suggestion .search-name {
	display: -webkit-box;
	min-width: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow-wrap: anywhere;
	text-overflow: ellipsis;
}

.autocomplete-suggestion .search-price {
	flex: 0 0 auto;
	white-space: nowrap;
}

/* Homepage category cards. */
.home-category-grid {
	max-width: 1380px;
	margin-right: auto;
	margin-left: auto;
	align-items: stretch;
}

.home-category-grid.category-count-1 {
	max-width: 720px;
}

.home-category-grid.category-count-2 {
	max-width: 1040px;
}

.home-category-grid.category-count-3 {
	max-width: 1080px;
}

.home-category-grid:not(.is-carousel) .product-category,
.home-category-grid:not(.is-carousel) .col-inner,
.home-category-grid:not(.is-carousel) a {
	height: 100%;
}

.home-category-grid.is-carousel .product-category,
.home-category-grid.is-carousel .col-inner,
.home-category-grid.is-carousel a,
.home-category-grid.is-carousel .box-category {
	height: auto;
}

.home-category-grid a {
	display: block;
}

.home-category-grid .box-category {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 14px;
	box-shadow: 0 6px 20px rgba(36, 55, 80, 0.07);
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.home-category-grid .box-image {
	height: 200px;
	overflow: hidden;
	background: #fff;
	border-bottom: 1px solid #edf0f4;
}

.home-category-grid.category-count-1 .box-category,
.home-category-grid.category-count-2 .box-category {
	flex-direction: row;
}

.home-category-grid.category-count-1 .box-image,
.home-category-grid.category-count-2 .box-image {
	width: auto;
	border-right: 1px solid #edf0f4;
	border-bottom: 0;
}

.home-category-grid.category-count-1 .box-image {
	flex: 0 0 260px;
	height: 240px;
}

.home-category-grid.category-count-2 .box-image {
	flex: 0 0 210px;
	height: 210px;
}

.home-category-grid.category-count-3 .box-image {
	height: 210px;
}

.home-category-grid .box-image > div {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
}

.home-category-grid .box-image img {
	width: 100%;
	height: 100%;
	padding: 10px;
	object-fit: contain;
	transition: transform 0.3s ease;
}

.home-category-grid .box-text {
	position: static;
	flex: 1;
	min-width: 0;
	width: 100%;
	padding: 16px 18px;
	background: #fff;
	color: #34445a;
	text-align: left;
}

.home-category-grid .box-text-inner {
	/* The name and count badge sit side by side while they fit; flex-wrap lets
	   the badge drop to its own line under a long name instead of being shoved
	   past the card's clipped (overflow:hidden) right edge. */
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: center;
	justify-content: space-between;
	gap: 10px 12px;
	height: 100%;
}

.home-category-grid .header-title {
	/* flex:1 1 auto lets the name fill the row and wrap at spaces; keeping the
	   default min-width:auto (no min-width:0) stops it from shrinking below a
	   whole word, so words never break mid-letter — the badge wraps below
	   instead. overflow-wrap is only a last resort for an unbreakable word. */
	flex: 1 1 auto;
	margin: 0;
	color: #2f4055;
	font-size: 17px;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	overflow-wrap: break-word;
}

.home-category-grid .count {
	flex: 0 0 auto;
	margin: 0;
	padding: 6px 10px;
	background: #edf2f7;
	border-radius: 999px;
	color: #446084;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.home-category-grid .box-category:hover {
	border-color: rgba(68, 96, 132, 0.35);
	box-shadow: 0 14px 34px rgba(36, 55, 80, 0.14);
	transform: translateY(-4px);
}

/* Flickity clips upward transforms at its viewport edge. */
.home-category-grid.is-carousel .box-category:hover {
	transform: none;
}

.home-category-grid .box-category:hover .box-text {
	background: #fff;
	color: #34445a;
}

.home-category-grid .box-category:hover .box-image img {
	transform: scale(1.03);
}

/* Minimal, always-visible controls for homepage category and product carousels. */
:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) {
	overflow: visible;
}

.home-category-grid.is-carousel .flickity-viewport {
	min-height: 270px;
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button {
	top: 50% !important;
	bottom: auto !important;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px !important;
	height: 72px;
	margin: 0;
	padding: 0;
	background: transparent !important;
	border: 0;
	border-radius: 0;
	box-shadow: none !important;
	color: #9aa2ab;
	opacity: 1;
	transform: translateY(-50%) !important;
	visibility: visible;
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button.previous {
	left: -68px !important;
	right: auto !important;
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button.next {
	left: auto !important;
	right: -68px !important;
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button svg {
	display: none;
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button::before {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	border-top: 2px solid currentColor;
	border-left: 2px solid currentColor;
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button.previous::before {
	transform: rotate(-45deg);
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button.next::before {
	transform: rotate(135deg);
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button:hover {
	background: transparent !important;
	box-shadow: none !important;
	color: #626d78;
	transform: translateY(-50%) scale(1.06) !important;
}

:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button:focus-visible {
	outline: 2px solid rgba(68, 96, 132, 0.45);
	outline-offset: 2px;
}

@media only screen and (min-width: 550px) and (max-width: 849px) {
	.home-category-grid.category-count-2 .box-category {
		flex-direction: column;
	}

	.home-category-grid.category-count-2 .box-image {
		flex: 0 0 auto;
		width: 100%;
		height: 220px;
		border-right: 0;
		border-bottom: 1px solid #edf0f4;
	}

	:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button {
		width: 48px !important;
		height: 64px;
	}

	:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button::before {
		width: 20px;
		height: 20px;
	}

	:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button.previous {
		left: -26px !important;
	}

	:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button.next {
		right: -26px !important;
	}
}

@media only screen and (max-width: 549px) {
	.home-category-grid[class*="category-count-"] {
		max-width: 390px;
	}

	.home-category-grid.category-count-1 .box-category,
	.home-category-grid.category-count-2 .box-category {
		flex-direction: column;
	}

	.home-category-grid .box-image,
	.home-category-grid.category-count-1 .box-image,
	.home-category-grid.category-count-2 .box-image,
	.home-category-grid.category-count-3 .box-image {
		flex: 0 0 auto;
		width: 100%;
		height: 220px;
		border-right: 0;
		border-bottom: 1px solid #edf0f4;
	}

	.home-category-grid .box-image img {
		padding: 10px;
	}

	.home-category-grid .box-text {
		padding: 16px 18px;
	}

	:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button {
		width: 40px !important;
		height: 56px;
	}

	:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button::before {
		width: 17px;
		height: 17px;
	}

	.home-category-grid.is-carousel .flickity-viewport {
		min-height: 290px;
	}

	:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button.previous {
		left: -10px !important;
	}

	:is(.home-category-grid.is-carousel, .home-best-sellers-carousel) .flickity-prev-next-button.next {
		right: -10px !important;
	}
}

/* Minimal product-card sale and wishlist controls. */
.product-small .product-title,
.product-small .woocommerce-loop-product__title,
.product-small .product-title > a,
.product-small .woocommerce-loop-product__title > a {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.badge-container {
	top: 16px;
	left: -9px;
	z-index: 5;
	margin: 0 !important;
	-webkit-tap-highlight-color: transparent;
	-webkit-user-select: none;
	user-select: none;
	caret-color: transparent;
	pointer-events: none;
	transform: none;
}

.badge-container *,
.badge-container .onsale {
	-webkit-user-select: none;
	user-select: none;
	caret-color: transparent;
}

.badge-container .badge {
	display: block;
	width: auto;
	height: auto;
	min-width: 0;
	margin: 0;
}

.badge-container .badge-circle,
.badge-container .badge-circle-inside {
	margin-left: 0;
}

.badge-container .badge-inner.on-sale {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: auto;
	height: auto;
	min-height: 27px;
	padding: 6px 12px;
	background: #b65031;
	border: 0;
	border-radius: 0 6px 6px 0;
	box-shadow: 0 4px 12px rgba(92, 43, 27, 0.16);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.badge-container .badge-inner.on-sale::after {
	position: absolute;
	top: 100%;
	left: 0;
	width: 0;
	height: 0;
	border-top: 5px solid #783421;
	border-left: 5px solid transparent;
	content: "";
}

.badge-container .onsale {
	font-size: inherit;
	line-height: inherit;
}

.product-small .box-image > .image-tools.top.right {
	top: 12px;
	right: 12px;
	z-index: 3;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-4px);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.product-small:hover .box-image > .image-tools.top.right,
.product-small:focus-within .box-image > .image-tools.top.right {
	opacity: 1;
	pointer-events: auto;
	transform: none;
}

.wishlist-button.button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	min-width: 36px;
	min-height: 36px;
	margin: 0;
	padding: 0;
	background: rgba(255, 255, 255, 0.94) !important;
	border: 1px solid #dfe5ec;
	box-shadow: 0 4px 12px rgba(36, 55, 80, 0.1);
	color: #596879;
	overflow: visible;
	transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.wishlist-button.button i {
	top: 0;
	margin: 0;
	font-size: 17px;
	line-height: 1;
}

.wishlist-button.button:hover,
.wishlist-button.button:focus-visible {
	background: #fff !important;
	border-color: #9cabbc !important;
	box-shadow: 0 5px 14px rgba(36, 55, 80, 0.14);
	color: #446084;
	transform: translateY(-1px);
}

.wishlist-button.button.wishlist-added {
	background: #446084 !important;
	border-color: #446084;
	color: #fff;
}

.wishlist-button.button.loading {
	background: #fff !important;
	border-color: #d7e0ea !important;
	color: #596879 !important;
	box-shadow: 0 3px 10px rgba(36, 55, 80, 0.08);
	transform: none;
}

.wishlist-button.button.loading::after {
	top: 50%;
	left: 50%;
	width: 44px;
	height: 44px;
	margin: -22px 0 0 -22px;
	background: transparent;
	border: 3px solid #446084 !important;
	border-top-color: rgba(68, 96, 132, 0.16) !important;
	border-radius: 50%;
	animation-duration: 0.65s;
	pointer-events: none;
}

.wishlist-popup {
	display: none !important;
}

/* Product imagery is interactive media, not selectable text. */
.product-small .box-image,
.product-small .box-image * {
	-webkit-user-select: none;
	user-select: none;
	caret-color: transparent;
}

.product-small .box-image a,
.product-small .box-image img {
	cursor: pointer;
}

.product-small .box-image img {
	-webkit-user-drag: none;
	user-drag: none;
}

/* Show the complete product inside mini-cart thumbnail frames. */
.widget_shopping_cart ul.product_list_widget li img {
	background: #fff;
	object-fit: contain;
	object-position: center;
}

/* Turn the cart/checkout/order breadcrumbs into a compact progress stepper. */
.checkout-page-title {
	margin: 0;
	background: linear-gradient(180deg, #fbfcfd 0%, #f5f7fa 100%);
	border-bottom: 1px solid #e3e8ee;
}

.checkout-page-title .page-title-inner {
	min-height: 0;
	padding-top: 24px;
	padding-bottom: 24px;
}

.checkout-page-title .flex-col {
	width: 100%;
	max-height: none;
}

.checkout-breadcrumbs {
	--sebinfo-step-arrow: 22px;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 8px;
	width: 100%;
	margin: 0 auto;
	padding: 0 !important;
	font-size: clamp(13px, 1.2vw, 17px) !important;
	line-height: 1.2;
	letter-spacing: 0.025em;
}

.checkout-breadcrumbs > .divider,
.checkout-breadcrumbs > .icon-lock {
	display: none !important;
}

.checkout-breadcrumbs > a {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	position: relative;
	min-width: 0;
	min-height: 64px;
	margin: 0 !important;
	padding: 12px 34px;
	background: #edf1f5;
	color: #738094 !important;
	filter: drop-shadow(0 3px 5px rgba(37, 55, 76, 0.08));
	opacity: 1 !important;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	transition: color 0.2s ease, filter 0.2s ease, transform 0.2s ease;
}

.checkout-breadcrumbs > a:first-of-type {
	clip-path: polygon(
		0 0,
		calc(100% - var(--sebinfo-step-arrow)) 0,
		100% 50%,
		calc(100% - var(--sebinfo-step-arrow)) 100%,
		0 100%
	);
}

.checkout-breadcrumbs > a:not(:first-of-type) {
	clip-path: polygon(
		0 0,
		calc(100% - var(--sebinfo-step-arrow)) 0,
		100% 50%,
		calc(100% - var(--sebinfo-step-arrow)) 100%,
		0 100%,
		var(--sebinfo-step-arrow) 50%
	);
}

.checkout-breadcrumbs > a::before {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid #d4dbe4;
	border-radius: 50%;
	color: #67758a;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.checkout-breadcrumbs > a:nth-of-type(1)::before {
	content: "1";
}

.checkout-breadcrumbs > a:nth-of-type(2)::before {
	content: "2";
}

.checkout-breadcrumbs > a:nth-of-type(3)::before {
	content: "3";
}

body.woocommerce-checkout:not(.woocommerce-order-received) .checkout-breadcrumbs > a:nth-of-type(1),
body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(1),
body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(2) {
	background: #dfe8f2;
	color: #355675 !important;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .checkout-breadcrumbs > a:nth-of-type(1)::before,
body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(1)::before,
body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(2)::before {
	background: #6d87a5;
	border-color: #6d87a5;
	color: #fff;
}

.checkout-breadcrumbs > a.current {
	z-index: 2;
	background: #446084 !important;
	color: #fff !important;
	filter: drop-shadow(0 6px 10px rgba(38, 61, 89, 0.22));
}

.checkout-breadcrumbs > a.current::before {
	background: rgba(255, 255, 255, 0.18) !important;
	border-color: rgba(255, 255, 255, 0.45) !important;
	color: #fff !important;
}

.checkout-breadcrumbs > a[href]:not(.no-click):not(.current):hover {
	color: #24476f !important;
	filter: drop-shadow(0 6px 9px rgba(38, 61, 89, 0.16));
	transform: translateY(-1px);
}

.checkout-breadcrumbs > a.current,
.checkout-breadcrumbs > a.current:hover,
.checkout-breadcrumbs > a.current:focus {
	color: #fff !important;
}

.checkout-breadcrumbs > a:focus-visible {
	box-shadow: inset 0 0 0 3px rgba(198, 83, 48, 0.8);
	outline: 0;
}

@media only screen and (max-width: 849px) {
	.checkout-page-title .page-title-inner {
		padding: 18px 12px;
	}

	.checkout-breadcrumbs {
		--sebinfo-step-arrow: 16px;
		gap: 5px;
		font-size: 12px !important;
		letter-spacing: 0.01em;
	}

	.checkout-breadcrumbs > a {
		min-height: 60px;
		padding: 10px 22px;
	}

	.checkout-breadcrumbs > a::before {
		flex-basis: 24px;
		width: 24px;
		height: 24px;
		font-size: 11px;
	}
}

@media only screen and (max-width: 549px) {
	.checkout-page-title .page-title-inner {
		padding: 16px 12px 15px;
	}

	/*
	 * Phones: the angled chevrons crush the two longer labels into unreadable
	 * slivers. Swap them for a clean connected-step indicator — numbered circles
	 * joined by a track, with the label stacked beneath each one.
	 */
	.checkout-breadcrumbs {
		display: flex !important;
		align-items: flex-start;
		gap: 0;
		font-size: 10.5px !important;
		font-weight: 600;
		letter-spacing: 0;
		line-height: 1.25;
	}

	.checkout-breadcrumbs > a.hide-for-small {
		display: flex !important;
	}

	.checkout-breadcrumbs > a {
		flex: 1 1 0;
		flex-direction: column;
		justify-content: flex-start;
		gap: 8px;
		min-height: 0;
		padding: 0 3px;
		background: transparent !important;
		color: #8b94a5 !important;
		filter: none !important;
		clip-path: none !important;
		transform: none !important;
		white-space: normal;
	}

	.checkout-breadcrumbs > a::before {
		position: relative;
		z-index: 2;
		flex-basis: 30px;
		width: 30px;
		height: 30px;
		background: #fff;
		border: 2px solid #d4dbe4;
		color: #97a1b2;
		font-size: 13px;
	}

	/* Track joining the circles, drawn behind them. */
	.checkout-breadcrumbs > a:not(:last-of-type)::after {
		content: "";
		position: absolute;
		top: 14px;
		left: 50%;
		width: 100%;
		height: 2px;
		background: #dbe1e9;
		z-index: 1;
	}

	/* Steps already completed before the current one. */
	body.woocommerce-checkout:not(.woocommerce-order-received) .checkout-breadcrumbs > a:nth-of-type(1),
	body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(1),
	body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(2) {
		background: transparent !important;
		color: #4a5c7a !important;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) .checkout-breadcrumbs > a:nth-of-type(1)::before,
	body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(1)::before,
	body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(2)::before {
		background: #6d87a5 !important;
		border-color: #6d87a5 !important;
		color: #fff !important;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) .checkout-breadcrumbs > a:nth-of-type(1)::after,
	body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(1)::after,
	body.woocommerce-order-received .checkout-breadcrumbs > a:nth-of-type(2)::after {
		background: #6d87a5;
	}

	/* The current step: drop the chevron's filled block, keep only the circle. */
	.checkout-breadcrumbs > a.current {
		background: transparent !important;
		color: #26374b !important;
		font-weight: 700;
		filter: none !important;
	}

	.checkout-breadcrumbs > a.current::before {
		background: #446084 !important;
		border-color: #446084 !important;
		color: #fff !important;
		box-shadow: 0 0 0 4px rgba(68, 96, 132, 0.15);
	}
}

/*
 * Legible remove control shared by the cart, the wishlist and the mini-cart.
 * a.remove catches every × icon (the desktop wishlist × carries the class too);
 * a.remove_from_wishlist:not(.button) catches the mobile wishlist trash icon —
 * while both leave the wishlist's "Remove" text button (.remove_from_wishlist
 * .button, without .remove) untouched.
 */
a.remove,
a.remove_from_wishlist:not(.button) {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	padding: 0;
	font-size: 19px;
	font-weight: 400;
	line-height: 1 !important;
	color: #55606f !important;
	background-color: #fff !important;
	border: 1px solid #e0e5ec;
	border-radius: 50%;
	box-shadow: 0 2px 5px rgba(24, 39, 60, 0.18);
	text-decoration: none !important;
	transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease,
		box-shadow 0.15s ease, transform 0.12s ease;
}

a.remove:hover,
a.remove:focus,
a.remove_from_wishlist:not(.button):hover,
a.remove_from_wishlist:not(.button):focus {
	color: #fff !important;
	background-color: #e2401c !important;
	border-color: #e2401c !important;
	box-shadow: 0 4px 10px rgba(226, 64, 28, 0.38);
	transform: scale(1.08);
}

/*
 * The mini-cart popup pins the chip flush at right:0, so the round shape (and
 * its hover shadow) get clipped against the popup edge. Inset it a little on
 * both axes so the whole circle stays inside — mobile and desktop alike.
 */
ul.product_list_widget li a.remove {
	right: 10px !important;
	top: 8px !important;
}

/* On mobile the control sits over the product image — make it a neat corner chip. */
@media only screen and (max-width: 549px) {
	.product-remove a.remove {
		top: 7px !important;
		left: 7px !important;
		right: auto !important;
		width: 28px !important;
		height: 28px !important;
		font-size: 21px !important;
		line-height: 1 !important;
		box-shadow: 0 2px 7px rgba(24, 39, 60, 0.3);
	}
}

/* Clean, structured billing form for the classic WooCommerce checkout. */
body.woocommerce-checkout .page-checkout {
	padding-top: 32px;
	padding-bottom: 54px;
}

body.woocommerce-checkout form.checkout > .row {
	align-items: flex-start;
}

body.woocommerce-checkout #customer_details {
	padding: clamp(22px, 3vw, 34px);
	background: #fff;
	border: 1px solid #e1e6ec;
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(34, 52, 73, 0.07);
}

body.woocommerce-checkout #customer_details :is(
	.woocommerce-billing-fields > h3,
	.woocommerce-additional-fields > h3,
	.sebinfo-checkout-section-heading
) {
	position: relative;
	margin: 0 0 24px;
	padding: 0 0 14px;
	border-bottom: 1px solid #e8ecf1;
	color: #2f4055;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.025em;
}

body.woocommerce-checkout #customer_details :is(
	.woocommerce-billing-fields > h3,
	.woocommerce-additional-fields > h3,
	.sebinfo-checkout-section-heading
)::after {
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 44px;
	height: 2px;
	background: #c65330;
	content: "";
}

body.woocommerce-checkout #customer_details .woocommerce-billing-fields > h3 {
	display: none;
}

body.woocommerce-checkout #customer_details .sebinfo-checkout-section-heading {
	grid-column: 1 / -1;
	margin-bottom: 0;
}

body.woocommerce-checkout #customer_details .sebinfo-checkout-section-heading.is-billing {
	margin-top: 8px;
}

body.woocommerce-checkout #customer_details .sebinfo-checkout-section-heading > h3 {
	margin: 0;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}

body.woocommerce-checkout #customer_details .sebinfo-checkout-section-heading > p {
	margin: 6px 0 0;
	color: #7a8796;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0;
	text-transform: none;
}

body.woocommerce-checkout #customer_details .woocommerce-additional-fields {
	margin-top: 32px;
}

body.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

body.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper > .form-row,
body.woocommerce-checkout #customer_details .woocommerce-additional-fields__field-wrapper > .form-row {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.woocommerce-checkout #customer_details :is(
	#billing_email_field,
	#billing_address_1_field
) {
	grid-column: 1 / -1;
}

/* Give the account opt-in its own branded row below the address fields. */
body.woocommerce-checkout #customer_details .woocommerce-account-fields {
	margin-top: 22px;
}

body.woocommerce-checkout #customer_details .woocommerce-account-fields > p.create-account {
	float: none;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

body.woocommerce-checkout #customer_details .woocommerce-account-fields > p.create-account > label {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 54px;
	margin: 0;
	padding: 13px 15px;
	background: #f6f8fb;
	border: 1px solid #d8e0e8;
	border-radius: 10px;
	color: #34465b;
	cursor: pointer;
	font-size: 14.5px;
	font-weight: 650;
	line-height: 1.35;
	transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

body.woocommerce-checkout #customer_details .woocommerce-account-fields > p.create-account > label:hover {
	background: #fff;
	border-color: #b9c5d1;
}

body.woocommerce-checkout #customer_details #createaccount {
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	display: inline-block;
	flex: 0 0 22px;
	width: 22px !important;
	height: 22px !important;
	min-height: 22px;
	margin: 0 !important;
	padding: 0 !important;
	background: #fff;
	border: 1.5px solid #9cabb9;
	border-radius: 6px;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

body.woocommerce-checkout #customer_details #createaccount::after {
	position: absolute;
	top: 3px;
	left: 7px;
	width: 6px;
	height: 11px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	content: "";
	opacity: 0;
	transform: rotate(45deg) scale(0.7);
	transition: opacity 0.12s ease, transform 0.12s ease;
}

body.woocommerce-checkout #customer_details #createaccount:checked {
	background: #446084;
	border-color: #446084;
	box-shadow: 0 3px 8px rgba(68, 96, 132, 0.24);
}

body.woocommerce-checkout #customer_details #createaccount:checked::after {
	opacity: 1;
	transform: rotate(45deg) scale(1);
}

body.woocommerce-checkout #customer_details #createaccount:focus-visible {
	border-color: #446084;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.18);
	outline: 0;
}

body.woocommerce-checkout #customer_details .sebinfo-city-select:disabled + .select2-container .select2-selection--single,
body.woocommerce-checkout #customer_details .select2-container--disabled .select2-selection--single {
	background: #f2f4f6;
	color: #98a3b0;
	cursor: not-allowed;
}

body.woocommerce-checkout #customer_details .select2-selection__placeholder {
	color: #98a3b0;
}

body.woocommerce-checkout #customer_details .woocommerce-input-wrapper {
	display: block;
	width: 100%;
}

body.woocommerce-checkout #customer_details .form-row > label {
	display: block;
	margin: 0 0 8px;
	color: #34465b;
	font-size: 13.5px;
	font-weight: 650;
	line-height: 1.35;
	letter-spacing: 0.005em;
}

body.woocommerce-checkout #customer_details .form-row label .required {
	color: #b84d2e;
	font-weight: 700;
}

body.woocommerce-checkout #customer_details .form-row label .optional {
	color: #8994a2;
	font-size: 11.5px;
	font-weight: 500;
}

body.woocommerce-checkout #customer_details :is(
	input.input-text,
	select,
	textarea.input-text
) {
	width: 100%;
	margin: 0;
	background-color: #fbfcfd;
	border: 1px solid #d8e0e8;
	border-radius: 8px;
	box-shadow: none;
	color: #283a50;
	font-size: 15px;
	font-weight: 400;
	transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

body.woocommerce-checkout #customer_details :is(input.input-text, select) {
	height: 50px;
	min-height: 50px;
	padding: 0 14px;
}

body.woocommerce-checkout #customer_details textarea.input-text {
	min-height: 120px;
	padding: 13px 14px;
	line-height: 1.5;
	resize: vertical;
}

body.woocommerce-checkout #customer_details :is(
	input.input-text,
	select,
	textarea.input-text
):hover {
	background-color: #fff;
	border-color: #b9c5d1;
}

body.woocommerce-checkout #customer_details :is(
	input.input-text,
	select,
	textarea.input-text
):focus {
	background-color: #fff;
	border-color: #6e87a4;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.13);
	outline: 0;
}

body.woocommerce-checkout #customer_details :is(
	input.input-text,
	textarea.input-text
)::placeholder {
	color: #98a3b0;
	opacity: 1;
}

body.woocommerce-checkout #customer_details .woocommerce-invalid :is(
	input.input-text,
	select,
	.select2-selection
) {
	border-color: #bd5738;
	box-shadow: 0 0 0 3px rgba(189, 87, 56, 0.1);
}

body.woocommerce-checkout #customer_details .woocommerce-validated :is(
	input.input-text,
	select,
	.select2-selection
) {
	border-color: #91aa9a;
}

body.woocommerce-checkout #customer_details .woocommerce-input-wrapper > .select2-container {
	display: block;
	width: 100% !important;
}

body.woocommerce-checkout #customer_details .select2-container .select2-selection--single {
	height: 50px;
	background: #fbfcfd;
	border: 1px solid #d8e0e8;
	border-radius: 8px;
	box-shadow: none;
	transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

body.woocommerce-checkout #customer_details .select2-container .select2-selection--single:hover {
	background: #fff;
	border-color: #b9c5d1;
}

body.woocommerce-checkout #customer_details .select2-container--focus .select2-selection--single,
body.woocommerce-checkout #customer_details .select2-container--open .select2-selection--single {
	background: #fff;
	border-color: #6e87a4;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.13);
}

body.woocommerce-checkout #customer_details .select2-container .select2-selection__rendered {
	padding: 0 42px 0 14px;
	color: #283a50;
	font-size: 15px;
	line-height: 48px;
}

body.woocommerce-checkout #customer_details .select2-container .select2-selection__arrow {
	top: 0;
	right: 12px;
	width: 22px;
	height: 50px;
}

body.woocommerce-checkout .select2-dropdown {
	border: 1px solid #c7d1dc;
	border-radius: 8px;
	box-shadow: 0 12px 28px rgba(34, 52, 73, 0.16);
	overflow: hidden;
}

body.woocommerce-checkout .select2-search--dropdown {
	padding: 10px;
}

body.woocommerce-checkout .select2-search--dropdown .select2-search__field {
	height: 42px;
	padding: 0 12px;
	border: 1px solid #cfd8e2;
	border-radius: 7px;
	box-shadow: none;
}

body.woocommerce-checkout .select2-search--dropdown .select2-search__field:focus {
	border-color: #6e87a4;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.12);
	outline: 0;
}

body.woocommerce-checkout .select2-results__option {
	margin: 0;
	padding: 10px 13px;
	font-size: 14px;
}

body.woocommerce-checkout .select2-results__option--highlighted[aria-selected],
body.woocommerce-checkout .select2-results__option--highlighted[data-selected] {
	background: #446084;
	color: #fff;
}

.sebinfo-city-select + .select2-container .select2-selection__clear {
	display: none !important;
}

/* Region and city use a centered dialog instead of an anchored SelectWoo menu. */
.sebinfo-location-source,
.sebinfo-location-source + .select2-container {
	display: none !important;
}

button.sebinfo-location-trigger {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	height: 50px;
	min-height: 50px;
	margin: 0;
	padding: 0 46px 0 14px;
	background: #fbfcfd;
	border: 1px solid #d8e0e8;
	border-radius: 8px;
	box-shadow: none;
	color: #283a50;
	font: inherit;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.3;
	text-align: left;
	text-transform: none;
	transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

button.sebinfo-location-trigger::after {
	position: absolute;
	top: 50%;
	right: 18px;
	width: 8px;
	height: 8px;
	border-right: 2px solid #607288;
	border-bottom: 2px solid #607288;
	content: "";
	transform: translateY(-50%) rotate(-45deg);
}

button.sebinfo-location-trigger:hover {
	background: #fff;
	border-color: #b9c5d1;
	box-shadow: none;
	color: #283a50;
	transform: none;
}

button.sebinfo-location-trigger:focus,
button.sebinfo-location-trigger:focus-visible,
button.sebinfo-location-trigger[aria-expanded="true"] {
	background: #fff;
	border-color: #6e87a4;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.13);
	color: #283a50;
	outline: 0;
}

button.sebinfo-location-trigger:disabled {
	background: #f2f4f6;
	border-color: #dfe4e9;
	box-shadow: none;
	color: #98a3b0;
	cursor: not-allowed;
	opacity: 1;
}

button.sebinfo-location-trigger:disabled::after {
	border-color: #aab3bd;
}

.sebinfo-location-trigger__value {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sebinfo-location-trigger.is-placeholder .sebinfo-location-trigger__value {
	color: #98a3b0;
}

body.woocommerce-checkout #customer_details .woocommerce-invalid button.sebinfo-location-trigger {
	border-color: #bd5738;
	box-shadow: 0 0 0 3px rgba(189, 87, 56, 0.1);
}

.sebinfo-location-modal[hidden] {
	display: none !important;
}

/*
 * The modal is pinned to the visual viewport (top/left/width/height fed by JS
 * from window.visualViewport) so that when a mobile keyboard opens, the overlay
 * shrinks to the area above it and the centered dialog is never clipped. The
 * fallbacks keep it full-screen on desktop and when JS/visualViewport is absent.
 */
.sebinfo-location-modal {
	position: fixed;
	top: var(--sebinfo-vv-top, 0px);
	left: var(--sebinfo-vv-left, 0px);
	width: var(--sebinfo-vv-width, 100vw);
	height: var(--sebinfo-vv-height, 100vh);
	z-index: 1000000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	isolation: isolate;
	overflow: hidden;
	overscroll-behavior: contain;
}

.sebinfo-location-modal__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(20, 31, 44, 0.5);
}

.sebinfo-location-dialog {
	position: relative;
	z-index: 1;
	width: min(620px, calc(var(--sebinfo-vv-width, 100vw) - 32px));
	max-width: none;
	max-height: calc(100vh - 32px);
	max-height: calc(var(--sebinfo-vv-height, 100dvh) - 32px);
	margin: auto;
	padding: 0;
	background: #fff;
	border: 0;
	border-radius: 18px;
	box-shadow: 0 20px 52px rgba(21, 34, 49, 0.24);
	color: #283a50;
	font-family: inherit;
	overflow: hidden;
}

.sebinfo-location-modal.is-open .sebinfo-location-dialog {
	animation: sebinfo-location-dialog-in 0.12s cubic-bezier(0.2, 0.75, 0.25, 1);
}

.sebinfo-location-modal.is-open .sebinfo-location-modal__backdrop {
	animation: sebinfo-location-backdrop-in 0.1s ease-out;
}

.sebinfo-location-dialog__shell {
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - 32px);
	max-height: calc(var(--sebinfo-vv-height, 100dvh) - 32px);
}

.sebinfo-location-dialog__header {
	display: flex;
	flex: 0 0 auto;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 26px 20px;
	border-bottom: 1px solid #e7ebf0;
}

.sebinfo-location-dialog__eyebrow {
	margin: 0 0 5px;
	color: #8a96a5;
	font-size: 11px;
	font-weight: 750;
	letter-spacing: 0.085em;
	line-height: 1.3;
	text-transform: uppercase;
}

.sebinfo-location-dialog h2 {
	margin: 0;
	color: #2d4055;
	font-size: 22px;
	font-weight: 750;
	letter-spacing: -0.015em;
	line-height: 1.25;
	text-transform: none;
}

button.sebinfo-location-dialog__close {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	min-height: 38px;
	margin: 0;
	padding: 0 0 2px;
	background: #f1f4f7;
	border: 0;
	border-radius: 50%;
	box-shadow: none;
	color: #506276;
	font-size: 24px;
	font-weight: 350;
	letter-spacing: 0;
	line-height: 1;
	text-transform: none;
	transition: background-color 0.16s ease, color 0.16s ease;
}

button.sebinfo-location-dialog__close:hover,
button.sebinfo-location-dialog__close:focus-visible {
	background: #e5ebf0;
	box-shadow: none;
	color: #263b52;
	outline: 0;
	transform: none;
}

.sebinfo-location-dialog__search {
	position: relative;
	flex: 0 0 auto;
	margin: 20px 26px 0;
}

.sebinfo-location-dialog__search-icon {
	position: absolute;
	top: 50%;
	left: 16px;
	width: 14px;
	height: 14px;
	border: 2px solid #75869a;
	border-radius: 50%;
	pointer-events: none;
	transform: translateY(-58%);
}

.sebinfo-location-dialog__search-icon::after {
	position: absolute;
	right: -5px;
	bottom: -4px;
	width: 6px;
	height: 2px;
	background: #75869a;
	border-radius: 999px;
	content: "";
	transform: rotate(45deg);
	transform-origin: left center;
}

.sebinfo-location-dialog__search input {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 16px 0 46px;
	background: #f7f9fb;
	border: 1px solid #d7dfe7;
	border-radius: 10px;
	box-shadow: none;
	color: #293c51;
	font-size: 15px;
	line-height: 48px;
}

.sebinfo-location-dialog__search input:focus {
	background: #fff;
	border-color: #6e87a4;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.12);
	outline: 0;
}

.sebinfo-location-dialog__search input::placeholder {
	color: #8c98a7;
	opacity: 1;
}

.sebinfo-location-dialog__count {
	flex: 0 0 auto;
	padding: 12px 28px 8px;
	color: #8a96a5;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.045em;
	line-height: 1.3;
	text-transform: uppercase;
}

.sebinfo-location-dialog__list {
	flex: 1 1 auto;
	min-height: 0;
	max-height: min(430px, 53vh);
	max-height: min(430px, 53dvh);
	padding: 0 14px 16px;
	overflow-x: hidden;
	overflow-y: auto;
	contain: layout style paint;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

/*
 * On touch devices the dialog is capped to the visual viewport (above the
 * keyboard), so let the options list fill that space instead of the desktop cap.
 */
@media (pointer: coarse) {
	.sebinfo-location-dialog__list {
		max-height: none;
	}
}

button.sebinfo-location-option {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 28px;
	align-items: center;
	gap: 14px;
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: 11px 13px;
	background: transparent;
	border: 0;
	border-radius: 9px;
	box-shadow: none;
	color: #304359;
	font: inherit;
	letter-spacing: 0;
	line-height: 1.35;
	text-align: left;
	text-transform: none;
	transition: background-color 0.08s ease, color 0.08s ease;
}

button.sebinfo-location-option[hidden] {
	display: none !important;
}

button.sebinfo-location-option + button.sebinfo-location-option {
	margin-top: 2px;
}

button.sebinfo-location-option:hover,
button.sebinfo-location-option:focus-visible {
	background: #f2f5f8;
	box-shadow: none;
	color: #263b52;
	outline: 0;
	transform: none;
}

button.sebinfo-location-option.is-selected {
	background: #edf3f8;
	color: #294968;
}

.sebinfo-location-option__copy {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 2px;
}

.sebinfo-location-option__label {
	font-size: 14.5px;
	font-weight: 600;
}

.sebinfo-location-option__meta {
	color: #8995a4;
	font-size: 11.5px;
	font-weight: 500;
}

.sebinfo-location-option__check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	background: transparent;
	border-radius: 50%;
	color: transparent;
	font-size: 13px;
	font-weight: 800;
}

.sebinfo-location-option.is-selected .sebinfo-location-option__check {
	background: #446084;
	color: #fff;
}

.sebinfo-location-dialog__empty {
	margin: 0;
	padding: 38px 24px 46px;
	color: #7d8997;
	font-size: 14px;
	line-height: 1.5;
	text-align: center;
}

@keyframes sebinfo-location-dialog-in {
	from {
		opacity: 0;
		transform: translate3d(0, 6px, 0);
	}

	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes sebinfo-location-backdrop-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sebinfo-location-modal.is-open .sebinfo-location-dialog,
	.sebinfo-location-modal.is-open .sebinfo-location-modal__backdrop {
		animation: none;
	}

	button.sebinfo-location-trigger,
	button.sebinfo-location-option,
	button.sebinfo-location-dialog__close {
		transition: none;
	}
}

@media only screen and (max-width: 649px) {
	.sebinfo-location-dialog {
		width: calc(var(--sebinfo-vv-width, 100vw) - 20px);
		max-height: calc(100vh - 20px);
		max-height: calc(var(--sebinfo-vv-height, 100dvh) - 20px);
		border-radius: 15px;
	}

	.sebinfo-location-dialog__shell {
		max-height: calc(100vh - 20px);
		max-height: calc(var(--sebinfo-vv-height, 100dvh) - 20px);
	}

	.sebinfo-location-dialog__header {
		padding: 20px 19px 17px;
	}

	.sebinfo-location-dialog h2 {
		font-size: 20px;
	}

	.sebinfo-location-dialog__search {
		margin: 16px 18px 0;
	}

	.sebinfo-location-dialog__count {
		padding-right: 20px;
		padding-left: 20px;
	}

	.sebinfo-location-dialog__list {
		padding-right: 9px;
		padding-left: 9px;
	}
}

@media only screen and (max-width: 649px) {
	body.woocommerce-checkout .page-checkout {
		padding-top: 22px;
		padding-bottom: 36px;
	}

	body.woocommerce-checkout #customer_details {
		padding: 20px 17px;
		border-radius: 11px;
	}

	body.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
		gap: 17px;
	}

	body.woocommerce-checkout #customer_details #billing_address_1_field {
		grid-column: auto;
	}

	body.woocommerce-checkout #customer_details .woocommerce-account-fields {
		margin-top: 18px;
	}

	body.woocommerce-checkout #customer_details :is(
		.woocommerce-billing-fields > h3,
		.woocommerce-additional-fields > h3,
		.sebinfo-checkout-section-heading
	) {
		font-size: 17px;
	}
}

/* Modern order summary and customer details on the completed-order page. */
body.woocommerce-order-received #main {
	background: #f6f8fb;
}

body.woocommerce-order-received .page-checkout {
	padding-top: clamp(28px, 4vw, 48px);
	padding-bottom: 24px;
	background: #f6f8fb;
}

body.woocommerce-order-received .woocommerce-order {
	color: #35465a;
}

body.woocommerce-order-received .woocommerce-order > p:not([class]) {
	position: relative;
	margin: 0 0 24px;
	padding: 15px 18px 15px 52px;
	background: #fff8f3;
	border: 1px solid #f0d8cc;
	border-radius: 12px;
	box-shadow: 0 5px 18px rgba(55, 70, 90, 0.05);
	color: #5d463c;
	font-size: 14px;
	line-height: 1.55;
}

body.woocommerce-order-received .woocommerce-order > p:not([class])::before {
	position: absolute;
	top: 50%;
	left: 17px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	background: #c65330;
	border-radius: 50%;
	color: #fff;
	content: "i";
	font-size: 13px;
	font-style: italic;
	font-weight: 800;
	line-height: 1;
	transform: translateY(-50%);
}

body.woocommerce-order-received .woocommerce-order-details {
	margin: 0 0 24px;
	background: #fff;
	border: 1px solid #e1e7ee;
	border-radius: 16px;
	box-shadow: 0 14px 38px rgba(34, 52, 73, 0.08);
	overflow: hidden;
}

body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title {
	position: relative;
	margin: 0;
	color: #2f4055;
	font-size: clamp(20px, 2.4vw, 25px);
	font-weight: 750;
	line-height: 1.3;
	letter-spacing: -0.015em;
	text-transform: none;
}

body.woocommerce-order-received .woocommerce-order-details__title {
	padding: 23px 28px 21px 47px;
	border-bottom: 1px solid #e8edf2;
}

body.woocommerce-order-received .woocommerce-order-details__title::before {
	position: absolute;
	top: 50%;
	left: 28px;
	width: 4px;
	height: 30px;
	background: #c65330;
	border-radius: 999px;
	content: "";
	transform: translateY(-50%);
}

body.woocommerce-order-received .woocommerce-order-details .shop_table {
	width: 100%;
	margin: 0;
	background: transparent;
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
	box-shadow: none;
	table-layout: fixed;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table thead {
	background: #f7f9fc;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table thead th {
	padding: 12px 28px;
	background: transparent;
	border: 0;
	border-bottom: 1px solid #e8edf2;
	color: #778598;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table :is(
	.product-total,
	.woocommerce-table__product-total
) {
	width: 31%;
	text-align: right;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table tbody td {
	padding: 20px 28px;
	background: #fff;
	border: 0;
	border-bottom: 1px solid #edf1f5;
	color: #34465b;
	font-size: 14.5px;
	line-height: 1.5;
	vertical-align: middle;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table .product-name a {
	color: #355c82;
	font-weight: 650;
	text-decoration: none;
	transition: color 0.18s ease;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table .product-name a:hover {
	color: #c65330;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table .product-quantity {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 27px;
	height: 27px;
	margin-left: 6px;
	padding: 0 8px;
	background: #edf2f7;
	border-radius: 999px;
	color: #52667d;
	font-size: 12px;
	font-weight: 750;
	line-height: 1;
	white-space: nowrap;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table .amount {
	color: #243b55;
	font-weight: 750;
	white-space: nowrap;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot th,
body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot td {
	padding: 13px 28px;
	background: #fff;
	border: 0;
	border-top: 1px solid #edf1f5;
	color: #526176;
	font-size: 13.5px;
	line-height: 1.45;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot th {
	font-weight: 650;
	text-align: left;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot td {
	text-align: right;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot tr:nth-last-child(2) :is(th, td) {
	padding-top: 17px;
	padding-bottom: 17px;
	background: #f2f6fa;
	color: #243b55;
	font-size: 16px;
	font-weight: 800;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot tr:nth-last-child(2) .amount {
	color: #b84f31;
	font-size: 17px;
}

body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot tr:last-child :is(th, td) {
	padding-top: 15px;
	padding-bottom: 15px;
	background: #fbfcfe;
}

body.woocommerce-order-received .woocommerce-customer-details {
	margin: 0;
}

/* WooCommerce omits the address-column wrapper when there is no shipping card. */
body.woocommerce-order-received .woocommerce-customer-details:not(:has(> .woocommerce-columns--addresses)) {
	background: #fff;
	border: 1px solid #e1e7ee;
	border-radius: 16px;
	box-shadow: 0 14px 38px rgba(34, 52, 73, 0.08);
	overflow: hidden;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
	float: none;
	width: auto;
	max-width: none;
	padding: 0;
	background: #fff;
	border: 1px solid #e1e7ee;
	border-radius: 16px;
	box-shadow: 0 14px 38px rgba(34, 52, 73, 0.08);
	overflow: hidden;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column:only-child {
	grid-column: 1 / -1;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title {
	padding: 23px 28px 21px 47px;
	border-bottom: 1px solid #e8edf2;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title::before {
	position: absolute;
	top: 50%;
	left: 28px;
	width: 4px;
	height: 30px;
	background: #446084;
	border-radius: 999px;
	content: "";
	transform: translateY(-50%);
}

body.woocommerce-order-received .woocommerce-customer-details address {
	min-height: 100%;
	margin: 0;
	padding: 23px 28px 25px;
	background: #fff;
	border: 0;
	border-radius: 0;
	color: #526176;
	font-size: 14.5px;
	font-style: normal;
	font-weight: 450;
	line-height: 1.85;
}

body.woocommerce-order-received .woocommerce-customer-details address > p {
	position: relative;
	margin: 17px 0 0;
	padding: 13px 0 0 34px;
	border-top: 1px solid #edf1f5;
	color: #344b66;
	font-size: 14px;
	line-height: 1.45;
	word-break: break-word;
}

body.woocommerce-order-received .woocommerce-customer-details address > p::before {
	position: absolute;
	top: 12px;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	background: #edf2f7;
	border-radius: 50%;
	color: #446084;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-customer-details--phone::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23446084' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.79 19.79 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.69 2.8a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.33 1.85.56 2.81.69A2 2 0 0 1 22 16.92z'%2F%3E%3C%2Fsvg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 13px 13px;
	content: "";
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-customer-details--email::before {
	content: "@";
}

@media only screen and (max-width: 649px) {
	body.woocommerce-order-received .page-checkout {
		padding-top: 22px;
		padding-bottom: 18px;
	}

	body.woocommerce-order-received .woocommerce-order > p:not([class]) {
		margin-bottom: 18px;
		padding: 13px 15px 13px 47px;
	}

	body.woocommerce-order-received .woocommerce-order-details,
	body.woocommerce-order-received .woocommerce-customer-details:not(:has(> .woocommerce-columns--addresses)),
	body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
		border-radius: 12px;
	}

	body.woocommerce-order-received .woocommerce-order-details__title,
	body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title {
		padding: 19px 19px 17px 37px;
	}

	body.woocommerce-order-received .woocommerce-order-details__title::before,
	body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title::before {
		left: 19px;
		height: 26px;
	}

	body.woocommerce-order-received .woocommerce-order-details .shop_table thead th,
	body.woocommerce-order-received .woocommerce-order-details .shop_table tbody td,
	body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot th,
	body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot td {
		padding-right: 18px;
		padding-left: 18px;
	}

	body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	body.woocommerce-order-received .woocommerce-customer-details address {
		padding: 19px 20px 22px;
	}
}

@media only screen and (max-width: 449px) {
	body.woocommerce-order-received .woocommerce-order-details .shop_table thead {
		display: none;
	}

	body.woocommerce-order-received .woocommerce-order-details .shop_table tbody,
	body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot {
		display: block;
	}

	body.woocommerce-order-received .woocommerce-order-details .shop_table tbody tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 14px;
		padding: 17px 18px;
		border-bottom: 1px solid #edf1f5;
	}

	body.woocommerce-order-received .woocommerce-order-details .shop_table tbody td {
		display: block;
		width: auto !important;
		padding: 0;
		border: 0;
	}

	body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot tr {
		display: grid;
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
		align-items: center;
	}

	body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot th,
	body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot td {
		display: block;
		width: auto;
		padding: 12px 18px;
	}

	body.woocommerce-order-received .woocommerce-order-details .shop_table tfoot td::before {
		display: none;
	}
}

/* Quantities submit automatically; keep the button visible as a no-JS fallback. */
body.sebinfo-cart-auto-update .woocommerce-cart-form [name="update_cart"] {
	display: none !important;
}

/* Keep the single-product purchase controls aligned and visually consistent. */
body.single-product .product-main .product-info form.cart,
body.single-product .product-main .product-info .woocommerce-variation-add-to-cart {
	--purchase-control-height: 54px;
	--purchase-control-radius: 10px;
	align-items: stretch;
	column-gap: 12px;
	row-gap: 12px;
}

body.single-product .product-main .product-info form.cart > .ux-quantity,
body.single-product .product-main .product-info .woocommerce-variation-add-to-cart > .ux-quantity {
	display: flex;
	flex: 0 0 132px;
	width: 132px;
	height: var(--purchase-control-height);
	margin: 0 !important;
	background: #fff;
	border: 1px solid #dbe1e8;
	border-radius: var(--purchase-control-radius);
	box-shadow: 0 3px 10px rgba(36, 55, 80, 0.06);
	box-sizing: border-box;
	overflow: hidden;
}

body.single-product .product-main .product-info .ux-quantity > .button {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 40px;
	width: 40px;
	height: 100%;
	min-height: 0;
	margin: 0 !important;
	padding: 0;
	background: #f7f9fb !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: #506176;
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	text-shadow: none;
}

body.single-product .product-main .product-info .ux-quantity > .button:hover,
body.single-product .product-main .product-info .ux-quantity > .button:focus-visible {
	background: #edf1f5 !important;
	color: #2f4055;
}

body.single-product .product-main .product-info .ux-quantity > input.qty[type="number"] {
	display: block;
	flex: 1 1 0;
	width: 0;
	min-width: 0;
	max-width: none;
	height: 100%;
	min-height: 0;
	margin: 0;
	padding: 0 4px;
	background: #fff;
	border: 0;
	border-right: 1px solid #e2e7ec;
	border-left: 1px solid #e2e7ec;
	border-radius: 0 !important;
	box-shadow: none;
	color: #2f4055;
	font-size: 17px;
	font-weight: 600;
	line-height: 1;
	text-align: center;
}

body.single-product .product-main .product-info .ux-quantity:focus-within {
	border-color: #8498ae;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.13);
}

body.single-product .product-main .product-info form.cart > .single_add_to_cart_button,
body.single-product .product-main .product-info .woocommerce-variation-add-to-cart > .single_add_to_cart_button,
body.single-product .product-main .product-info form.cart > .ux-buy-now-button,
body.single-product .product-main .product-info .woocommerce-variation-add-to-cart > .ux-buy-now-button {
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--purchase-control-height);
	min-height: var(--purchase-control-height);
	margin: 0 !important;
	padding: 0 22px;
	border-radius: var(--purchase-control-radius) !important;
	box-shadow: 0 4px 12px rgba(36, 55, 80, 0.12);
	box-sizing: border-box;
	line-height: 1.15;
	white-space: nowrap;
}

body.single-product .product-main .product-info form.cart > .single_add_to_cart_button,
body.single-product .product-main .product-info .woocommerce-variation-add-to-cart > .single_add_to_cart_button {
	flex: 1 1 180px;
	width: auto;
	max-width: none;
}

body.single-product .product-main .product-info form.cart > .ux-buy-now-button,
body.single-product .product-main .product-info .woocommerce-variation-add-to-cart > .ux-buy-now-button {
	flex: 1 0 100% !important;
	width: 100%;
	max-width: 100%;
}

@media only screen and (max-width: 359px) {
	body.single-product .product-main .product-info form.cart > .ux-quantity,
	body.single-product .product-main .product-info .woocommerce-variation-add-to-cart > .ux-quantity {
		flex-basis: 120px;
		width: 120px;
	}

	body.single-product .product-main .product-info form.cart > .single_add_to_cart_button,
	body.single-product .product-main .product-info .woocommerce-variation-add-to-cart > .single_add_to_cart_button {
		flex-basis: 165px;
		padding-right: 14px;
		padding-left: 14px;
		font-size: 0.9em;
	}
}

/* Spacious, modern desktop navigation. */
#wide-nav,
#wide-nav > .flex-row {
	min-height: 58px;
}

#wide-nav .header-bottom-nav {
	display: flex;
	align-items: stretch;
	column-gap: 8px;
}

#wide-nav .header-bottom-nav > li {
	display: flex;
	align-items: stretch;
	margin: 0 !important;
	position: relative;
}

#wide-nav .header-bottom-nav > li > a.nav-top-link {
	display: flex;
	align-items: center;
	min-height: 58px;
	padding: 0 14px !important;
	border-radius: 6px;
	color: rgba(255, 255, 255, 0.86);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.015em;
	line-height: 1;
	transition: color 0.2s ease, background-color 0.2s ease;
}

#wide-nav .header-bottom-nav > li:hover > a.nav-top-link,
#wide-nav .header-bottom-nav > li > a.nav-top-link:focus-visible {
	background: rgba(255, 255, 255, 0.07);
	color: #fff;
}

#wide-nav .header-bottom-nav > li::after {
	position: absolute;
	right: 14px;
	bottom: 0;
	left: 14px;
	width: auto !important;
	height: 3px;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 3px 3px 0 0;
	background: #c65330;
	content: "";
	opacity: 0;
	transform: scaleX(0.55);
	transition: opacity 0.2s ease, transform 0.2s ease;
	pointer-events: none;
}

#wide-nav .header-bottom-nav > li:hover::after,
#wide-nav .header-bottom-nav > li.active::after,
#wide-nav .header-bottom-nav > li.current-menu-item::after,
#wide-nav .header-bottom-nav > li.current-menu-ancestor::after {
	opacity: 1;
	transform: scaleX(1);
}

#wide-nav .header-bottom-nav > li > a .icon-angle-down {
	margin-left: 7px;
	font-size: 13px;
	opacity: 0.7;
}

#wide-nav .header-bottom-nav > li.has-dropdown::before {
	display: none !important;
}

#wide-nav .header-bottom-nav > li > .nav-dropdown {
	top: calc(100% + 8px);
	display: block;
	width: 240px;
	min-width: 240px;
	max-width: 240px;
	max-height: calc(100vh - 290px);
	margin: 0 !important;
	padding: 8px;
	border: 1px solid #e4e8ed;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 14px 34px rgba(27, 39, 55, 0.16);
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	transform: translateY(5px);
	transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}

#wide-nav .header-bottom-nav > li > .nav-dropdown::before {
	position: absolute;
	top: -9px;
	right: 0;
	left: 0;
	height: 9px;
	content: "";
}

#wide-nav .header-bottom-nav > li.current-dropdown > .nav-dropdown,
#wide-nav .header-bottom-nav > li.has-dropdown:hover > .nav-dropdown {
	left: 0 !important;
	transform: translateY(0);
}

#wide-nav .nav-dropdown > li {
	display: block;
	width: 100%;
	margin: 0 !important;
}

#wide-nav .nav-dropdown > li + li {
	margin-top: 3px !important;
}

#wide-nav .nav-dropdown > li > a {
	display: flex;
	align-items: center;
	min-height: 42px;
	margin: 0 !important;
	padding: 9px 12px !important;
	border: 0 !important;
	border-radius: 7px;
	color: #34465c;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.25;
	transition: color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

#wide-nav .nav-dropdown > li > a:hover,
#wide-nav .nav-dropdown > li > a:focus-visible {
	background: #f3f6f9;
	box-shadow: inset 3px 0 0 #c65330;
	color: #24476f;
}

/* Dynamic WooCommerce category mega menu. */
@media screen and (min-width: 850px) {
	#wide-nav .header-bottom-nav > li.sebinfo-boutique-menu {
		--sebinfo-mega-columns: 4;
		--sebinfo-mega-gap: 10px;
		--sebinfo-mega-offset: -145px;
		--sebinfo-mega-padding: 18px;
		--sebinfo-mega-width: 1080px;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-mega-cols-1 {
		--sebinfo-mega-columns: 1;
		--sebinfo-mega-offset: 0px;
		--sebinfo-mega-width: 360px;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-mega-cols-2 {
		--sebinfo-mega-columns: 2;
		--sebinfo-mega-offset: -55px;
		--sebinfo-mega-width: 650px;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-mega-cols-3 {
		--sebinfo-mega-columns: 3;
		--sebinfo-mega-offset: -100px;
		--sebinfo-mega-width: 850px;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-category-list-small {
		--sebinfo-mega-padding: 12px;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-category-list-large {
		--sebinfo-mega-gap: 8px;
		--sebinfo-mega-padding: 14px;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-boutique-menu > .nav-dropdown {
		top: calc(100% - 2px);
		left: var(--sebinfo-mega-offset) !important;
		display: block;
		column-count: var(--sebinfo-mega-columns);
		column-fill: balance;
		column-gap: var(--sebinfo-mega-gap);
		width: min(var(--sebinfo-mega-width), calc(100vw - 30px));
		min-width: 0;
		max-width: none;
		/*
		 * Pre-JS fallback only. The mega-menu script measures the exact distance
		 * from the panel's top to the viewport bottom and sets an inline
		 * max-height so the panel reaches the bottom of the page regardless of
		 * admin-bar/header height; this value just keeps it sane until then.
		 */
		max-height: calc(100vh - 180px);
		padding: var(--sebinfo-mega-padding);
		border-color: #dde4ec;
		border-radius: 14px;
		box-shadow: 0 18px 48px rgba(25, 39, 57, 0.17);
		overflow-x: hidden;
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		scrollbar-color: #b9c4d0 transparent;
		scrollbar-width: thin;
		pointer-events: none;
		transform: none;
		transform-origin: top left;
		transition: opacity 0.16s ease, visibility 0.16s ease;
		will-change: opacity;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-boutique-menu.is-sebinfo-boutique-open > .nav-dropdown,
	#wide-nav .header-bottom-nav > li.sebinfo-boutique-menu:hover > .nav-dropdown,
	#wide-nav .header-bottom-nav > li.sebinfo-boutique-menu:focus-within > .nav-dropdown {
		left: var(--sebinfo-mega-offset) !important;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
	}

	/*
	 * Safety net. The PHP filter drops `has-dropdown` from the generated Boutique
	 * item so Flatsome's native dropdown script never binds to it. If a stale
	 * cached page (e.g. LiteSpeed) still ships that class, Flatsome's `Y()` opener
	 * adds `nav-dropdown-full`, whose parent rule switches the dropdown to
	 * `position: fixed; left: 50%` -- detaching the mega menu from the Boutique
	 * item so the pointer leaves it and it flashes shut. Pinning `position` keeps
	 * the mega menu anchored to its own absolute offset regardless of that class.
	 */
	#wide-nav .header-bottom-nav > li.sebinfo-boutique-menu > .nav-dropdown {
		position: absolute !important;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-boutique-menu > .nav-dropdown.sebinfo-mega-menu-ready {
		display: grid;
		grid-template-columns: repeat(var(--sebinfo-mega-columns), minmax(0, 1fr));
		grid-auto-flow: row dense;
		grid-auto-rows: 1px;
		column-count: auto;
		column-gap: var(--sebinfo-mega-gap);
		row-gap: 0;
	}

	#wide-nav .sebinfo-boutique-menu > .nav-dropdown > li.sebinfo-dynamic-product-category {
		display: block !important;
		width: 100% !important;
		min-width: 0 !important;
		margin: 0 0 var(--sebinfo-mega-gap) !important;
		padding: 4px;
		border: 1px solid #edf1f5 !important;
		border-radius: 10px;
		background: #fbfcfd;
		break-inside: avoid;
		page-break-inside: avoid;
		white-space: normal;
		-webkit-column-break-inside: avoid;
		transition: border-color 0.18s ease, background-color 0.18s ease;
	}

	#wide-nav .sebinfo-boutique-menu > .nav-dropdown.sebinfo-mega-menu-ready > li.sebinfo-dynamic-product-category {
		align-self: start;
		margin: 0 !important;
	}

	#wide-nav .sebinfo-boutique-menu > .nav-dropdown > li.sebinfo-dynamic-product-category:hover,
	#wide-nav .sebinfo-boutique-menu > .nav-dropdown > li.current-menu-item,
	#wide-nav .sebinfo-boutique-menu > .nav-dropdown > li.current-menu-ancestor {
		border-color: #dbe3eb !important;
		background: #f6f8fb;
	}

	#wide-nav .sebinfo-boutique-menu > .nav-dropdown > li.sebinfo-dynamic-product-category > a {
		display: flex;
		align-items: center;
		min-height: 40px;
		margin: 0 !important;
		padding: 9px 10px !important;
		border: 0 !important;
		border-radius: 7px;
		background: transparent;
		box-shadow: none;
		color: #294765;
		font-size: 14px;
		font-weight: 700;
		line-height: 1.25;
		text-transform: none;
		white-space: normal;
	}

	#wide-nav .sebinfo-boutique-menu > .nav-dropdown > li.sebinfo-dynamic-product-category > a:hover,
	#wide-nav .sebinfo-boutique-menu > .nav-dropdown > li.sebinfo-dynamic-product-category > a:focus-visible {
		background: #edf2f7;
		box-shadow: none;
		color: #b54d2e;
	}

	#wide-nav .sebinfo-category-menu-image {
		display: flex;
		flex: 0 0 42px;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		margin-right: 10px;
		padding: 3px;
		overflow: hidden;
		border: 1px solid #e3e9ef;
		border-radius: 8px;
		background: #fff;
	}

	#wide-nav .sebinfo-category-menu-image__img {
		display: block;
		width: 100%;
		height: 100%;
		margin: 0;
		object-fit: contain;
	}

	#wide-nav .sebinfo-boutique-menu .nav-column {
		display: block !important;
		position: static;
		width: auto;
		min-width: 0;
		margin: 0 8px 7px 10px !important;
		padding: 2px 0 2px 10px !important;
		border-left: 2px solid #e5ebf1;
		background: transparent;
	}

	#wide-nav .sebinfo-boutique-menu .nav-column .nav-column {
		margin: 2px 0 3px 10px !important;
		padding-left: 9px !important;
		border-left-color: #edf1f5;
	}

	#wide-nav .sebinfo-boutique-menu .nav-column li {
		display: block;
		width: 100%;
		margin: 0 !important;
		white-space: normal;
	}

	#wide-nav .sebinfo-boutique-menu .nav-column li > a {
		display: flex;
		align-items: flex-start;
		min-height: 0;
		margin: 0 !important;
		padding: 6px 7px !important;
		border: 0 !important;
		border-radius: 6px;
		color: #5b6c7e;
		font-size: 13px;
		font-weight: 500;
		line-height: 1.3;
		text-transform: none;
		white-space: normal;
	}

	#wide-nav .sebinfo-boutique-menu .nav-column li > a::before {
		flex: 0 0 4px;
		width: 4px;
		height: 4px;
		margin: 6px 8px 0 0;
		border-radius: 50%;
		background: #b5c0cc;
		content: "";
	}

	#wide-nav .sebinfo-boutique-menu .nav-column li.sebinfo-category-has-image > a::before {
		display: none;
	}

	#wide-nav .sebinfo-boutique-menu .nav-column .sebinfo-category-menu-image {
		flex-basis: 28px;
		width: 28px;
		height: 28px;
		margin-right: 8px;
		padding: 2px;
		border-radius: 6px;
	}

	#wide-nav .sebinfo-boutique-menu .nav-column .nav-column .sebinfo-category-menu-image {
		flex-basis: 23px;
		width: 23px;
		height: 23px;
		margin-right: 7px;
		border-radius: 5px;
	}

	#wide-nav .sebinfo-boutique-menu .nav-column li > a:hover,
	#wide-nav .sebinfo-boutique-menu .nav-column li > a:focus-visible,
	#wide-nav .sebinfo-boutique-menu .nav-column li.current-menu-item > a {
		background: #edf2f7;
		color: #a94629;
	}

	#wide-nav .sebinfo-category-list-large > .nav-dropdown > li.sebinfo-dynamic-product-category {
		padding: 3px;
	}

	#wide-nav .sebinfo-category-list-large > .nav-dropdown > li.sebinfo-dynamic-product-category > a {
		min-height: 36px;
		padding: 7px 9px !important;
		font-size: 13.5px;
	}

	#wide-nav .sebinfo-category-list-large > .nav-dropdown > li > a .sebinfo-category-menu-image {
		flex-basis: 34px;
		width: 34px;
		height: 34px;
		margin-right: 8px;
	}

	#wide-nav .sebinfo-category-list-large .nav-column li > a {
		padding: 5px 6px !important;
		font-size: 12.5px;
	}
}

@media screen and (min-width: 850px) and (max-width: 1199px) {
	#wide-nav .header-bottom-nav > li.sebinfo-mega-cols-4 {
		--sebinfo-mega-columns: 3;
		--sebinfo-mega-offset: -100px;
		--sebinfo-mega-width: calc(100vw - 30px);
	}
}

/* Keep the same taxonomy hierarchy clear in Flatsome's mobile sidebar. */
@media screen and (max-width: 849px) {
	.sidebar-menu .sebinfo-boutique-menu > .sub-menu {
		margin: 5px 0 10px 10px;
		padding-left: 10px;
		border-left: 2px solid #e2e8ef;
	}

	.sidebar-menu .sebinfo-category-depth-0 > a {
		color: #334f6d;
		font-weight: 600;
	}

	.sidebar-menu .sebinfo-dynamic-product-category > .sub-menu {
		margin: 2px 0 6px 10px;
		padding-left: 10px;
		border-left: 1px solid #e8edf2;
	}

	/* Flatsome indents every nested level by another .5em on top of the guide
	   lines above. Dropping it buys back ~8px of text width per level, which
	   deep categories with long names need. */
	.sidebar-menu .sebinfo-dynamic-product-category {
		padding-left: 0;
	}

	/* Long names ("Vidéosurveillance & sécurité") used to run all the way into
	   the panel edge: the link is a flex item, so it grew to its content width
	   instead of wrapping. A gutter plus last-resort word breaking keeps every
	   label inside the sidebar, wrapping onto a second line when needed. */
	.sidebar-menu .sebinfo-boutique-menu > a,
	.sidebar-menu .sebinfo-dynamic-product-category > a {
		min-width: 0;
		padding-right: 16px;
		line-height: 1.35;
		overflow-wrap: anywhere;
	}

	.sidebar-menu .sebinfo-category-depth-1 > a,
	.sidebar-menu .sebinfo-category-depth-2 > a {
		color: #657486;
		font-size: 0.92em;
		font-weight: 500;
	}

	.sidebar-menu .sebinfo-category-has-image > a {
		display: flex;
		align-items: center;
	}

	.sidebar-menu .sebinfo-category-menu-image {
		display: flex;
		flex: 0 0 32px;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		margin-right: 9px;
		padding: 2px;
		overflow: hidden;
		border: 1px solid #e3e9ef;
		border-radius: 7px;
		background: #fff;
	}

	.sidebar-menu .sebinfo-category-depth-1 .sebinfo-category-menu-image,
	.sidebar-menu .sebinfo-category-depth-2 .sebinfo-category-menu-image {
		flex-basis: 25px;
		width: 25px;
		height: 25px;
		margin-right: 7px;
		border-radius: 5px;
	}

	.sidebar-menu .sebinfo-category-menu-image__img {
		display: block;
		width: 100%;
		height: 100%;
		margin: 0;
		object-fit: contain;
	}
}

/* A compact, polished treatment for the WooCommerce price filter. */
.widget_price_filter {
	--sebinfo-price-filter-accent: #446084;
	--sebinfo-price-filter-accent-dark: #344d6c;
	padding: 22px 20px 20px;
	background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
	border: 1px solid #e1e7ee;
	border-radius: 16px;
	box-shadow: 0 10px 28px rgba(36, 55, 80, 0.08);
}

.widget_price_filter .widget-title {
	display: block;
	color: #2f4055;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: 0.035em;
}

.widget_price_filter .is-divider {
	width: 42px;
	max-width: none;
	height: 3px;
	margin-top: 10px;
	margin-bottom: 23px;
	background: #b65031;
	border-radius: 99px;
	opacity: 1;
}

.widget_price_filter .price_slider_wrapper {
	padding-top: 1px;
}

.widget_price_filter .price_slider {
	height: 8px;
	margin: 0 11px 24px;
	background: #dfe6ee;
	border-radius: 99px;
}

.widget_price_filter .ui-slider .ui-slider-range {
	height: 100%;
	background: var(--sebinfo-price-filter-accent);
	border-radius: inherit;
	opacity: 1;
}

.widget_price_filter .ui-slider .ui-slider-handle,
.widget_price_filter .ui-slider .ui-slider-handle:last-child {
	top: 50%;
	width: 22px;
	height: 22px;
	margin-left: -11px;
	background: #fff;
	border: 6px solid var(--sebinfo-price-filter-accent);
	border-radius: 50%;
	box-shadow: 0 2px 7px rgba(36, 55, 80, 0.22);
	cursor: ew-resize !important;
	touch-action: none;
	transform: translateY(-50%);
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.widget_price_filter .ui-slider .ui-slider-handle:hover {
	border-color: var(--sebinfo-price-filter-accent-dark);
	box-shadow: 0 3px 10px rgba(36, 55, 80, 0.28);
	transform: translateY(-50%) scale(1.08);
}

.widget_price_filter .ui-slider .ui-slider-handle:focus-visible {
	border-color: var(--sebinfo-price-filter-accent-dark);
	box-shadow: 0 0 0 4px rgba(68, 96, 132, 0.18), 0 3px 10px rgba(36, 55, 80, 0.24);
	outline: 0;
}

.widget_price_filter .price_slider_amount {
	display: grid;
	grid-template-areas:
		"price"
		"filter";
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	font-size: 13px;
	line-height: 1.3;
	text-align: right;
}

.widget_price_filter .price_slider_amount .button {
	grid-area: filter;
	float: none;
	width: 100%;
	min-width: 96px;
	min-height: 42px;
	margin: 0;
	padding: 0 17px;
	background: var(--sebinfo-price-filter-accent);
	border: 1px solid var(--sebinfo-price-filter-accent);
	border-radius: 10px;
	box-shadow: 0 5px 12px rgba(68, 96, 132, 0.18);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.055em;
	line-height: 40px;
	transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.widget_price_filter .price_slider_amount .button:hover,
.widget_price_filter .price_slider_amount .button:focus-visible {
	background: var(--sebinfo-price-filter-accent-dark);
	border-color: var(--sebinfo-price-filter-accent-dark);
	box-shadow: 0 7px 16px rgba(52, 77, 108, 0.24);
	transform: translateY(-1px);
}

.widget_price_filter .price_label {
	grid-area: price;
	min-width: 0;
	min-height: 42px;
	padding: 11px 12px;
	background: #fff;
	border: 1px solid #dfe5ec;
	border-radius: 10px;
	color: #68778a;
	line-height: 18px;
	text-align: center;
	white-space: nowrap;
}

.widget_price_filter .price_label .from,
.widget_price_filter .price_label .to {
	color: #2f4055;
	font-size: 14px;
	font-weight: 800;
}

.widget_price_filter .price_slider_amount .clear {
	display: none;
}

/* Flatsome hides the submit button when its instant shop filtering is active. */
.ux-shop-ajax-filters .widget_price_filter .price_slider_amount {
	grid-template-areas: "price";
	grid-template-columns: minmax(0, 1fr);
}

@media only screen and (max-width: 360px) {
	.widget_price_filter {
		padding: 19px 17px 18px;
	}
}

/* Keep the storefront free from text-selection and blinking-caret artifacts. */
html,
body,
body * {
	-webkit-user-select: none !important;
	-moz-user-select: none !important;
	-ms-user-select: none !important;
	user-select: none !important;
	caret-color: transparent !important;
}

body,
body * {
	cursor: default;
}

a[href],
a[href] *,
button,
button *,
[role="button"],
[role="button"] *,
[onclick],
[onclick] *,
label[for],
label[for] *,
summary,
summary *,
select,
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="checkbox"],
input[type="radio"],
input[type="file"],
input[type="color"],
input[type="range"],
.button,
.button *,
.clickable,
.clickable * {
	cursor: pointer !important;
}

/* Restore native editing affordances wherever visitors can enter text. */
body input:not([type]),
body input[type="text"],
body input[type="email"],
body input[type="tel"],
body input[type="search"],
body input[type="url"],
body input[type="password"],
body input[type="number"],
body input[type="date"],
body input[type="datetime-local"],
body input[type="month"],
body input[type="time"],
body input[type="week"],
body textarea,
body [contenteditable]:not([contenteditable="false"]) {
	-webkit-user-select: text !important;
	-moz-user-select: text !important;
	-ms-user-select: text !important;
	user-select: text !important;
	caret-color: currentColor !important;
	cursor: text !important;
}

/* Make the account lightbox fields clearly respond to hover and focus. */
#login-form-popup input.input-text {
	transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

#login-form-popup input.input-text:hover {
	border-color: #aeb9c6;
}

#login-form-popup input.input-text:focus {
	background-color: #fff;
	border-color: #446084;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.16);
	outline: 0;
}

/* Checkout must remain fully editable and selectable for customer details. */
body.woocommerce-checkout,
body.woocommerce-checkout * {
	-webkit-user-select: auto !important;
	-moz-user-select: auto !important;
	-ms-user-select: auto !important;
	user-select: auto !important;
	caret-color: auto !important;
}

body.woocommerce-checkout input:not([type]),
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="search"],
body.woocommerce-checkout input[type="url"],
body.woocommerce-checkout input[type="password"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout textarea,
body.woocommerce-checkout [contenteditable="true"] {
	-webkit-user-select: text !important;
	-moz-user-select: text !important;
	-ms-user-select: text !important;
	user-select: text !important;
	caret-color: currentColor !important;
	cursor: text !important;
}

img,
svg {
	-webkit-user-drag: none;
}

@media only screen and (max-width: 549px) {
	.badge-container {
		top: 12px;
		left: -5px;
		transform: none;
	}

	.badge-container .badge-inner.on-sale {
		min-height: 24px;
		padding: 5px 9px;
		font-size: 9px;
	}

	.product-small .box-image > .image-tools.top.right {
		top: 8px;
		right: 8px;
	}

	.wishlist-button.button {
		width: 34px;
		height: 34px;
		min-width: 34px;
		min-height: 34px;
	}

	.wishlist-button.button.loading::after {
		width: 42px;
		height: 42px;
		margin: -21px 0 0 -21px;
	}

}

@media only screen and (max-width: 48em) {
/*************** ADD MOBILE ONLY CSS HERE  ***************/

	/*
	 * Wishlist mobile card (YITH adds .mobile below 768px). Flatsome pins the
	 * remove control at left:-12px, hanging it off the tiny 60px thumbnail. Give
	 * the card a small left gutter and seat a clean chip *there* — clear of the
	 * image so it never covers it — turning red on hover. One × only (Flatsome's
	 * duplicate ::after glyph is dropped below).
	 */
	.wishlist_table.mobile li[id^="yith-wcwl-row-"] {
		padding-left: 34px !important;
	}

	.wishlist_table.mobile li .product-remove {
		display: flex !important;
		align-items: center;
		justify-content: center;
		top: 4px !important;
		left: 2px !important;
		right: auto !important;
		width: 24px !important;
		height: 24px !important;
		font-size: 17px !important;
		line-height: 1 !important;
		background: #fff !important;
		border: 1px solid #dfe4ea !important;
		border-radius: 50% !important;
		color: #55606f !important;
		box-shadow: 0 1px 3px rgba(24, 39, 60, 0.18);
		z-index: 4;
		transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease,
			box-shadow 0.15s ease, transform 0.12s ease;
	}

	.rtl .wishlist_table.mobile li[id^="yith-wcwl-row-"] {
		padding-left: 0 !important;
		padding-right: 34px !important;
	}

	.rtl .wishlist_table.mobile li .product-remove {
		left: auto !important;
		right: 2px !important;
	}

	.wishlist_table.mobile li .product-remove:hover,
	.wishlist_table.mobile li .product-remove:focus-within {
		color: #fff !important;
		background: #e2401c !important;
		border-color: #e2401c !important;
		box-shadow: 0 4px 10px rgba(226, 64, 28, 0.38);
		transform: scale(1.08);
	}

	/*
	 * The link carries class "remove", so the base a.remove chip styling also
	 * lands on it (a second circle inside the chip), and the wrapping <div>/<a>
	 * don't fill the chip (a link-anchored × renders off-centre). Flatten the
	 * wrapper and link to a transparent, full-size click target…
	 */
	.wishlist_table.mobile li .product-remove > div,
	.wishlist_table.mobile li .product-remove a {
		position: static !important;
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		background: none !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		font-size: 0 !important;
		line-height: 0 !important;
		color: inherit !important;
		text-decoration: none !important;
	}

	.wishlist_table.mobile li .product-remove a i {
		display: none !important;
	}

	/* …drop the template's own × glyph… */
	.wishlist_table.mobile li .product-remove a::after {
		content: none !important;
	}

	/* …and draw exactly one ×, centred on the chip itself (not the link). */
	.wishlist_table.mobile li .product-remove::after {
		content: '\00d7';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 17px;
		line-height: 1;
		color: inherit;
		pointer-events: none;
	}

}

/*
 * Keep long product titles from collapsing the single-product layout.
 *
 * A title with a long unbreakable run (e.g. "CE278A/CE285A/CB435A/CB436A/
 * CB388A/CF283A", slash-joined codes with no spaces) has no wrap opportunity,
 * so its intrinsic minimum width balloons (~658px). A flex column can't shrink
 * below its content, so the summary column bloats past its half, overflows the
 * row and wraps beneath the gallery — the two-column layout collapses and the
 * image overlaps the text. Letting the title break anywhere keeps the min-content
 * width small (min-width:0 lets the flex item shrink to it), so the gallery and
 * summary stay side by side. Only products with such long code-strings were hit.
 */
.single-product .product-title,
.single-product .product-info.summary {
	overflow-wrap: anywhere;
}

.single-product .product-info.summary {
	min-width: 0;
}

/*
 * Collapse the empty product sidebar so the summary fills the row.
 *
 * Flatsome's product layout renders a third column after the gallery and
 * summary — `#product-sidebar` (col large-2 / large-3) — for the "product-
 * sidebar" widget area. This store assigns no widgets to that sidebar, so the
 * column renders EMPTY and just leaves dead space to the right of the summary
 * (most obvious when the window
 * is not full-width). The summary column is `flex:1` (.col-fit), so once the
 * empty sidebar is removed it grows to fill the freed width and the gallery +
 * summary span the whole card.
 *
 * Guarded with :has(.widget): the sidebar only collapses while it holds no
 * widget, so it reappears automatically if one is ever added. Browsers without
 * :has() drop the rule and keep Flatsome's default (empty column) — no harm.
 */
.single-product #product-sidebar:not(:has(.widget)) {
	display: none;
}

/* ==========================================================================
   Homepage brand strip ("Nos marques") — auto-scrolling logos above the footer.
   Rendered by sebinfo_render_homepage_brands_marquee(). Pure-CSS infinite
   marquee: the track holds two copies of the logo list and slides -50%, so the
   loop is seamless with no JS.
   ========================================================================== */
.sebinfo-brands {
	padding: 44px 0 48px;
	background: #fff;
	border-top: 1px solid #eceff3;
}

.sebinfo-brands__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.sebinfo-brands__title {
	margin: 0 0 26px;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #8a94a3;
}

.sebinfo-brands__viewport {
	position: relative;
	overflow: hidden;
	/* Fade the logos in/out at the edges for a polished look. */
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	        mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

.sebinfo-brands__track {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	width: -webkit-max-content;
	width: max-content;
	margin: 0;
	padding: 0;
	list-style: none;
	will-change: transform;
	animation: sebinfo-brands-scroll var(--sebinfo-brands-duration, 40s) linear infinite;
}

/* Pause when the visitor hovers so they can read a logo or click through. */
.sebinfo-brands__viewport:hover .sebinfo-brands__track {
	animation-play-state: paused;
}

.sebinfo-brands__item {
	flex: 0 0 auto;
	margin: 0;
	padding: 0 34px;
	list-style: none;
}

.sebinfo-brands__item::before {
	content: none;
}

.sebinfo-brands__link {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 60px;
}

.sebinfo-brands__link img {
	display: block;
	width: auto;
	max-width: 150px;
	height: auto;
	max-height: 54px;
	margin: 0;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: 0.62;
	transition: filter 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}

.sebinfo-brands__link:hover img,
.sebinfo-brands__link:focus-visible img {
	filter: grayscale(0%);
	opacity: 1;
	transform: translateY(-2px);
}

@keyframes sebinfo-brands-scroll {
	from {
		transform: translate3d(0, 0, 0);
	}

	to {
		transform: translate3d(-50%, 0, 0);
	}
}

/* Respect reduced-motion: stop the scroll and show a single static, centered
   set (the duplicated copy is hidden). */
@media (prefers-reduced-motion: reduce) {
	.sebinfo-brands__track {
		flex-wrap: wrap;
		justify-content: center;
		width: auto;
		animation: none;
	}

	.sebinfo-brands__item[aria-hidden="true"] {
		display: none;
	}
}

@media (max-width: 549px) {
	.sebinfo-brands {
		padding: 32px 0 34px;
	}

	.sebinfo-brands__title {
		margin-bottom: 20px;
	}

	.sebinfo-brands__item {
		padding: 0 22px;
	}

	.sebinfo-brands__link {
		height: 48px;
	}

	.sebinfo-brands__link img {
		max-width: 116px;
		max-height: 42px;
	}
}

/* ==========================================================================
   Header "Nos marques" brand mega menu (next to Boutique). Built by
   sebinfo_add_brands_to_navigation(); opens on hover/focus like the Boutique
   menu, with the panel position clamped to the viewport by the brands module in
   dynamic-category-mega-menu.js. Desktop only — mobile uses Flatsome's sidebar.
   ========================================================================== */
@media screen and (min-width: 850px) {
	#wide-nav .header-bottom-nav > li.sebinfo-brands-menu {
		--b-cols: 5;
		--b-gap: 10px;
		--b-card: 152px;
		--b-pad: 16px;
	}

	#wide-nav .header-bottom-nav > li.sebinfo-brands-cols-2 { --b-cols: 2; }
	#wide-nav .header-bottom-nav > li.sebinfo-brands-cols-3 { --b-cols: 3; }
	#wide-nav .header-bottom-nav > li.sebinfo-brands-cols-4 { --b-cols: 4; }
	#wide-nav .header-bottom-nav > li.sebinfo-brands-cols-5 { --b-cols: 5; }

	#wide-nav .header-bottom-nav > li.sebinfo-brands-menu > .nav-dropdown {
		position: absolute !important;
		top: calc(100% - 2px);
		left: 0 !important; /* pre-JS baseline; the JS module refines this inline */
		display: grid;
		grid-template-columns: repeat(var(--b-cols), minmax(0, 1fr));
		gap: var(--b-gap);
		width: calc(var(--b-cols) * var(--b-card) + (var(--b-cols) - 1) * var(--b-gap) + 2 * var(--b-pad));
		min-width: 0;
		max-width: calc(100vw - 24px);
		max-height: calc(100vh - 180px);
		margin: 0 !important;
		padding: var(--b-pad);
		border: 1px solid #dde4ec;
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 18px 48px rgba(25, 39, 57, 0.17);
		overflow-x: hidden;
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(4px);
		transition: opacity 0.16s ease, visibility 0.16s ease, transform 0.16s ease;
		scrollbar-width: thin;
		scrollbar-color: #b9c4d0 transparent;
		will-change: opacity;
	}

	/* Invisible bridge so the pointer can travel from the label to the panel. */
	#wide-nav .header-bottom-nav > li.sebinfo-brands-menu > .nav-dropdown::before {
		position: absolute;
		top: -10px;
		right: 0;
		left: 0;
		height: 10px;
		content: "";
	}

	#wide-nav .header-bottom-nav > li.sebinfo-brands-menu.is-sebinfo-brands-open > .nav-dropdown,
	#wide-nav .header-bottom-nav > li.sebinfo-brands-menu:hover > .nav-dropdown,
	#wide-nav .header-bottom-nav > li.sebinfo-brands-menu:focus-within > .nav-dropdown {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
	}

	#wide-nav .sebinfo-brands-menu > .nav-dropdown > li.sebinfo-brand-card {
		display: block !important;
		width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
	}

	#wide-nav .sebinfo-brands-menu > .nav-dropdown > li.sebinfo-brand-card > a {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 9px;
		height: 100%;
		min-height: 104px;
		margin: 0 !important;
		padding: 14px 10px !important;
		border: 1px solid #edf1f5 !important;
		border-radius: 12px;
		background: #fbfcfd;
		box-shadow: none;
		color: #33475e;
		text-align: center;
		transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
	}

	#wide-nav .sebinfo-brands-menu > .nav-dropdown > li.sebinfo-brand-card > a:hover,
	#wide-nav .sebinfo-brands-menu > .nav-dropdown > li.sebinfo-brand-card > a:focus-visible,
	#wide-nav .sebinfo-brands-menu > .nav-dropdown > li.current-menu-item > a {
		border-color: #cdd8e3 !important;
		background: #fff;
		box-shadow: 0 8px 20px rgba(30, 47, 68, 0.10);
		color: #24476f;
		transform: translateY(-2px);
	}

	#wide-nav .sebinfo-brand-card__logo {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 52px;
	}

	#wide-nav .sebinfo-brand-card__img {
		width: auto !important;
		max-width: 100% !important;
		height: auto !important;
		max-height: 52px !important;
		margin: 0 !important;
		border: 0 !important;
		object-fit: contain;
		filter: grayscale(100%);
		opacity: 0.72;
		transition: filter 0.2s ease, opacity 0.2s ease;
	}

	#wide-nav .sebinfo-brands-menu > .nav-dropdown > li.sebinfo-brand-card > a:hover .sebinfo-brand-card__img,
	#wide-nav .sebinfo-brands-menu > .nav-dropdown > li.sebinfo-brand-card > a:focus-visible .sebinfo-brand-card__img,
	#wide-nav .sebinfo-brands-menu > .nav-dropdown > li.current-menu-item > a .sebinfo-brand-card__img {
		filter: grayscale(0);
		opacity: 1;
	}

	#wide-nav .sebinfo-brand-card__name {
		display: block;
		max-width: 100%;
		font-size: 12.5px;
		font-weight: 600;
		line-height: 1.2;
		color: inherit;
		text-transform: none;
		white-space: normal;
		overflow-wrap: anywhere;
	}
}

/* ==========================================================================
   Mobile sidebar "Nos marques" — the same brand items Flatsome drops into its
   off-canvas menu, laid out as a grid of uniform logo tiles instead of a
   stacked list of raw images at their natural sizes.

   Every logo is boxed in a fixed-height, white, rounded tile, so a tall mark
   (Apple) and a wide wordmark (Brother) read at the same visual weight, and
   the logos' own white backgrounds stop showing as bright patches against the
   panel.
   ========================================================================== */
@media screen and (max-width: 849px) {
	/* Flatsome's drawer is 95% white, so the dimmed page bled through and made
	   the panel grey — which is what the white logo boxes clashed with. The
	   menu itself paints the drawer opaque (scoped to #main-menu so the cart
	   and account drawers keep Flatsome's translucent look). */
	#main-menu {
		min-height: 100%;
		background-color: #fff;
	}

	/* The grid must out-specify Flatsome's `.active > ul.sub-menu { display:
	   block !important }`, hence the long selector and the !important. Skipped
	   in "slide" submenu mode, where Flatsome drives the panel's own display
	   and forcing grid here would leave it permanently open. */
	.sidebar-menu .nav-sidebar:not(.nav-slide) li.sebinfo-brands-menu > ul.sub-menu {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
		width: 100%;
		margin: 4px 0 16px !important;
		padding: 0 16px !important;
		border: 0;
	}

	.sidebar-menu .sebinfo-brands-menu > ul.sub-menu > li.sebinfo-brand-card {
		width: 100%;
		margin: 0;
		padding: 0;
	}

	.sidebar-menu .sebinfo-brands-menu > ul.sub-menu > li.sebinfo-brand-card > a {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 7px;
		height: 100%;
		padding: 10px 6px !important;
		border: 1px solid #e6ebf1;
		border-radius: 11px;
		background: #fff;
		box-shadow: 0 1px 2px rgba(28, 45, 68, 0.05);
		color: #46596f;
		text-align: center;
	}

	.sidebar-menu .sebinfo-brands-menu > ul.sub-menu > li.sebinfo-brand-card > a:active,
	.sidebar-menu .sebinfo-brands-menu > ul.sub-menu > li.current-menu-item > a {
		border-color: #b9c9dc;
		background: #f6fafd;
		color: #24476f;
	}

	.sidebar-menu .sebinfo-brand-card__logo {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 32px;
	}

	.sidebar-menu .sebinfo-brand-card__img {
		width: auto !important;
		max-width: 100% !important;
		height: auto !important;
		max-height: 32px !important;
		margin: 0 !important;
		border: 0 !important;
		object-fit: contain;
	}

	/* Two lines at most, so one long brand name can't stretch its row. */
	.sidebar-menu .sebinfo-brand-card__name {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		width: 100%;
		overflow: hidden;
		color: inherit;
		font-size: 10.5px;
		font-weight: 600;
		line-height: 1.25;
		letter-spacing: 0;
		text-transform: none;
		overflow-wrap: anywhere;
	}
}

/* ==========================================================================
   "Nos marques" page — brand logo grid ([sebinfo_brands_grid] shortcode).
   ========================================================================== */
.sebinfo-brands-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 16px;
	margin: 0 0 10px;
}

.sebinfo-brands-grid__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	padding: 24px 16px;
	border: 1px solid #e6eaf0;
	border-radius: 14px;
	background: #fff;
	text-align: center;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.sebinfo-brands-grid__card:hover,
.sebinfo-brands-grid__card:focus-visible {
	border-color: #cdd8e3;
	box-shadow: 0 12px 28px rgba(30, 47, 68, 0.10);
	transform: translateY(-3px);
}

.sebinfo-brands-grid__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 84px;
}

.sebinfo-brands-grid__img {
	width: auto !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: 84px !important;
	margin: 0 !important;
	object-fit: contain;
}

.sebinfo-brands-grid__name {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
	color: #233247;
}

.sebinfo-brands-grid__count {
	font-size: 12.5px;
	color: #7c8798;
}

.sebinfo-brands-grid__empty {
	color: #7c8798;
}

@media (max-width: 549px) {
	.sebinfo-brands-grid {
		grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
		gap: 12px;
	}

	.sebinfo-brands-grid__logo {
		height: 66px;
	}

	.sebinfo-brands-grid__img {
		max-height: 66px !important;
	}
}

/* ==========================================================================
   Sidebar "MARQUES" brand filter (WC_Widget_Brand_Nav) — the full brand list is
   very tall, so cap its height and let it scroll inside its own box instead.
   ========================================================================== */
.widget_brand_nav ul.wc-brand-list-layered-nav-product_brand:not(.children) {
	/* Flex column so a selected brand can be pulled to the top with `order`. */
	display: flex;
	flex-direction: column;
	max-height: min(340px, 60vh);
	margin-top: 4px;
	padding-right: 6px;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: #b9c4d0 transparent;
}

.widget_brand_nav ul.wc-brand-list-layered-nav-product_brand:not(.children)::-webkit-scrollbar {
	width: 8px;
}

.widget_brand_nav ul.wc-brand-list-layered-nav-product_brand:not(.children)::-webkit-scrollbar-track {
	background: transparent;
}

.widget_brand_nav ul.wc-brand-list-layered-nav-product_brand:not(.children)::-webkit-scrollbar-thumb {
	background: #c7d0da;
	border-radius: 4px;
}

.widget_brand_nav ul.wc-brand-list-layered-nav-product_brand:not(.children)::-webkit-scrollbar-thumb:hover {
	background: #aab6c4;
}

/* Selected brand: pull it to the top of the list and set it in bold. */
.widget_brand_nav ul.wc-brand-list-layered-nav-product_brand:not(.children) > li.wc-layered-nav-term.chosen {
	order: -1;
}

.widget_brand_nav li.wc-layered-nav-term.chosen,
.widget_brand_nav li.wc-layered-nav-term.chosen > a,
.widget_brand_nav li.wc-layered-nav-term.chosen > span {
	font-weight: 700;
	color: #24476f;
}

/* ==========================================================================
   Single product — "official brand" card. The whole product (gallery + summary)
   sits inside a card framed and tinted in the product brand's own colour, topped
   by a hero band that shows the brand logo big at a consistent size regardless
   of how large or small the logo was uploaded. The colour arrives on
   .product-main as --sebinfo-brand-color (see sebinfo_get_brand_color); brands
   with no detectable colour fall back to a neutral slate so every branded
   product still reads as an official listing.
   ========================================================================== */
.single-product.sebinfo-brand-framed .product-main {
	--sebinfo-brand: var(--sebinfo-brand-color, #33475b);
	--sebinfo-brand-pad: clamp(16px, 2.6vw, 32px);
	position: relative;
	/* Center the card at the site content width. The inner .row is capped at
	   the 1080px container; without this the card spans the full page while the
	   row (whose auto-centering we remove just below) stays pinned left, dumping
	   all the slack as dead space on the RIGHT. Sizing the card to the row width
	   + its own padding and centering it keeps both sides balanced at every
	   viewport. */
	max-width: calc(1080px + 2 * var(--sebinfo-brand-pad));
	margin-top: 6px;
	margin-left: auto;
	margin-right: auto;
	/* Clear the card's rounded bottom corners + downward shadow so the tabs/
	   accordion in .product-footer below sit clearly apart instead of overlapping. */
	margin-bottom: clamp(28px, 4vw, 48px);
	padding: 0 var(--sebinfo-brand-pad) var(--sebinfo-brand-pad);
	background: #fff;
	background: linear-gradient(180deg, color-mix(in srgb, var(--sebinfo-brand) 9%, #fff) 0, #fff 280px), #fff;
	border: 1px solid #e6eaf0;
	border: 1px solid color-mix(in srgb, var(--sebinfo-brand) 24%, #e6eaf0);
	border-top: 4px solid var(--sebinfo-brand);
	border-radius: 16px;
	box-shadow: 0 26px 64px -36px rgba(28, 42, 62, 0.5);
	box-shadow: 0 26px 64px -36px color-mix(in srgb, var(--sebinfo-brand) 62%, transparent);
}

/* Zero the inner row's gutter margins so it can never bleed past the card
   border (we avoid overflow:hidden here so it won't disable the customizer's
   sticky-gallery option); the columns keep their own padding for the gap. */
.single-product.sebinfo-brand-framed .product-main > .row {
	margin-left: 0;
	margin-right: 0;
}

/* Brand hero band: injected server-side (content-single-product.php) as the
   first child of `.product-main`, so it paints with the page. Stretches to the
   card edges and sits flush under the coloured top border. */
.sebinfo-brand-hero {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 96px;
	margin: 0 calc(-1 * var(--sebinfo-brand-pad, 24px)) var(--sebinfo-brand-pad, 24px);
	padding: 20px 24px;
	background: #f4f6f9;
	background: color-mix(in srgb, var(--sebinfo-brand, #33475b) 10%, #fff);
	border-bottom: 1px solid #e9edf2;
	border-bottom: 1px solid color-mix(in srgb, var(--sebinfo-brand, #33475b) 18%, #eef1f5);
	border-radius: 15px 15px 0 0;
}

/* Put the logo on a clean white "plate" so a logo with its own white/opaque
   background blends into an intentional card instead of showing as a hard white
   box on the tinted band — transparent logos sit on the same white and look
   identical. This is what makes non-transparent logos fit well. */
.sebinfo-brand-hero__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	padding: 12px 30px;
	background: #fff;
	border: 1px solid #edf0f4;
	border-radius: 12px;
	box-shadow: 0 8px 22px -12px rgba(28, 42, 62, 0.28);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sebinfo-brand-hero__link:hover,
.sebinfo-brand-hero__link:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 12px 26px -12px rgba(28, 42, 62, 0.34);
}

/* Normalise every brand logo to the same big height so tiny and huge uploads
   look uniform; width follows the aspect ratio and is capped so ultra-wide
   logos stay tidy. */
.sebinfo-brand-hero__img {
	display: block;
	width: auto;
	max-width: min(340px, 78vw);
	height: clamp(42px, 5.4vw, 64px);
	margin: 0;
	object-fit: contain;
	object-position: center;
}

.sebinfo-brand-hero__name {
	font-size: clamp(20px, 3vw, 30px);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: #1a2330;
	color: color-mix(in srgb, var(--sebinfo-brand) 76%, #1a2330);
}

@media (max-width: 549px) {
	.sebinfo-brand-hero {
		min-height: 76px;
		padding: 14px 16px;
	}

	.sebinfo-brand-hero__link {
		padding: 10px 20px;
	}
}

/* ==========================================================================
   "Recently viewed" widget — keep product titles to 2 lines max with an
   ellipsis so long names don't stretch the widget.
   ========================================================================== */
.widget_recently_viewed_products .product-title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	text-overflow: ellipsis;
	overflow-wrap: anywhere;
}

/* ==========================================================================
   Shop / category page — product categories as a carousel above the products,
   with a labelled separator (sebinfo_render_shop_category_carousel).
   ========================================================================== */
.sebinfo-shop-cats {
	position: relative;
	margin: 2px 0 4px;
}

.sebinfo-shop-cats__track {
	display: flex;
	gap: 14px;
	margin: 0;
	padding: 4px 2px 6px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;    /* Firefox — hide the scroll bar (navigate via arrows/swipe) */
	-ms-overflow-style: none; /* legacy Edge */
}

.sebinfo-shop-cats__track::-webkit-scrollbar {
	display: none; /* Chrome / Safari / Edge */
}

/* Each Flatsome category card becomes a fixed-width carousel cell. */
.sebinfo-shop-cats__track > .product-category {
	flex: 0 0 auto;
	width: clamp(148px, 20vw, 196px);
	margin: 0 !important;
	padding: 0 !important;
	scroll-snap-align: start;
}

/* Carousel arrows — shown only when the row overflows (added by JS). */
.sebinfo-shop-cats__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	display: none;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin: 0;
	padding: 0;
	border: 1px solid #dde3ea !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: var(--primary-color, #446084);
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(30, 47, 68, 0.16);
	transition: border-color 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease, transform 0.18s ease;
}

.sebinfo-shop-cats.has-overflow .sebinfo-shop-cats__nav {
	display: inline-flex;
}

.sebinfo-shop-cats__nav:hover {
	border-color: var(--primary-color, #446084) !important;
	box-shadow: 0 12px 26px rgba(30, 47, 68, 0.22);
	transform: translateY(-50%) scale(1.05);
}

.sebinfo-shop-cats__nav svg {
	width: 20px;
	height: 20px;
}

.sebinfo-shop-cats__nav--prev {
	left: -12px;
}

.sebinfo-shop-cats__nav--next {
	right: -12px;
}

.sebinfo-shop-cats.is-at-start .sebinfo-shop-cats__nav--prev,
.sebinfo-shop-cats.is-at-end .sebinfo-shop-cats__nav--next {
	opacity: 0;
	pointer-events: none;
}

/* Labelled separator between the categories and the products. */
.sebinfo-shop-sep {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 10px 0 22px;
}

.sebinfo-shop-sep::before,
.sebinfo-shop-sep::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: #e4e8ee;
}

/* =====================================================================
   Single-product sticky add-to-cart bar (Flatsome built-in).
   Flatsome renders the bar (thumb + title + the whole add-to-cart form:
   qty, "Ajouter au panier" and the "Acheter maintenant" buy-now button)
   fixed to the bottom of the viewport. Its stock CSS lets the form
   stack/wrap, uses a semi-transparent background (footer text bleeds
   through) and reserves no space, so the bar covers the last footer row.
   Below: one clean centred row on desktop, a compact 2-row layout on
   mobile, plus footer padding (via body.has-sticky-product-cart, which
   Flatsome toggles while the bar is active) so nothing is hidden behind
   it. See functions.php note near the buy-now translation filter.
   ===================================================================== */
:root {
	--sebinfo-sticky-atc-h: 66px;
}

.sticky-add-to-cart.sticky-add-to-cart--active {
	background: #ffffff !important; /* solid: stops footer text bleeding through */
	border-top: 1px solid #e6e9ee;
	box-shadow: 0 -4px 22px rgba(20, 30, 50, 0.1);
	padding: 9px 16px;
	min-height: var(--sebinfo-sticky-atc-h);
	font-size: 14px;
	z-index: 110;
}

/* Inner row: product info hugs the left, the action controls hug the right,
   inside a centred container matching the site content width. */
.sticky-add-to-cart--active .sticky-add-to-cart__product {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: nowrap;
	gap: 14px;
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0;
}

.sticky-add-to-cart--active .sticky-add-to-cart-img {
	width: 48px;
	height: 48px;
	margin: 0;
	border-radius: 8px;
	border: 1px solid #eef1f5;
	flex: 0 0 auto;
}

/* Title sits next to the thumb; it truncates rather than stretching the row
   (the form is what gets pushed to the right edge, via margin-left below). */
.sticky-add-to-cart--active .product-title-small {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 420px;
	margin: 0;
	line-height: 1.25;
}

.sticky-add-to-cart--active .product-title-small strong {
	display: block;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: 15px;
	font-weight: 600;
	color: #1f2733;
}

/* The add-to-cart form: qty + both buttons on one row, pinned to the right.
   width:auto is essential — a global `form.cart { width:100% }` rule otherwise
   stretches this form across the whole bar, packing its buttons on the left and
   leaving the right half empty (and collapsing the title to 0). With the form
   sized to its content, margin-left:auto pushes it to the right edge, even when
   the title is hidden (Flatsome's .hide-for-small removes it on tablet). */
.sticky-add-to-cart--active form.cart {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 10px;
	width: auto;
	margin: 0 0 0 auto;
	flex: 0 0 auto;
}

/* The bulk-pricing plugin injects an (here empty) `.wdp_bulk_table_content`
   container into this cloned add-to-cart form. As a trailing flex child it
   swallows the row's free space and blocks the form's margin-left:auto from
   pushing the buttons right — and on products that DO have bulk tiers it would
   dump a whole pricing table into the compact bar. It has no place in the
   sticky bar (the full table still renders on the product page itself). */
.sticky-add-to-cart--active .wdp_bulk_table_content {
	display: none !important;
}

/* Add-to-cart + Buy-now: DIRECT children of the form only, so the qty +/-
   inputs (which also carry .button, but sit one level deeper inside
   .ux-quantity) are not caught by this rule and keep their stepper styling. */
.sticky-add-to-cart--active form.cart > .button,
.sticky-add-to-cart--active form.cart > button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 46px;
	margin: 0 !important; /* neutralise Flatsome's ml-half; gap handles spacing */
	padding: 0 22px;
	font-size: 13px;
	line-height: 1;
	white-space: nowrap;
	border-radius: 6px;
}

/* Quantity stepper — mirror the product page's unified control (see the
   .product-info .ux-quantity block above) so it reads as one tidy bordered box
   with flat +/- squares and a centred number, instead of Flatsome's loose
   default where the number input is shorter than the buttons. */
.sticky-add-to-cart--active .ux-quantity.quantity {
	display: flex;
	flex: 0 0 auto;
	width: 116px;
	height: 46px;
	margin: 0;
	background: #fff;
	border: 1px solid #dbe1e8;
	border-radius: 6px;
	box-sizing: border-box;
	overflow: hidden;
}

.sticky-add-to-cart--active .ux-quantity > .button {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 37px;
	width: 37px;
	height: 100%;
	min-height: 0;
	margin: 0 !important;
	padding: 0;
	background: #f7f9fb !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: #506176;
	font-size: 19px;
	font-weight: 500;
	line-height: 1;
	text-shadow: none;
}

.sticky-add-to-cart--active .ux-quantity > .button:hover,
.sticky-add-to-cart--active .ux-quantity > .button:focus-visible {
	background: #edf1f5 !important;
	color: #2f4055;
}

.sticky-add-to-cart--active .ux-quantity > input.qty[type="number"] {
	flex: 1 1 0;
	width: 0;
	min-width: 0;
	max-width: none;
	height: 100%;
	min-height: 0;
	margin: 0;
	padding: 0 2px;
	background: #fff;
	border: 0;
	border-left: 1px solid #e2e7ec;
	border-right: 1px solid #e2e7ec;
	border-radius: 0 !important;
	box-shadow: none;
	color: #2f4055;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.sticky-add-to-cart--active .ux-quantity > input.qty::-webkit-outer-spin-button,
.sticky-add-to-cart--active .ux-quantity > input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.sticky-add-to-cart--active .ux-quantity:focus-within {
	border-color: #8498ae;
	box-shadow: 0 0 0 3px rgba(68, 96, 132, 0.13);
}

/* Reserve bottom space so the fixed bar never hides the final footer row.
   Flatsome ALREADY does this on the body (`.has-sticky-product-cart{padding-
   bottom:60px}`); we only bump it to match our slightly taller bar (67px).
   The reservation must live on the body alone — adding it to #footer as well
   double-counts and leaves a white strip below the dark footer (the gap). */
body.has-sticky-product-cart {
	padding-bottom: 68px;
}

/* --- Mobile: title is already hidden (.hide-for-small); drop the thumb
   and lay the form out as qty + add-to-cart on row 1, buy-now on row 2. */
@media (max-width: 549px) {
	.sticky-add-to-cart.sticky-add-to-cart--active {
		padding: 8px 12px;
	}

	.sticky-add-to-cart--active .sticky-add-to-cart-img {
		display: none;
	}

	.sticky-add-to-cart--active .sticky-add-to-cart__product {
		gap: 10px;
	}

	.sticky-add-to-cart--active form.cart {
		flex-wrap: wrap;
		width: 100%;
		gap: 8px;
	}

	.sticky-add-to-cart--active form.cart .single_add_to_cart_button {
		flex: 1 1 auto; /* fills the rest of row 1 next to the qty box */
	}

	.sticky-add-to-cart--active form.cart .ux-buy-now-button {
		flex: 1 1 100%; /* full-width row 2 */
	}

	.sticky-add-to-cart--active form.cart > .button,
	.sticky-add-to-cart--active form.cart > button {
		padding: 0 14px; /* keep the 46px height so buttons align with the qty box */
	}

	/* Two stacked button rows on mobile → the bar is ~113px tall; reserve to
	   match (on the body, overriding Flatsome's 60px — never on #footer). */
	body.has-sticky-product-cart {
		padding-bottom: 116px;
	}
}

.sebinfo-shop-sep__label {
	flex: 0 0 auto;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #8a94a3;
}

/* --------------------------------------------------------------------------
 * Amazon-style homepage: hero with overlapping boxes fading into a grey page
 * area, followed by dynamic product sections (see inc/homepage-engine.php).
 * ------------------------------------------------------------------------ */

.sebinfo-home {
	--sebinfo-home-bg: #eaeded;
	background: var(--sebinfo-home-bg);
	padding-bottom: 48px;
}

.sebinfo-hero {
	position: relative;
}

.sebinfo-hero img {
	display: block;
	width: 100%;
}

.sebinfo-hero .img {
	margin: 0;
}

/* Bottom of the hero dissolves into the page background, Amazon-style. */
.sebinfo-hero__fade {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 68%;
	background: linear-gradient(
		to bottom,
		rgba(234, 237, 237, 0) 0%,
		rgba(234, 237, 237, 0.25) 38%,
		rgba(234, 237, 237, 0.7) 72%,
		var(--sebinfo-home-bg) 100%
	);
	pointer-events: none;
}

/* Keep the hero navigation clear of the overlapping cards. The transparent
   hit areas and simple chevrons mirror Amazon without masking banner content. */
.sebinfo-hero .flickity-prev-next-button {
	top: 35% !important;
	bottom: auto !important;
	width: 72px !important;
	height: 104px !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: translateY(-50%) !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	opacity: 0 !important;
	pointer-events: none;
	transition: opacity 0.2s ease;
	z-index: 4;
}

.sebinfo-hero:hover .flickity-prev-next-button {
	opacity: 1 !important;
	pointer-events: auto;
	transform: translateY(-50%) !important;
}

.sebinfo-hero .flickity-prev-next-button.previous {
	left: 8px !important;
	right: auto !important;
}

.sebinfo-hero .flickity-prev-next-button.next {
	left: auto !important;
	right: 8px !important;
}

.sebinfo-hero .flickity-prev-next-button svg {
	display: none;
}

.sebinfo-hero .flickity-prev-next-button::before {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 34px;
	height: 34px;
	content: "";
	border-right: 4px solid #fff;
	border-bottom: 4px solid #fff;
	filter:
		drop-shadow(3px 4px 0 rgba(0, 0, 0, 0.9))
		drop-shadow(0 6px 6px rgba(0, 0, 0, 0.55));
}

.sebinfo-hero .flickity-prev-next-button.previous::before {
	transform: translate(-35%, -50%) rotate(135deg);
}

.sebinfo-hero .flickity-prev-next-button.next::before {
	transform: translate(-65%, -50%) rotate(-45deg);
}

.sebinfo-hero .flickity-prev-next-button:hover {
	opacity: 1 !important;
}

.sebinfo-hero .flickity-prev-next-button:disabled,
.sebinfo-hero .flickity-prev-next-button[disabled] {
	opacity: 0 !important;
}

.sebinfo-hero .flickity-prev-next-button:focus-visible {
	opacity: 1 !important;
	pointer-events: auto;
	transform: translateY(-50%) !important;
	outline: 2px solid rgba(255, 255, 255, 0.9);
	outline-offset: -5px;
}

.sebinfo-home-container {
	width: 100%;
	max-width: 1270px;
	min-width: 0;
	margin: 0 auto;
	padding: 0 20px;
}

/* The boxes overlapping the hero's lower half. auto-fit keeps the row full
   even when a pool is empty and fewer than four boxes render. */
.sebinfo-hero-boxes {
	position: relative;
	z-index: 5;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 20px;
	margin-top: clamp(-420px, -20vw, -88px);
}

.sebinfo-hero-boxes__item {
	display: flex;
	min-width: 0;
}

.sebinfo-hero-boxes__item.is-empty {
	display: none;
}

.sebinfo-hero-boxes__item > .sebinfo-home-box {
	width: 100%;
}

/* One Amazon-style quad box: title, 2x2 image links, footer link. */
.sebinfo-home-box {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
	padding: 20px;
	min-width: 0;
}

.sebinfo-home-box__title {
	margin: 0 0 14px;
	font-size: 1.1em;
	font-weight: 700;
	line-height: 1.3;
	color: #10141a;
}

/* The grid takes all the height the box has left, so a box holding fewer than
   four tiles fills its space instead of leaving a hole above the footer link. */
.sebinfo-home-box__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-auto-rows: 1fr;
	gap: 14px 12px;
	flex: 1 1 auto;
	min-height: 0;
}

/* Whatever the count, the box keeps the same two-row footprint: the tiles
   span the free rows instead of the box growing (3 tiles) or half-emptying
   (1-2 tiles). Boxes in a row therefore stay the same height as each other. */
.sebinfo-home-box__grid--2 > .sebinfo-home-box__cell,
.sebinfo-home-box__grid--3 > .sebinfo-home-box__cell:first-child {
	grid-row: span 2;
}

/* Single-image box, Amazon's other box flavor. */
.sebinfo-home-box__grid--1 {
	grid-template-columns: 1fr;
}

.sebinfo-home-box__grid--1 .sebinfo-home-box__img {
	aspect-ratio: 4 / 3;
}

.sebinfo-home-box__cell {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
	text-decoration: none;
	color: inherit;
}

/* aspect-ratio is the tile's natural size (it alone sets the box height when
   the row has none to give); flex-grow lets it take the extra height when the
   row is taller. object-fit keeps the photo centered either way. */
.sebinfo-home-box__img {
	display: block;
	flex: 1 1 auto;
	aspect-ratio: 1 / 1;
	min-height: 0;
	overflow: hidden;
	border-radius: 4px;
	background: #f7f8fa;
}

.sebinfo-home-box__img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 6px;
	transition: transform 0.25s ease;
}

.sebinfo-home-box__cell:hover .sebinfo-home-box__img img {
	transform: scale(1.05);
}

.sebinfo-home-box__label {
	display: -webkit-box;
	flex: none;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-top: 6px;
	font-size: 0.78em;
	line-height: 1.35;
	color: #333;
}

/* The tiles that own a whole column can afford a second line of title; the
   reserved two lines also keep side-by-side photos on the same baseline. */
.sebinfo-home-box__grid--1 .sebinfo-home-box__label,
.sebinfo-home-box__grid--2 .sebinfo-home-box__label,
.sebinfo-home-box__grid--3 > .sebinfo-home-box__cell:first-child .sebinfo-home-box__label {
	-webkit-line-clamp: 2;
	min-height: 2.7em;
}

/* Those same tall tiles are framed so the room around a contained photo reads
   as a panel rather than as empty space. */
.sebinfo-home-box__grid--1 > .sebinfo-home-box__cell,
.sebinfo-home-box__grid--2 > .sebinfo-home-box__cell,
.sebinfo-home-box__grid--3 > .sebinfo-home-box__cell:first-child {
	background: #f6f8fa;
	border-radius: 6px;
	padding: 10px;
}

.sebinfo-home-box__grid--1 > .sebinfo-home-box__cell .sebinfo-home-box__img,
.sebinfo-home-box__grid--2 > .sebinfo-home-box__cell .sebinfo-home-box__img,
.sebinfo-home-box__grid--3 > .sebinfo-home-box__cell:first-child .sebinfo-home-box__img {
	background: transparent;
}

.sebinfo-home-box__more {
	margin-top: auto;
	padding-top: 14px;
	font-size: 0.85em;
	font-weight: 600;
	color: #446084;
}

.sebinfo-home-box__more:hover {
	color: #2c466f;
	text-decoration: underline;
}

/* Dynamic section slots. */
.sebinfo-home-sections {
	display: grid;
	width: 100%;
	min-width: 0;
	gap: 24px;
	margin-top: 24px;
}

.sebinfo-home-section {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.sebinfo-home-section.is-empty {
	display: none;
}

.sebinfo-home-card {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08);
	overflow: hidden;
	padding: 14px 16px 10px;
}

.sebinfo-home-section__head {
	display: flex;
	align-items: baseline;
	gap: 16px;
	margin-bottom: 10px;
}

.sebinfo-home-section__title {
	margin: 0;
	font-size: 1.35em;
	font-weight: 700;
	color: #10141a;
}

.sebinfo-home-section__more {
	font-size: 0.85em;
	font-weight: 600;
	color: #446084;
	white-space: nowrap;
}

.sebinfo-home-section__more:hover {
	text-decoration: underline;
}

/* «Reprenez votre visite» with a short history: the cards keep their normal
   size instead of stretching across an empty shelf, and the space left over
   carries the next step rather than nothing. */
.sebinfo-resume__body {
	display: flex;
	align-items: stretch;
	gap: 18px;
}

.sebinfo-resume__items {
	flex: 0 1 auto;
	min-width: 0;
	width: calc(var(--sebinfo-resume-count, 2) * 210px);
	max-width: 100%;
}

.sebinfo-resume__next {
	display: flex;
	flex: 1 1 240px;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	margin-bottom: 6px;
	padding: 18px 20px;
	border-radius: 10px;
	background: linear-gradient(135deg, #f6f8fb 0%, #eef2f7 100%);
}

.sebinfo-resume__lead {
	margin: 0 0 6px;
	font-size: 1.02em;
	font-weight: 700;
	line-height: 1.3;
	color: #10141a;
}

.sebinfo-resume__text {
	margin: 0 0 14px;
	font-size: 0.86em;
	line-height: 1.45;
	color: #55606e;
}

.sebinfo-resume__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
}

.sebinfo-resume__btn {
	display: inline-block;
	padding: 9px 18px;
	border-radius: 6px;
	background: #446084;
	color: #fff;
	font-size: 0.85em;
	font-weight: 600;
	line-height: 1.2;
	transition: background-color 0.2s ease;
}

.sebinfo-resume__btn:hover {
	background: #2c466f;
	color: #fff;
}

.sebinfo-resume__link {
	font-size: 0.85em;
	font-weight: 600;
	color: #446084;
}

.sebinfo-resume__link:hover {
	text-decoration: underline;
}

/* Compact, minimal product carousels. Navigation lives in the heading area so
   it never covers product photography. */
.sebinfo-home-card .sebinfo-home-section__head {
	min-height: 30px;
	margin-bottom: 4px;
	padding-right: 92px;
}

.sebinfo-home-card .sebinfo-home-section__title {
	font-size: 1.15em;
	line-height: 1.3;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) {
	width: 100%;
	max-width: 100% !important;
	min-width: 0;
	margin: 0 !important;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .product-small.col {
	padding: 0 5px 6px !important;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .col-inner {
	height: 100%;
	padding: 5px;
	background: #fff;
	border: 0 !important;
	border-radius: 10px;
	box-shadow: none !important;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .col-inner:hover {
	background: #f8fafc;
	transform: translateY(-1px);
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .box-image {
	height: 156px;
	background: #f7f8fa;
	border: 0 !important;
	border-radius: 8px;
	overflow: hidden;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .box-image > div:first-child,
.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .box-image > div:first-child > a {
	height: 100%;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .box-image > div:first-child > a {
	display: flex;
	align-items: center;
	justify-content: center;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .box-image img {
	width: 100% !important;
	height: 100% !important;
	padding: 10px;
	object-fit: contain;
	object-position: center;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .box-text {
	padding: 8px 2px 0;
	text-align: left;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .product-cat {
	margin: 0 0 2px;
	color: #7b8490;
	font-size: 10px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.04em;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) :is(.product-title, .woocommerce-loop-product__title),
.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) :is(.product-title, .woocommerce-loop-product__title) > a {
	display: -webkit-box;
	min-height: 38px;
	margin: 0;
	overflow: hidden;
	color: #202833;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.4;
	white-space: normal;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .price-wrapper {
	margin-top: 4px;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .price {
	color: #111827;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.3;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .image-tools.top.right {
	top: 8px;
	right: 8px;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .wishlist-button.button {
	width: 30px;
	height: 30px;
	min-width: 30px;
	min-height: 30px;
	background: rgba(255, 255, 255, 0.94) !important;
	border: 0;
	box-shadow: 0 2px 8px rgba(36, 55, 80, 0.1);
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .add-to-cart-button {
	margin: 8px 0 0;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) :is(.add-to-cart-button a, a.add_to_cart_button) {
	min-height: 30px;
	margin: 0;
	padding: 7px 10px;
	background: #344b65 !important;
	border: 0 !important;
	border-radius: 7px;
	box-shadow: none !important;
	color: #fff !important;
	font-size: 10.5px;
	font-weight: 650;
	line-height: 1.2;
	letter-spacing: 0.02em;
}

.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) :is(.add-to-cart-button a, a.add_to_cart_button):hover {
	background: #293d53 !important;
}

.sebinfo-home-card .home-best-sellers-carousel .flickity-prev-next-button,
.sebinfo-home-card .home-best-sellers-carousel:hover .flickity-prev-next-button {
	top: -19px !important;
	bottom: auto !important;
	width: 34px !important;
	height: 34px;
	background: #f4f6f8 !important;
	border: 0;
	border-radius: 50%;
	box-shadow: none !important;
	color: #536171;
	opacity: 1;
	transform: translateY(-50%) !important;
}

.sebinfo-home-card .home-best-sellers-carousel .flickity-prev-next-button.previous {
	left: auto !important;
	right: 42px !important;
}

.sebinfo-home-card .home-best-sellers-carousel .flickity-prev-next-button.next {
	left: auto !important;
	right: 0 !important;
}

.sebinfo-home-card .home-best-sellers-carousel .flickity-prev-next-button::before {
	width: 10px;
	height: 10px;
	border-top-width: 2px;
	border-left-width: 2px;
}

.sebinfo-home-card .home-best-sellers-carousel .flickity-prev-next-button:hover {
	background: #e9edf1 !important;
	color: #202b37;
	transform: translateY(-50%) !important;
}

/* Row of category quad boxes (no white wrapper — the boxes are the cards). */
.sebinfo-home-tiles {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.sebinfo-home-tiles--2 {
	grid-template-columns: repeat(2, 1fr);
}

.sebinfo-home-tiles--3 {
	grid-template-columns: repeat(3, 1fr);
}

.sebinfo-home-tiles .sebinfo-home-box {
	height: 100%;
}

/* Until (or unless) Flickity initializes, sliders degrade to a swipeable row. */
.sebinfo-home-card .slider:not(.flickity-enabled) {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.sebinfo-home-card .slider:not(.flickity-enabled) > .col {
	flex: 0 0 auto;
}

/* Landing pages (Meilleures ventes / Nouveautés / Promotions / Nos favoris). */
.sebinfo-landing-head {
	text-align: center;
	padding: 4px 0 0;
}

.sebinfo-landing-head__intro {
	margin: 0 0 18px;
	color: #555;
}

.sebinfo-landing-empty {
	text-align: center;
	color: #777;
	padding: 36px 0;
}

.sebinfo-landing-footer {
	text-align: center;
	margin: 26px 0 8px;
}

@media only screen and (max-width: 849px) {
	/* The hero banner is taller than its artwork — the bottom of it is empty
	   backdrop that the boxes are meant to sit on. The overlap is expressed in
	   vw (like the desktop rule) because the banner's height scales with the
	   viewport width, so the boxes land just under the artwork at any size. */
	.sebinfo-hero-boxes {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
		margin-top: clamp(-160px, -18vw, -34px);
	}

	.sebinfo-home-box {
		padding: 16px;
	}

	.sebinfo-home-tiles {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}

	.sebinfo-home-card {
		padding: 14px 12px 10px;
	}

	.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .box-image {
		height: 150px;
	}

	.sebinfo-home-section__title {
		font-size: 1.15em;
	}
}

@media only screen and (max-width: 549px) {
	/* Phones get the desktop composition rather than a hero left hanging above
	   a stack of cards: one box per row, lifted onto the empty lower part of
	   the banner. The overlap stays a little short of the artwork on purpose,
	   so a banner that is drawn slightly lower is still never covered. */
	.sebinfo-hero-boxes {
		grid-template-columns: 1fr;
		gap: 12px;
		margin-top: clamp(-96px, -17vw, -26px);
	}

	.sebinfo-home-container {
		padding: 0 12px;
	}

	/* Cards read as one family with the section cards below them, and the
	   product photos get the room the padding used to take. */
	.sebinfo-home-box {
		padding: 14px;
		border-radius: 12px;
	}

	.sebinfo-home-box__title {
		margin-bottom: 12px;
		font-size: 1.05em;
	}

	.sebinfo-home-box__grid {
		gap: 12px 10px;
	}

	.sebinfo-home-box__img {
		border-radius: 8px;
	}

	.sebinfo-home-box__img img {
		padding: 3px;
	}

	.sebinfo-home-box__more {
		padding-top: 12px;
	}

	.sebinfo-home-sections {
		gap: 16px;
	}

	.sebinfo-home-tiles {
		grid-template-columns: 1fr;
	}

	.sebinfo-home-card .sebinfo-home-section__head {
		padding-right: 84px;
	}

	.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .product-small.col {
		padding-right: 5px !important;
		padding-left: 5px !important;
	}

	.sebinfo-home-card :is(.home-best-sellers-carousel, .sebinfo-home-grid) .box-image {
		height: 132px;
	}

	/* Phones: the products take the full width and the next step sits under
	   them, so nothing is squeezed into a column of its own. */
	.sebinfo-resume__body {
		flex-direction: column;
		gap: 12px;
	}

	.sebinfo-resume__items {
		width: 100%;
	}

	.sebinfo-hero .flickity-prev-next-button {
		top: 50% !important;
		width: 48px !important;
		height: 68px !important;
	}

	.sebinfo-hero .flickity-prev-next-button::before {
		width: 24px;
		height: 24px;
		border-width: 0 2px 2px 0;
	}
}

/* ---------------------------------------------------------------------------
   Product page recommendation rows: «Vous aimerez peut-être aussi» and
   «Produits similaires».

   Product photos come in every shape, so cards used to be as tall as their own
   image and rows stepped up and down. Every card now gets the same image box
   and a two-line title slot, which lines the prices and the buttons up across
   the row — the card language of the homepage rows, so the two pages read as
   one shop.
   --------------------------------------------------------------------------- */
.upsells-wrapper,
.related-products-wrapper {
	margin-top: 34px;
	padding-top: 26px;
	border-top: 1px solid #edf0f4;
}

.upsells-wrapper > .product-section-title,
.related-products-wrapper > .product-section-title {
	margin: 0 0 18px;
	padding: 0 !important;
	border: 0;
	font-size: 1.35em;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: #10141a;
}

.upsells-wrapper .product-small.col,
.related-products-wrapper .product-small.col {
	padding: 0 8px 16px !important;
}

.upsells-wrapper .col-inner,
.related-products-wrapper .col-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 10px 10px 12px;
	border: 1px solid #edf0f4;
	border-radius: 12px;
	background: #fff;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.upsells-wrapper .col-inner:hover,
.related-products-wrapper .col-inner:hover {
	transform: translateY(-2px);
	border-color: #e2e8f0;
	box-shadow: 0 8px 22px rgba(15, 23, 42, 0.1);
}

.upsells-wrapper .product-small.box,
.related-products-wrapper .product-small.box {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-height: 0;
	margin: 0;
}

.upsells-wrapper .box-image,
.related-products-wrapper .box-image {
	height: 190px;
	border-radius: 8px;
	background: #f7f8fa;
	overflow: hidden;
}

.upsells-wrapper .box-image > div:first-child,
.related-products-wrapper .box-image > div:first-child,
.upsells-wrapper .box-image > div:first-child > a,
.related-products-wrapper .box-image > div:first-child > a {
	height: 100%;
}

.upsells-wrapper .box-image > div:first-child > a,
.related-products-wrapper .box-image > div:first-child > a {
	display: flex;
	align-items: center;
	justify-content: center;
}

.upsells-wrapper .box-image img,
.related-products-wrapper .box-image img {
	width: 100% !important;
	height: 100% !important;
	padding: 12px;
	object-fit: contain;
	object-position: center;
}

.upsells-wrapper .box-text,
.related-products-wrapper .box-text {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: stretch !important;
	padding: 12px 2px 0 !important;
	text-align: left !important;
}

.upsells-wrapper .product-cat,
.related-products-wrapper .product-cat {
	margin: 0 0 3px;
	font-size: 0.72em;
	letter-spacing: 0.04em;
	line-height: 1.3;
	color: #8a93a0;
	opacity: 1;
}

/* Two reserved lines: prices and buttons stay on the same baseline whether a
   product is called "Logiciels" or carries a full reference string. The theme
   keeps loop titles on a single nowrap line, which cut references mid-word. */
.upsells-wrapper .name.product-title,
.related-products-wrapper .name.product-title {
	min-height: 2.7em;
	margin: 0 0 8px;
	font-size: 0.92em;
	font-weight: 500;
	line-height: 1.35;
}

/* The clamp lives on the link: the theme keeps it nowrap with an ellipsis,
   which cut a reference like "…PG-445 Noire + CL-446 Cou…" mid-word. */
.upsells-wrapper .name.product-title a,
.related-products-wrapper .name.product-title a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden !important;
	white-space: normal !important;
	text-overflow: clip !important;
	color: #1c2733;
}

/* The theme centres both blocks with auto side margins, which wins over the
   column's alignment — they have to be cleared for the card to read as one
   left-aligned stack. */
.upsells-wrapper .price-wrapper,
.related-products-wrapper .price-wrapper,
.upsells-wrapper .add-to-cart-button,
.related-products-wrapper .add-to-cart-button {
	width: 100%;
	margin-right: 0 !important;
	margin-left: 0 !important;
	text-align: left !important;
}

.upsells-wrapper .price-wrapper .price,
.related-products-wrapper .price-wrapper .price {
	justify-content: flex-start;
	font-size: 1.02em;
	font-weight: 700;
	color: #10141a;
}

.upsells-wrapper .add-to-cart-button,
.related-products-wrapper .add-to-cart-button {
	margin-top: auto;
	padding-top: 10px;
}

.upsells-wrapper .add-to-cart-button .button,
.related-products-wrapper .add-to-cart-button .button {
	display: block;
	width: 100% !important;
	min-height: 0;
	margin: 0 !important;
	padding: 9px 10px;
	border: 0 !important;
	border-radius: 6px;
	background-color: #446084 !important;
	color: #fff !important;
	font-size: 0.74em;
	line-height: 1.3;
	transition: background-color 0.2s ease;
}

.upsells-wrapper .add-to-cart-button .button:hover,
.related-products-wrapper .add-to-cart-button .button:hover {
	background-color: #2c466f !important;
	color: #fff !important;
}

@media only screen and (max-width: 849px) {
	.upsells-wrapper .box-image,
	.related-products-wrapper .box-image {
		height: 150px;
	}

	.upsells-wrapper > .product-section-title,
	.related-products-wrapper > .product-section-title {
		font-size: 1.2em;
	}
}

@media only screen and (max-width: 549px) {
	.upsells-wrapper .product-small.col,
	.related-products-wrapper .product-small.col {
		padding: 0 5px 12px !important;
	}

	.upsells-wrapper .box-image,
	.related-products-wrapper .box-image {
		height: 130px;
	}
}

/* ---------------------------------------------------------------------------
   Cart cross-sells («Vous serez peut-être intéressé par…»).

   This row sits in the wide cart column and holds only what the engine can
   justify for the basket — often two products. Two grid cards in that column
   read as an unfinished shelf, so each suggestion becomes one full-width line
   instead: photo, name, price, and the action on the right. The row fills its
   space at any length, and the count stays honest.
   --------------------------------------------------------------------------- */
.cross-sells {
	margin-top: 30px;
	padding-top: 24px;
	border-top: 1px solid #edf0f4;
}

.cross-sells > h2,
.cross-sells > .product-section-title {
	margin: 0 0 16px;
	padding: 0 !important;
	border: 0;
	font-size: 1.25em;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: #10141a;
}

.cross-sells .row {
	display: block;
	margin: 0 !important;
}

.cross-sells .product-small.col {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
	padding: 0 0 10px !important;
}

.cross-sells .col-inner {
	padding: 10px 12px;
	border: 1px solid #edf0f4;
	border-radius: 12px;
	background: #fff;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cross-sells .col-inner:hover {
	border-color: #e2e8f0;
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}

.cross-sells .product-small.box {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0;
}

.cross-sells .box-image {
	flex: 0 0 92px;
	width: 92px;
	height: 92px;
	border-radius: 8px;
	background: #f7f8fa;
	overflow: hidden;
}

.cross-sells .box-image > div:first-child,
.cross-sells .box-image > div:first-child > a {
	height: 100%;
}

/* The theme's hover tools (Aperçu, wishlist) are sized for a full product
   card; over a 92px thumbnail they cover the product completely. The whole
   line already links to the product, so they are dropped here. */
.cross-sells .box-image .image-tools,
.cross-sells .box-image .quick-view,
.cross-sells .box-image .wishlist-button,
.cross-sells .box-image .yith-wcwl-add-to-wishlist,
.cross-sells .box-image .product-thumbnails,
.cross-sells .box-image .overlay {
	display: none !important;
}

/* No zoom or fade on hover either: on a thumbnail this size it only makes the
   photo jitter under the cursor. */
.cross-sells .box-image .image-fade_in_back img,
.cross-sells .box-image .image-zoom img,
.cross-sells .box-image img {
	transform: none !important;
	opacity: 1 !important;
}

.cross-sells .box-image img {
	width: 100% !important;
	height: 100% !important;
	padding: 8px;
	object-fit: contain;
}

.cross-sells .box-text {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 18px;
	min-width: 0;
	padding: 0 !important;
	text-align: left !important;
}

.cross-sells .title-wrapper {
	flex: 1 1 240px;
	min-width: 0;
}

.cross-sells .product-cat {
	margin: 0 0 2px;
	font-size: 0.72em;
	letter-spacing: 0.04em;
	line-height: 1.3;
	color: #8a93a0;
	opacity: 1;
}

.cross-sells .name.product-title {
	margin: 0;
	font-size: 0.95em;
	font-weight: 500;
	line-height: 1.35;
}

.cross-sells .name.product-title a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden !important;
	white-space: normal !important;
	text-overflow: clip !important;
	color: #1c2733;
}

.cross-sells .price-wrapper,
.cross-sells .add-to-cart-button {
	flex: 0 0 auto;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}

.cross-sells .price-wrapper .price {
	font-size: 1.02em;
	font-weight: 700;
	white-space: nowrap;
	color: #10141a;
}

/* The button used to wrap "Ajouter au panier" onto two lines in a narrow
   column; on one line it reads as a control rather than a paragraph. */
.cross-sells .add-to-cart-button .button {
	display: inline-block;
	width: auto !important;
	min-height: 0;
	margin: 0 !important;
	padding: 10px 18px;
	border: 0 !important;
	border-radius: 6px;
	background-color: #446084 !important;
	color: #fff !important;
	font-size: 0.74em;
	line-height: 1.3;
	white-space: nowrap;
	transition: background-color 0.2s ease;
}

.cross-sells .add-to-cart-button .button:hover {
	background-color: #2c466f !important;
	color: #fff !important;
}

@media only screen and (max-width: 549px) {
	.cross-sells .box-image {
		flex-basis: 72px;
		width: 72px;
		height: 72px;
	}

	.cross-sells .product-small.box {
		gap: 12px;
	}

	.cross-sells .box-text {
		gap: 6px 12px;
	}

	.cross-sells .title-wrapper {
		flex-basis: 100%;
	}
}

/* ---------------------------------------------------------------------------
   Phones: keep the product photo clear of the card tools.

   A card photo is only ~120-160px wide on a phone, and the theme pins the
   wishlist chip *inside* that frame — permanently visible on touch devices
   (Flatsome forces .image-tools opacity:1 under max-device-width:1024px), so it
   sits on the product instead of appearing on hover as it does on desktop.

   Below 768px the chip therefore leaves the frame: it floats on the photo's
   bottom-right corner, mostly below it, and the text block reserves the room it
   needs so nothing runs underneath. The overlay bars ("Aperçu" and friends,
   already dropped under 550px by the theme's own .hide-for-small) go for the
   same reason — on a phone, tapping the card *is* the quick view.
   --------------------------------------------------------------------------- */
@media only screen and (max-width: 767px) {
	/* The tools have to escape the frame, so the clipping that keeps the photo
	   inside its rounded corners moves to the image wrapper just below it. */
	.product-small .box-image {
		overflow: visible !important;
	}

	.product-small .box-image > div:first-child {
		position: relative;
		overflow: hidden;
		border-radius: inherit;
	}

	/* :hover sticks after a tap on touch screens — the hover variants are
	   repeated here so the chip never jumps back onto the photo. */
	.product-small .box-image > .image-tools.top.right,
	.product-small:hover .box-image > .image-tools.top.right,
	.product-small:focus-within .box-image > .image-tools.top.right {
		top: 100%;
		right: 4px;
		bottom: auto;
		left: auto;
		z-index: 4;
		padding: 0;
		opacity: 1;
		pointer-events: auto;
		transform: translateY(-12px);
	}

	/* Room for the 18px of chip that now hangs under the photo. */
	.product-small .box-text {
		padding-top: 22px !important;
	}

	/* The chip now straddles the photo frame and the white card under it, so a
	   hairline ring replaces the border it used to rely on for definition. */
	.product-small .wishlist-button.button {
		width: 30px;
		height: 30px;
		min-width: 30px;
		min-height: 30px;
		border: 0 !important;
		box-shadow:
			0 2px 10px rgba(36, 55, 80, 0.16),
			0 0 0 1px rgba(213, 222, 233, 0.9) !important;
	}

	.product-small .wishlist-button.button i {
		font-size: 15px;
	}

	.product-small .wishlist-button.button.loading::after {
		width: 38px;
		height: 38px;
		margin: -19px 0 0 -19px;
	}

	/* Full-width overlay bars cover the product they are meant to preview. */
	.product-small .box-image > .image-tools.hide-for-small,
	.product-small .box-image > .image-tools.grid-tools {
		display: none !important;
	}

	/* Cross-sell rows are horizontal and drop the tools altogether, so they keep
	   their own compact frame and padding. */
	.cross-sells .box-image {
		overflow: hidden !important;
	}

	.cross-sells .box-text {
		padding: 0 !important;
	}
}
