:root{
  --swp-bg:#ffffff;
  --swp-surface:#ffffff;
  --swp-surface-2:#faf9ff;
  --swp-line:rgba(84,65,148,.12);
  --swp-text:#231942;
  --swp-muted:#6f6887;
  --swp-primary:#6b41ff;
  --swp-primary-2:#8b6dff;
  --swp-primary-soft:rgba(107,65,255,.10);
  --swp-shadow:0 24px 60px rgba(45,28,94,.12);
  --swp-shadow-soft:0 16px 36px rgba(45,28,94,.08);
  --swp-success:#2f9f68;
}

.swpts-section{
  margin:34px 0;
  color:var(--swp-text);
}

.swpts-panel{
  background:var(--swp-bg);
  border:1px solid var(--swp-line);
  border-radius:32px;
  box-shadow:var(--swp-shadow);
  padding:30px;
  overflow:hidden;
}

.swpts-section-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:22px;
  flex-wrap:wrap;
}

.swpts-title{
  margin:0 0 8px;
  font-size:clamp(24px,2.4vw,38px);
  line-height:1.06;
  font-weight:800;
  letter-spacing:-.03em;
  color:var(--swp-text);
}

.swpts-subtitle,
.swpts-copy{
  margin:0;
  color:var(--swp-muted);
  font-size:15px;
  line-height:1.75;
}

.swpts-section-head-copy{max-width:900px}

.swpts-copy-large{
  font-size:17px;
}

.swpts-card-title{
  margin:0;
  color:var(--swp-text);
  font-size:22px;
  line-height:1.28;
  font-weight:800;
}

.swpts-about-grid,
.swpts-two-col{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:22px;
}

.swpts-card{
  position:relative;
  background:var(--swp-surface);
  border:1px solid var(--swp-line);
  border-radius:28px;
  box-shadow:var(--swp-shadow-soft);
  display:flex;
  flex-direction:column;
  min-height:100%;
}

.swpts-copy-card,
.swpts-list-card,
.swpts-store-box,
.swpts-disclosure,
.swpts-contact-card,
.swpts-step-card,
.swpts-stat-card,
.swpts-faq-item{
  padding:24px;
}

.swpts-copy-stack{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.swpts-stat-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.swpts-stat-card{
  min-height:128px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:flex-start;
  gap:10px;
  background:var(--swp-surface-2);
}

.swpts-stat-card strong{
  display:block;
  color:var(--swp-text);
  font-size:24px;
  line-height:1.08;
}

.swpts-stat-card span{
  color:var(--swp-muted);
  line-height:1.6;
}

.swpts-steps-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.swpts-steps-grid-3{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.swpts-step-card{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.swpts-step-number{
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:var(--swp-primary-soft);
  color:var(--swp-primary);
  font-weight:800;
  font-size:18px;
}

.swpts-check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  list-style:none;
  margin:0;
  padding:0;
}

.swpts-check-grid li,
.swpts-bullet-list li{
  position:relative;
  padding:16px 18px 16px 46px;
  border-radius:22px;
  background:var(--swp-surface-2);
  border:1px solid var(--swp-line);
  color:var(--swp-text);
  line-height:1.65;
}

.swpts-check-grid li::before,
.swpts-bullet-list li::before{
  content:"✓";
  position:absolute;
  left:16px;
  top:15px;
  width:20px;
  height:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:linear-gradient(180deg,var(--swp-primary) 0%,var(--swp-primary-2) 100%);
  color:#fff;
  font-weight:800;
  font-size:12px;
  box-shadow:0 10px 20px rgba(107,65,255,.18);
}

.swpts-bullet-list{
  list-style:none;
  margin:18px 0 0;
  padding:0;
  display:grid;
  gap:12px;
}

.swpts-faq-list{
  display:grid;
  gap:14px;
}

.swpts-faq-item{
  overflow:hidden;
}

.swpts-faq-toggle{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--swp-text);
  text-align:left;
  font:inherit;
  font-size:18px;
  font-weight:800;
  cursor:pointer;
}

.swpts-faq-icon{
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--swp-primary-soft);
  color:var(--swp-primary);
  font-size:22px;
  line-height:1;
  flex:0 0 auto;
  transition:transform .18s ease;
}

.swpts-faq-item.is-open .swpts-faq-icon{
  transform:rotate(45deg);
}

.swpts-faq-answer{
  padding:16px 0 0;
}

.swpts-faq-answer p{
  margin:0;
  color:var(--swp-muted);
  line-height:1.75;
}

.swpts-contact-card{
  display:grid;
  grid-template-columns:1.35fr auto;
  gap:20px;
  align-items:center;
}

.swpts-contact-copy{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.swpts-contact-copy strong{
  color:var(--swp-text);
}

.swpts-contact-copy a{
  color:var(--swp-primary);
  text-decoration:underline;
}

.swpts-contact-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
}

.swpts-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:13px 20px;
  border-radius:999px;
  border:none;
  box-sizing:border-box;
  background:linear-gradient(135deg,#6f8fe8 0%,#a67be8 50%,#f09cff 100%) !important;
  color:#fff;
  text-decoration:none;
  font-weight:800;
  transition:transform .15s ease,opacity .15s ease,box-shadow .15s ease,filter .15s ease;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3) !important, 0 14px 28px rgba(107,65,255,.22);
}

.swpts-button:hover{
  color:#fff;
  opacity:.98;
  transform:translateY(-1px);
  filter:brightness(1.05);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3) !important, 0 16px 30px rgba(107,65,255,.28);
}

@media (max-width:1100px){
  .swpts-steps-grid,
  .swpts-steps-grid-3{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .swpts-about-grid,
  .swpts-two-col,
  .swpts-check-grid,
  .swpts-contact-card{
    grid-template-columns:1fr;
  }
}

@media (max-width:780px){
  .swpts-panel{
    padding:18px;
    border-radius:24px;
  }

  .swpts-steps-grid,
  .swpts-steps-grid-3,
  .swpts-stat-grid{
    grid-template-columns:1fr;
  }

  .swpts-faq-toggle{
    font-size:17px;
  }

  .swpts-button{
    width:100%;
  }
}
