:root {
  --sy-blue: #173d63;
  --sy-blue-deep: #0d2741;
  --sy-blue-dark: #071a2b;
  --sy-cyan: #4da1b8;
  --sy-warm: #c88b63;
  --sy-warm-soft: #ead4c5;
  --sy-ice: #dceaf0;
  --sy-paper: #f4f0e9;
  --sy-paper-2: #ebe4da;
  --sy-white: #ffffff;
  --sy-ink: #15212b;
  --sy-muted: #66717a;
  --sy-line: rgba(21,33,43,.14);
  --sy-max: 1180px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--sy-paper);
  color: var(--sy-ink);
  font-family: "DM Sans",Arial,sans-serif;
  line-height: 1.6;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
}

.wrap {
  width: min(calc(100% - 48px),var(--sy-max));
  margin-inline: auto;
}

.site-header, .sy-site-header, .sy-header {
  position: relative;
  z-index: 1050;
}

.topbar {
  min-height: 38px;
  display: flex;
  align-items: center;
  color: rgba(255,255,255,.84);
  background: var(--sy-blue-deep);
  font-size: .78rem;
}

.topbar a {
  color: #fff;
  text-decoration: none;
}

.topbar a:hover {
  color: var(--sy-warm-soft);
}

.sy-navbar {
  position: relative;
  min-height: 50px;
  overflow: visible;
  background: linear-gradient(105deg,var(--sy-blue-dark) 0%,var(--sy-blue-deep) 42%,var(--sy-blue) 70%,#73564a 118%);
  border-bottom: 1px solid rgba(255,255,255,.10);
}

.sy-navbar .navbar-brand {
  display: flex;
  align-items: center;
  min-width: 190px;
  margin-right: 1.2rem;
}

.sy-logo-png {
  display: block;
  width: auto;
  height: 42px;
  max-width: 220px;
  object-fit: contain;
  object-position: left center;
}

.sy-navbar .nav-link {
  color: rgba(255,255,255,.88)!important;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .025em;
}

.sy-navbar .nav-link:hover, .sy-navbar .nav-link:focus, .sy-navbar .nav-link.show {
  color: #fff!important;
}

.sy-navbar .navbar-toggler {
  padding: .45rem .6rem;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 10px;
  box-shadow: none!important;
}

.btn-sy-warm {
  color: #fff!important;
  border: 0!important;
  border-radius: 10px!important;
  background: linear-gradient(135deg,#dca784,var(--sy-warm))!important;
  font-size: .78rem!important;
  font-weight: 700!important;
  padding: .68rem 1rem!important;
  white-space: nowrap;
}

.btn-sy-warm:hover {
  background: linear-gradient(135deg,var(--sy-warm),#ae6f4d)!important;
}

.sy-navbar .mega-menu {
  left: 0!important;
  right: 0!important;
  width: 100%;
  margin-top: 0!important;
  border: 0!important;
  border-radius: 0 0 22px 22px;
  background: rgba(255,255,255,.985);
  box-shadow: 0 22px 50px rgba(7,26,43,.16)!important;
}

.mega-kicker, .feature-kicker {
  display: block;
  margin-bottom: .7rem;
  color: var(--sy-warm);
  font-size: .69rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.mega-link {
  display: block;
  margin-bottom: .32rem;
  padding: .72rem .78rem;
  border-radius: 12px;
  color: var(--sy-ink);
  text-decoration: none;
}

.mega-link:hover, .mega-link:focus {
  color: var(--sy-blue-deep);
  background: linear-gradient(135deg,rgba(220,234,240,.62),rgba(234,212,197,.36));
}

.mega-link strong, .mega-link small {
  display: block;
}

.mega-link strong {
  font-family: "Libre Baskerville",Georgia,serif;
  font-size: .98rem;
  font-weight: 400;
}

.mega-link small {
  margin-top: .22rem;
  color: var(--sy-muted);
  font-size: .78rem;
  line-height: 1.45;
}

.mega-feature {
  height: 100%;
  padding: 1.35rem;
  border-radius: 18px;
  background: linear-gradient(135deg,rgba(220,234,240,.72),rgba(234,212,197,.52));
}

.mega-feature h3 {
  margin: .35rem 0 .75rem;
  color: var(--sy-blue-deep);
  font-family: "Libre Baskerville",Georgia,serif;
  font-size: 1.35rem;
  line-height: 1.2;
  font-weight: 400;
}

.mega-feature p {
  margin-bottom: .8rem;
  color: var(--sy-muted);
  font-size: .84rem;
  line-height: 1.5;
}

.mega-feature a {
  color: var(--sy-blue);
  font-size: .78rem;
  font-weight: 700;
  text-decoration: none;
}

footer {
  background: var(--sy-blue-dark);
  color: rgba(220,234,240,.78);
}

.footer-inner {
  min-height: 86px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  font-size: 12px;
  letter-spacing: .08em;
}

@media (max-width:1199.98px) {
  .sy-navbar {
    min-height: 58px;
  }
}

@media (max-width:1199.98px) {
  .sy-navbar .navbar-collapse {
    margin-top: .5rem;
    padding: .8rem;
    border-radius: 16px;
    background: rgba(7,26,43,.98);
  }
}

@media (max-width:1199.98px) {
  .sy-navbar .nav {
    width: 100%;
  }
}

@media (max-width:1199.98px) {
  .sy-navbar .nav-link {
    padding: .65rem .75rem!important;
  }
}

@media (max-width:1199.98px) {
  .sy-navbar .mega-menu {
    position: static!important;
    max-height: 65vh;
    overflow-y: auto;
    border-radius: 14px;
  }
}

@media (max-width:1199.98px) {
  .btn-sy-warm {
    width: 100%;
    margin-top: .65rem;
  }
}

@media (max-width:767.98px) {
  .wrap {
    width: min(calc(100% - 30px),var(--sy-max));
  }
}

@media (max-width:767.98px) {
  .topbar-company {
    display: none;
  }
}

@media (max-width:767.98px) {
  .topbar {
    font-size: .72rem;
  }
}

@media (max-width:767.98px) {
  .sy-logo-png {
    height: 38px;
    max-width: 190px;
  }
}

@media (max-width:767.98px) {
  .footer-inner {
    flex-direction: column;
    justify-content: center;
    text-align: center;
    padding: 22px 0;
  }
}

/* =========================================================
   TOPNAV · SCALA 115% EFFETTIVA
   Queste regole prevalgono sul firewall precedente.
   ========================================================= */

body > header .topbar, .topbar {
  min-height: 42px !important;
  height: 42px !important;
  font-size: .88rem !important;
}

body > header .sy-navbar, .sy-navbar {
  min-height: 60px !important;
  height: auto !important;
}

body > header .sy-logo-png, .sy-logo-png {
  height: 50px !important;
  max-width: 265px !important;
}

body > header .sy-navbar .navbar-brand, .sy-navbar .navbar-brand {
  min-width: 225px !important;
  margin-right: 1.45rem !important;
}

body > header .sy-navbar .nav-link, .sy-navbar .nav-link {
  font-size: .95rem !important;
  line-height: 1.3 !important;
}

body > header .btn-sy-warm, .btn-sy-warm {
  font-size: .91rem !important;
  padding: .8rem 1.15rem !important;
}

body > header .mega-kicker, body > header .feature-kicker, .mega-kicker, .feature-kicker {
  font-size: .8rem !important;
}

body > header .mega-link, .mega-link {
  padding: .88rem .95rem !important;
}

body > header .mega-link strong, .mega-link strong {
  font-size: 1.1rem !important;
}

body > header .mega-link small, .mega-link small {
  font-size: .9rem !important;
  line-height: 1.52 !important;
}

body > header .mega-feature h3, .mega-feature h3 {
  font-size: 1.52rem !important;
}

body > header .mega-feature p, .mega-feature p {
  font-size: .94rem !important;
}

body > header .mega-feature a, .mega-feature a {
  font-size: .88rem !important;
}

@media (max-width:1199.98px) {
  body > header .sy-logo-png, .sy-logo-png {
    height: 46px !important;
    max-width: 240px !important;
  }
}

@media (max-width:1199.98px) {
  body > header .sy-navbar .nav-link, .sy-navbar .nav-link {
    font-size: .92rem !important;
  }
}

@media (max-width:767.98px) {
  body > header .topbar, .topbar {
    min-height: 40px !important;
    height: 40px !important;
    font-size: .8rem !important;
  }
}

@media (max-width:767.98px) {
  body > header .sy-logo-png, .sy-logo-png {
    height: 44px !important;
    max-width: 220px !important;
  }
}

