/* Tinsy product UI (2026-10-29). Brand: navy #161E46, coral #FD4132. */

/* Options: label above, swatches below */
.variations_form table.variations,
.variations_form table.variations tbody,
.variations_form table.variations tr,
.variations_form table.variations th.label,
.variations_form table.variations td.value {
	display: block;
	width: 100%;
	padding-left: 0;
	padding-right: 0;
}
.variations_form table.variations tr + tr { margin-top: 14px; }
.variations_form table.variations th.label { padding-bottom: 6px; }
.variations_form table.variations th.label label { margin: 0; }
.tinsy-swatch-value {
	margin-left: 8px;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: #555;
}
.tinsy-swatch-value:not(:empty)::before { content: ": "; margin-left: -8px; }

/* WooCommerce still needs the select in the form */
.tinsy-select-hidden select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0;
	pointer-events: none;
}
.tinsy-select-hidden .select2-container { display: none !important; }

.tinsy-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.tinsy-swatch {
	position: relative;
	margin: 0;
	border: 1.5px solid #e1e2ea;
	border-radius: 10px;
	background: #fff;
	color: #161E46;
	font: inherit;
	line-height: 1.25;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s, opacity .15s;
}
.tinsy-swatch:hover { border-color: #161E46; }
.tinsy-swatch:focus-visible { outline: 2px solid #161E46; outline-offset: 2px; }
.tinsy-swatch--image { padding: 3px; }
.tinsy-swatch--image img {
	display: block;
	width: 58px;
	height: 58px;
	object-fit: cover;
	border-radius: 7px;
}
.tinsy-swatch--label {
	min-height: 40px;
	padding: 8px 14px;
	font-size: 13px;
}
.tinsy-swatch.is-selected {
	border-color: #FD4132;
	box-shadow: 0 0 0 1px #FD4132;
}
.tinsy-swatch--label.is-selected { background: #fff4f3; }
.tinsy-swatch.is-disabled { opacity: .4; }
.tinsy-swatch--label.is-disabled span { text-decoration: line-through; }
.variations_form .reset_variations { display: inline-block; margin-top: 8px; font-size: 13px; }

.tinsy-price-from {
	font-size: .8em;
	font-weight: 400;
	color: #666;
}

/* No reviews yet: no row of empty stars on product cards */
.rating .star-rating:empty,
.rating:has(> .star-rating:empty) { display: none !important; }

/* Internal SKU codes aren't useful to shoppers */
.product_meta .sku_wrapper { display: none !important; }

/* Mobile sticky add-to-cart */
.tinsy-sticky-atc {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 998;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 16px;
	background: #fff;
	box-shadow: 0 -4px 16px rgba(22, 30, 70, .12);
	transform: translateY(150%);
	visibility: hidden;
	transition: transform .25s ease, visibility .25s;
}
.tinsy-sticky-atc.is-visible { transform: none; visibility: visible; }
.tinsy-sticky-atc__info { flex: 1; min-width: 0; }
.tinsy-sticky-atc__name {
	display: block;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: 13px;
	color: #161E46;
}
.tinsy-sticky-atc__price { font-weight: 700; color: #FD4132; }
.tinsy-sticky-atc__price del { display: none; }
.tinsy-sticky-atc__btn {
	flex: none;
	padding: 11px 22px;
	border: 0;
	border-radius: 999px;
	background: #FD4132;
	color: #fff;
	font-weight: 600;
	font-size: 14px;
}
@media (min-width: 992px) { .tinsy-sticky-atc { display: none; } }
@media (prefers-reduced-motion: reduce) { .tinsy-sticky-atc { transition: none; } }

/* Mobile filter toggle on shop pages: the theme hides its label in a small edge tab; here it is a
   labelled pill at the top of the product list (a floating one covered the cards' buttons) */
.mobile-sidebar-btn.hidden-lg {
	position: static !important;
	margin: 0 0 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: auto !important;
	height: auto !important;
	padding: 10px 18px !important;
	border: 0;
	border-radius: 999px !important;
	background: #161E46 !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600;
	line-height: 1;
	box-shadow: 0 4px 14px rgba(22, 30, 70, .25);
}
.mobile-sidebar-btn.hidden-lg i { font-size: 14px !important; color: #fff !important; margin: 0 !important; }
/* Keep the theme's back-to-top button clear of the sticky bar */
body.tinsy-sticky-atc-on #back-to-top { transform: translateY(-72px); }

/* ---- Step 4: category menu (2026-10-29) ---- */
@media (min-width: 992px) {
	/* Logo and icons need little room; give the category menu the middle */
	.elementor-33 .elementor-element.elementor-element-1b5f305,
	.elementor-33 .elementor-element.elementor-element-70a5d26 { --width: 14% !important; }
	.elementor-33 .elementor-element.elementor-element-5832c4c { --width: 72% !important; }
	#goal-header .megamenu > li { padding-left: 13px; padding-right: 13px; }
	#goal-header .megamenu > li > a .text-label { margin-left: 4px; }
}
@media (min-width: 992px) and (max-width: 1299px) {
	#goal-header .megamenu > li { padding-left: 8px; padding-right: 8px; }
	#goal-header .megamenu > li > a { font-size: 14px; letter-spacing: .3px; }
}
/* Subcategory dropdowns: a rounded card with breathing room, image + name rows, a "View all" footer */
#goal-header .megamenu > li > .dropdown-menu {
	min-width: 290px;
	padding: 12px !important;
	border: 0 !important;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(22, 30, 70, .14);
}
#goal-header .megamenu .dropdown-menu > li { margin: 0 !important; padding: 0 !important; border: 0 !important; }
#goal-header .megamenu .dropdown-menu > li > a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 12px 8px 8px !important;
	border-radius: 12px;
	color: #161E46 !important;
	font-size: 14.5px;
	line-height: 1.3;
	white-space: nowrap;
	transition: background-color .15s, color .15s;
}
#goal-header .megamenu .dropdown-menu > li > a:hover,
#goal-header .megamenu .dropdown-menu > li > a:focus-visible { background: #FFF4F3; color: #FD4132 !important; }
#goal-header .megamenu .dropdown-menu > li > a img {
	flex: none;
	width: 44px;
	height: 44px;
	margin: 0 !important;
	border-radius: 10px;
	object-fit: cover;
	background: #f4f4f7;
}
#goal-header .megamenu .dropdown-menu > li.tinsy-menu-all,
#goal-header .megamenu .dropdown-menu > li:last-child:has(> a:not(:has(img))) {
	margin-top: 6px !important;
	padding-top: 8px !important;
	border-top: 1px solid #eeeef3 !important;
}
#goal-header .megamenu .dropdown-menu > li.tinsy-menu-all > a,
#goal-header .megamenu .dropdown-menu > li:last-child > a:not(:has(img)) {
	padding-left: 12px !important;
	color: #FD4132 !important;
	font-weight: 600;
}
#goal-header .megamenu .dropdown-menu > li.tinsy-menu-all > a::after,
#goal-header .megamenu .dropdown-menu > li:last-child > a:not(:has(img))::after { content: "\2192"; margin-left: 2px; }
/* Shop All panel */
.tinsy-mega-shop { padding: 22px 10px 26px; }
.tinsy-mega-shop .elementor-widget-pippo_woo_categories .product-nb { display: none; }
.tinsy-mega-shop .elementor-widget-button { margin-top: 6px; }

