@layer components {
    .checklist {
        --check-size: 20px;
        --check-offset: 3px;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .checklist__item {
        display: flex;
        align-items: flex-start;
        gap: 12px;
    }

    .checklist__icon {
        flex: none;
        width: var(--check-size);
        height: var(--check-size);
        margin-top: var(--check-offset);
        color: var(--fg-accent);
    }

    .checklist__title {
        display: block;
        font-weight: 600;
    }

    .checklist--inline {
        --check-size: 16px;
        --check-offset: 0;
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 16px;
        margin-top: 4px;
        font-size: 14px;
        font-weight: 500;
    }

    .checklist--inline .checklist__item {
        flex: 0 1 auto;
        align-items: center;
        gap: 8px;
        min-width: 0;
    }

    @container hero-text (width < 640px) {
        .checklist--inline {
            --check-size: 14px;
            gap: 14px;
            font-size: 13px;
        }

        .checklist--inline .checklist__item {
            gap: 6px;
        }
    }

    @media (width < 1200px) {
        @container hero-text (width < 580px) {
            .checklist--inline {
                --check-size: 16px;
                display: grid;
                grid-auto-columns: minmax(0, 1fr);
                grid-auto-flow: column;
                align-self: stretch;
                gap: 12px;
                font-size: 14px;
                line-height: 1.35;
            }

            .checklist--inline .checklist__item {
                flex-direction: column;
                align-items: center;
                gap: 6px;
                overflow-wrap: break-word;
                -webkit-hyphens: auto;
                hyphens: auto;
                text-align: center;
            }

            .checklist--inline .checklist__item > span:last-child {
                max-width: 100%;
            }
        }

        @container hero-text (width < 400px) {
            .checklist--inline {
                font-size: 13px;
            }
        }

        @container hero-text (width < 300px) {
            .checklist--inline {
                gap: 8px;
            }
        }
    }

    .checklist--compact {
        --check-size: 18px;
        gap: 10px;
    }

    .checklist--compact .checklist__item {
        gap: 10px;
    }

    .checklist--dense {
        --check-size: 18px;
        --check-offset: 4px;
        gap: 8px;
        font-size: 16px;
    }

    .checklist--dense .checklist__item {
        gap: 10px;
    }

    .checklist__plus {
        flex: none;
        margin-top: var(--plus-offset, 0);
        color: var(--fg-accent);
        font-weight: 600;
    }

    .checklist--divided {
        padding-top: 18px;
        border-top: 1px solid var(--line);
    }

    .checklist--feature-grid,
    .checklist--feature-rows {
        --check-size: 22px;
    }

    .checklist--feature-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
        gap: 24px 40px;
    }

    .checklist--feature-grid .checklist__item,
    .checklist--feature-rows .checklist__item {
        gap: 14px;
    }

    .checklist--feature-rows {
        --check-offset: 2px;
        gap: 0;
        border-top: 1px solid var(--line);
    }

    .checklist--feature-rows .checklist__item {
        padding-block: 18px;
        border-bottom: 1px solid var(--line);
    }
}
