/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* =========================================================
   HFI HEADER
   ========================================================= */


.hfi-header {
	width: 100%;
	background: #fff;
	border-bottom: 1px solid #eee;
	position: relative;
	z-index: 100;
}

.hfi-header-main {
	max-width: 1440px;
	margin: 0 auto;
	padding: 10px 24px;
	display: grid;
	grid-template-columns: 170px minmax(350px, 1fr) auto;
	align-items: center;
	gap: 28px;
}

.hfi-logo {
	display: flex;
	align-items: center;
}

.hfi-logo a {
	display: flex;
	align-items: center;
}

.hfi-logo img {
	display: block;
	width: auto;
	max-width: 135px;
	max-height: 72px;
	height: auto;
}

.hfi-logo .custom-logo-link {
	display: flex;
}

/* Ricerca */

.hfi-search form {
	width: 100%;
	height: 40px;
	display: flex;
	border: 1px solid #d8d8d8;
	border-radius: 5px;
	overflow: hidden;
	background: #fff;
}

.hfi-search input[type="search"] {
	width: 100%;
	border: 0;
	outline: 0;
	padding: 0 16px;
	font-size: 14px;
	background: transparent;
}

.hfi-search button {
	width: 48px;
	border: 0;
	background: transparent;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.hfi-search button svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}

/* Account + carrello */

.hfi-actions {
	display: flex;
	align-items: center;
	gap: 20px;
}

.hfi-actions a {
	display: flex;
	align-items: center;
	gap: 7px;
	text-decoration: none;
	color: inherit;
	font-size: 13px;
	white-space: nowrap;
}

.hfi-actions svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
}

/* Navigazione desktop */

.hfi-navigation {
	border-top: 1px solid #f0f0f0;
}

.hfi-main-menu {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 24px;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 30px;
}

.hfi-main-menu > li {
	position: relative;
}

.hfi-main-menu > li > a {
	display: block;
	padding: 11px 0;
	text-decoration: none;
	color: inherit;
	font-size: 13px;
	font-weight: 500;
}

/* Dropdown */

.hfi-main-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: #fff;
	box-shadow: 0 8px 30px rgba(0,0,0,.09);
	opacity: 0;
	visibility: hidden;
	transform: translateY(5px);
	transition:
		opacity .15s ease,
		transform .15s ease,
		visibility .15s ease;
}

.hfi-main-menu li:hover > .sub-menu,
.hfi-main-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.hfi-main-menu .sub-menu a {
	display: block;
	padding: 10px 16px;
	text-decoration: none;
	color: inherit;
	font-size: 14px;
}

/* Mobile */

.hfi-mobile-menu {
	display: none;
}

@media (max-width: 767px) {

	.hfi-header-main {
		display: grid;
		grid-template-columns: 1fr auto auto;
		padding: 10px 16px;
		gap: 14px;
	}

	.hfi-logo img {
		max-width: 105px;
	}

	.hfi-search {
		display: none;
	}

	.hfi-navigation {
		display: none;
	}

	.hfi-actions .hfi-account {
		display: none;
	}

	.hfi-actions .hfi-cart span {
		display: none;
	}

	.hfi-actions {
		gap: 0;
	}

	.hfi-mobile-menu {
		display: block;
		position: relative;
	}

	.hfi-mobile-menu summary {
		width: 28px;
		height: 28px;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		cursor: pointer;
		list-style: none;
	}

	.hfi-mobile-menu summary::-webkit-details-marker {
		display: none;
	}

	.hfi-mobile-menu summary span {
		display: block;
		width: 24px;
		height: 2px;
		background: currentColor;
	}

	.hfi-mobile-panel {
		position: absolute;
		top: calc(100% + 10px);
		right: -16px;
		width: min(90vw, 360px);
		padding: 18px;
		background: #fff;
		box-shadow: 0 12px 30px rgba(0,0,0,.12);
	}

	.hfi-mobile-nav {
		padding: 0;
		margin: 0 0 20px;
		list-style: none;
	}

	.hfi-mobile-nav li {
		border-bottom: 1px solid #eee;
	}

	.hfi-mobile-nav a {
		display: block;
		padding: 12px 0;
		color: inherit;
		text-decoration: none;
	}

	.hfi-mobile-nav .sub-menu {
		list-style: none;
		margin: 0;
		padding: 0 0 5px 15px;
	}

	.hfi-mobile-search {
		display: flex;
	}

	.hfi-mobile-search input {
		min-width: 0;
		flex: 1;
		border: 1px solid #ddd;
		padding: 10px;
	}

	.hfi-mobile-search button {
		border: 0;
		padding: 0 14px;
		cursor: pointer;
	}
}

/* Fix dimensione icone header HFI */
.hfi-header svg {
	display: block !important;
	width: 22px !important;
	height: 22px !important;
	min-width: 22px !important;
	min-height: 22px !important;
	max-width: 22px !important;
	max-height: 22px !important;
	flex: 0 0 22px !important;
}

.hfi-search button svg {
	width: 19px !important;
	height: 19px !important;
	min-width: 19px !important;
	min-height: 19px !important;
	max-width: 19px !important;
	max-height: 19px !important;
}

