.public-search-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 18px; border: 1px solid #ffffff55; border-radius: 999px; color: white; background: #ffffff0d; font: inherit; cursor: pointer; }
.public-search-trigger:hover { background: #ffffff20; }
.public-search-trigger svg { width: 19px; height: 19px; }
.public-search-trigger kbd { font-size: 11px; opacity: .65; border: 1px solid #ffffff44; padding: 1px 5px; border-radius: 4px; }
html.public-search-open { overflow: hidden; }
.public-search { width: min(860px, calc(100vw - 32px)); max-height: calc(100dvh - 64px); margin: auto; padding: 0; border: 0; border-radius: 18px; color: #13243b; background: #fffdf9; box-shadow: 0 24px 90px #0005; }
.public-search[open] { display: flex; flex-direction: column; }
.public-search::backdrop { background: #07152ac9; backdrop-filter: blur(5px); }
.public-search-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 28px; background: #091636; color: #fff; flex-shrink: 0; }
.public-search-eyebrow { color: #cfb780; text-transform: uppercase; letter-spacing: .18em; font-size: 10px; }
.public-search-heading h2 { color: white; font-family: 'Playfair Display', Georgia, serif; font-size: 25px; line-height: 1.3; margin: 6px 0 0; }
.public-search-heading button { border: 1px solid #ffffff40; border-radius: 50%; width: 36px; height: 36px; font-size: 26px; line-height: 1; flex-shrink: 0; }
.public-search-form { margin: 20px 28px 12px; border: 1px solid #d6d9de; border-radius: 10px; display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: white; flex-shrink: 0; }
.public-search-form:focus-within { border-color: #a4874e; box-shadow: 0 0 0 3px #b7975920; }
.public-search-form svg { width: 23px; height: 23px; flex-shrink: 0; }
.public-search-form input { min-width: 0; width: 100%; background: transparent; border: 0; outline: 0; box-shadow: none; font: inherit; padding: 2px; color: #13243b; }
.public-search-areas { display: flex; gap: 7px; padding: 0 28px 16px; overflow-x: auto; flex-shrink: 0; border-bottom: 1px solid #e9e5dc; }
.public-search-areas button { white-space: nowrap; border-radius: 999px; padding: 6px 13px; border: 1px solid #dedbd3; font-size: 13px; }
.public-search-areas button[aria-pressed="true"] { background: #091636; border-color: #091636; color: white; }
.public-search-body { padding: 16px 28px 24px; overflow-y: auto; min-height: 120px; }
.public-search-status { color: #667080; font-size: 13px; margin-bottom: 18px; }
.public-search-results section { margin-bottom: 24px; }
.public-search-group-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.public-search-group-heading h3 { font-size: 17px; font-weight: 600; }
.public-search-group-heading button { font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.public-search-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.public-search-result { display: flex; gap: 12px; padding: 12px; background: #fff; border: 1px solid #e9e5dc; border-radius: 10px; align-items: center; text-decoration: none; transition: border-color .15s, background .15s; }
.public-search-result:hover { background: #f9f5ed; border-color: #c3ab78; }
.public-search-result img, .public-search-placeholder { width: 65px; height: 65px; border-radius: 6px; object-fit: cover; flex-shrink: 0; }
.public-search-placeholder { background: #f0ede6; display: grid; place-items: center; color: #9b8251; font-family: Georgia, serif; font-size: 25px; }
.public-search-result strong { display: block; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.public-search-result small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #687181; font-size: 12px; line-height: 1.45; margin-top: 5px; }
.public-search-footer { padding: 12px 28px; border-top: 1px solid #e9e5dc; color: #6a7180; font-size: 11px; display: flex; justify-content: space-between; gap: 10px; flex-shrink: 0; }
.public-search-pagination { display: flex; justify-content: space-between; gap: 15px; }
.public-search-pagination button { border: 1px solid #d7c7a5; border-radius: 6px; padding: 7px 14px; font-size: 13px; }
.public-search [hidden] { display: none !important; }
.public-search button:focus-visible, .public-search a:focus-visible, .public-search-trigger:focus-visible { outline: 2px solid #b79759; outline-offset: 3px; }
.public-search-spinner { display: none; width: 19px; height: 19px; border: 2px solid #ddd; border-top-color: #a4874e; border-radius: 50%; animation: public-search-spin .7s linear infinite; flex-shrink: 0; }
.public-search[aria-busy="true"] .public-search-spinner { display: block; }
@keyframes public-search-spin { to { transform: rotate(360deg); } }
@media (max-width: 600px) { .public-search { width: calc(100vw - 16px); max-height: calc(100dvh - 24px); border-radius: 12px; } .public-search-heading { padding: 20px; } .public-search-heading h2 { font-size: 21px; } .public-search-form { margin: 16px 16px 12px; } .public-search-areas { padding-left: 16px; padding-right: 16px; } .public-search-body { padding: 16px; } .public-search-grid { grid-template-columns: 1fr; } .public-search-footer { padding: 12px 16px; } .public-search-footer span { display: none; } }
@media (prefers-reduced-motion: reduce) { .public-search-spinner { animation-duration: 1.5s; } .public-search-result { transition: none; } }
