/**
 * SIS Parts Catalog — стили
 * Версия: 1.2.0
 *
 * Подключается через wp_enqueue_style в шаблонах.
 * БЭМ-нотация для интеграции с любой темой.
 * SEO: Яндекс-оптимизированные шаблоны (v1.2.0)
 */

:root {
        --sis-color-primary: #00A196;
        --sis-color-primary-dark: #008579;
        --sis-color-bg: #ffffff;
        --sis-color-bg-card: #f0f7f9;
        --sis-color-bg-hover: #e6f5f4;
        --sis-color-text: #303232;
        --sis-color-text-secondary: #8b9697;
        --sis-color-border: #e1e8ed;
        --sis-color-success: #1e8e3e;
        --sis-color-success-bg: #e6f4ea;
        --sis-color-warning: #e37400;
        --sis-color-warning-bg: #fef7e0;
        --sis-radius: 8px;
        --sis-radius-sm: 4px;
        --sis-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
        --sis-shadow-hover: 0 2px 8px rgba(0, 0, 0, 0.12);
        --sis-max-width: 1200px;
        --sis-gap: 16px;
}


/* ============================================================
   COMMON
   ============================================================ */

.sis-catalog {
        max-width: var(--sis-max-width);
        margin: 0 auto;
        padding: 24px 16px;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
        color: var(--sis-color-text);
}

.sis-catalog__title {
        font-size: 1.75rem;
        font-weight: 700;
        margin-bottom: 8px;
        color: var(--sis-color-text);
}

.sis-catalog__subtitle {
        font-size: 1rem;
        color: var(--sis-color-text-secondary);
        margin-bottom: 24px;
}

.sis-catalog__sep {
        margin: 0 6px;
        color: var(--sis-color-text-secondary);
}

.sis-catalog__section-title {
        font-size: 1rem;
        font-weight: 600;
        margin-bottom: 10px;
}


/* ============================================================
   BREADCRUMBS
   ============================================================ */

.sis-catalog__breadcrumbs {
        font-size: 0.875rem;
        color: var(--sis-color-text-secondary);
        margin-bottom: 20px;
}

.sis-catalog__breadcrumbs a {
        color: var(--sis-color-primary);
        text-decoration: none;
}

.sis-catalog__breadcrumbs a:hover {
        text-decoration: underline;
}


/* ============================================================
   SEARCH
   ============================================================ */

.sis-catalog__search {
        position: relative;
        margin-bottom: 24px;
}

.sis-catalog__search-input {
        width: 100%;
        max-width: 500px;
        padding: 12px 16px;
        font-size: 1rem;
        border: 2px solid var(--sis-color-border);
        border-radius: var(--sis-radius);
        outline: none;
        transition: border-color 0.2s;
        box-sizing: border-box;
}

.sis-catalog__search-input:focus {
        border-color: var(--sis-color-primary);
}

.sis-catalog__search-results {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        max-width: 500px;
        max-height: 300px;
        overflow-y: auto;
        background: var(--sis-color-bg);
        border: 1px solid var(--sis-color-border);
        border-top: none;
        border-radius: 0 0 var(--sis-radius) var(--sis-radius);
        box-shadow: var(--sis-shadow-hover);
        z-index: 100;
        display: none;
}

.sis-catalog__search-results--active {
        display: block;
}

.sis-catalog__search-result-item {
        display: block;
        padding: 10px 16px;
        color: var(--sis-color-text);
        text-decoration: none;
        border-bottom: 1px solid #f0f0f0;
        transition: background 0.15s;
}

.sis-catalog__search-result-item:hover {
        background: var(--sis-color-bg-hover);
}

.sis-catalog__search-result-item strong {
        color: var(--sis-color-primary);
}


/* ============================================================
   ALPHABET FILTER
   ============================================================ */

.sis-catalog__alphabet {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin-bottom: 24px;
}

