/* Start Global Rules */
* {
	box-sizing: border-box !important;
	margin: 0px;
	padding: 0px;
}

*:focus {
	outline: none;	
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: "Outfit", sans-serif;
	color: var(--dark);
}

:root {
    --main-color: #C507D6;
    --secondary-color: #EFCDF2;
    --dark: #1b2538;
	--transition-delay: 0.4s;
	--section-padding: 80px;
}

.container {
	padding: 0px 16px;
	margin: auto;
}

@media (max-width: 992px) {
	.container {
		padding: 0px 48px;
	}
}

/*Start The Header*/
header .container {
	padding-top: 24px;
	padding-bottom: 24px;
}

header .logo-nav {
	gap: 64px;
}

header .logo-nav > nav {
	gap: 24px;
}

header .logo-nav > nav > a {
	transition: var(--transition-delay) ease color;
}

header .logo-nav > nav > a:hover {
	color: var(--main-color);
}

header .header-icons {
	gap: 16px;
}

header .header-icons > i {
	cursor: pointer;
}

header .header-icons > i.active-icon {
	color: var(--main-color);
	animation: ActiveCart 0.8s infinite alternate;
}

@keyframes ActiveCart {
	0% {
		color: var(--main-color);
	}
	100% {
		color: black;
	}
}

header .header-icons > i:hover {
	color: var(--main-color);
}

aside.cart-items {
	display: block;
	width: 350px;
	font-family: "Outfit", sans-serif;
	color: var(--dark);
	padding: 16px 32px;
	height: 100%;
	background-color: white;
	position: fixed;
	bottom: 0px;
	right: 0px;
	transform: translateX(100%);
	z-index: 5;
	animation: 1s ease both;
}

@keyframes OpenAside {
	0% {
		display: none;
		transform: translateX(100%);
	}
	100% {
		display: block;
		transform: translateX(0%);
	}
}

@keyframes CloseAside {
	0% {
		display: block;
		transform: translateX(0%);
	}
	100% {
		display: none;
		transform: translateX(100%);
	}
}

@media (max-width: 769px) {
	aside.cart-items {
		width: 100%;
	}
}

aside.cart-items > i {
	cursor: pointer;
	transition: var(--transition-delay) ease all;
}

aside.cart-items > i:hover {
	color: red;
}

aside.cart-items > div {
	margin-top: 32px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

aside.cart-items .product-info {
	font-size: 1rem;
	padding: 0px;
}

@media (max-width: 769px) {
	header .logo-nav > nav {
		background-color: var(--secondary-color);
		position: absolute;
		bottom: 0px;
		left: 0px;
		width: 100%;
		transform: translateY(100%);
		padding: 0px 48px;
	}

	header .logo-nav > nav > a {
		padding: 8px 0px;
	}
}
/*End The Header*/

/*Start The Hero Section*/
section.hero {
	height: calc(100vh - 80px);
	font-size: 16px;
	position: relative;
}

section.hero::after {
	content: "\f8cc";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	position: absolute;
	bottom: 48px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 1.45rem;
	animation: infinite 0.7s ease scroll-down alternate;
}

@keyframes scroll-down {
	0% {
		bottom: 48px;
	}
	100% {
		bottom: 32px;
	}
}

section.hero .container {
	height: 90%;
}

section.hero .text {
	max-width: 480px;
	gap: 16px;
}

section.hero .text > h1 {
	font-size: 3.052em;
	line-height: 1.2;
	color: var(--dark);
}

section.hero .text > p {
	font-size: 1.25em;
	color: #666;
	font-weight: 300;
}

section.hero .text > .search {
	margin-top: 24px;
	gap: 24px;
}

section.hero .text > .search > .search-bar {
	padding: 8px 16px;
	border: 1px solid #ddd;
}

section.hero .text > .search > .search-bar > input {
	font-weight: 300;
}

section.hero .text > .search button {
	background-color: var(--main-color);
	color: white;
	padding: 8px 16px;
	transition: ease all var(--transition-delay);
}

section.hero .text > .search button:hover {
	opacity: 0.5;
}

section.hero .img-div > img {
	max-width: 100%;
	height: auto;
}

@media (max-width: 996px) {
	section.hero .container {
		flex-direction: column-reverse;
		justify-content: center;
		height: 100%;
	}

	section.hero .text {
		width: 80%;
		text-align: center;
		align-items: center;
	}

	section.hero .img-div {
		margin: 24px 0px;
	}

	section.hero .img-div > img {
		max-width: 80%;
		margin: auto;
	}

	section.hero::after {
		display: none;
	}
}

@media (max-width: 769px) {
	section.hero {
		font-size: 14px;
		height: calc(100vh - 120px);
		margin-top: 40px;
	}

	section.hero .text {
		width: 100%;
	}

	section.hero .text > .search > .search-bar,
	section.hero .text > .search > button {
		padding: 16px 16px;
		font-size: 16px;
	}
}

@media (max-width: 600px) {
	section.hero {
		font-size: 12px;
	}
}
/*End The Hero Section*/

/*Start Categories Section*/
section.categories {
	padding: var(--section-padding) 0px;
}

section > h1 {
	font-size: 1.953rem;
	font-weight: 500;
	margin: 0px auto;
	width: fit-content;
}

section.categories .container {
	padding-top: calc(var(--section-padding) / 2);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, auto));
	justify-content: space-between;
	gap: 16px;
}

