/**
 * FAQ System Custom Styles
 * WCAG 2.1 Level AA Compliant
 */

/* ==========================================================================
   FAQ Archive Container
   ========================================================================== */

.faq-archive-bottom-section {
    border-top: 1px solid #E8EAED;
}

.faq-archive-container h2.filter-title {
    font-size: 20px;
    line-height: 32px;
    color: #73767D;
    font-weight: bold;
    border-bottom: 1px solid #CED2DC;
    padding-bottom: 10px;
    margin-bottom: 12px;
}

@media (max-width: 992px) {
    .faq-archive-container h2.filter-title {
        font-size: 16px;
        line-height: 24px;
        border-bottom: none;
        margin-bottom: 0;
        padding-bottom: 8px;
    }
    .faq-archive-container h2.filter-title-cat {
        font-size: 16px;
        line-height: 24px;
    }
}


/* ==========================================================================
   Page Header
   ========================================================================== */

.faq-header {
}

.faq-title {
    font-size: 40px;
    line-height: 60px;
    font-weight: 400;
}

@media (max-width: 768px) {
    .faq-title {
        font-size: 32px;
        line-height: 48px;
    }
}
@media (max-width: 600px) {
    .faq-title {
        font-size: 24px;
        line-height: 36px;
    }
}

/* ==========================================================================
   Filter Section
   ========================================================================== */
.faq-archive-container .selectize-control .selectize-input:after {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='%23686E77'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: calc(50% - 8px) !important;
    transition: transform 300ms;
    right: calc(0.25rem + 5px) !important;
    margin-top: 0 !important;
    width: 16px !important;
    height: 16px !important;
    border: none !important;
}

.faq-archive-container .selectize-control .selectize-input.dropdown-active:after {
    margin-top: 0 !important;
    border: none !important;
    transform: rotate(180deg);
}

/* ==========================================================================
   Category List
   ========================================================================== */

.faq-category-list {
    margin: 0;
    padding: 0;
}

.faq-category-item {
    padding: 4px 0;
}

.faq-category-item.active .faq-category-button,
.faq-category-item.active .faq-category-button:focus {
    font-weight: bold;
    box-shadow: none;
    border-left-color: #3C5DAA;
    color: #3C5DAA;
}

.faq-category-button {

}

button.faq-category-button {
    --bs-btn-color: #393F4D;
    --bs-btn-hover-color: #3C5DAA;
    --bs-btn-padding-x: 6px;
    --bs-btn-padding-y: 8px;
    text-decoration: none !important;
    box-shadow: none;
    display: flex;
    align-items: center;
    gap: 8px;
    border: none;
    border-left: 3px solid transparent;
    border-radius: 0;
}

button.faq-category-button:hover {
    box-shadow: none;
    color: #376AE1;
}

.faq-category-item button.faq-category-button:focus,
.faq-category-item button.faq-category-button:focus-visible {
    color: #376AE1;
    background-color: #FFFFFF;
    box-shadow: none;
}

.faq-category-item button.faq-category-button:focus-visible {
    outline: 1px solid #3C5DAA;
    outline-offset: -1px;
}

.faq-category-item button.faq-category-button:active {
    color: #3C5DAA;
    border-left-color: #3C5DAA;
    box-shadow: none;
    font-weight: bold;
}

.faq-category-icon {
    font-size: 1.35rem;
    vertical-align: middle;
}

.category-name {
    vertical-align: middle;
}

/* ==========================================================================
   Topic Filter
   ========================================================================== */

/* Ensure checkbox has proper focus indicator */
.faq-topic-checkbox:focus {

}

.form-check-label {
    color:#393F4D ;
}

.form-check-label:hover {
    color:#3C5DAA ;
}


/* ==========================================================================
   Applied Filters
   ========================================================================== */

.faq-applied-filters {
}

.applied-filters-label {
    font-weight: 700;
    color: #393F4D;
    font-size: 18px;
    line-height: 36px;
    white-space: nowrap;
}

.faq-filter-tags {
    flex: 1;
}

.filter-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 4px 8px;
    background-color: #E8EAED;
    border: 1px solid #54575E;
    border-radius: 4px;
    font-size: 16px;
    color: #393F4D;
    white-space: nowrap;
    cursor: pointer;
    transition: all 0.15s ease-in-out;
}

.filter-tag:hover {
    background-color: #f1f4f8;
    color: #393F4D;
    box-shadow: none;
}

.filter-tag:hover .filter-tag-icon {
    color: #393F4D;
}