.sis-catalog__letter {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 36px;
        height: 36px;
        padding: 0 8px;
        border-radius: var(--sis-radius-sm);
        background: var(--sis-color-bg-card);
        color: var(--sis-color-text);
        text-decoration: none;
        font-size: 0.875rem;
        font-weight: 600;
        border: 1px solid var(--sis-color-border);
        transition: all 0.15s;
        cursor: pointer;
        font-family: inherit;
        /* Progressive Enhancement: <a> вместо <button> для Яндекса */
        line-height: 1;
        box-sizing: border-box;
}

.sis-catalog__letter:hover {
        background: var(--sis-color-bg-hover);
        border-color: var(--sis-color-primary);
        color: var(--sis-color-primary);
}

.sis-catalog__letter--active {
        background: var(--sis-color-primary);
        color: #fff;
        border-color: var(--sis-color-primary);
}


/* ============================================================
   BRAND CARDS GRID
   ============================================================ */

.sis-catalog__brands-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: var(--sis-gap);
}

.sis-catalog__brand-card {
        display: flex;
        flex-direction: column;
        gap: 4px;
        padding: 16px;
        background: var(--sis-color-bg-card);
        border: 1px solid var(--sis-color-border);
        border-radius: var(--sis-radius);
        text-decoration: none;
        color: var(--sis-color-text);
        transition: all 0.2s;
}

.sis-catalog__brand-card:hover {
        background: var(--sis-color-bg-hover);
        border-color: var(--sis-color-primary);
        box-shadow: var(--sis-shadow-hover);
        transform: translateY(-1px);
}

.sis-catalog__brand-name {
        font-size: 0.9375rem;
        font-weight: 600;
        color: var(--sis-color-text);
}

.sis-catalog__brand-count {
        font-size: 0.8125rem;
        color: var(--sis-color-text-secondary);
        padding-bottom: 10px;
}


/* ============================================================
   PARTS LIST
   ============================================================ */

.sis-catalog__parts-list {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
        gap: 8px;
}

.sis-catalog__part-link {
        display: block;
        padding: 10px 14px;
        background: var(--sis-color-bg-card);
        border: 1px solid var(--sis-color-border);
        border-radius: var(--sis-radius-sm);
        color: var(--sis-color-text);
        text-decoration: none;
        font-size: 0.875rem;
        font-family: "SF Mono", "Fira Code", "Consolas", monospace;
        transition: all 0.15s;
        word-break: break-all;
}

.sis-catalog__part-link:hover {
        background: var(--sis-color-bg-hover);
        border-color: var(--sis-color-primary);
        color: var(--sis-color-primary);
}


/* ============================================================
   PART DETAIL CARD
   ============================================================ */

.sis-catalog__part-card {
        background: var(--sis-color-bg);
        border: 1px solid var(--sis-color-border);
        border-radius: var(--sis-radius);
        padding: 32px;
        margin-bottom: 32px;
        box-shadow: var(--sis-shadow);
}

.sis-catalog__part-title {
        font-size: 1.5rem;
        font-weight: 700;
        margin-bottom: 20px;
}

.sis-catalog__part-brand {
        font-weight: 400;
        color: var(--sis-color-text-secondary);
}

/* Мета-блок */
.sis-catalog__part-meta {
        margin-bottom: 24px;
        padding: 16px;
        background: var(--sis-color-bg-card);
        border-radius: var(--sis-radius-sm);
        border: 1px solid var(--sis-color-border);
}

.sis-catalog__part-meta-row {
        display: flex;
        gap: 12px;
        padding: 6px 0;
        font-size: 0.9375rem;
        border-bottom: 1px solid #eee;
}

.sis-catalog__part-meta-row:last-child {
        border-bottom: none;
}

.sis-catalog__part-meta-label {
        color: var(--sis-color-text-secondary);
        min-width: 140px;
        flex-shrink: 0;
}

.sis-catalog__part-meta-value {
        font-weight: 500;
}

.sis-catalog__part-meta-link {
        color: var(--sis-color-primary);
        text-decoration: none;
        font-weight: 500;
}

.sis-catalog__part-meta-link:hover {
        text-decoration: underline;
}

.sis-catalog__part-avail {
        color: var(--sis-color-success);
        font-weight: 600;
}

