
.certs { background: var(--surface-2); border-top: 1px solid var(--hairline); position: relative; overflow: hidden; }
.certs::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 620px 320px at 88% -10%, color-mix(in srgb, var(--brand-primary) 9%, transparent), transparent 62%);
}
.certs-wrap { position: relative; }

.certs-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.certs-head-row .sec-head { margin: 0; text-align: right; }
.certs-nav { display: flex; gap: 10px; flex: none; }
.certs-nav button {
  width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; cursor: pointer;
  background: var(--card); border: 1px solid var(--hairline); color: var(--ink-2); font-size: 21px;
  transition: background .2s, color .2s, border-color .2s, transform .2s, opacity .2s;
}
.certs-nav button:hover { background: var(--brand-primary); color: #fff; border-color: var(--brand-primary); transform: translateY(-2px); }
.certs-nav button:disabled { opacity: .4; cursor: default; transform: none; background: var(--card); color: var(--ink-3); border-color: var(--hairline); }
@media (max-width: 640px){ .certs-head-row { flex-direction: column; align-items: stretch; } .certs-nav { justify-content: flex-end; } }

.certs-viewport { overflow: hidden; }
.certs-track {
  display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory;
  scroll-behavior: smooth; padding: 6px 2px 16px; margin: -6px -2px 0;
  scrollbar-width: none; -ms-overflow-style: none;
}
.certs-track::-webkit-scrollbar { display: none; }

.cert-card {
  scroll-snap-align: start; flex: 0 0 calc((100% - 60px) / 4); min-width: 230px;
  display: flex; flex-direction: column; background: var(--card);
  border: 1px solid var(--hairline); border-radius: 18px; overflow: hidden;
  transition: border-color .25s, box-shadow .3s var(--ease-out), transform .3s var(--ease-out);
}
.cert-card:hover { border-color: var(--hairline-2); box-shadow: 0 22px 48px rgba(11,18,32,.10); transform: translateY(-4px); }
@media (max-width: 1080px){ .cert-card { flex-basis: calc((100% - 40px) / 3); } }
@media (max-width: 820px){ .cert-card { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 540px){ .cert-card { flex-basis: 82%; } }

.cert-badge {
  position: relative; height: 170px; background:
    radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--brand-primary) 12%, var(--surface-3)), var(--surface-3));
  border-bottom: 1px solid var(--hairline);
}
.cert-badge image-slot { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.cert-badge .cert-ico {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px;
  color: var(--brand-primary-dark); pointer-events: none;
}
[data-theme="dark"] .cert-badge .cert-ico { color: color-mix(in srgb, var(--brand-primary) 72%, #fff); }
.cert-badge .cert-ico i { font-size: 46px; }
.cert-badge .cert-ico span {
  font-family: var(--font-mono); direction: ltr; font-size: 11px; letter-spacing: .03em;
  color: var(--ink-3); background: var(--card); border: 1px solid var(--hairline);
  border-radius: 7px; padding: 4px 10px;
}
.cert-seal {
  position: absolute; top: 12px; left: 12px; z-index: 2; width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center; color: #fff; font-size: 18px;
  background: var(--brand-gradient); box-shadow: 0 6px 16px color-mix(in srgb, var(--brand-primary) 36%, transparent);
}

.cert-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.cert-body h3 { margin: 0; font-size: 15.5px; font-weight: 600; line-height: 1.6; color: var(--ink); text-wrap: balance; }
.cert-body p { margin: 0; font-size: 12.5px; line-height: 1.8; color: var(--ink-3); }
.cert-body .cert-tag { margin-top: auto; padding-top: 8px; font-family: var(--font-mono); direction: ltr; font-size: 11px; color: var(--brand-primary-dark); }
[data-theme="dark"] .cert-body .cert-tag { color: color-mix(in srgb, var(--brand-primary) 70%, #fff); }

.certs-dots { display: flex; gap: 8px; justify-content: center; margin-top: 8px; }
.certs-dots button {
  width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
  background: var(--hairline-2); transition: width .25s, background .25s;
}
.certs-dots button.on { width: 26px; border-radius: 5px; background: var(--brand-primary); }
