/* Search-only UI and stable deep-link targets. */
.search-nav-icon { width: 1em; height: 1em; vertical-align: -.12em; margin-right: .3em; }
.site-search { padding: 135px 0 70px; min-height: 65vh; }
.site-search h2, .site-search h3 { color: var(--primary); }
.site-search h2 { font-size: 2rem; }
.search-intro { margin: 12px 0 28px; }
.search-form label { display: block; margin-bottom: 8px; font-weight: 600; }
.search-controls { display: flex; gap: 12px; max-width: 760px; }
.search-controls input { flex: 1; min-width: 0; width: 100%; padding: 13px 16px; border: 1px solid var(--gray); border-radius: var(--border-radius-sm); background: white; color: var(--dark); font: inherit; }
.search-controls button { flex-shrink: 0; cursor: pointer; font: inherit; }
.search-controls input:focus-visible, .site-search a:focus-visible, .search-controls button:focus-visible { outline: 3px solid var(--primary-light); outline-offset: 3px; }
#search-help { color: var(--gray); font-size: .9rem; margin-top: 10px; }
.search-summary { margin: 30px 0 16px; }
.search-results { list-style: none; display: grid; gap: 16px; max-width: 900px; }
.search-result { padding: 24px; background: var(--white); border: 1px solid var(--gray-light); border-radius: var(--border-radius); overflow-wrap: anywhere; }
.search-kind { color: var(--gray); font-size: .85rem; }
.search-result h3 { margin: 6px 0 8px; font-size: 1.2rem; }
.search-result a:hover, .search-message a { text-decoration: underline; }
.search-price { margin-top: 8px; font-weight: 700; }
.search-message { margin-top: 28px; padding: 20px; background: var(--white); border-radius: var(--border-radius); overflow-wrap: anywhere; }
.search-error { border-left: 4px solid #9e2727; }
[id^="service-"], [id^="category-"], [id^="document-"], #direction, #equipment, #services, #contact { scroll-margin-top: 110px; }
[id^="service-"]:target, [id^="category-"]:target, [id^="document-"]:target, #direction:target { outline: 2px solid var(--primary-light); outline-offset: -2px; background-color: var(--primary-soft); }
@media (max-width: 768px) {
    .site-search { padding-top: 220px; }
    .document-container:has(.document-item:target) { padding-top: 220px; }
    [id^="service-"], [id^="category-"], [id^="document-"], #direction, #equipment, #services, #contact { scroll-margin-top: 220px; }
}
@media (max-width: 480px) {
    .site-search h2 { font-size: 1.6rem; }
    .search-controls { flex-direction: column; }
    .search-controls .btn { width: 100%; }
    .search-result { padding: 18px; }
}
