:root{
  --sw-primary:#72549b;
  --sw-ink:#0f172a;
  --sw-muted: rgba(15,23,42,.65);
  --sw-border: rgba(15,23,42,.10);
  /* utile se lo usi altrove */
  --sw-shadow: 0 18px 50px rgba(11,18,32,.10);
}

/* =========================
   ABOUT BLOCK
========================= */
.sw-about-block{padding:40px 0;}

.sw-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:700; font-size:13px; letter-spacing:.08em;
  text-transform:uppercase;
  color: var(--sw-primary);
}
.sw-eyebrow:before{
  content:""; width:34px; height:2px; border-radius:99px;
  background: var(--sw-primary);
  opacity:.7;
}

/* Hero panel */
.sw-panel-hero{
  border:1px solid var(--sw-border);
  border-radius:28px;
  background:
    radial-gradient(900px 380px at 10% 0%, rgba(114,84,155,.18), transparent 60%),
    radial-gradient(700px 340px at 90% 20%, rgba(114,84,155,.14), transparent 55%),
    #fff;
  box-shadow: 0 18px 60px rgba(15,23,42,.06);
  overflow:hidden;
}
.sw-panel-hero .sw-inner{padding:34px;}

.sw-lead{font-size:18px; color: var(--sw-muted); max-width:60ch;}

.sw-chip{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 14px; border-radius:999px;
  border:1px solid var(--sw-border);
  background: rgba(255,255,255,.8);
  backdrop-filter: blur(6px);
}
.sw-chip b{font-size:18px; line-height:1;}
.sw-chip span{color: var(--sw-muted); font-size:14px;}
.sw-chip-grid{display:flex; flex-wrap:wrap; gap:12px;}

/* Feature list (no cards) */
.sw-feature-list{
  margin-top:22px;
  border-top:1px solid var(--sw-border);
  padding-top:18px;
  display:grid;
  gap:14px;
}
.sw-feature{
  display:flex; gap:14px; align-items:flex-start;
}
.sw-bullet{
  width:38px; height:38px;
  border-radius:14px;
  display:grid; place-items:center;
  background: rgba(114,84,155,.10);
  border:1px solid rgba(114,84,155,.20);
  color: var(--sw-primary);
  flex:0 0 auto;
}
.sw-feature h6{margin:0 0 3px 0; font-size:16px; color: var(--sw-ink);}
.sw-feature p{margin:0; color: var(--sw-muted);}

/* Timeline (premium) */
.sw-timeline{
  position:relative;
  padding-left:26px;
  margin-top:26px;
}
.sw-timeline:before{
  content:"";
  position:absolute;
  left:10px; top:0; bottom:0;
  width:2px;
  background: linear-gradient(to bottom, rgba(114,84,155,.35), rgba(114,84,155,0));
}
.sw-step{
  position:relative;
  padding:14px 0 14px 0;
}
.sw-step:last-child{padding-bottom:0;}
.sw-step:before{
  content:"";
  position:absolute;
  left:2px; top:20px;
  width:18px; height:18px;
  border-radius:999px;
  background: #fff;
  border:2px solid rgba(114,84,155,.55);
  box-shadow: 0 8px 20px rgba(15,23,42,.08);
}
.sw-step .sw-step-card{
  border:1px solid var(--sw-border);
  border-radius:22px;
  padding:18px;
  margin-left:22px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 14px 40px rgba(15,23,42,.05);
  transition: .25s ease;
}
.sw-step .sw-step-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 18px 55px rgba(15,23,42,.08);
  border-color: rgba(114,84,155,.28);
}
.sw-step small{
  color: rgba(114,84,155,.9);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sw-step h5{margin:6px 0 6px 0;}
.sw-step p{margin:0; color: var(--sw-muted);}

/* Section splitter band */
.sw-soft-band{
  margin-top:28px;
  border-radius:28px;
  border:1px solid var(--sw-border);
  background:
    linear-gradient(135deg, rgba(114,84,155,.12), rgba(255,255,255,.0)),
    #fff;
  padding:26px;
}

/* =========================
   CTA (classi del tuo markup)
========================= */

/* wrapper section (se vuoi effetto full-width) */
.sezionecta{
  margin-top: 0;
  position: relative;
  overflow: hidden;
}

/* blocco CTA vero e proprio */
.sw-cta2{
  margin-top: 0px;
  margin-bottom: 50px;
  padding: 58px;
  border-radius: 28px;
  overflow:hidden;
  position: relative;
  background:
    radial-gradient(1200px 420px at 10% 0%, rgba(13,110,253,.20), transparent 55%),
    linear-gradient(135deg, #0b1220, #111a2f);
  color:#fff;
  box-shadow: var(--sw-shadow);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

/* colonne */
.sw-cta2-left{max-width: 720px;}
.sw-cta2-right{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

/* testi CTA */
.sw-cta2-title{
  margin:0;
  font-size: clamp(22px, 2.2vw, 36px);
  font-weight: 900;
  letter-spacing: -.02em;
}
.sw-cta2-sub{
  margin:10px 0 0;
  font-size: 1.05rem;
  line-height: 1.6;
  opacity:.92;
}

/* bottone pill */
.sw-btn-pill{
  border-radius: 50rem;
  padding: 12px 18px;
  font-weight: 800;
  letter-spacing: .02em;
}

/* helper margin (tuo markup) */
.margintop{ margin-top: 0; }

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 1250px){
  .sw-panel-hero .sw-inner{padding:22px;}
  .sw-about-block{padding:60px 0;}

  /* CTA: mobile/tablet */
  .sw-cta2{
    display:block;
    padding:30px;
    border-radius: 0px;
    text-align:center;
    margin-bottom: 0 !important;
  }
  .sw-cta2-right{
    display:block;
    margin-top: 16px;
  }
  .margintop{
    margin-top:20px !important;
  }
  .sw-about-block{
    padding-top:0 !important;
    padding-bottom:0 !important;

  }
  .sezionecta{
    border-radius: 0px;
    margin: 0 !important;
    margin-bottom: 0 !important;
  }
  .sw-panel-hero {
    border-radius: 0px;
    border: 0 !important;
  }
}