/* === Base & Smoothing === */
body {
	font-family: 'Inter', system-ui, -apple-system, sans-serif;
	color: #0F172A;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

html {
	scroll-behavior: smooth;
}

/* === Accordion === */
.accordion-content {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.accordion-content.open {
	grid-template-rows: 1fr;
}

.accordion-inner {
	overflow: hidden;
}

.accordion-icon {
	transition: transform 0.3s ease;
}

[aria-expanded="true"] .accordion-icon {
	transform: rotate(180deg);
}

.nav-link.active {
	color: #1A56DB;
	font-weight: 600;
}

/* === Form Errors === */
.error-msg {
	display: none;
}

.error-msg.visible {
	display: block;
}

input.error,
select.error,
textarea.error {
	border-color: #EF4444;
}

input.error:focus,
select.error:focus,
textarea.error:focus {
	border-color: #EF4444;
	--tw-ring-color: rgba(239, 68, 68, 0.2);
}

/* === Scroll Reveal Animations === */
.reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1), transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.reveal.visible {
	opacity: 1;
	transform: translateY(0);
}

.stagger-children > .reveal-child {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.stagger-children.visible > .reveal-child:nth-child(1) {
	transition-delay: 0.08s;
}

.stagger-children.visible > .reveal-child:nth-child(2) {
	transition-delay: 0.16s;
}

.stagger-children.visible > .reveal-child:nth-child(3) {
	transition-delay: 0.24s;
}

.stagger-children.visible > .reveal-child:nth-child(4) {
	transition-delay: 0.32s;
}

.stagger-children.visible > .reveal-child:nth-child(5) {
	transition-delay: 0.40s;
}

.stagger-children.visible > .reveal-child:nth-child(6) {
	transition-delay: 0.48s;
}

.stagger-children.visible > .reveal-child:nth-child(7) {
	transition-delay: 0.56s;
}

.stagger-children.visible > .reveal-child:nth-child(8) {
	transition-delay: 0.64s;
}

.stagger-children.visible > .reveal-child {
	opacity: 1;
	transform: translateY(0);
}

/* === Enhanced Accordion Items === */
.accordion-btn[aria-expanded="true"] {
	background-color: #F8FAFC;
}

.accordion-item {
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.accordion-item:hover {
	border-color: #BFDBFE;
}

.accordion-item:has(.accordion-btn[aria-expanded="true"]) {
	border-color: #93C5FD;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.04), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
}

/* === Servizi: nascondi testo espanso prima dell'apertura === */
#servizi .accordion-inner {
	min-height: 0;
}

#servizi .accordion-content {
	visibility: hidden;
	transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0.4s;
}

#servizi .accordion-content.open {
	visibility: visible;
	transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0s;
}

/* === FAQ: nascondi testo espanso prima dell'apertura === */
#faq .accordion-inner {
	min-height: 0;
}

#faq .accordion-content {
	visibility: hidden;
	transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0.4s;
}

#faq .accordion-content.open {
	visibility: visible;
	transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0s;
}
