/* Public layouts; shared header styles also apply to the lite layout. */

/* Shared footer: normal document flow and two link columns on mobile. */
#footer.public-footer { background: #172b45; line-height: 1.9; }
.public-footer .footer-link { color: #e2e8f0; min-height: 44px; }
.public-footer .footer-link:hover { color: #fff; text-decoration: underline !important; text-underline-offset: .3em; }
#footer.public-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: .25rem; }

.public-site #sidebar ul ul a { padding-inline-start: 30px !important; }

/* Full public layout. */
body.public-site { background: #f5f7fb; color: #24344b; display: flex; flex-direction: column; line-height: 1.9; }
.public-site .public-main { flex: 1; padding-top: 1.5rem; }
@media (min-width: 1200px) {
    .public-site .public-main { width: 96%; }
    .public-site #right-column,
    .public-site #left-column { width: 15%; min-width: 250px; }
    .public-site #center-column { width: 53.33333333%; }
}
#headerNavbar.public-header { background: #172b45 !important; }
#headerNavbar.public-header .nav-link { border-radius: .6rem; transition: color .2s, background-color .2s; }
#headerNavbar.public-header #nv .nav-link { color: #f1f5f9; font-weight: 500; }
#headerNavbar.public-header #nv .nav-link:is(:hover, :focus-visible) { color: #fff; background: #ffffff1a; }
#headerNavbar.public-header #nv :is(.nav-link, .dropdown-item, .dropdown-toggle) i { color: inherit !important; }
#headerNavbar.public-header .navbar-collapse { max-height: 70vh; overflow-y: auto; }
@media (min-width: 1400px) {
    #headerNavbar.public-header .navbar-collapse { max-height: none; overflow: visible; }
}
#headerNavbar.public-header .public-header-actions .btn { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
#headerNavbar.public-header .public-header-actions .btn:focus-visible { outline-color: white; }
.public-site #sidebar {
    position: static;
    width: 100%;
    height: auto !important;
    max-height: none;
    overflow: clip;
    border-radius: 1rem;
    box-shadow: 0 .2rem 1rem #172b4508 !important;

}
.public-site #sidebar > div:first-child { background: #172b45 !important; }
.public-site #groupSidebar, .public-site #subgroupSidebar { padding-bottom: 70px; }
.public-site #sidebar ul li a { transition: color .2s, background-color .2s; color: #848282; display: block; font-size: .97rem !important; font-weight: normal; padding: 10px; }
.public-site #sidebar ul li a:hover { background: #e6e3e3; }
.public-site .home-hero { background: linear-gradient(125deg, #e8f5f6, #edf2ff 65%, #fff); border: 1px solid #dfe8f2; }
.public-site .home-hero h1 { color: #172b45; line-height: 1.8; }
.public-site .home-hero .input-group { box-shadow: 0 .5rem 1.5rem #1734540a; }
.public-site .home-hero > .mb-3:last-child { margin-bottom: 0 !important; }
.public-site .home-section { overflow: hidden; }
.public-site .public-job-card { transition: border-color .2s, box-shadow .2s; }
.public-site .public-job-card:hover { border-color: #86aedc !important; box-shadow: 0 .5rem 1.5rem #17345412; }
.public-site .public-job-card img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; background: white; }
.public-site .public-job-card h3 { line-height: 1.9; overflow-wrap: anywhere; }
.public-site :is(a, button, input):focus-visible, .public-header :is(a, button):focus-visible { outline: 3px solid #276aca; outline-offset: 3px; }
.public-site #home-sectors { scroll-margin-top: 7rem; }
@media (min-width: 992px) {
    .public-site .public-job-column { max-width: 160px; }
}
@media (max-width: 575.98px) {
    .public-site .public-main { padding-inline: .75rem; }
    #headerNavbar.public-header > .container-fluid { gap: .375rem; }
    #headerNavbar.public-header .public-header-brand { flex: 1 1 0; flex-shrink: 1 !important; min-width: 0; max-width: 108px; }
    #headerNavbar.public-header .public-header-brand img { width: 100% !important; max-width: 100px; height: auto; }
    #headerNavbar.public-header .navbar-toggler { flex: 0 0 44px; min-height: 44px; }
    #headerNavbar.public-header .public-header-actions { gap: .375rem !important; }
    #headerNavbar.public-header .public-header-actions .btn { min-height: 44px; }

    .public-site .input-group-lg > .form-control { font-size: 1rem; min-width: 0; }
}
@media (max-width: 319.98px) {
    #headerNavbar.public-header > .container-fluid { padding-inline: .25rem; gap: .125rem; }
    #headerNavbar.public-header .public-header-actions { gap: .25rem !important; }
    #headerNavbar.public-header .public-header-actions .btn { padding-inline: .25rem !important; }
}
@media (prefers-reduced-motion: reduce) {
    .public-site *, .public-site *::before, .public-site *::after, .public-header *, .public-header *::before, .public-header *::after { transition: none !important; animation: none !important; }
}
