main{
    position:relative;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width:90vw;
    margin:0 auto;
}
main h1{
    width:100%;
    margin:0;
    padding: 20vh 0 3vh 0;
}
main section.warning{
    display: flex;
    flex-direction:column;
    justify-content: space-between;
    align-items: flex-start;
    width: fit-content;
    min-width: 40vw;
    height:fit-content;
    border: solid 5px #ffc107;
    background: #FFFFFF;
    border-radius: 10px;
    padding: 1vw;
}
main section.warning label{
    width: fit-content;
    text-align:left;
    font-weight:bold;
    border-bottom: solid 3px #ffc107;
    padding: 0 10px 5px 10px;
    margin-bottom: 10px;
}
main section.warning p{
    width:100%; 
    text-align:left;
    margin:0;
    padding: .5vw 0;
}

/** ***** PRODUCTS ***** **/
main div#column_products{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width:60vw;
}

main div#column_products section{
    display:block;
    width:0;
    height: 0;
    overflow: hidden;
    transition:.3s;
}
main div#column_products section.selected{
    width:60vw;
    height: fit-content;
}
main div#column_products section div.section-products-container{
    display:flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width:60vw;
    height: fit-content;
}
main div#column_products section h2{
    width: 100%;
    margin:0;
    padding:2vh 0;
}
main div#column_products section article{
    position:relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width:18vw;
    margin-bottom:2vw;
}
main div#column_products section article h3{
    flex-grow: 1;
    text-align: center;
    padding:1vh 0;
    margin:0;
    transition:.3s;
}
main div#column_products section article:hover h3{
    color:#000000;
}
main div#column_products section article div.img-container{
    background-size: cover;
    background-position: center center;
    width:18vw;
    height:18vw;
    border-radius:5px;
}
main div#column_products section article div.price-container{
    display: flex;
    justify-content: space-between;
    width: 18vw;
    padding-top:1vw;
}
main div#column_products section article div.price-container div{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width:fit-content;
}
main div#column_products section article div.price-container div label{
    display: flex;
    justify-content: center;
    align-items: center;
    width:2.5vw;
    height:2.5vw;
    border-radius:50%;
    background-color: #000000;
    color:#FFFFFF;
    vertical-align: middle;
    font-weight: bold;
    margin-right:1vmax;
}
main div#column_products section article div.description{
    position:absolute;
    display:flex;
    justify-content:space-between;
    flex-direction: column;
    height:0;
    width:18vw;
    padding:0;
    bottom:0;
    background-color: #FFFFFF;
    border-top-left-radius:5px;
    border-top-right-radius:5px;
    transition: .3s;
    overflow: hidden;
}
main div#column_products section article:hover div.description{
    height:21.5vw;
    padding:2vh 1vw;
}

main div#column_products section article div.description p{
    padding-bottom:2vh;
    flex-grow: 1;
    text-align: center;
}
main div#column_products section article div.description div.q_container{
    display: flex;
    justify-content: space-between;
    padding-top:2vh;
}
main div#column_products section article div.description div.q_container div{
    display: flex;
    align-items: center;
}
main div#column_products section article div.description div.q_container div label{
    display: flex;
    justify-content: center;
    align-items: center;
    width:2.5vw;
    height:2.5vw;
    border-radius:50%;
    background-color: #000000;
    color:#FFFFFF;
    vertical-align: middle;
    font-weight: bold;
    margin-right:1vmax;
}
main div#column_products section article div.description div.q_container div svg{
    vertical-align: middle;
    width:2.5vw;
    height:2.5vw;
    cursor: pointer;
}
main div#column_products section article div.description div.q_container div input{
    vertical-align: middle;
    width:2vw;
    height:2.5vw;
    text-align: center;
    background: none;
    border: none;
    border-bottom: solid 1px #000000;
}