@media (max-width: 767px) {
	.hfi-actions svg {
		width: 23px !important;
		height: 23px !important;
		min-width: 23px !important;
		min-height: 23px !important;
		max-width: 23px !important;
		max-height: 23px !important;
	}
}

@media (max-width: 767px) {

	.hfi-header-main {
		min-height: 66px;
		padding: 7px 14px;
		grid-template-columns: 1fr auto auto;
		gap: 16px;
	}

	.hfi-logo img {
		width: auto;
		max-width: 112px;
		max-height: 52px;
		height: auto;
	}

	.hfi-actions {
		display: flex;
		align-items: center;
	}

.hfi-actions .hfi-cart {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
}

	.hfi-actions .hfi-cart svg {
		width: 22px !important;
		height: 22px !important;
		min-width: 22px !important;
		min-height: 22px !important;
	}

.hfi-mobile-menu summary {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
}

	.hfi-mobile-menu summary span {
		width: 23px;
		height: 2px;
	}

	.hfi-mobile-panel {
		top: calc(100% + 7px);
		right: -14px;
		width: min(92vw, 360px);
	}

}

/* =========================================================
   HFI MOBILE MENU - ACCORDION
   ========================================================= */

@media (max-width: 767px) {

	.hfi-mobile-panel {
		max-height: calc(100vh - 70px);
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 8px 18px 20px;
	}

	.hfi-mobile-nav,
	.hfi-mobile-nav ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.hfi-mobile-nav > li {
		position: relative;
		border-bottom: 1px solid #ededed;
	}

	.hfi-mobile-nav li {
		position: relative;
	}

	.hfi-mobile-nav a {
		display: block;
		padding: 13px 42px 13px 0;
		color: inherit;
		text-decoration: none;
		line-height: 1.35;
	}

	/* Sottomenu chiusi di default */
	.hfi-mobile-nav .sub-menu {
		display: none;
		padding-left: 14px;
		border-left: 1px solid #eee;
	}

	/* Sottomenu aperto */
	.hfi-mobile-nav li.hfi-submenu-open > .sub-menu {
		display: block;
	}

	/* Bottone freccia */
	.hfi-submenu-toggle {
		position: absolute;
		top: 4px;
		right: 0;
		width: 38px;
		height: 38px;
		padding: 0;
		border: 0;
		background: transparent;
		cursor: pointer;
		font-size: 20px;
		line-height: 1;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.hfi-submenu-toggle::before {
		content: "›";
		display: block;
		transition: transform .15s ease;
	}

	.hfi-submenu-open > .hfi-submenu-toggle::before {
		transform: rotate(90deg);
	}

	.hfi-mobile-nav .sub-menu a {
		font-size: 13px;
		padding-top: 10px;
		padding-bottom: 10px;
	}

}

@media (max-width: 767px) {

	.hfi-mobile-panel {
		top: calc(100% + 7px);
		right: -14px;

		width: calc(100vw - 24px);
		max-width: none;

		padding: 8px 18px 20px;

		background: #fff;
		box-shadow: 0 12px 30px rgba(0,0,0,.12);

		max-height: calc(100vh - 75px);
		overflow-y: auto;

		z-index: 9999;
	}

	.hfi-submenu-toggle {
		border-radius: 3px;
		background: #3b1911;
		color: #fff;
	}

	.hfi-mobile-search {
		margin-top: 14px;
		width: 100%;
	}

	.hfi-mobile-search input {
		height: 42px;
		padding: 0 12px;
		border: 1px solid #ddd;
		border-radius: 3px 0 0 3px;
		font-size: 14px;
	}

	.hfi-mobile-search button {
		height: 42px;
		padding: 0 15px;
		background: #fff;
		border: 1px solid #ddd;
		border-left: 0;
		border-radius: 0 3px 3px 0;
		font-size: 13px;
	}
}

/* =========================================================
   HFI FOOTER
   ========================================================= */

.hfi-footer {
	background: #f7f7f7;
	color: #292929;
	margin-top: 60px;
}

.hfi-footer-inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 42px 24px 32px;
	display: grid;
	grid-template-columns: 1.15fr 1fr 1fr 1fr;
	gap: 55px;
}

.hfi-footer-logo img {
	display: block;
	width: auto;
	max-width: 155px;
	height: auto;
	margin-bottom: 22px;
}

.hfi-footer-claim {
	max-width: 260px;
	margin: 0 0 28px;
	font-size: 14px;
	line-height: 1.75;
}

.hfi-footer-company {
	font-size: 14px;
	line-height: 1.9;
}

.hfi-footer-company > strong {
	display: block;
	margin-bottom: 6px;
}

.hfi-footer-company p {
	margin: 0;
}


/* Titoli */

.hfi-footer h3,
.hfi-footer summary {
	margin: 0 0 23px;
	font-size: 16px;
	font-weight: 700;
	color: #222;
}

.hfi-footer details {
	margin: 0;
}

.hfi-footer summary {
	list-style: none;
	cursor: default;
}

.hfi-footer summary::-webkit-details-marker {
	display: none;
}


/* Liste */

.hfi-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.hfi-footer li {
	margin: 0 0 14px;
}

