/* Public navigation and footer reuse the existing TidyBox palette and fonts. */
.tb-public-nav *, .tb-public-language *, .tb-public-footer * { box-sizing: border-box; }
body.tb-has-public-nav { padding-top: max(0px, calc(var(--tb-public-header-height, 76px) - 76px)); }
.tb-public-nav [hidden], .tb-public-language [hidden] { display: none !important; }
.tb-public-nav .tb-topnav__inner { gap: .5rem 1rem; height: auto; min-height: 76px; flex-wrap: wrap; padding-block: .4rem; }
.tb-public-nav .tb-topnav__actions { gap: .5rem; flex-wrap: wrap; justify-content: flex-end; min-width: 0; max-width: 100%; }
.tb-public-nav .tb-topnav__brand { min-height: 44px; text-decoration: none; }
.tb-public-navigation { display: none; }
.tb-public-nav.is-open .tb-public-navigation {
    display: flex; flex-direction: column; position: absolute; inset-inline: 0; top: 100%;
    max-height: calc(100dvh - var(--tb-public-header-height, 76px)); overflow-y: auto; padding: .75rem 1rem 1.25rem;
    background: var(--tb-dark); border-top: 1px solid var(--tb-primary);
}
.tb-public-group { position: relative; }
.tb-public-nav button, .tb-public-nav a { font-family: inherit; }
.tb-public-group__toggle, .tb-public-direct, .tb-public-mobile-login {
    display: flex; align-items: center; justify-content: space-between; gap: .4rem;
    min-height: 44px; width: 100%; padding: .65rem .6rem; border: 0; border-radius: 8px;
    color: var(--tb-bg); background: transparent; font-size: .94rem; font-weight: 600;
    text-decoration: none; cursor: pointer; text-align: start;
}
.tb-public-nav :is(a, button):focus-visible, .tb-public-language :is(a, button):focus-visible {
    outline: 2px solid var(--tb-accent); outline-offset: 2px;
}
.tb-public-dropdown { padding: .5rem; background: var(--tb-night); border-radius: 12px; }
.tb-public-dropdown a {
    display: flex; align-items: center; min-height: 44px; padding: .6rem .75rem;
    color: var(--tb-bg); text-decoration: none; border-radius: 8px; font-size: .94rem;
}
.tb-public-dropdown a:hover, .tb-public-group__toggle:hover, .tb-public-direct:hover { background: var(--tb-primary); }
.tb-public-dropdown__heading { margin: .6rem .75rem .2rem; color: var(--tb-accent-soft); font-size: .82rem; font-weight: 700; }
.tb-public-nav .tb-public-start { min-height: 44px; padding: .65rem 1rem; white-space: normal; max-width: 100%; text-align: center; font-size: .9rem; text-decoration: none; }
.tb-public-nav .tb-public-desktop-login { display: none; }
.tb-public-avatar { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; border-radius: 50%; background: var(--tb-primary); color: var(--tb-bg); font-weight: 700; text-decoration: none; }
.tb-public-nav .tb-public-dashboard { padding-inline: .3rem; min-height: 44px; }
.tb-public-language { position: relative; color: inherit; }
.tb-public-language > button { display: flex; align-items: center; justify-content: center; gap: .3rem; min-width: 44px; min-height: 44px; padding: .5rem; border: 0; border-radius: 10px; background: transparent; color: inherit; font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; }
.tb-public-nav .tb-public-language { color: var(--tb-bg); }
.tb-public-language img { width: 20px; height: auto; flex-shrink: 0; }
.tb-public-language__menu { position: absolute; inset-inline-end: 0; top: 100%; z-index: 80; width: 230px; max-width: calc(100vw - 24px); max-height: min(60vh, 430px); overflow-y: auto; overscroll-behavior: contain; margin: .25rem 0 0; padding: .5rem; list-style: none; background: var(--tb-surface); color: var(--tb-text); border: 1px solid var(--tb-border); border-radius: 12px; box-shadow: var(--landing-shadow); }
.tb-public-language__menu a { display: flex; align-items: center; gap: .75rem; min-height: 44px; padding: .5rem; color: var(--tb-text); text-decoration: none; border-radius: 8px; }
.tb-public-language__menu a:hover, .tb-public-language__menu a[aria-current] { background: var(--tb-bg-soft); color: var(--tb-text); }
.tidybox-footer.tb-public-footer { padding-block: 2rem 1rem; min-width: 0; max-width: 100vw; overflow-wrap: anywhere; }
.tb-public-footer .tidybox-footer__inner { max-width: 1320px; }
.tb-public-footer__columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-bottom: 1.5rem; }
.tb-public-footer__column h2 { margin: 0 0 .5rem; font-size: 1rem; color: var(--tb-accent-soft); font-weight: 700; }
.tb-public-footer__column { min-width: 0; }
.tb-public-footer__column a, .tb-public-footer__column button { display: flex; align-items: center; min-height: 44px; width: 100%; padding: .4rem 0; border: 0; background: transparent; color: inherit; text-align: start; text-decoration: none; font: inherit; cursor: pointer; }
.tb-public-footer .tidybox-footer__top { border-top: 1px solid var(--tb-primary); padding-top: 1rem; gap: .5rem 1rem; }
.tb-public-footer .tb-public-language { margin-inline-start: auto; }
.tb-public-footer .tb-public-language__menu { top: auto; bottom: 100%; }
.tb-public-legal-content { padding-top: 76px; }
@media (min-width: 760px) { .tb-public-footer__columns { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1180px) {
    .tb-public-nav .tb-topnav__toggle { display: none; }
    .tb-public-nav .tb-public-desktop-login { display: inline-flex; min-height: 44px; }
    .tb-public-navigation, .tb-public-nav.is-open .tb-public-navigation { display: flex; flex-direction: row; flex-wrap: wrap; max-width: 100%; align-items: center; gap: .25rem; position: static; padding: 0; overflow: visible; max-height: none; background: transparent; border: 0; }
    .tb-public-group__toggle, .tb-public-direct { width: auto; white-space: nowrap; }
    .tb-public-mobile-login { display: none; }
    .tb-public-dropdown { position: absolute; top: calc(100% + .5rem); inset-inline-start: 0; width: max-content; min-width: 260px; max-width: 360px; max-height: calc(100dvh - 100px); overflow-y: auto; box-shadow: var(--landing-shadow); }
    [data-public-group="resources"] .tb-public-dropdown { inset-inline-start: auto; inset-inline-end: 0; }
}
@media (max-width: 1179px) { .tb-public-nav .tb-topnav__toggle { display: inline-flex; } }
@media (max-width: 480px) {
    .tb-public-nav .tb-topnav__inner { gap: .4rem; padding: .4rem .65rem; height: auto; min-height: 76px; }
    .tb-public-nav .tb-topnav__actions { gap: .25rem; flex: 1; min-width: 0; flex-wrap: wrap; justify-content: flex-end; }
    .tb-public-nav .tb-public-start { padding-inline: .7rem; white-space: normal; max-width: 100%; text-align: center; }
    .tb-public-nav .tb-public-language > button { padding-inline: .25rem; }
    .tb-public-nav .tb-public-language > button img { display: none; }
    .tb-public-nav .tb-public-dashboard { font-size: .8rem; }
    .tb-public-footer__columns { gap: 1rem; }
}