.filter-tag:focus {
    color: #393F4D;
    background-color: #f1f4f8;
    box-shadow: none;
    background-color: #E8EAED;
}

.filter-tag:active {
    color: #393F4D;
    background-color: #f1f4f8;
}

.filter-tag-text {
    /* Text styling if needed */
}

.filter-tag-icon {
    font-size: 16px;
    font-weight: bold;
}

.btn-clear-filters {
    padding: 4px 8px;
    background: transparent;
    border: none;
    color: #3C5DAA;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.15s ease-in-out;
    white-space: nowrap;
}

.btn-clear-filters:hover {
    background: transparent;
    color: #2d4784;
    text-decoration: underline;
    box-shadow: none;
}

.btn-clear-filters:focus {
    outline: 2px solid #3C5DAA !important;
    outline-offset: -2px;
    color: #2d4784;
    border-radius: 4px;
    background: transparent;
    box-shadow: none;
}
.btn-clear-filters:active {
    color: #2d4784;
    background: transparent;
}

/* ==========================================================================
   Loading Indicator
   ========================================================================== */

.faq-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 3rem 0;
}

.faq-loading .spinner-border {
    --bs-spinner-width: 4rem;
    --bs-spinner-height: 4rem;
    --bs-spinner-border-width: 0.4rem;
    --bs-spinner-animation-speed: 0.5s;
}

/* ==========================================================================
   Accordion Styles
   ========================================================================== */

#faq-results-container .accordion {
    --bs-accordion-btn-bg: white;
    --bs-accordion-border-color: #E8EAED;
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Crect width='256' height='256' fill='none'/%3E%3Cpolyline points='208 96 128 176 48 96' fill='none' stroke='%2354575E' stroke-linecap='round' stroke-linejoin='round' stroke-width='24'/%3E%3C/svg%3E");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Crect width='256' height='256' fill='none'/%3E%3Cpolyline points='208 96 128 176 48 96' fill='none' stroke='%233C5DAA' stroke-linecap='round' stroke-linejoin='round' stroke-width='24'/%3E%3C/svg%3E");
    --bs-accordion-btn-icon-width: 1.5rem;
    --bs-accordion-active-bg: #F5F8FF;
    --bs-accordion-active-color: #3C5DAA;
    --bs-accordion-btn-padding-x: 1rem;
    --bs-accordion-btn-padding-y: 1rem;
    --bs-accordion-body-padding-x: 20px;
    --bs-accordion-body-padding-y: 15px;
    --bs-accordion-btn-icon-transform: rotate(180deg);
}

#faq-results-container .accordion-item {
    border-left: none;
    border-right: none;
}

#faq-results-container .accordion-item p {
    margin: 0 0 1rem;
}

#faq-results-container .accordion-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.accordion-header {
    margin: 0;
}

#faq-results-container .accordion-button {
    font-weight: bold;
    font-size: 20px;
    line-height: 30px;
    border-left: 1px solid transparent;
}
#faq-results-container .accordion-button:not(.collapsed) {
    border-left-color: #3C5DAA;
}


#faq-results-container .accordion-button:not(.collapsed):not(:focus) {
    box-shadow: none;
}

#faq-results-container .accordion-button:hover {
    background-color: #F5F8FF;
    color: #4A5C86;
    box-shadow: none;
}
#faq-results-container .accordion-button:focus {
    background-color: #F5F8FF;
    color: #3C5DAA;
    box-shadow: none;
}

.accordion-button:focus {

}

/* Ensure proper color contrast for accordion button icon */
.accordion-button::after {

}

.accordion-button:not(.collapsed)::after {
}

.accordion-body {

}

/* Ensure links in accordion content are accessible */
.accordion-body a {
    text-decoration: underline;
}

/* ==========================================================================
   Reduced Motion Support
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    .accordion-button,
    .faq-category-button,
    .accordion-collapse {
        transition: none;
    }
}

/* ==========================================================================
   Focus Visible Support (for keyboard navigation)
   ========================================================================== */

.accordion-button:focus-visible,
.faq-category-button:focus-visible,
.faq-topic-checkbox:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

/* Remove focus outline for mouse users */
.accordion-button:focus:not(:focus-visible),
.faq-category-button:focus:not(:focus-visible),
.faq-topic-checkbox:focus:not(:focus-visible) {
    outline: none;
}

/* ==========================================================================
   Screen Reader Only Content
   ========================================================================== */

