.vertical-tabs{
    margin: var(--block-margin) auto;
    max-width: var(--wide-width);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--row-gap);
}

.vertical-tabs h2{
    margin-bottom: 0;
}

.vertical-tabs-button{
    padding: var(--item-row-gap) 0;
    position: relative;
    font: var(--font-headline-6);
    letter-spacing: var(--secondary-letter-spacing);
}

.vertical-tabs-button:is(:hover, :focus, :active){
    outline: none;
}

.vertical-tabs-button::after{
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    border-bottom: 0.1rem solid;
    transition: all 0.3s ease;
}

.vertical-tabs-panel-inner h3:first-child{
    font: var(--font-headline-5);
    font-style: italic;
}

.vertical-tabs-panel-inner > *:last-child{
    margin-bottom: 0;
}


@media (max-width: 767px){
    .vertical-tabs-button{
        width: 100%;
        position: relative;
        padding-right: 1.5em;
    }

    .vertical-tabs-button::before{
        content: '';
        display: block;
        position: absolute;
        top: 50%;
        right: 1rem;
        width: 0.5em;
        height: 0.5em;
        border-bottom: 0.1rem solid;
        border-left: 0.1rem solid;
        transition: all 0.3s ease;
        transform: translateY(-50%) rotate(-45deg);
    }

    .vertical-tabs-button.active::before{
        transform: translateY(-25%) rotate(135deg);
    }

    .vertical-tabs-panel{
        display: none;
    }

    .vertical-tabs-panel.active{
        display: block;
    }

    .vertical-tabs-panel-inner::before,
    .vertical-tabs-panel-inner::after{
        content: '';
        display: block;
        padding-top: var(--row-gap);
    }

    .vertical-tabs-panel-inner h3:first-child{
        display: none;
    }
}

@media (min-width: 768px){
    .vertical-tabs-main{
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--column-gap);
    }

    .vertical-tabs-button{
        grid-column: 1;
        width: 75%;
    }

    .vertical-tabs-button:not(:first-child){
        margin-top: var(--row-gap);
    }

    .vertical-tabs-button:is(:hover, :focus, :active, .active)::after{
        width: 133%;
    }

    .vertical-tabs-panel{
        grid-column: 2;
        grid-row: 1 / span 100;
        align-self: center;
        opacity: 0;
        pointer-events: none;
        transition: all 0.3s ease;
    }

    .vertical-tabs-panel.active{
        opacity: 1;
        pointer-events: all;
    }
}

@media (min-width: 1200px){
    .vertical-tabs-button{
        width: 50%;
    }

    .vertical-tabs-button:is(:hover, :focus, :active, .active)::after{
        width: 200%;
    }
}