.post__title {
    text-wrap: balance;
}

.post__body h2,
.post__body h3,
.post__body h4,
.post__body h5,
.post__body h6 {
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}

.post__body img {
    max-width: 100%;
    height: auto;
    transition: opacity 0.3s ease;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
}

.post__body .img-shimmer img {
    opacity: 0;
}

.post__body .img-shimmer {
    background: linear-gradient(90deg, #3a3c4e 25%, #44475a 50%, #3a3c4e 75%);
    background-size: 200% 100%;
    animation: img-shimmer 1.5s infinite;
    min-height: 100px;
    border-radius: 4px;
}

@keyframes img-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Keep breadcrumb items on a single line and truncate when too wide.
   Exempt the first item from truncation so it remains fully visible. */
.breadcrumb {
    display: flex;
    flex-wrap: nowrap;
    overflow: hidden;
    align-items: center;
}
.breadcrumb .breadcrumb-item {
    min-width: 0; /* allow flex items to shrink */
}
/* Don't truncate the first breadcrumb (e.g. "Home") */
.breadcrumb .breadcrumb-item:first-child,
.breadcrumb .breadcrumb-item:first-child a,
.breadcrumb .breadcrumb-item:first-child .breadcrumb-item.active {
    overflow: visible;
    white-space: nowrap;
    text-overflow: clip;
    flex: 0 0 auto;
}
/* Truncate all other breadcrumb items with ellipsis */
.breadcrumb .breadcrumb-item:not(:first-child) {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1 1 auto;
}
.breadcrumb .breadcrumb-item:not(:first-child) a,
.breadcrumb .breadcrumb-item:not(:first-child).active {
    display: inline-block;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
