/*
Theme Name: Vitalix IT Custom
Description: Tema autonoma installabile del sito Vitalix IT di riferimento, inclusi i template del Site Editor.
Version: 1.0.15
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: vitalix-it-8882
*/

/* Keep WordPress' navigation close control out of the desktop/closed header. */
.wp-block-navigation__responsive-container:not(.is-menu-open)
	.wp-block-navigation__responsive-container-close {
	display: none !important;
	visibility: hidden !important;
}

/* Ozempic: center the product layout and keep the long-form content readable. */
body.single-product main.ozempic-product-main {
	width: 100%;
	max-width: none;
	margin-right: auto !important;
	margin-left: auto !important;
	box-sizing: border-box;
}

/* Europe templates use their original multilingual Ozempic slugs and do not
 * all carry the IT template wrapper. The route class supplied by the shared
 * plugin gives those templates the same centered layout without replacing
 * their language-specific content. */
body.vsce-ozempic-product main.wp-block-group {
	width: 100%;
	max-width: none;
	margin-right: auto !important;
	margin-left: auto !important;
	box-sizing: border-box;
}

body.vsce-ozempic-product main.wp-block-group > .wp-block-columns.alignwide,
body.vsce-ozempic-product main.wp-block-group > .wp-block-store-notices,
body.vsce-ozempic-product main.wp-block-group > .wp-block-group {
	width: min(1100px, calc(100% - 40px)) !important;
	max-width: 1100px !important;
	margin-right: auto !important;
	margin-left: auto !important;
	box-sizing: border-box;
}

@media (max-width: 782px) {
	body.vsce-ozempic-product main.wp-block-group > .wp-block-columns.alignwide,
	body.vsce-ozempic-product main.wp-block-group > .wp-block-store-notices,
	body.vsce-ozempic-product main.wp-block-group > .wp-block-group {
		width: calc(100% - 28px) !important;
		max-width: 100% !important;
		margin-inline: auto !important;
	}
}

