.research-single {
    max-width: var(--global-content-width);
    padding-inline: var(--global-content-edge-padding);
    padding-top: 4rem;
    padding-bottom: 4rem;
    margin-left: auto;
    margin-right: auto;

    .page-title {
        margin-bottom: 1rem;
        font-size: 2.5rem;
        line-height: 1.15;
        color: var(--global-palette3);
    }

    .research-meta {
        display: flex;
        flex-wrap: wrap;
        text-wrap: wrap;
        gap: 0.75rem 1.25rem;
        margin-bottom: 1.25rem;
        color: var(--global-palette4);
        p { margin: 0; }
    }

    .research-meta a {
        word-break: break-all;
        overflow-wrap: anywhere;
    }

    .research-image {
        overflow: hidden;
        margin-bottom: 1rem;
        height: 40px;

        img {
            height: 100%;
            display: block;
            object-fit: contain;
        }
    }

    .research-why {
        background: var(--global-palette8);
        border: 1px solid var(--outline-color);
        padding: 1rem;
        border-radius: 8px;
        margin-block: 2rem;
    }

    .research-summary {
        margin-bottom: 2rem;
    }

    .research-notes {
        margin-bottom: 2rem;
    }

    .research-section {
        background: var(--global-palette8);
        border: 1px solid var(--outline-color);
        border-radius: 1rem;
        padding: 1rem 1.25rem;
        margin-bottom: 1rem;

        > h2,
        > h3 {
            margin: 0 0 0.5rem 0;
            font-size: 1.15rem;
            color: var(--global-palette3);
        }

        p {
            margin: 0;
            color: var(--global-palette5);
            line-height: 1.6;
            font-size: 1rem;
        }
    }

    .research-content {
        background: var(--global-palette8);
        border: 1px solid var(--outline-color);
        border-radius: 1rem;
        padding: 1rem 1.25rem;
        margin-bottom: 1rem;
        color: var(--global-palette3);

        p {
            line-height: 1.7;
            margin: 0 0 1rem 0;
            color: var(--global-palette4);
        }

        h2, h3, h4 {
            color: var(--global-palette2);
            margin-top: 1.25rem;
            margin-bottom: 0.5rem;
        }

        ul, ol {
            padding-left: 1.2rem;
            margin: 0 0 1rem 0;
        }

        blockquote {
            margin: 1rem 0;
            padding: 0.75rem 1rem;
            border-left: 3px solid var(--global-palette2);
            background: var(--global-palette9);
            color: var(--global-palette4);
            border-radius: 0 0.5rem 0.5rem 0;
        }

        code {
            background: var(--global-palette9);
            padding: 0.1rem 0.35rem;
            border-radius: 4px;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
            font-size: 0.95em;
            border: 1px solid var(--outline-color);
        }

        pre code {
            display: block;
            padding: 1rem;
            line-height: 1.5;
            overflow: auto;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            margin: 1rem 0;
            border: 1px solid var(--outline-color);
            background: var(--global-palette9);
        }

        th, td {
            text-align: left;
            padding: 0.6rem 0.75rem;
            border-bottom: 1px solid var(--outline-color);
        }

        th {
            background: var(--global-palette8);
            color: var(--global-palette3);
        }
    }

    .research-tags-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;

        li {
            background-color: var(--global-palette7);
            color: var(--global-palette3);
            padding: 2px 10px;
            border-radius: 999px;
            font-size: 0.9rem;
            border: 1px solid var(--outline-color);
        }
    }

    .research-back {
        margin-top: 1rem;
    }

    @media (max-width: 767px) {
        padding-top: 1rem;

        .page-title {
            font-size: 1.75rem;
        }

        h2 {
            font-size: 1.3rem;
        }
    }
}
