/* Allineamento del Check-up alle pagine principali Patrimonio in mano. */
:root {
  --color-background: #fff;
  --color-surface-alt: #f8fafc;
  --color-border: #e2e8f0;
  --border-radius: 2.5rem;
  --border-radius-lg: 3rem;
  --shadow-soft: 0 1px 2px rgba(15, 23, 42, 0.05);
  --shadow-card: 0 25px 50px -12px rgba(15, 23, 42, 0.25);
}

body {
  background: #fff;
  color: #0f172a;
  font-family: "Inter", sans-serif;
}

h1, h2, h3, h4,
.landing-page h1, .landing-page h2, .landing-page h3 {
  color: #0a1d37;
  font-family: "Playfair Display", serif;
  letter-spacing: -0.025em;
}

/* Navigazione: misure e resa delle pagine ordinarie. */
.site-header,
.glass-nav {
  background: rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid #f1f5f9;
  box-shadow: none;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.header-inner {
  height: 96px;
  width: min(1280px, calc(100% - 48px));
}

.brand-link { gap: 0.75rem; }
.brand-logo { height: 64px; }
.brand-wordmark {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.05em;
}

.site-nav { gap: 2rem; }
.site-nav a {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.site-nav .site-nav-cta,
.mobile-menu .site-nav-cta {
  background: #2563eb;
  border-radius: 9999px;
  box-shadow: 0 10px 15px -3px #bfdbfe, 0 4px 6px -4px #bfdbfe;
  color: #fff;
  line-height: 1rem;
  padding: 1rem 2rem;
}

.site-nav .site-nav-cta:hover,
.mobile-menu .site-nav-cta:hover { background: #1d4ed8; }

.site-nav-client {
  align-items: center;
  border: 1px solid #bfdbfe;
  border-radius: 9999px;
  color: #2563eb !important;
  display: inline-flex;
  justify-content: center;
  line-height: 1rem;
  padding: 0.75rem 1rem;
  text-decoration: none;
}
.site-nav-client:hover,
.site-nav-client:focus-visible {
  border-color: #2563eb;
  outline: none;
}
.header-actions { align-items: center; display: flex; gap: 0.75rem; }

.mobile-menu {
  border-bottom-color: #f1f5f9;
  box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.1), 0 4px 6px -4px rgba(15, 23, 42, 0.1);
}
.mobile-menu-inner { gap: 0; padding: 1.5rem; }
.mobile-menu a { font-size: 0.75rem; letter-spacing: 0.1em; }

/* Card, pulsanti e campi del sistema visivo principale. */
.card, .premium-surface, .glass-content, .glass-card,
.landing-result-card, .landing-steps article,
.landing-areas-grid article, .landing-faq details {
  background: #fff;
  border: 1px solid #f1f5f9;
  border-radius: 2.5rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.card-hover-effect:hover,
.landing-areas-grid article:hover {
  border-color: #2563eb !important;
  box-shadow: 0 15px 30px rgba(37, 99, 235, 0.15);
  transform: translateY(-5px);
}

.btn, .landing-button {
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  min-height: 64px;
  padding: 1rem 2rem;
  text-transform: uppercase;
}

.btn-primary, .landing-button-primary {
  background: #2563eb;
  box-shadow: 0 10px 15px -3px #bfdbfe, 0 4px 6px -4px #bfdbfe;
}
.btn-primary:hover, .landing-button-primary:hover { background: #1d4ed8; }
.btn-outline, .landing-button-secondary {
  background: #fff;
  border-color: #e2e8f0;
  color: #0a1d37;
}

.field input, .field select, .field textarea {
  background: #f8fafc;
  border: 2px solid #2563eb;
  border-radius: 0.75rem;
}

.eyebrow, .landing-kicker, .landing-card-kicker {
  color: #2563eb;
  font-family: "Inter", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

/* Apertura e alternanza delle sezioni come nel sito principale. */
.landing-hero {
  background: #f8fafc;
  border-bottom: 1px solid #f1f5f9;
  padding: 4rem 0 8rem;
}
.landing-hero::before, .landing-hero::after { display: none; }
.landing-hero h1 {
  font-size: clamp(3rem, 6vw, 4.5rem);
  line-height: 1;
}

.landing-lead, .landing-heading > p:last-child,
.landing-steps p, .landing-areas-grid p,
.landing-outcome-lead, .prose p, .muted {
  color: #64748b;
  font-weight: 300;
}

.landing-section { padding: 7.5rem 0; }
.landing-areas-section, .landing-faq-section,
.survey-page, .results-page, .content-page { background: #f8fafc; }
.landing-result-card, .survey-card, .prose { padding: clamp(2rem, 5vw, 3rem); }
.landing-result-card .landing-card-kicker { color: #2563eb; }
.landing-result-card > p:not(.landing-card-kicker) { color: #64748b; }
.landing-result-list { border-top-color: #e2e8f0; }
.landing-result-list strong { color: #0a1d37; }
.landing-result-list small { color: #64748b; }
.survey-page, .results-page { min-height: calc(100vh - 96px); }
.survey-topbar { border-radius: 1.5rem; }
.progress-bar { background: #2563eb; }
.question-category { color: #2563eb; }

.option-label, .answer-option, .recommendation-item,
.result-list > *, .plan-grid > * {
  border-color: #e2e8f0;
  border-radius: 1rem;
}
.option-label:hover, .answer-option:hover { border-color: #2563eb; }

.result-hero, .premium-panel,
.landing-outcome-section, .landing-final-cta {
  background: #0a1d37;
  border-color: rgba(255, 255, 255, 0.1);
}
.prose { box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.12); }

/* Piè di pagina delle pagine ordinarie. */
.site-footer {
  background: #0a1d37;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(191, 219, 254, 0.78);
  padding: 5rem 0;
}
.footer-grid { gap: 3rem; }
.footer-brand .brand-logo { height: 48px; }
.footer-brand .brand-wordmark {
  color: #fff;
  font-size: 1.125rem;
  font-weight: 900;
}
.footer-brand p {
  color: rgba(191, 219, 254, 0.78);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.footer-links a, .footer-legal a, .footer-bottom {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.footer-links a { color: rgba(191, 219, 254, 0.78); }
.footer-legal a { color: rgba(191, 219, 254, 0.4); }
.footer-bottom { color: rgba(191, 219, 254, 0.2); }

@media (min-width: 768px) {
  .section-spacing { padding-bottom: 120px; padding-top: 120px; }
}

@media (max-width: 767px) {
  :root { --header-height: 80px; }
  .header-inner { height: 80px; width: min(100% - 48px, 1280px); }
  .brand-wordmark { font-size: 1.25rem; }
  .brand-logo { height: 64px; }
  .landing-hero { padding: 4rem 0 5rem; }
  .landing-section { padding: 5rem 0; }
  .card, .premium-surface, .glass-content, .glass-card,
  .landing-result-card, .landing-steps article,
  .landing-areas-grid article, .landing-faq details { border-radius: 2rem; }
}

@media (max-width: 430px) {
  .header-inner { width: min(100% - 32px, 1280px); }
  .brand-wordmark { font-size: 1rem; }
  .brand-logo { height: 56px; }
  .survey-reset {
    font-size: 0.62rem;
    letter-spacing: 0.06em;
    padding-inline: 0.75rem;
  }
  .header-actions { gap: 0.5rem; }
  .header-actions .site-nav-client {
    font-size: 0.62rem;
    letter-spacing: 0.06em;
    padding: 0.65rem 0.75rem;
  }
  .btn, .landing-button { padding-inline: 1.25rem; }
}
