section {
    margin-bottom: 8vw;
}

.companyTitle .logo {
    margin: 2vw auto 3vw auto;
    height: 12vw;
    width: 15vw;
}

.companyInfo .blockInfo {
    margin: 0;
    padding: 0;
}

.companyInfo .blockInfo .infoContainer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s;
}

.companyInfo .blockInfo.open .infoContainer {
    max-height: 50vw;
    overflow: hidden;
}

.companyInfo .info {
    margin: 2.8rem 0;
    font-size: 2.4rem;
    line-height: 140%;
}

.companyInfo .important {
    font-size: 2.6rem;
    font-family: 'Montserrat-extra-bold', sans-serif;
}

.companyInfo .superImportant {
    font-size: 2.6rem;
    color: var(--clr-secondary);
}

.companyInfo .number {
    margin-right: 1vw;
    font-family: 'Montserrat-extra-bold', sans-serif;
}

.companyInfo a {
    color: var(--clr-secondary);
}

.companyInfo a:hover {
    color: var(--clr-main);
    text-decoration:underline;
}

.companyInfo .showMore {
    margin: 4vw auto 1vw auto;
}

.vouchers {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    align-content: center;
    justify-content: center;
    align-items: stretch;
}

.voucher {
    position: relative;
    width: 16vw;
}

.voucher * {
    margin: 0;
    background-size: 100% auto;
    background-position: -0.31vw 0;
    width: 100%;
}

.voucher.inactive {
    opacity: 0.56;
}

.voucher .top {
    height: 2.6vw;
    background-image: url('/public/images/ticket-voucher/top.svg');
    background-position-y: bottom;
}

.voucher .middle{
    padding-bottom: 0.2vw;
    height: calc(100% - 2.6vw - 0.84vw - 4vw);
    background-image: url('/public/images/ticket-voucher/middle.svg');
    background-repeat: repeat;
}

.voucher .bottom {
    height: 0.84vw;
    background-image: url('/public/images/ticket-voucher/bottom.svg');
}

.voucher .price {
    box-sizing: border-box;
    padding-top: 0.6vw;
    height: 4vw;
    color: var(--clr-white);
    font-size: 3.4rem;
    background-image: url('/public/images/ticket-voucher/cut.svg');
    background-position: 0.12vw 0;
}

.voucher .voucherName {
    display: table;
    margin: 0 auto;
    padding: 1.2vw 0 1.0vw 0;
    height: calc(100% - 0.2vw - 1.2vw - 1.0vw - 0.8vw - 0.2rem - 3vw);
    max-width: 10vw;
    font-size: 2.2rem;
    vertical-align: middle;
}

.voucher .voucherName span {
    display: table-cell;
    vertical-align: middle;
}

.voucher .divider {
    margin: 0 auto 0.8vw auto;
    height: 0.2rem;
    width: 10vw;
    background-color: var(--clr-background);
}

.voucher .counter {
    display: flex;
    height: 3vw;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
}

.voucher .plus,
.voucher .minus {
    width: 1.6vw;
    height: 1.6vw;
    color: var(--clr-white);
    font-family: 'Montserrat', sans-serif;
    font-size: 3rem;
    line-height: 1.6vw;
    background-color: var(--clr-secondary);
    border: solid 0.2rem var(--clr-secondary);
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.5s, background-image 0.5s, color 0.5s, opacity 0.5s;
}

.voucher .plus.disabled,
.voucher .minus.disabled {
    opacity: 0.3;
    cursor: default;
}

.voucher .plus:hover,
.voucher .minus:hover {
    color: var(--clr-secondary);
    background-color: var(--clr-white);
}

.voucher .plus.disabled:hover,
.voucher .minus.disabled:hover {
    color: var(--clr-white);
    background-color: var(--clr-secondary);
}

.voucher .number {
    width: 4.2vw;
    font-size: 4.6rem;
}

.voucher .soldOut {
    font-family: 'Montserrat-bold', sans-serif;
    font-size: 2.2rem;
}


.total {
    box-sizing: border-box;
    margin: 0 auto 0 auto;
    padding: 3vw 5vw 1vw 5vw;
    width: 50vw;
    background-color: var(--clr-white);
    border-radius: 1.5rem;
}

.valueRow {
    display: flex;
    margin: 0 0 3vw 0;
    width: 100%;
    justify-content: space-between;
    flex-wrap: nowrap;
    font-family: 'Montserrat-extra-bold', sans-serif;
    font-size: 3.8rem;
}

.agreeLine {
    display: flex;
    width: 100%;
    text-align: left;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 2.4vw;
    font-size: 1.8rem;
}


@media only screen and (max-width: 950px) {
    section {
        margin-bottom: 18vw;
    }

    .companyTitle .logo {
        margin: 4.4vw auto 6.4vw auto;
        height: 15vw;
        width: 32vw;
    }

    .companyInfo .blockInfo.open .infoContainer {
        max-height: 250vw;
    }

    .companyInfo .number {
        margin-right: 2vw;
    }

    .companyInfo a {
        text-decoration: underline;
    }

    .companyInfo a:hover {
        color: var(--clr-secondary);
    }

    .companyInfo .showMore {
        margin: 8.4vw auto 2.2vw auto;
    }

    .voucher {
        width: 34vw;
    }

    .voucher * {
        background-position: -0.74vw 0;
    }

    .voucher .top {
        height: 5.46vw;
    }

    .voucher .middle{
        padding-bottom: 0.4vw;
        height: calc(100% - 5.46vw - 1.8vw - 8.6vw);
    }

    .voucher .bottom {
        height: 1.8vw;
    }

    .voucher .price {
        padding-top: 1.3vw;
        height: 8.6vw;
        background-position: 0.24vw 0;
    }

    .voucher .voucherName {
        padding: 2.4vw 0 2.1vw 0;
        height: calc(100% - 0.4vw - 2.4vw - 2.1vw - 1.7vw - 0.2rem - 6.4vw);
        max-width: 21vw;
    }

    .voucher .divider {
        margin: 0 auto 1.7vw auto;
        width: 21vw;
    }

    .voucher .counter {
        height: 6.4vw;
    }

    .voucher .plus,
    .voucher .minus {
        width: 3.4vw;
        height: 3.4vw;
        line-height: 3.4vw;
    }

    .voucher .plus:hover,
    .voucher .minus:hover {
        color: var(--clr-white);
        background-color: var(--clr-secondary);
    }

    .voucher .number {
        width: 8.8vw;
    }

    .total {
        padding: 6.4vw 8vw 2.2vw 8vw;
        width: 100%;
    }

    .valueRow {
        display: flex;
        margin: 0 0 6.4vw 0;
        width: 100%;
        flex-direction: column;
        gap: 4.0vw;
    }

    .agreeLine {
        margin-bottom: 6.4vw;
        gap: 6vw;
    }
}