@keyframes prestasiGlow {
    0%,100% { transform:translateY(0) scale(1); opacity:.75; }
    50% { transform:translateY(-10px) scale(1.03); opacity:1; }
}

.prestasi-page-body {
    background:#f8faf8;
}

.prestasi-public-page {
    background:linear-gradient(180deg,#fbfdfb 0%,#fff 46%,#f3f8f5 100%);
}

.prestasi-hero {
    position:relative;
    overflow:hidden;
    padding:50px 0 38px;
    background:
        radial-gradient(circle at 12% 16%,rgba(196,216,204,.45),transparent 29%),
        radial-gradient(circle at 86% 8%,rgba(240,209,141,.26),transparent 25%),
        linear-gradient(135deg,#fff,#eef6f1);
}

.prestasi-hero::after {
    content:'';
    position:absolute;
    right:7%;
    bottom:-92px;
    width:220px;
    height:220px;
    border:1px solid rgba(117,157,137,.18);
    border-radius:50%;
    animation:prestasiGlow 5.5s ease-in-out infinite;
}

.prestasi-hero-grid {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:24px;
    align-items:end;
}

.prestasi-hero-stats {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.prestasi-hero-stats div {
    min-height:112px;
    padding:16px 12px;
    background:rgba(255,255,255,.86);
    border:1px solid #e4eee8;
    border-radius:16px;
    box-shadow:0 16px 34px rgba(84,101,91,.08);
    text-align:center;
}

.prestasi-hero-stats strong {
    display:block;
    color:#315446;
    font-size:1.55rem;
    font-weight:800;
    line-height:1.1;
}

.prestasi-hero-stats small {
    display:block;
    margin-top:7px;
    color:#78867f;
    font-size:.62rem;
    font-weight:800;
    line-height:1.35;
    text-transform:uppercase;
}

.prestasi-list {
    padding-top:30px;
}

.prestasi-public-card {
    position:relative;
    isolation:isolate;
}

.prestasi-public-card::after {
    content:'';
    position:absolute;
    right:14px;
    bottom:14px;
    z-index:-1;
    width:70px;
    height:70px;
    background:radial-gradient(circle,rgba(212,163,74,.17),transparent 70%);
    border-radius:50%;
}

.prestasi-preview {
    position:relative;
    display:block;
    width:100%;
    padding:0;
    overflow:hidden;
    background:#eef3ef;
    border:0;
}

.prestasi-preview img {
    display:block;
    width:100%;
    height:245px;
    object-fit:cover;
    object-position:center;
    transition:transform .35s ease, filter .35s ease;
}

.prestasi-preview span {
    position:absolute;
    right:12px;
    bottom:12px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:8px 11px;
    color:#fff;
    background:rgba(47,64,57,.78);
    border-radius:999px;
    font-size:.68rem;
    font-weight:800;
    backdrop-filter:blur(10px);
}

.prestasi-public-card:hover .prestasi-preview img {
    filter:saturate(1.05);
    transform:scale(1.04);
}

.prestasi-subtitle {
    display:-webkit-box;
    margin:-2px 0 8px;
    overflow:hidden;
    color:#557063;
    font-size:.76rem;
    font-weight:800;
    line-height:1.4;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}

.prestasi-meta {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:12px;
}

.prestasi-meta span,
.prestasi-modal-badges span {
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:30px;
    padding:7px 9px;
    color:#5d7168;
    background:#f8fbf9;
    border:1px solid #e7f0ea;
    border-radius:999px;
    font-size:.62rem;
    font-weight:800;
}

.prestasi-meta i,
.prestasi-modal-badges i {
    color:#c99a45;
}

.pdf-link i {
    color:#c94d45;
}

.prestasi-modal .modal-header {
    background:
        linear-gradient(135deg,rgba(255,255,255,.92),rgba(243,249,245,.94)),
        radial-gradient(circle at 95% 0%,rgba(210,163,74,.22),transparent 28%);
}

.prestasi-modal-info strong {
    color:#315446;
    font-size:1rem;
    font-weight:800;
    line-height:1.45;
}

.prestasi-modal-badges {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.prestasi-modal .modal-body > img {
    background:#f7faf8;
}

@media (max-width:991.98px) {
    .prestasi-hero-grid {
        grid-template-columns:1fr;
    }

    .prestasi-hero-stats {
        max-width:520px;
    }
}

@media (max-width:575.98px) {
    .prestasi-hero {
        padding:36px 0 28px;
    }

    .prestasi-hero-stats {
        grid-template-columns:1fr;
    }

    .prestasi-hero-stats div {
        min-height:auto;
        text-align:left;
    }

    .prestasi-preview img {
        height:220px;
    }
}
