/* Navigation keeps a readable size and collapses before links become cramped. */
.nav-wrap { gap: 28px; }
.main-nav { gap: 26px; font-size: 18px; }
.main-nav > a:not(.button), .nav-dropdown > summary { font-size: 18px; font-weight: 650; }
.main-nav .button-nav { font-size: 16px; white-space: nowrap; }
.nav-dropdown { position: relative; }
.nav-dropdown > summary { display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; padding: 14px 0; line-height: 1.5; }
.nav-dropdown > summary::-webkit-details-marker { display: none; }
.dropdown-chevron { width: 8px; height: 8px; border-right: 2px solid; border-bottom: 2px solid; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.nav-dropdown[open] > summary { color: var(--blue); }
.nav-dropdown.is-current > summary { color: var(--blue); }
.services-menu a[aria-current="page"] { background: #eaf0e2; color: var(--blue); font-weight: 750; }
.nav-dropdown[open] .dropdown-chevron { transform: rotate(225deg) translate(-2px, -2px); }
.services-menu { position: absolute; z-index: 45; top: 100%; left: -28px; width: 368px; max-width: calc(100vw - 40px); max-height: calc(100dvh - 160px); overflow-y: auto; overscroll-behavior: contain; padding: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 20px 45px #15313824; }
.services-menu a { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 15px; border-radius: 4px; font-size: 17px; font-weight: 550; line-height: 1.45; }
.services-menu a > span:last-child:not(:first-child) { flex: none; }
.services-menu li a > span { font-size: 20px; color: var(--blue); }
.services-menu a:hover, .services-menu a:focus-visible { background: #eaf0e2; color: var(--ink); }
.services-menu .services-menu-overview { font-size: 15px; font-weight: 750; background: var(--lime); margin-bottom: 7px; }
.services-menu > p { border-top: 1px solid var(--line); margin: 8px 15px 2px; padding-top: 12px; font-size: 14px; line-height: 1.6; }
.services-browse-link { margin-top: 34px; }
@media (min-width: 1101px) and (max-width: 1240px) {
    .brand { width: 220px; }
    .main-nav { gap: 19px; }
    .nav-wrap { gap: 22px; }
    .main-nav .button-nav { padding-inline: 17px; gap: 14px; }
}
@media (max-width: 1100px) {
    html { scroll-padding-top: 105px; }
    .nav-wrap { height: 88px; }
    .menu-toggle { display: flex; align-items: center; gap: 11px; padding: 12px 0 12px 12px; background: none; border: 0; font-size: 16px; font-weight: 650; }
    .menu-lines { width: 23px; height: 15px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); position: relative; }
    .menu-lines:after { content: ''; position: absolute; top: 6px; left: 0; width: 23px; height: 1px; background: var(--ink); }
    .main-nav { display: none; position: absolute; left: 0; right: 0; top: 88px; padding: 18px 24px 25px; background: var(--paper); box-shadow: 0 22px 30px #183c4214; max-height: calc(100dvh - 160px); overflow-y: auto; gap: 5px; }
    .main-nav.is-open { display: flex; flex-direction: column; align-items: stretch; }
    .main-nav > a:not(.button), .nav-dropdown > summary { font-size: 18px; padding: 14px 4px; border-bottom: 1px solid var(--line); }
    .nav-dropdown > summary { justify-content: space-between; padding-right: 12px; }
    .main-nav .button-nav { margin-top: 12px; justify-content: space-between; min-height: 54px; font-size: 16px; }
    .services-menu { position: static; width: 100%; max-width: none; max-height: none; overflow: visible; margin: 8px 0 12px; box-shadow: none; border: 0; padding: 8px; background: #eef1e8; }
    .services-menu a { min-height: 47px; padding: 11px 13px; font-size: 17px; }
    .services-menu .services-menu-overview { font-size: 15px; }
    html:not(.js) .nav-wrap { height: auto; min-height: 88px; flex-wrap: wrap; padding-block: 20px; gap: 15px; }
    html:not(.js) .main-nav { display: flex; position: static; flex-basis: 100%; flex-direction: column; align-items: stretch; padding: 0; box-shadow: none; overflow: visible; max-height: none; gap: 5px; }
    html:not(.js) .main-nav > a:not(.button) { font-size: 18px; padding: 12px 4px; }
    html:not(.js) .main-nav .button { font-size: 16px; min-height: 50px; }
    html:not(.js) .menu-toggle { display: none; }
    html:not(.js) .site-header { position: static; }
}
@media (max-width: 480px) {
    .nav-wrap { height: 82px; }
    .main-nav { top: 82px; padding-inline: 20px; }
    .brand { width: 205px; }
    .menu-label { font-size: 15px; }
    .menu-toggle { gap: 8px; padding-left: 0; }
}
@media (max-width: 360px) {
    .brand { width: 183px; }
}
@media print {
    .services-menu { display: none; }
}
