/* ===== ROOT VARIABLES ===== */
:root {
	--primary-color: #2badce; /* Rosso italiano principale */
	--accent-color: #922700; /* Verde italiano accento */
	--bg-light: #8c9ea6; /* Marrone scuro per sezioni */
	--white: #ffffff; /* Bianco */
	--dark: #2c3c42; /* Sfondo molto scuro */
	--text-dark: #f5f5dc; /* Testo chiaro su sfondo scuro (beige) */
	--text-light: #d437c7; /* Testo secondario dorato */
}

/* ===== GLOBAL STYLES ===== */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: var(--font-body);
	line-height: 1.6;
	color: var(--text-dark);
	background-color: var(--dark);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-heading);
	font-weight: 600;
	line-height: 1.2;
	margin-bottom: 1rem;
}

h1 {
	font-size: 2.5rem;
}
h2 {
	font-size: 2rem;
}
h3 {
	font-size: 1.75rem;
}
h4 {
	font-size: 1.5rem;
}
h5 {
	font-size: 1.25rem;
}
h6 {
	font-size: 1rem;
}

p {
	margin-bottom: 1rem;
	color: var(--text-light);
}

a {
	text-decoration: none;
	color: var(--accent-color);
	transition: color 0.3s ease;
}

a:hover {
	color: #b91c1c;
}

/* ===== UTILITY CLASSES ===== */
.section-bg {
	background-color: var(--bg-light);
	color: var(--text-dark);
}

.section-header h2 {
	display: inline-block;
	color: var(--text-dark);
	padding-bottom: 0.4rem;
	margin-bottom: 2rem;
}
.section-header p {
	color: var(--text-light);
}

.btn-accent {
	background-color: var(--accent-color);
	border-color: var(--accent-color);
	color: #ffffff;
	font-family: var(--font-heading);
	font-weight: 600;
	padding: 0.75rem 2rem;
	border-radius: 4px;
	transition: all 0.3s ease;
}

.btn-accent:hover {
	background-color: #b91c1c;
	border-color: #b91c1c;
	color: #ffffff;
	transform: translateY(-2px);
}

.btn-outline-light {
	background-color: transparent;
	border: 2px solid var(--text-dark);
	color: var(--text-dark);
	font-family: var(--font-heading);
	font-weight: 600;
	padding: 0.75rem 2rem;
	border-radius: 4px;
	transition: all 0.3s ease;
}

.btn-outline-light:hover {
	background-color: var(--accent-color);
	border-color: var(--accent-color);
	color: #ffffff;
	transform: translateY(-2px);
}

/* ===== TABLE STYLES ===== */
.table {
	color: var(--text-light);
	background-color: transparent;
}

.table thead th {
	background-color: rgba(30, 64, 175, 0.3);
	color: var(--text-dark);
	border-bottom: 2px solid var(--accent-color);
	font-weight: 600;
}

.table tbody tr {
	border-bottom: 1px solid rgba(203, 213, 225, 0.2);
}

.table tbody tr:hover {
	background-color: rgba(206, 43, 55, 0.2);
}

.table td,
.table th {
	padding: 1rem;
	vertical-align: middle;
}

/* ===== BADGE STYLES ===== */
.badge {
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
	font-weight: 600;
	border-radius: 4px;
}

.bg-accent {
	background-color: var(--accent-color) !important;
	color: #ffffff !important;
}

/* ===== COOKIE BANNER ===== */
.cookie-banner {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: #2d1b1b;
	color: var(--text-dark);
	padding: 1rem 0;
	z-index: 1050;
	display: none;
	border-top: 1px solid #ce2b37;
}

.cookie-banner.show {
	display: block;
}

.cookie-banner p {
	color: var(--text-dark);
	margin-bottom: 0;
}

.cookie-banner a {
	color: var(--accent-color);
}

/* ===== HEADER ===== */
header {
	background: rgba(26, 15, 15, 0.95);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
	z-index: 1040;
}

/* Glassy navbar */
.navbar-glass {
	background: rgba(26, 15, 15, 0.9);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border-bottom: 1px solid #009246;
}

