/* ====== Fonts ====== */ @import url("https://fonts.googleapis.com/css?family=Catamaran:300,400|Kaushan+Script&display=swap"); /* ====== Variables ====== */ :root { /* --primaryColor: #9e3aa3; */ /* --primaryDarkColor: #4e1d51; */ --primaryColor: #f15025; --primaryDarkColor: #c02c03; --primaryFont: "Catamaran", sans-serif; --slantedFont: "Kaushan Script", cursive; --mainWhite: #fff; --offWhite: #f7f7f7; --mainBackground: #ececec; --mainOverlay: rgba(35, 10, 36, 0.4); --mainBlack: #222; --mainGrey: #ececec; --darkGrey: #afafaf; --mainRed: #bd0303; --mainTransition: all 0.3s linear; --mainSpacing: 0.3rem; --lightShadow: 2px 5px 3px 0px rgba(0, 0, 0, 0.5); --darkShadow: 4px 10px 5px 0px rgba(0, 0, 0, 0.5); --mainBorderRadius: 0.25rem; --maxWidth: 40rem; --smallWidth: 85vw; --fullWidth: 1170px; } /* ====== Global Styles ====== */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--primaryFont); color: var(--mainBlack); background: var(--mainBackground); line-height: 1.4; font-size: 1rem; font-weight: 300; } h1, h2, h3, h4, h5, h6 { font-family: var(--primaryFont); margin-bottom: 1.25rem; letter-spacing: var(--mainSpacing); } p { margin-bottom: 1.25rem; } ul { list-style-type: none; } a { text-decoration: none; color: var(--mainBlack); } img { width: 100%; display: block; } .loading { text-transform: capitalize; text-align: center; font-size: 1.7rem; margin-top: 3rem; letter-spacing: var(--mainSpacing); } .loading img { width: 10rem; margin: 0 auto; } /* ====== Buttons ====== */ .btn, .btn-white, .btn-primary { text-transform: uppercase; letter-spacing: var(--mainSpacing); color: var(--primaryColor); border: 2px solid var(--primaryColor); padding: 0.45rem 0.8rem; display: inline-block; transition: var(--mainTransition); cursor: pointer; font-size: 0.8rem; background: transparent; } .btn:hover { background: var(--primaryColor); color: var(--mainWhite); } .btn-white { background: transparent; color: var(--mainWhite); border-color: var(--mainWhite); } .btn-white:hover { background: var(--mainWhite); color: var(--primaryColor); } .btn-primary { background: var(--primaryColor); color: var(--mainWhite); border-color: var(--primaryColor); } .btn-primary:hover { background: transparent; color: var(--primaryColor); } .btn-block { width: 100%; display: block; margin: 0 auto; box-shadow: var(--lightShadow); text-align: center; } /* ====== Header ====== */ .header { padding: 2rem 0; } .logo { margin: 0 auto; width: 9rem; } .header ul { display: flex; justify-content: space-between; width: var(--smallWidth); margin: 0 auto; margin-top: 2rem; max-width: var(--maxWidth); } .header ul div { display: flex; align-items: center; } .header a { text-transform: capitalize; margin: 0 0.25rem; font-size: 0.85rem; letter-spacing: 2px; transition: var(--mainTransition); } .header a:hover { color: var(--primaryColor); } @media screen and (min-width: 768px) { .header a { font-size: 1.5rem; margin: 0 0.5rem; } } /* ====== Hero ====== */ .hero { min-height: calc(65vh); background: linear-gradient( to right, rgba(0, 0, 0, 0.7) 50%, rgba(255, 255, 255, 0.1) ), url("./assets/mainBcg.jpeg") center/cover no-repeat; display: flex; justify-content: center; align-items: center; color: var(--primaryDarkColor); } .banner { width: var(--smallWidth); max-width: var(--fullWidth); } .hero h1 { font-size: 3rem; text-transform: capitalize; } .hero p { font-size: 1.5rem; font-weight: bold; letter-spacing: 3px; margin-bottom: 1.75rem; } .btn-hero { border-radius: 0; font-weight: bold; padding: 0.8rem 1.5rem; background: var(--primaryDarkColor); border-color: var(--primaryDarkColor); color: var(--mainBlack); } .btn-hero:hover { color: var(--primaryDarkColor); } @media screen and (min-width: 768px) { .banner { margin-top: 0; } .hero h1 { font-size: 5.3rem; } .hero p { font-size: 2.3rem; } .btn-hero { font-size: 1.2rem; padding: 1rem 3rem; } } /* ====== About ====== */ .about-section { width: var(--smallWidth); max-width: var(--maxWidth); margin: 0 auto; } .about-section p { line-height: 2rem; font-weight: 400; letter-spacing: 2px; } /* ====== Error ====== */ .error-page { display: flex; justify-content: center; } .error-container { text-align: center; text-transform: capitalize; } /* ====== Product List ====== */ .section { padding: 4rem 0; } .section-title, .search-errors { font-size: 2rem; text-transform: capitalize; letter-spacing: var(--mainSpacing); text-align: center; margin-bottom: 3.5rem; } .products-center { width: var(--smallWidth); margin: 0 auto; max-width: var(--fullWidth); display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); column-gap: 1.8rem; row-gap: 1.8rem; /* align-items: start; */ } .product { background: var(--mainWhite); margin-bottom: 2rem; box-shadow: var(--lightShadow); transition: var(--mainTransition); display: grid; grid-template-rows: auto 1fr; min-height: 19.69rem; } .product:hover { box-shadow: var(--darkShadow); } .img-container { padding: 3rem; background: rgba(255, 255, 255, 0.5); position: relative; /* height: 5rem; */ } .product img { transition: var(--mainTransition); min-height: 9rem; } .product:hover img { opacity: 0.3; } .product-link { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 0; transition: var(--mainTransition); } .product:hover .product-link { opacity: 1; } .product-footer { padding: 0rem 1rem 1rem 1rem; text-align: center; letter-spacing: var(--mainSpacing); display: grid; grid-template-rows: 1fr auto; } .product-title { text-transform: uppercase; font-weight: bold; font-size: 0.8rem; margin-bottom: 0.5rem; } .product-price { color: var(--primaryColor); font-weight: bold; margin-bottom: 0; font-size: 1.1rem; } /* ====== Single Product ====== */ .single-product { width: var(--smallWidth); max-width: var(--fullWidth); margin: 4rem auto; } .single-product article { margin-bottom: 3rem; } .single-product-image { max-width: 25rem; align-self: center; margin: 0 auto; margin-bottom: 2rem; } .single-product h1 { text-transform: capitalize; font-size: 2.3rem; letter-spacing: var(--mainSpacing); } .single-product h2 { color: var(--primaryColor); } .single-product p { line-height: 2; letter-spacing: 1px; } @media screen and (min-width: 992px) { .single-product { display: grid; grid-template-columns: 2fr 3fr; column-gap: 3rem; } } /* ====== Cart ====== */ .empty-cart { text-align: center; text-transform: capitalize; } .cart-items { width: var(--smallWidth); margin: 0 auto; max-width: var(--maxWidth); } .cart-items h2 { margin-bottom: 2rem; text-align: center; text-transform: capitalize; } .cart-item { display: grid; align-items: center; grid-template-columns: auto 1fr auto; grid-column-gap: 1.5rem; margin: 1.5rem 0; } .cart-item img { width: 5rem; } .cart-item h4 { font-size: 0.85rem; text-transform: capitalize; letter-spacing: var(--mainSpacing); margin-bottom: 0; } .cart-item h5 { margin: 0.5rem 0; letter-spacing: var(--mainSpacing); } .item-amount { text-align: center; margin-bottom: 0; } .cart-btn { background: transparent; border: none; cursor: pointer; } .remove-btn { color: var(--darkGrey); letter-spacing: var(--mainSpacing); cursor: pointer; font-size: 0.8rem; } .amount-btn { color: var(--primaryColor); font-size: 1rem; } /* ====== Cart Link ====== */ .cart-link-container { position: relative; } .cart-link-container a { margin-right: 10px; font-weight: bolder; } .cart-link-total { display: block; position: absolute; background: var(--primaryColor); top: -10px; right: -10px; padding: 0rem 0.4rem; border-radius: 50%; font-size: 1rem; color: var(--mainWhite); } /* ====== Login Form ====== */ .form { width: var(--smallWidth); margin: 0 auto; max-width: var(--maxWidth); } .login-form, .checkout-form { background: var(--mainWhite); padding: 1.25rem 1rem; text-transform: capitalize; border-radius: var(--mainBorderRadius); box-shadow: var(--lightShadow); } .form-control label { display: block; } .form-control input { width: 100%; border: none; border-bottom: 2px solid var(--darkGrey); margin-bottom: 1.25rem; padding: 0.5rem; font-size: 1.2rem; } .form-empty, .stripe-errors { text-align: center; color: var(--mainRed); } .register-link { margin-bottom: 0; margin-top: 1rem; text-align: center; } .register-link button { background: transparent; border: none; color: var(--primaryColor); text-transform: capitalize; font-size: inherit; display: inline-block; margin-left: 0.5rem; cursor: pointer; } .disabled { color: var(--mainWhite); background: var(--darkGrey); border-color: var(--darkGrey); } .disabled:hover { background: transparent; color: var(--darkGrey); border-color: var(--darkGrey); } /* ====== Login Button ====== */ .login-btn { text-transform: capitalize; background: transparent; display: inline-block; border: none; cursor: pointer; font-family: var(--primaryFont); margin: 0 0.25rem; font-size: 0.85rem; letter-spacing: 2px; transition: var(--mainTransition); font-weight: 300; } .login-btn:hover { color: var(--primaryColor); } @media screen and (min-width: 768px) { .login-btn { font-size: 1.5rem; margin: 0 0.5rem; } } /* ====== Alert ====== */ .alert-container { position: fixed; top: 30%; left: 50%; transform: translate(-50%, -50%); display: none; z-index: 10; background: green; width: 24rem; padding: 2.5rem 1.5rem; text-align: center; color: var(--mainWhite); font-size: 1.2rem; font-weight: bold; text-transform: capitalize; letter-spacing: var(--mainSpacing); border-radius: var(--mainBorderRadius); transition: all 0.3s linear; } .alert-show { display: block; } .alert-center { position: relative; } .alert p { margin-bottom: 0; line-height: 2; } .alert-danger { background: var(--mainRed); } .alert-close { color: var(--mainWhite); font-size: 1.5rem; background: transparent; border: none; display: inline-block; position: absolute; top: 5px; right: 7px; cursor: pointer; line-height: 0; } /* ====== Checkout ====== */ .checkout-form h3 span { color: var(--primaryColor); } .stripe-info { font-size: 80%; margin-top: 0.5rem; color: var(--darkGrey); } .stripe-info span { color: var(--primaryColor); } .card-element { border: 2px solid var(--darkGrey); padding: 0.5rem; font-size: 4rem; border-radius: var(--mainBorderRadius); } .checkout-form .form-empty { margin-top: 1rem; margin-bottom: 0; } .checkout-form button { margin-top: 1rem; } /* ====== Scroll Button ====== */ .scroll-btn { position: fixed; right: 1.5rem; bottom: 1.5rem; background: var(--mainBlack); color: var(--mainWhite); z-index: -100; opacity: 0; transition: var(--mainTransition); font-size: 2rem; line-height: 0; padding: 0.3rem 0.5rem; cursor: pointer; } .show-scroll-btn { z-index: 100; opacity: 1; } /* ====== Pagination Buttons ====== */ .pagination-buttons { width: var(--smallWidth); max-width: var(--fullWidth); margin: 0 auto; margin-top: -4.5rem; padding-bottom: 2rem; } .pagination-buttons { display: flex; justify-content: center; flex-wrap: wrap; align-items: center; } .page-btn, .prev-page-btn, .next-page-btn { margin: 0.5rem; padding: 0.25rem 0.5rem; cursor: pointer; background: transparent; transition: var(--mainTransition); font-size: 1.2rem; color: var(--primaryColor); border: none; } .page-btn:hover { background: var(--primaryColor); color: var(--mainWhite); } .page-btn-current { background: var(--primaryColor); color: var(--mainWhite); } .prev-page-btn, .next-page-btn { border: none; color: var(--primaryColor); font-size: 1.75rem; display: flex; align-items: center; transition: var(--mainTransition); } .prev-page-btn:hover, .next-page-btn:hover { background: var(--primaryColor); color: var(--mainWhite); } /* ====== Filters Section ====== */ .filters-section { width: var(--smallWidth); margin: 0 auto; max-width: 25rem; padding-top: 4rem; margin-bottom: -4rem; } .filters-form { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; } .filters-form .form-control { display: block; margin-bottom: 0.6rem; } .filters-form label { text-transform: capitalize; margin-bottom: 0.25rem; } .filters-form input[type="text"] { border: 0.5px solid var(--mainBlack); font-size: 0.8rem; padding: 0.2rem; background: transparent; border-radius: var(--mainBorderRadius); } .filters-form select { background: transparent; font-size: 0.8rem; border-color: var(--mainBlack); border-width: 0.5px; } .filters-form input[type="checkbox"] { margin-right: 0.5rem; } .price-group p { margin-bottom: 0.6rem; text-transform: capitalize; } .price-group label { display: block; } .price-group input { margin-right: 0.5rem; } .filters-section h6 { text-transform: capitalize; font-size: 1.3rem; margin-top: 1rem; margin-bottom: 0.5rem; } .filters-section hr { border: none; border-top: 0.5px solid var(--mainBlack); } .search-errors { margin-top: 8rem; font-size: 1.1rem; padding: 0 2rem; }