/* Shared footer: the existing navy, a restrained inverse palette and compact navigation. */
.dsf-footer { --footer-text: color-mix(in srgb, var(--dsf-color-surface) 84%, var(--dsf-color-primary)); --footer-muted: color-mix(in srgb, var(--dsf-color-surface) 68%, var(--dsf-color-primary)); --footer-rule: color-mix(in srgb, var(--dsf-color-surface) 18%, transparent); flex-shrink: 0; padding-block: var(--dsf-space-7) var(--dsf-space-4); background: var(--dsf-color-primary); color: var(--footer-text); }
.dsf-footer__columns { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 1.05fr) minmax(0, 0.9fr); gap: var(--dsf-space-6); }
.dsf-footer__branding { min-inline-size: 0; }
.dsf-footer__brand { display: inline-flex; align-items: center; gap: var(--dsf-space-3); max-inline-size: 100%; color: var(--dsf-color-surface); font-family: var(--dsf-font-heading); font-size: var(--dsf-text-lead); font-weight: 800; line-height: 1.2; letter-spacing: -0.035em; text-decoration: none; white-space: nowrap; }
.dsf-footer__brand:hover { color: var(--dsf-color-surface); }
.dsf-footer__brand-accent { color: var(--dsf-color-tint); }
.dsf-footer__domain { font-weight: 600; }
.dsf-footer__logo { flex-shrink: 0; inline-size: 2.25rem; block-size: 2.25rem; object-fit: contain; }
.dsf-footer__description { max-inline-size: 34ch; margin-block-start: var(--dsf-space-4); font-size: var(--dsf-text-small); }
.dsf-footer__trust { display: flex; align-items: start; gap: var(--dsf-space-2); max-inline-size: 34ch; margin-block-start: var(--dsf-space-4); color: var(--footer-muted); font-size: var(--dsf-text-small); }
.dsf-footer__trust svg { flex-shrink: 0; margin-block-start: 0.15em; }
.dsf-footer__navigation { min-inline-size: 0; }
.dsf-footer__navigation h2 { margin-block-end: var(--dsf-space-3); color: var(--dsf-color-surface); font-size: var(--dsf-text-body); font-weight: 700; line-height: 1.5; letter-spacing: normal; }
.dsf-footer__navigation ul { margin: 0; padding: 0; list-style: none; }
.dsf-footer__navigation li + li { margin-block-start: var(--dsf-space-1); }
.dsf-footer__navigation li > a, .dsf-footer__navigation li > span { display: inline-flex; align-items: center; min-block-size: 2rem; font-size: var(--dsf-text-small); line-height: 1.5; }
.dsf-footer__navigation a, .dsf-footer__bottom a { color: var(--footer-text); text-decoration: none; }
.dsf-footer__navigation a:hover, .dsf-footer__bottom a:hover { color: var(--dsf-color-surface); text-decoration: underline; text-underline-offset: 0.2em; }
.dsf-footer__navigation .dsf-footer__unavailable { color: var(--footer-muted); }
.dsf-footer__all-states { display: inline-flex; align-items: center; gap: var(--dsf-space-2); min-block-size: 2.75rem; margin-block-end: var(--dsf-space-2); color: var(--dsf-color-surface); font-size: var(--dsf-text-small); font-weight: 600; }
.dsf-footer__all-states svg { flex-shrink: 0; }
.dsf-footer a:focus-visible { outline: 3px solid var(--dsf-color-surface); outline-offset: 4px; border-radius: var(--dsf-radius-small); box-shadow: 0 0 0 2px var(--dsf-color-primary); }
.dsf-footer__bottom { display: flex; align-items: center; flex-wrap: wrap; gap: var(--dsf-space-3) var(--dsf-space-5); margin-block-start: var(--dsf-space-5); padding-block-start: var(--dsf-space-4); border-block-start: 1px solid var(--footer-rule); font-size: var(--dsf-text-small); }
.dsf-footer__bottom > p { color: var(--footer-muted); }
.dsf-footer__kmk { display: inline-flex; align-items: center; gap: var(--dsf-space-2); min-block-size: 2.75rem; margin-inline-start: auto; }
.dsf-footer__top { display: inline-flex; align-items: center; justify-content: center; gap: var(--dsf-space-2); min-block-size: 2.75rem; padding: var(--dsf-space-2) var(--dsf-space-3); border: 1px solid var(--footer-rule); border-radius: var(--dsf-radius-small); }
.dsf-footer__top svg, .dsf-footer__kmk svg { flex-shrink: 0; }
@media (max-width: 70rem) { .dsf-footer__columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dsf-space-6); } }
@media (max-width: 38rem) { .dsf-footer { padding-block-start: var(--dsf-space-6); } .dsf-footer__columns { grid-template-columns: minmax(0, 1fr); gap: var(--dsf-space-5); } .dsf-footer__navigation li > a, .dsf-footer__navigation li > span { min-block-size: 2.75rem; } .dsf-footer__bottom { justify-content: space-between; } .dsf-footer__bottom > p { flex-basis: 100%; } .dsf-footer__kmk { margin-inline-start: 0; } }
@media print { .dsf-footer { display: none; } }