.hfi-footer a {
	color: inherit;
	text-decoration: none;
	transition: opacity .15s ease;
}

.hfi-footer a:hover {
	opacity: .65;
}

.hfi-footer-legal {
	margin-top: 27px !important;
}


/* Contatti */

.hfi-footer-contact > p {
	margin: 0 0 8px;
	font-size: 14px;
}

.hfi-footer-phone {
	display: block;
	margin-bottom: 8px;
	font-size: 19px;
	font-weight: 700;
}

.hfi-footer-email {
	display: block;
	margin-bottom: 25px;
	text-decoration: underline !important;
}


/* Social */

.hfi-footer-social {
	display: flex;
	gap: 10px;
	margin-bottom: 25px;
}

.hfi-footer-social a {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;

	display: flex;
	align-items: center;
	justify-content: center;
}

.hfi-footer-social svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}

.hfi-footer-social a:first-child svg {
	fill: currentColor;
	stroke: none;
}


/* Pagamenti */

.hfi-payments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.hfi-payments span {
	font-size: 13px;
	font-weight: 700;
}


/* Barra inferiore */

.hfi-footer-bottom {
	min-height: 48px;
	padding: 10px 24px;

	background: #ededed;

	display: flex;
	align-items: center;
	justify-content: center;

	position: relative;

	font-size: 13px;
}

.hfi-back-top {
	position: absolute;
	right: 20px;

	width: 38px;
	height: 38px;

	border: 1px solid #333;
	border-radius: 50%;

	display: flex;
	align-items: center;
	justify-content: center;

	font-size: 19px;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

	.hfi-footer {
		margin-top: 40px;
	}

	.hfi-footer-inner {
		display: block;
		padding: 38px 20px 30px;
	}

	.hfi-footer-logo img {
		max-width: 140px;
		margin-bottom: 18px;
	}

	.hfi-footer-claim {
		margin-bottom: 25px;
	}

	.hfi-footer-company {
		margin-bottom: 30px;
	}

	.hfi-footer-column {
		border-top: 1px solid #ddd;
	}

	.hfi-footer-column details {
		border-bottom: 1px solid #ddd;
	}

	.hfi-footer-column summary {
		position: relative;

		margin: 0;
		padding: 16px 32px 16px 0;

		cursor: pointer;
	}

	.hfi-footer-column summary::after {
		content: "+";

		position: absolute;
		right: 4px;
		top: 50%;

		transform: translateY(-50%);

		font-size: 20px;
		font-weight: 400;
	}

	.hfi-footer-column details[open] summary::after {
		content: "−";
	}

	.hfi-footer-column details ul {
		padding-bottom: 12px;
	}

	.hfi-footer-column li {
		margin-bottom: 13px;
	}

	.hfi-footer-legal {
		margin-top: 0 !important;
	}

	.hfi-footer-contact {
		padding-top: 28px;
	}

	.hfi-footer-bottom {
		padding: 15px 55px 15px 20px;
		justify-content: flex-start;
	}

	.hfi-back-top {
		right: 12px;
	}

}

@media (max-width: 767px) {

	.hfi-footer-column summary {
		font-size: 14px;
		font-weight: 700;
	}

	.hfi-footer-column summary::after {
		content: "+";
		font-size: 18px;
	}

	.hfi-footer-column details[open] summary::after {
		content: "−";
	}

}

/* =========================================================
   HFI - LARGHEZZA GLOBALE 1440px WOOCOMMERCE
   ========================================================= */

body.woocommerce-shop .site-main,
body.post-type-archive-product .site-main,
body.tax-product_cat .site-main,
body.tax-product_tag .site-main,
body.tax-product_brand .site-main {
	width: 100%;
	max-width: 1440px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}

/* =========================================================
   HFI SHOP / CATEGORIE
   ========================================================= */

.hfi-shop-layout {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 30px 0 60px;

	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 32px;

	align-items: start;
}

.hfi-shop-sidebar {
	min-width: 0;
}

.hfi-shop-content {
	min-width: 0;
}

.hfi-shop-content .site-main {
	width: 100%;
	max-width: none;
}


/* WIDGET SIDEBAR */

.hfi-shop-widget {
	padding: 0 0 24px;
	margin: 0 0 24px;

	border-bottom: 1px solid #e8e8e8;
}

.hfi-shop-widget-title {
	margin: 0 0 15px;

	font-size: 16px;
	font-weight: 700;

	color: #222;
}

.hfi-shop-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hfi-shop-widget li {
	margin: 0;
	padding: 7px 0;
}

.hfi-shop-widget a {
	color: inherit;
	text-decoration: none;

	font-size: 14px;
}

.hfi-shop-widget a:hover {
	opacity: .65;
}


/* MOBILE */

@media (max-width: 900px) {

	.hfi-shop-layout {
		grid-template-columns: 1fr;
		gap: 25px;

		padding: 20px 16px 40px;
	}

}

/* =========================================================
   HFI SHOP - SIDEBAR REFINEMENT
   ========================================================= */

.hfi-shop-sidebar {
	width: 250px;
}

