/* Finitura visiva condivisa: palette invariata, superfici satinate e bordi continui. */
:root {
  --orange-satin: linear-gradient(135deg, #f3a04a 0%, #eb8220 48%, #bf5a0c 100%);
  --green-satin: linear-gradient(135deg, #59e997 0%, #25d366 52%, #149747 100%);
  --black-satin: linear-gradient(116deg, #030303 0%, #202020 47%, #050505 100%);
  --soft-satin: linear-gradient(135deg, #ffffff 0%, #f4f4f4 52%, #dedede 100%);
  --satin-line: rgba(255,255,255,.24);
  --card-radius: 26px;
}

/* Barra di navigazione nera, con una finitura leggermente satinata. */
.skip-link { background: #fff; color: #0c0c0c; }
.site-header,
.site-header.is-scrolled {
  background: var(--black-satin) !important;
  background-image:
    radial-gradient(85% 180% at 18% -82%, rgba(255,255,255,.20), transparent 54%),
    linear-gradient(112deg, #020202 0%, #1d1d1d 45%, #080808 75%, #000 100%) !important;
  background-blend-mode: normal;
  border-color: rgba(255,255,255,.78) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.26), inset 0 -1px 0 rgba(0,0,0,.8), 0 10px 0 rgba(235,130,32,.72) !important;
}

.primary-nav a:not(.nav-cta) { text-shadow: 0 1px 0 rgba(255,255,255,.12); }

/* Pulsanti e superfici che invitano all'azione. */
.button,
.nav-cta,
.client-needs-cta,
.situations-cta,
.partner-link-primary,
.services-cta a,
.inline-cta,
.faq-contact-cta a,
.guide-related a,
.cluster-related a,
.partnership-text-link,
.work-text-link,
.guide-read,
.guide-back-top,
.service-cta .button,
.guide-cta .button {
  border-radius: 999px !important;
  background-image: var(--orange-satin);
  color: #0c0c0c;
  border-color: rgba(119,54,5,.58) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4), inset 0 -1px 0 rgba(86,34,0,.22), 0 5px 13px rgba(78,34,0,.14);
}

.button:hover,
.nav-cta:hover,
.client-needs-cta:hover,
.situations-cta:hover,
.partner-link-primary:hover,
.services-cta a:hover,
.inline-cta:hover,
.faq-contact-cta a:hover,
.guide-related a:hover,
.cluster-related a:hover,
.partnership-text-link:hover,
.work-text-link:hover,
.service-cta .button:hover,
.guide-cta .button:hover {
  background-image: linear-gradient(135deg, #ffc075 0%, #f2912d 48%, #d46a12 100%);
  color: #050505 !important;
  transform: translateY(-2px);
}

/* WhatsApp: verde ufficiale, icona inconfondibile e finitura satinata. */
a[href*="wa.me"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid rgba(5,91,39,.58) !important;
  border-radius: 999px !important;
  background: var(--green-satin) !important;
  color: #05140a !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.48), inset 0 -1px 0 rgba(4,96,35,.28), 0 5px 13px rgba(8,101,42,.16) !important;
}

a[href*="wa.me"]:not(.floating-whatsapp):not(.mobile-contact-whatsapp):not(.whatsapp-primary)::before {
  content: '';
  display: inline-block;
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  background: #05140a;
  -webkit-mask: url('/assets/whatsapp.svg') center / contain no-repeat;
  mask: url('/assets/whatsapp.svg') center / contain no-repeat;
}

a[href*="wa.me"]:hover {
  background: linear-gradient(135deg, #79f3ad 0%, #34df76 52%, #18ab51 100%) !important;
  color: #05140a !important;
  transform: translateY(-2px);
}

.floating-whatsapp,
.mobile-contact-whatsapp {
  border-color: rgba(5,91,39,.58) !important;
  background: var(--green-satin) !important;
}

.floating-whatsapp:hover,
.mobile-contact-whatsapp:hover { background: linear-gradient(135deg, #79f3ad 0%, #34df76 52%, #18ab51 100%) !important; }
.floating-whatsapp img,
.mobile-contact-whatsapp img { filter: brightness(0) saturate(100%); }

.whatsapp-primary {
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  min-height: 132px;
  padding: 25px;
  border-radius: 28px !important;
}
.whatsapp-primary .whatsapp-icon { background: rgba(255,255,255,.5); }
.whatsapp-primary .whatsapp-icon img { filter: brightness(0) saturate(100%); }
.whatsapp-primary small,
.whatsapp-primary strong,
.whatsapp-primary i { color: #05140a !important; }
.whatsapp-primary:hover { transform: translateY(-2px); }

/* Schede e riquadri: angoli coerenti e profondità discreta. */
.service-item,
.principle-grid article,
.client-needs-grid article,
.work-path-steps li,
.situations-grid,
.situations-grid article,
.territory-card,
.partner-film,
.contact-console,
.contact-details,
.contact-details a,
.contact-social a,
.guide-card,
.guide-hero-note,
.guide-note,
.guide-author,
.guide-resource,
.guide-hub-faq,
.guide-faq-list details,
.guide-article-section,
.guide-checklist,
.guide-steps,
.guide-steps li,
.partnership-hero-card,
.partnership-audiences article,
.partnership-process li,
.partnership-contact,
.work-hero-card,
.work-fit article,
.work-support-list article,
.work-process li,
.work-contact,
.document-card,
.service-promise,
.service-cta {
  border-radius: var(--card-radius) !important;
}

.guide-card,
.guide-hero-note,
.guide-note,
.guide-author,
.guide-resource,
.partnership-hero-card,
.work-hero-card,
.document-card,
.service-promise,
.service-cta {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 9px 22px rgba(0,0,0,.06);
}

/* Anche le schede cliccabili mantengono la stessa sensazione materica. */
.service-item,
.guide-card,
.contact-details a,
.contact-social a,
.footer-social a,
.guide-related a,
.cluster-related a,
.document-links a,
.partnership-contact-links a,
.work-contact-links a {
  background-image: linear-gradient(128deg, rgba(255,255,255,.24), transparent 47%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.36), inset 0 -1px 0 rgba(0,0,0,.08), 0 7px 17px rgba(0,0,0,.08);
}

.text-link,
.partner-link:not(.partner-link-primary),
.partnership-text-link,
.work-text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 0 15px;
  border-radius: 999px !important;
  background-image: linear-gradient(128deg, rgba(255,255,255,.26), transparent 48%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -1px 0 rgba(0,0,0,.12), 0 6px 15px rgba(0,0,0,.08);
}

/* Analizzo, Confronto e Ti guido: stessa palette, texture satinata. */
.client-needs-grid article {
  background-image:
    linear-gradient(130deg, rgba(255,255,255,.09), transparent 42%),
    linear-gradient(116deg, #050505 0%, #242424 52%, #090909 100%) !important;
  border: 1px solid rgba(0,0,0,.76) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.23), inset 0 -1px 0 rgba(0,0,0,.55), 0 10px 22px rgba(0,0,0,.12);
}

.client-needs-grid article:nth-child(2) {
  background-image:
    linear-gradient(130deg, rgba(255,255,255,.28), transparent 44%),
    var(--orange-satin) !important;
  border-color: rgba(129,58,8,.58) !important;
}

.client-needs-grid article:nth-child(3) {
  background-image:
    linear-gradient(130deg, rgba(255,255,255,.95), transparent 48%),
    var(--soft-satin) !important;
  border-color: rgba(12,12,12,.75) !important;
}

/* Elimina le fasce bianche laterali nella chiusura delle pagine. */
.contact.section-shell,
.site-footer.section-shell {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  padding-right: max(40px, calc((100vw - var(--max)) / 2)) !important;
  padding-left: max(40px, calc((100vw - var(--max)) / 2)) !important;
  box-sizing: border-box;
}

.contact.section-shell { background: #000 !important; }
.site-footer.section-shell { background: var(--black-satin) !important; }
.footer-meta img { mix-blend-mode: normal; filter: brightness(1.18) contrast(1.08); }

/* Desktop: menu su una riga, senza comprimere né sovrapporre le voci. */
@media (min-width: 1121px) {
  .site-header { min-height: 74px; gap: 14px; padding: 0 15px; }
  .brand { flex: 0 0 auto; gap: 8px; }
  .brand-mark { width: 44px; height: 44px; }
  .brand>span:not(.brand-mark) { display: flex; flex: 0 0 100px; min-width: 100px; flex-direction: column; gap: 2px; white-space: nowrap; }
  .brand strong { font-size: 10px; line-height: 1.05; white-space: nowrap; }
  .brand small { font-size: 7.5px; line-height: 1.05; white-space: nowrap; }
  .weunit-inline { width: 76px; margin-left: 0; flex: 0 0 auto; }
  .primary-nav { flex: 1 1 auto; min-width: 0; justify-content: space-between; gap: 8px; }
  .primary-nav>a:not(.nav-cta) { flex: 0 0 auto; white-space: nowrap; font-size: 10px; letter-spacing: .005em; }
  .nav-cta { flex: 0 0 auto; min-height: 40px; padding: 0 13px; font-size: 11px; }
}

/* Sotto questa soglia il menu passa volutamente al pannello mobile: niente testo spezzato. */
@media (min-width: 901px) and (max-width: 1120px) {
  .site-header { position: relative; min-height: 76px; }
  .menu-toggle { display: inline-flex !important; align-items: center; gap: 9px; padding: 8px 0; border: 0; background: none; color: #fff; font: 700 11px 'DM Mono', monospace; text-transform: uppercase; cursor: pointer; }
  .menu-toggle span,
  .menu-toggle:after { content: ''; width: 17px; height: 1px; background: currentColor; }
  .menu-toggle span { margin-left: -26px; transform: translateY(-3px); }
  .menu-toggle:after { margin-left: -17px; transform: translateY(3px); }
  .primary-nav { position: absolute; z-index: 40; top: 72px; right: 0; left: 0; display: none; padding: 18px; border: 1px solid rgba(255,255,255,.72); border-radius: 22px; background: var(--black-satin) !important; box-shadow: 0 20px 35px rgba(0,0,0,.38); flex-direction: column; align-items: stretch; gap: 0; }
  .primary-nav.is-open { display: flex !important; }
  .primary-nav a { padding: 12px 2px; white-space: nowrap; }
  .nav-cta { margin-top: 7px; text-align: center; }
}

@media (max-width: 900px) {
  .primary-nav { background: var(--black-satin) !important; border-color: rgba(255,255,255,.72) !important; }
  .contact.section-shell,
  .site-footer.section-shell { padding-right: 22px !important; padding-left: 22px !important; }
}

@media (max-width: 580px) {
  .contact.section-shell,
  .site-footer.section-shell { padding-right: 16px !important; padding-left: 16px !important; }
  .client-needs-grid article { border-radius: 20px !important; }
}

/* Navigazione essenziale: lascia aria al marchio e al contenuto, senza perdere le pagine. */
.primary-nav > a[href*="glossario"],
.primary-nav > a[href*="lavora-con-me"],
.primary-nav > a[href*="#risorse"],
.primary-nav > a[href*="#chi-sono"],
.primary-nav > a[href*="#percorso"],
.primary-nav > a[href*="#territorio"] { display: none !important; }

.site-header,
.site-header .brand,
.site-header .primary-nav,
.service-item > div,
.service-related a,
.service-quick-actions a,
.document-links a,
.footer-links a,
.contact-cards a { min-width: 0; }

.service-item h3,
.service-item p,
.service-related a,
.service-quick-actions a,
.document-links a,
.contact-cards strong,
.footer-links a { overflow-wrap: anywhere; }

@media (min-width: 1121px) {
  .site-header { gap: 18px; padding-right: 20px; padding-left: 20px; }
  .weunit-inline { width: 108px; }
  .brand > span:not(.brand-mark) { flex-basis: 112px; min-width: 112px; }
  .primary-nav { justify-content: flex-end; gap: clamp(10px, 1.15vw, 18px); }
  .primary-nav > a:not(.nav-cta) { font-size: 11px; }
}

@media (max-width: 1120px) {
  .site-header { gap: 15px; }
  .weunit-inline { width: 110px; }
}

@media (max-width: 580px) {
  .site-header .brand { gap: 7px; }
  .site-header .brand > span:not(.brand-mark) { min-width: 0; }
  .site-header .brand strong { font-size: 11px; }
  .site-header .brand small { font-size: 8px; }
  .weunit-inline { width: 82px; }
  .service-item { align-items: start; }
  .service-item h3 { line-height: 1.06; }
  .service-quick-actions { gap: 10px; }
  .service-quick-actions a { width: 100%; }
}
