/* =============================================================================
   SITE FOOTER
   Uses --colour-paper surface (same as cards/panels) with a --colour-primary
   top border for visual separation. All colors follow the site's existing
   design tokens — no new colors introduced.
   ============================================================================= */

.site-footer {
    background-color: var(--colour-paper);
    border-top: 3px solid var(--colour-primary);
    padding: var(--space-48) 0 var(--space-32);
    margin-top: var(--space-64);
    margin-left: calc(-1 * clamp(16px, 5vw, 140px));
    margin-right: calc(-1 * clamp(16px, 5vw, 140px));
    font-family: var(--font-paragraph);
}

.footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 clamp(16px, 5vw, 140px);            /* matches navbar padding */
}

/* --- Navigation columns --------------------------------------------------- */

.footer-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-32);
    margin-bottom: var(--space-16);
}

.footer-heading {
    font-family: var(--font-header);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-lg);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--colour-primary);
    margin: 0 0 var(--space-8) 0;
}

.footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

.footer-col a {
    color: color-mix(in srgb, var(--colour-text) 65%, transparent);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 150ms ease-out;
}

.footer-col a:hover,
.footer-col a:focus-visible {
    color: var(--colour-primary);
    text-decoration: underline;
}

/* --- External links (Discord, Ko-fi) -------------------------------------- */

.footer-external {
    display: inline-flex;
    align-items: center;
    gap: var(--space-8);
}

.footer-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.footer-discord:hover,
.footer-discord:focus-visible {
    color: #5865F2 !important;
}

.footer-kofi:hover,
.footer-kofi:focus-visible {
    color: #FF5E5B !important;
}

/* --- Disclaimer ----------------------------------------------------------- */

.footer-disclaimer {
    border-top: 1px solid var(--colour-muted);
    padding-top: var(--space-16);
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

.footer-disclaimer p {
    margin: 0;
    font-size: 0.8rem;
    color: color-mix(in srgb, var(--colour-text) 55%, transparent);
    line-height: 1.6;
}

.footer-disclaimer a {
    color: color-mix(in srgb, var(--colour-primary) 80%, var(--colour-text));
    text-decoration: underline;
}

.footer-disclaimer a:hover,
.footer-disclaimer a:focus-visible {
    color: var(--colour-primary);
}

.footer-tcg-notice {
    font-style: italic;
    padding-top: var(--space-8);
}

/* --- Responsive ----------------------------------------------------------- */

@media (max-width: 768px) {
    .footer-nav {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-32) var(--space-16);
    }
}

@media (max-width: 480px) {
    .footer-nav {
        grid-template-columns: 1fr;
    }
}
