/* ctf-hosting.css */
.section{padding:clamp(26px,3.2vw,44px) 0}
.section.tight{padding:clamp(18px,2.4vw,36px) 0}

.hero-rail{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:14px}
.hero-rail .rail{height:76px;border-radius:999px;background:linear-gradient(180deg,rgba(255,138,92,.75),rgba(255,138,92,.15))}
.badge3d-wrap{width:var(--badge-size,96px);height:var(--badge-size,96px);min-width:84px;min-height:84px;position:relative}
.badge3d .badge3d-core{position:absolute;inset:0}
.badge3d .badge3d-img{position:absolute;inset:10% 10% 10% 10%;width:80%;height:80%;object-fit:contain;opacity:1;display:block}

.anthem{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));border:1px solid var(--edge);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.anthem-title{margin:.1rem 0 .25rem}
.anthem-sub{color:var(--muted);margin:0}
.anthem-points{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.anthem-points li{padding:6px 10px;border:1px solid var(--edge);border-radius:999px;background:rgba(255,255,255,.02);font-size:.92rem;color:#cfd6dd}

.program-card{position:relative;border:1px solid var(--edge);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));box-shadow:var(--shadow)}
.program-card::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:6px;border-top-left-radius:18px;border-top-right-radius:18px}
.program-card.paid::before{background:linear-gradient(90deg,rgba(255,138,92,.7),rgba(255,138,92,0))}
.program-card.free::before{background:linear-gradient(90deg,rgba(116,168,255,.7),rgba(116,168,255,0))}
.pc-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:16px 16px 8px}
.pc-kicker{padding:6px 10px;border-radius:999px;border:1px dashed rgba(255,138,92,.45);color:#ffd3c6;background:rgba(255,138,92,.08);font-weight:800;letter-spacing:.04em}
.program-card.free .pc-kicker{border-color:rgba(116,168,255,.5);color:#cfe0ff;background:rgba(116,168,255,.12)}
.pc-title{margin:0}
.pc-chip{margin-left:auto;padding:6px 10px;border-radius:999px;border:1px solid var(--edge);background:rgba(255,255,255,.04);color:#ffd3c6}
.pc-badge{margin-left:auto;background:rgba(116,168,255,.14);border:1px solid rgba(116,168,255,.5);color:#cfe0ff;padding:6px 10px;border-radius:999px}
.pc-body{padding:8px 16px 16px}
.pc-lede{margin:.1rem 0 .5rem;color:#cfd6dd}
.pc-list{list-style:none;margin:0 0 10px 0;padding:0;display:grid;gap:8px}
.pc-list li{padding:8px 10px;border:1px solid var(--edge);border-radius:12px;background:rgba(255,255,255,.02)}
.pc-row{display:grid;grid-template-columns:1fr;gap:12px;margin-top:8px}
.pc-block{border:1px solid var(--edge);border-radius:14px;padding:12px;background:rgba(255,255,255,.02)}
.pc-label{font-weight:900;letter-spacing:.03em;margin-bottom:6px}
.pc-mini{list-style:disc;margin:0;padding-left:1.2rem;display:grid;gap:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:6px 10px;border:1px solid var(--edge);border-radius:999px;background:rgba(255,255,255,.04);font-size:.92rem}
.chip.byoi{border-color:rgba(255,138,92,.45);color:#ffd3c6}
.chip.managed{border-color:rgba(116,168,255,.5);color:#cfe0ff}
.muted{color:var(--muted);margin:.25rem 0 0}
.pc-note{margin-top:10px;color:var(--muted)}

.why-strip{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.wcard{grid-column:span 4;background:var(--panel-strong);border:1px solid var(--edge);border-radius:var(--radius);padding:14px}
.wcard h4{margin:.1rem 0 .3rem}
.wcard p{margin:0;color:var(--muted)}
@media(max-width:980px){.wcard{grid-column:span 12}}

.cta-ribbon.alt{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid var(--edge);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:14px}
@media(max-width:720px){.cta-ribbon.alt{flex-direction:column;align-items:flex-start}}
.cta-line{font-weight:900;letter-spacing:.03em}
.cta-sub{color:var(--muted);margin-top:2px}
.text-cta{color:#ffd3c6;text-decoration:none;border-bottom:1px dotted rgba(255,138,92,.45);padding-bottom:2px;display:inline-flex;align-items:center;gap:8px;font-weight:900;letter-spacing:.03em}
.text-cta span{opacity:.8;transform:translateX(0);transition:transform .18s ease,opacity .18s ease}
.text-cta:hover{color:#fff;border-bottom-color:rgba(255,179,157,.8)}
.text-cta:hover span{transform:translateX(2px);opacity:1}
.text-cta.big{font-size:1.05rem}
