/* ==========================================================================
   ADVANCED SEARCH PAGE – Professional Modern Theme
   Matches marketplace dark glass + orange accent styling
   ========================================================================== */

/* ---------- CSS VARIABLES (inherits if already defined) ---------- */
/* Colors now managed by central theme.css */
:root {
    --as-radius-sm: 6px;
    --as-radius: 12px;
    --as-radius-lg: 18px;
    --as-transition: .35s cubic-bezier(.4,0,.2,1);
    --as-glass-blur: 22px;
}

/* ---------- PAGE WRAPPER ---------- */
.advanced-search-container {
    position: relative;
    padding: 0 0 60px;
    background: var(--as-bg-gradient);
    backdrop-filter: blur(var(--as-glass-blur)) saturate(160%);
    -webkit-backdrop-filter: blur(var(--as-glass-blur)) saturate(160%);
    animation: fadeInPage .6s ease;
}

@keyframes fadeInPage {
    from { opacity:0; transform:translateY(12px); }
    to { opacity:1; transform:translateY(0); }
}

/* ---------- PAGE HEADER ---------- */
.page-header {
    background: linear-gradient(110deg, rgba(45,55,72,0.85) 0%, rgba(26,32,44,0.9) 55%, rgba(45,55,72,0.85) 100%);
    border-bottom: 1px solid var(--as-border);
    position: relative;
    overflow: hidden;
    padding: 56px 0 50px;
}

.page-header::before,
.page-header::after {
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
}

.page-header::before {
    background:
        radial-gradient(circle at 12% 18%, rgba(255,107,53,0.18), transparent 60%),
        radial-gradient(circle at 88% 72%, rgba(255,107,53,0.12), transparent 70%);
    mix-blend-mode: screen;
    opacity:.9;
}

.page-title {
    font-size: 2.35rem;
    font-weight: 700;
    letter-spacing: .5px;
    display:flex;
    align-items:center;
    gap:14px;
    color: var(--as-text);
    margin:0 0 14px;
    text-shadow: 0 4px 18px rgba(0,0,0,.55);
}

.page-title i {
    font-size:1.7rem;
    background: linear-gradient(135deg,var(--as-primary),#ff915f);
    -webkit-background-clip:text;
    color: transparent;
    filter: drop-shadow(0 6px 14px rgba(255,107,53,.4));
    animation: iconPulse 5s ease-in-out infinite;
}
@keyframes iconPulse {
    0%,100% { transform:translateY(0) scale(1);}
    45% { transform:translateY(-3px) scale(1.04);}
}

.page-subtitle {
    font-size: 1.05rem;
    max-width: 640px;
    margin:0;
    color: var(--as-text-soft);
    line-height:1.55;
    opacity:.9;
}

/* Result summary (header right) */
.results-summary {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    background: rgba(0,0,0,.25);
    border:1px solid var(--as-border);
    padding:14px 20px;
    border-radius: var(--as-radius);
    box-shadow: var(--as-shadow-xs);
    position:relative;
    transition: var(--as-transition);
}

.results-summary:hover {
    border-color: var(--as-border-strong);
    box-shadow: 0 0 0 1px rgba(255,255,255,0.05), 0 0 0 4px rgba(255,107,53,0.08);
}

.results-count {
    font-size:1.4rem;
    font-weight:700;
    color: var(--as-primary);
    text-shadow:0 0 12px rgba(255,107,53,.45);
}

.results-text {
    font-size:.85rem;
    text-transform:uppercase;
    letter-spacing:1px;
    color: var(--as-text-dim);
    font-weight:600;
}

/* ---------- GRID + SIDEBAR LAYOUT ---------- */
.search-filters-card {
    background: var(--as-surface);
    backdrop-filter: blur(var(--as-glass-blur));
    -webkit-backdrop-filter: blur(var(--as-glass-blur));
    border:1px solid var(--as-border);
    padding:26px 24px 30px;
    border-radius: var(--as-radius-lg);
    position:sticky;
    top:110px;
    box-shadow: var(--as-shadow);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    gap:26px;
    isolation:isolate;
    animation: fadeInBlock .5s .05s both;
}

@keyframes fadeInBlock {
    from { opacity:0; transform:translateY(14px);}
    to { opacity:1; transform:translateY(0);}
}

/* decorative glow */
.search-filters-card::before {
    content:'';
    position:absolute;
    inset:0;
    background:
       linear-gradient(145deg, rgba(255,107,53,0.12), transparent 45%),
       linear-gradient(-160deg, rgba(255,107,53,0.08), transparent 55%);
    opacity:.65;
    pointer-events:none;
    mix-blend-mode:overlay;
}

.filters-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:-6px;
}

