/* Search is isolated from page/block styles and does not widen the top navigation. */
.site-search-disclosure { position: relative; flex: 0 0 auto; }
.site-search-disclosure > summary { display: flex; align-items: center; justify-content: center; gap: .6rem; width: 44px; min-height: 44px; padding: .5rem; cursor: pointer; color: #333; list-style: none; border-radius: .25rem; }
.site-search-disclosure > summary::-webkit-details-marker { display: none; }
.site-search-disclosure > summary:hover { background: #f1f1f1; }
.site-search-mobile-label { display: none; }
.site-search-panel { position: absolute; top: calc(100% + 12px); right: 0; width: min(380px, calc(100vw - 30px)); padding: 20px; background: white; border: 1px solid #ddd; box-shadow: 0 4px 12px #0002; z-index: 1020; }
.site-search-form label { display: block; margin-bottom: .5rem; font-weight: 600; }
.site-search-fields { display: flex; gap: .75rem; min-width: 0; }
.site-search-fields input { flex: 1 1 0; min-width: 0; width: 100%; padding: .65rem; font: inherit; border: 1px solid #777; border-radius: .25rem; }
.site-search-fields button { flex: 0 0 auto; margin: 0; }
.site-search-page { max-width: 1000px; margin: 0 auto; padding: clamp(24px, 5vw, 64px) 20px; overflow-wrap: anywhere; min-height: 50vh; }
.site-search-page h1 { margin-bottom: 1.5rem; }
.site-search-page > .site-search-form { margin-bottom: 2rem; }
.site-search-results { list-style: none; margin: 0; padding: 0; }
.site-search-results li { padding: 1.5rem 0; border-bottom: 1px solid #ddd; }
.site-search-results h2 { margin: 0 0 .5rem; font-size: 1.4rem; }
.site-search-results a, .site-search-pages a { color: #25465e; text-decoration: underline; }
.site-search-results p { margin: 0; }
.site-search-pages { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; margin-top: 2rem; }
.site-search-disclosure summary:focus-visible, .site-search-form input:focus-visible, .site-search-page a:focus-visible, .site-search-form button:focus-visible { outline: 3px solid #25465e; outline-offset: 3px; }
@media (max-width: 1200px) {
    .site-search-disclosure { width: 100%; margin-top: .5rem; }
    .site-search-disclosure > summary { width: auto; justify-content: flex-start; }
    .site-search-mobile-label { display: inline; }
    .site-search-panel { position: static; width: 100%; max-width: 500px; box-shadow: none; margin-top: .5rem; }
}
@media (min-width: 1201px) {
    /* Positioned in the header action area, not in the navigation's flex list. */
    .site-navigation > .site-search-disclosure { position: absolute; right: 20px; top: 19px; }
    .site-header-inner { padding-right: 75px; position: relative; }
}
