/*=============== GOOGLE FONTS ===============*/ @import url("https://fonts.googleapis.com/css2?family=Montagu+Slab:wght@500&family=Montserrat:wght@400;500;600&display=swap"); /*=============== VARIABLES CSS ===============*/ :root { --header-height: 3.5rem; /*========== Colors ==========*/ /*Color mode HSL(hue, saturation, lightness)*/ --first-color: hsl(900, 62%, 0%); --title-color: hsl(230, 70%, 16%); --text-color: hsl(230, 16%, 45%); --border-color: hsl(600, 50%, 90%); --white-color: hsl(0, 0%, 100%); --body-color: hsl(255, 100%, 100%); --container-color: hsl(255, 100%, 100%); /*========== Font and typography ==========*/ /*.5rem = 8px | 1rem = 16px ...*/ --body-font: "Montserrat", sans-serif; --second-font: "Montagu Slab", serif; --biggest-font-size: 2rem; --h1-font-size: 1.5rem; --h2-font-size: 1.25rem; --h3-font-size: 1rem; --normal-font-size: .938rem; --small-font-size: .813rem; --smaller-font-size: .75rem; /*========== Font weight ==========*/ --font-regular: 400; --font-medium: 500; --font-semi-bold: 600; /*========== z index ==========*/ --z-tooltip: 10; --z-fixed: 100; } /*========== Responsive typography ==========*/ @media screen and (min-width: 1150px) { :root { --biggest-font-size: 3.5rem; --h1-font-size: 2.25rem; --h2-font-size: 1.5rem; --h3-font-size: 1.25rem; --normal-font-size: 1rem; --small-font-size: .875rem; --smaller-font-size: .813rem; } } /*=============== BASE ===============*/ * { box-sizing: border-box; padding: 0; margin: 0; } html { scroll-behavior: smooth; } body, input, button { font-family: var(--body-font); font-size: var(--normal-font-size); } body { background-color: var(--body-color); color: var(--text-color); transition: background-color .4s; } input, button { border: none; outline: none; } h1, h2, h3, h4 { color: var(--title-color); font-family: var(--second-font); font-weight: var(--font-medium); } ul { list-style: none; } a { text-decoration: none; } img { display: block; max-width: 100%; height: auto; } /*=============== THEME ===============*/ /*========== Variables Dark theme ==========*/ body.dark-theme { --title-color: hsl(230, 48%, 85%); --text-color: hsl(230, 16%, 70%); --border-color: hsl(230, 12%, 18%); --body-color: hsl(230, 12%, 8%); --container-color: hsl(230, 12%, 12%); } /*========== Color changes in some parts of the website, in dark theme ==========*/ .dark-theme .shadow-header{ box-shadow: 0 2px 16px hsla(0, 0%, 0%, .4); } .dark-theme .nav__menu { box-shadow: 0 -8px 32px hsla(0, 0%, 0%, .4); } .dark-theme .scrollup { box-shadow: 0 2px 8px hsla(0, 0%, 0%, .4); } .dark-theme .search, .dark-theme .login { background-color: hsla(230, 12%, 8%, .6); } .dark-theme::-webkit-scrollbar { background-color: hsl(230, 16%, 15%); } .dark-theme::-webkit-scrollbar-thumb { background-color: hsl(230, 16%, 25%); } .dark-theme::-webkit-scrollbar-thumb:hover { background-color: hsl(230, 16%, 35%); } /*=============== REUSABLE CSS CLASSES ===============*/ .container { max-width: 1220px; margin-inline: 1.5rem; } .grid { display: grid; gap: 1.5rem; } .section { padding-block: 5rem 1rem; } #icon-main { font-size: 1.5rem; color: var(--first-color); width: 30px; height: 30px; } .section__title { text-align: center; font-size: var(--h1-font-size); font-family: var(--second-font); margin-bottom: 2rem; } .main { overflow: hidden; /* For animation ScrollReveal */ } /*=============== HEADER & NAV ===============*/ .header { position: fixed; top: 0; left: 0; width: 100%; background-color: var(--body-color); z-index: var(--z-fixed); transition: box-shadow .4s, background-color .4s; } .nav { height: var(--header-height); display: flex; justify-content: space-between; align-items: center; } .nav__logo { display: inline-flex; align-items: center; column-gap: .5rem; color: var(--first-color); font-weight: var(--font-medium); } .nav__logo i { font-size: 1.25rem; } /* Navigation for mobile devices */ @media screen and (max-width: 1150px) { .nav__menu { position: fixed; bottom: 0; left: 0; right: 0; width: 100%; background-color: var(--container-color); box-shadow: 0 -8px 32px hsla(0, 0%, 0%, .1); padding: 1.25rem 4rem; transition: background-color .4s; } } .nav__list { display: flex; justify-content: space-between; } .nav__link { color: var(--text-color); transition: color .4s; } .nav__link span { display: none; } .nav__link i { font-size: 1.25rem; } .nav__link:hover { color: var(--first-color); } .nav__actions { display: flex; align-items: center; column-gap: 1rem; } .nav__actions i { font-size: 1.25rem; color: var(--title-color); cursor: pointer; transition: color .4s; } .nav__actions i:hover { color: var(--first-color); } /* Add shadow header */ .shadow-header { box-shadow: 0 2px 16px hsla(0, 0%, 0%, .1); } /* Active link */ .active-link { color: var(--first-color); } /*=============== SEARCH ===============*/ .search { position: fixed; top: -100%; left: 0; width: 100%; height: 100%; z-index: var(--z-fixed); background-color: hsla(230, 62%, 96%, .6); backdrop-filter: blur(16px); padding: 8rem 1.5rem; transition: top .4s; } .search__form { display: flex; align-items: center; column-gap: .5rem; background-color: var(--container-color); border: 2px solid var(--border-color); padding-inline: 1rem; border-radius: 10px; } .search__icon { font-size: 1.25rem; color: var(--title-color); } .search__input { width: 100%; padding-block: 1rem; background-color: var(--container-color); color: var(--text-color); } .search__close { position: absolute; top: 2rem; right: 2rem; font-size: 2rem; color: var(--title-color); cursor: pointer; } /* Show search */ .show-search { top: 0; } /* =============== SHOPPING BAG =============== */ .bag{ position: fixed; top: -100%; left: 0; height: 100%; width: 100%; z-index: var(--z-fixed); background-color: hsla(230, 62%, 96%, .6); backdrop-filter: blur(16px); align-items: center; padding: 1.5rem; text-align: left; transition: top .4s; } .bag__form{ background-color: var(--container-color); padding: 2rem 1.5rem; border: 2px solid var(--border-color); row-gap: 1.25rem; } .bag__title{ font-size: var(--h2-font-size); } .bag__group{ row-gap: 1.25rem; } .bag__close { position: absolute; top: 2rem; right: 2rem; font-size: 2rem; color: var(--title-color); cursor: pointer; } /* Show search */ .show-bag { top: 0; } /*=============== LOGIN ===============*/ .login { position: fixed; top: -100%; left: 0; width: 100%; height: 100%; z-index: var(--z-fixed); background-color: hsla(230, 62%, 96%, .6); backdrop-filter: blur(16px); align-items: center; padding: 1.5rem; text-align: center; transition: top .4s; } .login__form { background-color: var(--container-color); padding: 2rem 1.5rem; border: 2px solid var(--border-color); row-gap: 1.25rem; } .login__title { font-size: var(--h2-font-size); } .login__group { row-gap: 1.25rem; } .login__label { display: block; text-align: initial; color: var(--title-color); font-weight: var(--font-medium); margin-bottom: .25rem; } .login__input { width: 100%; background-color: var(--container-color); border: 2px solid var(--border-color); padding: 1rem; color: var(--text-color); } .login__signup, .login__forgot { display: block; font-size: var(--small-font-size); } .login__signup { margin-bottom: .5rem; } .login__signup a { color: var(--first-color); font-weight: var(--font-medium); } .login__forgot { color: var(--first-color); margin-bottom: 1.25rem; } .login__button { width: 100%; cursor: pointer; } .login__close { position: absolute; top: 2rem; right: 2rem; font-size: 2rem; color: var(--title-color); cursor: pointer; } /* Show login */ .show-login { top: 0; } /*=============== HOME ===============*/ .home__swiper { margin: initial; } .home__container { padding-top: 2rem; row-gap: 2.5rem; } .home__data { text-align: center; } .home__title { font-size: var(--biggest-font-size); margin-bottom: 1rem; } .home__description { margin-bottom: 2rem; } .home__images { display: grid; } .home__article, .home__img { width: 220px; transition: scale .4s; } .home__article { scale: .8; } /* Swiper class */ .swiper-slide-active, .swiper-slide-duplicate-active { scale: 1; } /*=============== BUTTON ===============*/ .button { display: inline-block; background-color: var(--first-color); color: var(--white-color); font-weight: var(--font-semi-bold); padding: 1rem 1.5rem; transition: box-shadow .4s; border-radius: 10px; } .button:hover { box-shadow: 0 4px 32px hsla(230, 72%, 32%, .4); } /*=============== SERVICES ===============*/ .services__container { row-gap: 3rem; } .services__card { text-align: center; } .services__card i { display: block; font-size: 3rem; color: var(--first-color); margin-bottom: 1rem; } .services__title { font-size: var(--h3-font-size); margin-bottom: .5rem; } /*=============== FEATURED ===============*/ .featured__card { position: relative; text-align: center; background-color: var(--container-color); padding: 2rem; overflow: hidden; border: 2px solid var(--border-color); transition: border .4s, background-color .4s; border-radius: 10px; } .featured__img { width: 150px; margin: 0 auto .75rem; } .featured__title { font-size: var(--h2-font-size); margin-bottom: .5rem; } .featured__prices { display: flex; justify-content: center; align-items: center; column-gap: .75rem; margin-bottom: 1.25rem; } .featured__discount { color: var(--title-color); } .featured__price { font-size: var(--small-font-size); text-decoration: line-through; } .featured__card .button { cursor: pointer; } .featured__actions { display: inline-flex; flex-direction: column; row-gap: .75rem; position: absolute; top: 2rem; right: -1.5rem; transition: right .4s; } .featured__actions button { background: none; font-size: 1.25rem; color: var(--first-color); cursor: pointer; } .featured__card:hover .featured__actions { right: 1.5rem; } /* Swiper class */ .swiper-button-prev::after, .swiper-button-next::after { content: ""; } .swiper-button-prev, .swiper-button-next { width: initial; height: initial; background-color: var(--container-color); border: 2px solid var(--border-color); padding: .5rem; font-size: 1.5rem; color: var(--first-color); transition: border .4s, background-color .4s; } /*=============== DISCOUNT ===============*/ .discount__container { row-gap: 3.5rem; } .discount__data { text-align: center; } .discount__title { margin-bottom: 1rem; } .discount__description { margin-bottom: 2rem; } .discount__images { display: flex; justify-content: center; } .discount__img-1, .discount__img-2 { width: 170px; } .discount__img-1 { transform: translateX(-1rem) rotate(-10deg); } .discount__img-2 { transform: translateX(-1rem) rotate(10deg); } /*=============== NEW ===============*/ .new__card { display: flex; align-items: center; column-gap: 2.5rem; background-color: var(--container-color); padding: 1.5rem 1rem; color: var(--text-color); border: 2px solid var(--border-color); transition: border .4s, background-color .4s; } .new__card:hover { border: 2px solid var(--text-color); } .new__img { width: 100px; } .new__title { font-size: var(--h2-font-size); margin-bottom: .5rem; } .new__prices { display: flex; align-items: center; column-gap: .75rem; margin-bottom: .75rem; } .new__discount { color: var(--title-color); } .new__price { font-size: var(--small-font-size); text-decoration: line-through; } .new__stars { color: var(--first-color); } .new__swiper:nth-child(1) { margin-bottom: 2rem; } /*=============== JOIN ===============*/ .join__container { position: relative; padding-block: 3rem; } .join__bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .join__data { position: relative; } .join__title { color: var(--white-color); } .join__form { display: grid; row-gap: 1rem; } .join__input { padding: 1.25rem 1rem; background-color: var(--body-color); color: var(--title-color); transition: background-color .4s; } .join__input::placeholder { color: var(--text-color); } .join__button { padding-block: 1.25rem; cursor: pointer; } /*=============== TESTIMONIAL ===============*/ .testimonial__card { text-align: center; background-color: var(--container-color); padding: 2rem 3rem 2.5rem; border: 2px solid var(--border-color); transition: border .4s, background-color .4s; } .testimonial__img { width: 100px; border-radius: 50%; margin: 0 auto 1.5rem; } .testimonial__title { font-size: var(--h2-font-size); margin-bottom: .75rem; } .testimonial__description { font-size: var(--small-font-size); margin-bottom: 1.25rem; } .testimonial__stars { color: var(--first-color); } /*=============== FOOTER ===============*/ .footer { padding-block: 4rem 6rem; } .footer__container { row-gap: 3rem; } .footer__logo { display: inline-flex; align-items: center; column-gap: .5rem; color: var(--first-color); font-size: var(--h3-font-size); font-family: var(--second-font); margin-bottom: 1.25rem; } .footer__logo i { font-size: 1.25rem; } .footer__data { grid-template-columns: repeat(2, max-content); gap: 3rem 2rem; } .footer__title { font-size: var(--h3-font-size); margin-bottom: 1.25rem; } .footer__links { display: grid; row-gap: .5rem; } .footer__link { color: var(--text-color); transition: color .4s; } .footer__link:hover { color: var(--first-color); } .footer__info { font-style: normal; } .footer__social { display: flex; column-gap: 1.25rem; } .footer__social-link { font-size: 1.25rem; color: var(--first-color); } .footer__copy { display: block; margin-top: 5rem; text-align: center; font-size: var(--small-font-size); } /*=============== SCROLL BAR ===============*/ ::-webkit-scrollbar { width: .6rem; border-radius: .5rem; background-color: hsl(230, 16%, 85%); } ::-webkit-scrollbar-thumb { background-color: hsl(230, 16%, 65%); border-radius: .5rem; } ::-webkit-scrollbar-thumb:hover { background-color: hsl(230, 16%, 55%); } /*=============== SCROLL UP ===============*/ .scrollup { position: fixed; right: 1rem; bottom: -50%; background-color: var(--container-color); box-shadow: 0 2px 8px hsla(0, 0%, 0%, .1); display: inline-flex; padding: 6px; font-size: 1.25rem; color: var(--title-color); z-index: var(--z-tooltip); transition: bottom .4s, transform .4s, background-color .4s; } .scrollup:hover { transform: translateY(-.5rem); } /* Show Scroll Up */ .show-scroll { bottom: 6rem; } /*=============== BREAKPOINTS ===============*/ /* For small devices */ @media screen and (max-width: 320px) { .container { margin-inline: 1rem; } .nav__menu { padding-inline: 3rem; } .discount__img-1, .discount__img-2 { width: 140px; } .new__card { flex-direction: column; } .testimonial__card { padding-inline: 1rem; } .footer__data { grid-template-columns: 1fr; row-gap: 2rem; } } /* For medium devices */ @media screen and (min-width: 450px) { .featured__card { width: 290px; } .new__card { width: 390px; } .testimonial__card { width: 320px; } } @media screen and (min-width: 576px) { .search__form, .bag__form{ width: 500px; margin-inline: auto; } .login__form { width: 400px; justify-self: center; } .search__close, .bag__close, .login__close { width: max-content; top: 4rem; left: 0; right: 0; margin-inline: auto; } .nav__menu { width: 380px; margin-inline: auto; } .home__container, .discount__container { grid-template-columns: 420px; justify-content: center; } .join__form { width: 328px; justify-self: center; } .footer__data { grid-template-columns: repeat(3, max-content); } } @media screen and (min-width: 768px) { .home__container { grid-template-columns: 580px; } .home__data { width: 420px; justify-self: center; } .services__container { grid-template-columns: repeat(3, max-content); justify-content: center; column-gap: 5rem; } .footer__container { grid-template-columns: repeat(2, max-content); justify-content: space-between; } } /* For large devices */ @media screen and (min-width: 1150px) { .section { padding-block: 7rem 2rem; } .nav { height: calc(var(--header-height) + 2rem); column-gap: 4rem; } .nav__link i { display: none; } .nav__link span { display: block; } .nav__menu { width: initial; margin-inline: auto 0; } .nav__list { column-gap: 4rem; } .nav__link { font-weight: var(--font-medium); } .dark-theme .nav__menu { box-shadow: none; } .home__data { width: initial; } .services__container { column-gap: 10rem; } .services__card i { font-size: 3.5rem; } .featured__container { padding-top: 2rem; } .featured__title { font-size: var(--h3-font-size); } .discount__container { grid-template-columns: 615px 500px; justify-content: space-between; align-items: center; } .discount__data { order: 1; } .discount__data, .discount__title { text-align: initial; } .discount__description { margin-bottom: 3.5rem; } .discount__img-1, .discount__img-2 { width: 300px; } .new__container { padding-top: 2rem; } .new__card { padding: 1.5rem; } .new__img { width: 120px; } .new__title { font-size: var(--h3-font-size); } .join__bg { object-position: 0 -5rem; } .testimonial__container { padding-top: 2rem; } .testimonial__card { padding-inline: 2rem; } .testimonial__title { font-size: var(--h3-font-size); } .testimonial__description { font-size: var(--normal-font-size); } .footer { padding-block: 6rem 3rem; } .footer__data { grid-template-columns: repeat(4, max-content); column-gap: 4.5rem; } .footer__logo, .footer__title { font-size: var(--h2-font-size); margin-bottom: 1.5rem; } .footer__links { row-gap: 1rem; } .footer__social { column-gap: 1.5rem; } .footer__social-link { font-size: 1.5rem; } .footer__copy { margin-top: 7.5rem; } .scrollup { right: 3rem; } .show-scroll { bottom: 3rem; } } @media screen and (min-width: 1220px) { .container { margin-inline: auto; } .home__container { grid-template-columns: 435px 745px; align-items: center; padding-block: 7rem 2rem; } .home__data { text-align: initial; } .home__description { margin-bottom: 4rem; } .home__article, .home__img { width: 290px; } } /* ==================== PRODUCT DETAIL ==================== */ .product__detail { flex: 1; padding: 20px; margin-top: 2rem } .product__img img { max-width: 100%; height: auto; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } .detail { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; justify-content: center; } .product__title { text-align: center; width: 100%; } .product_info{ justify-content: center; } @media (max-width: 768px) { .detail { flex-direction: column; } .product__title { text-align: center; } }