.hfi-shop-widget {
	margin: 0 0 26px;
	padding: 0 0 24px;
	border-bottom: 1px solid #e7e7e7;
}

.hfi-shop-widget-title {
	margin: 0 0 16px;
	font-size: 16px;
	font-weight: 700;
	color: #222;
}

.hfi-shop-widget ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hfi-shop-widget li {
	margin: 0;
	padding: 0;
}

.hfi-shop-widget li a {
	display: block;
	padding: 8px 0;
	font-size: 14px;
	line-height: 1.35;
	color: #292929;
	text-decoration: none;
	transition: color .15s ease;
}

.hfi-shop-widget li a:hover {
	color: #7b2e23;
}

/* Categoria corrente */
.hfi-shop-widget li.current-cat > a,
.hfi-shop-widget li.current-cat-parent > a {
	font-weight: 700;
	color: #7b2e23;
}

/* Eventuali sottocategorie */
.hfi-shop-widget .children {
	padding-left: 14px;
	margin-top: 2px;
}

.hfi-shop-widget .children a {
	font-size: 13px;
}


/* =========================================================
   RISULTATI + ORDINAMENTO
   ========================================================= */

.hfi-shop-content .woocommerce-result-count {
	margin: 0 0 28px;
	font-size: 14px;
}

.hfi-shop-content .woocommerce-ordering {
	margin: -38px 0 22px;
}

.hfi-shop-content .woocommerce-ordering select {
	min-width: 230px;
	height: 42px;
	padding: 0 38px 0 14px;
	border: 1px solid #bbb;
	border-radius: 3px;
	background: #fff;
	font-size: 14px;
}

/* Pulsante filtri nascosto su desktop */
.hfi-shop-filter-toggle {
	display: none;
}

@media (max-width: 900px) {

	.hfi-shop-layout {
		display: block;
		padding: 20px 16px 40px;
	}

	.hfi-shop-filter-toggle {
		width: 100%;
		height: 46px;

		display: flex;
		align-items: center;
		justify-content: space-between;

		margin: 0 0 20px;
		padding: 0 15px;

		border: 1px solid #ddd;
		border-radius: 3px;

		background: #fff;
		color: #222;

		font-size: 14px;
		font-weight: 600;

		cursor: pointer;
	}

	.hfi-filter-icon {
		font-size: 20px;
		font-weight: 400;
	}

	.hfi-shop-sidebar {
		display: none;
		width: 100%;

		margin-bottom: 25px;
		padding: 16px;

		border: 1px solid #eee;
		background: #fff;
	}

	.hfi-shop-layout.hfi-filter-open .hfi-shop-sidebar {
		display: block;
	}

	.hfi-shop-layout.hfi-filter-open .hfi-filter-icon {
		transform: rotate(45deg);
	}

}

/* =========================================================
   HFI SHOP - MOBILE RESULT / ORDERING
   ========================================================= */

@media (max-width: 900px) {

	.hfi-shop-content .woocommerce-result-count {
		float: none;
		width: 100%;
		margin: 0 0 12px;
		font-size: 13px;
	}

	.hfi-shop-content .woocommerce-ordering {
		float: none;
		width: 100%;
		margin: 0 0 24px;
	}

	.hfi-shop-content .woocommerce-ordering select {
		width: 100%;
		min-width: 0;
		height: 44px;
	}

}

/* =========================================================
   HFI - PRODUCT CARDS
   ========================================================= */

/* Griglia prodotti */
.hfi-shop-content ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 38px 26px;
	margin: 0 !important;
	padding: 0 !important;
}

/* Singola card */
.hfi-shop-content ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 0 4px !important;

	display: flex;
	flex-direction: column;

	min-width: 0;
}

/* Link principale prodotto */
.hfi-shop-content ul.products li.product
a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1;

	color: inherit;
	text-decoration: none;
}


/* =========================================================
   IMMAGINE
   ========================================================= */

.hfi-shop-content ul.products li.product img {
	display: block;

	width: 100% !important;
	height: auto !important;

	aspect-ratio: 1 / 1;
	object-fit: contain;

	margin: 0 0 16px !important;

	background: #fff;
}


/* =========================================================
   TITOLO
   ========================================================= */