.filters-title {
    margin:0;
    font-size:1rem;
    font-weight:600;
    display:flex;
    align-items:center;
    gap:10px;
    letter-spacing:.5px;
    color: var(--as-text);
    text-transform:uppercase;
}

.filters-title i {
    color: var(--as-primary);
    font-size:.95rem;
    filter:drop-shadow(0 0 6px rgba(255,107,53,.45));
}

.clear-filters {
    font-size:.75rem;
    text-decoration:none;
    text-transform:uppercase;
    letter-spacing:.7px;
    display:inline-flex;
    gap:6px;
    align-items:center;
    padding:6px 12px;
    border-radius: var(--as-radius-sm);
    border:1px solid var(--as-border);
    color: var(--as-text-dim);
    line-height:1;
    position:relative;
    background: linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
    transition: var(--as-transition);
}

.clear-filters:hover {
    color: var(--as-primary);
    border-color: var(--as-border-strong);
    box-shadow: 0 0 0 3px rgba(255,107,53,0.15);
    transform:translateY(-2px);
}

/* ---------- FORM GROUPS ---------- */
.search-form {
    display:flex;
    flex-direction:column;
    gap:22px;
}

.filter-group {
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:14px 16px 18px;
    background: var(--as-surface-alt);
    border:1px solid var(--as-border);
    border-radius: var(--as-radius);
    position:relative;
    transition: var(--as-transition);
}

/* Collapsible state animations */
.filter-group[data-collapsible] .filter-body {
    will-change:max-height;
}

.filter-toggle {
    background: rgba(255,255,255,.06);
    border:1px solid var(--as-border);
    width:30px;
    height:30px;
    border-radius:8px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color: var(--as-text-dim);
    cursor:pointer;
    transition: var(--as-transition);
    box-shadow:0 2px 6px rgba(0,0,0,.35) inset;
}
.filter-toggle:hover,
.filter-toggle:focus {
    color: var(--as-primary);
    border-color: var(--as-border-strong);
    outline:none;
}
.filter-toggle[aria-expanded="false"] i { transform:rotate(180deg); }
.filter-toggle i { transition: var(--as-transition); }

/* Toolbar */
.filter-toolbar-btn {
    background: rgba(255,255,255,.05) !important;
    border:1px solid var(--as-border) !important;
    color: var(--as-text-dim) !important;
    padding:4px 8px !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:8px !important;
    transition: var(--as-transition) !important;
}
.filter-toolbar-btn:hover,
.filter-toolbar-btn:focus {
    color: var(--as-primary) !important;
    border-color: var(--as-border-strong) !important;
}