/** ***** CART - FORM ***** **/
main div#column_cart{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width:27vw;
}
main div#column_cart form{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 27vw;
}
main div#column_cart form section#contact-information{
    display: none;
    flex-direction: row;
    flex-wrap:wrap;
    height: fit-content;
    padding-bottom:2vh;
    margin-bottom:2vh;
}
main div#column_cart form section#contact-information h2{
    margin:0 0 2vh 0;
    padding:0;
    width: 30vw;
}
main div#column_cart form section#contact-information div.field-container,
main div#column_cart form section#contact-information div.radio-container,
main div#column_cart form section#contact-information div.textarea-container{
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width:14vw;
    padding:2vh 1vw;
}
main div#column_cart form section#contact-information div.field-container#field-container-address{
    width: 30vw;
    overflow: hidden;
    height: 0;
    padding:0;
    transition:.3s;
}
main div#column_cart form section#contact-information div#field-container-address.show{
    height: fit-content;
    padding: 2vh 1vw;
}
main div#column_cart form section#contact-information div.field-container label{
    width:fit-content;
    padding-bottom: 2vh;
    font-weight: bold;
    cursor: pointer;
}
main div#column_cart form section#contact-information div.field-container input{
    border:none;
    border-bottom:solid 1px #CCCCCC;
}
main div#column_cart form section#contact-information div.textarea-container textarea{
    width:100%;
    height:5vw;
    border-radius:10px;
    padding:10px;
    resize:none;
}
main div#column_cart form section#contact-information div.textarea-container label{
    padding-bottom: 2vh;
}
main div#column_cart form section#contact-information div.field-container span.error,
main div#column_cart form section#contact-information div.radio-container span.error{
    display: none;
    background: red;
    color: #FFFFFF;
    font-weight: bold;
    padding: 2px 10px;
    width: 100%;
    border-radius: 10px;
    margin: 2vh 0 5vh 0;
    text-align: center;
    height: fit-content;
}
main div#column_cart form section#contact-information div.radio-container,
main div#column_cart form section#contact-information div.textarea-container{
    width:30vw;
}
main div#column_cart form section#contact-information div.radio-container label{
    padding-left: 1vw;
    font-weight: bold;
    cursor: pointer;
}
main div#column_cart form section#contact-information div.radio-container legend,
main div#column_cart form section#contact-information div.radio-container div{
    padding-bottom:2vh;
}
main div#column_cart form section#contact-information legend#delivery-legend{
    background-color: var(--yellow);
    color: #FFFFFF;
    height:0;
    border-radius: 10px;
    font-style: italic;
    transition:.3s;
}
main div#column_cart form section#contact-information legend#delivery-legend.show{
    height:fit-content;
    padding: 1vw;
    box-shadow: 0 0 10px 0 var(--yellow);
    margin: 1vw 0;
}
/** ***** CART - PRODUCTS ***** **/
main div#column_cart form section.items{
    display: flex;
    flex-direction: column;
} 
main div#column_cart form section.items div.numbers-header,
main div#column_cart form section.items div#order-total-price{
    display: none;
}
main div#column_cart form section.items div#order-items{
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
main div#column_cart form section.items div#order-items:empty:before {
    content:'-- No items loaded yet --';
    text-align: center;
    color:gray;
    font-size: var(--font-size-4);
}
main div#column_cart form section.items div#order-items div.item{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width:27vw;
    margin-bottom:3vh;
    border-radius:10px;
    transition: .3s;
}
main div#column_cart form section.items div#order-items div.item:hover{
    box-shadow: 0 5px 5px -3px var(--yellowOp);
    width:29vw;
    margin-left:-1vw;
    padding-left:1vw;
    padding-right:1vw;
}
main div#column_cart form section.items div#order-items div.item .item-name{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
main div#column_cart form section.items div#order-items div.item .item-name span{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 2.5vw;
    height: 2.5vw;
    border-radius: 50%;
    background-color: #000000;
    color: #FFFFFF;
    vertical-align: middle;
    font-weight: bold;
    margin-right: 1vmax;
    text-transform: uppercase;
}
main div#column_cart form section.items div#order-items div.item .item-name label{
    flex-grow: 1;
    font-weight: bold;
    width:14vw;
    padding-right:1vw;
    font-size: var(--font-size-4);
}
main div#column_cart form section.items div#order-items div.item .q-container{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width:9vw;
}
main div#column_cart form section.items div#order-items div.item .q-container svg{
    width:2vw;
    height: 2vw;
    cursor:pointer;
}
main div#column_cart form section.items div#order-items div.item .q-container input{
    width: 3vw;
    height: 3vw;
    border:none;
    border-bottom: solid 1px #CCC;
    text-align:center;
    padding-bottom:10px;
}
main div#column_cart form section.items div#order-items div.item .delete-container{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width:4vw;
}
main div#column_cart form section.items div#order-items div.item .delete-container svg{
    width:2vw;
    height: 2vw;
    fill:red;
    cursor:pointer;
}
main div#column_cart form section.items div#order-items div.item div.prices_confirmation{
    display: none;
}

