/* Hero section (ported from her-module.php, full-bleed breakout stripped) */
.slhero {
  --sl-blue: #1A62FF;
  position: relative;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  background: var(--sl-bg);
  color: #fff;
  padding: 224px 0 48px;
}

/* particle wave canvas */
.slhero__wave { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; opacity: .8; pointer-events: none; }

/* concentric circles */
.slhero__circles { position: absolute; inset: 0; z-index: 0; display: flex; align-items: center; justify-content: center; opacity: .3; pointer-events: none; }
.slhero__circles span { position: absolute; border-radius: 9999px; border: 1px solid var(--sl-border); }
.slhero__circles span:nth-child(1) { width: 300px; height: 300px; }
.slhero__circles span:nth-child(2) { width: 500px; height: 500px; }
.slhero__circles span:nth-child(3) { width: 700px; height: 700px; }
.slhero__circles span:nth-child(4) { width: 900px; height: 900px; }
.slhero__circles span:nth-child(5) { width: 1100px; height: 1100px; }
.slhero__circles span:nth-child(6) { width: 1300px; height: 1300px; border-color: rgba(35, 35, 41, .5); }

/* blurred orbs */
.slhero__orb1, .slhero__orb2 { position: absolute; border-radius: 9999px; pointer-events: none; }
.slhero__orb1 { top: 25%; left: 25%; width: 400px; height: 400px; background: rgba(26, 98, 255, .2); filter: blur(120px); }
.slhero__orb2 { bottom: 25%; right: 25%; width: 300px; height: 300px; background: rgba(26, 98, 255, .1); filter: blur(100px); }

/* two-column grid, copy left */
.slhero__grid {
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}
.slhero__copy { text-align: center; }

.slhero__h1 {
  font-size: clamp(3rem, 5.5vw, 4.5rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin-bottom: 24px;
  text-wrap: balance;
}
.slhero__h1 em { font-style: normal; color: var(--sl-blue); }

.slhero__sub {
  font-size: clamp(1.125rem, 2vw, 1.25rem);
  color: var(--sl-muted);
  line-height: 1.7;
  max-width: 36rem;
  margin: 0 auto 40px;
}

.slhero__ctas { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.slhero__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 56px; padding: 0 32px; border-radius: 9999px;
  font-size: 1rem; font-weight: 600; text-decoration: none; cursor: pointer;
  width: 100%;
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.slhero__btn--primary { background: var(--sl-blue); color: #fff; }
.slhero__btn--primary:hover { background: #1450d6; color: #fff; }
.slhero__btn--primary svg { transition: transform .2s ease; }
.slhero__btn--primary:hover svg { transform: translateX(4px); }
.slhero__btn--outline { background: transparent; color: #fff; border: 1px solid var(--sl-border); }
.slhero__btn--outline:hover { background: #fff; color: #000; }

.slhero__badges { margin-top: 48px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; }
.slhero__badge {
  display: flex; align-items: center; gap: 12px;
  border: 1px solid var(--sl-border);
  background: rgba(17, 17, 19, .7);
  backdrop-filter: blur(8px);
  border-radius: 9999px;
  padding: 12px 20px;
}
.slhero__badge-txt { text-align: left; line-height: 1.2; }
.slhero__badge-top { display: flex; align-items: center; gap: 8px; }
.slhero__badge-score { font-weight: 700; font-size: .875rem; }
.slhero__stars { display: flex; gap: 2px; }
.slhero__stars svg { width: 14px; height: 14px; fill: var(--sl-blue); }
.slhero__badge-label { font-size: .75rem; color: var(--sl-muted); }

/* right column slot */
.slhero__slot { min-height: 1px; }

@media (min-width: 640px) {
  .slhero__ctas { flex-direction: row; justify-content: center; }
  .slhero__btn { width: auto; }
}
@media (min-width: 1024px) {
  .slhero { padding-top: 190px; }
  .slhero__grid { grid-template-columns: 1fr 1fr; }
  .slhero__copy { text-align: left; }
  .slhero__sub { margin-left: 0; margin-right: 0; }
  .slhero__ctas { justify-content: flex-start; }
  .slhero__badges { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .slhero__btn--primary:hover svg { transform: none; }
}