.sr-only,
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ==========================================================================
   Skip Link (for keyboard navigation)
   ========================================================================== */

.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #2563eb;
    color: white;
    padding: 8px;
    text-decoration: none;
    z-index: 100;
}

.skip-link:focus {
    top: 0;
}
















/* Mobile/Tablet Dropdown Selects */
.faq-category-select,
.faq-topic-select {
    font-size:16px;
}

.faq-category-select:focus,
.faq-topic-select:focus,
.faq-category-select .selectize-input.focus,
.faq-topic-select .selectize-input.focus {
    border-color: #D3DBEE;
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(63, 122, 255, 0.25);
}

.faq-category-select .selectize-dropdown-content {
    max-height: 500px;
}

/* Category Selectize - Single Select */
.faq-category-select-wrapper .selectize-input {

}

.faq-category-select-wrapper .selectize-input .item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    color: #3C5DAA;
    font-weight: bold;
}

.faq-category-select-wrapper .selectize-input .item i {
    font-size: 20px;
    flex-shrink: 0;
}

/* Category dropdown options with icons */
.faq-category-select-wrapper .selectize-dropdown .option {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 0.75rem;
    font-weight: bold;
}
.faq-category-select-wrapper .selectize-dropdown .option.active:not(.selected) {
    color: #4A5C86;
    background-color: #F5F8FF;
}

.faq-category-select-wrapper .selectize-dropdown .option i {
    font-size: 20px;
    flex-shrink: 0;
    color: #6b7280;
}

.faq-category-select-wrapper .selectize-dropdown .option:hover i,
.faq-category-select-wrapper .selectize-dropdown .option.active i {
    color: #4A5C86;
}

.faq-category-select-wrapper .selectize-dropdown .option.selected {
    background-color: #F5F8FF;
    color: #3C5DAA;
}

.faq-category-select-wrapper .selectize-dropdown .option.selected i {
    color: #3C5DAA;
}

/* Style for multi-select */
.faq-topic-select {
    height: auto;
    background-image: none; /* Remove dropdown arrow for multi-select */
}

.faq-topic-select option {
    padding: 0.5rem;
}

.faq-topic-select option:checked {
    background-color: #F5F8FF;
    color: #4A5C86;
}

/* Helper text for multi-select */
.faq-topic-select-wrapper .form-text {
    font-size: 0.75rem;
    color: #6b7280;
}

/* ==========================================================================
   Selectize Customization
   ========================================================================== */

/* Selectize container */
.faq-topic-select-wrapper .selectize-control {
    margin-bottom: 0;
}

/* Selectize input */
.faq-topic-select-wrapper .selectize-input {
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    padding: 0.5rem;
    font-size: 16px;
    box-shadow: none;
    background-color: #ffffff;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.faq-topic-select-wrapper .selectize-input.full {
    background-color: #ffffff;
}

/* Placeholder text */
.faq-archive-container .selectize-control .selectize-input input::placeholder {
    color: #4A5C86;
}

/* Selected items (tags) */
.faq-topic-select-wrapper .selectize-control.multi .selectize-input .item.active {
    background-color: #3C5DAA;
}

/* Remove button on tags */

/* Dropdown menu */
.faq-topic-select-wrapper .selectize-dropdown {
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    margin-top: 0.25rem;
    background-color: #ffffff;
    z-index: 1050;
}

/* Dropdown options */
.faq-topic-select-wrapper .selectize-dropdown .option {
    padding: 0.5rem 0.75rem;
    font-size: 16px;
    color: #374151;
    cursor: pointer;
}

.faq-topic-select-wrapper .selectize-dropdown .option:hover,
.faq-topic-select-wrapper .selectize-dropdown .option.active {
    background-color: #f3f4f6;
    color: #1f2937;
}

.faq-topic-select-wrapper .selectize-dropdown .option.selected {
    background-color: #F5F8FF;
    color: #2563eb;
}

/* Empty state */
.faq-topic-select-wrapper .selectize-dropdown .no-results {
    padding: 0.75rem;
    text-align: center;
    color: #6b7280;
    font-size: 0.875rem;
}

/* Loading state */
.faq-topic-select-wrapper .selectize-dropdown .spinner {
    text-align: center;
    padding: 0.75rem;
}

/* Disabled state */
.faq-topic-select-wrapper .selectize-input.disabled {
    opacity: 0.6;
    cursor: not-allowed;
    background-color: #f3f4f6;
}

/* Focus visible support */
.faq-topic-select-wrapper .selectize-input:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}