/* Homepage search, styled to sit alongside the social icons. */
.site-search { position: relative; }
.search-control { display: flex; align-items: center; height: 38px; }
.search-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.search-control input { box-sizing: border-box; width: 0; min-width: 0; padding: 0; opacity: 0; border: 0; border-radius: 20px 0 0 20px; height: 38px; font: inherit; color: #28102e; background: #fff; transition: width .3s ease, opacity .2s ease, padding .3s ease; }
.site-search.is-open input { width: 220px; padding: 0 14px; opacity: 1; }
.search-toggle { width: 38px; height: 38px; flex: none; border: 2px solid rgba(255,255,255,.3); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; background: rgba(255,255,255,.05); cursor: pointer; font-size: 1rem; transition: background .2s, color .2s; }
.search-toggle:hover, .search-toggle:focus-visible { background: #d4af37; color: #4b1a51; }
.site-search.is-open .search-toggle { border-radius: 0 20px 20px 0; background: #4b1a51; }
.search-results { position: absolute; top: 46px; right: 0; width: min(360px, calc(100vw - 30px)); max-height: min(60vh, 460px); overflow-y: auto; background: white; color: #29212a; border-radius: 8px; box-shadow: 0 8px 28px rgba(0,0,0,.3); z-index: 1500; text-align: left; }
.search-results a { display: block; width: auto; height: auto; padding: 12px 15px; border: 0; border-radius: 0; background: white; color: #4b1a51; font-size: .95rem; text-decoration: none; backdrop-filter: none; }
.search-results a + a { border-top: 1px solid #eee; }
.search-results a:hover, .search-results a:focus-visible { background: #f8f3f8; color: #4b1a51; transform: none; box-shadow: none; }
.search-results small { display: block; margin-top: 4px; color: #555; line-height: 1.4; }
.search-message { margin: 0; padding: 14px 15px; font-size: .9rem; }
@media (max-width: 1200px) {
    .social-links-desktop { display: flex; margin: 0 12px 0 0; }
    .social-links-desktop > a { display: none; }
    .header-right { flex-direction: row; align-items: center; }
    .site-search.is-open input { width: min(180px, 40vw); }
}
@media (prefers-reduced-motion: reduce) { .search-control input, .search-toggle { transition: none; } }
