/* ==========================================================================
   boudoir Frontend — Header
   One row on mobile (logo + menu button), two rows from 960px
   (logo + search/sites | category pill nav) — per docs/DESIGN.md.
   ========================================================================== */

.site-header {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    background: var(--color-bg-primary);
    border-bottom: 1px solid var(--color-border);
    transition: transform var(--transition-normal);
}

.site-header--hidden {
    transform: translateY(-100%);
}

/* ======================
   Row 1 — logo, priority links, actions
   ====================== */

.site-header__row-1 > .container {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    min-height: var(--header-height);
}

.site-header__logo {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    min-height: var(--size-tap-target);
    text-decoration: none;
}

.site-header__logo-mark {
    width: 22px;
    height: 28px;
    flex-shrink: 0;
}

.site-header__logo-text {
    font-family: var(--font-family-display);
    font-size: var(--text-xl);
    font-weight: var(--font-semibold);
    color: var(--color-text-primary);
    letter-spacing: 0.01em;
}

.site-header__logo-tld {
    color: var(--color-text-accent);
    font-size: var(--text-base);
}

.site-header__priority {
    display: none;
    gap: var(--spacing-5);
    margin-left: var(--spacing-4);
}

.site-header__priority-link {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    padding: var(--spacing-2) 0;
}

.site-header__priority-link:hover {
    color: var(--color-text-accent);
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-left: auto;
}

.site-header__icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--size-tap-target);
    height: var(--size-tap-target);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-xl);
    color: var(--color-text-accent);
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.site-header__icon-btn:hover {
    border-color: var(--color-border-hover);
    color: var(--color-accent-hover);
}

/* ======================
   Sites dropdown (row 1, desktop)
   ====================== */

.site-header__sites {
    position: relative;
    display: none;
}

.site-header__sites-trigger {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    min-height: var(--size-tap-target);
    padding: 0 var(--spacing-4);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-full);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
}

.site-header__sites-trigger:hover,
.site-header__sites-trigger.is-open {
    border-color: var(--color-border-hover);
    color: var(--color-text-accent);
}

.site-header__more-arrow {
    font-size: var(--text-xs);
}

.site-header__more-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + var(--spacing-2));
    right: 0;
    min-width: 200px;
    background: var(--color-bg-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-dropdown);
    padding: var(--spacing-2);
    z-index: var(--z-dropdown);
    flex-direction: column;
}

.site-header__more-dropdown.is-open {
    display: flex;
}

.site-header__dropdown-link {
    display: block;
    padding: var(--spacing-3) var(--spacing-4);
    border-radius: var(--radius-lg);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
}

.site-header__dropdown-link:hover {
    background: var(--color-bg-elevated);
    color: var(--color-text-primary);
}

.site-header__dropdown-divider {
    height: 1px;
    background: var(--color-border);
    margin: var(--spacing-2) var(--spacing-3);
}

/* ======================
   Search bar + results
   ====================== */

.site-header__search {
    border-top: 1px solid var(--color-border);
    padding: var(--spacing-3) 0;
}

.site-header__search-input {
    width: 100%;
    min-height: var(--size-tap-target);
    padding: var(--spacing-3) var(--spacing-4);
    background: var(--color-bg-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    color: var(--color-text-primary);
    font-size: var(--text-base);
}

.site-header__search-input::placeholder {
    color: var(--color-text-faint);
}

.site-header__search-input:focus {
    border-color: var(--color-border-hover);
    outline: none;
}

.site-header__search-results {
    margin-top: var(--spacing-2);
    background: var(--color-bg-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-dropdown);
    max-height: 320px;
    overflow-y: auto;
}

.site-header__search-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    color: var(--color-text-primary);
    font-size: var(--text-sm);
    border-bottom: 1px solid var(--color-white-04);
}

.site-header__search-result:last-child {
    border-bottom: none;
}

.site-header__search-result:hover {
    background: var(--color-bg-elevated);
    color: var(--color-text-primary);
}

.site-header__search-badge {
    font-size: var(--text-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    padding: 2px var(--spacing-2);
}

.site-header__search-empty {
    padding: var(--spacing-4);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

/* ======================
   Row 2 — category pills (desktop only)
   ====================== */

.site-header__row-2 {
    display: none;
    border-top: 1px solid var(--color-border);
    align-items: center;
}

.site-header__nav-scroll {
    flex: 1;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.site-header__nav-scroll::-webkit-scrollbar {
    display: none;
}

.site-header__nav-pills {
    display: flex;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-6);
    width: max-content;
    margin: 0 auto;
}

.site-header__nav-pill {
    display: inline-flex;
    align-items: center;
    min-height: var(--size-tap-target);
    padding: var(--spacing-1) var(--spacing-4);
    border-radius: var(--radius-full);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    white-space: nowrap;
    transition: color var(--transition-fast), background-color var(--transition-fast);
}

.site-header__nav-pill:hover {
    color: var(--color-text-primary);
    background: var(--color-bg-elevated);
}

.site-header__nav-pill--active,
.site-header__nav-pill[aria-current="page"] {
    color: var(--color-cta-text);
    background: var(--color-accent);
}

.site-header__scroll-btn {
    display: none;
    align-items: center;
    justify-content: center;
    width: var(--size-tap-target);
    height: var(--size-tap-target);
    color: var(--color-text-muted);
    flex-shrink: 0;
}

.site-header__scroll-btn:hover {
    color: var(--color-text-accent);
}

/* ======================
   Mobile menu panel (<960px)
   ====================== */

.site-header__menu {
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-surface);
    max-height: calc(100vh - var(--header-height));
    overflow-y: auto;
}

.site-header__menu > .container {
    display: flex;
    flex-direction: column;
    padding-top: var(--spacing-4);
    padding-bottom: var(--spacing-6);
}

.site-header__menu-group {
    padding: var(--spacing-3) 0;
    border-bottom: 1px solid var(--color-border);
}

.site-header__menu-group:last-child {
    border-bottom: none;
}

.site-header__menu-title {
    font-size: var(--text-micro);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-text-faint);
    padding: var(--spacing-2) var(--spacing-3);
}

/* ======================
   Breakpoints
   ====================== */

@media (min-width: 640px) {
    .site-header__priority {
        display: flex;
    }
}

@media (min-width: 960px) {
    .site-header__row-2 {
        display: flex;
    }
    .site-header__sites {
        display: block;
    }
    .site-header__menu-btn,
    .site-header__menu {
        display: none;
    }
    .site-header__scroll-btn {
        display: inline-flex;
    }
}
