/* Public article media: preserve the canonical aspect ratio without allowing
 * inline illustrations to escape the reading column. Blocksy applies
 * `.is-layout-constrained > :where(...)` with the same specificity as a
 * component class, so the scoped rule below intentionally wins that layout
 * rule without changing the theme globally. */
.lipp-inline-image {
    display: block;
    width: min(100%, var(--theme-block-max-width, var(--wp--style--global--content-size, 750px))) !important;
    max-width: min(100%, var(--theme-block-max-width, var(--wp--style--global--content-size, 750px))) !important;
    margin: 1.5rem auto !important;
    box-sizing: border-box;
}

article .entry-content.is-layout-constrained > figure.lipp-inline-image {
    width: min(100%, var(--theme-block-max-width, var(--wp--style--global--content-size, 750px))) !important;
    max-width: min(100%, var(--theme-block-max-width, var(--wp--style--global--content-size, 750px))) !important;
    margin-inline: auto !important;
}

.lipp-inline-image img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
}

.lipp-image-caption {
    margin-top: .5rem;
    color: #646970;
    font-size: .875rem;
    line-height: 1.5;
}

@media (max-width: 600px) {
    .lipp-inline-image {
        width: 100%;
    }
}

/*
 * Author card appended to Lipp-generated articles. The component inherits
 * typography and text colors from the active theme and uses theme variables
 * when available. No global selectors or fixed brand palette are introduced.
 */
.lipp-author-card {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    /* Keep the author card in the same reading column as the article. Some
     * themes append `the_content` inside a wider wrapper than their prose;
     * the canonical content-size variables preserve the theme's column while
     * the 100% fallback keeps custom themes and narrow screens fluid. */
    width: min(100%, var(--theme-block-max-width, var(--wp--style--global--content-size, 750px)));
    max-width: min(100%, var(--theme-block-max-width, var(--wp--style--global--content-size, 750px)));
    margin-inline: auto;
    margin-block: clamp(2rem, 5vw, 4rem) 0;
    padding: clamp(1rem, 3vw, 1.5rem);
    box-sizing: border-box;
    color: inherit;
    background: var(--theme-palette-color-8, transparent);
    border: 1px solid rgba(127, 127, 127, .35);
    border-radius: var(--theme-border-radius, .5rem);
    font-family: inherit;
    line-height: 1.6;
}

.lipp-author-card__avatar {
    flex: 0 0 auto;
    width: clamp(3.5rem, 12vw, 6rem);
}

.lipp-author-card__avatar a,
.lipp-author-card__image {
    display: block;
}

.lipp-author-card__image {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
}

.lipp-author-card__content {
    min-width: 0;
    flex: 1 1 auto;
}

.lipp-author-card__label {
    margin: 0 0 .25rem;
    color: inherit;
    font-size: .8125em;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .75;
}

.lipp-author-card__name {
    margin: 0 0 .5rem;
    font: inherit;
    font-size: 1.25em;
    font-weight: 700;
    line-height: 1.25;
}

.lipp-author-card__name a {
    color: inherit;
}

.lipp-author-card__bio {
    margin: 0;
    font-size: .95em;
}

.lipp-author-card__bio p {
    margin: 0;
}

@media (max-width: 600px) {
    .lipp-author-card {
        width: 100%;
        max-width: 100%;
        gap: .75rem;
        padding: 1rem;
    }

    .lipp-author-card__avatar {
        width: 4rem;
    }
}
