/* -------------------------root styles */
:root{
    --main-color:#e6423d;
    --white-color:#fff;
    --decrative-font:Merienda;
    --main-font:Federo;
    --main-color-opaque:rgba(230, 66, 61, 0.5);
    --side-color:#806161;
    --side-color-opaque:rgba(128, 97, 97, 0.4);
}


/* -------------------commonly used classes */

.main-print{
    color: var(--main-color);
    font-family: var(--main-font);
}

.side-print{
    color:var(--side-color);
    font-family: var(--main-font);
}

a, a:hover, a:focus, a:active {
    text-decoration: none;
    color: var(--side-color);
    outline: none;
}

/* from Bulma */
.icon {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    height: 1.5rem;
    width: 1.5rem;
    font-size: x-large;
}


/* --------------------------base template styles */

html{
    height:100%;
}

body{
    height:100%;
}


header {
    background-color: var(--white-color);
}

h1 {
    font-size: 4rem;
    text-align: center;
    font-family: var(--decrative-font);
    font-weight:800;
    color:var(--white-color);
}

.logo{
    background: url('/media/logo.png')no-repeat center center;
    background-size: contain;
    height: 180px;
    width:180px;
}

.nav-row {
    margin-top:10px;
}

.nav-bar-row {
    height:20px;
    padding-left: 10px;
}

.search-bar-container {
    width:70%;
    height:50px;
    z-index: 1;
}

.search-bar {
    padding-left: 10px;
    width:70%;
    height:45px;
    outline:none;
    border:none;
    border-radius: 40px;
    background-color: rgba(230, 66, 61, 0.1);
}


.search-bar:focus,
.search-bar:active {
    box-shadow: none;
    border: solid 1px rgba(230, 66, 61, 0.3);
    border-radius: 40px;
    outline: none;
    background-color: #fff;
}

input[name='q'] {
    color:var(--side-color);
}

.search-btn {
    background-color: transparent;
    border: none;
    position: relative;
    right:100%;
    top:20%;
    height: 20px;
    color:var(--main-color)
}

.search-bar:focus, .search-btn:focus {
    outline: none;
}

.nav-link {
    color:var(--main-color) !important;
    font-family: var(--main-font);
}

.nav-link:hover {
    color:var(--main-color-opaque) !important;
}

.dropdown-style {
    box-shadow: 0px 8px 16px 0px var(--main-color-opaque);
}

.dropdown-item:hover{
    background-color: var(--side-color-opaque);
}

.dropdown-item:active{
    background-color: var(--main-color-opaque);
}

.toggler{
    color:var(--main-color);
    font-size: x-large;
}

.navbar-toggler{
    outline: none !important;
    border:none;
}

/* delivery icon styles */

.van {
    position:absolute;
    width:330px;
	left: -120px;
	animation-name: drive;
	animation-iteration-count: infinite;
	animation-duration: 10s;
    background-color: var(--white-color);
    width: 30px;
}

/* animation for delivey icon */

@keyframes drive {
	0% {
		left: -700px;
	}
	100% {
		left: 900px ;
	}
}

.delivery-banner{
    position: absolute;
    top:150px;
    left:35%;
    align-items: center;
}


footer{
    position: relative;
    bottom:-25vh;
    border-top: 1px solid rgba(230, 66, 61, 0.5);
    height:150px; 
    background-color: rgba(230, 66, 61, 0.3); 
    margin-top: 40px;
    margin-bottom: 0;
}

/* --------------------------message styles */


.message-container{
    position:fixed;
    height:100vh;
    width:100vw;
    background-color: var(--side-color-opaque);
    z-index: 999999999999999;
}


.toast-body{
    width: 700px;
    margin-left: 350px;
    margin-top: 10%;
    border-radius:10px;
    padding:20px;
}

.toast-success{
    box-shadow: 0px 4px 6px 0px rgba(0, 128, 0, 0.3);
}

