/* Certificate templates only; existing galleries and case studies are unchanged. */
.sl-cert-page { --cert-ink:#163d35; --cert-muted:#526960; --cert-line:#dce7e1; background:#fff; }
.sl-cert-page main { overflow-wrap:anywhere; }
.sl-cert-page main *, .sl-cert-page main *::before, .sl-cert-page main *::after { box-sizing:border-box; }
.sl-cert-hero { padding:146px 0 56px; background:linear-gradient(120deg,#eef5ef,#f8faf7 70%); border-bottom:1px solid var(--cert-line); }
.sl-cert-breadcrumb { font-size:13px; color:var(--cert-muted); margin-bottom:30px; }
.sl-cert-breadcrumb a:hover { text-decoration:underline; }
.sl-cert-eyebrow { font-size:12px; font-weight:700; letter-spacing:.12em; color:#2e694d; margin-bottom:14px; }
.sl-cert-hero h1 { font-size:clamp(30px,4vw,50px); line-height:1.18; letter-spacing:-.025em; max-width:1000px; color:var(--cert-ink); }
.sl-cert-lead { max-width:780px; font-size:17px; line-height:1.85; color:var(--cert-muted); margin-top:22px; }
.sl-cert-list { padding:56px 0 64px; }
.sl-cert-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.sl-cert-card { min-width:0; border:1px solid var(--cert-line); border-radius:16px; background:#fff; overflow:hidden; transition:box-shadow .2s,border-color .2s; }
.sl-cert-card:hover { border-color:#9db9aa; box-shadow:0 12px 32px rgba(22,61,53,.08); }
.sl-cert-card-link { display:flex; flex-direction:column; height:100%; color:inherit; }
.sl-cert-card-link:hover { color:inherit; }
.sl-cert-page main a:focus-visible { outline:3px solid #247c5a; outline-offset:4px; }
.sl-cert-card-link:focus-visible { outline-offset:-4px !important; }
.sl-cert-preview { margin:18px 18px 0; aspect-ratio:210/297; padding:14px; background:#f3f5f2; display:flex; align-items:center; justify-content:center; border-radius:8px; }
.sl-cert-preview img { display:block; width:100%; height:100%; object-fit:contain; }
.sl-cert-placeholder { color:var(--cert-muted); font-size:16px; }
.sl-cert-card-copy { padding:24px; display:flex; flex-direction:column; align-items:flex-start; flex:1; }
.sl-cert-card-copy h2 { font-size:21px; line-height:1.4; color:var(--cert-ink); margin:0 0 12px; }
.sl-cert-card-copy p { color:var(--cert-muted); font-size:14px; line-height:1.8; margin:0 0 22px; }
.sl-cert-link { display:inline-flex; align-items:center; gap:12px; font-size:15px; font-weight:600; color:#246b45; }
.sl-cert-card-copy .sl-cert-link { margin-top:auto; padding-top:8px; }
.sl-cert-empty { display:none; color:var(--cert-muted); padding:30px 0; }
.sl-cert-grid:not(:has(.sl-cert-card)) + .sl-cert-empty { display:block; }
.sl-cert-note { font-size:13px; line-height:1.85; color:var(--cert-muted); padding-top:24px; margin-top:28px; border-top:1px solid var(--cert-line); }
.sl-cert-detail { padding:50px 0 64px; }
.sl-cert-reading { max-width:1040px; }
.sl-cert-content { font-size:16px; line-height:1.9; color:#344a41; }
.sl-cert-content h2,.sl-cert-content h3 { color:var(--cert-ink); line-height:1.4; margin:30px 0 14px; }
.sl-cert-content h2 { font-size:27px; }
.sl-cert-content h3 { font-size:22px; }
.sl-cert-content p { margin:0 0 18px; }
.sl-cert-content ul,.sl-cert-content ol { padding-left:24px; margin:16px 0 24px; }
.sl-cert-content ul { list-style:disc; }
.sl-cert-content ol { list-style:decimal; }
.sl-cert-content li { list-style:inherit; margin-bottom:8px; }
.sl-cert-content img,.sl-cert-original img { display:block; max-width:100% !important; width:auto; height:auto !important; margin:24px auto; object-fit:contain; }
.sl-cert-content table { display:block; max-width:100%; width:100% !important; overflow-x:auto; border-collapse:collapse; margin:24px 0; }
.sl-cert-content th,.sl-cert-content td { border:1px solid var(--cert-line); padding:12px 16px; text-align:left; min-width:130px; }
.sl-cert-content th { background:#f3f6f2; }
.sl-cert-content a { color:#246b45; text-decoration:underline; }
.sl-cert-original { margin:24px 0 0; }
.sl-cert-original[hidden] { display:none; }
.sl-cert-return { margin-top:30px; }
@media (max-width:1024px) { .sl-cert-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; } }
@media (max-width:600px) {
  .sl-cert-hero { padding:112px 0 36px; }
  .sl-cert-breadcrumb { margin-bottom:22px; }
  .sl-cert-lead { font-size:16px; }
  .sl-cert-list,.sl-cert-detail { padding:32px 0 42px; }
  .sl-cert-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .sl-cert-card-copy { padding:22px; }
  .sl-cert-content { font-size:15px; }
}
@media (prefers-reduced-motion:reduce) { .sl-cert-card { transition:none; } }
