/*
 * GM AI Search — Module Styles
 * Product cards use the theme's .gm-product-card classes.
 * This file handles search-specific layout and UI elements only.
 */

/* ── Container ──────────────────────────────────── */
#gm-search-results {
    padding: 0 0 2rem;
}

/* ── Product Card Title Reset ──────────────────── */
h2.gm-product-card__title {
    margin-top: 0;
}

/* ── Star Ratings (fill gaps in theme CSS) ────────── */
#gm-search-results .gm-product-card__rating:empty {
    display: none;
}

#gm-search-results .gm-star {
    width: 18px;
    height: 18px;
}

#gm-search-results .gm-star--filled {
    fill: var(--gm-gold, #f5a623);
}

#gm-search-results .gm-star--empty {
    fill: #dee2e6;
}

/* ── Search Results Grid ─────────────────────────── */
.gm-search-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

@media (max-width: 991px) {
    .gm-search-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 767px) {
    .gm-search-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Correction Notice ───────────────────────────── */
.gm-search-correction {
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.9rem;
    color: var(--gm-text-soft, rgba(0,59,77,0.65));
    padding: 0;
    margin: -0.25rem 0 1rem;
}

.gm-search-correction strong {
    color: var(--gm-teal, #003b4d);
}

.gm-search-original-link {
    font-size: 0.85rem;
    color: var(--gm-green, #16b793);
    text-decoration: underline;
}

.gm-search-original-link:hover {
    color: var(--gm-teal, #003b4d);
}

/* ── Suggestion Box ──────────────────────────────── */
.gm-search-suggestion {
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.85rem;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    background: var(--gm-light, #e5f3ef);
    border-radius: var(--radius-sm, 8px);
    color: var(--gm-teal, #003b4d);
    border-left: 3px solid var(--gm-green, #16b793);
}

.gm-search-suggestion p { margin: 0; }

.gm-search-inline-link {
    color: var(--gm-green, #16b793);
    font-weight: 600;
    text-decoration: none;
}

.gm-search-inline-link:hover {
    color: var(--gm-teal, #003b4d);
    text-decoration: underline;
}

/* ── Result Count ────────────────────────────────── */
.gm-search-meta {
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.8rem;
    color: var(--gm-text-soft, rgba(0,59,77,0.65));
    padding: 0 0 1rem;
}

/* ── Loading State ───────────────────────────────── */
.gm-search-loading {
    text-align: center;
    padding: 3rem 1rem;
}

.gm-search-loading p {
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.95rem;
    color: var(--gm-text-soft, rgba(0,59,77,0.65));
    margin: 0;
}

.gm-search-loading strong {
    color: var(--gm-teal, #003b4d);
}

@keyframes gm-search-pulse {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 1; }
}

.gm-search-loading::before {
    content: '';
    display: block;
    width: 32px;
    height: 32px;
    margin: 0 auto 1rem;
    border: 3px solid var(--gm-light, #e5f3ef);
    border-top-color: var(--gm-green, #16b793);
    border-radius: 50%;
    animation: gm-search-spin 0.7s linear infinite;
}

@keyframes gm-search-spin {
    to { transform: rotate(360deg); }
}

/* ── Error / Empty State ─────────────────────────── */
.gm-search-error,
.gm-search-empty {
    text-align: center;
    padding: 2rem 1rem;
}

.gm-search-error p,
.gm-search-empty p {
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.95rem;
    color: var(--gm-text-soft, rgba(0,59,77,0.65));
    margin: 0;
}

/* ── Section Heading (categories, popular) ────────── */
.gm-search-section-heading {
    font-family: 'Quatro Slab', serif;
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--gm-teal, #003b4d);
    margin: 0 0 0.75rem;
}

/* ── Promoted Categories (zero results, categories matched) ── */
.gm-search-promoted {
    padding: 1rem 0 1.5rem;
}

.gm-search-promoted__list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 400px;
}

.gm-search-promoted__link {
    display: block;
    padding: 0.85rem 1.25rem;
    font-size: 1rem;
    font-weight: 600;
    text-align: left;
}

/* ── Category Browsing Fallback ──────────────────── */
.gm-search-categories {
    padding: 1.25rem 0;
}

.gm-search-category-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gm-search-category-list li a {
    display: inline-block;
    padding: 0.4rem 0.85rem;
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--gm-green, #16b793);
    background: var(--gm-light, #e5f3ef);
    border-radius: var(--radius-sm, 8px);
    text-decoration: none;
}

.gm-search-category-list li a:hover {
    color: #fff;
    background: var(--gm-green, #16b793);
}

/* ── Pagination ─────────────────────────────────── */
.gm-search-pagination {
    padding: 1.5rem 0 0.5rem;
}

.gm-search-pagination .pagination {
    margin: 0;
}

.gm-search-pagination .page-link {
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.85rem;
    min-width: 2.25rem;
    text-align: center;
}

.gm-search-pagination .page-item.disabled .page-link {
    cursor: default;
}

/* ── Popular Products Fallback ───────────────────── */
.gm-search-popular {
    padding: 1rem 0 0;
}