.sis-catalog__part-cta {
        margin-bottom: 24px;
        padding: 16px;
        background: var(--sis-color-success-bg);
        border-radius: var(--sis-radius-sm);
        border-left: 4px solid var(--sis-color-success);
}

.sis-catalog__part-cta p {
        margin: 4px 0;
}


/* ============================================================
   ORDER FORM (CF7 + Fallback)
   ============================================================ */

.sis-catalog__cf7-notice {
        padding: 12px 16px;
        margin-bottom: 16px;
        background: var(--sis-color-warning-bg);
        border-radius: var(--sis-radius-sm);
        border-left: 4px solid var(--sis-color-warning);
        font-size: 0.875rem;
        color: #5d4037;
}

.sis-catalog__cf7-notice p {
        margin: 0;
}

.sis-catalog__cf7-notice a {
        color: var(--sis-color-primary);
        font-weight: 600;
}

/* CF7 форма внутри карточки каталога */
.sis-catalog__order-form .wpcf7 {
        max-width: 500px;
}

.sis-catalog__order-form .wpcf7-form {
        margin: 0;
}

.sis-catalog__order-form .wpcf7-form p {
        margin-bottom: 12px;
}

.sis-catalog__order-form .wpcf7-form label {
        display: block;
        font-size: 0.875rem;
        font-weight: 500;
        margin-bottom: 4px;
        color: var(--sis-color-text-secondary);
}

.sis-catalog__order-form .wpcf7-form input[type="text"],
.sis-catalog__order-form .wpcf7-form input[type="email"],
.sis-catalog__order-form .wpcf7-form input[type="tel"],
.sis-catalog__order-form .wpcf7-form textarea {
        width: 100%;
        padding: 10px 14px;
        border: 1px solid var(--sis-color-border);
        border-radius: var(--sis-radius-sm);
        font-size: 0.9375rem;
        box-sizing: border-box;
        font-family: inherit;
        transition: border-color 0.2s;
}

.sis-catalog__order-form .wpcf7-form input:focus,
.sis-catalog__order-form .wpcf7-form textarea:focus {
        border-color: var(--sis-color-primary);
        outline: none;
        box-shadow: 0 0 0 2px rgba(0, 161, 150, 0.15);
}

.sis-catalog__order-form .wpcf7-form .wpcf7-submit {
        display: inline-block;
        padding: 12px 32px;
        background: var(--sis-color-primary);
        color: #fff;
        border: none;
        border-radius: var(--sis-radius-sm);
        font-size: 1rem;
        font-weight: 600;
        cursor: pointer;
        transition: background 0.2s;
        font-family: inherit;
}

.sis-catalog__order-form .wpcf7-form .wpcf7-submit:hover {
        background: var(--sis-color-primary-dark);
}

/* CF7 уведомления об ошибках/успехе */
.sis-catalog__order-form .wpcf7-not-valid-tip {
        font-size: 0.8125rem;
        color: #d32f2f;
        margin-top: 4px;
}

.sis-catalog__order-form .wpcf7-response-output {
        margin: 16px 0 0;
        padding: 12px 16px;
        border-radius: var(--sis-radius-sm);
        font-size: 0.875rem;
}

.sis-catalog__order-form .wpcf7-mail-sent-ok {
        background: var(--sis-color-success-bg);
        border-color: var(--sis-color-success);
        color: var(--sis-color-success);
}

.sis-catalog__order-form .wpcf7-validation-errors {
        background: #ffebee;
        border-color: #d32f2f;
        color: #c62828;
}

.sis-catalog__form-row {
        margin-bottom: 12px;
}

.sis-catalog__fallback-form input,
.sis-catalog__fallback-form textarea {
        width: 100%;
        max-width: 500px;
        padding: 10px 14px;
        border: 1px solid var(--sis-color-border);
        border-radius: var(--sis-radius-sm);
        font-size: 0.9375rem;
        box-sizing: border-box;
        font-family: inherit;
}

