.public-body {
    font-family: "DM Sans", system-ui, sans-serif;
    background: #f8fafc;
    color: #1e293b;
    --public-primary: #1e3a5f;
    --public-accent: #2d5a8a;
}

.public-body .btn-primary {
    --bs-btn-bg: var(--public-primary);
    --bs-btn-border-color: var(--public-primary);
    --bs-btn-hover-bg: var(--public-accent);
    --bs-btn-hover-border-color: var(--public-accent);
    --bs-btn-active-bg: var(--public-accent);
    --bs-btn-active-border-color: var(--public-accent);
}

.public-body .btn-outline-primary {
    --bs-btn-color: var(--public-primary);
    --bs-btn-border-color: var(--public-primary);
    --bs-btn-hover-bg: var(--public-primary);
    --bs-btn-hover-border-color: var(--public-primary);
    --bs-btn-active-bg: var(--public-accent);
    --bs-btn-active-border-color: var(--public-accent);
}

.public-body .text-primary,
.public-body .navbar-brand {
    color: var(--public-primary) !important;
}

.public-brand-logo {
    height: 36px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
}

.public-hero {
    background: linear-gradient(135deg, var(--public-primary) 0%, var(--public-accent) 100%);
    color: #fff;
    border-radius: 1rem;
    padding: 3rem 2rem;
    background-size: cover;
    background-position: center;
}

.public-hero-inner {
    max-width: 640px;
}

.public-section h2 {
    margin-bottom: 0.75rem;
}

.public-about-image {
    border-radius: 0.75rem;
    object-fit: cover;
    max-height: 280px;
}

.public-mentor-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 1rem 1.1rem;
}

.public-footer a {
    text-decoration: none;
}

.public-footer a:hover {
    text-decoration: underline;
}

.platform-ref-list .list-group-item {
    border: 0;
    border-bottom: 1px solid #eee;
}

.public-login-card {
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
    border: 1px solid #e2e8f0;
}

.public-login-card:hover {
    box-shadow: 0 4px 12px color-mix(in srgb, var(--public-primary) 18%, transparent);
    border-color: var(--public-accent);
}

@media (max-width: 575.98px) {
    .public-hero {
        border-radius: 0.75rem;
        padding: 2rem 1.25rem;
    }

    .public-hero .display-5 {
        font-size: 1.75rem;
    }

    .public-hero .lead {
        font-size: 1rem;
    }

    .navbar-brand span {
        max-width: 50vw;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}