.toast-info{
    box-shadow: 0px 4px 6px 0px rgba(252, 227, 6, 0.7);
}

.toast-warning{
    box-shadow: 0px 4px 6px 0px rgba(252, 137, 6, 0.7);
}

.toast-error{
    box-shadow: 0px 4px 6px 0px var(--main-color-opaque);
}


.close{
    position:relative;
    left:20px;
    bottom:20px;
    color:var(--white-color);
}

.custom-toast{
    overflow:visible;
    height:400px;
}


.basket-notification-wrapper{
    height: 100px;
    overflow-x:hidden;
    overflow-y: auto;
}
/* ------------------------------------Home app index page styles */

.hero {
    position: relative;
    background: url('/media/orchid-pink.jpg');
    background-size: cover;
    height: 100vh;
    width: 98vw;
    left:0.5%;
    top:1%;
    border-radius: 5px;
    border: solid white 3px;
    background-size: 100% 100%;
    background-position: center center;
    animation: shrink 5s;
}

/* animation for hero image on load */
@keyframes shrink {
  0% {
    background-size: 100% 100%;
  }
  100% {
    background-size: 110% 110%;
  }
}

.hero-opaque {
    position: inherit;
    background-color: rgba(128, 97, 97, 0.4);
    height: 100%;
    width: 100%;
}

.hero-sentance {
    position: absolute;
    top:45%;
    width:80%;
    left:12%;
}

/* arrows for changing hero image */

.arrow-left{
    position: absolute;
    left:10px;
    top:60%;
    color: var(--main-color);
    font-size: 36px;
    cursor: pointer;
}

.arrow-right{
    position: absolute;
    right:10px;
    top:60%;
    color: var(--main-color);
    font-size: 36px;
    cursor: pointer;
}

#left-arrow-2,
#right-arrow-2{
    display: none;
}

.arrow-left:hover,
.arrow-right:hover {
   font-size: 40px;
}


.picture-picker-1,
.picture-picker-2 {
    position: absolute;
    top:95%;
    color: var(--main-color);
    cursor: pointer;
}

.picture-picker-1 {
    left:49%;
}

.picture-picker-2 {
    left:51%;
}

/* hero button link */

.shop-now-btn {
    position: absolute;
    top:80%;
    left:43%;
    width:15%;
    background-color: var(--main-color);
    color:var(--white-color);
    font-weight: 400;
    font-size: 2rem;
    font-family: var(--decrative-font);
    padding:5px;
    text-align: center;
    border-radius: 5px;
}

.shop-now-btn:hover{
    background-color: var(--white-color);
    color:var(--main-color);
    outline: none;
}

.shop-now-btn:active,
.shop-now-btn:focus {
    color:var(--white-color);
    background-color: var(--main-color);
}

hr{
    position: inherit;
    color:var(--main-color-opaque);
    width:95vw;
    border:solid 0.1rem;
}

h2{
    color: var(--main-color);
    font-family: var(--main-font);
    text-align: center;
}

.menu-image {
    height:300px;
    width:300px;
    margin-left:50px;
    margin-top: 20px;
}


/* ------------------------------------products app styles */

.border-style {
    border:none;
}

.product-hr{
    border: solid 2px var(--main-color-opaque);
    width:90%;
}

.image-box{
    height:200px;
}

.out-of-stock{
    background-color: var(--side-color-opaque);
    border-radius: 20px;
}

.out-of-stock p{
    font-size: 2rem;
    margin-top: 80px; 
    margin-left: 30px;
}

.add-basket-btn{
    width:50%;
    height:33px;
    background-color: var(--main-color);
    color:var(--white-color);
    font-weight: 400;
    font-size: 1rem;
    padding:5px;
    text-align: center;
    border-radius: 5px;
    margin-left: 10px;;
    outline: none;
    border: none;
}

.add-basket-btn:hover{
    background-color: var(--white-color);
    color:var(--main-color)
}