/* Underline hover */
.nav-link-underline {
	position: relative;
}
.nav-link-underline::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -6px;
	width: 0;
	height: 2px;
	background: var(--accent-color);
	transition: width 0.25s ease;
}
.nav-link-underline:hover::after {
	width: 100%;
}

.navbar-brand {
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--accent-color) !important;
}

.navbar-nav .nav-link {
	font-family: var(--font-heading);
	color: rgba(241, 245, 249, 0.9) !important;
	font-weight: 600;
	margin: 0 0.5rem;
	transition: color 0.3s ease;
}

.navbar-nav .nav-link:hover {
	color: var(--accent-color) !important;
}

.navbar-toggler {
	border-color: var(--accent-color);
}

.navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%20220,38,38,1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ===== HERO SECTION ===== */
.hero-section {
	position: relative;
	height: 84vh;
	display: flex;
	align-items: center;
	overflow: hidden;
}

.hero-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
}

.hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(
		135deg,
		rgba(26, 15, 15, 0.85),
		rgba(206, 43, 55, 0.15)
	);
	z-index: -1;
	display: flex;
	align-items: center;
}

.hero-title {
	font-size: 3rem;
	color: var(--text-dark);
	margin-bottom: 1.5rem;
}

.hero-subtitle {
	font-size: 1.2rem;
	color: var(--text-light);
	margin-bottom: 2rem;
	line-height: 1.8;
}

/* Hero side card */
.hero-card {
	background: linear-gradient(
		180deg,
		rgba(45, 27, 27, 0.95),
		rgba(45, 27, 27, 0.85)
	);
	border: 1px solid #009246;
	box-shadow: 0 12px 30px rgba(0, 146, 70, 0.2);
	color: var(--text-light);
}
.hero-card h5 {
	color: var(--text-dark);
}
.hero-title {
	color: var(--text-dark);
}
.hero-subtitle {
	color: var(--text-light);
}
.hero-list {
	list-style: none;
	padding-left: 0;
}
.hero-list li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: 0.5rem;
}
.hero-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.6rem;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--accent-color);
	box-shadow: 0 0 0 3px rgba(0, 146, 70, 0.3);
}

/* ===== BENEFITS SECTION ===== */
.benefit-item {
	padding: 1.5rem;
	background: #2d1b1b;
	border-radius: 8px;
	border: 1px solid #334155;
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.3);
	transition: transform 0.3s ease;
}

.benefit-item:hover {
	transform: translateY(-5px);
	box-shadow: 0 12px 30px rgba(220, 38, 38, 0.3);
	border-color: var(--accent-color);
}

.benefit-icon {
	color: var(--accent-color);
	font-size: 2.5rem !important;
	margin-right: 1rem;
	margin-top: 0.25rem;
}

.benefit-item h5 {
	color: var(--accent-color);
	margin-bottom: 0.5rem;
}

/* ===== STATISTICS SECTION ===== */
.stat-card {
	background: #2d1b1b;
	padding: 2rem 1rem;
	border-radius: 8px;
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.3);
	transition: transform 0.3s ease;
	border: 1px solid #334155;
}

.stat-card:hover {
	transform: translateY(-5px);
	border-color: var(--accent-color);
	box-shadow: 0 12px 30px rgba(220, 38, 38, 0.3);
}

.stat-number {
	font-size: 3rem;
	font-weight: 700;
	color: var(--accent-color);
	font-family: var(--font-heading);
	margin-bottom: 0.5rem;
}
.stat-card {
	background: #2d1b1b;
	color: var(--text-dark);
}

.stat-text {
	color: var(--text-light);
	font-size: 0.95rem;
}

/* ===== PRICING SECTION ===== */
.pricing-section {
	position: relative;
	overflow: hidden;
}

.pricing-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
	opacity: 0.1;
}

.pricing-card {
	background: #2d1b1b;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
	transition: transform 0.3s ease;
	height: 100%;
}

.pricing-card:hover {
	transform: translateY(-10px);
}

.pricing-card.featured {
	border: 3px solid var(--accent-color);
	transform: scale(1.05);
	box-shadow: 0 20px 40px rgba(220, 38, 38, 0.3);
}

.pricing-card.featured:hover {
	transform: scale(1.05) translateY(-10px);
}