.hfi-shop-content ul.products li.product
.woocommerce-loop-product__title {

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

	font-size: 15px !important;
	line-height: 1.35 !important;
	font-weight: 600 !important;

	color: #272727 !important;

	min-height: 41px;

	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.hfi-shop-content ul.products li.product
a:hover .woocommerce-loop-product__title {
	color: #6f2a20 !important;
}


/* =========================================================
   PREZZO
   ========================================================= */

.hfi-shop-content ul.products li.product .price {
	display: block;

	margin: 0 0 15px !important;

	font-size: 14px !important;
	line-height: 1.4;

	color: #726000 !important;

	min-height: 20px;
}

.hfi-shop-content ul.products li.product .price del {
	opacity: .55;
	margin-right: 5px;
}

.hfi-shop-content ul.products li.product .price ins {
	text-decoration: none;
	font-weight: 700;
}


/* =========================================================
   PULSANTE
   ========================================================= */

.hfi-shop-content ul.products li.product
.button {

	width: 100%;

	margin: auto 0 0 !important;
	padding: 11px 14px !important;

	border: 1px solid #3b1911 !important;
	border-radius: 3px !important;

	background: #3b1911 !important;
	color: #fff !important;

	font-size: 13px !important;
	line-height: 1.2 !important;
	font-weight: 600 !important;
	text-align: center;

	box-shadow: none !important;

	transition:
		background .15s ease,
		color .15s ease;
}

.hfi-shop-content ul.products li.product
.button:hover {

	background: #fff !important;
	color: #3b1911 !important;
}


/* =========================================================
   BADGE OFFERTA
   ========================================================= */

.hfi-shop-content ul.products li.product .onsale {
	position: absolute;

	top: 8px !important;
	left: 8px !important;
	right: auto !important;

	min-width: 0 !important;
	min-height: 0 !important;

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

	border-radius: 3px !important;

	background: #3b1911 !important;
	color: #fff !important;

	font-size: 11px !important;
	line-height: 1.2 !important;
	font-weight: 600 !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1100px) {

	.hfi-shop-content ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 32px 22px;
	}

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

	.hfi-shop-content ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 30px 14px;
	}

	.hfi-shop-content ul.products li.product img {
		margin-bottom: 11px !important;
	}

	.hfi-shop-content ul.products li.product
	.woocommerce-loop-product__title {

		font-size: 13px !important;
		line-height: 1.3 !important;

		min-height: 34px;
	}

	.hfi-shop-content ul.products li.product .price {
		font-size: 13px !important;
		margin-bottom: 10px !important;
	}

	.hfi-shop-content ul.products li.product .button {

		min-height: 42px;

		padding: 9px 7px !important;

		font-size: 12px !important;

		display: flex !important;
		align-items: center;
		justify-content: center;
	}

}

/* Rimuove i clearfix WooCommerce dalla griglia prodotti */
.hfi-shop-content ul.products::before,
.hfi-shop-content ul.products::after {
	content: none !important;
	display: none !important;
}

/* =========================================================
   HFI - BADGE ESAURITO
   ========================================================= */

.hfi-shop-content ul.products li.product {
	position: relative;
}

.hfi-out-of-stock {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 5;

	padding: 6px 10px;

	background: #a00a0a;
	color: #fff;

	border-radius: 3px;

	font-size: 11px;
	font-weight: 700;
	line-height: 1;

	text-transform: uppercase;
	letter-spacing: .3px;
}

/* Mobile */
@media (max-width: 767px) {

	.hfi-out-of-stock {
		top: 6px;
		left: 6px;

		padding: 5px 7px;

		font-size: 10px;
	}

}

/* =========================================================
   HFI - SINGLE PRODUCT
   Versione 2
   ========================================================= */


/* =========================================================
   CONTENITORE PAGINA - 1440px
   ========================================================= */

.single-product .site-main {
	width: 100%;
	max-width: 1440px !important;

	margin-left: auto !important;
	margin-right: auto !important;

	padding-left: 24px;
	padding-right: 24px;
	padding-bottom: 60px;

	box-sizing: border-box;
}


/* =========================================================
   BREADCRUMB
   ========================================================= */

.single-product .woocommerce-breadcrumb {
	margin: 0 0 28px !important;

	font-size: 13px;
	line-height: 1.5;

	color: #777;
}

.single-product .woocommerce-breadcrumb a {
	color: #777;
	text-decoration: none;
}


/* =========================================================
   STRUTTURA PRINCIPALE
   Immagine più stretta / contenuto più largo
   ========================================================= */

.single-product div.product {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, .72fr)
		minmax(560px, 1.18fr);

	column-gap: 56px;
	row-gap: 55px;

	align-items: start;
}


/* Gallery */

.single-product div.product
.woocommerce-product-gallery {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}


/* Summary */

.single-product div.product
.summary.entry-summary {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}


/* Elementi sotto il prodotto a tutta larghezza */

.single-product div.product
.woocommerce-tabs,

.single-product div.product
.related.products,

.single-product div.product
.upsells.products {
	grid-column: 1 / -1;
}


/* =========================================================
   IMMAGINE PRINCIPALE
   ========================================================= */

.single-product
.woocommerce-product-gallery__image img {
	display: block;

	width: 100% !important;
	height: auto !important;

	max-height: 500px;

	object-fit: contain;

	margin: 0 auto;
}


/* =========================================================
   BADGE IN OFFERTA
   ========================================================= */

.single-product div.product span.onsale {
	top: 12px !important;
	left: 12px !important;
	right: auto !important;

	min-width: 0 !important;
	min-height: 0 !important;

	padding: 7px 11px !important;
	margin: 0 !important;

	border-radius: 3px !important;

	background: #3f7d3a !important;
	color: #fff !important;

	font-size: 11px !important;
	line-height: 1 !important;
	font-weight: 700 !important;

	text-transform: uppercase;
	letter-spacing: .4px;

	z-index: 10;
}


/* =========================================================
   TITOLO PRODOTTO
   ========================================================= */

.single-product
.summary
.product_title {
	margin: 0 0 16px !important;

	font-size: 30px !important;
	line-height: 1.15 !important;
	font-weight: 600 !important;

	letter-spacing: -.35px;

	color: #282828;
}


