/**
 * BVS Accordion - Remote.com Style Accordion Component
 * Developed by Dominykas Vitkauskas (https://domvit.lt)
 * Plugin: BVS Elements
 * 
 * High Specificity & Theme-Override Protection
 */

/* ==================== HIGH SPECIFICITY RESET ==================== */
.elementor-widget-bvs-accordion .bvs-accordion-container,
.bvs-accordion-container,
.bvs-accordion-container * {
    box-sizing: border-box !important;
    -webkit-font-smoothing: antialiased;
}

/* Container Scope */
.elementor-widget-bvs-accordion .bvs-accordion-container,
.bvs-accordion-container {
    width: 100% !important;
    max-width: var(--bvs-acc-max-width, 100%) !important;
    margin: 0 auto !important;
    padding: 0 !important;
    position: relative !important;
    background: transparent !important;
    border: none !important;
}

/* ==================== SECTION HEADER (Remote.com Style) ==================== */
.elementor-widget-bvs-accordion .bvs-accordion__header-block,
.bvs-accordion-container .bvs-accordion__header-block {
    display: flex !important;
    flex-direction: column !important;
    margin-bottom: var(--bvs-acc-header-spacing, 40px) !important;
    max-width: var(--bvs-acc-header-max-width, 100%) !important;
    position: relative !important;
}

/* Subtitle / Eyebrow */
.elementor-widget-bvs-accordion .bvs-accordion__subtitle,
.bvs-accordion-container .bvs-accordion__subtitle {
    display: inline-block !important;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--bvs-acc-subtitle-color, #611b2b) !important;
    margin: 0 0 var(--bvs-acc-subtitle-spacing, 12px) 0 !important;
    padding: 0 !important;
    letter-spacing: -0.01em;
    text-transform: none;
}