@media (max-width: 996px) {
	section.categories .container {
		justify-content: center;
		grid-template-columns: repeat(auto-fit, minmax(130px, auto));
	}
} 

section.categories .container .category {
	background-color: #eee;
	border-radius: 10px;
	padding: 32px 32px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	transition: ease all var(--transition-delay);
}

section.categories .container .category:hover {
	border-bottom: 4px var(--main-color) solid;
	transform: translateY(-5px);
}

section.categories .container .category > span {
	font-size: 1.25rem;
	font-weight: 500;
	text-align: center;
}

section.categories .container .category > img {
	width: 80px;
	height: auto;
}
/*End Categories Section*/

/*Start Products Section*/
section.products {
	padding: var(--section-padding) 0px;
}

section.products .container {
	display: grid;
	grid-template: repeat(2, auto) / auto 1fr;
	gap: 48px;
}

section.products .container > .special-offers {
	grid-area: 1 / 1 / 3 / 2;
}

@media (max-width: 996px) {
	section.products .container {
		grid-template-columns: 1fr;
	}
}

section.products .container .title {
	padding: 8px 16px;
	gap: 16px;
	font-size: 1.25rem;
	font-weight: 500;
	box-shadow: 3px 1px 10px 2px rgba(112,112,112,0.25);
	-webkit-box-shadow: 3px 1px 10px 2px rgba(112,112,112,0.25);
	-moz-box-shadow: 3px 1px 10px 2px rgba(112,112,112,0.25);
}

section.products .container .products-1 {
	padding: 24px 0px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, auto));
	gap: 24px;
}

section.products .container .products-1 > .product {
	overflow: hidden;
	border-radius: 16px;
	z-index: 1;
}

section.products .container .products-1 > .product > i {
	background-color: white;
	height: 30px;
	width: 30px;
	border-radius: 50%;
	top: 16px;
	right: 16px;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
	animation: ease 1s;
	display: none;
	z-index: 2;
	cursor: pointer;
}

@keyframes show-plus {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

section.products .container .products-1 > .product:hover > i {
	display: flex;
	animation-name: show-plus;
}

section.products .container .products-1 > .added > i {
	display: flex;
}

section.products .container .products-1 > .added:hover > i {
	background-color: red;
	color: white;
}

section.products .container .products-1 > .product:hover > img {
	opacity: 0.7;
}

section.products .container .products-1 > .product > img {
	border-radius: 16px;
	transition: var(--transition-delay) ease opacity;
}

.product-info {
	display: flex;
	justify-content: space-between;
	padding: 16px;
}

.product-info .text {
	display: flex;
	flex-direction: column;
}

.product-info .text > p {
	color: #666;
	transform: translateY(-5px);
}

.product-info .text > span {
	display: flex;
	gap: 8px;
	align-items: center;
	font-weight: 800;
}

.product-info .text > span span {
	color: #999;
	font-size: 0.64rem;
}

section.products .container .popular-categories .categories {
	padding: 24px 0px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, auto));
	gap: 24px;
}

section.products .container .popular-categories .categories > div {
	border-radius: 16px;
	overflow: hidden;
	min-height: 240px;
	z-index: 3;
}

section.products .container .popular-categories .categories > div span {
	font-size: 1.25rem;
	font-weight: 800;
}

section.products .container .popular-categories .categories > div button {
	padding: 8px 16px;
	font-weight: lighter;
	background-color: var(--main-color);
	margin-top: 8px;
	transition: var(--transition-delay) ease background-color;
}

section.products .container .popular-categories .categories > div button:hover {
	background-color: var(--dark);
}

section.products .container .popular-categories .categories > .cat-meals::after {
	content: url("../images/pop-cat-1.webp");
	width: 100%;
	height: 100%;
	border-radius: 16px;
	position: absolute;
	top: 0px;
	left: 0px;
	opacity: 0.6;
	z-index: -1;
}

section.products .container .popular-categories .categories > .dog-essentials::after {
	content: url("../images/pop-cat-2.webp");
	width: 100%;
	height: 100%;
	border-radius: 16px;
	position: absolute;
	top: 0px;
	left: 0px;
	opacity: 0.7;
	z-index: -1;
}

section.products .container .special-offers .offers {
	padding: 24px 0px;
	display: grid;
	grid-template-rows: 1fr 1fr auto;
	gap: 24px;
}

@media (max-width: 996px) {
	section.products .container > .special-offers > .offers {
		grid-template: 1fr auto / repeat(2, 1fr);
	}

	section.products .container > .special-offers .limited-time {
		grid-area: 2 / 1 / 3 / 3;
	}
}