/* =========================================================
   PREZZO
   ========================================================= */

.single-product
.summary
.price {
	margin: 0 0 22px !important;

	font-size: 26px !important;
	line-height: 1.2 !important;
	font-weight: 600 !important;

	color: #3f7d3a !important;
}

.single-product
.summary
.price .woocommerce-Price-amount {
	color: #3f7d3a !important;
}


/* Prezzo precedente */

.single-product
.summary
.price del {
	margin-right: 7px;

	font-size: 16px;
	font-weight: 400;

	color: #888 !important;
	opacity: .7;
}


/* Prezzo in offerta */

.single-product
.summary
.price ins {
	text-decoration: none;

	font-weight: 700;
	color: #3f7d3a !important;
}


/* =========================================================
   DESCRIZIONE BREVE
   ========================================================= */

.single-product
.woocommerce-product-details__short-description {
	width: 100%;
	max-width: 100%;

	margin: 0 0 20px;

	font-size: 15px;
	line-height: 1.7;

	color: #333;
}

.single-product
.woocommerce-product-details__short-description p {
	margin-top: 0;
	margin-bottom: 14px;
}


/* =========================================================
   MARK - CARATTERISTICHE IN EVIDENZA
   ========================================================= */

.single-product mark {
	display: inline;

	padding: 2px 6px;

	background:
		linear-gradient(
			to bottom,
			transparent 18%,
			#dfeeda 18%,
			#dfeeda 92%,
			transparent 92%
		);

	color: #2f6b2f;

	font-weight: 600;

	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}


/* =========================================================
   DISPONIBILITA'
   ========================================================= */

.single-product
.summary
.stock {
	margin: 0 0 16px !important;

	font-size: 14px !important;
	line-height: 1.4;
	font-weight: 600;

	color: #3f7d3a !important;
}

.single-product
.summary
.stock.in-stock {
	color: #3f7d3a !important;
}


/* Esaurito */

.single-product
.summary
.stock.out-of-stock {
	color: #a00a0a !important;
}


/* =========================================================
   QUANTITA' + AGGIUNGI AL CARRELLO
   ========================================================= */

.single-product
.summary
form.cart {
	display: flex;
	align-items: stretch;

	gap: 8px;

	margin: 0 0 24px !important;
}


/* Quantità */

.single-product
.summary
.quantity {
	margin: 0 !important;
}

.single-product
.summary
.quantity .qty {
	width: 64px;
	height: 46px;

	padding: 0 8px;

	border: 1px solid #bbb;
	border-radius: 3px;

	background: #fff;

	font-size: 15px;
	text-align: center;
}


/* Pulsante */

.single-product
.summary
.single_add_to_cart_button {
	min-height: 46px;

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

	border: 1px solid #3b1911 !important;
	border-radius: 3px !important;

	background: #3b1911 !important;
	color: #fff !important;

	font-size: 14px !important;
	font-weight: 600 !important;

	box-shadow: none !important;

	transition:
		background .15s ease,
		color .15s ease;
}

.single-product
.summary
.single_add_to_cart_button:hover {
	background: #fff !important;
	color: #3b1911 !important;
}


/* =========================================================
   META PRODOTTO
   ========================================================= */

.single-product
.product_meta {
	padding-top: 18px;

	border-top: 1px solid #eee;

	font-size: 13px;
	line-height: 1.8;

	color: #555;
}

.single-product
.product_meta a {
	color: #6f2a20;
	text-decoration: none;
}


/* =========================================================
   TAB DESCRIZIONE / RECENSIONI
   ========================================================= */

.single-product
.woocommerce-tabs {
	margin-top: 10px;
}

.single-product
.woocommerce-tabs ul.tabs {
	padding: 0 !important;
	margin: 0 0 28px !important;

	border-bottom: 1px solid #ddd;
}

.single-product
.woocommerce-tabs ul.tabs::before {
	display: none !important;
}

.single-product
.woocommerce-tabs ul.tabs li {
	margin: 0 4px 0 0 !important;
	padding: 0 !important;

	border: 0 !important;
	border-radius: 0 !important;

	background: transparent !important;
}

.single-product
.woocommerce-tabs ul.tabs li::before,

.single-product
.woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.single-product
.woocommerce-tabs ul.tabs li a {
	padding: 12px 16px !important;

	font-size: 14px;
	font-weight: 600 !important;

	color: #555 !important;
}

.single-product
.woocommerce-tabs ul.tabs li.active a {
	color: #3b1911 !important;

	border-bottom: 2px solid #3b1911;
}


/* =========================================================
   CONTENUTO TAB
   ========================================================= */

.single-product
.woocommerce-Tabs-panel {
	font-size: 15px;
	line-height: 1.7;
}

.single-product
.woocommerce-Tabs-panel h2 {
	margin-top: 0;

	font-size: 27px;
	line-height: 1.25;
}


/* =========================================================
   TABLET LANDSCAPE
   861px - 1024px
   ========================================================= */