.filter-btn {
    border-radius: 40px;
    background-color: rgba(230, 66, 61, 0.1);
    font-weight: 100;
    padding-right: 20px;
    padding-left: 20px;
}

.filter-btn:hover {
    background-color: var(--main-color);
    color:var(--white-color);
}

.btt-button{
    height:42px;
    width:42px;
    position: fixed;
    bottom:10px;
    right:10px;
    cursor:pointer;
    z-index: 999999999;
}

#sort-selector{
    outline:none !important;
    border:none !important;
    border-radius: 40px;
    background-color: rgba(230, 66, 61, 0.1);
}

#sort-selector:hover,
#sort-selector:active,
#sort-selector:focus{
    outline:none !important;
    border:none !important;
}

option:hover{
    background-color: var(--main-color);
}

.fa-arrow-up-from-bracket{
    font-size: x-large;
}

/*------------------------------- product_detail-page */

/* override some bootstrap styles */

.form-control{
    color:var(--main-color);
    border: var(--main-color-opaque);
}

.form-control-sm{
    width:20px;
    text-align: center;
}

.form-control:active, .form-control:focus{
    outline:none;
    border:var(--main-color);
    color:var(--main-color)
}

.review-row-size{
    width:1200px;
}

.reviews-header{
    margin: 30px;
    border-bottom: 1px solid var(--side-color);
    width:fit-content;
}

.review-button{
    background-color: var(--main-color);
    color:var(--white-color);
    padding:10px;
    margin-left: 20px;
    font-size: 1.2rem;
    border-radius: 20px;
}

.review-button:hover{
    color:var(--main-color);
    font-size: 1.3rem;
    background-color:var(--white-color);
}

.review-box{
    width:500px;
}

.review-spacing{
    position: relative;
    top:3px;
}


/* ----------------------------------------basket app styles */

.update-link,
.remove-item{
    cursor: pointer;
}

.update-link{
    color:var(--side-color);
    font-size: x-large;
    text-align: center;
    position:relative;
    left:120px;
    bottom:50px;
}

.remove-item{
    position:relative;
    left:350px;
    bottom:100px;
}

.update-link:hover{
    color:rgba(0, 128, 0, 0.6);
}

.update-link:active,
.update-link:focus{
    color:green;
}


.remove-item{
    color:var(--main-color);
    font-size: large;
    text-align: center;
}

.remove-item:hover{
    color:var(--main-color-opaque);
}

.remove-item:active,
.remove-item:focus{
    color:#921a16;
}

/*  -----------------------------------------allauth login pages */

.allauth-form-inner-content p {
    margin-top: 1.5rem;
    color:var(--main-color)
}

.allauth-form-inner-content input {
    border-color: var(--side-color-opaque);
    border-radius: 5px;
}

.allauth-form-inner-content label:not([for='id_remember']) {
    display: none;
}

.allauth-form-inner-content input::placeholder {
    color:var(--side-color);
}