/* ---- Step 5: homepage, shop pages, look & feel (2026-10-29) ---- */

/* Shop/category/product title band: a slim brand-colour strip, no demo cartoon or product photo behind it */
.goal-breadscrumb.woo-breadcrumb {
	background-image: none !important;
	background-color: #FCEEE8 !important;
	padding: 30px 0 !important;
	min-height: 0 !important;
}
.goal-breadscrumb.woo-breadcrumb .wrapper-breads { padding-top: 0 !important; padding-bottom: 0 !important; }
.goal-breadscrumb.woo-breadcrumb .bread-title { font-size: 34px; margin-bottom: 6px; }
.goal-breadscrumb.woo-breadcrumb .breadcrumb { margin: 0; }
.single-product .goal-breadscrumb.woo-breadcrumb { padding: 14px 0 !important; }
@media (max-width: 767px) {
	.goal-breadscrumb.woo-breadcrumb { padding: 20px 0 !important; }
	.goal-breadscrumb.woo-breadcrumb .bread-title { font-size: 26px; }
	/* Long product trails: one line, scrolls sideways */
	.single-product .goal-breadscrumb .breadcrumb { white-space: nowrap; overflow-x: auto; }
}

/* Subcategory chips above product grids */
.tinsy-subcats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 22px;
}
.tinsy-subcat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 14px 5px 5px;
	border: 1.5px solid #e6e7ee;
	border-radius: 999px;
	background: #fff;
	color: #161E46;
	font-size: 14px;
	line-height: 1.2;
}
.tinsy-subcat:hover, .tinsy-subcat:focus { border-color: #161E46; color: #161E46; }
.tinsy-subcat img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.tinsy-subcat.is-current { border-color: #FD4132; background: #fff4f3; }
@media (max-width: 767px) {
	.tinsy-subcats { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; margin-left: -15px; margin-right: -15px; padding-left: 15px; padding-right: 15px; }
	.tinsy-subcat { flex: none; }
}

/* Product cards */
.product-block .name {
	text-transform: none !important;
	white-space: normal !important;
	overflow: visible !important;
	font-size: 15px;
	line-height: 1.35;
	letter-spacing: 0;
}
.product-block .name a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	white-space: normal !important;
	min-height: 2.7em;
}
.product-block figure.image { position: relative; }
.tinsy-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
	padding: 4px 10px;
	border-radius: 999px;
	background: #161E46;
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .3px;
	line-height: 1.3;
}
.tinsy-card-options { margin-top: 2px; font-size: 12.5px; color: #6E7191; }

/* Product page: readable title and description */
.single-product .product_title {
	text-transform: none !important;
	font-size: 32px;
	line-height: 1.25;
	letter-spacing: 0;
}
@media (max-width: 767px) { .single-product .product_title { font-size: 24px; } }
.woocommerce-product-details__short-description,
.woocommerce-Tabs-panel--description,
#tab-description {
	color: #4b4f63;
	font-size: 15px;
	line-height: 1.75;
}
.woocommerce-product-details__short-description li { margin-bottom: 6px; }