@media (max-width: 1024px) {

	.single-product .site-main {
		padding-left: 20px;
		padding-right: 20px;
	}

	.single-product div.product {
		grid-template-columns:
			minmax(0, .82fr)
			minmax(440px, 1fr);

		column-gap: 36px;
		row-gap: 42px;
	}

	.single-product
	.woocommerce-product-gallery__image img {
		max-height: 460px;
	}

	.single-product
	.summary
	.product_title {
		font-size: 28px !important;
		line-height: 1.16 !important;
	}

	.single-product
	.summary
	.price {
		font-size: 23px !important;
	}

	.single-product
	.woocommerce-product-details__short-description {
		font-size: 14px;
		line-height: 1.65;
	}

}


/* =========================================================
   TABLET VERTICALE
   Da 860px: layout a colonna singola
   ========================================================= */

@media (max-width: 860px) {

	.single-product div.product {
		grid-template-columns: 1fr;

		column-gap: 0;
		row-gap: 30px;
	}

	.single-product div.product
	.woocommerce-product-gallery,

	.single-product div.product
	.summary.entry-summary {
		width: 100% !important;
	}

	.single-product
	.woocommerce-product-gallery__image img {
		max-height: 480px;
	}

	.single-product
	.summary
	.product_title {
		font-size: 28px !important;
	}

	.single-product
	.woocommerce-tabs,

	.single-product
	.related.products,

	.single-product
	.upsells.products {
		grid-column: 1;
	}

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

	.single-product .site-main {
		width: 100%;

		padding-left: 16px;
		padding-right: 16px;
		padding-bottom: 40px;
	}

	.single-product
	.woocommerce-breadcrumb {
		margin-bottom: 18px !important;

		font-size: 12px;
		line-height: 1.45;
	}

	.single-product div.product {
		grid-template-columns: 1fr;

		column-gap: 0;
		row-gap: 24px;
	}


	/* =====================================================
	   GALLERY MOBILE
	   ===================================================== */

	.single-product div.product
	.woocommerce-product-gallery {
		width: 100% !important;
		margin: 0 !important;
	}

	.single-product
	.woocommerce-product-gallery__image img {
		width: 100% !important;
		height: auto !important;

		max-height: 390px;

		object-fit: contain;
	}


	/* =====================================================
	   SUMMARY MOBILE
	   ===================================================== */

	.single-product div.product
	.summary.entry-summary {
		width: 100% !important;
		margin: 0 !important;
	}

	.single-product
	.summary
	.product_title {
		margin-bottom: 12px !important;

		font-size: 25px !important;
		line-height: 1.18 !important;

		letter-spacing: -.2px;
	}

	.single-product
	.summary
	.price {
		margin-bottom: 16px !important;

		font-size: 22px !important;
	}

	.single-product
	.summary
	.price del {
		font-size: 14px;
	}

	.single-product
	.woocommerce-product-details__short-description {
		margin-bottom: 18px;

		font-size: 14px;
		line-height: 1.6;
	}

	.single-product mark {
		padding: 2px 4px;
	}

	.single-product
	.summary
	.stock {
		margin-bottom: 12px !important;

		font-size: 13px !important;
	}


	/* =====================================================
	   QUANTITA' + CTA MOBILE
	   ===================================================== */

	.single-product
	.summary
	form.cart {
		width: 100%;

		display: grid;

		grid-template-columns: 64px minmax(0, 1fr);

		gap: 8px;

		align-items: stretch;
	}

	.single-product
	.summary
	.quantity {
		width: 64px;
	}

	.single-product
	.summary
	.quantity .qty {
		width: 64px;
		height: 46px;
	}

	.single-product
	.summary
	.single_add_to_cart_button {
		width: 100%;
		min-height: 46px;

		padding-left: 10px !important;
		padding-right: 10px !important;
	}


	/* =====================================================
	   META MOBILE
	   ===================================================== */

	.single-product
	.product_meta {
		font-size: 12px;
		line-height: 1.65;
	}


	/* =====================================================
	   TAB MOBILE
	   ===================================================== */

	.single-product
	.woocommerce-tabs {
		margin-top: 0;
	}

	.single-product
	.woocommerce-tabs ul.tabs {
		display: flex;

		width: 100%;

		overflow-x: auto;
		white-space: nowrap;

		scrollbar-width: thin;
	}

	.single-product
	.woocommerce-tabs ul.tabs li {
		flex: 0 0 auto;
	}

	.single-product
	.woocommerce-tabs ul.tabs li a {
		padding: 10px 12px !important;

		font-size: 13px;
	}

	.single-product
	.woocommerce-Tabs-panel {
		font-size: 14px;
		line-height: 1.65;
	}

	.single-product
	.woocommerce-Tabs-panel h2 {
		font-size: 22px;
		line-height: 1.25;
	}

}


/* =========================================================
   MOBILE PICCOLO
   ========================================================= */

@media (max-width: 420px) {

	.single-product
	.summary
	.product_title {
		font-size: 23px !important;
	}

	.single-product
	.woocommerce-product-gallery__image img {
		max-height: 350px;
	}

	.single-product
	.summary
	.single_add_to_cart_button {
		font-size: 13px !important;
	}

}

/* =========================================================
   HFI - SINGLE PRODUCT MOBILE FIX
   ========================================================= */