/* Active Filters */
.active-filters-wrapper {
    background: var(--z-surface-1);
    border:1px solid var(--as-border);
    border-radius: var(--as-radius);
    padding:14px 16px 16px;
    display:flex;
    flex-direction:column;
    gap:12px;
    position:relative;
    animation: fadeInBlock .4s ease;
}
.active-filters-title { font-size:.65rem; text-transform:uppercase; letter-spacing:1px; font-weight:600; color: var(--as-text-dim); display:flex; align-items:center; gap:6px; }
.active-filters-clear { font-size:.6rem; text-transform:uppercase; letter-spacing:.8px; text-decoration:none; color: var(--as-text-dim); border:1px solid var(--as-border); padding:4px 10px; border-radius: var(--as-radius-sm); transition: var(--as-transition); }
.active-filters-clear:hover { color: var(--as-primary); border-color: var(--as-primary); }
.filter-chips { display:flex; flex-wrap:wrap; gap:8px; }
.filter-chip { background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); border:1px solid var(--as-border); color: var(--as-text-soft); font-size:.65rem; letter-spacing:.5px; padding:6px 10px 6px 12px; border-radius: 18px; display:inline-flex; gap:6px; align-items:center; position:relative; transition: var(--as-transition); backdrop-filter:blur(8px); }
.filter-chip:hover { border-color: var(--as-primary); color:#fff; }
.filter-chip button { all:unset; cursor:pointer; width:18px; height:18px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.08); color: var(--as-text-dim); font-size:.65rem; transition: var(--as-transition); }
.filter-chip button:hover { background: var(--as-primary); color:#000; }

/* Filter tip */
.filter-tip { font-size:.6rem; letter-spacing:.6px; margin-top:-4px; display:flex; align-items:center; gap:6px; }
.filter-tip .text-warning { color: var(--as-primary) !important; filter: drop-shadow(0 0 6px rgba(255,107,53,.5)); }

/* Collapsed body helper */
.filter-body.collapsed { overflow:hidden; }


.filter-group:hover {
    border-color: var(--as-border-strong);
    background: rgba(45,55,72,0.75);
}

.filter-group:focus-within {
    border-color: var(--as-primary);
    box-shadow: var(--as-primary-glow);
}

.filter-label {
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:1.1px;
    font-weight:600;
    color: var(--as-text-dim);
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
}

.filter-label i {
    color: var(--as-primary);
    font-size:.8rem;
}

.form-control,
.form-select {
    background: var(--z-surface-1);
    border:1px solid var(--as-border);
    color: var(--as-text);
    border-radius: var(--as-radius-sm);
    padding:10px 12px;
    font-size:.85rem;
    line-height:1.2;
    box-shadow:0 2px 4px rgba(0,0,0,.25) inset, 0 1px 0 rgba(255,255,255,.05);
    transition: var(--as-transition);
}

.form-control:focus,
.form-select:focus {
    outline:none;
    border-color: var(--as-primary);
    background: var(--z-bg);
    box-shadow: var(--as-primary-glow);
}

.form-control::placeholder {
    color: var(--as-text-faint);
    opacity:.65;
}

.form-text {
    font-size:.65rem;
    color: var(--as-text-faint);
    margin-top:-4px;
}

/* inline multi inputs */
.price-range-inputs,
.polygon-range-inputs,
.date-range-inputs {
    display:flex;
    align-items:center;
    gap:10px;
}

.price-separator,
.range-separator,
.date-separator {
    font-size:.75rem;
    color: var(--as-text-dim);
    opacity:.8;
    padding:0 2px;
}

/* checkboxes */
.form-check {
    display:flex;
    align-items:center;
    gap:10px;
    position:relative;
    padding:4px 2px;
}

.form-check-input {
    width:18px;
    height:18px;
    border-radius:6px;
    background: var(--z-surface-1);
    border:1px solid var(--as-border);
    cursor:pointer;
    appearance:none;
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    transition: var(--as-transition);
}

.form-check-input:focus {
    outline:none;
    box-shadow: 0 0 0 3px rgba(255,107,53,.35);
    border-color: var(--as-primary);
}

.form-check-input:checked {
    background: linear-gradient(135deg,var(--as-primary),#ff884a);
    border-color: var(--as-primary);
}

.form-check-input:checked::after {
    content:'';
    width:8px;
    height:8px;
    background:#fff;
    border-radius:2px;
    box-shadow:0 0 0 2px rgba(0,0,0,.25);
    transform:scale(.95);
}

.form-check-label {
    font-size:.8rem;
    color: var(--as-text-soft);
    cursor:pointer;
}

.form-check-input:checked + .form-check-label {
    color:#fff;
}

/* ---------- ACTIONS (Search / Reset) ---------- */
.filter-actions {
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    margin-top:4px;
}

.btn-search,
.btn-reset {
    --btn-bg: linear-gradient(135deg,var(--as-primary) 0%,#e05628 100%);
    border:none;
    background: var(--btn-bg);
    color:#fff;
    font-size:.8rem;
    font-weight:600;
    letter-spacing:.6px;
    text-transform:uppercase;
    padding:12px 18px;
    border-radius: var(--as-radius-sm);
    display:inline-flex;
    align-items:center;
    gap:8px;
    position:relative;
    overflow:hidden;
    cursor:pointer;
    transition: var(--as-transition);
    box-shadow:0 6px 18px -4px rgba(255,107,53,.45), 0 2px 4px rgba(0,0,0,.45);
}

.btn-search::before {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(120deg, rgba(255,255,255,.15), transparent 55%);
    opacity:0;
    transition: var(--as-transition);
}

.btn-search:hover::before {
    opacity:1;
}

.btn-search:hover {
    transform:translateY(-3px);
    box-shadow:0 10px 28px -6px rgba(255,107,53,.55), 0 4px 10px rgba(0,0,0,.55);
}

.btn-reset {
    background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
    color: var(--as-text-soft);
    box-shadow:0 4px 14px -4px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.05);
    border:1px solid var(--as-border);
}

.btn-reset:hover {
    color: var(--as-primary);
    border-color: var(--as-primary);
    transform:translateY(-3px);
    box-shadow:0 8px 20px -6px rgba(255,107,53,.4);
}

/* ---------- RESULTS SECTION ---------- */
.results-header {
    margin:40px 0 20px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    flex-wrap:wrap;
    position:relative;
}

.results-header::after {
    content:'';
    position:absolute;
    left:0;
    bottom:-8px;
    width:100%;
    height:1px;
    background:linear-gradient(90deg, transparent, var(--as-primary) 35%, var(--as-primary) 65%, transparent);
    opacity:.35;
}

.results-info {
    display:flex;
    flex-direction:column;
    gap:6px;
}

.results-title {
    margin:0;
    font-size:1.05rem;
    font-weight:600;
    color:#fff;
    letter-spacing:.5px;
}

.search-query {
    margin:0;
    font-size:.8rem;
    color: var(--as-text-dim);
    font-weight:500;
}
.search-query strong {
    color: var(--as-primary);
    text-shadow:0 0 10px rgba(255,107,53,.4);
}

.results-controls {
    display:flex;
    align-items:center;
    gap:24px;
}

.sort-dropdown {
    display:flex;
    align-items:center;
    gap:10px;
    background: rgba(0,0,0,.25);
    border:1px solid var(--as-border);
    padding:10px 14px;
    border-radius: var(--as-radius-sm);
    box-shadow: var(--as-shadow-xs);
    position:relative;
    transition: var(--as-transition);
}

.sort-dropdown:hover {
    border-color: var(--as-border-strong);
}

.sort-label {
    font-size:.7rem;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:600;
    color: var(--as-text-dim);
    margin:0;
}

.sort-dropdown select {
    background: var(--z-surface-1);
    border:1px solid var(--as-border);
    color: var(--as-text);
    font-size:.8rem;
    padding:6px 10px;
    border-radius: var(--as-radius-sm);
    cursor:pointer;
    transition: var(--as-transition);
    min-width:150px;
}

.sort-dropdown select:hover {
    border-color: var(--as-border-strong);
}

.sort-dropdown select:focus {
    outline:none;
    border-color: var(--as-primary);
    box-shadow: var(--as-primary-glow);
}
/* ==== Remove default focus outline on results container (programmatic focus) ==== */
#searchResultsMain:focus,
#searchResultsMain:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}
/* ---------- PRODUCT GRID (uses existing product_card.css for cards) ---------- */
.products-grid {
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(270px,1fr));
    gap:28px;
    position:relative;
    margin-bottom:50px;
    animation: fadeInGrid .45s ease;
}

@keyframes fadeInGrid {
    from { opacity:0; transform:translateY(12px);}
    to { opacity:1; transform:translateY(0);}
}

/* Subtle entering animation for each card (progressive delay) */
.products-grid > article {
    animation: cardIn .6s cubic-bezier(.4,0,.2,1) both;
}
.products-grid > article:nth-child(1){animation-delay:.02s}
.products-grid > article:nth-child(2){animation-delay:.04s}
.products-grid > article:nth-child(3){animation-delay:.06s}
.products-grid > article:nth-child(4){animation-delay:.08s}
@keyframes cardIn {
    from { opacity:0; transform:translateY(16px) scale(.98);}
    to { opacity:1; transform:translateY(0) scale(1);}
}

/* ---------- NO RESULTS ---------- */
.no-results {
    padding:70px 40px 80px;
    background: linear-gradient(145deg, rgba(45,55,72,.55), rgba(26,32,44,.6));
    border:1px dashed var(--as-border);
    border-radius: var(--as-radius-lg);
    text-align:center;
    position:relative;
    overflow:hidden;
    box-shadow: var(--as-shadow);
    animation: fadeInBlock .55s ease;
}

.no-results::before {
    content:'';
    position:absolute;
    inset:0;
    background:
        linear-gradient(135deg, rgba(255,107,53,.08), transparent 55%),
        radial-gradient(circle at 75% 85%, rgba(255,107,53,.13), transparent 70%);
    mix-blend-mode:overlay;
    opacity:.9;
    pointer-events:none;
}

.no-results-icon {
    font-size:2.8rem;
    color: var(--as-primary);
    margin-bottom:14px;
    filter:drop-shadow(0 8px 20px rgba(255,107,53,.35));
}

.no-results-title {
    font-size:1.25rem;
    font-weight:600;
    margin:0 0 12px;
    color:#fff;
}

.no-results-text {
    font-size:.9rem;
    color: var(--as-text-soft);
    max-width:560px;
    margin:0 auto 26px;
    line-height:1.55;
}

.no-results-actions {
    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
}

/* ---------- SUGGESTIONS / TAGS ---------- */
.suggestions,
.popular-tags {
    margin-top:36px;
    text-align:left;
    animation: fadeInBlock .5s ease;
}

.suggestions-title,
.tags-title {
    font-size:.85rem;
    font-weight:600;
    letter-spacing:.6px;
    text-transform:uppercase;
    color: var(--as-text-dim);
    margin:0 0 16px;
}

.suggestions-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:16px;
}