@media (max-width: 769px) {
	section.products .container > .special-offers > .offers {
		grid-template-columns: 1fr;
		grid-template-rows: none;
	}

	section.products .container > .special-offers .limited-time {
		grid-area: auto;
	}
}

section.products .container .special-offers .offers > div {
	padding: 24px;
	border-radius: 16px;
	min-width: 250px;
	box-shadow: 3px 1px 10px 2px rgba(112,112,112,0.25);
	-webkit-box-shadow: 3px 1px 10px 2px rgba(112,112,112,0.25);
	-moz-box-shadow: 3px 1px 10px 2px rgba(112,112,112,0.25);
}

section.products .container .special-offers .offers > div.offer-2 {
	box-shadow: none;
	background-color: var(--secondary-color);
}

section.products .container .special-offers .offers > div h3 {
	font-size: 1.563rem;
	font-weight: 800;
}

section.products .container .special-offers .offers > div:nth-child(1) span,
section.products .container .special-offers .offers > div:nth-child(2) span {
	font-size: 1.25rem;
	color: #666;
	font-weight: 300;
}

section.products .container .special-offers .offers > div img {
	margin: 24px 0px;
	max-width: 140px;
	height: auto;
}

section.products .container .special-offers .offers > div > div.img-container {
	position: relative;
}

section.products .container .special-offers .offers > div > div.img-container::after {
	content: "\25";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	position: absolute;
	top: 5px;
	right: -10px;
	font-size: 1.25rem;
	height: 40px;
	width: 40px;
	background-color: var(--dark);
	color: white;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

section.products .container .special-offers .offers > div.offer-2 img {
	aspect-ratio: 1/1;
	max-width: none;
	width: 140px;
	border-radius: 24px;
}

section.products .container .special-offers .offers > div button {
	width: 100%;
	background-color: var(--main-color);
	color: white;
	margin-top: 16px;
	padding: 8px 16px;
	transition: var(--transition-delay) ease background-color;
}

section.products .container .special-offers .offers > div button:hover {
	background-color: var(--dark);
}

section.products .container .special-offers .offers > .limited-time {
	background-color: var(--main-color);
	letter-spacing: 1.2px;
	gap: 16px;
}

section.products .container .special-offers .offers > .limited-time > .time {
	gap: 16px;
}

section.products .container .special-offers .offers > .limited-time > .time > span {
	background-color: white;
	padding: 4px 8px;
	border-radius: 8px;
}
/*End Products Section*/

/*Start Our Blog Section*/
section.our-blog {
	background-color: #eee;
	padding: var(--section-padding) 0px;
}

section.our-blog .container {
	margin-top: 48px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, auto));
	gap: 24px;
}

section.our-blog .container .article {
	background-color: white;
	border-radius: 24px;
	overflow: hidden;
	position: relative;
}

section.our-blog .container .article > button {
	background-color: var(--main-color);
	border-radius: 48px;
	font-weight: 500;
	font-size: 0.8rem;
	letter-spacing: 1.1px;
	color: white;
	position: absolute;
	bottom: -40px;
	left: 20px;
	padding: 8px 16px;
	z-index: 3;
	transition: var(--transition-delay) ease all;
	transition-delay: 0.3s;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

section.our-blog .container .article > button:hover {
	background-color: var(--dark);
	transition-delay: 0s;
}

section.our-blog .container .article:hover > button {
	bottom: 20px;
}

section.our-blog .container .article:hover > .img-article {
	animation: ArticleAnimation ease 1s alternate;
	animation-fill-mode: both;
}

@keyframes ArticleAnimation {
	0% {
		height: 180px;
	}
	100% {
		height: 100%;
	}
}

section.our-blog .container .article > .img-article {
	border-radius: 24px;
	opacity: 0.9;
	width: 100%;
	min-height: 180px;
	transition: var(--transition-delay) ease all;
}

section.our-blog .container .article:nth-child(1) > .img-article {
	background: url("../images/pop-cat-2.webp") no-repeat center center;
	background-size: cover;
}

section.our-blog .container .article:nth-child(2) > .img-article {
	background: url("../images/art-img-2.webp") no-repeat center center;
	background-size: cover;
}

section.our-blog .container .article:nth-child(3) > .img-article {
	background: url("../images/art-img-3.webp") no-repeat center center;
	background-size: cover;
}

section.our-blog .container .article > .article-info {
	padding: 24px;
}

section.our-blog .container .article > .article-info > span {
	font-size: 1.25rem;
	font-weight: 800;
}

section.our-blog .container .article > .article-info > p {
	color: #666;
	margin-top: 24px;
	font-weight: 500;
}

section.our-blog .container .article > .article-info > .writer {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
}

section.our-blog .container .article > .article-info > .writer > img {
	border-radius: 50%;
	width: 40px;
	height: 40px;
}
/*End Our Blog Section*/

/*Start The Footer*/
footer .container {
	padding: var(--section-padding) 0px;
	gap: 32px;
}

footer .shop-info {
	gap: 24px;
}

footer .shop-info .social-media {
	gap: 8px;
	font-size: 1.25rem;
}
/*End The Footer*/


