#ticket_purchase_form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 2rem;
    column-gap: 4rem;
    align-items: start;
}

#ticket_purchase_form .tpf__personal-wrapper, 
#ticket_purchase_form .tpf__ticket-wrapper {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    row-gap: 2rem;
    column-gap: 4rem;
}

#ticket_purchase_form input, #ticket_purchase_form textarea {width: 100%;}

#ticket_purchase_form .tpf__name,
#ticket_purchase_form .tpf__email,
#ticket_purchase_form .tpf__telephone,
#ticket_purchase_form .tpf__street,
#ticket_purchase_form .tpf__country,
#ticket_purchase_form .tpf__notice {
    grid-column: 1 / span 6;
}

#ticket_purchase_form .tpf__zip {grid-column: 1 / span 2;}
#ticket_purchase_form .tpf__city {grid-column: 3 / span 4;}

#ticket_purchase_form input.error {outline: 2px solid red !important;}
#ticket_purchase_form .error-msg {
    color: red;
    background: #ff00000d;
    padding: 0.5em;
}

#ticket_purchase_form .tpf__tickets {
    grid-column: 1 / span 6;
    grid-row: 1;
}

#ticket_purchase_form .tpf__tickets .error-wrapper {margin-top: 0.5em;}

@media (min-width: 767px) {
	#ticket_purchase_form .tpf__tickets input {max-width: calc(50% - 2rem);}
}

#ticket_purchase_form .tpf__menu {
    grid-column: 1 / span 6;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 4rem;
    row-gap: 1rem;
}

#ticket_purchase_form .tpf__menu .headline-group {grid-column: 1 / span 2;}

#ticket_purchase_form .tpf__menu h3 {font-size: var(--text--l);}
#ticket_purchase_form .tpf__menu h4 {font-size: var(--text--m);}

#ticket_purchase_form .tpf__menu small {
    font-size: 75%;
    line-height: 1.35;
    display: block;
    margin-top: .5em;
}

#ticket_purchase_form .tpf__menu small span {
    display: block;
    margin-top: .5em;
}

#ticket_purchase_form .tpf__menu small span::before {
    content: '•';
    margin-right: .25em;
}

#ticket_purchase_form .tpf__menu .error-wrapper {grid-column: 1 / span 2;}

#ticket_purchase_form .tpf__coupon {
    grid-column: 1 / span 6;
    grid-row: 3;
}

#ticket_purchase_form .tpf__coupon .coupon-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 4rem;
}

#ticket_purchase_form .tpf__coupon .coupon-form input,
#ticket_purchase_form .tpf__coupon .coupon-form button {grid-row: 2;}

#ticket_purchase_form .tpf__coupon #applied_coupons {
    margin-top: 1rem;
    display: flex;
    flex-direction: row;
    gap: .5rem;
}

#ticket_purchase_form .tpf__coupon #applied_coupons>div {
    padding: .25em;
    border: dashed 1px var(--action);
    border-radius: .5rem;
    align-items: center;
    display: flex;
    gap: 0.5em;
}

#ticket_purchase_form .tpf__coupon #applied_coupons .remove_coupon {
    font-size: 10px;
    border-radius: 50%;
    font-weight: bold;
}

#ticket_purchase_form .tpf__overview-wrapper {grid-column: 2;}

#ticket_purchase_form .tpf__submit,
#ticket_purchase_form .tpf__privacy,
#ticket_purchase_form .tpf__agb {margin-top: 1em;}

#ticket_purchase_form #tpf__privacy,
#ticket_purchase_form #tpf__agb {width: auto;
    float: left;
    margin-right: 0.5em;}

#ticket_purchase_form .tpf__privacy label,
#ticket_purchase_form .tpf__agb label{font-size: var(--text--m);}

@media (max-width: 991px) {
    #ticket_purchase_form {grid-template-columns: repeat(1, minmax(0, 1fr));}
    #ticket_purchase_form .tpf__overview-wrapper {grid-column: 1;}
}

@media (max-width: 767px) {
    #ticket_purchase_form .tpf__menu {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        row-gap: 2rem;
    }
	
    #ticket_purchase_form .tpf__menu .headline-group,
    #ticket_purchase_form .tpf__menu .error-wrapper {grid-column: 1;}
	
	#ticket_purchase_form .tpf__coupon .coupon-form input {
		grid-column: 1 / 3;
		margin-bottom: .5em;
	}
	
	#ticket_purchase_form .tpf__coupon .coupon-form button {
		grid-column: 1 / 3;
		grid-row: 3;
	}
}