.allauth-form-inner-content button,
.allauth-form-inner-content input[type='submit'] {
	/* btn */
	display: inline-block;
    font-weight: 400;
    color: var(--white-color);
    text-align: center;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-color: var(--main-color);
    border: 1px solid var(--main-color-opaque);
    padding: .375rem .75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: 3px;

    /* standard bootstrap btn transitions */
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

.allauth-form-inner-content button:hover,
.allauth-form-inner-content input[type='submit']:hover {	
	color: var(--main-color);
    background-color: var(--white-color);
    border-color: var(--side-color-opaque);
}

.allauth-form-inner-content a {
	color: var(--main-color-opaque)
}

/* ---------------------------------------------genaral form styles */

.contact-header-h1{
    font-size: 3rem;
}

.contact-header-h2{
    position: relative;
    left:35%;
    font-size: 1.5rem;
    border-bottom: 1px solid var(--side-color);
    width:300px;
    padding-bottom: 10px;
}

.form-background{
    background-color: var(--main-color-opaque);
    border-radius: 20px;
}

.form-background:focus,
.form-background:active{
    border:solid 1px var(--side-color-opaque);
    outline:none;
}

label{
    font-family: var(--main-font);
    color: var(--side-color);
    margin-top: 20px;
    margin-bottom: 5px;
}


/*-------------------------- contact form */

.submit-btn{
    background-color: var(--main-color-opaque);
    color:var(--white-color);
    font-family: var(--main-font);
    font-size: 1.5rem;
    border-radius: 20px;
    position: relative;
    left:40%;
}

.submit-btn:hover{
    background-color: var(--white-color);
    border: solid 1px var(--side-color-opaque);
}

/* ------------------------------product form */

.add-edit-btn,
.add-edit-cancel-btn{
    color:var(--white-color);
    font-family: var(--main-font);
    text-align: center;
    font-size: 1rem;
    border-radius: 20px;
    position: relative;
    display:inline-block;
    height:30px;
    padding:10px 10px 30px;
}

.add-edit-btn{
    background-color: var(--side-color);
    right:20%;
    top:3px;
    width:120px;
}
.add-edit-cancel-btn{
    background-color: var(--main-color);
    width:80px;
    right:60%;
    padding:5px;
}

.add-edit-btn:hover,
.add-edit-cancel-btn:hover{
    background-color: var(--white-color);
    color:var(--side-color);
    border: 1px solid var(--side-color-opaque)
}

.btn-file{
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.btn-file input[type="file"]{
    position: absolute;
    top: -10px;;
    right:0;
    min-width: 100%;
    min-height: 100%;
    opacity: 0;
}

.custom-checkbox .custom-control-label::before {
    border-radius: 2px;
    border-color: var(--side-color);
}

.custom-checkbox .custom-control-input~.custom-control-label::before {
    background-color: var(--side-color);
    border-color: var(--side-color);
    border-radius: 2px;
}

/* ------------------------------------checkout app styles */

.button{
    background-color: var(--white-color);
    border: solid 1px var(--white-color);
    width:150px;
    height:40px;
    margin: 20px;
}

.button:hover{
    color:var(--side-color)
}

/* -----------------------------------------------profile page styles */
.profile-row-size{
    width:90%;
}


.profile-form{
    width:80%;
    color:var(--side-color);
    font-family: var(--main-font);
}

.profile-form input{
    background-color: var(--main-color-opaque);
    border-radius: 20px;
}

.profile-btn{
    background-color: var(--main-color);
    color:var(--white-color);
    font-family: var(--main-font);
    border-radius: 20px;
    font-size: 1.2rem;
    border:none;
    padding: 10px;
    margin-top: 20px;
}

.profile-btn:hover{
    background-color: var(--white-color);
    color:var(--main-color);
}

/* --------------------------------------sign in, register and sign out pages */

.signup input,
.login input{
    background-color: var(--main-color-opaque);
    border-radius: 20px;
    width:100%;
    height:40px;
    outline: none;
    border:none;
    padding:10px;
}

.signup input:focus,
.signup input:focus,
.login input:focus,
.login input:focus{
    background-color: var(--white-color);
    border:solid 1px var(--main-color)
}

.login input[type="checkbox"]{
    position:relative;
    top:5px;
    right:2px;
    height:20px;
    width:20px;
}

.login-btn{
    background-color: var(--main-color);
    font-family: var(--main-font);
    border-radius: 20px !important;
}

.login-btn:hover{
    background-color: var(--white-color);
    color: var(--main-color);
    border:none;
    border-radius: 10px !important;
}

/* ----------------------------------------------------------- Media Queries */

/* Slightly larger container on xl screens */
@media (min-width: 1200px) {
    .container {
      max-width: 80%;
    }
  }
  
  /* fixed top navbar only on medium and up */
  @media (min-width: 992px) {
      .fixed-top-desktop-only {
          position: fixed;
          top: 0;
          right: 0;
          left: 0;
          z-index: 1030;
      }
  
      .header-container {
          padding-top: 220px;
      }

  }

/* media query for tablet sized devices */

@media (max-width:830px) {
    .logo{
    background: url('/media/logo-mobile.png')no-repeat center center;
    background-size: contain;
    height: 130px;
    width:130px;
    }

    .header-container{
        padding-top: 120px;
    }
    

    /* nav menu dropdown */

    .navbar-collapse{
        background-color: var(--white-color);
    }

    .basket{
        position:relative;
        left:100px;
        top:10px
    }

    .user{
        position:relative;
        top: 10px;
        left:80px;
    }

    .search{
        position:relative;
        top:12px;
        left:60px;
    }

    .sm-right{
        position: absolute;
        left:700px;
        margin-left: 0;
    }

    .search-bar {
        width:80%;
    }

    .nav-top{
        margin-top: 30px;
    }


    .push-down{
        position:absolute;
        top:100px;
    }

    .delivery-banner{
        display: none;
    }

    .menu-image{
        margin-left: 30%;
    }

    h2{
        width:90vw;
      }

    /* home page styles */

    .hero{
        width:97vw;
        height:60vh;
      }

    .shop-now-btn {
        left:40%;
        width:20%;
        font-size: 1.5rem;
    }

    .picture-picker-1 {
        left:48%;
    }
    
    .picture-picker-2 {
        left:52%;
    }

    /* messages */

    .toast-body{
        margin-left: 50px;
    }

    /* products page  */

    .image-box{
        height:280px;
    }

    /* products-detail page */


    .image-container{
        position:absolute;
        left:10%;
        top:30%;
    }

    .mobile-push{
        position:relative;
        left: 50%;
    }

    .mobile-image-position{
        position:relative;
        top:120px;
    }

    .review-row-size{
        width:700px;
    }

    .mobile-star-size{
        font-size: small;
    }

    /* basket */

    .mobile-resize{
        width:120px;
    }

    .remove-item{
        left:280px;
    }

    .form-control-sm{
        width:80px;
    }

    /* product-form */
    .add-edit-cancel-btn{
        left:-50px;
    }

}



@media (max-width:430px) {

    /* general styles */

    .mobile-nav-margins{
        margin-left: 10px;
        margin-right: 10px;
        margin-top: 5px;
    }

    /* navbar styles */

    .nav-top{
        font-size: 10px;
        margin-top: 10px;
    }


    .logo{
        height:100px;
    }

    .basket{
        position:relative;
        left:15px;
        top:12px
    }

    .user{
        position:relative;
        top: 12px;
        left:30px;
    }

    .search{
        position:relative;
        top:15px;
        left:50px;
    }

    .sm-right{
        position: absolute;
        left:350px;
        top:-20px;
        margin-left: 0;
    }

    footer{
        height:auto;
    }

    /* messgaes */

    .toast-body{
        margin-left: 60px;
        width:300px;
    }

    /* home page styles */


    .hero{
        height:45vh;
      }
    
      .opaque{
        height: 45vh;
      }

      h1 {
        font-size: 1.5rem;
        font-weight:400;
    }

      .shop-now-btn {
        left:35%;
        width:30%;
        font-size: 1rem;
    }

    .picture-picker-1 {
        left:47%;
        bottom:5px;
    }
    
    .picture-picker-2 {
        left:53%;
        bottom:5px;
    }

      .menu-image{
        margin-left: 40px;
      }


      /* product detail page */

    .mobile-push{
        position:relative;
        left: 0;
    }

    .image-container{
        position:absolute;
        left:25%;
        top:80px;
        width:50%;
        height:50%;
    }
    
    .description{
        position:absolute;
        top:300px;
        padding:20px;
    }

    .sm-push{
        position:absolute;
        top:700px;
    }

    .sm-shopping{
        position: relative;
        top:-50px;
    }

    .sm-add{
        position:relative;
        top:-25px;
        left:200px;
    }

    .reviews-section{
        display:none;
    }

    /* basket */
    .mobile-none{
        display: none;
    }

}