/** ***** BUTTONS ***** **/
main div#column_cart form button{
    padding:1vw;
    background-color: blue;
    color:white;
    font-weight: bold;
    cursor: pointer;
    border:none;
    border-radius:5px;
    margin-top:2vh;
}
main div#column_cart form button[type=button]{
    display: none;
    color:blue;
    background-color: #FFFFFF;
    border:solid 1px blue;
}
main div#column_cart form div#no-items{
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 27vw;
    height:0;
    padding:0 1vw;
    color:#FFFFFF;
    background-color: red;
    border-radius:10px;
    overflow: hidden;
    transition:.3s;
}
main div#column_cart form div#no-items.show{
    margin:2vw 0;
    padding:2vw;
    height: fit-content;
}

/** ***** CONFIRM ORDER ***** **/
main div#column_cart section.confirmation{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #000000e6;
    z-index: 100;
}
main div#column_cart section.confirmation form{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: wrap;
    margin:20vh auto 3vh auto;
    width:80vw;
    height: 77vh;
    background-color: #FFFFFF;
    padding:1vw;
    border-radius:10px;
    overflow:auto;
}
main div#column_cart section.confirmation form button[type=button]{
    display: inline-block;
}
main div#column_cart section.confirmation form section#contact-information{
    display: flex;
    width:30vw;
}
main div#column_cart section.confirmation form section.items{
    align-items: end;
}
main div#column_cart section.confirmation form section.items h2{
    width: 100%;
    text-align: left;
}
main div#column_cart section.confirmation form section.items div.numbers-header{
    display:flex;
    justify-content: space-between;
    width: 20vw;
}
main div#column_cart section.confirmation form section.items div.numbers-header span{
    width:30%;
    text-align: center;
    font-weight: bold;
}
main div#column_cart section.confirmation form section.items div#order-total-price{
    display: flex;
    justify-content: end;
    align-items: center;
    padding:2vh 0;
    margin:2vh 0;
    border-top:solid 1px #000000;
    width:100%;
    font-weight: bold;
}
main div#column_cart section.confirmation form section.items,
main div#column_cart section.confirmation form section.items div#order-items div.item{
    width:45vw;
}
main div#column_cart section.confirmation form section.items div#order-items div.item:hover{
    box-shadow: none;
    width:45vw;
    margin-left:0;
    padding:0;
    background-color: var(--yellowOp2);
    border-radius: 0;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
}
main div#column_cart section.confirmation form section.items div#order-items div.item .q-container,
main div#column_cart section.confirmation form section.items div#order-items div.item .delete-container{
    display: none;
}
main div#column_cart section.confirmation form section.items div#order-items div.item div.prices_confirmation{
    display: flex;
    justify-content: space-between;
    width:20vw;
}
main div#column_cart section.confirmation form section.items div#order-items div.item div.prices_confirmation span{
    text-align: center;
    width:30%;
}
main div#column_cart section.confirmation form section.items div#order-items div.item div.prices_confirmation span:nth-child(2){
    border-left:solid 1px #000000;
    border-right:solid 1px #000000;
}