.tags-list {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.tag-item {
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:.7rem;
    font-weight:600;
    text-transform:uppercase;
    padding:8px 14px;
    border-radius: 20px;
    background: var(--z-surface-1);
    border:1px solid var(--as-border);
    color: var(--as-text-soft);
    text-decoration:none;
    letter-spacing:.5px;
    position:relative;
    overflow:hidden;
    transition: var(--as-transition);
}

.tag-item:hover {
    color:#fff;
    border-color: var(--as-primary);
    background: rgba(255,107,53,.12);
    transform:translateY(-2px);
    box-shadow:0 6px 16px -4px rgba(255,107,53,.35);
}

/* ---------- PAGINATION WRAPPER ---------- */
.pagination-wrapper {
    margin:10px 0 60px;
    display:flex;
    justify-content:center;
    animation: fadeInBlock .45s ease;
}

/* ---------- STATS BLOCK ---------- */
.search-stats {
    background: var(--as-surface);
    border:1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    padding:30px 28px 34px;
    margin:10px 0 70px;
    position:relative;
    overflow:hidden;
    box-shadow: var(--as-shadow);
    animation: fadeInBlock .5s ease;
}

.search-stats::before {
    content:'';
    position:absolute;
    inset:0;
    background:
       linear-gradient(140deg, rgba(255,107,53,.14), transparent 55%),
       radial-gradient(circle at 20% 80%, rgba(255,107,53,.14), transparent 70%);
    mix-blend-mode:overlay;
    opacity:.8;
    pointer-events:none;
}

.stats-title {
    font-size:.85rem;
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
    color: var(--as-text-dim);
    margin:0 0 22px;
}

.stats-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:22px;
    margin-bottom:10px;
}

