/* Public page shell: header, green hero, footer around the investor pages.
   The plugin's portal/application styling lives in assets/theme/portal-theme.css. */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body.jhim-sa-public {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: #f4f6f5;
    color: #111a15;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid #0b5d34; outline-offset: 2px; }

/* ── Header ───────────────────────────────────────────────────────────── */
.jhim-sa-site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid #e3e8e5;
}
.jhim-sa-site-inner {
    max-width: 1072px;
    margin: 0 auto;
    padding: 0 16px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.jhim-sa-site-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: #111a15;
    text-decoration: none;
    font-weight: 650;
    font-size: 16px;
    letter-spacing: -.01em;
}
.jhim-sa-site-brand span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jhim-sa-site-brand img { max-height: 36px; width: auto; border-radius: 8px; }
.jhim-sa-site-mark {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #043915;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}
.jhim-sa-site-nav { display: flex; gap: 4px; flex-shrink: 0; }
.jhim-sa-site-nav a {
    height: 36px;
    display: inline-flex;
    align-items: center;
    padding: 0 14px;
    border-radius: 8px;
    color: #5d6a63;
    text-decoration: none;
    font-size: 14px;
    font-weight: 550;
    transition: background .15s, color .15s;
}
.jhim-sa-site-nav a:hover { background: #f1f4f2; color: #111a15; }
.jhim-sa-site-nav a[aria-current="page"] { background: #e8f3ec; color: #0b5d34; }

/* ── Hero ─────────────────────────────────────────────────────────────── */
.jhim-sa-hero {
    padding: 48px 16px 112px;
    text-align: center;
    color: #fff;
    background:
        radial-gradient(700px 320px at 15% 0%, rgba(18, 183, 106, .28), transparent 70%),
        radial-gradient(600px 300px at 90% 100%, rgba(255, 255, 255, .08), transparent 70%),
        linear-gradient(160deg, #0b5d34 0%, #043915 100%);
}
.jhim-sa-page-title {
    margin: 0;
    color: #fff;
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.2;
}
.jhim-sa-page-subtitle {
    max-width: 560px;
    margin: 12px auto 0;
    color: rgba(255, 255, 255, .8);
    font-size: 16px;
}

/* ── Main (pulled up over the hero) ───────────────────────────────────── */
.jhim-sa-site-main {
    flex: 1;
    width: 100%;
    max-width: 1072px;
    margin: -72px auto 0;
    padding: 0 0 48px;
    position: relative;
}

.jhim-sa-site-footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 24px;
    max-width: 1072px;
    width: 100%;
    margin: 0 auto;
    padding: 24px 16px 32px;
    border-top: 1px solid #e3e8e5;
    color: #8a958f;
    font-size: 13px;
}

@media (max-width: 600px) {
    .jhim-sa-site-inner { height: auto; padding: 10px 12px; flex-direction: column; gap: 8px; }
    .jhim-sa-site-nav { width: 100%; }
    .jhim-sa-site-nav a { flex: 1; justify-content: center; padding: 0 8px; }
    .jhim-sa-hero { padding: 32px 16px 96px; }
    .jhim-sa-page-title { font-size: 26px; }
    .jhim-sa-page-subtitle { font-size: 15px; }
    .jhim-sa-site-main { margin-top: -64px; }
    .jhim-sa-site-footer { flex-direction: column; text-align: center; align-items: center; }
}