@media only screen and (max-width: 600px) {
    main h1{
        padding-top:10vh;
    }
    main div#column_products section{
        width:0;
    }
    main div#column_products,
    main div#column_products section.selected,
    main div#column_products section.selected div.section-products-container,
    main div#column_products section article{
        width:90vw;
    }
    main div#column_products section.selected{
        height: fit-content;
    }
    main div#column_products section article div.img-container{
        width:90vw;
        height:90vw;
        margin: 0 auto;
    }
    main div#column_products section article div.price-container{
        width:90vw;
        margin: 0 auto;
        padding-top:1vh;
    }
    main div#column_products section article div.price-container div label{
        width:6vh;
        height: 6vh;
    }
    main div#column_products section article div.description{
        width:90vw;
        margin:0 auto;
        left:0;
        right:0;
    }
    main div#column_products section article:hover div.description {
        height: calc(90vw + 7vh);
        padding: 2vh;
    }
    main div#column_products section article div.description div.q_container div label,
    main div#column_products section article div.description div.q_container div svg{
        width:6vh;
        height:6vh;
    }
    main div#column_products section article div.description div.q_container div input{
        width:10vw;
        height:5vh;
    }
    main div#column_cart{
        position: fixed;
        width: auto;
        height: 0;
        top: 22vh;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: #FFFFFF;
        overflow: hidden;
        z-index: 500;
        transition: .3s;
    }
    main div#column_cart.show{
        height:78vh;
    }
    main div#column_cart form{
        width:90vw;
        height: 78vh;
        padding-bottom: 15vh;
        margin: 0 auto;
    }
    main div#column_cart form section.items div#order-items div.item {
        width:90vw;
    }
    main div#column_cart form section.items div#order-items div.item:hover{
        width: 90vw;
        margin-left: 0;
        padding: 1vw;
    }
    main div#column_cart form section.items div#order-items div.item .item-name {
        flex-grow: 1;
    }
    main div#column_cart form section.items div#order-items div.item .q-container{
        width: fit-content;
    }
    main div#column_cart form section.items div#order-items div.item .q-container input{
        width:10vw;
        height: 5vh;
    }
    main div#column_cart form section.items div#order-items div.item .delete-container{
        width:auto;
    }
    main div#column_cart form section.items div#order-items div.item .item-name span,
    main div#column_cart form section.items div#order-items div.item .q-container svg,
    main div#column_cart form section.items div#order-items div.item .delete-container svg{
        width:5vh;
        height:5vh;
    }
    main div#column_cart section.confirmation {
        position:relative;
        background-color: transparent;
    }
    main div#column_cart section.confirmation form{
        width: 100%;
        height:78vh;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: center;
        border-radius: 0;
        margin: 0 auto;
        padding-bottom:15vh;
    }
    main div#column_cart section.confirmation form section#contact-information{
        width: 90vw;
    }
    main div#column_cart section.confirmation form section#contact-information {
        display: flex;
        width: 90vw;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: center;
    }
    main div#column_cart form section#contact-information h2{
        width:90vw;
        text-align: center;
    }
    main div#column_cart form div#no-items,
    main div#column_cart form section#contact-information div.field-container, 
    main div#column_cart form section#contact-information div.radio-container, 
    main div#column_cart form section#contact-information div.textarea-container,
    main div#column_cart form section#contact-information div.radio-container, 
    main div#column_cart form section#contact-information div.textarea-container,
    main div#column_cart section.confirmation form section.items, 
    main div#column_cart section.confirmation form section.items div#order-items div.item{
        width:90vw;
    }
    main div#column_cart form section#contact-information div.textarea-container textarea {
        height: 15vh;
    }
    main div#column_cart section.confirmation form section.items div.numbers-header,
    main div#column_cart section.confirmation form section.items div#order-items div.item div.prices_confirmation{
        width:36vw;
    }
    main div#column_cart section.confirmation form div.buttons-container{
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 90vw;
        padding: 3vh 0;
    }
    main div#column_cart form button {
        width:100%;
        margin:0;
        padding:2vh 5vh;
        margin-top:2vh;
    }
}