#s2 {
  background: #0d0d0d;
}

.s2-cols {
  display: flex;
  align-items: center;
  gap: 6vw;
  width: 100%;
}

.s2-col-a {
  flex: 0 0 38%;
}

.s2-col-b {
  flex: 1;
  min-width: 0;
}

@media (max-width: 768px) {
  .s2-cols {
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
  }
  .s2-col-a { flex: none; width: 100%; }
}

/* =====================
   ACCORDION
   ===================== */
.s2-accordion {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.tag {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  transition: opacity 0.3s ease;
}

.tag.dimmed {
  opacity: 0.3;
}

.tag-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
  cursor: pointer;
  user-select: none;
  transition: color 0.2s;
}

.tag-header:hover .name {
  color: var(--accent);
}

.tag-header .num {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--accent);
  min-width: 28px;
  flex-shrink: 0;
}

.tag-header .name {
  font-size: clamp(14px, 1.2vw, 18px);
  font-weight: 600;
  color: var(--fg);
  flex: 1;
  transition: color 0.2s;
  letter-spacing: -0.01em;
}

.tag-header .tag-arrow {
  font-size: 20px;
  color: var(--muted);
  transition: transform 0.3s ease, color 0.2s;
  flex-shrink: 0;
}

.tag.active .tag-arrow {
  transform: rotate(90deg);
  color: var(--accent);
}

.tag.active .name {
  color: var(--accent);
}

.tag-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.tag.active .tag-body {
  max-height: 200px;
}

.tag-body p {
  padding: 0 0 20px 44px;
  font-size: clamp(13px, 0.95vw, 15px);
  color: rgba(240, 240, 240, 0.55);
  line-height: 1.75;
}

.tag-open-end .num {
  font-size: 16px;
}

@media (max-width: 768px) {
  .s2-accordion {
    margin-top: 2rem;
  }

  .tag-body p {
    padding-left: 0;
  }

  .s2-desc {
    max-width: 100%;
  }
}
