/* Footer: grouped columns (shop, learn, policies, contact), then legal, badges and payments. */
.ft-footer { padding: 56px 0 34px; border-top: 1px solid rgba(74,153,232,.25); background: #04080f; color: #a8b4c3; }
.ft-footer a { color: #c9d6e4; text-decoration: none; }
.ft-footer a:hover, .ft-footer a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ft-grid { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)); gap: 34px; }
.ft-brand strong { display: block; margin-bottom: 8px; color: #fff; font-family: 'Fraunces', serif; font-size: 1.35rem; }
.ft-brand p { margin: 0 0 10px; line-height: 1.6; max-width: 34ch; }
.ft-brand .ft-llc { font-size: .82rem; color: #8b99aa; }
.ft-col h3 { margin: 0 0 14px; color: #fff; font-family: Inter, sans-serif; font-size: .95rem; font-weight: 700; letter-spacing: 0; }
.ft-col a { overflow-wrap: anywhere; }
.ft-col { display: flex; flex-direction: column; gap: 10px; font-size: .92rem; }
.ft-col h3 { margin-bottom: 4px; }
.ft-col address { font-style: normal; line-height: 1.6; }
.ft-legal { margin-top: 40px; padding-top: 26px; border-top: 1px solid rgba(74,153,232,.18); text-align: center; font-size: .84rem; line-height: 1.7; color: #8b99aa; }
.ft-legal p { margin: 0 auto 8px; max-width: 78ch; }
.ft-footer .footer-social { justify-content: center; margin: 22px 0 0; }
.ft-footer .footer-trust-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 24px 0 0; }
.ft-footer .accepted-payments { margin: 22px auto 0; width: auto; max-width: 78ch; text-align: center; font-size: .78rem; line-height: 1.6; color: #8b99aa; }
.ft-seo { margin: 22px auto 0; max-width: 900px; text-align: center; }
.ft-seo summary { display: inline-block; cursor: pointer; color: #8b99aa; font-size: .8rem; }
.ft-seo summary:focus-visible { outline: 2px solid #21c4ff; outline-offset: 3px; }
.ft-seo nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; margin-top: 12px; font-size: .8rem; }
@media (max-width: 900px) { .ft-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ft-brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .ft-footer { padding-top: 42px; } .ft-grid { gap: 28px 20px; } .ft-grid > .ft-col:last-of-type { grid-column: 1 / -1; } }
