/*
	Theme Name: Rehub child theme
	Theme URI: https://wpsoul.com
	Description: A Hybrid magazine/shop/review/news Wordpress Theme
	Author: Sizam
	Author URI: https://wpsoul.com
	Version: 9.4
	Template: rehub-theme
*/

/* =Theme customization starts here
-------------------------------------------------------------- */
/* Import Google Font - Roboto */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');

:root {
	--yoo-primary: #129cfe;
	--yoo-primary-hover: #0f79c5;
	--yoo-primary-active: #063556;
}

html,
body {
	font-family: 'Roboto', sans-serif !important;
}

/* Scrollbars */
/* Firefox */
* {
	scrollbar-width: thin;
	scrollbar-color: var(--yoo-primary) rgb(255 255 255 / 0%);
}

/* Scrollbars */
/* Chrome, Edge, and Safari */
*::-webkit-scrollbar {
	width: 4px;
	height: 4px;
}

*::-webkit-scrollbar-track {
	background: var(--yoo-primary-active);
}

*::-webkit-scrollbar-thumb {
	background-color: var(--yoo-primary);
	border-radius: 25px;
	border: 1px solid var(--yoo-primary);
}

/* Sticky Header */
#main_header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 10000;
	background: #fff;
	border-bottom: 1px solid #e5e5e5;
}

.bkg-transparent {
	background: none !important;
	background-color: transparent !important;
}

.rh-outer-wrap {
	padding-top: 117px;
}

/* Label LIVE */
.menu-live-label {
	display: inline-block;
	margin-left: 10px;
	vertical-align: middle;
}

.menu-live-label .live-label {
	background-color: #e60000;
	color: #fff;
	font-weight: bold;
	padding: 5px 10px;
	border-radius: 4px;
	font-size: 13px;
	text-transform: uppercase;
}

/* Navigation */

/* Di default NESSUNA transizione: evita il flash in page‑load */
.header-logo-wrapper .logo_image {
	transition: none;
}

/* La transizione si abilita solo quando il logo ha la classe helper */
.header-logo-wrapper .logo_image.logo-fade-ready {
	transition: opacity 0.5s ease;
}

/* Logo invisibile mentre il menu mobile è aperto */
body.mobile-menu-open .header-logo-wrapper .logo_image {
	opacity: 0;
	pointer-events: none;
}


/* Quando il menu mobile è aperto il logo diventa trasparente */
body.mobile-menu-open .header-logo-wrapper .logo_image {
	opacity: 0;
	pointer-events: none;
}

@media (max-width: 1023px) {
	.header_wrap .rh-container {
		padding-left: 9px;
		padding-right: 9px;
	}
}

@media (max-width: 1024px) {
	.rh-outer-wrap {
		padding-top: 88px;
	}

	.header-logo-wrapper {
		padding-left: 9px;
		padding-right: 9px;
	}

	.logo_image {
		width: 140px;
		display: flex;
		justify-content: center;
	}

	.logo_image img {
		width: 140px;
		height: auto;
	}

	.hamburger-menu {
		display: inline-block;
		background: none;
		border: none;
		padding: 0;
		cursor: pointer;
		height: 48px;
	}

	#main-nav-desktop {
		display: none;
	}

	.mobile-nav-overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		z-index: 9998;
		display: none;
	}

	.mobile-nav-overlay.menu-transitioning {
		display: block;
	}

	.mobile-nav-backdrop {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0);
		z-index: 9998;
		transition: background 0.5s ease;
	}

	.mobile-nav-overlay.menu-open .mobile-nav-backdrop {
		background: rgba(0, 0, 0, 0.5);
	}

	.sidebar-inner {
		width: 280px;
		background: #fff;
		height: 100%;
		max-height: 100vh;
		overflow-y: auto;
		box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
		position: absolute;
		top: 0;
		left: 0;
		z-index: 9999;
		transform: translateX(-100%);
		transition: transform 0.5s ease;
		display: flex;
		flex-direction: column;
	}

	.mobile-nav-overlay.menu-open .sidebar-inner {
		transform: translateX(0);
	}

	.mobile-nav-header {
		background: #000;
		height: 88px;
		min-height: 88px;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0 15px;
		flex-shrink: 0;
	}

	.mobile-nav-header .logo_image {
		display: flex;
		justify-content: center;
		width: 140px;
	}

	.mobile-nav-header .logo_image img {
		width: 140px;
		height: auto;
	}

	.mobile_menu ul {
		list-style: none;
		padding: 0;
		margin: 0;
		width: 100%;
	}

	.mobile_menu ul li {
		border-bottom: 1px solid #ccc;
		font-size: 22px;
	}

	.mobile_menu ul li a {
		display: block;
		padding: 16px;
		text-transform: uppercase;
		font-weight: bold;
		color: #000;
		text-decoration: none;
		position: relative;
	}

	.mobile_menu ul li.current-menu-item>a,
	.mobile_menu ul li.current_page_item>a,
	.mobile_menu ul li a.active {
		color: #129cfe;
	}

	.mobile_menu ul li.current-menu-item>a::after,
	.mobile_menu ul li.current_page_item>a::after,
	.mobile_menu ul li a.active::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 16px;
		width: calc(100% - 32px);
		height: 2px;
		background: #129cfe;
	}

	.mobile_menu ul li.menu-item-has-children>a::after {
		content: "\25BC";
		float: right;
		font-size: 0.8rem;
		margin-top: 4px;
	}

	.mobile_menu ul li ul {
		display: none;
		background: #f9f9f9;
		margin-left: 10px;
	}

	.mobile_menu ul li.open>ul {
		display: block;
	}

	.menu-live-label {
		display: none;
	}
}

@media (min-width: 1024px) {
	.hamburger-menu {
		display: none;
	}

	.mobile-nav-overlay {
		display: none !important;
	}

	#main-nav-desktop {
		display: block;
	}

	.menu-live-label {
		display: inline-block;
	}
}

/* =Blog Custom Styles
-------------------------------------------------------------- */

/* Blog Archive Styles */
.blog-archive-container {
	padding: 40px 0;
	background: #f8f9fa;
	min-height: 100vh;
}

.blog-header {
	text-align: center;
	margin-bottom: 40px;
	padding: 30px 0;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.blog-title {
	color: var(--yoo-primary);
	font-size: 2.5rem;
	font-weight: 700;
	margin-bottom: 10px;
}

.blog-description {
	color: #666;
	font-size: 1.1rem;
	margin: 0;
}

.blog-posts-grid {
	display: grid;
	gap: 30px;
	margin-bottom: 40px;
}

.blog-post-card {
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.blog-post-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 5px 25px rgba(0, 0, 0, 0.15);
}

.blog-post-card .post-thumbnail {
	overflow: hidden;
	height: 200px;
}

.blog-post-card .post-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.blog-post-card:hover .post-thumbnail img {
	transform: scale(1.05);
}

.blog-post-card .post-content {
	padding: 25px;
}

.blog-post-card .post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	margin-bottom: 15px;
	font-size: 0.9rem;
	color: #666;
}

.blog-post-card .post-meta span {
	display: flex;
	align-items: center;
	gap: 5px;
}

.blog-post-card .post-title {
	margin: 0 0 15px 0;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.3;
}

.blog-post-card .post-title a {
	color: #333;
	text-decoration: none;
	transition: color 0.3s ease;
}

.blog-post-card .post-title a:hover {
	color: var(--yoo-primary);
}

.blog-post-card .post-excerpt {
	color: #666;
	line-height: 1.6;
	margin-bottom: 20px;
}

.read-more-btn {
	display: inline-block;
	background: var(--yoo-primary);
	color: #fff;
	padding: 8px 14px;
	border-radius: 5px;
	text-decoration: none;
	transition: background 0.3s ease;
}

.read-more-btn:hover {
	background: var(--yoo-primary-hover);
	color: #fff;
}

/* Single Post Styles */
.single-post-container {
	padding: 40px 0;
	background: #f8f9fa;
	min-height: 100vh;
}

.single-post-article {
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
}

.post-breadcrumb {
	background: #f8f9fa;
	padding: 15px 25px;
	font-size: 0.9rem;
	border-bottom: 1px solid #eee;
	border-radius: 8px;
}

.post-breadcrumb a {
	color: var(--yoo-primary);
	text-decoration: none;
}

.post-breadcrumb a:hover {
	text-decoration: underline;
}

.post-header {
	padding: 30px 25px 20px;
	border-bottom: 1px solid #eee;
}

.post-title {
	font-size: 2.2rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 20px;
	line-height: 1.3;
}

.post-meta-detailed {
	color: #666;
	font-size: 0.9rem;
}

.meta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 10px;
}

.meta-item {
	display: flex;
	align-items: center;
	gap: 5px;
}

.meta-item i {
	color: var(--yoo-primary);
}

.post-featured-image {
	margin: 0;
}

.post-featured-image img {
	width: 100%;
	height: auto;
	display: block;
}

.post-content-body {
	padding: 16px 12px;
	font-size: 17px;
	line-height: 28px;
}

.post-content-body p {
	font-size: 17px;
	line-height: 1.5;
}

@media (max-width: 1140px) {
	.post-content-body p {
		font-size: 16px !important;
		line-height: 1.4 !important;
	}
}

@media (max-width: 1024px) {
	.post-content-body p {
		font-size: 15px !important;
		line-height: 1.3 !important;
	}
}

.post-content-body h2,
.post-content-body h3,
.post-content-body h4 {
	color: #333;
	margin-top: 30px;
	margin-bottom: 15px;
}

.post-social-share {
	padding: 25px;
	background: #f8f9fa;
	border-top: 1px solid #eee;
}

.post-social-share h4 {
	margin-bottom: 15px;
	color: #333;
}

.social-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.social-btn {
	/* display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 15px;
	border-radius: 5px;
	text-decoration: none;
	color: #fff;
	font-weight: 500;
	transition: transform 0.3s ease; */

	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
	transition: transform 0.3s ease;
	font-size: 18px;
	margin-right: 10px;
}

