:root {
--color-primary: #5A2158;
--color-secondary: #E13856;
--color-tertiary: #932626;
--color-quaternary: #562121;
--color-accent: #00D9A3;
--color-white: #ffffff;
--color-gray-light: #f8f9fa;
--color-gray: #6c757d;
--color-dark: #212529;
--font-primary: 'Space Grotesk', sans-serif;
--transition: all 0.3s ease;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
font-family: var(--font-primary);
font-size: 1.125rem;
line-height: 1.7;
color: var(--color-dark);
background: var(--color-white);
overflow-x: hidden;
}

.navbar-fixed {
position: fixed;
top: 0;
width: 100%;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(16px);
border-bottom: 1px solid rgba(90, 33, 88, 0.1);
z-index: 1000;
padding: 1rem 0;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
transition: var(--transition);
}

.navbar-brand img {
transition: var(--transition);
}

.nav-menu {
display: flex;
list-style: none;
gap: 2rem;
align-items: center;
margin: 0;
padding: 0;
}

.nav-menu li a {
color: var(--color-dark);
text-decoration: none;
font-weight: 500;
font-size: 1rem;
transition: var(--transition);
position: relative;
}

.nav-menu li a::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 2px;
background: var(--color-accent);
transition: var(--transition);
}

.nav-menu li a:hover {
color: var(--color-primary);
}

.nav-menu li a:hover::after {
width: 100%;
}

.btn-primary {
padding: 0.75rem 1.75rem;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
color: var(--color-white);
text-decoration: none;
border-radius: 8px;
font-weight: 600;
transition: var(--transition);
display: inline-block;
border: none;
cursor: pointer;
font-size: 1rem;
}

.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 217, 163, 0.3);
color: var(--color-white);
}

.mobile-toggle {
display: none;
flex-direction: column;
gap: 4px;
background: none;
border: none;
cursor: pointer;
padding: 0.5rem;
}

.mobile-toggle span {
width: 24px;
height: 2px;
background: var(--color-dark);
transition: var(--transition);
}

.hero-terminal {
min-height: 100vh;
display: flex;
align-items: center;
padding: 11rem 0 6rem;
background: linear-gradient(135deg, rgba(90, 33, 88, 0.04) 0%, rgba(225, 56, 86, 0.06) 100%);
}

.terminal-content {
padding: 2rem 0;
}

.hero-title {
font-size: 3.5rem;
font-weight: 700;
line-height: 1.2;
margin-bottom: 1.5rem;
color: var(--color-primary);
}

.hero-subtitle {
font-size: 1.5rem;
line-height: 1.6;
color: var(--color-gray);
margin-bottom: 2.5rem;
}

.terminal-lines {
background: rgba(90, 33, 88, 0.04);
border-left: 3px solid var(--color-accent);
padding: 1.5rem 2rem;
margin-bottom: 2.5rem;
font-family: 'Courier New', monospace;
}

.terminal-line {
display: flex;
gap: 1rem;
margin-bottom: 0.75rem;
font-size: 1.125rem;
}

.terminal-line:last-child {
margin-bottom: 0;
}

.prompt {
color: var(--color-accent);
font-weight: 700;
}

.command {
color: var(--color-secondary);
font-weight: 600;
}

.hero-actions {
display: flex;
gap: 1rem;
margin-bottom: 2rem;
flex-wrap: wrap;
}

.btn-hero-primary {
padding: 1rem 2.5rem;
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
color: var(--color-white);
text-decoration: none;
border-radius: 10px;
font-weight: 600;
font-size: 1.125rem;
transition: var(--transition);
display: inline-block;
}

.btn-hero-primary:hover {
transform: translateY(-3px);
box-shadow: 0 10px 30px rgba(90, 33, 88, 0.3);
color: var(--color-white);
}

.btn-hero-secondary {
padding: 1rem 2.5rem;
background: transparent;
color: var(--color-primary);
text-decoration: none;
border: 2px solid var(--color-primary);
border-radius: 10px;
font-weight: 600;
font-size: 1.125rem;
transition: var(--transition);
display: inline-block;
}

.btn-hero-secondary:hover {
background: var(--color-primary);
color: var(--color-white);
}

.hero-metrics {
display: flex;
gap: 1.5rem;
align-items: center;
color: var(--color-gray);
font-size: 0.95rem;
font-weight: 500;
}

