:root{
  --sw-primary:#72549b;
  --sw-ink:#0f172a;
  --sw-muted:rgba(15,23,42,.65);
  --sw-border:rgba(15,23,42,.10);
  --sw-shadow:0 18px 50px rgba(11,18,32,.10);
  --sw-soft: rgba(114,84,155,.08);
}

/* hero glow come consulenza */
.page-header{ position: relative; overflow:hidden; }
.page-header:before{
  content:"";
  position:absolute; inset:-2px;
  background:
    radial-gradient(900px 340px at 15% 0%, rgba(114,84,155,.22), transparent 55%),
    radial-gradient(700px 260px at 95% 10%, rgba(13,110,253,.18), transparent 55%);
  pointer-events:none;
}
.page-header .container{ position: relative; z-index:1; }
.page-header h1{ letter-spacing:-.02em; }
.page-header p{ max-width: 880px; margin: 0 auto; }

/* layout */
.sw-wrap{ max-width: 1180px; }
.sw-section{ position: relative; }

/* cards */
.sw-card{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:20px;
  box-shadow: 0 16px 44px rgba(15,23,42,.08);
}
.sw-box{ padding: 24px; }

.sw-title{
  font-weight: 950;
  letter-spacing: -.02em;
  margin: 0;
  font-size: clamp(22px, 2.1vw, 34px);
  color: rgba(15,23,42,.95);
}
.sw-sub{
  margin: 8px 0 0;
  color: var(--sw-muted);
  font-size: 1.02rem;
  line-height: 1.6;
}
.sw-mini{
  margin-top: 12px;
  color: rgba(15,23,42,.68);
  font-size: .95rem;
  line-height: 1.55;
}

/* labels */
.sw-label{
  font-weight: 900;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(15,23,42,.65);
  margin-bottom: 8px;
}

/* inputs */
.sw-input,
.sw-textarea,
.sw-select{
  border-radius: 16px !important;
  padding: 14px 14px !important;
  border: 1px solid rgba(15,23,42,.12) !important;
  box-shadow: none !important;
}
.sw-input,
.sw-textarea{ font-weight: 300; }
.sw-select{ font-weight: 700; }

.sw-input:focus,
.sw-textarea:focus,
.sw-select:focus{
  border-color: rgba(114,84,155,.35) !important;
  outline: 0;
  box-shadow: 0 0 0 .18rem rgba(114,84,155,.15) !important;
}
.sw-textarea{ min-height: 160px; resize: vertical; }

/* action button */
.sw-actions .btn{
  border-radius: 50rem;
  padding: 14px 18px;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.sw-actions .btn.btn-primary{
  background: linear-gradient(135deg, rgba(114,84,155,1), rgba(114,84,155,.86));
  border: none;
  box-shadow: 0 16px 30px rgba(114,84,155,.18);
}
.sw-actions .btn.btn-primary:hover{
  transform: translateY(-1px);
  box-shadow: 0 20px 34px rgba(114,84,155,.22);
}

/* message box */
#formMsg .alert{ border-radius: 14px; }

/* contact box (stile “consulenza”, più pulito) */
.sw-contact-box{
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,.10);
  background: linear-gradient(180deg, rgba(15,23,42,.02), rgba(255,255,255,1));
  padding: 16px;
}
.sw-contact-item{
  display:flex;
  gap: 12px;
  align-items:center;
}
.sw-contact-icon{
  width: 44px; height: 44px;
  display:flex; align-items:center; justify-content:center;
  border-radius: 14px;
  background: var(--sw-soft);
  color: var(--sw-primary);
  border: 1px solid rgba(114,84,155,.18);
}
.sw-contact-text{ display:flex; flex-direction:column; }
.sw-contact-label{
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 900;
  color: rgba(15,23,42,.60);
}
.sw-contact-value{
  font-weight: 950;
  text-decoration:none;
  color: rgba(15,23,42,.95);
}
.sw-contact-value:hover{ color: var(--sw-primary); }
.sw-contact-divider{
  height: 1px;
  background: rgba(15,23,42,.08);
  margin: 14px 0;
}

/* right panel background soft */
.sw-panel-soft{
  border-radius: 22px;
}

/* responsive */
@media (max-width: 992px){
  .sw-panel-soft{ border-radius: 0; padding: 0; background: transparent; }
  .sw-box{ padding: 18px; }
}