body.single-product main.ozempic-product-main > .wp-block-columns.alignwide {
	width: min(1100px, calc(100% - 40px)) !important;
	max-width: 1100px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

body.single-product main.ozempic-product-main > .wp-block-store-notices {
	width: min(1100px, calc(100% - 40px));
	margin-right: auto !important;
	margin-left: auto !important;
}

/* Keep every long-form Ozempic section in one centered, non-query wrapper. */
body.single-product main.ozempic-product-main > .wp-block-group.ozempic-content {
	width: min(1100px, calc(100% - 40px)) !important;
	max-width: 1100px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

@media (max-width: 782px) {
	body.single-product main.ozempic-product-main > .wp-block-columns.alignwide {
		width: calc(100% - 28px) !important;
		max-width: 100% !important;
		margin-inline: auto !important;
		gap: 18px !important;
	}

	body.single-product main.ozempic-product-main > .wp-block-columns.alignwide > .wp-block-column,
	body.single-product main.ozempic-product-main .wc-block-add-to-cart-form form.cart,
	body.single-product main.ozempic-product-main .wc-block-add-to-cart-form .single_add_to_cart_button {
		min-width: 0 !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	body.single-product main.ozempic-product-main .woocommerce-product-gallery,
	body.single-product main.ozempic-product-main .woocommerce-product-gallery__wrapper,
	body.single-product main.ozempic-product-main .woocommerce-product-gallery__image,
	body.single-product main.ozempic-product-main .woocommerce-product-gallery__image img {
		max-width: 100% !important;
	}

	.ozempic-content .oz-reviews,
	.ozempic-content .oz-faq {
		padding: 32px 14px 38px;
	}

	.ozempic-content .oz-inner,
	.ozempic-content .oz-faq-inner {
		width: 100%;
		max-width: 100%;
	}

	.ozempic-content .oz-header,
	.ozempic-content .oz-faq-header {
		margin-bottom: 22px;
	}

	.ozempic-content .oz-title,
	.ozempic-content .oz-faq-title,
	.ozempic-content .ozempic-section h2 {
		font-size: 21px;
		line-height: 1.25;
		text-wrap: balance;
		overflow-wrap: anywhere;
	}

	.ozempic-content .oz-title br,
	.ozempic-content .oz-faq-title br {
		display: none;
	}

	.ozempic-content .oz-subtitle,
	.ozempic-content .oz-faq-subtitle,
	.ozempic-content .ozempic-section .oz-desc {
		font-size: 13px;
	}

	.ozempic-content .oz-card {
		padding: 14px;
	}

	.ozempic-content .oz-card-top {
		align-items: flex-start;
	}

	.ozempic-content .oz-verified {
		white-space: normal;
		text-align: center;
	}

	.ozempic-content .oz-stars-date {
		gap: 8px;
		flex-wrap: wrap;
	}

	.ozempic-content .oz-img-wrap img {
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.ozempic-content .ozempic-section {
		margin-top: 24px;
		padding: 34px 14px;
	}

	.ozempic-content .ozempic-section .oz-desc {
		margin-bottom: 22px;
	}

	.ozempic-content .ozempic-section .oz-images,
	.ozempic-content .ozempic-section .oz-stats {
		gap: 10px;
	}

	.ozempic-content .ozempic-section .oz-stat {
		padding: 15px 10px;
	}

	.ozempic-content .oz-faq-q {
		gap: 10px;
		padding: 14px;
	}

	.ozempic-content .oz-faq-q-text {
		font-size: 13.5px;
	}

	.ozempic-content .oz-faq-a,
	.ozempic-content .oz-faq-item.open .oz-faq-a {
		padding-inline: 14px;
	}

	.ozempic-content .oz-faq-note {
		padding: 13px 14px;
	}

	.ozempic-content #cia-garanzia .guarantee {
		padding: 46px 16px;
	}

	.ozempic-content #cia-garanzia .guarantee p {
		margin-bottom: 26px;
		font-size: 14px;
		line-height: 1.6;
	}

	.ozempic-content #cia-garanzia .btn-cta {
		width: 100%;
		max-width: 360px;
		padding: 14px 12px;
		box-sizing: border-box;
		font-size: 14px;
		line-height: 1.35;
		text-align: center;
	}
}

@media (max-width: 359px) {
	body.single-product main.ozempic-product-main > .wp-block-columns.alignwide {
		width: calc(100% - 20px) !important;
		gap: 14px !important;
	}

	.ozempic-content .oz-reviews,
	.ozempic-content .oz-faq {
		padding: 28px 10px 32px;
	}

	.ozempic-content .oz-title,
	.ozempic-content .oz-faq-title,
	.ozempic-content .ozempic-section h2 {
		font-size: 19px;
	}

	.ozempic-content .oz-card,
	.ozempic-content .oz-faq-note {
		padding: 12px;
	}

	.ozempic-content .oz-card-top {
		gap: 8px;
		flex-wrap: wrap;
	}

	.ozempic-content .oz-avatar {
		width: 36px;
		height: 36px;
		font-size: 13px;
	}

	.ozempic-content .oz-verified {
		padding: 3px 6px;
		font-size: 9px;
	}

	.ozempic-content .oz-text {
		font-size: 12.5px;
		line-height: 1.6;
	}

	.ozempic-content .ozempic-section {
		padding: 30px 10px;
	}

	.ozempic-content .ozempic-section .oz-stats {
		grid-template-columns: 1fr;
	}

	.ozempic-content .ozempic-section .oz-stats .oz-stat:last-child {
		grid-column: auto;
	}

	.ozempic-content .oz-faq-q {
		gap: 8px;
		padding: 12px;
	}

	.ozempic-content .oz-faq-q-text {
		font-size: 13px;
	}

	.ozempic-content .oz-faq-a,
	.ozempic-content .oz-faq-item.open .oz-faq-a {
		padding-inline: 12px;
	}
}

@media (min-width: 769px) {
	.wp-block-navigation__responsive-container-close {
		display: none !important;
		visibility: hidden !important;
	}
}

@media (max-width: 768px) {
	.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-close {
		display: flex !important;
		visibility: visible !important;
	}
}

/* === CATALOG PAGINATION === */
body.post-type-archive-product main.wp-block-group,
body.woocommerce-shop main.wp-block-group {
	box-sizing: border-box;
	padding-bottom: clamp(52px, 6vw, 84px) !important;
}

body.post-type-archive-product .wp-block-query-pagination,
body.woocommerce-shop .wp-block-query-pagination {
	display: flex !important;
	width: 100%;
	margin: 38px auto 12px !important;
	align-items: center;
	justify-content: center !important;
	flex-wrap: wrap;
	gap: 8px !important;
}

body.post-type-archive-product .wp-block-query-pagination-numbers,
body.woocommerce-shop .wp-block-query-pagination-numbers {
	display: flex;
	margin: 0 !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

body.post-type-archive-product .wp-block-query-pagination a,
body.post-type-archive-product .wp-block-query-pagination .page-numbers,
body.woocommerce-shop .wp-block-query-pagination a,
body.woocommerce-shop .wp-block-query-pagination .page-numbers {
	display: inline-flex;
	box-sizing: border-box;
	min-width: 42px;
	height: 42px;
	margin: 0 !important;
	padding: 0 13px;
	align-items: center;
	justify-content: center;
	border: 1px solid #d8eadf;
	border-radius: 11px;
	background: #fff;
	box-shadow: 0 3px 10px rgba(15, 92, 61, 0.06);
	color: #1a3b2a !important;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none !important;
	transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

body.post-type-archive-product .wp-block-query-pagination a:hover,
body.woocommerce-shop .wp-block-query-pagination a:hover {
	border-color: #15a065;
	background: #f0fbf5;
	box-shadow: 0 5px 14px rgba(21, 160, 101, 0.14);
	color: #11884f !important;
	transform: translateY(-1px);
}

body.post-type-archive-product .wp-block-query-pagination .page-numbers.current,
body.woocommerce-shop .wp-block-query-pagination .page-numbers.current {
	border-color: #15a065;
	background: #15a065;
	box-shadow: 0 6px 16px rgba(21, 160, 101, 0.24);
	color: #fff !important;
}

body.post-type-archive-product .wp-block-query-pagination a:focus,
body.woocommerce-shop .wp-block-query-pagination a:focus {
	outline: none;
	box-shadow: none;
}

body.vs-keyboard-navigation.post-type-archive-product .wp-block-query-pagination a:focus-visible,
body.vs-keyboard-navigation.woocommerce-shop .wp-block-query-pagination a:focus-visible {
	outline: 3px solid rgba(21, 160, 101, 0.35);
	outline-offset: 2px;
}

@media (max-width: 480px) {
	body.post-type-archive-product main.wp-block-group,
	body.woocommerce-shop main.wp-block-group {
		padding-bottom: 42px !important;
	}

	body.post-type-archive-product .wp-block-query-pagination,
	body.woocommerce-shop .wp-block-query-pagination,
	body.post-type-archive-product .wp-block-query-pagination-numbers,
	body.woocommerce-shop .wp-block-query-pagination-numbers {
		gap: 6px !important;
	}

	body.post-type-archive-product .wp-block-query-pagination a,
	body.post-type-archive-product .wp-block-query-pagination .page-numbers,
	body.woocommerce-shop .wp-block-query-pagination a,
	body.woocommerce-shop .wp-block-query-pagination .page-numbers {
		min-width: 38px;
		height: 38px;
		padding-inline: 9px;
	}

	body.post-type-archive-product .wp-block-query-pagination-previous,
	body.post-type-archive-product .wp-block-query-pagination-next,
	body.woocommerce-shop .wp-block-query-pagination-previous,
	body.woocommerce-shop .wp-block-query-pagination-next {
		width: 38px;
		padding: 0 !important;
		font-size: 0 !important;
	}

	body.post-type-archive-product .wp-block-query-pagination-previous::before,
	body.woocommerce-shop .wp-block-query-pagination-previous::before {
		content: "\2190";
		font-size: 18px;
	}

	body.post-type-archive-product .wp-block-query-pagination-next::after,
	body.woocommerce-shop .wp-block-query-pagination-next::after {
		content: "\2192";
		font-size: 18px;
	}
}
