/**
 * Accessible Accordion Styles
 *
 * Makes accordion triggers accessible while maintaining original visual appearance.
 * Uses high specificity selectors (body.xanadu prefix) to override main.css rules
 * that remove focus outlines (.xanadu a:focus, .xanadu button:focus { outline: none }).
 */

/* ============================================
   FAQ Accordion Button - Inside H4
   ============================================ */

/**
 * Button inside h4.accordion-toggle
 * Inherits ALL styles from parent - completely invisible as a button
 */
body.xanadu .faq-list .accordion .accordion-heading h4 button.accordion-toggle-btn,
body.xanadu .faq-list .accordion-heading h4 button.accordion-toggle-btn,
body.xanadu .faq-list h4 button.accordion-toggle-btn,
body.xanadu h4.accordion-toggle button.accordion-toggle-btn,
body.xanadu button.accordion-toggle-btn {
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    word-spacing: inherit;
    display: block;
    width: 100%;
    cursor: pointer;
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    text-align: left;
    text-decoration: none;
    border-radius: 4px;
}

body.xanadu .accordion-toggle-btn:hover,
body.xanadu button.accordion-toggle-btn:hover {
    text-decoration: none;
    color: inherit;
}

/* ============================================
   Focus Indicators (WCAG 2.4.7)
   Uses Ticketek brand blue (#00ACED)
   High specificity to override main.css (.xanadu button:focus { outline: none })
   ============================================ */

/* Keyframe animation for focus box-shadow transition (black to blue) */
@keyframes accordion-btn-focus {
    0% {
        box-shadow: 0 0 0 2px #fff, 0 0 0 4px #000;
    }
    100% {
        box-shadow: 0 0 0 2px #fff, 0 0 0 4px #00ACED;
    }
}

body.xanadu .faq-list .accordion .accordion-heading h4 button.accordion-toggle-btn:focus,
body.xanadu .faq-list .accordion-heading h4 button.accordion-toggle-btn:focus,
body.xanadu .faq-list h4 button.accordion-toggle-btn:focus,
body.xanadu h4.accordion-toggle button.accordion-toggle-btn:focus,
body.xanadu button.accordion-toggle-btn:focus {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #00ACED;
    animation: accordion-btn-focus 0.15s ease-out;
}

body.xanadu .faq-list button.accordion-toggle-btn:focus:not(:focus-visible),
body.xanadu h4.accordion-toggle button.accordion-toggle-btn:focus:not(:focus-visible),
body.xanadu button.accordion-toggle-btn:focus:not(:focus-visible) {
    box-shadow: none;
}

body.xanadu .faq-list .accordion .accordion-heading h4 button.accordion-toggle-btn:focus-visible,
body.xanadu .faq-list .accordion-heading h4 button.accordion-toggle-btn:focus-visible,
body.xanadu .faq-list h4 button.accordion-toggle-btn:focus-visible,
body.xanadu h4.accordion-toggle button.accordion-toggle-btn:focus-visible,
body.xanadu button.accordion-toggle-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #00ACED;
    animation: accordion-btn-focus 0.15s ease-out;
}

/* ============================================
   Phase 2: ASCX Control Accordion Buttons
   ============================================ */

/**
 * Non-Bootstrap accordion triggers (ASCX controls, accordionBar)
 */
button.accordion-trigger:not(.btn),
.accordion-trigger:not(.btn),
.accordionBar .accordion-trigger,
.accordionBar button.accordion-trigger {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    display: block;
    width: 100%;
}

/**
 * Bootstrap btn-link accordion triggers
 */
button.btn.accordion-trigger,
.btn.accordion-trigger {
    text-align: left;
    cursor: pointer;
}

/**
 * Remove Bootstrap's underline on focus for btn-link accordion triggers
 */
body.xanadu button.btn-link.accordion-trigger:focus,
body.xanadu .btn.btn-link.accordion-trigger:focus,
body.xanadu button.btn-link.accordion-trigger:hover,
body.xanadu .btn.btn-link.accordion-trigger:hover,
body.xanadu button.btn-link.accordion-trigger.accordionBar:focus,
body.xanadu .btn.btn-link.accordion-trigger.accordionBar:focus {
    text-decoration: none;
}

/**
 * Focus indicator for accordion triggers
 */