/* Homepage */
.tinsy-hero-img img { border-radius: 24px; }
.elementor-407 .elementor-element-7544fdd .elementor-widget-button { display: inline-block; }

.tinsy-trust .elementor-icon-box-wrapper {
	display: flex;
	align-items: center;
	gap: 14px;
	text-align: left !important;
}
.tinsy-trust .elementor-icon-box-icon { margin: 0 !important; flex: none; }
.tinsy-trust .elementor-icon { font-size: 20px !important; padding: 13px !important; }
.tinsy-trust .elementor-icon svg { width: 20px; height: 20px; }
.tinsy-trust .elementor-icon-box-title { margin: 0 0 2px !important; font-size: 16px !important; }
.tinsy-trust .elementor-icon-box-description { margin: 0; font-size: 13px; line-height: 1.4; }
@media (max-width: 767px) {
	.tinsy-trust > .elementor-container { flex-wrap: wrap; }
	.tinsy-trust .elementor-column { width: 50% !important; }
	.tinsy-trust .elementor-icon-box-wrapper { flex-direction: column; gap: 6px; text-align: center !important; }
	.tinsy-trust .elementor-icon-box-description { display: none; }
}

.elementor-407 .elementor-element-2a67654 { padding-bottom: 10px !important; margin-bottom: 0 !important; }
.tinsy-home-cats .product-nb { display: none; }
.tinsy-home-cats img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; }

.tinsy-promo { border-radius: 18px; overflow: hidden; }
.tinsy-promo .elementor-inner-section,
.tinsy-promo .elementor-inner-section > .elementor-container { height: 100%; }
.tinsy-promo-img, .tinsy-promo-img .elementor-widget-container { height: 100%; }
.tinsy-promo-img img { display: block; width: 100%; height: 100%; min-height: 240px; object-fit: cover; }
.elementor-407 .elementor-element-23c6bef > .elementor-container { gap: 20px; }
@media (max-width: 767px) { .tinsy-promo + .tinsy-promo { margin-top: 16px; } }

@media (max-width: 767px) {
	.tinsy-home-tabs .nav-tabs, .tinsy-home-tabs ul.nav {
		display: flex;
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		max-width: 100%;
	}
	.tinsy-home-tabs .nav-tabs > li, .tinsy-home-tabs ul.nav > li { flex: none; float: none; }
}
.elementor-407 .elementor-element-be9d00b { padding-top: 40px !important; }

/* Hero buttons: one aligned row, same height (the outline button's 2px border is matched) */
.elementor-407 .elementor-element-fd85197 > .elementor-widget-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.elementor-407 .elementor-element-fd85197 > .elementor-widget-wrap > .elementor-element:not(.elementor-widget-button) { flex: 0 0 100%; width: 100%; }
.elementor-407 .elementor-element-fd85197 .elementor-widget-button { margin: 0 !important; width: auto !important; }
.elementor-407 .elementor-element-fd85197 .elementor-button { min-width: 200px; justify-content: center; text-align: center; }
.elementor-407 .elementor-element-e286420 .elementor-button { border: 2px solid #FD4132; }
@media (max-width: 767px) {
	.elementor-407 .elementor-element-fd85197 .elementor-widget-button { flex: 1 1 100%; }
	.elementor-407 .elementor-element-fd85197 .elementor-button { width: 100%; }
}

/* One price on the product page: the summary price follows the chosen variant (product-ui.js), so
   WooCommerce's second price under the swatches goes */
.single-product .woocommerce-variation-price,
html body .goal-quickview .mfp-inline-holder .mfp-content .information-wrapper .woocommerce-variation-price { display: none !important; }
/* Quick view title in normal case, like the product page */
.mfp-wrap.goal-quickview .product_title { text-transform: none !important; letter-spacing: 0; }
