/* Footer sits in the content column (grid col 2) of .page, below the
   main row. Padding matches .main so it lines up with the article. */
.footer {
    grid-column: 2;
    margin-top: 0.5em;
    padding: 1em 24px 16px;
    border-top: 1px solid var(--border);
}

/* Mobile: single-column grid, so the footer is in column 1. */
@media (max-width: 1024px) {
    .footer {
        grid-column: 1;
        padding: 1em 16px 16px;
    }
}

.footer-content {
    display: flex;
    align-items: center;
    gap: 12px;
}

.footer-text {
    color: var(--text-muted);
    line-height: 1.4;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3em 0.7em;
}

/* Middot between items, attached to each item except the last so a
   wrapped row never starts with an orphan separator. */
.footer-text > span:not(:last-child)::after {
    content: "·";
    margin-left: 0.7em;
    color: var(--text-muted);
    opacity: 0.7;
}

.footer-text a,
.footer-text a:visited {
    color: var(--text-muted);
    text-decoration: underline;
    text-decoration-color: var(--border);
    text-underline-offset: 3px;
}

.footer-text a:hover {
    color: var(--accent);
    text-decoration-color: currentColor;
}

/* Easter egg: the © symbol links to the 404 page. No underline. */
.footer-text a.footer-egg,
.footer-text a.footer-egg:visited {
    color: inherit;
    text-decoration: none;
}

/* PyPI + RSS icon links, grouped at the right of the footer row. */
.footer-icons {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}

.footer-pypi,
.footer-pypi:visited,
.footer-github,
.footer-github:visited,
.footer-rss,
.footer-rss:visited {
    display: inline-flex;
    align-items: center;
    color: var(--text-muted);
    text-decoration: none;
    opacity: 0.75;
    transition: opacity 0.15s ease, color 0.15s ease;
}

/* FontAwesome glyphs, sized to roughly match the RSS icon. The python
   logo's ink is shorter than the others, so nudge it up to match. */
.footer-github {
    font-size: 1.3em;
}

.footer-pypi {
    font-size: 1.4em;
}

.footer-rss {
    font-size: 0.9em;
}

.footer-pypi:hover,
.footer-github:hover,
.footer-rss:hover {
    color: var(--accent);
    opacity: 1;
}

.footer-text a.footer-egg:hover {
    color: var(--accent);
}

/* RSS glyph from a single svg file, colored via mask so it follows
   currentColor (muted, accent on hover). Shared with the blog banner. */
.rss-icon {
    display: inline-block;
    background-color: currentColor;
    -webkit-mask: url(../images/rss.svg) center / contain no-repeat;
    mask: url(../images/rss.svg) center / contain no-repeat;
}

.footer-rss .rss-icon {
    width: 1.4em;
    height: 1.4em;
}