body.xanadu .accordion-trigger:focus,
body.xanadu button.accordion-trigger:focus,
body.xanadu .btn.accordion-trigger:focus,
body.xanadu button.btn.accordion-trigger:focus,
body.xanadu .btn.btn-link.accordion-trigger:focus,
body.xanadu button.btn.btn-link.accordion-trigger:focus,
body.xanadu .btn.btn-link.accordion-trigger.collapsed:focus,
body.xanadu button.btn.btn-link.accordion-trigger.collapsed:focus,
body.xanadu .card-header .btn.btn-link.accordion-trigger:focus,
body.xanadu .card-header button.btn.btn-link.accordion-trigger:focus,
body.xanadu h5 .btn.btn-link.accordion-trigger:focus,
body.xanadu h5 button.btn.btn-link.accordion-trigger:focus,
body.xanadu h6 .btn.btn-link.accordion-trigger:focus,
body.xanadu h6 button.btn.btn-link.accordion-trigger:focus {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordion-trigger:focus-visible,
body.xanadu button.accordion-trigger:focus-visible,
body.xanadu .btn.btn-link.accordion-trigger:focus-visible,
body.xanadu button.btn.btn-link.accordion-trigger:focus-visible,
body.xanadu .btn.btn-link.accordion-trigger.collapsed:focus-visible,
body.xanadu button.btn.btn-link.accordion-trigger.collapsed:focus-visible {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordion-trigger:focus:not(:focus-visible),
body.xanadu button.accordion-trigger:focus:not(:focus-visible) {
    outline: none;
}

/**
 * Companion Card trigger — display block so outline wraps full width
 * (not just text), and use dark focus (#001828) to match seat
 * selection quantity buttons. Includes .card-header in selector
 * to beat the generic blue rule at specificity 0,5,2.
 */
body.xanadu .companionCardBlock .card-header .btn.btn-link.accordion-trigger,
body.xanadu .companionCardBlock .card-header button.btn.btn-link.accordion-trigger {
    display: block;
}

body.xanadu .companionCardBlock .card-header .btn.btn-link.accordion-trigger:focus-visible,
body.xanadu .companionCardBlock .card-header button.btn.btn-link.accordion-trigger:focus-visible {
    outline: 1px solid #001828;
}

body.xanadu .companionCardBlock .card-header .btn.btn-link.accordion-trigger:focus:not(:focus-visible),
body.xanadu .companionCardBlock .card-header button.btn.btn-link.accordion-trigger:focus:not(:focus-visible) {
    outline: none;
}

/**
 * Arrow styling inside buttons
 */
.accordion-trigger .arrow,
.accordion-trigger span.arrow {
    display: inline-block;
}

/**
 * Accordion trigger within accordionBar
 */
.accordionBar button.accordion-trigger,
.accordionBar .accordion-trigger,
button.accordion-trigger.accordionBar,
.accordion-trigger.accordionBar {
    background: inherit;
    color: inherit;
    font-weight: inherit;
    padding: inherit;
}

/**
 * Focus styles for accordionBar elements
 */
body.xanadu .accordionBar.accordion-trigger:focus,
body.xanadu button.accordionBar.accordion-trigger:focus,
body.xanadu .accordionBar button.accordion-trigger:focus {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordionBar.accordion-trigger:focus-visible,
body.xanadu button.accordionBar.accordion-trigger:focus-visible,
body.xanadu .accordionBar button.accordion-trigger:focus-visible {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordionBar.accordion-trigger:focus:not(:focus-visible),
body.xanadu button.accordionBar.accordion-trigger:focus:not(:focus-visible),
body.xanadu .accordionBar button.accordion-trigger:focus:not(:focus-visible) {
    outline: none;
}

/* ============================================
   Legacy Accordion Support
   ============================================ */

/**
 * For accordions using data-toggle="collapse" directly on non-button elements
 */
.accordion-heading button[data-toggle="collapse"],
.accordion-toggle button[data-toggle="collapse"] {
    all: inherit;
    display: block;
    width: 100%;
    cursor: pointer;
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    text-align: left;
    text-decoration: none;
}

body.xanadu .accordion-heading button[data-toggle="collapse"]:focus,
body.xanadu .accordion-toggle button[data-toggle="collapse"]:focus {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordion-heading button[data-toggle="collapse"]:focus:not(:focus-visible),
body.xanadu .accordion-toggle button[data-toggle="collapse"]:focus:not(:focus-visible) {
    outline: none;
}

body.xanadu .accordion-heading button[data-toggle="collapse"]:focus-visible,
body.xanadu .accordion-toggle button[data-toggle="collapse"]:focus-visible {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

/* ============================================
   Focusable Elements Inside Accordion Content
   ============================================ */

/**
 * Focus styles for links and buttons inside accordion panels
 */
body.xanadu .collapse a:focus,
body.xanadu .collapse button:not(.accordion-trigger):focus,
body.xanadu .collapse input:focus,
body.xanadu .collapse select:focus,
body.xanadu .collapse textarea:focus,
body.xanadu .card-body a:focus,
body.xanadu .card-body button:not(.accordion-trigger):focus,
body.xanadu .card-body input:focus,
body.xanadu .card-body select:focus,
body.xanadu .card-body textarea:focus {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .collapse a:focus-visible,
body.xanadu .collapse button:not(.accordion-trigger):focus-visible,
body.xanadu .collapse input:focus-visible,
body.xanadu .collapse select:focus-visible,
body.xanadu .collapse textarea:focus-visible,
body.xanadu .card-body a:focus-visible,
body.xanadu .card-body button:not(.accordion-trigger):focus-visible,
body.xanadu .card-body input:focus-visible,
body.xanadu .card-body select:focus-visible,
body.xanadu .card-body textarea:focus-visible {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .collapse a:focus:not(:focus-visible),
body.xanadu .collapse button:not(.accordion-trigger):focus:not(:focus-visible),
body.xanadu .card-body a:focus:not(:focus-visible),
body.xanadu .card-body button:not(.accordion-trigger):focus:not(:focus-visible) {
    outline: none;
}

/* ============================================
   Performance Selector Form Elements
   ============================================ */

body.xanadu .selectVenueBlock select:focus,
body.xanadu .selectVenueBlock select.borInput:focus,
body.xanadu .selectDateBlock select:focus,
body.xanadu .selectDateBlock select.borInput:focus,
body.xanadu .PerfSelectorBlock select:focus,
body.xanadu .PerfSelectorBlock select.borInput:focus,
body.xanadu select.borInput:focus {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .selectVenueBlock select:focus-visible,
body.xanadu .selectVenueBlock select.borInput:focus-visible,
body.xanadu .selectDateBlock select:focus-visible,
body.xanadu .selectDateBlock select.borInput:focus-visible,
body.xanadu select.borInput:focus-visible {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

/* ============================================
   High Contrast Mode Support
   ============================================ */

@media (prefers-contrast: high) {
    body.xanadu .accordion-toggle-btn:focus,
    body.xanadu .accordion-toggle-btn:focus-visible,
    body.xanadu button.accordion-toggle-btn:focus,
    body.xanadu button.accordion-toggle-btn:focus-visible,
    body.xanadu .accordion-trigger:focus,
    body.xanadu .accordion-trigger:focus-visible,
    body.xanadu button.accordion-trigger:focus,
    body.xanadu button.accordion-trigger:focus-visible,
    body.xanadu .collapse a:focus,
    body.xanadu .collapse a:focus-visible,
    body.xanadu .collapse button:focus,
    body.xanadu .collapse button:focus-visible,
    body.xanadu .collapse input:focus,
    body.xanadu .collapse input:focus-visible,
    body.xanadu .collapse select:focus,
    body.xanadu .collapse select:focus-visible,
    body.xanadu .collapse textarea:focus,
    body.xanadu .collapse textarea:focus-visible,
    body.xanadu .card-body a:focus,
    body.xanadu .card-body a:focus-visible,
    body.xanadu .card-body button:focus,
    body.xanadu .card-body button:focus-visible,
    body.xanadu .card-body input:focus,
    body.xanadu .card-body input:focus-visible,
    body.xanadu .card-body select:focus,
    body.xanadu .card-body select:focus-visible,
    body.xanadu .card-body textarea:focus,
    body.xanadu .card-body textarea:focus-visible {
        outline: 3px solid;
        outline-offset: 2px;
    }
}

/* AccordionBar1 (VIP Packages) */
body.xanadu .accordionBar1:focus,
body.xanadu .accordionBar1.closedBar:focus,
body.xanadu .accordionBar1.openedBar:focus,
body.xanadu .accordionBar1.closedBarVIP:focus,
body.xanadu .accordionBar1.openedBarVIP:focus {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordionBar1:focus-visible,
body.xanadu .accordionBar1.closedBar:focus-visible,
body.xanadu .accordionBar1.openedBar:focus-visible,
body.xanadu .accordionBar1.closedBarVIP:focus-visible,
body.xanadu .accordionBar1.openedBarVIP:focus-visible {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordionBar1:focus:not(:focus-visible),
body.xanadu .accordionBar1.closedBar:focus:not(:focus-visible),
body.xanadu .accordionBar1.openedBar:focus:not(:focus-visible) {
    outline: none;
}

/* Content inside accordionBar1 */
body.xanadu .accordionBar1 + div a:focus,
body.xanadu .accordionBar1 + div button:focus {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordionBar1 + div a:focus-visible,
body.xanadu .accordionBar1 + div button:focus-visible {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordionBar1 + div a:focus:not(:focus-visible),
body.xanadu .accordionBar1 + div button:focus:not(:focus-visible) {
    outline: none;
}

/* FAQ accordion content (.accordion-body, .accordion-inner) */
body.xanadu .accordion-body a:focus,
body.xanadu .accordion-body button:focus,
body.xanadu .accordion-inner a:focus,
body.xanadu .accordion-inner button:focus {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordion-body a:focus-visible,
body.xanadu .accordion-body button:focus-visible,
body.xanadu .accordion-inner a:focus-visible,
body.xanadu .accordion-inner button:focus-visible {
    outline: 2px solid #00ACED;
    outline-offset: 2px;
}

body.xanadu .accordion-body a:focus:not(:focus-visible),
body.xanadu .accordion-body button:focus:not(:focus-visible),
body.xanadu .accordion-inner a:focus:not(:focus-visible),
body.xanadu .accordion-inner button:focus:not(:focus-visible) {
    outline: none;
}

/* ============================================
   Print Styles
   ============================================ */

@media print {
    .collapse {
        display: block !important;
        height: auto !important;
    }
}