.stat-item {
    background: var(--z-surface-1);
    border:1px solid var(--as-border);
    padding:16px 18px 18px;
    border-radius: var(--as-radius);
    display:flex;
    flex-direction:column;
    gap:6px;
    position:relative;
    overflow:hidden;
    transition: var(--as-transition);
}

.stat-item::before {
    content:'';
    position:absolute;
    inset:0;
    background: linear-gradient(135deg, rgba(255,107,53,.12), transparent 60%);
    opacity:0;
    transition: var(--as-transition);
    pointer-events:none;
}

.stat-item:hover {
    border-color: var(--as-border-strong);
    transform:translateY(-3px);
    box-shadow:0 12px 30px -10px rgba(0,0,0,.65), 0 4px 10px rgba(0,0,0,.45);
}

.stat-item:hover::before {
    opacity:.55;
}

.stat-label {
    font-size:.6rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:1px;
    color: var(--as-text-faint);
}

.stat-value {
    font-size:1.05rem;
    font-weight:600;
    color:#fff;
    letter-spacing:.5px;
    text-shadow:0 0 14px rgba(255,107,53,.35);
}

.popular-categories {
    margin-top:30px;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
}

.categories-label {
    font-size:.7rem;
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:600;
    color: var(--as-text-dim);
    margin-right:6px;
}

.category-badge {
    background: var(--z-surface-1);
    border:1px solid var(--as-border);
    padding:8px 14px;
    font-size:.7rem;
    font-weight:600;
    color: var(--as-text-soft);
    letter-spacing:.5px;
    text-decoration:none;
    border-radius: 18px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    transition: var(--as-transition);
    position:relative;
    overflow:hidden;
}

.category-badge:hover {
    color:#fff;
    background: rgba(255,107,53,.15);
    border-color: var(--as-primary);
    transform:translateY(-2px);
    box-shadow:0 6px 16px -4px rgba(255,107,53,.35);
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1200px) {
    .search-filters-card { top: 95px; }
    .page-title { font-size:2.1rem; }
    .products-grid { gap:24px; }
}