.sis-catalog__fallback-form input:focus,
.sis-catalog__fallback-form textarea:focus {
        border-color: var(--sis-color-primary);
        outline: none;
        box-shadow: 0 0 0 2px rgba(0, 161, 150, 0.15);
}

.sis-catalog__submit-btn {
        display: inline-block;
        padding: 12px 32px;
        background: var(--sis-color-primary);
        color: #fff;
        border: none;
        border-radius: var(--sis-radius-sm);
        font-size: 1rem;
        font-weight: 600;
        cursor: pointer;
        transition: background 0.2s;
        font-family: inherit;
}

.sis-catalog__submit-btn:hover {
        background: var(--sis-color-primary-dark);
}


/* ============================================================
   SAME PART OTHER BRANDS
   ============================================================ */

.sis-catalog__same-part-brands {
        margin-bottom: 24px;
}

.sis-catalog__same-part-list {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
}

.sis-catalog__same-part-link {
        padding: 6px 14px;
        background: var(--sis-color-warning-bg);
        border: 1px solid #f9a825;
        border-radius: var(--sis-radius-sm);
        color: var(--sis-color-warning);
        text-decoration: none;
        font-size: 0.875rem;
        font-weight: 500;
        transition: all 0.15s;
}

.sis-catalog__same-part-link:hover {
        background: #ffe082;
}


/* ============================================================
   SIBLINGS
   ============================================================ */

.sis-catalog__siblings {
        margin-bottom: 24px;
}

.sis-catalog__siblings-list {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
}

.sis-catalog__sibling-link {
        padding: 4px 10px;
        background: var(--sis-color-bg-card);
        border: 1px solid var(--sis-color-border);
        border-radius: var(--sis-radius-sm);
        color: var(--sis-color-text);
        text-decoration: none;
        font-size: 0.8125rem;
        font-family: "SF Mono", "Fira Code", "Consolas", monospace;
        transition: all 0.15s;
}

.sis-catalog__sibling-link:hover {
        background: var(--sis-color-bg-hover);
        border-color: var(--sis-color-primary);
        color: var(--sis-color-primary);
}


/* ============================================================
   PAGINATION
   ============================================================ */

.sis-pagination {
        margin-top: 32px;
        margin-bottom: 16px;
}

.sis-pagination__pages {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        align-items: center;
        margin-bottom: 8px;
}

.sis-pagination__link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 36px;
        height: 36px;
        padding: 0 10px;
        border-radius: var(--sis-radius-sm);
        background: var(--sis-color-bg-card);
        border: 1px solid var(--sis-color-border);
        color: var(--sis-color-text);
        text-decoration: none;
        font-size: 0.875rem;
        transition: all 0.15s;
}

.sis-pagination__link:hover {
        background: var(--sis-color-bg-hover);
        border-color: var(--sis-color-primary);
        color: var(--sis-color-primary);
}

.sis-pagination__link--active {
        background: var(--sis-color-primary);
        color: #fff;
        border-color: var(--sis-color-primary);
}

.sis-pagination__dots {
        padding: 0 6px;
        color: var(--sis-color-text-secondary);
}

.sis-pagination__prev,
.sis-pagination__next {
        font-weight: 600;
}

.sis-pagination__info {
        font-size: 0.8125rem;
        color: var(--sis-color-text-secondary);
}


/* ============================================================
   EMPTY / 404
   ============================================================ */

.sis-catalog__empty {
        padding: 32px;
        text-align: center;
        color: var(--sis-color-text-secondary);
        font-size: 1.125rem;
}

.sis-catalog--404 {
        text-align: center;
        padding: 60px 16px;
}


/* ============================================================
   SEARCH PAGE
   ============================================================ */

.sis-catalog__search-form {
        margin-bottom: 32px;
}

.sis-catalog__search-form-row {
        display: flex;
        gap: 8px;
        max-width: 600px;
}

.sis-catalog__search-form-input {
        flex: 1;
        padding: 14px 18px;
        font-size: 1.0625rem;
        border: 2px solid var(--sis-color-border);
        border-radius: var(--sis-radius);
        outline: none;
        transition: border-color 0.2s;
        box-sizing: border-box;
        font-family: inherit;
}

