.section {
    width: 100%;
    padding-bottom: 56px;
    margin-bottom: 34px;
    column-count: 2;
    column-gap: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6,1 L11,6 L6,11 L1,6 Z' fill='none' stroke='%23C0C0C0' stroke-width='1.5'/%3E%3C/svg%3E"),
    linear-gradient(
            to right,
            #E0E0E0 calc(50% - 14px),
            transparent calc(50% - 14px),
            transparent calc(50% + 14px),
            #E0E0E0 calc(50% + 14px)
    );
    background-size: 12px 12px, 100% 1px;
    background-position: center calc(100% - 14px), center calc(100% - 20px);
    background-repeat: no-repeat, no-repeat;
}

.section-last {
    width: 100%;
    padding-bottom: 24px;
    column-count: 2;
    column-gap: 20px;
}

.section > *,
.section-last > * {
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
}

/*
 * A heading in the article body keeps its bottom margin. The site-wide
 * h1-h6 reset in styles.css zeroes it with !important — both the physical
 * and the logical property — so both have to be answered here to give the
 * 10px that styles.css's own h2 rule asks for.
 */
.item-group h2 {
    margin-block-end: 10px !important;
    margin-bottom: 10px !important;
}

.article-page .breadcrumb {
    font-size: 12px;
    margin-bottom: 18px;
}

.article-page .breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.article-page .breadcrumb a:hover {
    text-decoration: underline;
}

.article {
    max-width: 820px;
    margin: 0 auto;
}

.article-title {
    font-size: 2.6rem;
    margin-top: 30px;
    margin-bottom: 10px;
    line-height: 1.25;
}

.article-meta {
    font-size: 0.95rem;
    opacity: 0.75;
    margin-top: 12px;
    margin-bottom: 28px;
}

figure {
    margin: 32px 0;
    color: #666666;
    width: 100%;
}

figure img {
    width: 100%;
    border-radius: 6px;
    border: 1px solid #E0E0E0;
}

.container figure img {
    max-width: 395px;
    break-inside: avoid;
}

.article-figure figcaption,
.embedded-figure figcaption {
    margin-top: 6px;
    font-size: 0.9rem;
    opacity: 0.7;
}

blockquote {
    padding: 18px 24px;
    background: #FFFFFF;
    border-left: 4px solid #E0E0E0;
    font-style: italic;
    font-size: 1.15rem;
    line-height: 1.55;
    margin: 0 0 28px;
    break-inside: avoid;
}

blockquote p {
    font-size: 1.25rem;
    margin-bottom: 8px;
    break-inside: avoid;
}

blockquote cite {
    font-size: 0.85rem;
    font-style: normal;
    opacity: 0.65;
    display: block;
    break-inside: avoid;
}

.article ul,
.article ol {
    break-inside: avoid;
}

.related-section {
    margin-top: 35px;
}

.infobox {
    background: #f2f2f5;
    border-left: 4px solid black;
    border-radius: 0 4px 4px 0;
    padding: 16px 20px;
    margin: 0 0 28px;
    break-inside: avoid;
}

.infobox-title {
    font-size: 20px;
    font-weight: bold;
    color: black;
    margin-bottom: 10px;
    display: block;
}

.infobox-lines {
    list-style: none;
    padding: 0;
    margin: 0;
}

.infobox-lines li {
    padding: 5px 0;
    border-bottom: 1px solid #d8d8e2;
    font-size: 0.93rem;
}

.infobox-lines li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.qa {
    margin: 0 0 28px;
    break-inside: avoid;
}

.qa .qa-question {
    margin-bottom: 4px;
}

.qa .qa-answer {
    margin: 0;
}

.qa .qa-label {
    font-weight: bold;
}

.conversation {
    border-left: 4px solid black;
    padding: 4px 0 4px 20px;
    margin: 0 0 28px;
}

.conversation-meta {
    font-size: 0.85rem;
    color: #55555f;
    margin: 0 0 16px;
}

.conversation-meta span + span::before {
    content: " · ";
}

.conversation-turn {
    margin-bottom: 16px;
    break-inside: avoid;
}

.conversation-turn:last-child {
    margin-bottom: 0;
}

.conversation-question,
.conversation-answer {
    padding: 10px 14px;
    border-radius: 4px;
}

.conversation-question {
    background: #ebebf1;
    margin-bottom: 4px;
}

.conversation-answer {
    background: #f7f7fa;
    margin: 0;
}

.conversation-speaker {
    font-weight: bold;
}

.article-table {
    overflow-x: auto;
    margin-bottom: 28px;
    break-inside: avoid;
}

.container table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.93rem;
    break-inside: avoid;
}

.container table th {
    background: #0029f1;
    color: #ffffff;
    padding: 9px 14px;
    text-align: left;
    font-weight: 600;
    white-space: nowrap;
}

.container table td {
    padding: 7px 14px;
    border-bottom: 1px solid #d8d8e2;
}

.container table tr:nth-child(even) td {
    background: #f2f2f5;
}

.container table tr:hover td {
    background: #e8e8f0;
}

.article-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.article-foot .right {
    margin-left: auto;
}

.social-link {
    display: inline-block;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #6a6a78;
    text-decoration: none;
    transition: color 0.15s ease;
}

.social-link svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
    display: block;
}

.social-link-facebook:hover,
.social-link-facebook:focus-visible {
    color: #0866ff;
}

.social-link-mastodon:hover,
.social-link-mastodon:focus-visible {
    color: #6364ff;
}

.social-link-bluesky:hover,
.social-link-bluesky:focus-visible {
    color: #1185fe;
}

.social-link-x:hover,
.social-link-x:focus-visible {
    color: #000000;
}

.social-link-linkedin:hover,
.social-link-linkedin:focus-visible {
    color: #0a66c2;
}

.social-link-instagram:hover,
.social-link-instagram:focus-visible {
    color: #ff0069;
}

.social-link:focus-visible {
    outline: 2px solid #037afa;
    outline-offset: 2px;
}
