/* Public layout only; administration and field workspaces have their own shells. */
.public-site { min-height: 100vh; height: auto; display: flex; flex-direction: column; --public-ink: #173d31; --public-green: #246447; --public-border: #e0e9e3; }
.public-main { flex: 1 0 auto; min-width: 0; }
.public-main:focus { outline: none; }
.public-container { width: min(100% - 3rem, 1320px); margin-inline: auto; }
.public-header { position: sticky; top: 0; z-index: 1030; background: #fff; box-shadow: 0 4px 20px #142f2410; }
.public-header a, .public-footer a { text-decoration: none; }
.public-header :is(a, button):focus-visible, .public-footer a:focus-visible { outline: 3px solid #699c37; outline-offset: 4px; }
.public-skip-link { position: fixed; top: .75rem; left: 1rem; z-index: 1100; padding: .8rem 1rem; background: #fff; color: #173d31; border: 2px solid #246447; border-radius: 6px; transform: translateY(-180%); }
.public-skip-link:focus { transform: translateY(0); }
.public-utility { background: #f2f6f2; border-bottom: 1px solid var(--public-border); color: #526658; font-size: .75rem; }
.public-utility-inner, .public-utility-contact { display: flex; align-items: center; gap: 1.75rem; }
.public-utility-inner { justify-content: space-between; min-height: 34px; padding-block: .35rem; }
.public-utility-inner > span { min-width: 0; overflow-wrap: anywhere; }
.public-utility-contact { flex-shrink: 0; }
.public-utility a { color: #3a5846; display: inline-flex; align-items: center; gap: .5rem; }
.public-utility a:hover { color: #173d31; text-decoration: underline; }
.public-navbar { padding: 0; box-shadow: none; }
.public-nav-inner { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 1.5rem; min-height: 90px; }
.public-brand { display: flex; align-items: center; gap: .8rem; min-width: 0; color: var(--public-ink); max-width: 280px; padding-block: .75rem; }
.public-brand:hover { color: var(--public-green); }
.public-brand img { width: 48px; height: 48px; flex-shrink: 0; object-fit: contain; }
.public-brand > span { min-width: 0; }
.public-brand strong { display: block; font-size: 1.3rem; font-weight: 750; letter-spacing: .1em; line-height: 1.2; overflow-wrap: anywhere; }
.public-brand small { display: block; font-size: .74rem; line-height: 1.5; color: #56695e; margin-top: .3rem; overflow-wrap: anywhere; }
.public-menu { flex-grow: 0; min-width: 0; gap: 1.25rem; }
.public-nav-list { display: flex; align-items: center; gap: .3rem; list-style: none; margin: 0; padding: 0; }
.public-nav-link { display: flex; align-items: center; gap: .5rem; min-height: 44px; padding: .7rem .8rem; color: #42554b; font: inherit; font-size: .875rem; font-weight: 600; border: 0; border-radius: 6px; background: transparent; }
.public-nav-link:hover, .public-nav-link:focus-visible, .public-nav-link.show { color: #174e34; background: #f1f6f1; }
.public-nav-link[aria-current="page"], .public-nav-link.is-active { color: #174e34; background: #edf4ea; }
.public-services-toggle .bi, .public-account-toggle .bi-chevron-down { font-size: .65rem; }
.public-header .dropdown-menu { padding: .5rem; margin-top: .6rem; border: 1px solid var(--public-border); border-radius: 10px; box-shadow: 0 16px 40px #142f241c; }
.public-services-menu { width: 340px; }
.public-header .dropdown-item { display: flex; align-items: center; gap: .75rem; min-height: 44px; padding: .65rem .75rem; white-space: normal; border-radius: 5px; color: #334f40; font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
.public-header .dropdown-item .bi { flex-shrink: 0; color: #3d7957; font-size: 1rem; }
.public-header .dropdown-item:hover, .public-header .dropdown-item:focus, .public-header .dropdown-item[aria-current="page"] { background: #edf4ea; color: #174e34; }
.public-menu-label { padding: .6rem .75rem .3rem; font-size: .65rem; text-transform: uppercase; letter-spacing: .15em; color: #697b6f; font-weight: 700; }
.public-account { border-left: 1px solid var(--public-border); padding-left: 1.25rem; flex-shrink: 0; }
.public-account-toggle { display: flex; align-items: center; justify-content: center; gap: .65rem; min-height: 44px; padding: .65rem .9rem; color: #fff; background: #245c40; border: 1px solid #245c40; border-radius: 6px; font-size: .8rem; font-weight: 600; }
.public-account-toggle:hover, .public-account-toggle:focus, .public-account-toggle.show { background: #19452e; color: #fff; }
.public-account-menu { width: 260px; max-width: calc(100vw - 3rem); }
.public-account-info { padding: .65rem .75rem; overflow-wrap: anywhere; }
.public-account-info strong, .public-account-info span { display: block; }
.public-account-info strong { font-size: .875rem; color: #173d31; }
.public-account-info span { font-size: .75rem; color: #62746a; margin-top: .25rem; }
.public-menu-toggle { display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 44px; padding: .35rem .65rem; border: 1px solid #cbd9d0; border-radius: 6px; background: #fff; color: #173d31; font-size: .8rem; }
.public-menu-toggle .bi { font-size: 1.5rem; }
.public-menu-toggle[aria-expanded="true"] { background: #edf4ea; border-color: #246447; }
.public-footer { background: #122f27; color: #c5d4ca; padding-top: 3.5rem; border-top: 4px solid #81a76b; }
.public-footer-intro { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-bottom: 2.75rem; border-bottom: 1px solid #ffffff24; }
.public-eyebrow { margin: 0 0 .65rem; color: #bbd4a8; text-transform: uppercase; letter-spacing: .14em; font-size: .68rem; font-weight: 650; }
.public-footer-intro h2 { font-size: clamp(1.6rem, 2.7vw, 2.35rem); line-height: 1.2; font-weight: 550; letter-spacing: -.035em; margin: 0; color: #fff; }
.public-contact-button { display: inline-flex; align-items: center; justify-content: center; gap: 1.5rem; min-height: 48px; padding: .8rem 1.2rem; border-radius: 6px; background: #d8eac7; color: #173d31; flex-shrink: 0; font-size: .875rem; font-weight: 650; }
.public-contact-button:hover { background: #ecf5e3; color: #122f27; }
.public-footer-grid { display: grid; grid-template-columns: 1.15fr .65fr 1.15fr 1.15fr; gap: 2.75rem; padding-block: 3.25rem; }
.public-footer-grid > * { min-width: 0; }
.public-footer .public-brand { color: #fff; padding-top: 0; }
.public-footer .public-brand small { color: #c5d4ca; }
.public-footer-logo { display: flex; align-items: center; justify-content: center; padding: .25rem; border-radius: 8px; background: #fff; flex-shrink: 0; }
.public-footer-brand p { font-size: .875rem; line-height: 1.75; margin: .8rem 0 1rem; overflow-wrap: anywhere; }
.public-footer-text-link { display: inline-flex; align-items: center; gap: .75rem; min-height: 44px; color: #d6e8c7; font-size: .8rem; }
.public-footer-heading { font-size: .85rem; font-weight: 650; color: #fff; margin: .25rem 0 1.15rem; }
.public-footer-links { list-style: none; padding: 0; margin: 0; }
.public-footer-links li + li { margin-top: .25rem; }
.public-footer-links a { display: inline-block; padding-block: .4rem; color: #c5d4ca; font-size: .82rem; line-height: 1.6; overflow-wrap: anywhere; }
.public-footer a:not(.public-contact-button):hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.public-footer-contact { display: flex; flex-direction: column; gap: .65rem; margin: 0; font-size: .82rem; line-height: 1.7; }
.public-footer-contact > * { display: flex; align-items: flex-start; gap: .7rem; color: #c5d4ca; }
.public-footer-contact a { padding-block: .25rem; }
.public-footer-contact .bi { color: #a5c58e; flex-shrink: 0; }
.public-footer-contact span { min-width: 0; overflow-wrap: anywhere; }
.public-footer-bottom { display: flex; align-items: center; gap: 1rem 2rem; flex-wrap: wrap; padding-block: 1.5rem; border-top: 1px solid #ffffff24; font-size: .72rem; line-height: 1.7; color: #b5c7bb; }
.public-footer-bottom > * { overflow-wrap: anywhere; }
.public-footer-bottom a { color: #d2e0d5; }
.public-footer-credit { margin-left: auto; }
@media (min-width: 1200px) { .public-menu-toggle { display: none; } }
@media (max-width: 1199.98px) {
    .public-nav-inner { min-height: 80px; gap: 0; }
    .public-brand { max-width: min(360px, calc(100% - 100px)); }
    .public-menu { flex-basis: 100%; width: 100%; max-height: calc(100dvh - 140px); overflow-y: auto; overscroll-behavior: contain; }
    .public-nav-list { flex-direction: column; align-items: stretch; gap: .2rem; padding-block: .75rem; border-top: 1px solid var(--public-border); }
    .public-nav-link { width: 100%; justify-content: space-between; min-height: 46px; padding: .7rem .85rem; }
    .public-header .dropdown-menu { position: static !important; transform: none !important; width: 100%; max-width: 100%; box-shadow: none; margin: .3rem 0 .5rem !important; background: #f6f8f5; }
    .public-account { padding: 1rem 0; border-left: 0; border-top: 1px solid var(--public-border); }
    .public-account-toggle { width: 100%; min-height: 46px; }
    .public-footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem 3.5rem; }
}
@media (max-width: 767.98px) {
    .public-container { width: calc(100% - 2rem); }
    .public-utility { display: none; }
    .public-nav-inner { min-height: 78px; }
    .public-brand { gap: .6rem; }
    .public-brand img { width: 40px; height: 40px; }
    .public-brand strong { font-size: 1.05rem; letter-spacing: .06em; }
    .public-brand small { font-size: .65rem; }
    .public-menu { max-height: calc(100dvh - 100px); }
    .public-footer { padding-top: 2.5rem; }
    .public-footer-intro { align-items: flex-start; flex-direction: column; gap: 1.5rem; padding-bottom: 2rem; }
    .public-footer-grid { padding-block: 2.25rem; gap: 2rem; }
    .public-footer-brand { grid-column: 1 / -1; }
    .public-footer-grid > :last-child { grid-column: 1 / -1; }
    .public-footer .public-brand { max-width: 100%; }
    .public-footer-links a { min-height: 44px; }
    .public-footer-contact a, .public-footer-bottom a { min-height: 44px; display: flex; align-items: center; }
    .public-footer-bottom { align-items: flex-start; gap: .6rem 1.5rem; }
    .public-footer-bottom > :first-child, .public-footer-credit { width: 100%; margin-left: 0; }
}
@media (max-width: 374.98px) {
    .public-menu-toggle span { display: none; }
    .public-brand { max-width: calc(100% - 60px); }
    .public-footer-grid { grid-template-columns: 1fr; }
}
@media print { .public-header, .public-footer, .public-skip-link { display: none; } }
