﻿:root {
    --ash-red: #B7000F;
    --ash-navy: #010F53;
    --ash-pink: #FAD1D1;
    --ash-border: #DEE2E6;
    --ash-surface: #FFFFFF;
    --ash-muted: #5F6B7A;
    --ash-card-bg: #F8F9FA;
}

/* Category card */
.category-card {
    height: 100%;
    background-color: var(--ash-card-bg) !important;
    color: var(--ash-navy) !important;
    border: 1px solid var(--ash-border) !important;
    border-radius: 0.75rem;
    padding: 1.5rem;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

    .category-card:hover {
        background-color: var(--ash-pink) !important;
        border-color: var(--ash-red) !important;
        box-shadow: 0 0.25rem 0.75rem rgb(21 39 70 / 8%);
    }

/* Icon container */
.category-icon {
    width: 3.5rem;
    height: 3.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: var(--ash-pink) !important;
    color: var(--ash-red) !important;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

    .category-icon i {
        color: var(--ash-red) !important;
    }

/* Category heading */
.category-title {
    color: var(--ash-navy) !important;
    font-size: 1.125rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

/* Supporting description */
.category-description {
    color: var(--ash-muted) !important;
    font-size: 0.925rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
}

/* Dropdown label */
.category-card .form-label {
    color: var(--ash-navy) !important;
}

/* Dropdown */
.category-card .form-select {
    min-height: 2.75rem;
    background-color: var(--ash-surface) !important;
    border-color: var(--ash-border) !important;
    color: var(--ash-navy) !important;
    border-radius: 0.375rem;
}

    .category-card .form-select:focus {
        border-color: var(--ash-red) !important;
        box-shadow: 0 0 0 0.2rem rgb(183 0 15 / 15%) !important;
    }

/* Informational banner, if present */
.category-info-banner {
    background-color: var(--ash-card-bg) !important;
    color: var(--ash-navy) !important;
    border-color: var(--ash-border) !important;
    border-left-color: var(--ash-red) !important;
}

    .category-info-banner h3 {
        color: var(--ash-navy) !important;
        font-size: 1.125rem;
        font-weight: bold;
        margin-bottom: 0.5rem;
    }

    .category-info-banner p {
        color: var(--ash-muted) !important;
    }

.category-info-icon {
    color: var(--ash-red) !important;
}

/* Main Search Method Card */
.search-method-card {
    background-color: var(--ash-card-bg) !important;
    border: 1px solid var(--ash-border) !important;
    border-radius: 0.75rem;
    padding: 2rem;
    text-align: center;
    box-shadow: 0 0.25rem 0.75rem rgb(21 39 70 / 5%);
}

/* Main Circular Icon */
.search-method-icon {
    width: 5rem;
    height: 5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    border-radius: 50%;
    background-color: var(--ash-pink) !important;
    color: var(--ash-red) !important;
    font-size: 2.25rem;
}

    .search-method-icon i {
        color: var(--ash-red) !important;
    }

/* Main Heading */
.search-method-title {
    color: var(--ash-navy) !important;
    font-weight: 700;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--ash-red) !important;
}

    .search-method-title i {
        color: var(--ash-navy) !important;
    }

/* Introduction */
.search-method-intro {
    margin-bottom: 1.75rem;
}

    .search-method-intro .form-field__label {
        display: block;
        color: var(--ash-navy) !important;
        font-size: 1.125rem;
        font-weight: 700;
        margin-bottom: 0.375rem;
    }

.search-method-subtitle {
    color: var(--ash-muted) !important;
    font-size: 1.125rem;
}

/* Search Mode Buttons */
.btn-search-mode {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem;
    min-height: 110px;
    padding: 1.25rem;
    background-color: #FFFFFF !important;
    border: 2px solid var(--ash-border) !important;
    border-radius: 0.75rem;
    color: var(--ash-navy) !important;
    text-align: left;
    white-space: normal;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Circular Button Icons */
.search-mode-icon {
    width: 4rem;
    height: 4rem;
    flex: 0 0 4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: var(--ash-pink) !important;
    color: var(--ash-red) !important;
    font-size: 1.75rem;
}

    .search-mode-icon i {
        color: var(--ash-red) !important;
    }

/* Button Text */
.search-mode-label {
    flex: 1;
    color: var(--ash-navy) !important;
    font-size: 1rem;
    font-weight: 700;
}

/* Right Arrow */
.search-mode-arrow {
    color: var(--ash-red) !important;
    font-size: 1.5rem;
    margin-left: auto;
}

/* Hover State */
.btn-search-mode:hover {
    background-color: var(--ash-pink) !important;
    border-color: var(--ash-red) !important;
    color: var(--ash-navy) !important;
    box-shadow: 0 0.25rem 0.75rem rgb(21 39 70 / 8%);
}

/* Keyboard Focus */
.btn-search-mode:focus-visible {
    outline: 3px solid var(--ash-red);
    outline-offset: 3px;
}

/* Responsive Adjustments */
@media (max-width: 767.98px) {
    .search-method-card {
        padding: 1.25rem;
    }

    .btn-search-mode {
        min-height: 90px;
        padding: 1rem;
    }

    .search-mode-icon {
        width: 3rem;
        height: 3rem;
        flex-basis: 3rem;
        font-size: 1.375rem;
    }

    .search-mode-label {
        font-size: 0.875rem;
    }

    .search-mode-arrow {
        font-size: 1.125rem;
    }
}


/* Search Form Cards */
.search-form-card {
    background-color: #F8F9FA !important;
    border: 1px solid #DEE2E6 !important;
    border-radius: 0.75rem;
    padding: 1.5rem;
    color: #152746 !important;
    box-shadow: 0 0.25rem 0.75rem rgb(21 39 70 / 5%);
}

/* Card Headings */
.search-form-card-heading {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

    .search-form-card-heading h3 {
        color: var(--ash-navy) !important;
        font-size: 1.125rem;
        font-weight: bold;
        margin: 0;
    }

/* Circular Icons */
.search-form-card-icon {
    width: 3.5rem;
    height: 3.5rem;
    flex: 0 0 3.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #FCEBED !important;
    color: #B7000F !important;
    border-radius: 50%;
    font-size: 1.5rem;
}

    .search-form-card-icon i {
        color: #B7000F !important;
    }

/* Descriptive Text */
.search-form-card-description {
    color: #5F6B7A !important;
    font-size: 0.925rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
}

    .search-form-card-description strong {
        color: #B7000F !important;
        font-weight: 600;
    }

/* Labels */
.search-form-card .form-label {
    color: #152746 !important;
    font-size: 0.875rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

/* Form Inputs */
.search-form-card .form-control,
.search-form-card .form-select {
    background-color: #FFFFFF !important;
    color: #152746 !important;
    border-color: #DEE2E6 !important;
    border-radius: 0.375rem;
}

/* Input Group Icons */
.search-form-card .input-group-text {
    background-color: #E9ECEF !important;
    color: #152746 !important;
    border-color: #DEE2E6 !important;
}

/* Restore Joined Input Group Corners */
.search-form-card .input-group > .input-group-text {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.search-form-card .input-group > .form-control,
.search-form-card .input-group > .form-select {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* Focus States */
.search-form-card .form-control:focus,
.search-form-card .form-select:focus {
    border-color: #B7000F !important;
    box-shadow: 0 0 0 0.2rem rgb(183 0 15 / 15%) !important;
}

/* Filter Groups */
.search-filter-group + .search-filter-group {
    margin-top: 1.5rem;
}

/* Checkbox Accent */
.search-form-card .form-check-input:checked {
    background-color: var(--ash-red) !important;
    border-color: #B7000F !important;
}

.search-form-card .form-check-input:focus {
    border-color: #B7000F;
    box-shadow: 0 0 0 0.2rem rgb(183 0 15 / 15%);
}

/* Primary Search Button */
.btn-ash-primary {
    background-color: var(--ash-red) !important;
    border: 1px solid var(--ash-red) !important;
    color: #FFFFFF !important;
    font-weight: bold;
    border-radius: 0.375rem;
    padding: 0.65rem 1rem;
}

    .btn-ash-primary:hover {
        background-color: #92000C !important;
        border-color: #92000C !important;
        color: #FFFFFF !important;
    }

/* Secondary Clear Button */
.btn-ash-secondary {
    background-color: var(--ash-card-bg) !important;
    border: 1px solid var(--ash-border) !important;
    color: var(--ash-navy) !important;
    font-weight: bold;
    border-radius: 0.375rem;
    padding: 0.65rem 1rem;
}

.btn-ash-secondary i {
    color: var(--ash-red) !important;
}
    .btn-ash-secondary:hover {
        background-color: var(--ash-pink) !important;
        border-color: var(--ash-red) !important;
        color: var(--ash-navy) !important;
    }

    /* Keyboard Accessibility */
    .btn-ash-primary:focus-visible,
    .btn-ash-secondary:focus-visible {
        outline: 3px solid var(--ash-red);
        outline-offset: 3px;
    }

    /* Card Form Label */
    .card-form-label {
        color: var(--ash-navy);
        font-weight: bold;
    }

/* Responsive */
@media (max-width: 767.98px) {
    .search-form-card {
        padding: 1.25rem;
    }

    .search-form-card-icon {
        width: 3rem;
        height: 3rem;
        flex-basis: 3rem;
        font-size: 1.25rem;
    }
}
.keyword-results .results-title-link {
    color: #B7000F;
    text-decoration: none;
    font-weight: 700;
}

    .keyword-results .results-title-link:hover {
        color: #942222;
        text-decoration: underline;
    }

.keyword-results .keyword-result {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.25rem;
    border-bottom: 1px solid #DEE2E6;
    background: #FFFFFF;
}

    .keyword-results .keyword-result:nth-child(even) {
        background: #FCEBED;
    }

.keyword-results .keyword-result-body {
    flex: 1;
    min-width: 0;
}

.keyword-results .keyword-result-icon {
    color: #B7000F;
    flex: 0 0 24px;
}

.keyword-results .keyword-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    margin-top: .65rem;
    color: #5F6B7A;
    font-size: .9rem;
}

    .keyword-results .keyword-result-meta i {
        color: #B7000F;
        margin-right: .25rem;
    }

.keyword-results .keyword-program {
    flex: 0 0 220px;
    text-align: right;
}

    .keyword-results .keyword-program a {
        display: inline-block;
        color: #152746;
        background: #E9EEF5;
        border: 1px solid #D8E0EA;
        padding: .4rem .7rem;
        border-radius: 6px;
        text-decoration: none;
        font-size: .8rem;
        font-weight: 600;
    }

        .keyword-results .keyword-program a:hover {
            color: white;
            background: #B7000F;
            border-color: #B7000F;
        }

.keyword-results .keyword-pagination a, .keyword-results .keyword-pagination .current-page {
    display: inline-block;
    padding: .45rem .8rem;
    margin: 0 .15rem;
    border: 1px solid #DEE2E6;
    border-radius: 5px;
    text-decoration: none;
}

.keyword-results .keyword-pagination a {
    color: #B7000F;
}

    .keyword-results .keyword-pagination a:hover {
        color: white;
        background: #942222;
    }

.keyword-results .keyword-pagination .current-page {
    color: white;
    background: #B7000F;
    border-color: #B7000F;
}

@media(max-width:767.98px) {
    .keyword-results .keyword-result {
        flex-wrap: wrap;
    }

    .keyword-results .keyword-program {
        flex: 0 0 100%;
        text-align: left;
        padding-left: 40px;
    }
}