/* One footer. Local token defaults also support layouts.app before shell tokens load. */
.ns-one-footer, .landing-footer:has(.ns-one-footer), .ns-foot:has(.ns-one-footer) {
    --ns-bg: #202124;
    --ns-text: #e8eaed;
    --ns-border: #5f6368;
    background: var(--ns-bg);
}
.landing-footer:has(.ns-one-footer), .ns-foot:has(.ns-one-footer) { padding: 0; gap: 0; }
.landing-footer:has(.ns-one-footer) .landing-shell { width: 100%; padding-inline: var(--ns-space-2, 8px); }
.ns-one-footer {
    color: var(--ns-text);
    background: var(--ns-bg);
    font-family: Roboto, 'Segoe UI', system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    text-align: start;
    padding: var(--ns-space-2, 8px);
}
.ns-one-footer *, .ns-one-footer *::before, .ns-one-footer *::after { box-sizing: border-box; }
.ns-one-footer .ns-one-footer__groups--desktop { display: none; }
.ns-one-footer .ns-one-footer__group { min-width: 0; box-shadow: inset 0 -1px 0 var(--ns-border); }
.ns-one-footer :is(summary, h2) { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--ns-space-2, 8px); min-height: 48px; font-size: 16px; font-weight: 600; list-style: none; }
.ns-one-footer summary::-webkit-details-marker { display: none; }
.ns-one-footer summary::after { content: ''; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-inline-end: var(--ns-space-2, 8px); }
.ns-one-footer details[open] > summary::after { transform: rotate(225deg); }
.ns-one-footer .ns-foot-index { display: block; margin: 0; padding: 0; border: 0; }
.ns-one-footer .ns-foot-hd { display: none; }
.ns-one-footer ul { display: block; list-style: none; margin: 0; padding: 0; }
.ns-one-footer li { margin: 0; padding: 0; }
.ns-one-footer a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; padding: var(--ns-space-1, 4px); color: inherit; font-weight: 400; font-size: 16px; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; transition: transform var(--ns-dur-press, 80ms); }
.ns-one-footer :is(a, summary):focus-visible { outline: 2px solid var(--ns-focus-ring, #f59e0b); outline-offset: 2px; }
.ns-one-footer summary { cursor: pointer; transition: transform var(--ns-dur-press, 80ms); }
.ns-one-footer :is(a, summary):active { transform: translateY(1px) scale(.98); }
.ns-one-footer .ns-one-footer__contact ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--ns-space-2, 8px); }
.ns-one-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.ns-one-footer__legal { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
.ns-one-footer__social, .ns-one-footer__languages { display: flex; flex-wrap: wrap; align-items: center; }
.ns-one-footer__languages [aria-current] { text-decoration: underline; text-underline-offset: 4px; }
.ns-one-footer .ns-one-footer__copyright { width: 100%; margin: 0; font-size: 12px; line-height: 24px; }
@media (hover:hover) and (pointer:fine) {
    .ns-one-footer :is(a, summary):hover { text-decoration: underline; }
}
@media (min-width:576px) {
    .ns-one-footer .ns-one-footer__groups--mobile { display: none; }
    .ns-one-footer .ns-one-footer__groups--desktop { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ns-space-4, 16px); }
    .ns-one-footer .ns-one-footer__group { box-shadow: none; }
    .ns-one-footer .ns-one-footer__contact ul { display: block; }
    .ns-one-footer__legal { display: flex; flex-wrap: wrap; width: auto; }
    .ns-one-footer .ns-one-footer__copyright { width: auto; }
}
@media (min-width:1200px) {
    .ns-one-footer .ns-one-footer__groups--desktop { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (min-width:768px) {
    body:has(.alive-dock[data-alive-dock-state="collapsed"]) .ns-one-footer__bottom { padding-bottom: calc(72px + var(--ns-space-4, 16px)); }
}
@media (prefers-color-scheme:light) {
    .ns-one-footer, .landing-footer:has(.ns-one-footer), .ns-foot:has(.ns-one-footer) { --ns-bg: #fff; --ns-text: #202124; --ns-border: #dadce0; }
}
@media (prefers-reduced-motion:reduce) {
    .ns-one-footer *, .ns-one-footer *::after { transition: none !important; transform: none !important; }
}