.sis-catalog__search-form-input:focus {
        border-color: var(--sis-color-primary);
}

.sis-catalog__search-form-btn {
        padding: 14px 28px;
        background: var(--sis-color-primary);
        color: #fff;
        border: none;
        border-radius: var(--sis-radius);
        font-size: 1rem;
        font-weight: 600;
        cursor: pointer;
        transition: background 0.2s;
        font-family: inherit;
        white-space: nowrap;
}

.sis-catalog__search-form-btn:hover {
        background: var(--sis-color-primary-dark);
}

.sis-catalog__search-results-info {
        margin-bottom: 24px;
        font-size: 0.9375rem;
        color: var(--sis-color-text-secondary);
}

.sis-catalog__search-group {
        margin-bottom: 24px;
}

.sis-catalog__search-group-title {
        font-size: 1.125rem;
        font-weight: 600;
        margin-bottom: 10px;
        padding-bottom: 6px;
        border-bottom: 2px solid var(--sis-color-border);
}

.sis-catalog__search-group-title a {
        color: var(--sis-color-text);
        text-decoration: none;
}

.sis-catalog__search-group-title a:hover {
        color: var(--sis-color-primary);
}

.sis-catalog__search-no-results {
        padding: 32px;
        text-align: center;
        color: var(--sis-color-text-secondary);
}

.sis-catalog__search-no-results ul {
        text-align: left;
        max-width: 300px;
        margin: 16px auto;
}

.sis-catalog__search-no-results code {
        background: var(--sis-color-bg-card);
        padding: 2px 6px;
        border-radius: 3px;
}

.sis-catalog__search-help {
        padding: 32px;
        text-align: center;
        color: var(--sis-color-text-secondary);
}

.sis-catalog__search-help code {
        background: var(--sis-color-bg-card);
        padding: 2px 8px;
        border-radius: 3px;
        font-family: "SF Mono", "Fira Code", "Consolas", monospace;
        font-size: 0.875rem;
}

.sis-catalog__search-hint {
        padding: 16px;
        text-align: center;
        color: var(--sis-color-warning);
        font-weight: 500;
}

.sis-catalog__global-search-link {
        margin-bottom: 20px;
}

.sis-catalog__global-search-link a {
        color: var(--sis-color-primary);
        text-decoration: none;
        font-weight: 500;
}

.sis-catalog__global-search-link a:hover {
        text-decoration: underline;
}

.sis-catalog__search-result-brand {
        padding: 8px 16px 4px;
        font-weight: 600;
        font-size: 0.8125rem;
        color: var(--sis-color-text-secondary);
        text-transform: uppercase;
        letter-spacing: 0.5px;
}

.sis-catalog__search-result-items {
        /* container for items under a brand */
}

.sis-catalog__search-result-all {
        display: block;
        padding: 10px 16px;
        text-align: center;
        color: var(--sis-color-primary);
        font-weight: 600;
        text-decoration: none;
        border-top: 1px solid var(--sis-color-border);
}

.sis-catalog__search-result-all:hover {
        background: var(--sis-color-bg-hover);
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 768px) {
        .sis-catalog__brands-grid {
                grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        }

        .sis-catalog__parts-list {
                grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
        }

        .sis-catalog__part-card {
                padding: 20px;
        }

        .sis-catalog__title {
                font-size: 1.375rem;
        }

        .sis-catalog__part-meta-row {
                flex-direction: column;
                gap: 2px;
        }

        .sis-catalog__part-meta-label {
                min-width: unset;
        }
}

@media (max-width: 480px) {
        .sis-catalog__alphabet {
                gap: 4px;
        }

        .sis-catalog__letter {
                min-width: 30px;
                height: 30px;
                font-size: 0.75rem;
                padding: 0 6px;
        }

        .sis-catalog__brands-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 8px;
        }

        .sis-catalog__brand-card {
                padding: 12px;
        }

        .sis-catalog__search-form-row {
                flex-direction: column;
        }
        .sis-catalog__search-form-btn {
                width: 100%;
        }
}
