/* ==========================================================================
   FxAccordion Component
   ========================================================================== */

/* -----------------------------------------------------------------------------
   Base Container
   -------------------------------------------------------------------------- */

.fx-accordion {
    position: relative;
    z-index: 1;
}

.fx-accordion__wrapper {
    position: relative;
    z-index: 1;
    max-width: var(--content-max-width);
    margin: 0 auto;
}

/* -----------------------------------------------------------------------------
   Panel
   -------------------------------------------------------------------------- */

.fx-accordion__panel {
    margin-top: 10px;
    border-radius: 25px;
    border: 1px solid #F0F0F0;
    background: #fff;
    box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.10);
}


/* -----------------------------------------------------------------------------
   Toggle Button
   -------------------------------------------------------------------------- */

.fx-accordion__panel__toggle {
    position: relative;
    display: block;
    width: 100%;
    margin: 0;
    padding: 20px 105px 20px 30px;
    border: none;
    border-radius: 0;
    background: none;
    color: #4B4790;
    font-size: 18px;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-align: left;
    text-decoration: none;
    list-style-type: none !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.fx-accordion__panel.is-expanded .fx-accordion__panel__toggle,
.fx-accordion__panel__toggle:hover,
.fx-accordion__panel__toggle:focus {
    text-decoration: none;
    background: none;
}

/* Toggle Icon */
.fx-accordion__panel .fx-accordion__panel__toggle::after {
    content: '\e909';
    font-family: 'cotton-creations';
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%);
    width: 25px;
    height: 25px;
    border: none;
    font-size: 25px;
    line-height: 1em;
    font-weight: normal;
    color: #A5420A;
}

.fx-accordion__panel.is-expanded .fx-accordion__panel__toggle::after {
    content: '\e90c';
}

/* -----------------------------------------------------------------------------
   Panel Content (CSS Grid Animation)
   -------------------------------------------------------------------------- */

.fx-accordion__panel__content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.35s ease-out;
}

.fx-accordion__panel.is-expanded .fx-accordion__panel__content-wrapper {
    grid-template-rows: 1fr;
}

.fx-accordion__panel__content {
    overflow: hidden;
    min-height: 0;
}

.fx-accordion__panel__content-inner {
    padding: 20px 0;
    margin: 0 30px;
    border: none;
    border-top: 1px solid #F0F0F0;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* -----------------------------------------------------------------------------
   Decorative Patterns
   -------------------------------------------------------------------------- */

.fx-accordion__left-pattern {
    position: absolute;
    left: -180px;
    top: -45px;
    width: 274px;
    z-index: -1;
}

.fx-accordion__right-pattern {
    position: absolute;
    right: -151px;
    bottom: -43px;
    width: 258px;
    z-index: -1;
}

/* -----------------------------------------------------------------------------
   Background Color Variants
   -------------------------------------------------------------------------- */

/* White Background */
.bg-white .fx-accordion__left-pattern path,
.bg-white .fx-accordion__right-pattern path {
    fill: #E6E5F3;
}

/* Green Background */
.bg-green .fx-accordion__left-pattern path,
.bg-green .fx-accordion__right-pattern path {
    fill: #CBEFE9;
}

.bg-green .fx-accordion__panel {
    background: #EBF7F5;
    border-color: #ACDBD1;
}

.bg-green .fx-accordion__panel__toggle {
    color: #00807F;
}

.bg-green .fx-accordion__panel__content-inner {
    border-color: #ACDBD1;
}

.bg-green .fx-accordion__panel .fx-accordion__panel__toggle::after {
    color: #4D47B3;
}

/* Purple Background */
.bg-purple .fx-accordion__left-pattern path,
.bg-purple .fx-accordion__right-pattern path {
    fill: #E6E5F3;
}

.bg-purple .fx-accordion__panel {
    background: #EFEDF5;
    border-color: #D0CFE7;
}

.bg-purple .fx-accordion__panel__toggle {
    color: #4B4790;
}

.bg-purple .fx-accordion__panel__content-inner {
    border-color: #D0CFE7;
}

.bg-purple .fx-accordion__panel .fx-accordion__panel__toggle::after {
    color: #A5420A;
}

/* Gradient Background */
.bg-gradient .fx-accordion__left-pattern path {
    fill: #FCEEE6;
}

.bg-gradient .fx-accordion__right-pattern path {
    fill: #CBEFE9;
}

.bg-gradient .fx-accordion__panel {
    background: #EBF7F5;
    border-color: #ACDBD1;
}

.bg-gradient .fx-accordion__panel__toggle {
    color: #00807F;
}

.bg-gradient .fx-accordion__panel__content-inner {
    border-color: #ACDBD1;
}

.bg-gradient .fx-accordion__panel .fx-accordion__panel__toggle::after {
    color: #4D47B3;
}

/* ==========================================================================
   Media Queries
   ========================================================================== */

/* -----------------------------------------------------------------------------
   Tablet (768px+)
   -------------------------------------------------------------------------- */

@media (min-width: 768px) {
    .fx-accordion__panel {
        margin-top: 15px;
    }

    .fx-accordion__panel__toggle {
        padding: 21px 105px 21px 30px;
    }
}

/* -----------------------------------------------------------------------------
   Desktop (1200px+)
   -------------------------------------------------------------------------- */

@media (min-width: 1200px) {
    .fx-accordion__left-pattern {
        left: -229px;
        top: -94px;
        width: 366px;
    }

    .fx-accordion__right-pattern {
        right: -225px;
        bottom: -60px;
        width: 375px;
    }

    .fx-accordion__panel__toggle {
        padding: 39px 105px 39px 50px;
        font-size: 20px;
    }

    .fx-accordion__panel .fx-accordion__panel__toggle::after {
        right: 50px;
        width: 35px;
        height: 35px;
        font-size: 35px;
    }

    .fx-accordion__panel__content-inner {
        padding: 20px 0 30px 0;
        margin: 0 50px;
    }

    .fx-accordion__panel__content-inner p {
        margin-bottom: 15px;
    }
}

/* -----------------------------------------------------------------------------
   Large Desktop (1600px+)
   -------------------------------------------------------------------------- */

@media (min-width: 1600px) {
    .fx-accordion__left-pattern {
        left: -181px;
        top: -81px;
        width: 296px;
    }

    .fx-accordion__right-pattern {
        right: -225px;
        bottom: -57px;
        width: 405px;
    }

    .fx-accordion__panel__toggle {
        padding: 37px 105px 37px 50px;
        font-size: 25px;
    }
}
