/* RUST Event Search 0.4.7 — compact bar intended between the homepage hero and programme. */
.res-search { box-sizing: border-box; width: 100%; margin: 0; padding: clamp(1rem, 2.2vw, 1.6rem) clamp(1.25rem, 4vw, 5rem); background: transparent; color: #111; border: 0; border-bottom: 2px solid #111; font-family: inherit; }
.res-search *, .res-search *::before, .res-search *::after { box-sizing: border-box; }
.res-search [hidden] { display: none !important; }
/* Visible heading above the search field; the input keeps its separate accessible label. */
.res-search .res-search__heading { display: block; position: static; width: auto; height: auto; margin: 0 0 .75rem; padding: 0; border: 0; font: inherit; font-size: clamp(1.35rem, 2.6vw, 2rem); font-weight: 800; line-height: 1.15; letter-spacing: .02em; text-transform: uppercase; color: #111; }
.res-search .res-search__label { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.res-search .res-search__form { margin: 0; }
.res-search .res-search__controls { display: flex; flex-wrap: nowrap; gap: .55rem; align-items: stretch; }
.res-search .res-search__input { flex: 1 1 auto; width: 100%; min-width: 0; min-height: 56px; padding: .85rem 1rem; border: 2px solid #111; border-radius: 0; font: inherit; font-size: 16px; font-weight: 600; line-height: 1.35; background: rgba(255,255,255,.78); color: #111; }
.res-search .res-search__input::placeholder { color: #444; opacity: 1; }
.res-search .res-search__clear { min-height: 56px; padding: .72rem 1.25rem; border: 2px solid #111; border-radius: 0; background: #111; color: #fff; font: inherit; font-size: 16px; font-weight: 800; text-transform: uppercase; cursor: pointer; }
.res-search .res-search__clear { flex: 0 0 auto; background: transparent; color: #111; }
.res-search .res-search__input:focus-visible,
.res-search button:focus-visible,
.res-search a:focus-visible { outline: 3px solid #005fcc; outline-offset: 3px; }
.res-search .res-search__status { min-height: 0; margin: .55rem 0 0; font-size: .9rem; line-height: 1.4; color: #444; }
/* Preserve the live status region, but do not reserve space for a removed prompt. */
.res-search .res-search__status:empty { margin: 0; }
.res-search .res-search__status a { color: #111; text-decoration: underline; }
.res-search .res-search__results { list-style: none; margin: .7rem 0 0; padding: 0; border-top: 2px solid #111; background: rgba(255,255,255,.92); }
.res-search .res-search__item { display: flex; align-items: center; gap: .75rem; list-style: none; margin: 0; padding: 0; border-bottom: 1px solid #aaa; }
/* Highlight and underline the whole result row, including the ticket area.
   A 2px inset line plus the existing 1px border gives a 3px black rule without
   changing the row height. Event and ticket links remain independent. */
.res-search .res-search__item:hover,
.res-search .res-search__item:focus-within { background: rgba(0,0,0,.06); border-bottom-color: #111; box-shadow: inset 0 -2px 0 #111; }
.res-search .res-search__link { display: flex; flex: 1 1 auto; min-width: 0; align-items: center; gap: 1rem; min-height: 72px; padding: .75rem .35rem; background: transparent; color: #111; text-decoration: none; }
.res-search .res-search__link:hover,
.res-search .res-search__link:focus { background: transparent; color: #111; }
/* Some themes draw the hover line on the event link alone, stopping before
   BILLETTER. Keep that decoration on the parent row instead. These narrowly
   scoped overrides deliberately retain the visible keyboard focus outline. */
.res-search .res-search__item > .res-search__link,
.res-search .res-search__item > .res-search__link:hover,
.res-search .res-search__item > .res-search__link:focus,
.res-search .res-search__item > .res-search__link:active { border: 0 !important; box-shadow: none !important; background-image: none !important; text-decoration: none !important; }
.res-search .res-search__item > .res-search__link::before,
.res-search .res-search__item > .res-search__link::after { content: none !important; display: none !important; }

.res-search .res-search__image { flex: 0 0 72px; width: 72px; height: 72px; margin: 0; object-fit: cover; }
.res-search .res-search__content { display: block; min-width: 0; }
.res-search .res-search__title { display: block; font-size: 1.08rem; font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; }
.res-search .res-search__meta { display: block; margin-top: .25rem; font-size: .9rem; line-height: 1.35; color: #444; }
.res-search .res-search__ticket { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: .65rem .9rem; margin-right: .35rem; border: 2px solid #111; background: #111; color: #fff; font: inherit; font-size: .86rem; font-weight: 800; line-height: 1; text-decoration: none; white-space: nowrap; }
.res-search .res-search__ticket:hover,
.res-search .res-search__ticket:focus { background: transparent; color: #111; }

@media (max-width: 640px) {
  .res-search { padding: .9rem 1rem 1rem; }
  /* With only the conditional RYD button, keep the controls on one line. */
  .res-search .res-search__controls { flex-wrap: nowrap; }
  .res-search .res-search__input { flex-basis: 0; }
  .res-search .res-search__clear { padding-inline: .85rem; }
  .res-search .res-search__item { align-items: stretch; flex-wrap: wrap; }
  .res-search .res-search__link { flex-basis: 100%; }
  .res-search .res-search__ticket { margin: -.25rem .35rem .75rem auto; }
  .res-search .res-search__image { flex-basis: 56px; width: 56px; height: 56px; }
}

/* 0.4.7: match the theme's own faces and weights by role. No font files or
   external font requests are added. The script reads the existing homepage
   event heading and ticket link; ordinary text follows the surrounding page.
   The existing compact sizes and all link/hover behavior remain unchanged. */
.res-search {
  font-family: var(--res-text-font-family, inherit);
  font-weight: var(--res-text-font-weight, inherit);
  font-style: var(--res-text-font-style, inherit);
  font-stretch: var(--res-text-font-stretch, inherit);
  font-feature-settings: var(--res-text-font-feature-settings, inherit);
  font-variation-settings: var(--res-text-font-variation-settings, inherit);
  font-kerning: var(--res-text-font-kerning, auto);
  letter-spacing: var(--res-text-letter-spacing, normal);
}
.res-search .res-search__heading,
.res-search .res-search__title {
  font-family: var(--res-heading-font-family, inherit);
  font-weight: var(--res-heading-font-weight, 800);
  font-style: var(--res-heading-font-style, normal);
  font-stretch: var(--res-heading-font-stretch, normal);
  font-feature-settings: var(--res-heading-font-feature-settings, normal);
  font-variation-settings: var(--res-heading-font-variation-settings, normal);
  font-kerning: var(--res-heading-font-kerning, auto);
  letter-spacing: var(--res-heading-letter-spacing, normal);
}
.res-search .res-search__input,
.res-search .res-search__clear,
.res-search .res-search__ticket {
  font-family: var(--res-control-font-family, inherit);
  font-weight: var(--res-control-font-weight, 700);
  font-style: var(--res-control-font-style, normal);
  font-stretch: var(--res-control-font-stretch, normal);
  font-feature-settings: var(--res-control-font-feature-settings, normal);
  font-variation-settings: var(--res-control-font-variation-settings, normal);
  font-kerning: var(--res-control-font-kerning, auto);
  letter-spacing: var(--res-control-letter-spacing, normal);
}
.res-search .res-search__input::placeholder {
  font-family: inherit;
  font-weight: inherit;
  font-style: inherit;
  font-stretch: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  letter-spacing: inherit;
}
.res-search .res-search__meta,
.res-search .res-search__status {
  font-family: var(--res-text-font-family, inherit);
  font-weight: var(--res-text-font-weight, inherit);
  font-style: var(--res-text-font-style, inherit);
  font-stretch: var(--res-text-font-stretch, inherit);
  font-feature-settings: var(--res-text-font-feature-settings, inherit);
  font-variation-settings: var(--res-text-font-variation-settings, inherit);
  font-kerning: var(--res-text-font-kerning, auto);
  letter-spacing: var(--res-text-letter-spacing, normal);
}
