/****************************************************************************
 * Accordion Item
 ****************************************************************************/
.accordion_item {
    overflow: hidden;
    position: relative;
    border-bottom: 1px solid currentColor;
}
.has_animation .accordion_item {
    transition: height 0.5s ease;
}

.accordion_item:first-child {
    border-top: 1px solid currentColor;
}


/****************************************************************************
 * Accordion Title
 ****************************************************************************/
.accordion_title {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: bold;
}
button.accordion_title {
    width: 100%;
}

.accordion_title::after {
    content: ""; display: inline-block;
    width: 2em; height: 2em;
    background-color: currentColor;
    mask-image: var(--typo-svg-arrow-bottom-thin);
    mask-size: contain;
    mask-repeat: no-repeat;
}
.active .accordion_title::after {
    mask-image: var(--typo-svg-arrow-top-thin);
}

.accordion_title > * {
    padding-top: calc(var(--typo-gap) * 1.5);
    padding-bottom: calc(var(--typo-gap) * 1.5);
    font-size: var(--typo-font-size-h4);
    font-weight: 400;
    text-transform: none;
    margin-bottom: 0;
    text-align: left;
}

.accordion_item .accordion_content > *:last-child {
    margin-bottom: calc(var(--typo-gap) * 1.5);
}


/****************************************************************************
 * Accordion Content
 ****************************************************************************/
.accordion_content {
    position: absolute;
    left: 0;
    right: 0;
    opacity: 0;
    visibility: hidden;
}

.has_animation .accordion_content {
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.accordion_item.active .accordion_content {
    opacity: 1;
    visibility: visible;
}
