:root {
    --imc-bg: #0b1110;
    --imc-bg-soft: #111b18;
    --imc-bg-card: #16221e;
    --imc-text: #ecf4ef;
    --imc-muted: #aab8b1;
    --imc-line: rgba(236, 244, 239, 0.14);
    --imc-green: #53d18a;
    --imc-yellow: #e3c75f;
    --imc-orange: #e28b4b;
    --imc-red: #df564f;
    --imc-deep-red: #a92f36;
    --imc-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--imc-bg);
    color: var(--imc-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--imc-green); }
img { max-width: 100%; height: auto; }

.imc-container {
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
}

.imc-site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(11, 17, 16, 0.88);
    border-bottom: 1px solid var(--imc-line);
    backdrop-filter: blur(18px);
}
.imc-header-inner {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.imc-brand { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; letter-spacing: -0.03em; }
.imc-brand-mark {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--imc-green);
    color: #07100c;
    font-weight: 900;
}
.imc-brand-text { font-size: 1.15rem; }
.imc-menu { display: flex; align-items: center; gap: 18px; list-style: none; padding: 0; margin: 0; color: var(--imc-muted); font-weight: 650; }

.imc-hero {
    padding: 86px 0 70px;
    background:
        radial-gradient(circle at 80% 20%, rgba(83, 209, 138, 0.14), transparent 35%),
        radial-gradient(circle at 10% 0%, rgba(226, 139, 75, 0.12), transparent 38%),
        var(--imc-bg);
}
.imc-hero-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr); gap: 42px; align-items: center; }
.imc-eyebrow { color: var(--imc-green); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.78rem; font-weight: 800; margin: 0 0 12px; }
h1, h2, h3 { line-height: 1.05; letter-spacing: -0.045em; margin: 0; }
h1 { font-size: clamp(2.8rem, 7vw, 6.5rem); max-width: 900px; }
h2 { font-size: clamp(2rem, 4vw, 3.3rem); }
h3 { font-size: 1.25rem; }
.imc-hero-text { max-width: 760px; color: var(--imc-muted); font-size: 1.18rem; margin: 24px 0 0; }
.imc-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.imc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 20px;
    border-radius: 999px;
    background: var(--imc-green);
    color: #06100b;
    font-weight: 800;
}
.imc-button:hover { color: #06100b; filter: brightness(1.05); }
.imc-button-secondary { background: transparent; color: var(--imc-text); border: 1px solid var(--imc-line); }
.imc-button-secondary:hover { color: var(--imc-green); }

.imc-overall-panel, .imc-card, .imc-category-card, .imc-sidebar-card, .imc-empty-state {
    background: linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.02));
    border: 1px solid var(--imc-line);
    border-radius: 28px;
    box-shadow: var(--imc-shadow);
}
.imc-overall-panel { padding: 28px; text-align: center; }
.imc-panel-label { color: var(--imc-muted); margin: 0 0 18px; font-weight: 750; }
.imc-panel-note { color: var(--imc-muted); margin: 18px auto 0; max-width: 320px; font-size: 0.95rem; }

