.public-home-shell {
    min-height: calc(100vh - var(--topbar-height));
    background:
        radial-gradient(circle at 20% 20%, rgb(36 125 161 / 9%), transparent 32%),
        linear-gradient(135deg, #f4f7fa, #eaf0f5);
}

.public-home {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(330px, 0.75fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
    width: min(1320px, calc(100% - 3rem));
    min-height: calc(100vh - var(--topbar-height));
    margin: 0 auto;
    padding: 4rem 0;
}

.public-copy {
    max-width: 800px;
}

.eyebrow {
    margin: 0 0 0.8rem;
    color: #23789d;
    font-size: 0.73rem;
    font-weight: 850;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.public-copy h1 {
    max-width: 800px;
    margin: 0;
    color: #122b43;
    font-size: clamp(2.6rem, 6vw, 5.35rem);
    line-height: 0.98;
    letter-spacing: -0.05em;
}

.home-lead {
    max-width: 730px;
    margin: 1.5rem 0 0;
    color: #52687b;
    font-size: clamp(1rem, 1.7vw, 1.18rem);
    line-height: 1.75;
}

.home-pillar-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2.5rem;
}

.home-pillar-grid > div {
    min-height: 180px;
    padding: 1.15rem;
    background: rgb(255 255 255 / 72%);
    border: 1px solid #d9e3ec;
    border-radius: 13px;
    box-shadow: 0 10px 30px rgb(18 36 59 / 5%);
}

.home-pillar-grid span,
.home-pillar-grid strong {
    display: block;
}

.home-pillar-grid span {
    margin-bottom: 1.3rem;
    color: #3388ad;
    font-size: 0.75rem;
    font-weight: 850;
}

.home-pillar-grid strong {
    color: #19354f;
}

.home-pillar-grid p {
    margin: 0.6rem 0 0;
    color: #687b8c;
    font-size: 0.85rem;
    line-height: 1.55;
}

.login-panel {
    width: 100%;
    max-width: 430px;
    justify-self: end;
}

.login-card {
    padding: clamp(1.6rem, 4vw, 2.5rem);
    background: #fff;
    border: 1px solid #dce5ed;
    border-radius: 20px;
    box-shadow: 0 24px 65px rgb(18 36 59 / 14%);
}

.login-card h2 {
    margin: 0;
    color: #152d44;
    font-size: 2rem;
}

.login-note {
    margin: 0.55rem 0 1.5rem;
    color: #687b8c;
}

.login-form {
    display: grid;
    gap: 0.7rem;
}

.login-form label {
    margin-top: 0.35rem;
    color: #41576a;
    font-size: 0.78rem;
    font-weight: 750;
}

.login-form input {
    width: 100%;
    height: 46px;
    padding: 0 0.8rem;
    color: #172d43;
    background: #fbfcfd;
    border: 1px solid #cbd7e1;
    border-radius: 8px;
}

.login-form input:focus {
    background: #fff;
    border-color: #3388ad;
    outline: 3px solid rgb(51 136 173 / 13%);
}

.login-form button {
    height: 47px;
    margin-top: 0.75rem;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
    background: #1b668c;
    border: 0;
    border-radius: 8px;
}

.login-form button:hover {
    background: #155574;
}

.form-errors {
    padding: 0.75rem;
    color: #8f332b;
    font-size: 0.85rem;
    background: #fff0ee;
    border: 1px solid #f0c7c2;
    border-radius: 8px;
}

.form-errors ul {
    margin: 0;
    padding-left: 1.1rem;
}

@media (max-width: 940px) {
    .public-home {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .login-panel {
        max-width: none;
        justify-self: stretch;
    }
}

@media (max-width: 680px) {
    .public-home {
        width: min(100% - 2rem, 1320px);
        padding: 2.5rem 0;
    }

    .home-pillar-grid {
        grid-template-columns: 1fr;
    }

    .home-pillar-grid > div {
        min-height: auto;
    }
}