.social-btn:hover {
	transform: translateY(-2px);
	color: #fff;
}

.social-btn.facebook {
	background: #3b5998;
}

.social-btn.twitter {
	background: #1da1f2;
}

.social-btn.twitter-x {
	background: #000000;
}

.social-btn.linkedin {
	background: #0077b5;
}

.social-btn.whatsapp {
	background: #25d366;
}

.social-btn.copy-url {
	background: #f75103;
}

.post-navigation {
	padding: 25px;
	background: #f8f9fa;
	border-top: 1px solid #eee;
}

.nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.nav-previous,
.nav-next {
	padding: 20px;
	background: #fff;
	border-radius: 8px;
	border: 1px solid #eee;
	transition: box-shadow 0.3s ease;
}

.nav-previous:hover,
.nav-next:hover {
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.nav-previous a,
.nav-next a {
	text-decoration: none;
	color: #333;
	display: block;
}

.nav-subtitle {
	font-size: 0.9rem;
	color: var(--yoo-primary);
	font-weight: 500;
	display: block;
	margin-bottom: 5px;
}

.nav-title {
	font-weight: 600;
	line-height: 1.3;
}

/* Sidebar Styles */
.blog-sidebar {
	padding-left: 30px;
}

.blog-sidebar-content {
	width: 100%
}

.sidebar-widget {
	background: #fff;
	border-radius: 10px;
	padding: 25px;
	margin-bottom: 30px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.widget-title {
	font-size: 1.3rem;
	font-weight: 600;
	color: #333;
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--yoo-primary);
}

/* Search Widget */
.search-input-group {
	display: flex;
	border: 1px solid #ddd;
	border-radius: 5px;
	overflow: hidden;
}

.search-field {
	flex: 1;
	padding: 12px 15px;
	border: none;
	outline: none;
	font-size: 1rem;
	width: 100%;
}

.search-submit {
	background: var(--yoo-primary);
	color: #fff;
	border: none;
	padding: 12px 15px;
	cursor: pointer;
	transition: background 0.3s ease;
}

.search-submit:hover {
	background: var(--yoo-primary-hover);
}

/* Messaggio di validazione search */
.search-message {
	margin-top: 8px;
	padding: 8px 12px;
	background: #fff3cd;
	border: 1px solid #ffeaa7;
	border-radius: 4px;
	font-size: 0.85rem;
	color: #856404;
	text-align: center;
	transition: all 0.3s ease;
}

.search-message.error {
	background: #f8d7da;
	border-color: #f5c6cb;
	color: #721c24;
}

.search-message.success {
	background: #d4edda;
	border-color: #c3e6cb;
	color: #155724;
}

/* Assicura che il pulsante search sia sempre visibile */
.search-submit {
	min-width: 50px !important;
	flex-shrink: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
}

/* Regola specifica per il search widget nella sidebar */
.sidebar-widget .search-input-group {
	display: flex !important;
}

.sidebar-widget .search-submit {
	min-width: 50px !important;
	width: 50px !important;
	flex-shrink: 0 !important;
	display: flex !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* Categories Widget */
.categories-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.category-item {
	margin-bottom: 10px;
}

.category-item a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 15px;
	background: #f8f9fa;
	border-radius: 5px;
	text-decoration: none;
	color: #333;
	transition: background 0.3s ease;
}

.category-item a:hover {
	background: var(--yoo-primary);
	color: #fff;
}

.category-count {
	font-size: 0.9rem;
	color: #666;
}

.category-item a:hover .category-count {
	color: #fff;
}

/* Recent Posts Widget */
.recent-post-item {
	display: flex;
	gap: 15px;
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid #eee;
}

.recent-post-item:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.recent-post-thumb {
	flex-shrink: 0;
	width: 60px;
	height: 60px;
	border-radius: 5px;
	border: 1px solid var(--yoo-primary);
	overflow: hidden;
}

.recent-post-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.recent-post-content {
	flex: 1;
}

.recent-post-title {
	margin: 0 0 2px 0;
	font-size: 0.95rem;
	line-height: 1.3;
	max-height: 2.6rem;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-clamp: 2;
	word-break: break-word;
}

.recent-post-title a {
	color: #333;
	text-decoration: none;
	transition: color 0.3s ease;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	line-clamp: 2 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	max-height: 2.6rem !important;
	line-height: 1.3 !important;
	word-break: break-word !important;
	width: 100%;
}

.recent-post-title a:hover {
	color: var(--yoo-primary);
}

.recent-post-date {
	font-size: 0.8rem;
	color: #666;
}

.recent-post-date i {
	color: var(--yoo-primary);
}

/* Tags Widget */
.tags-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.tag-item {
	display: inline-block;
	padding: 6px 12px;
	background: #f8f9fa;
	color: #666;
	text-decoration: none;
	border-radius: 15px;
	font-size: 0.9rem;
	transition: all 0.3s ease;
}

.tag-item:hover {
	background: var(--yoo-primary);
	color: #fff;
}

/* Archives Widget */
.archives-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.archives-list li {
	margin-bottom: 8px;
}

.archives-list a {
	color: #666;
	text-decoration: none;
	transition: color 0.3s ease;
}

.archives-list a:hover {
	color: var(--yoo-primary);
}

/* Newsletter Widget */
.newsletter-content p {
	margin-bottom: 15px;
	color: #666;
	line-height: 1.5;
}

.newsletter-form {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.newsletter-form input {
	padding: 12px 15px;
	border: 1px solid #ddd;
	border-radius: 5px;
	outline: none;
	font-size: 1rem;
}

.newsletter-btn {
	background: var(--yoo-primary);
	color: #fff;
	border: none;
	padding: 12px 15px;
	border-radius: 5px;
	cursor: pointer;
	font-weight: 500;
	transition: background 0.3s ease;
}

.newsletter-btn:hover {
	background: var(--yoo-primary-hover);
}

/* Social Widget */
.social-links {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.social-link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 15px;
	border-radius: 5px;
	text-decoration: none;
	color: #fff;
	transition: transform 0.3s ease;
}

.social-link:hover {
	transform: translateX(5px);
	color: #fff;
}

.social-link.facebook {
	background: #3b5998;
}

.social-link.instagram {
	background: #e4405f;
}

.social-link.youtube {
	background: #ff0000;
}

.social-link.twitter {
	background: #1da1f2;
}

.social-link.twitter-x {
	background: #000000;
}

/* Responsive Design */
@media (max-width: 768px) {
	.blog-sidebar {
		padding-left: 0;
		margin-top: 14px;
	}


	.blog-title {
		font-size: 2rem;
	}

	.post-title {
		font-size: 1.8rem;
	}

	.nav-links {
		grid-template-columns: 1fr;
	}

	.social-buttons {
		justify-content: center;
	}

	.meta-row {
		flex-direction: column;
		gap: 10px;
	}
}

/* =Blog Elementor Layout Styles
-------------------------------------------------------------- */

/* Layout post con thumbnail a sinistra */
.blog-posts-list {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.blog-post-item {
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.blog-post-item:hover {
	transform: translateY(-3px);
	box-shadow: 0 5px 25px rgba(0, 0, 0, 0.15);
}

.post-item-container {
	display: flex;
	align-items: flex-start;
	gap: 25px;
	padding: 25px;
}

.post-thumbnail-left {
	flex-shrink: 0;
	width: 160px;
	height: auto;
	border-radius: 8px;
	border: 1px solid var(--yoo-primary);
	overflow: hidden;
}

.post-thumbnail-left img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.blog-post-item:hover .post-thumbnail-left img {
	transform: scale(1.05);
}

.post-content-right {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.post-content-right .post-title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.3;
}

.post-content-right .post-title a {
	color: #333;
	text-decoration: none;
	transition: color 0.3s ease;
}

.post-content-right .post-title a:hover {
	color: var(--yoo-primary);
}

.post-content-right .post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	font-size: 0.9rem;
	color: #666;
}

.post-content-right .meta-item {
	display: flex;
	align-items: center;
	gap: 5px;
}

.post-content-right .meta-item i {
	color: var(--yoo-primary);
}

/* Stili per i link delle categorie nelle liste */
.post-content-right .meta-item a,
.post-meta .meta-item a {
	color: var(--yoo-primary);
	text-decoration: none;
	transition: color 0.3s ease;
}

.post-content-right .meta-item a:hover,
.post-meta .meta-item a:hover {
	color: var(--yoo-primary);
	text-decoration: underline;
}

.post-content-right .post-excerpt {
	color: #666;
	font-size: 17px;
	line-height: 28px;
	margin: 0;
}

.post-excerpt p {
	font-size: 17px;
	line-height: 1.5;
}

.post-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 15px;
	margin-top: 10px;
}

.post-social-share-inline {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.9rem;
}

.post-social-share-inline span {
	color: #666;
	font-weight: 500;
}

.social-btn-small {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
	transition: transform 0.3s ease;
}

.social-btn-small:hover {
	transform: translateY(-2px);
	color: #fff;
}

.social-btn-small.facebook {
	background: #3b5998;
}

.social-btn-small.twitter {
	background: #1da1f2;
}

.social-btn-small.twitter-x {
	background: #000000;
}

.social-btn-small.linkedin {
	background: #0077b5;
}

.social-btn-small.whatsapp {
	background: #25d366;
}

.social-btn-small.copy-url {
	background: #f75103;
}

/* Social circolari per sidebar */
.social-links-circular {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}

.social-btn-circular {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	font-size: 18px;
}

.social-btn-circular:hover {
	transform: translateY(-3px);
	color: #fff;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.social-btn-circular.facebook {
	background: #3b5998;
}

.social-btn-circular.instagram {
	background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.social-btn-circular.tiktok {
	background: #000;
}

.social-btn-circular.youtube {
	background: #ff0000;
}

.social-btn-circular.twitter {
	background: #1da1f2;
}

.social-btn-circular.twitter-x {
	background: #000000;
}

@media (max-width: 1200px) {

	/* Search responsive per tablet e mobile */
	.search-input-group {
		display: flex !important;
		width: 100% !important;
		border: 1px solid #ddd !important;
		border-radius: 5px !important;
		overflow: hidden !important;
	}

	.search-field {
		flex: 1 !important;
		min-width: 0 !important;
		border: none !important;
		border-radius: 0 !important;
	}

	.search-submit {
		min-width: 50px !important;
		width: 50px !important;
		flex-shrink: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		background: var(--yoo-primary) !important;
		border: none !important;
		border-radius: 0 !important;
	}
}

@media (max-width: 1140px) {

	/* Riduci font e line-height per post-excerpt su mobile */
	.elementor-2418 .post-excerpt,
	.blog-post-item .post-content-right .post-excerpt,
	.post-content-right .post-excerpt,
	.elementor-widget-container .post-excerpt,
	div.post-excerpt,
	p.post-excerpt {
		font-size: 16px !important;
		line-height: 1.4 !important;
	}

	/* Forza anche tutti i paragrafi dentro post-excerpt */
	.post-excerpt p,
	.post-excerpt * {
		font-size: 16px !important;
		line-height: 1.4 !important;
	}
}

@media (max-width: 1024px) {

	/* Riduci font e line-height per post-excerpt su mobile */
	.elementor-2418 .post-excerpt,
	.blog-post-item .post-content-right .post-excerpt,
	.post-content-right .post-excerpt,
	.elementor-widget-container .post-excerpt,
	div.post-excerpt,
	p.post-excerpt {
		font-size: 15px !important;
		line-height: 1.3 !important;
	}

	/* Forza anche tutti i paragrafi dentro post-excerpt */
	.post-excerpt p,
	.post-excerpt * {
		font-size: 15px !important;
		line-height: 1.3 !important;
	}
}

@media (max-width: 768px) {

	.elementor-col-50 {
		width: 100% !important;
	}

	.post-item-container {
		flex-direction: column;
		gap: 20px;
	}

	.post-thumbnail-left {
		width: 100%;
		height: auto;
	}

	.post-actions {
		flex-direction: column;
		align-items: flex-start;
		gap: 15px;
	}

	.post-social-share-inline {
		justify-content: flex-start;
		width: 100%;
		flex-wrap: wrap;
	}
}

@media (max-width: 480px) {
	.post-content-right .meta-item {
		font-size: 0.8rem;
	}

	.post-social-share-inline {
		flex-wrap: wrap;
		justify-content: flex-start;
		align-items: flex-start;
	}
}

/* Blog */
.blog-container {
	max-width: 1200px;
	margin: 0 auto;
}

.blog-header {
	padding: 9px 0;
}

.blog-header-content {
	padding: 9px 0;
}

.blog-title {
	background: var(--yoo-primary);
	color: #ffffff;
	padding: 9px 16px;
	font-size: 28px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	text-align: left;
}

.blog-subtitle {
	text-align: center;
	font-size: 22px;
	padding: 20px 0;
	color: #333;
}

.blog-content {
	margin-bottom: 80px !important;
}

.blog-columns {
	display: flex;
	gap: 0;
	min-height: 60px;
}

.blog-column {
	padding: 9px;
}

.blog-main-content {
	flex: 0 0 70%;
	width: 70%;
	display: flex;
	align-items: start;
	justify-content: flex-start;
}

.blog-sidebar {
	flex: 0 0 30%;
	width: 30%;
	display: flex;
	align-items: start;
	justify-content: flex-start;
}

.content-text {
	font-size: 16px;
	color: #333;
	font-weight: 500;
}

/* Responsive Design Blog */
@media screen and (max-width: 1279px) and (min-width: 1141px) {

	.blog-container {
		max-width: 1080px;
	}
}

@media (max-width: 1140px) and (min-width: 1024px) {

	.blog-container {
		max-width: 980px;
	}
}

@media (max-width: 768px) {
	.blog-title {
		font-size: 22px;
		padding: 9px;
	}

	.blog-subtitle {
		font-size: 18px;
		padding: 15px 9px;
	}

	.blog-columns {
		flex-direction: column;
	}

	.blog-main-content,
	.blog-sidebar {
		flex: 1;
		width: 100%;
		padding: 9px;
	}

	.blog-header-content,
	.blog-column {
		padding: 9px;
	}
}

@media (max-width: 1024px) and (min-width: 768px) {
	.blog-title {
		font-size: 26px;
	}

	.blog-subtitle {
		font-size: 20px;
	}

	.blog-header-content,
	.blog-column {
		padding: 9px;
	}
}

/* Override Elementor per priorità */
.section {
	width: 100% !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	margin: 0;
	padding: 0;
	background: none !important;
	background-color: transparent !important;
}

.container {
	width: 100%;
	margin: 0 auto;
	padding: 0;
}

.container-fluid {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

/* ===== SINGLE BLOG POST STYLES ===== */

/* Breadcrumb per single post */
.single-blog-post {
	width: 100% !important;
	background: #fff;
	border-radius: 10px;
	padding: 25px;
	margin-bottom: 30px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.single-blog-post .post-breadcrumb {
	background: #f8f9fa;
	padding: 15px 25px;
	font-size: 0.9rem;
	border-bottom: 1px solid #eee;
	margin-bottom: 30px;
}

/* Header del single post */
.single-post-header {
	margin-bottom: 30px;
}

.single-post-title {
	font-size: 2.2rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 20px;
	line-height: 1.3;
}

.single-post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	font-size: 0.9rem;
	color: #666;
	margin-bottom: 20px;
}

/* Stili per i link delle categorie e tag nel single post */
.single-post-meta .meta-item a,
.meta-row .meta-item a,
.post-meta-detailed .meta-item a {
	color: var(--yoo-primary);
	text-decoration: none;
	transition: color 0.3s ease;
}

.single-post-meta .meta-item a:hover,
.meta-row .meta-item a:hover,
.post-meta-detailed .meta-item a:hover {
	color: var(--yoo-primary);
	text-decoration: underline;
}

/* Immagine in evidenza del single post */
.single-post-featured-image {
	margin-bottom: 30px;
}

.single-featured-img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	border: 1px solid var(--yoo-primary);
}

/* Contenuto del single post */
.single-post-content-body {
	line-height: 1.8;
	font-size: 1.1rem;
	margin-bottom: 30px;
}

/* Paginazione del single post */
.single-page-links {
	margin: 30px 0;
}

/* Condivisione social del single post */
.single-post-social-share {
	padding: 25px;
	background: #f8f9fa;
	border-radius: 8px;
	margin-bottom: 30px;
}

.social-share-title {
	margin-bottom: 15px;
	color: #333;
}

/* Navigazione single post */
.single-post-navigation {
	padding: 25px;
	background: #f8f9fa;
	border-radius: 8px;
	margin-bottom: 30px;
}

.single-post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

/* Quando c'è solo il post successivo, mantieni il 50% ma spostalo a destra (solo desktop) */
@media (min-width: 768px) {
	.single-post-navigation .nav-links:has(.nav-next):not(:has(.nav-previous)) .nav-next {
		grid-column: 2;
		width: 100%;
	}
}

.nav-previous,
.nav-next {
	padding: 20px;
	background: #fff;
	border-radius: 8px;
	border: 1px solid #eee;
}

.nav-next {
	text-align: right;
}

.nav-previous:hover,
.nav-next:hover {
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	transform: translateY(-2px);
	transition: all 0.3s ease;
}

.nav-link {
	text-decoration: none;
	color: #333;
	display: block;
}

.nav-subtitle {
	font-size: 0.9rem;
	color: var(--yoo-primary);
	font-weight: 500;
	display: block;
	margin-bottom: 5px;
}

.nav-title {
	font-weight: 600;
	line-height: 1.3;
}

/* Responsive per single post navigation */
@media (max-width: 768px) {
	.single-post-navigation .nav-links {
		grid-template-columns: 1fr;
		gap: 15px;
	}

	.nav-next {
		text-align: left;
	}

	.single-post-title {
		font-size: 1.8rem;
	}

	.single-post-meta {
		flex-direction: column;
		gap: 10px;
	}
}

/* ===== BLOG PAGINATION STYLES ===== */

/* Paginazione del blog */
.blog-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	padding: 40px 0;
	margin-top: 30px;
}

.blog-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 45px;
	height: 45px;
	padding: 10px 15px;
	background: #fff;
	color: #666;
	text-decoration: none;
	border: 2px solid #e5e5e5;
	border-radius: 8px;
	font-weight: 500;
	font-size: 14px;
	transition: all 0.3s ease;
	position: relative;
}

.blog-pagination .page-numbers:hover {
	background: var(--yoo-primary);
	color: #fff;
	border-color: var(--yoo-primary);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(18, 156, 254, 0.3);
}

.blog-pagination .page-numbers.current {
	background: var(--yoo-primary);
	color: #fff;
	border-color: var(--yoo-primary);
	cursor: default;
	box-shadow: 0 2px 8px rgba(18, 156, 254, 0.2);
}

.blog-pagination .page-numbers.prev,
.blog-pagination .page-numbers.next {
	padding: 10px 20px;
	font-weight: 600;
	border-radius: 8px;
}

.blog-pagination .page-numbers.prev:hover,
.blog-pagination .page-numbers.next:hover {
	background: var(--yoo-primary-hover);
	border-color: var(--yoo-primary-hover);
}

.blog-pagination .page-numbers.dots {
	background: transparent;
	border: none;
	color: #999;
	cursor: default;
	padding: 10px 5px;
}

.blog-pagination .page-numbers.dots:hover {
	background: transparent;
	color: #999;
	transform: none;
	box-shadow: none;
}

/* Effetto active per link corrente */
.blog-pagination span.page-numbers.current {
	background: linear-gradient(135deg, var(--yoo-primary) 0%, var(--yoo-primary-hover) 100%);
	color: #fff;
	border-color: var(--yoo-primary);
	font-weight: 600;
}

/* Responsive per paginazione */
@media (max-width: 768px) {
	.blog-pagination {
		gap: 8px;
		padding: 30px 0;
		flex-wrap: wrap;
	}

	.blog-pagination .page-numbers {
		min-width: 40px;
		height: 40px;
		padding: 8px 12px;
		font-size: 13px;
	}

	.blog-pagination .page-numbers.prev,
	.blog-pagination .page-numbers.next {
		padding: 8px 16px;
	}
}

@media (max-width: 480px) {
	.blog-pagination .page-numbers {
		min-width: 35px;
		height: 35px;
		padding: 6px 10px;
		font-size: 12px;
	}

	.blog-pagination .page-numbers.prev,
	.blog-pagination .page-numbers.next {
		padding: 6px 12px;
		font-size: 11px;
	}
}

/* ===== RELATED POSTS STYLES ===== */

/* Sezione post correlati */
.related-posts-section {
	padding: 30px 25px;
	background: #f8f9fa;
	border-radius: 8px;
	margin-bottom: 30px;
}

.related-posts-title {
	font-size: 1.5rem;
	font-weight: 600;
	color: #333;
	margin-bottom: 25px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--yoo-primary);
}

