.program-hero{padding:56px 28px 34px;}
.program-hero h1{font-size:clamp(2.35rem,5.5vw,4rem);max-width:820px;margin:8px 0 18px;}
.program-hero .lead{font-size:clamp(1.08rem,2vw,1.34rem);line-height:1.5;color:var(--muted);max-width:760px;margin:0;}
.program-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:30px;max-width:820px;}
.program-summary div{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:16px;}
.program-summary strong{display:block;font-size:1.42rem;line-height:1;margin-bottom:8px;}
.program-summary span{color:var(--muted);font-size:var(--xs);}
.program-library{padding-top:24px;padding-bottom:42px;}
.filter-panel{position:sticky;top:64px;z-index:20;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px;margin-bottom:22px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(12px);}
.filter-panel label{display:grid;gap:6px;font-size:var(--xs);font-weight:700;color:var(--muted);}
.filter-panel select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;font-size:var(--sm);padding:8px 34px 8px 11px;}
.filter-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 2px 18px;color:var(--muted);font-size:var(--sm);}
.clear-filters{border:0;background:transparent;color:var(--accent-strong);font:inherit;font-size:var(--sm);font-weight:700;cursor:pointer;padding:10px;}
.clear-filters[hidden]{display:none;}
.program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.program-card{display:flex;flex-direction:column;min-height:310px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--card);}
.program-card[hidden]{display:none;}
.program-card .ownership{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-strong);margin:0 0 9px;}
.program-card h2{font-size:1.3rem;margin:0 0 10px;}
.program-card .tagline{color:var(--muted);font-size:var(--sm);line-height:1.52;margin:0 0 14px;}
.program-card .how{color:var(--muted);font-size:.86rem;line-height:1.6;margin:0 0 18px;}
.program-card .how b{color:var(--ink);font-weight:650;}
.program-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;}
.program-meta span{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-family:var(--mono);font-size:.72rem;}
.program-link{display:inline-flex;align-items:center;gap:7px;margin-top:18px;color:var(--ink);font-size:var(--sm);font-weight:750;}
/* Third-party programs carry both a creator source and a Massiv guide; keep the
   pair tight rather than repeating the full top margin. */
.program-link + .program-link{margin-top:7px;}
.program-link::after{content:"→";color:var(--accent-strong);}
.program-link:hover{color:var(--accent-strong);}
.no-results{padding:34px;border:1px dashed var(--line);border-radius:14px;text-align:center;color:var(--muted);}
.program-notes{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;padding-top:34px;padding-bottom:70px;}
.program-notes>div,.program-notes aside{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--card);}
.program-notes h2{font-size:1.35rem;margin-bottom:12px;}
.program-notes p{color:var(--muted);font-size:var(--sm);margin:0 0 12px;}
.program-notes p:last-child{margin-bottom:0;}
.program-notes a{color:var(--accent-strong);font-weight:650;}
.program-faq{padding-bottom:70px;}
.program-faq h2{font-size:1.6rem;letter-spacing:-0.02em;margin-bottom:18px;}
.program-faq details{border:1px solid var(--line);border-radius:14px;background:var(--card);margin-bottom:10px;}
.program-faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 20px;cursor:pointer;font-weight:650;list-style:none;}
.program-faq summary::-webkit-details-marker{display:none;}
.program-faq summary::after{content:"+";font-family:var(--mono);font-weight:400;font-size:1.3rem;
  line-height:1;color:var(--muted);flex:none;}
.program-faq details[open] summary{color:var(--accent-strong);}
.program-faq details[open] summary::after{content:"–";}
.program-faq .ans{padding:0 20px 20px;color:var(--muted);font-size:var(--sm);line-height:1.65;margin:0;}
.program-faq .ans a{color:var(--accent-strong);font-weight:650;}
footer.site .social-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:17px;}
footer.site .social-links a{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;color:var(--muted);}
footer.site .social-links a:hover{color:var(--accent-strong);border-color:var(--accent-strong);}
footer.site .social-links svg{width:19px;height:19px;display:block;}
@media(max-width:900px){
  .program-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:680px){
  .program-hero{padding-top:38px;}
  .program-summary{grid-template-columns:1fr;}
  .filter-panel{position:static;grid-template-columns:1fr;padding:14px;gap:10px;}
  .program-grid{grid-template-columns:1fr;}
  .program-card{min-height:0;}
  .program-notes{grid-template-columns:1fr;}
}