@media (max-width: 767px) {

	/* Impedisce agli elementi interni di allargare la pagina */
	.single-product div.product,
	.single-product div.product .summary.entry-summary,
	.single-product .woocommerce-product-details__short-description,
	.single-product .product_meta,
	.single-product .woocommerce-tabs,
	.single-product .woocommerce-Tabs-panel {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box;
	}

	/* Titolo: niente più taglio sul lato destro */
	.single-product .summary .product_title {
		width: 100%;
		max-width: 100%;

		font-size: 23px !important;
		line-height: 1.22 !important;

		overflow-wrap: anywhere;
		word-break: normal;
		hyphens: auto;
	}

	/* Testi lunghi */
	.single-product .summary p,
	.single-product .product_meta,
	.single-product .woocommerce-Tabs-panel p,
	.single-product .woocommerce-Tabs-panel li {
		max-width: 100%;
		overflow-wrap: break-word;
	}

	/* =====================================================
	   TABELLA SCONTI QUANTITA'
	   ===================================================== */

	.single-product .summary table {
		max-width: 100%;
	}

	/* Se la tabella è più larga, scorre orizzontalmente
	   senza allargare tutta la pagina */
	.single-product .summary table {
		display: block;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}

	.single-product .summary table tbody {
		min-width: 520px;
	}

	.single-product .summary table td,
	.single-product .summary table th {
		white-space: nowrap;
	}

	/* =====================================================
	   QUANTITA' + CARRELLO
	   Non usiamo GRID perché il plugin degli sconti quantità
	   inserisce altri elementi dentro il form.
	   ===================================================== */

	.single-product .summary form.cart {
		display: flex !important;
		flex-wrap: wrap;
		align-items: stretch;

		width: 100%;
		max-width: 100%;

		gap: 8px;

		margin-bottom: 24px !important;
	}

	.single-product .summary form.cart .quantity {
		flex: 0 0 64px;

		width: 64px !important;
		max-width: 64px;
	}

	.single-product .summary form.cart .quantity .qty {
		width: 64px !important;
		height: 46px;
	}

	.single-product .summary form.cart .single_add_to_cart_button {
		flex: 1 1 180px;

		width: auto !important;
		min-width: 160px;
		min-height: 46px;

		white-space: nowrap;
	}

	/* Eventuali elementi aggiuntivi inseriti nel form
	   occupano una riga completa */
	.single-product .summary form.cart > table,
	.single-product .summary form.cart > .variations,
	.single-product .summary form.cart > .woocommerce-variation,
	.single-product .summary form.cart > .woocommerce-variation-add-to-cart {
		flex-basis: 100%;
		width: 100%;
		max-width: 100%;
	}

	/* =====================================================
	   META PRODOTTO
	   ===================================================== */

	.single-product .product_meta {
		padding-top: 15px;

		font-size: 11px;
		line-height: 1.7;

		overflow-wrap: anywhere;
	}

	/* =====================================================
	   TAB
	   ===================================================== */

	.single-product .woocommerce-tabs ul.tabs {
		width: 100%;
		max-width: 100%;

		margin-bottom: 22px !important;

		overflow-x: auto;
		overflow-y: hidden;
	}

	.single-product .woocommerce-tabs ul.tabs li a {
		font-size: 12px;
		padding: 10px 9px !important;
	}

	/* =====================================================
	   CONTENUTO DESCRIZIONE
	   ===================================================== */

	.single-product .woocommerce-Tabs-panel {
		overflow: hidden;
	}

	.single-product .woocommerce-Tabs-panel h2 {
		font-size: 21px;
	}

	/* Tabelle nutrizionali */
	.single-product .woocommerce-Tabs-panel table {
		width: 100% !important;
		max-width: 100% !important;

		table-layout: fixed;
	}

	.single-product .woocommerce-Tabs-panel td,
	.single-product .woocommerce-Tabs-panel th {
		white-space: normal;
		overflow-wrap: break-word;
	}

}

/* =========================================================
   HFI - SCONTI QUANTITA' YWDPD
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

	/* Contenitore generale */
	.single-product .ywdpd-table-discounts-wrapper {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		overflow: visible !important;
	}

	/* Griglia delle fasce quantità */
	.single-product #ywdpd-quantity-boxed,
	.single-product #ywdpd-quantity-boxed.horizontal {

		display: grid !important;

		grid-template-columns: repeat(2, minmax(0, 1fr));

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		margin: 0 0 20px !important;

		gap: 1px;

		background: #ddd;

		box-sizing: border-box;
	}

	/* Singola fascia */
	.single-product #ywdpd-quantity-boxed .ywdpd-boxed-item {

		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;

		margin: 0 !important;
		padding: 12px 6px !important;

		background: #fff;

		border: 0 !important;

		box-sizing: border-box;

		text-align: center;
	}

	/* Quantità */
	.single-product #ywdpd-quantity-boxed
	.ywdpd-boxed-item > div {

		max-width: 100%;
	}

	/* Testi/prezzi */
	.single-product #ywdpd-quantity-boxed
	.woocommerce-Price-amount {

		white-space: nowrap;
	}

}