/* Shared compact footer: keep this file aligned in Flask and Next. */
.site-footer, .pub-footer { margin-top: 2rem; border-top: 1px solid var(--border); background: rgba(12, 18, 32, .88); text-align: center; color: var(--muted); }
.site-footer .site-footer-inner { padding: 1.1rem 0 1.2rem; gap: .35rem; }
.pub-footer { padding: 1.1rem 1rem 1.2rem; }
.pub-footer .social-row { margin-bottom: .5rem; }
.site-footer .social-link { width: 30px; height: 30px; }
.pub-footer .social-icon { width: 30px; height: 30px; }
.pub-footer .footer-description, .site-footer-copy p.footer-description { margin: .3rem 0; max-width: none; font-size: .82rem; line-height: 1.6; }
.footer-description strong, .site-footer .footer-brand-text { font-family: Georgia, serif; font-size: .85rem; letter-spacing: .06em; color: var(--text); }
.footer-legal { display: flex; align-items: baseline; justify-content: center; flex-wrap: wrap; column-gap: .5rem; row-gap: .1rem; font-size: .74rem; line-height: 1.6; color: #8d9db6; }
.footer-compact-links { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; }
.footer-compact-links > a { display: inline-flex; align-items: center; min-height: 32px; }
.footer-compact-links a { color: var(--primary); text-decoration: none; }
.footer-compact-links a:hover { text-decoration: underline; }
.footer-compact-links > span { color: #5e6f86; }
.footer-policies { position: relative; text-align: left; }
.footer-policies > summary { display: flex; align-items: center; gap: .35rem; min-height: 32px; list-style: none; cursor: pointer; color: var(--primary); white-space: nowrap; }
.footer-policies > summary::-webkit-details-marker { display: none; }
.footer-policies > summary::marker { content: ''; }
.footer-policies > summary:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-policies > summary svg { width: 9px; height: 6px; flex: none; transition: transform .15s ease; }
.footer-policies[open] > summary svg { transform: rotate(180deg); }
.footer-policy-panel { position: absolute; bottom: calc(100% + .5rem); left: 50%; z-index: 50; transform: translateX(-50%); width: 16rem; max-width: calc(100vw - 2rem); max-height: min(60vh, 25rem); overflow-y: auto; overscroll-behavior: contain; box-sizing: border-box; padding: .5rem; background: #152033; border: 1px solid rgba(151, 169, 201, .24); border-radius: 14px; box-shadow: 0 5px 24px rgba(0, 0, 0, .35); }
.footer-policies:not([open]) > .footer-policy-panel { display: none; }
.footer-policy-panel ul { list-style: none; padding: 0; margin: 0; }
.footer-policy-panel ul + ul { border-top: 1px solid var(--border); margin-top: .35rem; padding-top: .35rem; }
.footer-policy-panel li { margin: 0; padding: 0; }
.footer-policy-panel a { display: flex; align-items: center; min-height: 38px; box-sizing: border-box; padding: .45rem .7rem; border-radius: 7px; font-size: .8rem; line-height: 1.4; color: var(--text); text-decoration: none; }
.footer-policy-panel a:hover, .footer-policy-panel a:focus-visible { background: rgba(103, 165, 255, .1); color: var(--text); text-decoration: none; }
.footer-policies > summary:focus-visible, .footer-compact-links a:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; border-radius: 4px; }
.site-footer .footer-credit-line { margin-top: .2rem; font-size: .67rem; line-height: 1.5; color: #8d9db6; }
.site-footer .footer-credit-line a { color: #a6b6cc; }
@media (pointer: coarse) { .footer-policy-panel a { min-height: 44px; } }
@media (prefers-reduced-motion: reduce) { .footer-policies > summary svg { transition: none; } }