.related-posts-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.related-post-item {
	background: #fff;
	border-radius: 8px;
	padding: 15px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.related-post-item:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.related-post-empty {
	visibility: hidden;
}

.related-post-content {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

/* Thumbnail quadrato */
.related-post-thumb {
	flex-shrink: 0;
	width: 60px;
	height: 60px;
	border-radius: 5px;
	border: 1px solid var(--yoo-primary);
	overflow: hidden;
	background: #f8f9fa;
	display: flex;
	align-items: center;
	justify-content: center;
}

.related-thumb-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.related-post-item:hover .related-thumb-img {
	transform: scale(1.1);
}

.related-thumb-placeholder {
	color: #999;
	font-size: 24px;
}

/* Contenuto a destra del thumbnail */
.related-post-info {
	flex: 1;
	min-width: 0;
}

.related-post-title {
	margin: 0 0 -4px 0;
	font-size: 0.95rem;
	line-height: 1.3;
	max-height: 2.6rem;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-clamp: 2;
	word-break: break-word;
}

.related-post-title a {
	color: #333;
	text-decoration: none;
	transition: color 0.3s ease;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	line-clamp: 2 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	max-height: 2.6rem !important;
	line-height: 1.3 !important;
	word-break: break-word !important;
	width: 100%;
}

/* Fallback alternativo per il troncamento */
@supports not (-webkit-line-clamp: 2) {
	.related-post-title a {
		display: block;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		width: 100%;
	}
}

.related-post-title a:hover {
	color: var(--yoo-primary);
}

.related-post-date {
	font-size: 0.8rem;
	color: #666;
	display: flex;
	align-items: center;
	gap: 4px;
}

.related-post-date i {
	color: var(--yoo-primary);
}

.no-related-posts {
	text-align: center;
	color: #666;
	font-style: italic;
	padding: 20px 0;
}

/* Responsive per post correlati */
@media (max-width: 1140px) {
	.related-posts-grid {
		grid-template-columns: 1fr;
		gap: 15px;
	}

	.related-post-empty {
		display: none;
	}

	.related-posts-section {
		padding: 20px 15px;
	}

	.related-posts-title {
		font-size: 1.3rem;
		margin-bottom: 20px;
	}
}

@media (max-width: 1024px) {
	.related-posts-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.related-post-empty:nth-child(3) {
		display: none;
	}
}

@media (max-width: 768px) {
	.related-posts-grid {
		grid-template-columns: 1fr;
		gap: 15px;
	}

	.related-post-empty {
		display: none;
	}

	.related-posts-section {
		padding: 20px 15px;
	}

	.related-posts-title {
		font-size: 1.3rem;
		margin-bottom: 20px;
	}

	/* Assicura il troncamento su mobile */
	.related-post-title {
		max-height: 2.4rem;
	}

	.related-post-title a {
		font-size: 0.9rem;
		line-height: 1.2;
		max-height: 2.4rem !important;
		line-height: 1.2 !important;
	}
}

/* ===== 404 ERROR PAGE STYLES ===== */

.error-404-container {
	background: #f8f9fa;
	min-height: 70vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 60px 20px;
}

.error-404-content {
	background: #fff;
	border-radius: 15px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
	padding: 50px;
	max-width: 600px;
	width: 100%;
	text-align: center;
}

.error-404-header {
	margin-bottom: 40px;
}

.error-404-title {
	font-size: 6rem;
	font-weight: 700;
	color: var(--yoo-primary);
	margin: 0 0 60px 0;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}

.error-404-subtitle {
	font-size: 2rem;
	font-weight: 600;
	color: #333;
	margin: 0 0 10px 0;
}

.error-404-message {
	margin-bottom: 40px;
	color: #666;
	font-size: 1.1rem;
	line-height: 1.6;
}

.error-404-message p {
	margin-bottom: 15px;
}

.error-404-message a {
	color: var(--yoo-primary);
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s ease;
}

.error-404-message a:hover {
	color: var(--yoo-primary-hover);
	text-decoration: underline;
}

.error-404-search {
	margin-bottom: 40px;
	padding: 30px;
	background: #f8f9fa;
	border-radius: 10px;
}

.error-404-search h3 {
	font-size: 1.3rem;
	color: #333;
	margin-bottom: 20px;
}

.error-404-search .search-form {
	max-width: 400px;
	margin: 0 auto;
}

.error-404-search .search-input-group {
	display: flex;
	border: 2px solid #e5e5e5;
	border-radius: 8px;
	overflow: hidden;
	transition: border-color 0.3s ease;
}

.error-404-search .search-input-group:focus-within {
	border-color: var(--yoo-primary);
}

.error-404-search .search-field {
	flex: 1;
	padding: 15px 20px;
	border: none;
	outline: none;
	font-size: 1rem;
	background: #fff;
}

.error-404-search .search-submit {
	background: var(--yoo-primary);
	color: #fff;
	border: none;
	padding: 15px 25px;
	cursor: pointer;
	font-weight: 600;
	transition: background 0.3s ease;
}

.error-404-search .search-submit:hover {
	background: var(--yoo-primary-hover);
}

.error-404-links {
	text-align: left;
}

.error-404-links h3 {
	font-size: 1.3rem;
	color: #333;
	margin-bottom: 20px;
	text-align: center;
}

.error-404-links ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 15px;
}

.error-404-links li {
	background: #f8f9fa;
	border-radius: 8px;
	transition: background 0.3s ease;
}

.error-404-links li:hover {
	background: #e9ecef;
}

.error-404-links a {
	display: block;
	padding: 15px 20px;
	color: #333;
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s ease;
}

.error-404-links a:hover {
	color: var(--yoo-primary);
}

/* Responsive per pagina 404 */
@media (max-width: 768px) {
	.error-404-container {
		padding: 40px 15px;
		min-height: 60vh;
	}

	.error-404-content {
		padding: 30px 25px;
	}

	.error-404-title {
		font-size: 4rem;
	}

	.error-404-subtitle {
		font-size: 1.5rem;
	}

	.error-404-message {
		font-size: 1rem;
	}

	.error-404-search,
	.error-404-links {
		margin-bottom: 30px;
	}

	.error-404-search {
		padding: 20px;
	}

	.error-404-links ul {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.error-404-search .search-field,
	.error-404-search .search-submit {
		padding: 12px 15px;
	}
}

@media (max-width: 480px) {
	.error-404-title {
		font-size: 3rem;
	}

	.error-404-subtitle {
		font-size: 1.3rem;
	}

	.error-404-content {
		padding: 25px 20px;
	}
}

/* Search Result */
.search-result-container {
	background: #e4f4ff;
	border-radius: 8px;
	padding: 25px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	width: 100%;
	border-left: 4px solid var(--yoo-primary) !important;
	border-right: 4px solid var(--yoo-primary) !important;
}

/* Stili per .no-posts (risultati di ricerca) */
.search-result-container .no-posts h2 {
	color: #333 !important;
	font-size: 1.3rem !important;
	margin-bottom: 5px !important;
	font-weight: 600 !important;
}

.search-result-container .no-posts p {
	color: #666 !important;
	font-size: 1rem !important;
	line-height: 1.5 !important;
	margin-top: 10px !important;
}

.search-result-container .no-posts ul {
	text-align: left !important;
	max-width: 400px !important;
	margin: 15px auto !important;
	background: #fff !important;
	padding: 15px !important;
	border-radius: 6px !important;
	list-style-type: disc !important;
	padding-left: 30px !important;
}

.search-result-container .no-posts ul li {
	color: #666 !important;
	margin-bottom: 5px !important;
	font-size: 0.9rem !important;
}

.search-result-container .no-posts a {
	color: var(--yoo-primary) !important;
	text-decoration: none !important;
	font-weight: 500 !important;
	transition: color 0.3s ease !important;
}

.search-result-container .no-posts a:hover {
	color: var(--yoo-primary-hover) !important;
	text-decoration: underline !important;
}

/* Responsive per search results */
@media (max-width: 768px) {
	.search-result-container {
		padding: 20px;
	}

	.search-result-container .no-posts {
		padding: 15px !important;
	}

	.search-result-container .no-posts h2 {
		font-size: 1.2rem !important;
	}

	.search-result-container .no-posts p {
		font-size: 0.95rem !important;
	}

	.search-result-container .no-posts ul {
		margin: 10px 0 !important;
		padding: 10px 25px !important;
	}
}

/* Stili responsive per condivisione social single post */
@media (max-width: 768px) {
	.single-post-social-share {
		display: block;
		padding: 20px !important;
		margin-bottom: 20px !important;
	}

	.single-post-social-share .social-share-title {
		display: block;
		margin-bottom: 15px !important;
		margin-right: 0 !important;
	}

	.single-post-social-share .social-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		margin-right: 10px;
		margin-bottom: 8px;
	}
}

@media (max-width: 480px) {
	.single-post-social-share {
		padding: 15px !important;
		margin-bottom: 15px !important;
	}

	.single-post-social-share .social-share-title {
		margin-bottom: 12px !important;
		font-size: 1.1rem !important;
	}

	.single-post-social-share .social-btn {
		margin-right: 8px;
		margin-bottom: 8px;
	}
}

/* =Elementor Text Editor Fix for font-size and line-height inheritance
-------------------------------------------------------------- */

/* ANNULLA COMPLETAMENTE la regola problematica del sistema */
:root :where(.elementor-text-editor p),
:root :where(.elementor-widget-text-editor .elementor-text-editor p),
:root :where(.elementor .elementor-text-editor p) {
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
}

/* Fix MASSIVA specificità per sovrascrivere :root :where(p) */
html body.wp-admin-bar #page .elementor .elementor-section .elementor-container .elementor-column .elementor-widget-text-editor .elementor-text-editor p,
html body #page .elementor .elementor-section .elementor-container .elementor-column .elementor-widget-text-editor .elementor-text-editor p,
html body .elementor .elementor-section .elementor-container .elementor-column .elementor-widget-text-editor .elementor-text-editor p,
html body .elementor-widget-text-editor .elementor-text-editor p,
html body .elementor-text-editor p,
html body .elementor .elementor-text-editor p {
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
}

/* Sovrascrive specificamente la regola :root :where(p) */
html:root body .elementor-widget-text-editor .elementor-text-editor p,
html:root body .elementor-text-editor p,
html:root body .elementor .elementor-text-editor p {
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
}

/* KILL SWITCH - Sovrascrive qualsiasi regola del sistema per Elementor */
.elementor-text-editor p[style*="font-size"],
.elementor-widget-text-editor .elementor-text-editor p[style*="font-size"] {
	font-size: inherit !important;
}

.elementor-text-editor p[style*="line-height"],
.elementor-widget-text-editor .elementor-text-editor p[style*="line-height"] {
	line-height: inherit !important;
}

/* Fix per altri elementi di testo in Elementor con massima specificità */
html body .elementor-widget-text-editor .elementor-text-editor h1,
html body .elementor-widget-text-editor .elementor-text-editor h2,
html body .elementor-widget-text-editor .elementor-text-editor h3,
html body .elementor-widget-text-editor .elementor-text-editor h4,
html body .elementor-widget-text-editor .elementor-text-editor h5,
html body .elementor-widget-text-editor .elementor-text-editor h6,
html body .elementor-widget-text-editor .elementor-text-editor span,
html body .elementor-widget-text-editor .elementor-text-editor div {
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
}

/* Backup: Regola JavaScript per casi estremi */
.elementor-text-editor-force-inherit p {
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
}

/* Script JavaScript per forzare l'ereditarietà come backup */

/* =SOLUZIONE FINALE - Sovrascrive direttamente :root :where(p) per Elementor
-------------------------------------------------------------- */

/* Questa regola ha la stessa specificità di :root :where(p) ma viene dopo nel caricamento */
:root .elementor-text-editor p,
:root .elementor-widget-text-editor p,
:root .elementor .elementor-text-editor p {
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
}

/* Regola per casi in cui l'elemento ha attributi style inline */
.elementor-text-editor p[style],
.elementor-widget-text-editor .elementor-text-editor p[style] {
	font-size: inherit !important;
	line-height: inherit !important;
}

/* Regola universale per tutti i paragrafi in Elementor */
.elementor-element .elementor-text-editor p {
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
}

/* =Fix per Paragraph Spacing - Rimuove margin dall'ultimo paragrafo
-------------------------------------------------------------- */

/* Rimuove il margin-bottom dall'ultimo paragrafo nei widget Text Editor */
.elementor-widget-text-editor .elementor-text-editor p:last-child,
.elementor-text-editor p:last-child {
	margin-bottom: 0 !important;
}

/* Rimuove anche padding-bottom se presente */
.elementor-widget-text-editor .elementor-text-editor p:last-child,
.elementor-text-editor p:last-child {
	padding-bottom: 0 !important;
}

/* Per sicurezza, gestisce anche i casi con altri elementi dopo i paragrafi */
.elementor-widget-text-editor .elementor-text-editor p:last-of-type,
.elementor-text-editor p:last-of-type {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Aggiunge transizione anche allo stato normale per un effetto smooth */
.yoo-excerpt {
	transition: color 0.3s ease;
}

/* =Fix Allineamento Elenchi nei Post - Corregge editor vs output
-------------------------------------------------------------- */

/* Fix per elenchi numerati (ol) e puntati (ul) nel contenuto dei post */
.single-post-content-body ol.wp-block-list,
.single-post-content-body ul.wp-block-list,
.post-content-body ol.wp-block-list,
.post-content-body ul.wp-block-list,
article.post ol.wp-block-list,
article.post ul.wp-block-list {
	margin-left: 0 !important;
	padding-left: 20px !important;
	/* Solo il padding necessario per i numeri/pallini */
	list-style-position: outside !important;
}

/* Fix specifico per gli elementi li degli elenchi */
.single-post-content-body ol.wp-block-list li,
.single-post-content-body ul.wp-block-list li,
.post-content-body ol.wp-block-list li,
.post-content-body ul.wp-block-list li,
article.post ol.wp-block-list li,
article.post ul.wp-block-list li {
	margin-left: 0 !important;
	padding-left: 0 !important;
	text-indent: 0 !important;
}

/* Assicura che gli elenchi annidati siano correttamente indentati */
.single-post-content-body ol.wp-block-list li ol,
.single-post-content-body ol.wp-block-list li ul,
.single-post-content-body ul.wp-block-list li ol,
.single-post-content-body ul.wp-block-list li ul,
.post-content-body ol.wp-block-list li ol,
.post-content-body ol.wp-block-list li ul,
.post-content-body ul.wp-block-list li ol,
.post-content-body ul.wp-block-list li ul,
article.post ol.wp-block-list li ol,
article.post ol.wp-block-list li ul,
article.post ul.wp-block-list li ol,
article.post ul.wp-block-list li ul {
	margin-left: 0 !important;
	padding-left: 25px !important;
}

/* Fix per tutti gli elenchi in generale nel contenuto del post */
.single-post-content-body ol,
.single-post-content-body ul,
.post-content-body ol,
.post-content-body ul,
article.post ol,
article.post ul {
	margin-left: 0 !important;
	padding-left: 20px !important;
}

/* Assicura che i paragrafi dopo gli elenchi siano allineati */
.single-post-content-body ol+p,
.single-post-content-body ul+p,
.post-content-body ol+p,
.post-content-body ul+p,
article.post ol+p,
article.post ul+p {
	margin-left: 0 !important;
	text-indent: 0 !important;
}

/* Login Page Custom Styles */
.yoolive-login-page {
	min-height: 70vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 20px;
	margin-bottom: 100px;
	font-family: 'Roboto', sans-serif;
	gap: 30px;
}

/* Welcome Text Container (Outside login box) */
.login-welcome-container {
	text-align: center;
	max-width: 1140px;
	width: 100%;
}

.login-welcome-header {
	font-size: 26px;
	color: #333;
	line-height: 1.5;
	margin: 0 0 20px 0;
	font-weight: 400;
}

.login-welcome-header strong {
	font-weight: 700;
	color: var(--yoo-primary);
}

.login-welcome-header img {
	height: 30px;
	vertical-align: middle;
}

.login-welcome-text {
	font-size: 22px;
	color: #333;
	line-height: 1.3;
	margin: 0 0 20px 0;
	font-weight: 400;
}

.login-welcome-text strong {
	font-weight: 700;
	color: var(--yoo-primary);
}

.login-container-custom {
	background: rgba(255, 255, 255, 0.95);
	border-radius: 20px;
	padding: 60px 50px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
	text-align: center;
	max-width: 450px;
	width: 100%;
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.1);
}

.yoolive-logo {
	margin-bottom: 40px;
}

.yoolive-logo img {
	max-width: 200px;
	height: auto;
}

.welcome-text {
	font-size: 1.8rem;
	color: #333;
	margin-bottom: 10px;
	font-weight: 300;
}

.subtitle-text {
	font-size: 1rem;
	color: #666;
	margin-bottom: 40px;
	line-height: 1.5;
}

.form-group {
	margin-bottom: 30px;
	text-align: left;
}

.form-label {
	display: block;
	font-size: 1rem;
	color: #333;
	margin-bottom: 15px;
	text-align: center;
}

.form-input {
	width: 100% !important;
	padding: 10px 8px !important;
	font-size: 16px !important;
	border: 2px solid #e0e0e0 !important;
	border-radius: 6px !important;
	background: #fff !important;
	transition: all 0.3s ease !important;
	box-sizing: border-box !important;
	color: #333 !important;
}

.form-input:focus {
	outline: none !important;
	border-color: var(--yoo-primary) !important;
	box-shadow: 0 0 0 3px rgba(18, 156, 254, 0.1) !important;
}

.form-input::placeholder {
	color: #999;
}

.login-button {
	width: 100%;
	padding: 18px;
	background: var(--yoo-primary);
	color: white;
	border: none;
	border-radius: 6px;
	font-size: 1.2rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.3s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.login-button:hover {
	background: var(--yoo-primary-hover);
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(18, 156, 254, 0.3);
}

.login-button:active {
	transform: translateY(0);
}

.login-button:disabled {
	background: #ccc;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

/* Code Input Section */
.code-inputs-container {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin-bottom: 30px;
}

.code-input {
	width: 50px !important;
	height: 60px !important;
	text-align: center !important;
	font-size: 30px !important;
	font-weight: 600 !important;
	border: 2px solid #e0e0e0 !important;
	border-radius: 6px !important;
	background: #fff !important;
	transition: all 0.3s ease !important;
	color: #333 !important;
	padding: 12px !important;
}

.code-input:focus {
	outline: none !important;
	border-color: var(--yoo-primary) !important;
	box-shadow: 0 0 0 3px rgba(18, 156, 254, 0.1) !important;
}

.code-input.filled {
	border-color: var(--yoo-primary) !important;
	background: rgba(18, 156, 254, 0.05) !important;
}

.resend-section {
	margin-top: 25px;
	color: #666;
	font-size: 0.95rem;
}

.resend-timer {
	margin-top: 15px;
	padding: 10px 15px;
	background-color: #f8f9fa;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	color: #666;
	font-size: 0.9rem;
	text-align: center;
	line-height: 1.4;
}

.resend-timer #timer-countdown {
	font-weight: 600;
	color: var(--yoo-primary);
}

.login-link {
	color: var(--yoo-primary);
	text-decoration: none;
	font-weight: 500;
	cursor: pointer;
	transition: color 0.3s ease;
}

.login-link:hover {
	color: var(--yoo-primary-hover);
	text-decoration: underline;
}

.loading-spinner {
	display: none;
	width: 20px;
	height: 20px;
	border: 2px solid transparent;
	border-top: 2px solid currentColor;
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

.terms-section {
	margin-top: 30px;
	font-size: 0.95rem;
	color: #666;
	line-height: 1.5;
}

.terms-section strong {
	font-weight: 600;
}

.terms-section a {
	color: var(--yoo-primary);
	text-decoration: none;
}

.terms-section a:hover {
	text-decoration: underline;
}

/* Message notifications */
.login-message {
	margin-bottom: 20px;
	padding: 12px 16px;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 500;
	text-align: center;
	opacity: 0;
	transform: translateY(-10px);
	transition: all 0.3s ease;
	pointer-events: none;
}

.login-message.show {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.login-message.error {
	background-color: #fee;
	color: #d63384;
	border: 1px solid #f5c2c7;
}

.login-message.success {
	background-color: #d1e7dd;
	color: #0f5132;
	border: 1px solid #badbcc;
}

.login-message.info {
	background-color: #cff4fc;
	color: #055160;
	border: 1px solid #b6effb;
}

/* Hide sections */
.step-hidden {
	display: none;
}

/* Responsive */
@media (max-width: 768px) {
	.yoolive-login-page {
		gap: 20px;
		padding: 15px;
	}

	.login-welcome-header {
		font-size: 24px;
	}

	.login-welcome-header img {
		height: 29px;
	}

	.login-welcome-text {
		font-size: 20px;
	}

	.login-container-custom {
		padding: 40px 30px;
		margin: 20px;
	}

	.yoolive-logo img {
		max-width: 180px;
	}

	.welcome-text {
		font-size: 1.5rem;
	}

	.code-input {
		width: 45px;
		height: 55px;
		font-size: 1.6rem;
	}

	.code-inputs-container {
		gap: 8px;
	}
}

@media (max-width: 480px) {
	.yoolive-login-page {
		gap: 15px;
		padding: 10px;
	}

	.login-welcome-header {
		font-size: 22px;
	}

	.login-welcome-header img {
		height: 26px;
	}

	.login-welcome-text {
		font-size: 18px;
	}

	.login-container-custom {
		padding: 30px 20px;
	}

	.yoolive-logo img {
		max-width: 160px;
	}

	.code-input {
		width: 40px;
		height: 50px;
		font-size: 1.4rem;
	}

	.code-inputs-container {
		gap: 6px;
	}
}

/* Profile */
.profile-container {
	max-width: 1200px;
	margin: 0 auto;
}

.profile-header {
	padding: 0;
}

.profile-header-content {
	padding: 9px 0;
}

.profile-title {
	background: var(--yoo-primary);
	color: #ffffff;
	padding: 9px 16px;
	font-size: 28px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	text-align: left;
}

.profile-content {
	margin-bottom: 80px !important;
}

.profile-content-column {
	width: 100%;
}

.profile-columns {
	display: flex;
	gap: 0;
	min-height: 60px;
	padding: 9px 0;
}

.profile-column {
	padding: 20px;
}

.profile-main-content {
	flex: 0 0 70%;
	width: 70%;
	display: flex;
	align-items: start;
	justify-content: center;
}

.profile-sidebar {
	flex: 0 0 30%;
	width: 30%;
	display: flex;
	align-items: start;
	justify-content: center;
}

@media screen and (max-width: 1279px) and (min-width: 1141px) {

	.profile-container {
		max-width: 1080px;
	}
}

@media (max-width: 1140px) and (min-width: 1024px) {
	.profile-container {
		max-width: 980px;
	}
}

@media (max-width: 820px) {
	.profile-title {
		font-size: 22px;
		padding: 9px;
	}

	.profile-columns {
		flex-direction: column;
	}

	.profile-main-content,
	.profile-sidebar {
		flex: 1;
		width: 100%;
		padding: 9px;
	}

	.profile-header-content,
	.profile-column {
		padding: 9px;
	}

	.profile-columns {
		padding: 9px;
	}
}

@media (max-width: 1024px) and (min-width: 768px) {
	.profile-title {
		font-size: 26px;
	}

	.profile-header-content,
	.profile-column {
		padding: 9px;
	}

	.profile-columns {
		padding: 9px;
	}
}

@media (max-width: 479px) {
	body:not(.dark_body):not(.page-template-template-systempages) {
		background: #f2f2f2 !important;
	}
}

/* Header Profile Icon */
.user-profile-icon {
	display: flex;
	align-items: center;
	transition: all 0.3s ease;
}

.user-profile-icon img {
	border-radius: 50%;
	background: #fff;
	border: 2px solid #fff;
	width: 36px;
	height: 36px;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: all 0.3s ease;
}

/* Stato utente loggato */
.user-profile-icon.authenticated img {
	border: 2px solid var(--yoo-primary);
}

/* Hover effects */
.user-profile-icon:hover img {
	transform: scale(1.05);
}

/* Profile Page New Layout */
/* Avatar Section */
.avatar-section {
	text-align: center;
	margin-bottom: 30px;
}

.avatar-container {
	position: relative;
	display: inline-block;
	margin-bottom: 15px;
	width: 70%;
	aspect-ratio: 1 / 1;
}

.user-avatar {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	object-fit: cover;
	border: 4px solid var(--yoo-primary);
	transition: all 0.3s ease;
}

.avatar-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 1 / 1;
	background: rgba(74, 144, 226, 0.8);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.3s ease;
	cursor: pointer;
}

.avatar-container:hover .avatar-overlay {
	opacity: 1;
}

.avatar-overlay i {
	font-size: 2rem;
	color: white;
}

.avatar-actions {
	display: flex;
	justify-content: center;
	gap: 15px;
}

.btn-avatar-action {
	background: var(--yoo-primary);
	color: white;
	border: none;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.3s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
}

.btn-avatar-action:hover {
	background: #357abd;
	transform: scale(1.05);
}

/* Pulsante delete con background rosso */
#delete-avatar-btn {
	background: #a5091b !important;
}

#delete-avatar-btn:hover {
	background: #8a0717 !important;
	transform: scale(1.05);
}

/* User Info Section */
.user-info-section {
	text-align: center;
	margin-bottom: 30px;
	padding: 20px 0;
	border-top: 1px solid #eee;
	border-bottom: 1px solid #eee;
}

.user-name {
	font-size: 18px;
	font-weight: 600;
	color: #333;
	margin-bottom: 10px;
}

.user-email {
	font-size: 16px;
	color: #666;
}

.sidebar-content {
	margin-bottom: 20px;
}

/* Logout Section */
.logout-section {
	text-align: center;
}

.btn-logout {
	background: #dc3545;
	color: white;
	border: none;
	padding: 12px 30px;
	border-radius: 8px;
	font-size: 1rem;
	cursor: pointer;
	transition: background 0.3s ease;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 auto;
}

.btn-logout:hover {
	background: #c82333;
}

/* Tab Navigation */
.tab-navigation {
	display: flex;
}

.tab-btn {
	background: #e7e7e7;
	border: none;
	padding: 14px 23px;
	margin-right: 10px;
	font-size: 1.1rem;
	font-weight: 500;
	color: #7b7b7b;
	cursor: pointer;
	transition: all 0.3s ease;
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
}

.tab-btn.active {
	color: var(--yoo-primary);
	background: #fff;
}


.tab-btn:hover {
	color: var(--yoo-primary);
	background: #fff;
}

/* Tab Content */
.tab-content {
	padding: 20px;
	background-color: #fff;
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
	border-top-right-radius: 12px;
}

.tab-pane {
	display: none;
}

.tab-pane.active {
	display: block;
}

/* Form Styles */
.form-notice {
	background: #e3f2fd;
	border: 1px solid #bbdefb;
	border-radius: 6px;
	padding: 15px;
	margin-bottom: 30px;
	color: #1976d2;
}

.form-notice p {
	margin: 0;
	font-size: 0.9rem;
}

.form-row {
	display: flex;
	gap: 20px;
	margin-bottom: 25px;
}

.form-group {
	flex: 1;
}

.form-group label {
	display: block;
	font-weight: 600;
	color: #333;
	margin-bottom: 5px;
	font-size: 17px;
}

.form-group input,
.form-group select {
	width: 100%;
	padding: 12px 15px;
	border: 2px solid #e1e5e9;
	border-radius: 6px;
	font-size: 1rem;
	transition: border-color 0.3s ease;
	background: white;
}

.form-group input:focus,
.form-group select:focus {
	outline: none;
	border-color: var(--yoo-primary);
}

/* Force light theme for datalist and date inputs */
.form-group input[list],
.form-group input[type="date"] {
	color-scheme: light;
	background: white !important;
	color: #333 !important;
	cursor: pointer;
	/* Nasconde le frecce native dei browser */
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	/* Aggiunge la nostra freccia custom */
	background-image: url("data:image/svg+xml;charset=US-ASCII,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%23666' d='M6 8L0 2h12z'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: right 6px center !important;
	background-size: 12px !important;
	padding-right: 30px !important;
}

/* Nasconde specificatamente le frecce di Chrome, Edge, Safari */
.form-group input[list]::-webkit-outer-spin-button,
.form-group input[list]::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	margin: 0 !important;
}

.form-group input[list]::-webkit-calendar-picker-indicator {
	display: none !important;
	-webkit-appearance: none !important;
}

.form-group input[list]::-webkit-clear-button {
	display: none !important;
	-webkit-appearance: none !important;
}

.form-group input[list]::-webkit-search-decoration,
.form-group input[list]::-webkit-search-cancel-button,
.form-group input[list]::-webkit-search-results-button,
.form-group input[list]::-webkit-search-results-decoration {
	display: none !important;
	-webkit-appearance: none !important;
}

/* Firefox specific styling for datalist */
@-moz-document url-prefix() {
	.form-group input[list] {
		-moz-appearance: none !important;
		appearance: none !important;
		background-image: url("data:image/svg+xml;charset=US-ASCII,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%23666' d='M6 8L0 2h12z'/></svg>") !important;
		background-repeat: no-repeat !important;
		background-position: right 6px center !important;
		background-size: 12px !important;
		padding-right: 30px !important;
	}
}

/* Select styling per mobile (stesso stile degli input) */
.form-group select {
	width: 100% !important;
	padding: 10px 8px !important;
	border: 2px solid #ddd !important;
	border-radius: 8px !important;
	font-size: 1rem !important;
	background: white !important;
	color: #333 !important;
	cursor: pointer !important;
	/* Rimuovi frecce native */
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	/* Aggiungi freccia custom */
	background-image: url("data:image/svg+xml;charset=US-ASCII,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%23666' d='M6 8L0 2h12z'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: right 6px center !important;
	background-size: 12px !important;
	padding-right: 30px !important;
}

/* Nasconde le frecce native dei select su mobile */
.form-group select::-ms-expand {
	display: none !important;
}

/* Safari specific fixes per select */
.form-group select {
	/* Reset completo di Safari */
	-webkit-box-sizing: border-box !important;
	box-sizing: border-box !important;
	-webkit-padding-start: 8px !important;
	-webkit-padding-end: 30px !important;
	padding-left: 8px !important;
	padding-right: 30px !important;
	padding-top: 10px !important;
	padding-bottom: 10px !important;
	/* Forza rimozione margini Safari */
	margin: 0 !important;
	/* Forza altezza consistente */
	min-height: auto !important;
	height: auto !important;
	line-height: normal !important;
}

/* WebKit/Safari specific select normalization */
@supports (-webkit-appearance: none) {
	.form-group select {
		-webkit-appearance: none !important;
		-webkit-border-radius: 8px !important;
		-webkit-background-clip: padding-box !important;
		background-clip: padding-box !important;
		/* Forza padding specifico per WebKit */
		-webkit-padding-before: 10px !important;
		-webkit-padding-after: 10px !important;
		-webkit-padding-start: 8px !important;
		-webkit-padding-end: 30px !important;
		/* Reset di tutti i margini WebKit */
		-webkit-margin-before: 0 !important;
		-webkit-margin-after: 0 !important;
		-webkit-margin-start: 0 !important;
		-webkit-margin-end: 0 !important;
	}
}

.form-group select:focus {
	outline: none !important;
	border-color: var(--yoo-primary) !important;
}

.form-group select.error {
	border-color: #dc3545 !important;
}

/* Select mobile inizialmente nascosti */
.form-group select.mobile-select {
	display: none !important;
}

/* Mobile: Nascondi input[list] e mostra select */
@media (max-width: 768px) {
	.form-group input[list].mobile-hidden {
		display: none !important;
		visibility: hidden !important;
		position: absolute !important;
		left: -9999px !important;
	}

	.form-group select.mobile-select {
		display: block !important;
		visibility: visible !important;
		position: static !important;
	}

	/* Nascondi anche i datalist su mobile */
	datalist {
		display: none !important;
	}
}

/* Dispositivi touch */
@media (hover: none) and (pointer: coarse) {
	.form-group input[list].mobile-hidden {
		display: none !important;
		visibility: hidden !important;
		position: absolute !important;
		left: -9999px !important;
	}

	.form-group select.mobile-select {
		display: block !important;
		visibility: visible !important;
		position: static !important;
	}

	/* Nascondi anche i datalist su dispositivi touch */
	datalist {
		display: none !important;
	}
}

/* Force light theme for datalist dropdown */
datalist {
	color-scheme: light !important;
}

/* Additional styling for datalist and date picker */
.form-group input[list]::-webkit-calendar-picker-indicator,
.form-group input[type="date"]::-webkit-calendar-picker-indicator {
	filter: invert(0) !important;
	background: white !important;
}

/* Date inputs container */
.date-inputs-container {
	display: flex;
	gap: 10px;
}

/* Date errors container */
.date-errors-container {
	margin-top: 10px;
	padding: 10px;
	background: #f8d7da;
	border: 1px solid #f5c6cb;
	border-radius: 6px;
	color: #721c24;
}

.date-errors-container .error-message {
	margin: 0 0 5px 0;
	font-size: 0.85rem;
}

.date-errors-container .error-message:last-child {
	margin-bottom: 0;
}

/* Country errors container (same style as date) */
.country-errors-container {
	margin-top: 10px;
	padding: 10px;
	background: #f8d7da;
	border: 1px solid #f5c6cb;
	border-radius: 6px;
	color: #721c24;
}

.country-errors-container .error-message {
	margin: 0 0 5px 0;
	font-size: 0.85rem;
}

.country-errors-container .error-message:last-child {
	margin-bottom: 0;
}

/* Gender errors container (same style as date) */
.gender-errors-container {
	margin-top: 10px;
	padding: 10px;
	background: #f8d7da;
	border: 1px solid #f5c6cb;
	border-radius: 6px;
	color: #721c24;
}

.gender-errors-container .error-message {
	margin: 0 0 5px 0;
	font-size: 0.85rem;
}

.gender-errors-container .error-message:last-child {
	margin-bottom: 0;
}

.date-input {
	flex: 1;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

/* Date validation error */
.date-error {
	color: #dc3545;
	font-size: 0.85rem;
	margin-top: 5px;
	display: none;
}

.date-input.error,
.form-input.error {
	border-color: #dc3545 !important;
}

.validation-error {
	color: #dc3545;
	font-size: 0.85rem;
	margin-top: 5px;
	display: block;
}

@media (max-width: 480px) {
	.date-inputs-container {
		flex-direction: column;
		gap: 15px;
	}
}

/* Interests Section */
.interests-section {
	margin: 30px 0;
	padding: 25px;
	background: #f8f9fa;
	border-radius: 8px;
	border: 1px solid #e9ecef;
}

.section-label {
	display: block;
	font-weight: 600;
	color: #333;
	margin-bottom: 20px;
	font-size: 1.1rem;
}

.checkbox-group {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.checkbox-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.checkbox-item input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	/* Nascondi il checkbox nativo */
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	/* Stile personalizzato */
	border: 2px solid #ddd;
	border-radius: 3px;
	background: white;
	cursor: pointer;
	position: relative;
	transition: all 0.2s ease;
}

.checkbox-item input[type="checkbox"]:hover {
	border-color: var(--yoo-primary);
}

.checkbox-item input[type="checkbox"]:checked {
	background: var(--yoo-primary);
	border-color: var(--yoo-primary);
}

.checkbox-item input[type="checkbox"]:checked::after {
	content: '✓';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: white;
	font-size: 12px;
	font-weight: bold;
	line-height: 1;
}

.checkbox-item label {
	flex: 1;
	font-size: 0.95rem;
	color: #555;
	line-height: 1.4;
	cursor: pointer;
}

/* Save Button */
.form-actions {
	text-align: right;
	margin-top: 40px;
	padding-top: 30px;
	border-top: 1px solid #eee;
}

.btn-save {
	background: #28a745;
	color: white;
	border: none;
	padding: 15px 40px;
	border-radius: 8px;
	font-size: 1.1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.3s ease;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.btn-save:hover {
	background: #218838;
}

/* YooPoints Tab */
.yoopoints-content {
	padding: 20px;
}

.yoopoints-header {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 20px;
}

.btn-use-points {
	background-color: #0099ff;
	color: white;
	border: none;
	padding: 10px 20px;
	border-radius: 5px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.btn-use-points:hover {
	background-color: #0077cc;
}

.btn-use-points:disabled {
	background-color: #6c757d;
	cursor: not-allowed;
}

.member-since {
	text-align: center;
	margin: 22px 0;
	font-size: 20px;
	color: #666;
}

.member-since span {
	font-weight: 600;
}

.yoopoints-display {
	text-align: center;
	margin-bottom: 30px;
}

.points-text-line {
	font-size: 20px;
	color: #333;
	margin-bottom: 5px;
}

.points-number-line {
	font-size: 50px;
	font-weight: bold;
	color: #0099ff;
	margin: 10px 0;
	line-height: 1;
}

.points-label-line {
	font-size: 20px;
	color: #333;
	margin-top: 5px;
}

/* Legacy style for compatibility */
.yoopoints-display h3 {
	font-size: 24px;
	margin: 0;
	color: #333;
}

.yoopoints-history {
	max-width: 800px;
	margin: 0 auto;
}

.points-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
	background: white;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.points-table thead {
	background-color: #f8f9fa;
}

.points-table th {
	padding: 15px;
	text-align: left;
	font-weight: 600;
	color: #333;
	border-bottom: 2px solid #dee2e6;
}

.points-table td {
	padding: 12px 15px;
	border-bottom: 1px solid #dee2e6;
}

.points-table tbody tr:hover {
	background-color: #f8f9fa;
}

.points-table th:last-child,
.points-table td:last-child {
	text-align: center;
}

.points-positive {
	color: #28a745;
	font-weight: 600;
}

.points-negative {
	color: #dc3545;
	font-weight: 600;
}

.pagination-container {
	display: flex;
	justify-content: center;
	margin-top: 20px;
}

.pagination-nav {
	display: flex;
	align-items: center;
	gap: 15px;
}

.pagination-btn {
	background-color: #0099ff;
	color: white;
	border: none;
	padding: 8px 16px;
	border-radius: 5px;
	cursor: pointer;
	font-size: 14px;
	transition: background-color 0.3s ease;
	display: flex;
	align-items: center;
	gap: 5px;
}

.pagination-btn:hover:not(:disabled) {
	background-color: #0077cc;
}

.pagination-btn:disabled {
	background-color: #6c757d;
	cursor: not-allowed;
}

.page-info {
	font-size: 14px;
	color: #666;
	margin: 0 10px;
}

/* Legacy styles for compatibility */
.points-number {
	font-size: 4rem;
	font-weight: bold;
	color: var(--yoo-primary);
	margin-bottom: 10px;
}

.points-label {
	font-size: 1.5rem;
	color: #666;
	font-weight: 500;
}

/* Profile Page Responsive */
@media (max-width: 820px) {
	.avatar-container {
		width: 50%;
	}

	.user-avatar {
		width: 100%;
		aspect-ratio: 1 / 1;
	}

	.avatar-overlay {
		width: 100%;
		aspect-ratio: 1 / 1;
	}
}

@media (max-width: 768px) {
	.form-row {
		flex-direction: column;
	}

	.tab-btn {
		padding: 15px 20px;
		font-size: 1rem;
	}

	.points-number {
		font-size: 3rem;
	}

	.avatar-overlay i {
		font-size: 1.5rem;
	}

	.tab-content {
		padding: 15px;
	}

	.form-actions {
		text-align: center;
	}

	/* YooPoints responsive styles */
	.yoopoints-header {
		justify-content: center;
	}

	.points-text-line,
	.points-label-line {
		font-size: 16px;
	}

	.points-number-line {
		font-size: 36px;
	}

	.points-table {
		font-size: 14px;
	}

	.points-table th,
	.points-table td {
		padding: 10px 8px;
	}

	.pagination-nav {
		flex-direction: column;
		gap: 10px;
	}

	.pagination-btn {
		width: 100%;
		justify-content: center;
	}
}

/* =Button Standard Classes
-------------------------------------------------------------- */
/* Base button class with standard properties */
.btn {
	padding: 8px 14px !important;
	border-radius: 5px !important;
	text-decoration: none !important;
	transition: background 0.3s ease !important;
	font-size: 15px !important;
	font-weight: normal !important;
	border: none !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	cursor: pointer !important;
}

/* Primary button variant */
.btn-primary {
	background: var(--yoo-primary);
	color: white;
}

.btn-primary:hover {
	background: var(--yoo-primary-hover);
}

/* Secondary button variant */
.btn-secondary {
	background: #6c757d;
	color: white;
}

.btn-secondary:hover {
	background: #545b62;
}

/* Danger button variant */
.btn-danger {
	background: #dc3545;
	color: white;
}

.btn-danger:hover {
	background: #c82333;
}

/* Success button variant */
.btn-success {
	background: #28a745;
	color: white;
}

.btn-success:hover {
	background: #218838;
}

/* =Animations
-------------------------------------------------------------- */
/* Spinner animation for loading states */
@keyframes spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

/* =Error Messages Styling
-------------------------------------------------------------- */
.profile-error-section {
	padding: 40px 0;
}

.profile-error-content {
	max-width: 600px;
	margin: 0 auto;
	text-align: center;
	padding: 30px;
	background: white;
	border-radius: 12px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	border-left: 5px solid #dc3545;
}

.error-icon {
	font-size: 48px;
	color: #dc3545;
	margin-bottom: 20px;
	display: block;
}

.error-title {
	font-size: 24px;
	font-weight: 600;
	color: #333;
	margin-bottom: 15px;
}

.error-message {
	font-size: 16px;
	color: #666;
	margin-bottom: 25px;
	line-height: 1.5;
}

.error-actions {
	display: flex;
	gap: 15px;
	justify-content: center;
	flex-wrap: wrap;
}

/* Error buttons inherit from base .btn class and color variants */

.error-btn-primary {
	/* Inherits colors from .btn-primary */
	background: var(--yoo-primary) !important;
	color: white !important;
}

.error-btn-primary:hover {
	background: var(--yoo-primary-hover) !important;
}

.error-btn-secondary {
	/* Inherits colors from .btn-secondary */
	background: #6c757d !important;
	color: white !important;
}

.error-btn-secondary:hover {
	background: #545b62 !important;
}

/* Responsive */
@media (max-width: 768px) {
	.profile-error-content {
		margin: 0 20px;
		padding: 25px 20px;
	}

	.error-actions {
		flex-direction: column;
		align-items: center;
	}

	.error-btn {
		width: 100%;
		max-width: 250px;
		justify-content: center;
	}
}

/* =Animations
-------------------------------------------------------------- */
/* Spinner animation for loading states */
@keyframes spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

/* =Global Modal System
-------------------------------------------------------------- */
/* Sistema modale centralizzato per messaggi */
.yoolive-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.6);
	display: none;
	justify-content: center;
	align-items: center;
	z-index: 999998;
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.yoolive-modal-overlay.show {
	display: flex;
	opacity: 1;
}

.yoolive-modal-content {
	background: white;
	padding: 0;
	border-radius: 16px;
	box-shadow: 0 12px 48px rgba(0, 0, 0, 0.4);
	text-align: center;
	max-width: 500px;
	width: 90%;
	max-height: 80vh;
	overflow: hidden;
	transform: scale(0.9);
	transition: transform 0.3s ease;
}

.yoolive-modal-overlay.show .yoolive-modal-content {
	transform: scale(1);
}

.yoolive-modal-header {
	padding: 30px 30px 20px;
	border-bottom: 1px solid #f0f0f0;
}

.yoolive-modal-icon {
	font-size: 48px;
	margin-bottom: 16px;
	display: block;
}

.yoolive-modal-icon.success {
	color: #28a745;
}

.yoolive-modal-icon.error {
	color: #dc3545;
}

.yoolive-modal-icon.warning {
	color: #ffc107;
}

.yoolive-modal-icon.info {
	color: #17a2b8;
}

.yoolive-modal-icon.question {
	color: #6f42c1;
}

.yoolive-modal-title {
	font-size: 24px;
	font-weight: 600;
	color: #333;
	margin: 0 0 12px;
	line-height: 1.3;
}

.yoolive-modal-message {
	font-size: 16px;
	color: #666;
	line-height: 1.5;
	margin: 0;
}

.yoolive-modal-body {
	padding: 20px 30px;
}

.yoolive-modal-actions {
	padding: 20px 30px 30px;
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
}

.yoolive-modal-btn {
	padding: 12px 24px !important;
	border-radius: 8px !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	border: none !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	text-decoration: none !important;
	min-width: 100px;
	justify-content: center;
}

.yoolive-modal-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.yoolive-modal-btn.primary {
	background: var(--yoo-primary);
	color: white;
}

.yoolive-modal-btn.primary:hover {
	background: var(--yoo-primary-hover);
}

.yoolive-modal-btn.secondary {
	background: #6c757d;
	color: white;
}

.yoolive-modal-btn.secondary:hover {
	background: #545b62;
}

.yoolive-modal-btn.success {
	background: #28a745;
	color: white;
}

.yoolive-modal-btn.success:hover {
	background: #218838;
}

.yoolive-modal-btn.danger {
	background: #dc3545;
	color: white;
}

.yoolive-modal-btn.danger:hover {
	background: #c82333;
}

.yoolive-modal-btn.outline {
	background: transparent;
	color: #666;
	border: 2px solid #ddd !important;
}

.yoolive-modal-btn.outline:hover {
	background: #f8f9fa;
	border-color: #adb5bd !important;
}

/* Prevenire scroll durante modal */
body.yoolive-modal-active {
	overflow: hidden;
	height: 100vh;
}

/* Responsive */
@media (max-width: 600px) {
	.yoolive-modal-content {
		width: 95%;
		margin: 20px;
	}

	.yoolive-modal-header,
	.yoolive-modal-body,
	.yoolive-modal-actions {
		padding-left: 20px;
		padding-right: 20px;
	}

	.yoolive-modal-icon {
		font-size: 40px;
		margin-bottom: 12px;
	}

	.yoolive-modal-title {
		font-size: 20px;
	}

	.yoolive-modal-message {
		font-size: 15px;
	}

	.yoolive-modal-actions {
		flex-direction: column;
		gap: 8px;
	}

	.yoolive-modal-btn {
		width: 100%;
	}
}

/* =Global Loading Overlay
-------------------------------------------------------------- */
/* Overlay spinner centralizzato per richieste server */
.yoolive-loading-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	display: none;
	justify-content: center;
	align-items: center;
	z-index: 999999;
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}

.yoolive-loading-overlay.show {
	display: flex;
}

.yoolive-loading-content {
	background: white;
	padding: 40px;
	border-radius: 12px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
	text-align: center;
	max-width: 300px;
	width: 90%;
}

.yoolive-loading-spinner {
	width: 60px;
	height: 60px;
	border: 4px solid #f3f3f3;
	border-top: 4px solid var(--yoo-primary);
	border-radius: 50%;
	animation: spin 1s linear infinite;
	margin: 0 auto 20px;
}

.yoolive-loading-text {
	font-size: 16px;
	color: #333;
	font-weight: 500;
	margin: 0;
}

.yoolive-loading-subtext {
	font-size: 14px;
	color: #666;
	margin: 8px 0 0;
}

/* Prevenire scroll durante loading */
body.yoolive-loading-active {
	overflow: hidden;
	height: 100vh;
}

/* Responsive */
@media (max-width: 480px) {
	.yoolive-loading-content {
		padding: 30px 20px;
		margin: 20px;
	}

	.yoolive-loading-spinner {
		width: 50px;
		height: 50px;
		border-width: 3px;
	}

	.yoolive-loading-text {
		font-size: 15px;
	}

	.yoolive-loading-subtext {
		font-size: 13px;
	}
}

/* =Error Messages Styling
-------------------------------------------------------------- */