.imc-dial {
    --dial-color: var(--imc-green);
    width: 164px;
    aspect-ratio: 1;
    margin: 0 auto;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(var(--dial-color) calc(var(--score) * 1%), rgba(255,255,255,0.10) 0);
    position: relative;
}
.imc-dial::before {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: 50%;
    background: var(--imc-bg-soft);
}
.imc-dial-inner { position: relative; display: grid; place-items: center; gap: 2px; }
.imc-dial-score { font-size: 2.3rem; line-height: 1; font-weight: 900; letter-spacing: -0.06em; }
.imc-dial-label { color: var(--imc-muted); font-size: 0.78rem; font-weight: 850; text-transform: uppercase; letter-spacing: 0.08em; }
.score-low { --dial-color: var(--imc-green); }
.score-guarded { --dial-color: #b6d66d; }
.score-elevated { --dial-color: var(--imc-yellow); }
.score-high { --dial-color: var(--imc-orange); }
.score-severe { --dial-color: var(--imc-red); }

.imc-section { padding: 72px 0; }
.imc-section-dark { background: #08100e; border-block: 1px solid var(--imc-line); }
.imc-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.imc-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.imc-category-card { padding: 24px; display: grid; gap: 16px; min-height: 270px; }
.imc-category-card .imc-dial { width: 112px; margin: 0; }
.imc-category-card .imc-dial-score { font-size: 1.55rem; }
.imc-category-card p { color: var(--imc-muted); margin: 0; }

.imc-signal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.imc-signal-list { display: grid; gap: 18px; }
.imc-card { padding: 22px; }
.imc-signal-card { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 22px; align-items: center; }
.imc-signal-card-large { grid-column: 1 / -1; grid-template-columns: 180px minmax(0, 1fr); }
.imc-signal-card .imc-dial { width: 116px; }
.imc-signal-card-large .imc-dial { width: 150px; }
.imc-card-kicker, .imc-meta-row { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--imc-muted); font-size: 0.86rem; font-weight: 700; margin-bottom: 10px; }
.imc-card-title { font-size: clamp(1.35rem, 2vw, 2rem); margin-bottom: 12px; }
.imc-card-summary { color: var(--imc-muted); margin: 0 0 14px; }
.imc-read-more { color: var(--imc-green); font-weight: 800; }

.imc-page-hero { padding: 72px 0 44px; background: var(--imc-bg-soft); border-bottom: 1px solid var(--imc-line); }
.imc-page-hero p { color: var(--imc-muted); max-width: 760px; }
.imc-tax-hero, .imc-single-hero { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.imc-tax-hero .imc-dial, .imc-single-hero .imc-dial { flex: 0 0 auto; }
.imc-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; }
.imc-prose { color: var(--imc-muted); font-size: 1.05rem; }
.imc-prose h2, .imc-prose h3 { color: var(--imc-text); margin: 1.5em 0 0.5em; }
.imc-prose a { color: var(--imc-green); text-decoration: underline; text-underline-offset: 3px; }
.imc-sidebar-card { padding: 24px; position: sticky; top: 96px; }
.imc-sidebar-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.imc-sidebar-card dt { color: var(--imc-muted); }
.imc-sidebar-card dd { margin: 0; font-weight: 800; }
.imc-sidebar-card ul { padding-left: 20px; color: var(--imc-muted); }
.imc-empty-state { padding: 32px; grid-column: 1 / -1; }
.imc-pagination { color: var(--imc-muted); }

.imc-site-footer { border-top: 1px solid var(--imc-line); padding: 34px 0; color: var(--imc-muted); }
.imc-footer-inner { display: flex; justify-content: space-between; gap: 24px; }

@media (max-width: 860px) {
    .imc-hero-grid, .imc-content-grid, .imc-signal-grid { grid-template-columns: 1fr; }
    .imc-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .imc-signal-card, .imc-signal-card-large { grid-template-columns: 1fr; }
    .imc-card-score .imc-dial { margin: 0; }
    .imc-section-heading, .imc-tax-hero, .imc-single-hero, .imc-footer-inner { align-items: start; flex-direction: column; }
    .imc-sidebar-card { position: static; }
}

@media (max-width: 560px) {
    .imc-container { width: min(100% - 28px, 1180px); }
    .imc-hero { padding-top: 56px; }
    .imc-category-grid { grid-template-columns: 1fr; }
    .imc-header-inner { align-items: start; flex-direction: column; padding: 16px 0; }
    .imc-menu { flex-wrap: wrap; }
}

/* Methodology page */
.imc-methodology-hero {
    background:
        radial-gradient(circle at 80% 12%, rgba(83, 209, 138, 0.12), transparent 34%),
        radial-gradient(circle at 16% 0%, rgba(227, 199, 95, 0.10), transparent 32%),
        var(--imc-bg-soft);
}
.imc-methodology-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 32px;
    align-items: center;
}
.imc-methodology-callout, .imc-method-card {
    background: linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.025));
    border: 1px solid var(--imc-line);
    border-radius: 24px;
    box-shadow: var(--imc-shadow);
}
.imc-methodology-callout { padding: 24px; }
.imc-methodology-callout strong {
    display: block;
    color: var(--imc-green);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.78rem;
    margin-bottom: 10px;
}
.imc-methodology-callout p { margin: 0; color: var(--imc-muted); }
.imc-methodology-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 32px;
    align-items: start;
}
.imc-methodology-main {
    background: rgba(255,255,255,0.018);
    border: 1px solid var(--imc-line);
    border-radius: 28px;
    padding: clamp(24px, 4vw, 42px);
}
.imc-score-table { display: grid; gap: 10px; margin: 28px 0; }
.imc-score-table > div {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid var(--imc-line);
    border-radius: 16px;
    background: rgba(255,255,255,0.026);
}
.imc-score-table > div > span:first-child {
    color: var(--imc-green);
    font-weight: 900;
    letter-spacing: -0.02em;
}
.imc-factor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 26px 0 8px;
}
.imc-method-card { padding: 20px; }
.imc-method-card h3 { margin-bottom: 8px; }
.imc-method-card p { margin: 0; color: var(--imc-muted); }
.imc-methodology-sidebar hr {
    border: 0;
    border-top: 1px solid var(--imc-line);
    margin: 22px 0;
}
.imc-methodology-extra {
    margin-top: 38px;
    padding-top: 28px;
    border-top: 1px solid var(--imc-line);
}
@media (max-width: 860px) {
    .imc-methodology-hero-grid, .imc-methodology-layout, .imc-factor-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .imc-score-table > div { grid-template-columns: 1fr; }
}
