/* ============================================================
   search.css — Search Hub Page (/search)
   Namespace prefix: boh-search
   All values use design tokens from app.css (:root)
   ============================================================ */

/* --- LAYOUT OVERRIDE --- */
html:has(.boh-search),
body:has(.boh-search) {
  height: 100%;
  overflow: hidden;
}

body:has(.boh-search) .boh-shell {
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

body:has(.boh-search) .boh-shell__header,
body:has(.boh-search) .boh-shell__bottom {
  display: none;
}

body:has(.boh-search) .boh-shell__main {
  flex: 1;
  overflow: hidden;
  padding-left: 0;
  padding-right: 0;
}

/* --- ROOT CONTAINER --- */
.boh-search {
  display: flex;
  flex-direction: column;
  height: 100%;
  background-color: var(--boh-color-bg);
  font-family: var(--boh-font-sans);
}

/* --- HEADER: search bar + cancel --- */
.boh-search__header {
  padding: 2.5rem var(--boh-space-screen) 0.625rem var(--boh-space-screen);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
  position: relative;
  z-index: 10;
}

/* Search input pill */
.boh-search__input-wrapper {
  flex: 1;
  background-color: var(--boh-color-surface);
  border-radius: var(--boh-radius-button);
  display: flex;
  align-items: center;
  padding: 0.75rem 1rem;
  box-shadow: 0 1px 4px rgba(38, 86, 77, 0.06);
}

.boh-search__input-icon {
  width: 1.25rem;
  height: 1.25rem;
  color: color-mix(in srgb, var(--boh-color-muted) 50%, transparent);
  margin-right: 0.75rem;
  flex-shrink: 0;
}

.boh-search__input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--boh-font-sans);
  font-size: var(--boh-font-size-body);
  color: var(--boh-color-primary);
}

.boh-search__input::placeholder {
  color: color-mix(in srgb, var(--boh-color-muted) 70%, transparent);
}

/* Cancel / X button */
.boh-search__cancel-btn {
  padding: 0.5rem;
  margin-right: -0.5rem;
  color: var(--boh-color-primary);
  background: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.15s ease;
  text-decoration: none;
}

.boh-search__cancel-btn:active {
  transform: scale(0.95);
}

.boh-search__cancel-btn svg {
  width: 1.5rem;
  height: 1.5rem;
}

/* --- SCROLLABLE MAIN --- */
.boh-search__main {
  flex: 1;
  overflow-y: auto;
  padding-left: var(--boh-space-screen);
  padding-right: var(--boh-space-screen);
  padding-top: 0.5rem;
  padding-bottom: 6rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* --- SECTION HEADING --- */
.boh-search__section-heading {
  font-size: var(--boh-font-size-label);
  font-weight: var(--boh-font-weight-700);
  color: var(--boh-color-primary);
  margin: 0 0 0.5rem 0;
}

/* --- SEARCH-BY QUICK-LINKS --- */
.boh-search__by-grid {
  display: flex;
  gap: 0.75rem;
}

.boh-search__by-card {
  flex: 1;
  background-color: var(--boh-color-surface);
  border-radius: var(--boh-radius-card);
  padding: 1rem 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  box-shadow: 0 1px 4px rgba(38, 86, 77, 0.06);
  cursor: pointer;
  border: none;
  text-decoration: none;
  transition: transform 0.15s ease;
}

.boh-search__by-card:active {
  transform: scale(0.95);
}

.boh-search__by-card--disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

.boh-search__by-icon {
  width: 1.25rem;
  height: 1.25rem;
  color: var(--boh-color-gold);
  stroke-width: 1.5;
}

.boh-search__by-label {
  font-size: var(--boh-font-size-eyebrow);
  font-weight: var(--boh-font-weight-700);
  color: var(--boh-color-primary);
  letter-spacing: var(--boh-letter-spacing-eyebrow);
  text-transform: capitalize;
  line-height: var(--boh-line-height-heading);
}

/* --- SUGGESTION LIST (Popular + Recent) --- */
.boh-search__suggestion-list {
  display: flex;
  flex-direction: column;
}

.boh-search__suggestion-row {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--boh-color-border) 10%, transparent);
  background: transparent;
  border-left: none;
  border-right: none;
  border-top: none;
  cursor: pointer;
  outline: none;
  transition: opacity 0.15s ease;
}

.boh-search__suggestion-row:last-child {
  border-bottom: none;
}

.boh-search__suggestion-row:active {
  opacity: 0.7;
}

.boh-search__suggestion-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.boh-search__suggestion-icon {
  width: 1rem;
  height: 1rem;
  stroke-width: 1.5;
}

.boh-search__suggestion-icon--popular {
  color: var(--boh-color-primary);
}

.boh-search__suggestion-icon--recent {
  color: color-mix(in srgb, var(--boh-color-muted) 50%, transparent);
}

.boh-search__suggestion-label {
  font-size: var(--boh-font-size-body);
  font-weight: var(--boh-font-weight-500);
  color: var(--boh-color-primary);
  line-height: var(--boh-line-height-body);
}

.boh-search__suggestion-chevron {
  width: 1rem;
  height: 1rem;
  color: color-mix(in srgb, var(--boh-color-muted) 30%, transparent);
}