/* Shared content styles for published articles and blog posts */

.article-content {
    font-size: 1rem;
    line-height: 1.8;
    color: #374151;
}

@media (min-width: 640px) {
    .article-content { font-size: 1.125rem; }
}

.article-content > *:first-child { margin-top: 0; }

.article-content h2 {
    font-size: 1.5rem; font-weight: 700; color: #111827;
    margin-top: 2.5rem; margin-bottom: 1rem;
}
@media (min-width: 640px) { .article-content h2 { font-size: 1.75rem; } }

.article-content h3 {
    font-size: 1.25rem; font-weight: 600; color: #111827;
    margin-top: 2rem; margin-bottom: 0.75rem;
}
@media (min-width: 640px) { .article-content h3 { font-size: 1.375rem; } }

.article-content h4 {
    font-size: 1.0625rem; font-weight: 600; color: #111827;
    margin-top: 1.5rem; margin-bottom: 0.5rem;
}
@media (min-width: 640px) { .article-content h4 { font-size: 1.125rem; } }

.article-content p { margin-bottom: 1.5rem; }

.article-content ul,
.article-content ol { margin-bottom: 1.5rem; padding-left: 1.5rem; }

.article-content li { margin-bottom: 0.5rem; }

.article-content blockquote {
    border-left: 4px solid #3b82f6;
    padding-left: 1.5rem; margin: 2rem 0;
    font-style: italic; color: #4b5563;
}

/* Plain img (not inside figure) */
.article-content > img,
.article-content p img {
    border-radius: 0.75rem; margin: 1.5rem 0;
    max-width: 100%; height: auto; display: block;
}

/* ── Image Row ── */
.article-content::after { content: ""; display: table; clear: both; }
.article-content .article-image-row-wrapper { margin: 1.5rem 0; }
.article-content .article-image-row-wrapper .image-row-caption {
    font-size: 0.8rem; color: #6b7280; text-align: center;
    padding: 0.5rem 0 0; font-style: italic; display: block;
}
.article-content .article-image-row { display: flex; gap: 8px; align-items: stretch; }
.article-content .article-image-row figure.article-figure {
    flex: 1 1 0; min-width: 0; margin: 0; overflow: hidden;
    float: none !important; width: auto !important; max-width: none !important;
}
.article-content .article-image-row figure.article-figure img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}

/* Image rotation */
.article-content .article-figure img[style*="rotate"] { transition: transform 0.2s ease; }

/* ── Figures ── */
.article-content figure.article-figure { margin-top: 1.5rem; margin-bottom: 1.5rem; line-height: 0; }
.article-content .article-figure img { width: 100%; height: auto; border-radius: 0.75rem; display: block; margin: 0; }
.article-content .article-figure--left  { float: left;  clear: left;  margin: 0.25rem 2rem 1.25rem 0; }
.article-content .article-figure--right { float: right; clear: right; margin: 0.25rem 0 1.25rem 2rem; }
.article-content .article-figure--center { margin-left: auto; margin-right: auto; }
.article-content .article-figure--full  { clear: both; width: 100%; }
.article-content .article-figure--left.article-figure--25,
.article-content .article-figure--right.article-figure--25  { width: 25%; }
.article-content .article-figure--left.article-figure--50,
.article-content .article-figure--right.article-figure--50  { width: 50%; }
.article-content .article-figure--left.article-figure--50  { margin-right: 0; }
.article-content .article-figure--right.article-figure--50 { margin-left: 0; }
.article-content .article-figure--left.article-figure--75,
.article-content .article-figure--right.article-figure--75  { width: 75%; }
.article-content .article-figure--center.article-figure--25  { max-width: 25%; }
.article-content .article-figure--center.article-figure--50  { max-width: 50%; }
.article-content .article-figure--center.article-figure--75  { max-width: 75%; }
.article-content .article-figure--center.article-figure--100 { max-width: 100%; }
.article-content figcaption {
    font-size: 0.85rem; color: #6b7280; text-align: center;
    padding: 0.5rem 0 0; font-style: italic; line-height: 1.4; display: block;
}

/* ── Video embeds ── */
.article-content .article-video {
    position: relative; padding-bottom: 56.25%; height: 0; clear: both;
    overflow: hidden; border-radius: 0.75rem; margin: 2rem 0; background: #000;
}
.article-content .article-video iframe {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;
}

/* ── Links ── */
.article-content a { color: #2563eb; text-decoration: underline; text-underline-offset: 2px; }
.article-content a:hover { color: #1d4ed8; }

/* ── Code ── */
.article-content pre {
    background: #1f2937; color: #f3f4f6; padding: 1.25rem;
    border-radius: 0.75rem; overflow-x: auto; margin: 2rem 0; font-size: 0.875rem;
}
@media (min-width: 640px) { .article-content pre { padding: 1.5rem; } }
.article-content code {
    background: #f3f4f6; padding: 0.125rem 0.375rem;
    border-radius: 0.25rem; font-size: 0.875em;
}
.article-content pre code { background: transparent; padding: 0; }

/* ── Tables ── */
.article-content table {
    border-collapse: collapse; width: 100%; margin: 2rem 0; clear: both;
    font-size: 0.875rem; display: block; overflow-x: auto; -webkit-overflow-scrolling: touch;
}
@media (min-width: 640px) { .article-content table { font-size: 0.9375rem; } }
.article-content thead { background: #f3f4f6; }
.article-content th {
    padding: 0.625rem 0.75rem; text-align: left; font-weight: 600;
    color: #111827; border-bottom: 2px solid #e5e7eb; white-space: nowrap;
}
@media (min-width: 640px) { .article-content th { padding: 0.75rem 1rem; } }
.article-content td { padding: 0.625rem 0.75rem; border-bottom: 1px solid #e5e7eb; }
@media (min-width: 640px) { .article-content td { padding: 0.75rem 1rem; } }
