.trv-local-search[hidden], .trv-local-search [hidden] { display: none !important; }
body.trv-search-open { overflow: hidden; }
.trv-local-search { position: fixed; inset: 0; z-index: 1100; font-family: var(--font-family-base); color: var(--dark); }
.trv-search-shade { position: absolute; inset: 0; background: rgba(0,0,0,.4); opacity: 0; transition: opacity .2s ease; }
.trv-search-panel { position: absolute; inset: 0 0 0 auto; width: min(100%, 520px); height: 100%; background: var(--white); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .2s ease; box-shadow: var(--shadowtop); }
.trv-local-search.is-open .trv-search-panel { transform: translateX(0); }
.trv-local-search.is-open .trv-search-shade { opacity: 1; }
.trv-search-header { display: flex; align-items: center; gap: var(--spacing-1); background: var(--white); color: var(--dark); padding: var(--spacing-1); min-height: 70px; flex-shrink: 0; box-shadow: var(--shadowtop); position: relative; z-index: 1; }
.trv-search-close { background: none; border: 0; color: inherit; font: inherit; font-size: var(--font-size-lg); padding: .5rem; cursor: pointer; flex-shrink: 0; display: flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; }
.trv-search-form { display: flex; flex: 1; min-width: 0; margin: 0; border: 0; border-radius: 100px; background: var(--neutral-dark); overflow: hidden; }
.trv-search-form input { width: 100%; min-width: 0; padding: .85rem 1rem; border: 0; outline: none; background: transparent; color: var(--dark); font-family: var(--font-family-base); font-size: var(--font-size-md); }
.trv-search-form button { background: transparent; color: var(--dark); border: 0; padding: 0 1rem; cursor: pointer; display: flex; align-items: center; justify-content: center; min-width: 56px; font-size: 1.5rem; }
.trv-search-status { margin: var(--spacing-1); font-size: var(--font-size-medium); color: var(--dark-light); }
.trv-search-results { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 var(--spacing-1); }
.trv-search-result { display: flex; align-items: center; gap: var(--spacing-1); padding: var(--spacing-1) 0; border-bottom: 1px solid var(--border-color); color: var(--dark); font-size: var(--font-size-medium); }
.trv-search-result:hover { color: var(--brand); }
.trv-search-name { font-weight: var(--font-weight-bold); }
.trv-search-details { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.trv-search-prices { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; color: var(--dark); font-size: var(--font-size-medium); }
.trv-search-price { font-weight: var(--font-weight-bold); }
.trv-search-regular-price { color: var(--dark-light); font-weight: var(--font-weight-normal); }
.trv-search-name mark { background: var(--highlight); color: inherit; font-weight: inherit; padding: 0 .08em; border-radius: 2px; }
.trv-search-result img { width: 64px; height: 64px; flex: 0 0 64px; object-fit: contain; }
.trv-search-more { margin: var(--spacing-1); padding: .75rem; background: var(--white); border: 1px solid var(--border-color); border-radius: var(--btn-border-radius); color: var(--dark); font-family: var(--font-family-base); font-size: var(--font-size-md); cursor: pointer; }
.trv-search-more:hover { border-color: var(--brand); }
.trv-local-search a:focus-visible, .trv-local-search button:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.trv-search-header button:focus-visible { outline-color: var(--brand); }
@media (max-width: 991px) {
  .trv-search-panel { width: 100%; padding-bottom: env(safe-area-inset-bottom); }
  /* Comfortable tap target for the search icon on touch screens. */
  .trv-search-form button { min-width: 60px; font-size: 1.65rem; }
}
@media (min-width: 992px) {
  .trv-search-inline .trv-search-header { display: none; }
  /* The header field is the panel's input now: no dimming, and clicks reach the page. */
  .trv-search-inline { pointer-events: none; }
  .trv-search-inline .trv-search-panel { pointer-events: auto; }
  .trv-search-inline .trv-search-shade { display: none; }
  .trv-search-inline .trv-search-status { margin-top: var(--spacing-2, 1rem); }
  .trv-search-panel { inset: var(--trv-search-top, 80px) auto auto var(--trv-search-left, 16px); width: var(--trv-search-width, 600px); height: auto; max-height: var(--trv-search-height, 70vh); border-radius: var(--border-radius-sm); overflow: hidden; transform: none; transition: opacity .15s ease; opacity: 0; }
  .trv-local-search.is-open .trv-search-panel { opacity: 1; }
  .trv-search-shade { background: rgba(0,0,0,.2); }
}
@media (prefers-reduced-motion: reduce) { .trv-search-panel, .trv-search-shade { transition: none; } }