.separator {
width: 4px;
height: 4px;
background: var(--color-accent);
border-radius: 50%;
}

.hero-terminal__visual img {
width: 100%;
border-radius: 20px;
box-shadow: 0 20px 60px rgba(90, 33, 88, 0.2);
}

.section-output {
padding: 6rem 0;
background: var(--color-white);
}

.section-title {
font-size: 2.5rem;
font-weight: 700;
line-height: 1.3;
margin-bottom: 2rem;
color: var(--color-primary);
}

.output-list {
list-style: none;
margin: 2rem 0;
}

.output-list li {
display: flex;
align-items: center;
gap: 1rem;
padding: 1rem 0;
border-bottom: 1px solid rgba(90, 33, 88, 0.1);
}

.output-list li i {
color: var(--color-accent);
font-size: 1.5rem;
}

.output-example {
margin-top: 2rem;
padding: 1.5rem;
background: rgba(0, 217, 163, 0.05);
border-left: 3px solid var(--color-accent);
}

.example-label {
font-weight: 700;
color: var(--color-primary);
margin-bottom: 0.5rem;
}

.section-metodo {
padding: 6rem 0;
background: linear-gradient(135deg, rgba(90, 33, 88, 0.02) 0%, rgba(225, 56, 86, 0.04) 100%);
}

.section-title-center {
font-size: 3rem;
font-weight: 700;
text-align: center;
margin-bottom: 1rem;
color: var(--color-primary);
}

.section-subtitle-center {
font-size: 1.25rem;
text-align: center;
color: var(--color-gray);
margin-bottom: 4rem;
}

.metodo-timeline {
display: flex;
justify-content: space-between;
gap: 2rem;
position: relative;
flex-wrap: wrap;
}

.metodo-timeline::before {
content: '';
position: absolute;
top: 30px;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-secondary) 100%);
z-index: 0;
}

.metodo-step {
flex: 1;
min-width: 180px;
position: relative;
z-index: 1;
}

.step-marker {
width: 60px;
height: 60px;
background: var(--color-white);
border: 3px solid var(--color-accent);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 1.25rem;
color: var(--color-primary);
margin: 0 auto 1.5rem;
}

.metodo-step h3 {
font-size: 1.25rem;
font-weight: 700;
margin-bottom: 0.75rem;
color: var(--color-primary);
}

.metodo-step p {
font-size: 0.95rem;
color: var(--color-gray);
margin-bottom: 1rem;
}

.step-tool {
display: inline-block;
padding: 0.35rem 0.85rem;
background: rgba(0, 217, 163, 0.1);
color: var(--color-accent);
border-radius: 20px;
font-size: 0.85rem;
font-weight: 600;
}

.section-progetti {
padding: 6rem 0;
background: var(--color-white);
}

.progetti-list {
list-style: none;
margin: 2rem 0;
}

.progetti-list li {
padding: 1rem 0 1rem 2rem;
position: relative;
font-size: 1.125rem;
color: var(--color-dark);
}

.progetti-list li::before {
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 6px;
height: 6px;
background: var(--color-accent);
border-radius: 50%;
}

.progetti-note {
margin-top: 2rem;
padding: 1.5rem;
background: rgba(90, 33, 88, 0.04);
border-left: 3px solid var(--color-primary);
font-weight: 600;
color: var(--color-primary);
}

.section-review {
padding: 6rem 0;
background: rgba(0, 217, 163, 0.02);
}

.review-blocks {
margin-top: 2rem;
}

.review-block {
display: flex;
gap: 1.5rem;
margin-bottom: 2rem;
}

