/* ============================================================ FOOTER COMPONENT 4-column link grid + bottom bar with copyright ============================================================ */ .site-footer { background-color: var(--footer-bg); padding: 4rem 0 0; transition: background-color 0.4s ease; } /* ── Main grid ─────────────────────────────────────────── */ .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; padding-bottom: 3rem; border-bottom: 1px solid var(--color-border); } /* ── Brand column ──────────────────────────────────────── */ .footer-brand .header-logo { margin-bottom: 1rem; color: var(--color-heading); } [data-theme="midnight"] .site-footer .header-logo { color: #f0f6ff; } [data-theme="linen"] .site-footer .header-logo { color: #faf7f2; } [data-theme="linen"] .site-footer .logo-mark { color: #1c1208; } .footer-tagline { font-size: 0.9rem; color: var(--footer-text); line-height: 1.7; max-width: 240px; margin-bottom: 1.5rem; } .footer-social { display: flex; gap: 0.75rem; } .footer-social a { width: 36px; height: 36px; border-radius: var(--radius-sm); border: 1px solid var(--color-border); display: flex; align-items: center; justify-content: center; color: var(--footer-text); transition: all 0.2s ease; } .footer-social a:hover { border-color: var(--color-primary); color: var(--color-primary); background-color: var(--color-primary-soft); } .footer-social a svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } /* ── Link columns ──────────────────────────────────────── */ .footer-col-title { font-family: var(--font-heading); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-heading); margin-bottom: 1.25rem; } [data-theme="linen"] .site-footer .footer-col-title { color: #faf7f2; } [data-theme="midnight"] .site-footer .footer-col-title { color: #f0f6ff; } .footer-links { display: flex; flex-direction: column; gap: 0.7rem; } .footer-links a { font-size: 0.9rem; color: var(--footer-text); transition: color 0.2s ease; } .footer-links a:hover { color: var(--color-primary); } /* ── Bottom bar ────────────────────────────────────────── */ .footer-bottom { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem 0; gap: 1rem; flex-wrap: wrap; } .footer-copy { font-size: 0.82rem; color: var(--footer-text); } .footer-bottom-links { display: flex; gap: 1.5rem; } .footer-bottom-links a { font-size: 0.82rem; color: var(--footer-text); transition: color 0.2s ease; } .footer-bottom-links a:hover { color: var(--color-primary); } /* ── Responsive ─────────────────────────────────────────── */ @media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr; gap: 2rem; } .footer-bottom { flex-direction: column; align-items: flex-start; } }