/* Main Heading Title */
.elementor-widget-bvs-accordion .bvs-accordion__heading,
.bvs-accordion-container .bvs-accordion__heading {
    font-size: var(--bvs-acc-header-title-size, 2.375rem);
    font-weight: 700;
    line-height: 1.18;
    color: var(--bvs-acc-header-title-color, #191414) !important;
    margin: 0 0 var(--bvs-acc-header-title-spacing, 16px) 0 !important;
    padding: 0 !important;
    letter-spacing: -0.025em;
}

@media (max-width: 767px) {
    .elementor-widget-bvs-accordion .bvs-accordion__heading,
    .bvs-accordion-container .bvs-accordion__heading {
        font-size: 1.75rem;
        line-height: 1.25;
    }
}

/* Description / Paragraph */
.elementor-widget-bvs-accordion .bvs-accordion__description,
.bvs-accordion-container .bvs-accordion__description {
    font-size: var(--bvs-acc-header-desc-size, 1.0625rem);
    font-weight: 400;
    line-height: 1.62;
    color: var(--bvs-acc-header-desc-color, #5e5856) !important;
    max-width: var(--bvs-acc-header-desc-max-width, 740px) !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bvs-accordion-container .bvs-accordion__description p {
    margin: 0 0 12px 0 !important;
    color: inherit !important;
    font-size: inherit;
    line-height: inherit;
}

.bvs-accordion-container .bvs-accordion__description p:last-child {
    margin-bottom: 0 !important;
}

/* ==================== ACCORDION LIST ==================== */
/* Accordion List (remote.com contentItems container) */
.elementor-widget-bvs-accordion ul.bvs-accordion__list,
.bvs-accordion-container ul.bvs-accordion__list,
.bvs-accordion-container .accordion-module__contentItems {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    list-style-type: none !important;
    background: none !important;
    border: none !important;
}

/* Accordion Item */
.elementor-widget-bvs-accordion li.bvs-accordion__item,
.bvs-accordion-container li.bvs-accordion__item {
    position: relative !important;
    list-style: none !important;
    list-style-type: none !important;
    padding: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    transition: background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                border-radius 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                margin 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.elementor-widget-bvs-accordion li.bvs-accordion__item::before,
.elementor-widget-bvs-accordion li.bvs-accordion__item::after,
.bvs-accordion-container li.bvs-accordion__item::before,
.bvs-accordion-container li.bvs-accordion__item::after {
    content: none !important; /* Remove bullet or theme list decorators */
}

/* Inactive Items (Clean divider lines, no background card) */
.elementor-widget-bvs-accordion li.bvs-accordion__item:not(.bvs-accordion__item--active),
.bvs-accordion-container li.bvs-accordion__item:not(.bvs-accordion__item--active) {
    background-color: transparent !important;
    background-image: none !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 1px solid var(--bvs-acc-divider-color, #e5e5e5) !important;
    border-radius: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}

.elementor-widget-bvs-accordion li.bvs-accordion__item:not(.bvs-accordion__item--active):hover,
.bvs-accordion-container li.bvs-accordion__item:not(.bvs-accordion__item--active):hover {
    background-color: rgba(0, 0, 0, 0.015) !important;
}

.elementor-widget-bvs-accordion li.bvs-accordion__item:not(.bvs-accordion__item--active):hover .bvs-accordion__title,
.bvs-accordion-container li.bvs-accordion__item:not(.bvs-accordion__item--active):hover .bvs-accordion__title {
    color: var(--bvs-acc-inactive-title-hover-color, #611b2b) !important;
}

/* Active Item State (Remote.com filled dark plum card) */
.elementor-widget-bvs-accordion li.bvs-accordion__item--active,
.bvs-accordion-container li.bvs-accordion__item--active {
    background-color: var(--bvs-acc-active-bg, #611b2b) !important;
    background-image: none !important;
    border-radius: var(--bvs-acc-border-radius, 16px) !important;
    margin: var(--bvs-acc-active-margin, 10px 0) !important;
    border: none !important;
    box-shadow: var(--bvs-acc-box-shadow, 0 8px 28px rgba(97, 27, 43, 0.15)) !important;
}

/* Header Trigger Button */
.elementor-widget-bvs-accordion button.bvs-accordion__header,
.bvs-accordion-container button.bvs-accordion__header {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: var(--bvs-acc-inactive-padding, 20px 8px) !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    outline: none !important;
    cursor: pointer !important;
    text-align: left !important;
    color: var(--bvs-acc-inactive-title-color, #191414) !important;
    transition: color 0.25s ease, padding 0.25s ease !important;
    font-family: inherit;
    gap: 16px !important;
    user-select: none !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    text-transform: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.elementor-widget-bvs-accordion li.bvs-accordion__item--active button.bvs-accordion__header,
.bvs-accordion-container li.bvs-accordion__item--active button.bvs-accordion__header {
    color: var(--bvs-acc-active-title-color, #ffffff) !important;
    padding: var(--bvs-acc-active-header-padding, 24px 24px 12px 24px) !important;
}

/* Header Left Wrapper */
.elementor-widget-bvs-accordion .bvs-accordion__header-left,
.bvs-accordion-container .bvs-accordion__header-left {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    flex: 1 !important;
}

/* Icon */
.elementor-widget-bvs-accordion .bvs-accordion__icon,
.bvs-accordion-container .bvs-accordion__icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    flex-shrink: 0 !important;
    font-size: 20px !important;
    color: var(--bvs-acc-inactive-icon-color, #611b2b) !important;
    transition: color 0.25s ease, transform 0.25s ease !important;
}

.bvs-accordion-container .bvs-accordion__icon img,
.bvs-accordion-container .bvs-accordion__icon svg {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    fill: currentColor !important;
}

.elementor-widget-bvs-accordion li.bvs-accordion__item--active .bvs-accordion__icon,
.bvs-accordion-container li.bvs-accordion__item--active .bvs-accordion__icon {
    color: var(--bvs-acc-active-icon-color, #ffffff) !important;
}

/* Title Typography */
.elementor-widget-bvs-accordion .bvs-accordion__title,
.bvs-accordion-container .bvs-accordion__title {
    margin: 0 !important;
    padding: 0 !important;
    font-size: var(--bvs-acc-title-size, 1.25rem);
    font-weight: 700;
    line-height: 1.3;
    color: inherit !important;
    transition: color 0.25s ease !important;
    letter-spacing: -0.01em;
}

/* Optional Badge */
.elementor-widget-bvs-accordion .bvs-accordion__badge,
.bvs-accordion-container .bvs-accordion__badge {
    display: inline-block !important;
    padding: 3px 10px !important;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 20px !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    background-color: rgba(255, 255, 255, 0.2) !important;
    color: inherit !important;
    margin-left: 6px !important;
}

/* Chevron Up/Down Indicator */
.elementor-widget-bvs-accordion .bvs-accordion__chevron,
.bvs-accordion-container .bvs-accordion__chevron {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 24px !important;
    height: 24px !important;
    flex-shrink: 0 !important;
    color: var(--bvs-acc-inactive-chevron-color, #666666) !important;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s ease !important;
}

.bvs-accordion-container .bvs-accordion__chevron svg {
    width: 18px !important;
    height: 18px !important;
    stroke: currentColor !important;
    stroke-width: 2.5 !important;
    fill: none !important;
    transition: transform 0.35s ease !important;
}

.elementor-widget-bvs-accordion li.bvs-accordion__item--active .bvs-accordion__chevron,
.bvs-accordion-container li.bvs-accordion__item--active .bvs-accordion__chevron {
    color: var(--bvs-acc-active-chevron-color, #ffffff) !important;
    transform: rotate(180deg) !important;
}

/* Panel Content */
.elementor-widget-bvs-accordion .bvs-accordion__panel,
.bvs-accordion-container .bvs-accordion__panel {
    max-height: 0;
    opacity: 0;
    overflow: hidden !important;
    transition: max-height 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                opacity 0.3s ease,
                padding 0.3s ease !important;
    padding: 0 24px !important;
    box-sizing: border-box !important;
}

.elementor-widget-bvs-accordion li.bvs-accordion__item--active .bvs-accordion__panel,
.bvs-accordion-container li.bvs-accordion__item--active .bvs-accordion__panel {
    opacity: 1 !important;
    padding: var(--bvs-acc-active-panel-padding, 0 24px 24px 24px) !important;
}

.elementor-widget-bvs-accordion .bvs-accordion__content,
.bvs-accordion-container .bvs-accordion__content {
    font-size: var(--bvs-acc-content-size, 0.95rem);
    line-height: 1.55;
    color: var(--bvs-acc-active-desc-color, rgba(255, 255, 255, 0.88)) !important;
    margin-bottom: 16px !important;
}

.bvs-accordion-container .bvs-accordion__content p {
    margin: 0 0 10px 0 !important;
    color: inherit !important;
    font-size: inherit;
    line-height: inherit;
}
.bvs-accordion-container .bvs-accordion__content p:last-child {
    margin-bottom: 0 !important;
}

/* Remote.com Action Button (White circle with arrow ->) */
.elementor-widget-bvs-accordion .bvs-accordion__button-wrapper,
.bvs-accordion-container .bvs-accordion__button-wrapper {
    display: flex !important;
    align-items: center !important;
    margin-top: 14px !important;
}

.elementor-widget-bvs-accordion a.bvs-accordion__button,
.bvs-accordion-container a.bvs-accordion__button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--bvs-acc-btn-size, 38px) !important;
    height: var(--bvs-acc-btn-size, 38px) !important;
    border-radius: 50% !important;
    background-color: var(--bvs-acc-btn-bg, #ffffff) !important;
    color: var(--bvs-acc-btn-color, #611b2b) !important;
    text-decoration: none !important;
    transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease !important;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12) !important;
    flex-shrink: 0 !important;
    border: none !important;
    outline: none !important;
}

.elementor-widget-bvs-accordion a.bvs-accordion__button:hover,
.bvs-accordion-container a.bvs-accordion__button:hover {
    transform: scale(1.08) translateX(2px) !important;
    background-color: var(--bvs-acc-btn-hover-bg, #ffffff) !important;
    color: var(--bvs-acc-btn-hover-color, #48111e) !important;
}

.bvs-accordion-container a.bvs-accordion__button svg {
    width: 16px !important;
    height: 16px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2.5 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.elementor-widget-bvs-accordion .bvs-accordion__button-text,
.bvs-accordion-container .bvs-accordion__button-text {
    margin-left: 12px !important;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--bvs-acc-btn-text-color, #ffffff) !important;
}

/* Keyboard accessibility focus states */
.bvs-accordion-container button.bvs-accordion__header:focus-visible {
    outline: 2px solid var(--bvs-acc-active-bg, #611b2b) !important;
    outline-offset: -2px !important;
    border-radius: 8px !important;
}