.pricing-header {
	background: linear-gradient(135deg, var(--accent-color), #007a3d);
	color: #ffffff;
	padding: 2rem 1.5rem 1.5rem;
	text-align: center;
}

.pricing-card.featured .pricing-header {
	background: linear-gradient(135deg, var(--accent-color), #006633);
}

.pricing-header h4 {
	margin-bottom: 1rem;
	font-size: 1.5rem;
}

.price {
	font-size: 2.5rem;
	font-weight: 700;
	font-family: var(--font-heading);
}

.pricing-body {
	padding: 2rem 1.5rem;
	color: var(--text-dark);
}

/* ===== ARTICLES SECTION ===== */
.article-content {
	padding-right: 2rem;
}

.article-content h4 {
	color: var(--accent-color);
	margin-bottom: 1.5rem;
}

/* ===== CONTACT FORM ===== */
.contact-form {
	background: #2d1b1b;
	padding: 2rem;
	border-radius: 8px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
	border: 1px solid #334155;
}

.form-label {
	font-family: var(--font-heading);
	font-weight: 500;
	color: var(--text-dark);
	margin-bottom: 0.5rem;
}
.form-check-label {
	color: var(--text-light);
}

.form-control {
	border: 2px solid #334155;
	border-radius: 4px;
	padding: 0.75rem;
	font-family: var(--font-body);
	transition: border-color 0.3s ease;
	background-color: #1a0f0f;
	color: var(--text-dark);
}

.form-control:focus {
	border-color: var(--accent-color);
	box-shadow: 0 0 0 0.2rem rgba(0, 146, 70, 0.25);
}

/* ===== CONTACT SECTION ===== */
.contact-info {
	background: #2d1b1b;
	padding: 1.5rem;
	border-radius: 8px;
	display: inline-block;
	border: 1px solid #009246;
}

.contact-email {
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--accent-color);
}

/* ===== FOOTER ===== */
footer {
	background: #0f172a !important;
}

/* Footer */
.site-footer a {
	color: var(--text-light);
}
.site-footer a:hover {
	color: var(--accent-color);
}
.site-footer p {
	color: var(--text-light);
}
.site-footer h5,
.site-footer h6 {
	color: var(--text-dark);
}
.newsletter-input {
	background: #2d1b1b;
	border-color: #334155;
	color: var(--text-dark);
}
.social-link {
	color: var(--text-light);
}
.social-link:hover {
	color: var(--accent-color);
}

/* Checklist in contact side panel */
.checklist {
	list-style: none;
	padding-left: 0;
}
.checklist li {
	display: flex;
	align-items: center;
	margin-bottom: 0.5rem;
}
.form-note {
	color: var(--text-light);
}

/* ===== LEGAL PAGES ===== */
.legal-main {
	margin-top: 80px;
}

.legal-section {
	padding: 50px 0;
}

.legal-section h2 {
	margin-bottom: 1.25rem;
}

.legal-section p,
.legal-section li {
	color: var(--text-light);
}

.legal-section ul {
	padding-left: 1.25rem;
}

footer h5,
footer h6 {
	color: var(--white);
	margin-bottom: 1rem;
}

footer a {
	color: rgba(255, 255, 255, 0.8);
	transition: color 0.3s ease;
}

footer a:hover {
	color: var(--accent-color);
}

footer ul li {
	margin-bottom: 0.25rem;
}

/* ===== RESPONSIVE DESIGN ===== */
@media (max-width: 992px) {
	.hero-title {
		font-size: 2.2rem;
	}

	.hero-subtitle {
		font-size: 1.1rem;
	}

	.article-content {
		padding-right: 0;
		margin-bottom: 2rem;
	}

	.pricing-card.featured {
		transform: none;
		margin-bottom: 2rem;
	}
}

@media (max-width: 768px) {
	h1 {
		font-size: 2rem;
	}
	h2 {
		font-size: 1.75rem;
	}
	h3 {
		font-size: 1.5rem;
	}

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

	.hero-subtitle {
		font-size: 1rem;
	}

	.section-header h2 {
		font-size: 1.5rem;
		padding: 0.5rem 1.5rem;
	}

	.benefit-item {
		text-align: center;
		margin-bottom: 1.5rem;
	}

	.benefit-icon {
		display: block;
		margin: 0 auto 1rem;
	}

	.stat-number {
		font-size: 2.5rem;
	}

	.contact-form {
		padding: 1.5rem;
	}
}

@media (max-width: 576px) {
	.hero-section {
		height: 80vh;
	}

	.hero-title {
		font-size: 1.6rem;
	}

	.hero-subtitle {
		font-size: 0.95rem;
	}

	.cookie-banner .row {
		text-align: center;
	}

	.cookie-banner .col-md-3 {
		margin-top: 1rem;
	}
}

/* ===== CUSTOM ACCORDION STYLING ===== */
.custom-accordion {
	border-radius: 12px;
	overflow: hidden;
}

.custom-accordion-item {
	background: #2d1b1b;
	border: 1px solid #334155;
	border-radius: 8px !important;
	margin-bottom: 1rem;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
	transition: all 0.3s ease;
}

.custom-accordion-item:hover {
	box-shadow: 0 8px 20px rgba(220, 38, 38, 0.2);
	transform: translateY(-2px);
	border-color: var(--accent-color);
}

.custom-accordion-button {
	background: linear-gradient(135deg, #2d1b1b, #1a0f0f);
	border: none;
	padding: 1.5rem 2rem;
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--text-dark);
	text-align: left;
	border-radius: 8px !important;
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
}

.custom-accordion-button:not(.collapsed) {
	background: linear-gradient(135deg, var(--accent-color), #007a3d);
	color: #ffffff;
	box-shadow: 0 4px 15px rgba(0, 146, 70, 0.4);
}

.custom-accordion-button:not(.collapsed) .material-icons-outlined {
	color: #ffffff;
}

.custom-accordion-button:hover {
	background: linear-gradient(135deg, #334155, #1e293b);
	color: var(--accent-color);
}

.custom-accordion-button:hover .material-icons-outlined {
	color: var(--accent-color);
}

.custom-accordion-button:not(.collapsed):hover {
	background: linear-gradient(135deg, #006633, var(--accent-color));
	color: #ffffff;
}

.custom-accordion-button:not(.collapsed):hover .material-icons-outlined {
	color: #ffffff;
}

.custom-accordion-button::after {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23dc2626'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
	transition: transform 0.3s ease;
	width: 1.5rem;
	height: 1.5rem;
}

.custom-accordion-button:not(.collapsed)::after {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
	transform: rotate(180deg);
}

.custom-accordion-button:focus {
	box-shadow: 0 0 0 0.2rem rgba(0, 146, 70, 0.3);
	border-color: transparent;
}

.custom-accordion-body {
	background: #1a0f0f;
	padding: 2rem;
	border-top: 1px solid #334155;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--text-light);
}

.custom-accordion-body p {
	margin-bottom: 1rem;
}

.custom-accordion-body p:last-child {
	margin-bottom: 0;
}

.custom-accordion-body p:first-child {
	font-weight: 500;
	color: var(--text-dark);
}
.custom-accordion-body p {
	color: var(--text-light);
}

/* Material Icons styling */
.custom-accordion-button .material-icons-outlined {
	font-size: 1.5rem;
	color: var(--accent-color);
	transition: color 0.3s ease;
}

/* ===== SCROLL PADDING FOR FIXED HEADER ===== */
section {
	scroll-margin-top: 80px;
}

/* ===== DARK ACCENT SECTIONS ===== */
.with-dark-accent {
	position: relative;
}

.with-dark-accent::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(206, 43, 55, 0.06),
		rgba(206, 43, 55, 0)
	);
	pointer-events: none;
}

/* Hover accents for cards/images */
.benefit-item img {
	transition:
		transform 0.3s ease,
		filter 0.3s ease;
}

.benefit-item:hover img {
	transform: scale(1.015);
	filter: saturate(1.05);
}

/* Accordion dark accent */
.accordion-button {
	font-family: var(--font-heading);
}

.accordion-button:not(.collapsed) {
	color: var(--white);
	background: linear-gradient(90deg, var(--accent-color), #b91c1c);
	box-shadow: none;
}

.accordion-item {
	border: 0;
}

.accordion-button:focus {
	box-shadow: 0 0 0 0.15rem rgba(220, 38, 38, 0.3);
}
