/* ── Title (sama seperti halaman Page/Post) ── */
.pg-title-plain {
    font-size: clamp(1.5rem, 3.5vw, 2.4rem);
    font-weight: 800;
    color: #14161c;
    line-height: 1.2;
    margin: 0;
}

/* ── Group section (listing) ─────────────── */
.mb-group { margin-top: 40px; }
.mb-group:first-child { margin-top: 32px; }
.mb-group-title {
    font-size: 1.15rem;
    font-weight: 800;
    color: #111827;
    margin: 0 0 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid #e5e7eb;
}

/* ── Grid & Card (listing) ────────────────── */
.mb-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 20px;
}
.mb-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    border: 1px solid #e5e7eb;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    transition: transform .2s, box-shadow .2s;
}
.mb-card:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(0,0,0,.12); color: inherit; }
.mb-card-photo {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    display: block;
}
.mb-card-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f3f4f6;
    color: #9ca3af;
    font-size: 2.4rem;
}
.mb-card-body { padding: 14px 16px; }
.mb-card-name { font-size: 14px; font-weight: 700; color: #111827; margin: 0 0 2px; line-height: 1.35; }
.mb-card-sub { font-size: 12px; color: #6b7280; margin: 0; }

/* ── Empty (listing) ─────────────────────── */
.mb-empty { text-align: center; padding: 80px 0; color: #9ca3af; }
.mb-empty i { font-size: 3rem; display: block; margin-bottom: 12px; opacity: .4; }
.mb-empty p { font-size: 14px; margin: 0; }

/* ── CV Card (detail) — modern professional profile ── */
/* Palet identitas Sekolah Pascasarjana Unhas */
.cv-card {
    --cv-brown-dark: #744029;
    --cv-brown: #985535;
    --cv-gold: #E0A25C;
    --cv-black: #111010;
    --cv-cream: #EAE3DD;
    display: grid;
    grid-template-columns: 260px 1fr;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid var(--cv-cream);
    box-shadow: 0 4px 24px rgba(116,64,41,.10);
    margin-top: 8px;
}

.cv-side {
    background: linear-gradient(160deg, var(--cv-brown-dark) 0%, var(--cv-brown) 100%);
    padding: 40px 28px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    color: #fff;
}
.cv-photo {
    width: 128px;
    height: 128px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--cv-gold);
    box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.cv-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(234,227,221,.15);
    color: var(--cv-cream);
    font-size: 3rem;
}
.cv-name { font-size: 1.2rem; font-weight: 800; color: #fff; margin: 18px 0 4px; line-height: 1.3; }
.cv-role { font-size: 13px; color: var(--cv-cream); margin-bottom: 10px; }
.cv-badge {
    display: inline-block;
    background: var(--cv-gold);
    color: var(--cv-black);
    font-size: 11px;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 999px;
    margin-bottom: 16px;
    letter-spacing: .02em;
}
.cv-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #fff;
    text-decoration: none;
    background: rgba(17,16,16,.22);
    padding: 8px 14px;
    border-radius: 999px;
    transition: background .15s;
    word-break: break-all;
}
.cv-contact-link:hover { background: rgba(17,16,16,.38); color: var(--cv-gold); }

.cv-main { padding: 36px 40px; }
.cv-section-title {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--cv-brown-dark);
    margin: 0 0 20px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.cv-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 28px;
}
.cv-info-item {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--cv-cream);
}
.cv-info-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--cv-brown); }
.cv-info-value { font-size: 14.5px; color: var(--cv-black); font-weight: 500; }
.cv-section-title i { color: var(--cv-gold); }
.cv-empty { font-size: 13px; color: var(--cv-brown); margin: 0; }

@media (max-width: 768px) {
    .cv-card { grid-template-columns: 1fr; }
    .cv-info-grid { grid-template-columns: 1fr; }
    .cv-main { padding: 28px 24px; }
}