.review-icon {
width: 60px;
height: 60px;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.review-icon i {
font-size: 1.75rem;
color: var(--color-white);
}

.review-content h3 {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 0.5rem;
color: var(--color-primary);
}

.review-content p {
color: var(--color-gray);
}

.section-percorsi {
padding: 6rem 0;
background: var(--color-white);
}

.percorsi-wrapper {
display: flex;
flex-direction: column;
gap: 2rem;
}

.percorso-panel {
padding: 2.5rem;
background: var(--color-white);
border: 2px solid rgba(90, 33, 88, 0.1);
border-radius: 16px;
transition: var(--transition);
position: relative;
}

.percorso-panel:hover {
border-color: var(--color-accent);
transform: translateY(-4px);
box-shadow: 0 12px 40px rgba(90, 33, 88, 0.1);
}

.percorso-number {
position: absolute;
top: -20px;
left: 2.5rem;
width: 50px;
height: 50px;
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
color: var(--color-white);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 1.25rem;
}

.percorso-panel h3 {
font-size: 2rem;
font-weight: 700;
margin-bottom: 0.5rem;
color: var(--color-primary);
}

.percorso-level {
color: var(--color-accent);
font-weight: 600;
font-size: 0.95rem;
margin-bottom: 1rem;
}

.percorso-desc {
margin-bottom: 1rem;
color: var(--color-gray);
}

.percorso-project {
margin-bottom: 1.5rem;
font-weight: 600;
color: var(--color-primary);
}

.percorso-tags {
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
}

.percorso-tags span {
padding: 0.5rem 1rem;
background: rgba(0, 217, 163, 0.1);
color: var(--color-accent);
border-radius: 20px;
font-size: 0.9rem;
font-weight: 600;
}

.section-roadmap {
padding: 6rem 0;
background: linear-gradient(135deg, rgba(90, 33, 88, 0.02) 0%, rgba(225, 56, 86, 0.04) 100%);
}

.roadmap-board {
display: grid;
gap: 2rem;
margin-top: 2rem;
}

.roadmap-column {
background: var(--color-white);
padding: 2rem;
border-radius: 12px;
border: 2px solid rgba(90, 33, 88, 0.1);
}

.roadmap-column h4 {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 1.5rem;
color: var(--color-primary);
}

.roadmap-column ul {
list-style: none;
}

.roadmap-column ul li {
padding: 0.75rem 0;
border-bottom: 1px solid rgba(90, 33, 88, 0.05);
color: var(--color-gray);
}

.roadmap-column ul li:last-child {
border-bottom: none;
}

.section-faq {
padding: 6rem 0;
background: var(--color-white);
}

.faq-wrapper {
max-width: 900px;
margin: 0 auto;
}

.faq-item {
margin-bottom: 1rem;
border: 1px solid rgba(90, 33, 88, 0.1);
border-radius: 8px;
overflow: hidden;
}

.faq-question {
padding: 1.5rem;
background: var(--color-white);
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 600;
color: var(--color-primary);
transition: var(--transition);
}

.faq-question:hover {
background: rgba(90, 33, 88, 0.02);
}

.faq-question i {
color: var(--color-accent);
transition: var(--transition);
}

.faq-answer {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
}

.faq-answer.active {
max-height: 500px;
}

.faq-answer p {
padding: 1.5rem;
background: rgba(90, 33, 88, 0.02);
margin: 0;
color: var(--color-gray);
}

.section-orientamento {
padding: 6rem 0;
background: linear-gradient(135deg, rgba(0, 217, 163, 0.05) 0%, rgba(90, 33, 88, 0.05) 100%);
}

.orientamento-subtitle {
font-size: 1.25rem;
color: var(--color-gray);
margin-bottom: 3rem;
}

.contact-info {
margin-top: 2rem;
}

.contact-item {
display: flex;
align-items: start;
gap: 1.25rem;
margin-bottom: 2rem;
}

.contact-item i {
width: 50px;
height: 50px;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
color: var(--color-white);
font-size: 1.25rem;
flex-shrink: 0;
}

.contact-item strong {
display: block;
font-size: 1rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 0.25rem;
}

.contact-item a,
.contact-item span {
display: block;
color: var(--color-gray);
text-decoration: none;
transition: var(--transition);
}

.contact-item a:hover {
color: var(--color-accent);
}

.form-card {
background: var(--color-white);
padding: 2.5rem;
border-radius: 16px;
box-shadow: 0 20px 60px rgba(90, 33, 88, 0.1);
}

.form-group {
margin-bottom: 1.5rem;
}

.form-group label {
display: block;
font-weight: 600;
color: var(--color-primary);
margin-bottom: 0.5rem;
}

.form-control {
width: 100%;
padding: 0.875rem 1.25rem;
border: 2px solid rgba(90, 33, 88, 0.1);
border-radius: 8px;
font-family: var(--font-primary);
font-size: 1rem;
transition: var(--transition);
}

.form-control:focus {
outline: none;
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(0, 217, 163, 0.1);
}

.error-message {
display: block;
color: var(--color-secondary);
font-size: 0.875rem;
margin-top: 0.5rem;
}

.btn-submit {
width: 100%;
padding: 1rem 2rem;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
color: var(--color-white);
border: none;
border-radius: 10px;
font-weight: 700;
font-size: 1.125rem;
cursor: pointer;
transition: var(--transition);
}

.btn-submit:hover {
transform: translateY(-2px);
box-shadow: 0 10px 30px rgba(0, 217, 163, 0.3);
}

.footer {
background: var(--color-dark);
color: var(--color-white);
padding: 4rem 0 2rem;
}

.footer-content {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
gap: 3rem;
margin-bottom: 2rem;
}

.footer-brand img {
margin-bottom: 1rem;
    filter: brightness(0) invert(1);
}

.footer-brand p {
color: rgba(255, 255, 255, 0.7);
font-size: 0.95rem;
}

.footer-nav h4,
.footer-legal h4 {
font-size: 1.125rem;
font-weight: 700;
margin-bottom: 1rem;
color: var(--color-white);
}

.footer-nav ul,
.footer-legal ul {
list-style: none;
}

.footer-nav ul li,
.footer-legal ul li {
margin-bottom: 0.75rem;
}

.footer-nav ul li a,
.footer-legal ul li a {
color: rgba(255, 255, 255, 0.7);
text-decoration: none;
transition: var(--transition);
}

.footer-nav ul li a:hover,
.footer-legal ul li a:hover {
color: var(--color-accent);
}

.footer-bottom {
text-align: center;
padding-top: 2rem;
border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-bottom p {
color: rgba(255, 255, 255, 0.6);
font-size: 0.9rem;
}

.cookie-banner {
position: fixed;
bottom: 30px;
right: 30px;
max-width: 450px;
background: var(--color-white);
border-radius: 16px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
z-index: 9999;
display: none;
opacity: 0;
transform: translateY(20px);
transition: all 0.3s ease;
}

.cookie-banner.show {
opacity: 1;
transform: translateY(0);
}

.cookie-banner.hide {
opacity: 0;
transform: translateY(20px);
}

.cookie-content {
padding: 2rem;
}

.cookie-icon {
width: 50px;
height: 50px;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 1rem;
}

.cookie-icon i {
font-size: 1.5rem;
color: var(--color-white);
}

.cookie-text h3 {
font-size: 1.25rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 0.75rem;
}

.cookie-text p {
color: var(--color-gray);
font-size: 0.95rem;
margin-bottom: 1.5rem;
}

.cookie-actions {
display: flex;
gap: 1rem;
flex-wrap: wrap;
align-items: center;
}

.btn-cookie-accept {
padding: 0.75rem 1.5rem;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
color: var(--color-white);
border: none;
border-radius: 8px;
font-weight: 600;
cursor: pointer;
transition: var(--transition);
}

.btn-cookie-accept:hover {
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(0, 217, 163, 0.3);
}

.btn-cookie-decline {
padding: 0.75rem 1.5rem;
background: transparent;
color: var(--color-primary);
border: 2px solid var(--color-primary);
border-radius: 8px;
font-weight: 600;
cursor: pointer;
transition: var(--transition);
}

.btn-cookie-decline:hover {
background: var(--color-primary);
color: var(--color-white);
}

.cookie-link {
color: var(--color-gray);
text-decoration: underline;
font-size: 0.9rem;
}

.hero-about {
padding: 11rem 0 4rem;
background: linear-gradient(135deg, rgba(90, 33, 88, 0.04) 0%, rgba(225, 56, 86, 0.06) 100%);
}

.manifesto h1 {
font-size: 3rem;
font-weight: 700;
line-height: 1.3;
margin-bottom: 2rem;
color: var(--color-primary);
}

.manifesto-lines p {
font-size: 1.5rem;
padding: 0.5rem 0 0.5rem 2rem;
border-left: 3px solid var(--color-accent);
margin-bottom: 1rem;
color: var(--color-gray);
}

.section-teaching {
padding: 6rem 0;
background: var(--color-white);
}

.tabs-wrapper {
max-width: 1000px;
margin: 0 auto;
}

.tabs-nav {
display: flex;
gap: 1rem;
margin-bottom: 2rem;
border-bottom: 2px solid rgba(90, 33, 88, 0.1);
justify-content: center;
}

.tab-btn {
padding: 1rem 2rem;
background: none;
border: none;
font-family: var(--font-primary);
font-size: 1.125rem;
font-weight: 600;
color: var(--color-gray);
cursor: pointer;
transition: var(--transition);
border-bottom: 3px solid transparent;
margin-bottom: -2px;
}

.tab-btn.active {
color: var(--color-primary);
border-bottom-color: var(--color-accent);
}

.tab-btn:hover {
color: var(--color-primary);
}

.tab-pane {
display: none;
}

.tab-pane.active {
display: block;
animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}

.tab-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 2rem;
}

.tab-grid div h3 {
font-size: 1.25rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 0.75rem;
}

.tab-grid div p {
color: var(--color-gray);
}

.section-quality {
padding: 6rem 0;
background: rgba(0, 217, 163, 0.02);
}

.quality-checklist {
display: flex;
justify-content: center;
gap: 3rem;
flex-wrap: wrap;
margin-top: 3rem;
}

.checklist-item {
display: flex;
align-items: center;
gap: 0.75rem;
font-size: 1.125rem;
font-weight: 600;
color: var(--color-primary);
}

.checklist-item i {
color: var(--color-accent);
font-size: 1.5rem;
}

.section-team {
padding: 6rem 0;
background: var(--color-white);
}

.team-roles {
margin-top: 2rem;
}

.role-item {
margin-bottom: 2rem;
padding-bottom: 2rem;
border-bottom: 1px solid rgba(90, 33, 88, 0.1);
}

.role-item:last-child {
border-bottom: none;
}

.role-item h4 {
font-size: 1.5rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 0.5rem;
}

.role-item p {
color: var(--color-gray);
}

.section-cta-about {
padding: 6rem 0;
background: linear-gradient(135deg, rgba(90, 33, 88, 0.04) 0%, rgba(225, 56, 86, 0.06) 100%);
}

.cta-box {
text-align: center;
padding: 3rem;
background: var(--color-white);
border-radius: 16px;
max-width: 700px;
margin: 0 auto;
box-shadow: 0 20px 60px rgba(90, 33, 88, 0.1);
}

.cta-box h2 {
font-size: 2.5rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 1rem;
}

.cta-box p {
font-size: 1.125rem;
color: var(--color-gray);
margin-bottom: 2rem;
}

.btn-cta {
padding: 1rem 3rem;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
color: var(--color-white);
text-decoration: none;
border-radius: 10px;
font-weight: 700;
font-size: 1.125rem;
display: inline-block;
transition: var(--transition);
}

.btn-cta:hover {
transform: translateY(-3px);
box-shadow: 0 10px 30px rgba(0, 217, 163, 0.3);
color: var(--color-white);
}

.hero-contact {
padding: 11rem 0 4rem;
background: linear-gradient(135deg, rgba(90, 33, 88, 0.04) 0%, rgba(225, 56, 86, 0.06) 100%);
text-align: center;
}

.hero-contact h1 {
font-size: 3rem;
font-weight: 700;
margin-bottom: 1rem;
color: var(--color-primary);
}

.hero-contact p {
font-size: 1.25rem;
color: var(--color-gray);
}

.section-contact-main {
padding: 6rem 0;
background: var(--color-white);
}

.contact-info-box {
background: rgba(0, 217, 163, 0.02);
padding: 2.5rem;
border-radius: 16px;
border: 2px solid rgba(0, 217, 163, 0.1);
}

.contact-info-box h2 {
font-size: 1.75rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 2rem;
}

.contact-item-large {
display: flex;
gap: 1.25rem;
margin-bottom: 2rem;
padding-bottom: 2rem;
border-bottom: 1px solid rgba(90, 33, 88, 0.1);
}

.contact-item-large:last-child {
border-bottom: none;
margin-bottom: 0;
padding-bottom: 0;
}

.contact-item-large i {
width: 50px;
height: 50px;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
color: var(--color-white);
font-size: 1.25rem;
flex-shrink: 0;
}

.contact-item-large strong {
display: block;
font-size: 1rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 0.5rem;
}

.contact-item-large a,
.contact-item-large span {
display: block;
color: var(--color-gray);
text-decoration: none;
transition: var(--transition);
margin-top: 0.25rem;
}

.contact-item-large a:hover {
color: var(--color-accent);
}

.form-card h3 {
font-size: 1.75rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 0.75rem;
}

.form-card p {
color: var(--color-gray);
margin-bottom: 2rem;
}

.section-contact-faq {
padding: 6rem 0;
background: rgba(0, 217, 163, 0.02);
}

.section-contact-faq h2 {
font-size: 2.5rem;
font-weight: 700;
text-align: center;
color: var(--color-primary);
margin-bottom: 3rem;
}

.faq-card {
background: var(--color-white);
padding: 2rem;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(90, 33, 88, 0.05);
}

.faq-card h4 {
font-size: 1.5rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 1rem;
}

.faq-card ul {
list-style: none;
}

.faq-card ul li {
padding: 0.75rem 0 0.75rem 1.5rem;
color: var(--color-gray);
position: relative;
}

.faq-card ul li::before {
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 6px;
height: 6px;
background: var(--color-accent);
border-radius: 50%;
}

.hero-thanks {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 11rem 0 6rem;
background: linear-gradient(135deg, rgba(0, 217, 163, 0.05) 0%, rgba(90, 33, 88, 0.05) 100%);
}

.thanks-content {
text-align: center;
max-width: 600px;
}

.thanks-icon {
width: 100px;
height: 100px;
background: linear-gradient(135deg, var(--color-accent) 0%, #00B891 100%);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 2rem;
}

.thanks-icon i {
font-size: 3rem;
color: var(--color-white);
}

.thanks-content h1 {
font-size: 3rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 1rem;
}

.thanks-content p {
font-size: 1.25rem;
color: var(--color-gray);
margin-bottom: 3rem;
}

.thanks-next {
margin-bottom: 3rem;
}

.thanks-next h3 {
font-size: 1.5rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 1rem;
}

.thanks-next ul {
list-style: none;
}

.thanks-next ul li {
margin-bottom: 0.75rem;
}

.thanks-next ul li a {
color: var(--color-accent);
text-decoration: none;
font-weight: 600;
transition: var(--transition);
}

.thanks-next ul li a:hover {
color: var(--color-primary);
}

.btn-back {
padding: 1rem 2.5rem;
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
color: var(--color-white);
text-decoration: none;
border-radius: 10px;
font-weight: 700;
font-size: 1.125rem;
display: inline-block;
transition: var(--transition);
}

.btn-back:hover {
transform: translateY(-3px);
box-shadow: 0 10px 30px rgba(90, 33, 88, 0.3);
color: var(--color-white);
}

.legal-hero {
padding: 11rem 0 4rem;
background: linear-gradient(135deg, rgba(90, 33, 88, 0.04) 0%, rgba(225, 56, 86, 0.06) 100%);
text-align: center;
}

.legal-hero h1 {
font-size: 3rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 0.5rem;
}

.legal-hero p {
color: var(--color-gray);
font-size: 1rem;
}

.legal-content {
padding: 6rem 0;
background: var(--color-white);
}

.legal-text {
max-width: 900px;
margin: 0 auto;
}

.legal-text h2 {
font-size: 2rem;
font-weight: 700;
color: var(--color-primary);
margin-top: 3rem;
margin-bottom: 1rem;
}

.legal-text h2:first-child {
margin-top: 0;
}

.legal-text h3 {
font-size: 1.5rem;
font-weight: 700;
color: var(--color-primary);
margin-top: 2rem;
margin-bottom: 1rem;
}

.legal-text p {
color: var(--color-gray);
margin-bottom: 1.5rem;
line-height: 1.8;
}

.legal-text a {
color: var(--color-accent);
text-decoration: none;
transition: var(--transition);
}

.legal-text a:hover {
color: var(--color-primary);
text-decoration: underline;
}

@media (max-width: 991px) {
.nav-menu {
display: none;
}

.mobile-toggle {
display: flex;
}

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

.section-title,
.section-title-center {
font-size: 2rem;
}

.metodo-timeline::before {
display: none;
}

.metodo-timeline {
flex-direction: column;
}

.tab-grid {
grid-template-columns: 1fr;
}

.roadmap-board {
grid-template-columns: 1fr;
}

.footer-content {
grid-template-columns: 1fr;
}

.percorso-tags {
justify-content: flex-start;
}
}

@media (max-width: 767px) {
.hero-title {
font-size: 2rem;
}

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

.hero-actions {
flex-direction: column;
}

.btn-hero-primary,
.btn-hero-secondary {
width: 100%;
text-align: center;
}

.cookie-banner {
bottom: 20px;
right: 20px;
left: 20px;
max-width: none;
}

.cookie-actions {
flex-direction: column;
}

.btn-cookie-accept,
.btn-cookie-decline {
width: 100%;
text-align: center;
}
}