@media (max-width: 992px) {
    .search-filters-card {
        position:static;
        top:auto;
        margin-bottom:40px;
        width:100%;
    }
    .page-header { padding:50px 0 46px; }
    .page-title { font-size:2rem; }
    .results-header { gap:20px; }
    .results-summary { justify-content:flex-start; }
    .products-grid { grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); }
}

@media (max-width: 768px) {
    .page-title { font-size:1.85rem; }
    .page-subtitle { font-size:.95rem; }
    .results-header { flex-direction:column; align-items:flex-start; }
    .results-controls { width:100%; justify-content:flex-start; }
    .products-grid { gap:22px; }
    .search-stats { padding:26px 24px 30px; }
}

@media (max-width: 560px) {
    .products-grid { grid-template-columns:1fr; }
    .search-filters-card { padding:24px 20px 28px; }
    .filter-group { padding:14px 14px 16px; }
    .btn-search, .btn-reset { flex:1; justify-content:center; }
    .stat-item { padding:14px 16px 16px; }
    .results-summary { padding:12px 16px; }
}

@media (prefers-reduced-motion: reduce) {
    * {
        animation:none !important;
        transition:none !important;
    }
}

/* High Contrast Preference */
@media (prefers-contrast: high) {
    .search-filters-card,
    .filter-group,
    .stat-item,
    .sort-dropdown,
    .results-summary {
        border-width:2px;
    }
}

/* Print */
@media print {
    .advanced-search-container,
    .page-header {
        background:#fff !important;
        -webkit-print-color-adjust:exact;
    }
    .search-filters-card,
    .filter-group,
    .stat-item,
    .results-summary,
    .sort-dropdown {
        background:#fff !important;
        box-shadow:none !important;
        border:1px solid #000;
    }
    .btn-search,
    .btn-reset,
    .no-results-actions,
    .sort-dropdown select {
        display:none !important;
    }
}

/* ==== Simplified / Consistent Sidebar Form ==== */
.search-form-compact .filters-stack {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.search-form-compact .filter-group {
    padding: 14px 14px 16px;
    border-radius: var(--as-radius);
    background: var(--as-surface-alt);
    border: 1px solid var(--as-border);
    margin: 0;
    min-height: 0; /* allow natural height */
    transition: var(--as-transition);
}

.search-form-compact .filter-group:hover {
    border-color: var(--as-border-strong);
    background: rgba(45,55,72,.72);
}

.search-form-compact .filter-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0 0 4px;
    margin: 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .9px;
}

.search-form-compact .icon-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    color: var(--as-text-dim);
    white-space: nowrap;
}

.search-form-compact .icon-label i {
    color: var(--as-primary);
    font-size: .8rem;
}

.search-form-compact .filter-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}

.search-form-compact .range-duo {
    display: flex;
    align-items: center;
    gap: 8px;
}

.search-form-compact .range-sep {
    font-size: .7rem;
    color: var(--as-text-dim);
    opacity: .7;
}

.search-form-compact .form-control,
.search-form-compact .form-select {
    font-size: .8rem;
    padding: 8px 10px;
    min-height: 38px;
}

.search-form-compact .form-check-input {
    margin-top: 0;
}

.search-form-compact .form-text {
    font-size: .58rem;
    letter-spacing: .4px;
    opacity: .75;
}

.search-form-compact .filter-toggle {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--as-border);
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--as-transition);
}

.search-form-compact .filter-toggle:hover {
    border-color: var(--as-border-strong);
    color: var(--as-primary);
}

.search-form-compact .filter-group[aria-busy="true"] {
    opacity: .6;
    pointer-events: none;
}

.search-form-compact .filter-actions {
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,0.07);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* Smooth collapse */
.search-form-compact .filter-body {
    overflow: hidden;
    transition: max-height .35s cubic-bezier(.4,0,.2,1), opacity .25s ease;
}

.search-form-compact .filter-body.collapsed {
    opacity: 0;
}

/* Consistent equal visual rhythm */
.search-form-compact .filter-group:not(:hover):not(:focus-within) {
    box-shadow: 0 0 0 0 rgba(0,0,0,0);
}

.search-form-compact .filter-group:focus-within {
    border-color: var(--as-primary);
    box-shadow: var(--as-primary-glow);
}

/* Responsive tightening */
@media (max-width: 992px) {
    .search-form-compact .filter-group { padding: 12px 12px 14px; }
}