@import url('https://fonts.googleapis.com/css2?family=Chewy&family=Roboto:wght@300;400;500;700&display=swap');

:root {
	--pink: #c2185b;
	--pink-dark: #a3154a;
	--pink-hot: #c2185b;
	--pink-coral: #c2185b;
	--pink-medium: #ffd9e2;
	--pink-light: #ffe4ec;
	--pink-soft: #fff0f5;
	--blush: #ffe4ec;
	--cream: #fff8f8;
	--peach: #ffc0d0;
	--beige: #f4ebed;
	--mint: #e8f5e9;
	--choco: #211a1c;
	--text: #211a1c;
	--text-light: #524346;
	--white: #ffffff;
	--font-heading: 'Chewy','Fredoka','Baloo 2',cursive;
	--font-accent: 'Pacifico',cursive;
	--font-body: 'Roboto','Nunito','Poppins',sans-serif;
	--font-playful: 'Chewy',cursive;
	--radius-sm: 8px;
	--radius-md: 16px;
	--radius-lg: 28px;
	--radius-xl: 40px;
	--radius-pill: 999px;
	--shadow-sm: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
	--shadow-md: 0 3px 6px rgba(0,0,0,0.15), 0 2px 4px rgba(0,0,0,0.12);
	--shadow-lg: 0 10px 20px rgba(0,0,0,0.15), 0 3px 6px rgba(0,0,0,0.10);
	--shadow-pink: 0 8px 24px rgba(194,24,91,0.18);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
	font-family: var(--font-body);
	color: var(--text);
	background: linear-gradient(135deg, #fff8f8 0%, #ffe4ec 50%, #fff0f5 100%);
	background-attachment: fixed;
	line-height: 1.6;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1,h2,h3,h4,h5,h6 {
	font-family: var(--font-heading);
	font-weight: 700;
	color: var(--choco);
	line-height: 1.2;
}

a { color: inherit; text-decoration: none; transition: all .25s ease; }
img { max-width: 100%; height: auto; display: block; }

/* Announcement Bar */
.announcement-bar {
	background: linear-gradient(90deg, #c2185b, #7c4d8c, #c2185b);
	background-size: 200% auto;
	animation: gradientShift 4s linear infinite;
	color: var(--white);
	font-weight: 600;
	font-size: .85rem;
	padding: .55rem 1rem;
	text-align: center;
	position: relative;
	overflow: hidden;
	letter-spacing: .04em;
}
.announcement-bar span { display: inline-block; margin: 0 .8rem; }
@keyframes gradientShift {
	0% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

/* Navbar */
.bp-navbar {
	background: rgba(255,255,255,.92);
	backdrop-filter: blur(16px);
	border-bottom: 1px solid #d6c1c5;
	padding: .6rem 0;
}
.bp-navbar .navbar-brand {
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--pink);
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}
.bp-navbar .navbar-brand img { width: 42px; height: 42px; border-radius: var(--radius-sm); object-fit: cover; }
.bp-navbar .nav-link {
	font-weight: 500;
	font-size: .95rem;
	color: var(--text);
	padding: .5rem 1rem;
	border-radius: var(--radius-pill);
	transition: all .2s ease;
}
.bp-navbar .nav-link:hover, .bp-navbar .nav-link.active {
	background: var(--pink);
	color: var(--white);
	box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
}
.bp-navbar .btn-cart, .bp-navbar .btn-search {
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--pink); color: var(--white); border: none;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 1.1rem; transition: all .25s ease; position: relative;
}
.bp-navbar .btn-cart:hover, .bp-navbar .btn-search:hover { background: var(--choco); transform: scale(1.08); }
.bp-navbar .cart-badge {
	position: absolute; top: -4px; right: -4px;
	background: var(--choco); color: var(--white);
	font-size: .65rem; font-weight: 700;
	width: 18px; height: 18px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}
.bp-navbar .navbar-toggler {
	border: 2px solid var(--beige); border-radius: var(--radius-sm); padding: .4rem .6rem;
}
.bp-navbar .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%236B4F3A' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.5' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* Hero */
.bp-hero {
	background: linear-gradient(160deg, #fff8f8 0%, #ffe4ec 40%, #ffc0d0 100%);
	padding: 3rem 0 5rem;
	position: relative;
	overflow: hidden;
}
.bp-hero::before {
	content: '';
	position: absolute;
	bottom: 0; left: 0;
	width: 100%; height: 60px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23FFF8F2' d='M0,60 C360,120 1080,0 1440,60 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
	background-size: 100% 100%;
}
.bp-hero .hero-paw {
	position: absolute;
	opacity: .12;
	animation: floatPaw 6s ease-in-out infinite;
}
@keyframes floatPaw {
	0%,100%{transform:translateY(0) rotate(0deg)}
	50%{transform:translateY(-20px) rotate(8deg)}
}
.bp-hero .hero-badge {
	display: inline-flex; align-items: center; gap: .4rem;
	background: var(--white); color: var(--pink);
	font-weight: 600; font-size: .85rem;
	padding: .4rem 1rem; border-radius: var(--radius-pill);
	box-shadow: var(--shadow-sm); margin-bottom: 1rem;
	border: 1px solid #d6c1c5;
}
.bp-hero .hero-title {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 700;
	color: var(--pink);
	line-height: 1.1;
	margin-bottom: 1rem;
}
.bp-hero .hero-title span { color: var(--pink-dark); position: relative; display: inline-block; }
.bp-hero .hero-title span::after {
	content: ''; position: absolute;
	bottom: 2px; left: 0; width: 100%; height: 8px;
	background: var(--peach); border-radius: var(--radius-pill);
	z-index: -1; opacity: .7;
}
.bp-hero .hero-subtitle {
	font-size: 1.1rem; color: var(--text-light);
	max-width: 480px; margin-bottom: 1.5rem;
}
.bp-hero .hero-img-wrap {
	position: relative; border-radius: var(--radius-xl);
	overflow: hidden; box-shadow: var(--shadow-lg);
	transform: rotate(2deg); transition: transform .4s ease;
}
.bp-hero .hero-img-wrap:hover { transform: rotate(0deg) scale(1.02); }
.bp-hero .hero-img-wrap img { width: 100%; height: 380px; object-fit: cover; border-radius: var(--radius-xl); }
.bp-hero .hero-sticker {
	position: absolute; background: var(--white); border-radius: var(--radius-md);
	padding: .5rem 1rem; box-shadow: var(--shadow-md);
	font-family: var(--font-accent); font-size: .9rem; color: var(--choco);
	animation: stickerBounce 3s ease-in-out infinite;
}
@keyframes stickerBounce {
	0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)}
}

/* Buttons */
.btn-bp-primary {
	font-family: var(--font-heading); font-weight: 600; font-size: 1rem;
	padding: .8rem 2rem; border-radius: var(--radius-md);
	background: var(--pink); color: var(--white); border: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
	transition: all .2s ease; display: inline-flex; align-items: center; gap: .5rem;
	letter-spacing: .02em;
}
.btn-bp-primary:hover { transform: translateY(-2px); box-shadow: 0 3px 6px rgba(0,0,0,0.15), 0 2px 4px rgba(0,0,0,0.12); color: var(--white); }
.btn-bp-outline {
	font-family: var(--font-heading); font-weight: 600; font-size: 1rem;
	padding: .8rem 2rem; border-radius: var(--radius-md);
	background: var(--white); color: var(--text); border: 1px solid #d6c1c5;
	transition: all .2s ease; display: inline-flex; align-items: center; gap: .5rem;
}
.btn-bp-outline:hover { border-color: var(--pink); color: var(--pink); transform: translateY(-2px); }
.btn-bp-choco {
	font-family: var(--font-heading); font-weight: 600; font-size: 1rem;
	padding: .8rem 2rem; border-radius: var(--radius-md);
	background: var(--choco); color: var(--white); border: none; transition: all .2s ease;
}
.btn-bp-choco:hover { background: #3d2e32; transform: translateY(-2px); color: var(--white); }

/* Sections */
.bp-section { padding: 4rem 0; position: relative; }
.bp-section-title {
	font-family: var(--font-heading); font-size: clamp(1.8rem, 5vw, 2.8rem);
	font-weight: 700; color: var(--choco); text-align: center; margin-bottom: .8rem;
	position: relative;
	display: inline-block;
}

.bp-section-header .bp-section-title {
	display: inline-block;
}

.bp-section-title::after {
	content: '';
	position: absolute;
	bottom: -6px;
	left: 50%;
	transform: translateX(-50%);
	width: 70px;
	height: 4px;
	background: var(--pink);
	border-radius: var(--radius-pill);
}

.bp-section-title .title-paw {
	display: inline-block;
	color: var(--pink-dark);
	font-size: .7em;
	vertical-align: middle;
	margin: 0 .2rem;
	animation: pawWiggle 2s ease-in-out infinite;
}

@keyframes pawWiggle {
	0%, 100% { transform: rotate(0deg) scale(1); }
	25% { transform: rotate(15deg) scale(1.2); }
	75% { transform: rotate(-10deg) scale(1.1); }
}
.bp-section-lead { font-size: 1rem; color: var(--text-light); text-align: center; max-width: 560px; margin: 0 auto 2.5rem; }
.bp-section-header { text-align: center; margin-bottom: 2.5rem; }

/* Feature Cards */
.bp-feature-card {
	background: var(--white); border-radius: var(--radius-md); padding: 2rem 1.5rem;
	text-align: center; box-shadow: var(--shadow-sm); border: 1px solid #d6c1c5;
	transition: all .25s ease; height: 100%;
}
.bp-feature-card:hover { border-color: var(--pink); transform: translateY(-4px); box-shadow: var(--shadow-md); }
.bp-feature-card .feature-icon {
	width: 56px; height: 56px; border-radius: var(--radius-sm);
	background: var(--pink-soft); color: var(--pink); font-size: 1.5rem;
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 1rem; transition: all .25s ease;
}
.bp-feature-card:hover .feature-icon { transform: scale(1.08); background: var(--pink); color: var(--white); }
.bp-feature-card h5 { font-size: 1.15rem; margin-bottom: .4rem; }
.bp-feature-card p { font-size: .9rem; color: var(--text-light); margin: 0; }

/* Product Cards */
.bp-product-card {
	background: var(--white); border-radius: var(--radius-md); overflow: hidden;
	box-shadow: var(--shadow-sm); border: 1px solid #d6c1c5;
	transition: all .25s ease; height: 100%; display: flex; flex-direction: column;
}

/* Product card link wrapper - ensures proper grid filling */
[data-aos="fade-up"] > a.d-block {
	width: 100%;
}
.bp-product-card:hover { border-color: var(--pink); transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.bp-product-card .card-media { position: relative; overflow: hidden; }
.bp-product-card .card-media img { width: 100%; height: 220px; object-fit: cover; transition: transform .4s ease; }
.bp-product-card:hover .card-media img { transform: scale(1.06); }
.bp-product-card .card-badge {
	position: absolute; top: 12px; left: 12px;
	background: var(--pink); color: var(--white);
	font-weight: 700; font-size: .7rem;
	padding: .3rem .8rem; border-radius: var(--radius-pill);
}
.bp-product-card .card-wishlist {
	position: absolute; top: 12px; right: 12px;
	width: 34px; height: 34px; border-radius: 50%;
	background: var(--white); border: none; color: var(--pink-dark);
	display: flex; align-items: center; justify-content: center;
	font-size: 1rem; box-shadow: var(--shadow-sm); transition: all .2s ease; cursor: pointer;
}
.bp-product-card .card-wishlist:hover { background: var(--pink); color: var(--white); transform: scale(1.1); }
.bp-product-card .card-body { padding: 1.2rem; flex: 1; display: flex; flex-direction: column; }
.bp-product-card .card-category { font-size: .75rem; font-weight: 600; color: var(--pink-dark); text-transform: uppercase; letter-spacing: .5px; margin-bottom: .3rem; }
.bp-product-card .card-title { font-size: 1.05rem; color: var(--choco); margin-bottom: .4rem; }
.bp-product-card .card-desc { font-size: .85rem; color: var(--text-light); margin-bottom: .8rem; flex: 1; }
.bp-product-card .card-footer-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.bp-product-card .card-price { font-size: 1.15rem; font-weight: 700; color: var(--choco); }
.bp-product-card .card-mrp { font-size: .9rem; color: #aaa; text-decoration: line-through; margin-left: .3rem; }
.bp-product-card .btn-add-cart {
	width: 36px; height: 36px; border-radius: 50%;
	background: var(--pink); color: var(--white); border: none;
	display: flex; align-items: center; justify-content: center;
	font-size: 1.1rem; transition: all .2s ease; flex-shrink: 0;
}
.bp-product-card .btn-add-cart:hover { background: var(--choco); transform: scale(1.1); }

/* Category Cards */
.bp-category-card {
	background: var(--white); border-radius: var(--radius-md); padding: 2rem 1rem;
	text-align: center; box-shadow: var(--shadow-sm); border: 1px solid #d6c1c5;
	transition: all .25s ease; height: 100%; display: flex; flex-direction: column;
	align-items: center; justify-content: center;
}
.bp-category-card:hover { border-color: var(--pink); transform: translateY(-4px) scale(1.02); box-shadow: var(--shadow-md); }
.bp-category-card .cat-icon {
	width: 72px; height: 72px; border-radius: 50%;
	background: var(--pink-soft);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 2rem; margin-bottom: 1rem; transition: all .25s ease;
	color: var(--pink);
}
.bp-category-card:hover .cat-icon { background: var(--pink); color: var(--white); transform: rotate(5deg) scale(1.05); }
.bp-category-card h5 { font-size: 1.2rem; margin-bottom: .3rem; }
.bp-category-card p { font-size: .85rem; color: var(--text-light); margin: 0; }

/* Review Cards */
.bp-review-card {
	background: var(--white); border-radius: var(--radius-lg); padding: 1.8rem;
	box-shadow: var(--shadow-sm); border: 2px solid transparent;
	transition: all .3s ease; height: 100%;
}
.bp-review-card:hover { border-color: var(--beige); box-shadow: var(--shadow-md); }
.bp-review-card .stars { color: var(--peach); font-size: 1rem; margin-bottom: .6rem; }
.bp-review-card .review-text { font-size: .92rem; color: var(--text); margin-bottom: 1rem; font-style: italic; }
.bp-review-card .reviewer { display: flex; align-items: center; gap: .8rem; }
.bp-review-card .reviewer-img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 3px solid var(--pink); }
.bp-review-card .reviewer-name { font-size: .95rem; color: var(--choco); margin: 0; }
.bp-review-card .reviewer-dog { font-size: .8rem; color: var(--text-light); margin: 0; }

/* Instagram */
.bp-insta-card { position: relative; border-radius: var(--radius-md); overflow: hidden; aspect-ratio: 1; }
.bp-insta-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.bp-insta-card:hover img { transform: scale(1.08); }
.bp-insta-card .insta-overlay {
	position: absolute; inset: 0; background: rgba(255,182,193,.35);
	display: flex; align-items: center; justify-content: center;
	opacity: 0; transition: opacity .3s ease;
}
.bp-insta-card:hover .insta-overlay { opacity: 1; }
.bp-insta-card .insta-overlay i { font-size: 2rem; color: var(--white); filter: drop-shadow(0 2px 4px rgba(0,0,0,.2)); }

/* Newsletter */
.bp-newsletter {
	background: var(--pink-soft);
	border: 2px solid var(--pink);
	border-radius: var(--radius-xl); padding: 3rem 2rem;
	position: relative; overflow: hidden; text-align: center;
}
.bp-newsletter::before {
	content: ''; position: absolute;
	width: 120px; height: 120px; background: var(--white); border-radius: 50%; opacity: .15;
	top: -40px; right: -40px;
}
.bp-newsletter::after {
	content: ''; position: absolute;
	width: 80px; height: 80px; background: var(--white); border-radius: 50%; opacity: .1;
	bottom: -20px; left: 10%;
}
.bp-newsletter h3 { font-size: 1.8rem; color: var(--choco); margin-bottom: .5rem; }
.bp-newsletter p { color: var(--choco); opacity: .85; margin-bottom: 1.5rem; }
.bp-newsletter .newsletter-form {
	max-width: 480px; margin: 0 auto;
	display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center;
}
.bp-newsletter .newsletter-form input {
	flex: 1; min-width: 220px; padding: .85rem 1.2rem;
	border-radius: var(--radius-pill); border: 2px solid var(--white);
	background: var(--white); font-size: .95rem; outline: none; transition: all .25s ease;
}
.bp-newsletter .newsletter-form input:focus { border-color: var(--choco); box-shadow: 0 0 0 4px rgba(107,79,58,.1); }

/* FAQ */
.bp-faq .accordion-item { background: var(--white); border: 2px solid var(--beige); border-radius: var(--radius-md); margin-bottom: .75rem; overflow: hidden; }
.bp-faq .accordion-button { font-family: var(--font-heading); font-size: 1rem; color: var(--choco); background: var(--white); padding: 1.2rem 1.5rem; box-shadow: none; }
.bp-faq .accordion-button:not(.collapsed) { background: var(--cream); color: var(--choco); box-shadow: none; }
.bp-faq .accordion-button:focus { box-shadow: none; border-color: transparent; }
.bp-faq .accordion-body { padding: 0 1.5rem 1.2rem; color: var(--text-light); font-size: .92rem; }

/* Footer */
.bp-footer {
	background: var(--white);
	border-top: 1px solid #d6c1c5;
	padding: 3rem 0 1.5rem; position: relative;
}
.bp-footer h5 { font-size: 1.15rem; margin-bottom: 1rem; color: var(--pink); font-family: var(--font-heading); }
.bp-footer p, .bp-footer a { font-size: .9rem; color: var(--text); }
.bp-footer a:hover { color: var(--pink); }
.bp-footer .footer-social a {
	width: 42px; height: 42px; border-radius: 50%; background: var(--pink-soft);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 1.1rem; color: var(--pink); border: 1px solid #d6c1c5;
	transition: all .2s ease;
}
.bp-footer .footer-social a:hover { background: var(--pink); color: var(--white); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.bp-footer .footer-bottom {
	border-top: 1px solid #d6c1c5; margin-top: 2rem; padding-top: 1.2rem;
	text-align: center; font-size: .82rem; color: var(--text-light);
}

/* Cookie Badge */
.cookie-badge {
	display: inline-flex; align-items: center; gap: .4rem;
	background: var(--pink-soft);
	color: var(--pink);
	font-family: var(--font-accent); font-size: .9rem;
	padding: .35rem 1rem; border-radius: var(--radius-pill);
}

/* Floating Decorations */
.float-paw {
	position: absolute;
	width: 32px; height: 32px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFB6C1' opacity='0.35'%3E%3Cpath d='M12 2C10 2 9 4 9 4C7 3 4 4 4 7C4 9 6 10 6 10C6 10 5 12 5 14C5 16 7 17 7 17C7 17 6 19 8 21C10 23 12 21 12 21C12 21 14 23 16 21C18 19 17 17 17 17C17 17 19 16 19 14C19 12 18 10 18 10C18 10 20 9 20 7C20 4 17 3 15 4C15 4 14 2 12 2Z'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	animation: floatPaw 5s ease-in-out infinite;
	pointer-events: none;
	z-index: 0;
}

/* Trust Badges */
.bp-trust-badge {
	display: inline-flex; align-items: center; gap: .4rem;
	background: var(--white); color: var(--text);
	font-size: .8rem; font-weight: 600;
	padding: .4rem .8rem; border-radius: var(--radius-pill);
	box-shadow: var(--shadow-sm); border: 1px solid var(--beige);
}

/* Mobile First Responsive */
@media (max-width: 991.98px) {
	.bp-hero { padding: 2.5rem 0 4rem; }
	.bp-hero .hero-img-wrap img { height: 280px; }
	.bp-section { padding: 3rem 0; }
	.bp-navbar .navbar-collapse {
		background: rgba(255,248,242,.98);
		border-radius: var(--radius-md);
		padding: 1rem;
		margin-top: .5rem;
		box-shadow: var(--shadow-md);
	}
}

/* Offcanvas Cart */
.offcanvas-end { border-left: 2px solid var(--beige); }
.offcanvas-title { font-family: var(--font-heading); color: var(--choco); }
.cart-qty-btn { border-color: var(--beige) !important; color: var(--choco) !important; }
.cart-qty-btn:hover { background: var(--pink) !important; color: var(--white) !important; border-color: var(--pink) !important; }

/* Search input in navbar */
#searchCollapse input.form-control {
	border-radius: var(--radius-pill);
	padding-left: 1.2rem;
	padding-right: 3rem;
	border: 2px solid var(--beige);
	background: var(--white);
	font-family: var(--font-body);
}
#searchCollapse input.form-control:focus {
	border-color: var(--pink);
	box-shadow: 0 0 0 4px rgba(255,182,193,.2);
}

/* Toast */
.toast { border-radius: var(--radius-md) !important; }

/* Wishlist active state */
.card-wishlist.active { background: var(--pink) !important; color: var(--white) !important; }

@media (max-width: 575.98px) {
	.bp-hero .hero-title { font-size: 2rem; }
	.bp-hero .hero-img-wrap img { height: 220px; }
	.btn-bp-primary, .btn-bp-outline, .btn-bp-choco { padding: .7rem 1.4rem; font-size: .9rem; }
	.bp-product-card .card-media img { height: 180px; }
	.bp-newsletter { padding: 2rem 1.2rem; }
	.bp-newsletter .newsletter-form input { min-width: 100%; }
}

/* ---- Centered Header / Logo Animation ---- */
.bp-header-center {
	text-align: center;
	padding: 1.2rem 0 .5rem;
	background: var(--white);
	position: relative;
	overflow: hidden;
}

.bp-header-center .logo-text {
	font-family: var(--font-accent);
	font-size: clamp(2rem, 6vw, 3.2rem);
	color: var(--pink);
	display: inline-block;
	animation: logoPop 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
	position: relative;
	z-index: 2;
}

.bp-header-center .logo-text::after {
	content: '';
	position: absolute;
	bottom: -6px;
	left: 50%;
	transform: translateX(-50%);
	width: 80%;
	height: 10px;
	background: linear-gradient(90deg, transparent, var(--peach), transparent);
	border-radius: var(--radius-pill);
	opacity: .6;
	z-index: -1;
}

.bp-header-center .logo-sub {
	font-family: var(--font-body);
	font-size: 1rem;
	color: var(--text-light);
	letter-spacing: 1px;
	margin-top: .2rem;
}

.bp-header-center .logo-sub i {
	animation: heartBeat 1.5s ease-in-out infinite;
}

@keyframes heartBeat {
	0%, 100% { transform: scale(1); }
	15% { transform: scale(1.3); }
	30% { transform: scale(1); }
	45% { transform: scale(1.3); }
}

@keyframes logoPop {
	0% { transform: scale(.3) rotate(-8deg); opacity: 0; }
	60% { transform: scale(1.08) rotate(2deg); }
	100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

/* ---- Pink Horizontal Nav Bar ---- */
.bp-nav-pink {
	background: linear-gradient(90deg, #c2185b, #7c4d8c);
	background-size: 200% auto;
	animation: gradientShift 6s linear infinite;
	padding: .5rem 0;
	position: sticky;
	top: 0;
	z-index: 1020;
	box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
}

.bp-nav-pink .nav-link {
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: .82rem;
	color: var(--white);
	text-transform: uppercase;
	letter-spacing: 1.2px;
	padding: .35rem .9rem;
	transition: all .2s ease;
	white-space: nowrap;
	border-radius: var(--radius-pill);
}

.bp-nav-pink .nav-link:hover,
.bp-nav-pink .nav-link.active {
	color: var(--white);
	background: rgba(255,255,255,0.18);
	transform: translateY(-1px);
	text-decoration: none;
}

.bp-nav-pink .navbar-toggler {
	border: 2px solid rgba(255,255,255,.5);
	border-radius: var(--radius-sm);
}

.bp-nav-pink .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23FFFFFF' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.5' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

.bp-nav-pink .navbar-collapse {
	background: transparent;
	padding: .5rem;
	margin-top: .5rem;
}

/* ---- Floating Paw Header Decoration ---- */
.sunburst {
	display: none !important;
}

/* =========================================================
   Dual Walking Paw Trails (Left + Right Footprints)
   ========================================================= */

/* ---- Dual Paw Pair (Left + Right walking together) ---- */
.walk-trail {
	position: absolute;
	pointer-events: none;
	z-index: 0;
	display: flex;
	gap: 6px;
	align-items: flex-end;
}

.paw-left, .paw-right {
	width: 24px;
	height: 24px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='%236B4F3A'%3E%3Cellipse cx='32' cy='44' rx='18' ry='14'/%3E%3Cellipse cx='14' cy='22' rx='7' ry='9'/%3E%3Cellipse cx='26' cy='12' rx='7' ry='9'/%3E%3Cellipse cx='42' cy='14' rx='7' ry='9'/%3E%3Cellipse cx='54' cy='26' rx='7' ry='9'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	opacity: 0;
}

/* Trail 1: Walking left to right, appearing one by one */
.trail-1 .paw-left { animation: pawAppear 3s ease-in-out 0s infinite; }
.trail-1 .paw-right { animation: pawAppear 3s ease-in-out .4s infinite; transform: translateY(-6px) rotate(8deg); }

/* Trail 2: offset timing */
.trail-2 .paw-left { animation: pawAppear 3.5s ease-in-out .8s infinite; }
.trail-2 .paw-right { animation: pawAppear 3.5s ease-in-out 1.2s infinite; transform: translateY(-6px) rotate(8deg); }

/* Trail 3: different angle */
.trail-3 .paw-left { animation: pawAppear 4s ease-in-out 1.5s infinite; }
.trail-3 .paw-right { animation: pawAppear 4s ease-in-out 1.9s infinite; transform: translateY(-6px) rotate(8deg); }

/* Cat trails (smaller, daintier) */
.cat-trail {
	position: absolute;
	pointer-events: none;
	z-index: 0;
	display: flex;
	gap: 5px;
	align-items: flex-end;
}

.cat-paw-left, .cat-paw-right {
	width: 18px;
	height: 18px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='%236B4F3A'%3E%3Cellipse cx='32' cy='46' rx='14' ry='12'/%3E%3Cellipse cx='17' cy='26' rx='5' ry='7'/%3E%3Cellipse cx='28' cy='18' rx='5' ry='7'/%3E%3Cellipse cx='40' cy='19' rx='5' ry='7'/%3E%3Cellipse cx='50' cy='27' rx='5' ry='7'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	opacity: 0;
}

.cat-trail-1 .cat-paw-left { animation: pawAppear 4s ease-in-out .3s infinite; }
.cat-trail-1 .cat-paw-right { animation: pawAppear 4s ease-in-out .7s infinite; transform: translateY(-4px) rotate(6deg); }

.cat-trail-2 .cat-paw-left { animation: pawAppear 3.8s ease-in-out 1.1s infinite; }
.cat-trail-2 .cat-paw-right { animation: pawAppear 3.8s ease-in-out 1.5s infinite; transform: translateY(-4px) rotate(6deg); }

@keyframes pawAppear {
	0% { opacity: 0; transform: scale(0.2); }
	12% { opacity: .4; transform: scale(1); }
	55% { opacity: .35; transform: scale(1); }
	85% { opacity: 0; transform: scale(0.7); }
	100% { opacity: 0; transform: scale(0.2); }
}

/* ---- Chewing Bone ---- */
.bone-nibble {
	position: absolute;
	width: 28px;
	height: 14px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 36' fill='%236B4F3A'%3E%3Crect x='18' y='10' width='44' height='16' rx='8'/%3E%3Ccircle cx='14' cy='12' r='10'/%3E%3Ccircle cx='14' cy='24' r='10'/%3E%3Ccircle cx='66' cy='12' r='10'/%3E%3Ccircle cx='66' cy='24' r='10'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: 0;
	opacity: .18;
	animation: boneNibble 1.2s ease-in-out infinite;
}

@keyframes boneNibble {
	0%, 100% { transform: rotate(0deg) scale(1); }
	20% { transform: rotate(-8deg) scale(1.05); }
	40% { transform: rotate(6deg) scale(0.95); }
	60% { transform: rotate(-5deg) scale(1.02); }
	80% { transform: rotate(4deg) scale(0.98); }
}

/* Confetti paw pieces */
.confetti-paw {
	position: fixed;
	width: 18px;
	height: 18px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='%236B4F3A'%3E%3Cellipse cx='32' cy='44' rx='18' ry='14'/%3E%3Cellipse cx='14' cy='22' rx='7' ry='9'/%3E%3Cellipse cx='26' cy='12' rx='7' ry='9'/%3E%3Cellipse cx='42' cy='14' rx='7' ry='9'/%3E%3Cellipse cx='54' cy='26' rx='7' ry='9'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: 9999;
	animation: confettiPawFall 2.5s ease-out forwards;
}

@keyframes confettiPawFall {
	0% { transform: translateY(-20px) rotate(0deg); opacity: 1; }
	100% { transform: translateY(300px) rotate(540deg); opacity: 0; }
}

/* ---- Cloud Decorations ---- */
.bp-cloud {
	position: absolute;
	background: var(--white);
	border-radius: 50px;
	opacity: .7;
	z-index: 1;
}

.bp-cloud::before,
.bp-cloud::after {
	content: '';
	position: absolute;
	background: var(--white);
	border-radius: 50%;
}

/* ---- Doodle Paw Prints scattered ---- */
.doodle-paw {
	position: absolute;
	width: 20px;
	height: 20px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFB6C1' opacity='0.4'%3E%3Cpath d='M12 2C10 2 9 4 9 4C7 3 4 4 4 7C4 9 6 10 6 10C6 10 5 12 5 14C5 16 7 17 7 17C7 17 6 19 8 21C10 23 12 21 12 21C12 21 14 23 16 21C18 19 17 17 17 17C17 17 19 16 19 14C19 12 18 10 18 10C18 10 20 9 20 7C20 4 17 3 15 4C15 4 14 2 12 2Z'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	animation: pawFade 4s ease-in-out infinite;
	pointer-events: none;
}

@keyframes pawFade {
	0%, 100% { opacity: .2; transform: scale(1); }
	50% { opacity: .5; transform: scale(1.2); }
}

/* ---- Wavy Section Dividers ---- */
.wave-top {
	position: absolute;
	top: -1px;
	left: 0;
	width: 100%;
	overflow: hidden;
	line-height: 0;
	transform: rotate(180deg);
}

.wave-top svg {
	position: relative;
	display: block;
	width: calc(100% + 1.3px);
	height: 40px;
}

.wave-bottom {
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	overflow: hidden;
	line-height: 0;
}

.wave-bottom svg {
	position: relative;
	display: block;
	width: calc(100% + 1.3px);
	height: 40px;
}

/* ---- Confetti Animation ---- */
@keyframes confettiFall {
	0% { transform: translateY(-20px) rotate(0deg); opacity: 1; }
	100% { transform: translateY(300px) rotate(720deg); opacity: 0; }
}

.confetti-piece {
	position: fixed;
	width: 10px;
	height: 10px;
	border-radius: 2px;
	pointer-events: none;
	z-index: 9999;
	animation: confettiFall 2s ease-out forwards;
}

/* ---- Sticky Add to Cart Bar ---- */
.bp-sticky-cart {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	background: var(--white);
	border-top: 2px solid var(--pink);
	padding: .6rem 1rem;
	box-shadow: 0 -4px 20px rgba(107,79,58,.1);
	z-index: 1030;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

/* ---- Popup Styles ---- */
.bp-popup {
	border: 3px solid var(--pink);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-lg);
}

.bp-popup .modal-header {
	background: linear-gradient(135deg, var(--blush) 0%, var(--pink) 100%);
	border-bottom: 2px solid var(--beige);
	border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.bp-popup .modal-title {
	font-family: var(--font-heading);
	color: var(--choco);
}

/* ---- Scrollbar Styling ---- */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--cream); }
::-webkit-scrollbar-thumb { background: var(--pink); border-radius: var(--radius-pill); }
::-webkit-scrollbar-thumb:hover { background: var(--pink-dark); }

/* ---- Selection Color ---- */
::selection {
	background: var(--pink);
	color: var(--white);
}

/* =========================================================
   NEW CUTE PET BAKERY DESIGN SYSTEM
   ========================================================= */

/* ---- Trust Bar ---- */
.trust-bar {
	background: var(--pink-soft);
	padding: .8rem 0;
	text-align: center;
}
.trust-bar span {
	font-family: var(--font-heading);
	font-size: .85rem;
	color: var(--text);
	margin: 0 1.2rem;
	display: inline-block;
}
.trust-bar i {
	color: var(--pink);
	margin-right: .3rem;
}

/* ---- Hero Redesign ---- */
.bp-hero-v2 {
	background: linear-gradient(160deg, #fff8f8 0%, #ffe4ec 50%, #ffc0d0 100%);
	padding: 3rem 0 4rem;
	position: relative;
	overflow: hidden;
}
.bp-hero-v2 .hero-badge-v2 {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	background: var(--white);
	color: var(--pink);
	padding: .5rem 1.2rem;
	border-radius: var(--radius-pill);
	font-family: var(--font-heading);
	font-size: .9rem;
	font-weight: 600;
	box-shadow: var(--shadow-sm);
	margin-bottom: 1.5rem;
	border: 1px solid #d6c1c5;
}
.bp-hero-v2 .hero-title-v2 {
	font-family: var(--font-headline);
	font-size: clamp(2.2rem, 6vw, 4rem);
	color: var(--pink);
	line-height: 1.15;
	margin-bottom: 1rem;
}
.bp-hero-v2 .hero-title-v2 span {
	color: var(--pink-dark);
}
.bp-hero-v2 .hero-subtitle-v2 {
	font-size: 1.05rem;
	color: var(--text-light);
	max-width: 460px;
	margin-bottom: 1.8rem;
	line-height: 1.7;
}
.bp-hero-v2 .hero-img-wrap-v2 {
	position: relative;
	background: var(--white);
	border-radius: var(--radius-xl);
	padding: 1.5rem;
	box-shadow: var(--shadow-lg);
	transform: rotate(-2deg);
	transition: transform .3s ease;
}
.bp-hero-v2 .hero-img-wrap-v2:hover {
	transform: rotate(0deg) scale(1.02);
}
.bp-hero-v2 .hero-img-wrap-v2 img {
	border-radius: var(--radius-lg);
	height: 320px;
	width: 100%;
	object-fit: cover;
	object-position: center;
	background: #ececec; /* matches banner's soft grey backdrop so any side space blends seamlessly */
	display: block;
}
.hero-sticker-v2 {
	position: absolute;
	background: var(--pink);
	color: var(--white);
	padding: .5rem 1rem;
	border-radius: var(--radius-pill);
	font-family: var(--font-accent);
	font-size: .85rem;
	box-shadow: var(--shadow-sm);
	z-index: 3;
}

/* Offset for hash-scroll so the sticky navbar doesn't overlap the section title */
[id^="cat_"] {
	scroll-margin-top: 90px;
}

/* ---- Cute Section Header ---- */
.bp-section-v2 {
	padding: 4rem 0;
	position: relative;
}

/* Stabilize Best Sellers grid: equal-height cards and no overlap with next section */
.home-best .row.g-4 > [class*='col-'] { display: flex; }
.home-best .bp-product-card { width: 100%; }
.bp-section-header-v2 {
	text-align: center;
	margin-bottom: 2.5rem;
}
.bp-section-label {
	display: inline-block;
	background: var(--pink-soft);
	color: var(--pink);
	font-family: var(--font-body);
	font-size: .8rem;
	font-weight: 700;
	padding: .35rem 1rem;
	border-radius: var(--radius-pill);
	margin-bottom: .75rem;
	letter-spacing: 1px;
	text-transform: uppercase;
	border: 1px solid #d6c1c5;
}
.bp-section-title-v2 {
	font-family: var(--font-headline);
	font-size: clamp(1.6rem, 4vw, 2.6rem);
	color: var(--pink);
	margin-bottom: .5rem;
}
.bp-section-title-v2 span {
	color: var(--pink-dark);
}
.bp-section-lead-v2 {
	color: var(--text-light);
	font-size: 1.05rem;
	max-width: 500px;
	margin: 0 auto;
}

/* ---- Feature Cards V2 ---- */
.bp-feature-v2 {
	background: var(--white);
	border: 2px solid var(--pink-soft);
	border-radius: var(--radius-lg);
	padding: 2rem 1.5rem;
	text-align: center;
	transition: all .3s ease;
	height: 100%;
}
.bp-feature-v2:hover {
	border-color: var(--pink);
	transform: translateY(-6px);
	box-shadow: 0 12px 30px rgba(255,135,225,.15);
}
.bp-feature-v2 .feature-icon-v2 {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--pink-soft);
	color: var(--pink);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	margin: 0 auto 1rem;
	transition: all .3s ease;
}
.bp-feature-v2:hover .feature-icon-v2 {
	background: var(--pink);
	color: var(--white);
	transform: scale(1.1) rotate(-5deg);
}
.bp-feature-v2 h5 {
	font-family: var(--font-heading);
	font-size: 1.15rem;
	color: var(--text);
	margin-bottom: .5rem;
}
.bp-feature-v2 p {
	font-size: .9rem;
	color: var(--text-light);
	margin: 0;
}

/* ---- Product Cards V2 ---- */
.bp-product-v2 {
	background: var(--white);
	border: 1px solid #d6c1c5;
	border-radius: var(--radius-md);
	overflow: hidden;
	transition: all .25s ease;
	height: 100%;
	display: flex;
	flex-direction: column;
	box-shadow: var(--shadow-sm);
}
.bp-product-v2:hover {
	border-color: var(--pink);
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
}
.bp-product-v2 .product-img-v2 {
	position: relative;
	padding: .75rem .75rem 0 .75rem;
	background: var(--pink-soft);
}
.bp-product-v2 .product-img-v2 img {
	height: 180px;
	width: 100%;
	object-fit: cover;
	border-radius: var(--radius-sm);
}
.bp-product-v2 .product-body-v2 {
	padding: 1.2rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.bp-product-v2 .product-body-v2 .category-tag {
	display: inline-block;
	background: var(--pink-soft);
	color: var(--pink);
	font-size: .72rem;
	font-weight: 700;
	padding: .2rem .7rem;
	border-radius: var(--radius-pill);
	margin-bottom: .5rem;
	text-transform: uppercase;
	letter-spacing: .5px;
}
.bp-product-v2 .product-body-v2 h5 {
	font-family: var(--font-heading);
	font-size: 1.05rem;
	color: var(--text);
	margin-bottom: .3rem;
}
.bp-product-v2 .product-body-v2 .price-v2 {
	font-family: var(--font-heading);
	font-size: 1.15rem;
	color: var(--pink);
	font-weight: 700;
	margin-bottom: .8rem;
}
.bp-product-v2 .product-body-v2 .btn-add-v2 {
	margin-top: auto;
	background: var(--pink);
	color: var(--white);
	border: none;
	border-radius: var(--radius-sm);
	padding: .6rem 1.2rem;
	font-family: var(--font-body);
	font-size: .85rem;
	font-weight: 600;
	transition: all .2s ease;
	width: 100%;
	box-shadow: var(--shadow-sm);
}
.bp-product-v2 .product-body-v2 .btn-add-v2:hover {
	background: var(--pink-dark);
	box-shadow: var(--shadow-md);
}

/* ---- Category Circles ---- */
.bp-category-circle {
	text-align: center;
	transition: all .25s ease;
}
.bp-category-circle:hover {
	transform: translateY(-4px);
}
.bp-category-circle .circle-wrap {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: var(--pink-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto .8rem;
	transition: all .25s ease;
	border: 2px solid transparent;
}
.bp-category-circle:hover .circle-wrap {
	background: var(--pink);
	border-color: var(--pink-soft);
}
.bp-category-circle .circle-wrap i {
	font-size: 1.8rem;
	color: var(--pink);
	transition: all .25s ease;
}
.bp-category-circle:hover .circle-wrap i {
	color: var(--white);
}
.bp-category-circle h6 {
	font-family: var(--font-body);
	font-size: .95rem;
	color: var(--text);
	margin: 0;
	font-weight: 500;
}

/* ---- Review Cards V2 ---- */
.bp-review-v2 {
	background: var(--white);
	border: 1px solid #d6c1c5;
	border-radius: var(--radius-md);
	padding: 1.8rem;
	transition: all .25s ease;
	height: 100%;
	box-shadow: var(--shadow-sm);
}
.bp-review-v2:hover {
	border-color: var(--pink);
	box-shadow: var(--shadow-md);
}
.bp-review-v2 .stars-v2 {
	color: #ffc107;
	font-size: .9rem;
	margin-bottom: .8rem;
}
.bp-review-v2 .quote-v2 {
	font-size: .95rem;
	color: var(--text);
	font-style: italic;
	margin-bottom: 1.2rem;
	line-height: 1.7;
}
.bp-review-v2 .reviewer-v2 {
	display: flex;
	align-items: center;
	gap: .8rem;
}
.bp-review-v2 .reviewer-v2 img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
}
.bp-review-v2 .reviewer-v2 .name {
	font-family: var(--font-heading);
	font-size: .9rem;
	color: var(--text);
	margin: 0;
}
.bp-review-v2 .reviewer-v2 .dog {
	font-size: .8rem;
	color: var(--pink);
	margin: 0;
}

/* ---- Cute Banner ---- */
.bp-cute-banner {
	background: linear-gradient(135deg, #c2185b, #7c4d8c);
	border-radius: var(--radius-lg);
	padding: 2.5rem 2rem;
	text-align: center;
	color: var(--white);
	position: relative;
	overflow: hidden;
	box-shadow: var(--shadow-md);
}
.bp-cute-banner h3 {
	font-family: var(--font-headline);
	font-size: clamp(1.5rem, 3.5vw, 2.2rem);
	margin-bottom: .5rem;
}
.bp-cute-banner p {
	opacity: .9;
	font-size: 1rem;
	margin-bottom: 1.2rem;
}

/* ---- FAQ V2 ---- */
.bp-faq-v2 .accordion-item {
	background: var(--white);
	border: 1px solid #d6c1c5;
	border-radius: var(--radius-sm);
	margin-bottom: .75rem;
	overflow: hidden;
	box-shadow: var(--shadow-sm);
}
.bp-faq-v2 .accordion-button {
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 1rem;
	color: var(--text);
	background: var(--white);
	padding: 1.2rem 1.5rem;
	box-shadow: none;
}
.bp-faq-v2 .accordion-button:not(.collapsed) {
	background: var(--pink-soft);
	color: var(--pink);
	box-shadow: none;
}
.bp-faq-v2 .accordion-button:focus {
	box-shadow: 0 0 0 3px rgba(194,24,91,0.12);
	border-color: var(--pink);
}
.bp-faq-v2 .accordion-body {
	padding: 0 1.5rem 1.2rem;
	color: var(--text-light);
	font-size: .92rem;
}

/* ---- Newsletter V2 ---- */
.bp-newsletter-v2 {
	background: linear-gradient(135deg, #c2185b, #7c4d8c);
	border-radius: var(--radius-lg);
	padding: 3rem 2rem;
	text-align: center;
	color: var(--white);
	position: relative;
	overflow: hidden;
	box-shadow: var(--shadow-md);
}
.bp-newsletter-v2 h3 {
	font-family: var(--font-headline);
	font-size: 1.8rem;
	margin-bottom: .5rem;
}
.bp-newsletter-v2 p {
	opacity: .9;
	margin-bottom: 1.5rem;
}
.bp-newsletter-v2 .newsletter-form-v2 {
	max-width: 480px;
	margin: 0 auto;
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
	justify-content: center;
}
.bp-newsletter-v2 .newsletter-form-v2 input {
	flex: 1;
	min-width: 220px;
	padding: .85rem 1.2rem;
	border-radius: var(--radius-pill);
	border: 2px solid rgba(255,255,255,.4);
	background: rgba(255,255,255,.15);
	color: var(--white);
	font-size: .95rem;
	outline: none;
	transition: all .25s ease;
}
.bp-newsletter-v2 .newsletter-form-v2 input::placeholder {
	color: rgba(255,255,255,.7);
}
.bp-newsletter-v2 .newsletter-form-v2 input:focus {
	border-color: var(--white);
	background: rgba(255,255,255,.25);
}
.bp-newsletter-v2 .newsletter-form-v2 button {
	background: var(--white);
	color: var(--pink);
	border: none;
	border-radius: var(--radius-pill);
	padding: .85rem 1.8rem;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: .95rem;
	transition: all .25s ease;
}
.bp-newsletter-v2 .newsletter-form-v2 button:hover {
	transform: scale(1.05);
	box-shadow: 0 4px 15px rgba(0,0,0,.1);
}

/* ---- Footer V2 ---- */
.bp-footer-v2 {
	background: var(--white);
	border-top: 1px solid #d6c1c5;
	padding: 3rem 0 1.5rem;
}
.bp-footer-v2 h5 {
	font-family: var(--font-headline);
	font-size: 1.15rem;
	margin-bottom: 1rem;
	color: var(--pink);
}
.bp-footer-v2 p,
.bp-footer-v2 a {
	font-size: .9rem;
	color: var(--text-light);
}
.bp-footer-v2 a:hover {
	color: var(--pink);
}
.bp-footer-v2 .footer-social-v2 a {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--pink-soft);
	border: 1px solid #d6c1c5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	color: var(--pink);
	transition: all .2s ease;
	margin-right: .5rem;
}
.bp-footer-v2 .footer-social-v2 a:hover {
	background: var(--pink);
	color: var(--white);
	transform: translateY(-2px);
	box-shadow: var(--shadow-sm);
}
.bp-footer-v2 .footer-bottom-v2 {
	border-top: 1px solid #d6c1c5;
	margin-top: 2rem;
	padding-top: 1.2rem;
	text-align: center;
	font-size: .82rem;
	color: var(--text-light);
}

/* ---- Products Page Layout Fix ---- */
body[data-page="products"],
body[data-page="categories"] {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

body[data-page="products"] .section,
body[data-page="categories"] .section {
	flex: 1 0 auto;
}

body[data-page="products"] .bp-footer,
body[data-page="categories"] .bp-footer {
	flex-shrink: 0;
	position: relative;
	z-index: 1;
}

/* Ensure product grid rows don't overlap */
[data-render="products_grid"] {
	display: flex;
	flex-wrap: wrap;
}

/* Equal-height product cards with even spacing (matches the homepage grid).
   Spacing comes purely from Bootstrap's row gutters (g-4). The old rules added
   an extra margin-bottom on top of the gutter, which double-spaced the rows and
   made the gaps between products look uneven. */
[data-render="products_grid"] > [class*="col-"],
[data-render="categories_root"] .row > [class*="col-"] {
	display: flex;
}

[data-render="products_grid"] .bp-product-card,
[data-render="categories_root"] .bp-product-card {
	width: 100%;
}

/* Animation Utilities */
@keyframes fadeInUp {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up { animation: fadeInUp .7s ease forwards; }

@keyframes pawWiggle {
	0%, 100% { transform: rotate(0deg); }
	25% { transform: rotate(-12deg); }
	75% { transform: rotate(8deg); }
}

@keyframes float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}
.float-anim { animation: float 3s ease-in-out infinite; }

/* Mobile */
@media (max-width: 991px) {
	.bp-hero-v2 { padding: 2rem 0 3rem; }
	.bp-hero-v2 .hero-img-wrap-v2 img { height: 220px; }
	.bp-section-v2 { padding: 2.5rem 0; }
}

@keyframes shake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-5px); }
	75% { transform: translateX(5px); }
}
.animate-shake { animation: shake .4s ease; }

/* Product Detail Carousel */
#pd_image_carousel .carousel-control-prev,
#pd_image_carousel .carousel-control-next {
	width: 44px;
	height: 44px;
	background: rgba(255,255,255,.85);
	border-radius: 50%;
	top: 50%;
	transform: translateY(-50%);
	opacity: 1;
	box-shadow: var(--shadow-sm);
}
#pd_image_carousel .carousel-control-prev { left: 12px; }
#pd_image_carousel .carousel-control-next { right: 12px; }
#pd_image_carousel .carousel-control-prev-icon,
#pd_image_carousel .carousel-control-next-icon {
	filter: invert(40%) sepia(80%) saturate(800%) hue-rotate(280deg);
	width: 1.2rem;
	height: 1.2rem;
}
#pd_thumbnail_gallery .pd-thumb {
	width: 60px;
	height: 60px;
	border: 2px solid transparent;
	border-radius: 10px;
	overflow: hidden;
	padding: 0;
	cursor: pointer;
	transition: all .2s ease;
	background: var(--white);
}
#pd_thumbnail_gallery .pd-thumb:hover {
	transform: scale(1.05);
	box-shadow: var(--shadow-sm);
}
#pd_thumbnail_gallery .pd-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---- Shelf life ---- */
.pd-shelf { display: flex; flex-direction: column; gap: .75rem; }
.pd-shelf-group { display: flex; flex-direction: column; gap: .4rem; }
.pd-shelf-name {
	font-weight: 700; color: var(--choco); font-size: .95rem;
	display: flex; align-items: center; gap: .4rem;
}
.pd-shelf-name::before { content: "\2731"; color: var(--pink-dark); font-size: .8rem; }
.pd-shelf-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.pd-shelf-chip {
	display: inline-flex; align-items: center; gap: .4rem;
	background: var(--pink-light, #fce7f3); color: var(--pink-dark, #9d174d);
	border: 1px solid #f9a8d4; border-radius: var(--radius-pill, 999px);
	padding: .35rem .7rem; font-size: .85rem; font-weight: 600;
}
.pd-shelf-emoji { font-size: 1.05rem; line-height: 1; }
.pd-shelf-desc { font-size: .82rem; color: var(--text-light, #8a7a70); margin-top: .35rem; line-height: 1.4; }

/* ---- Dispatch timeline ---- */
.pd-urgency {
	background: linear-gradient(90deg, #fff1f5, #ffe4ec);
	border: 1px solid #f9a8d4; color: #9d174d;
	border-radius: var(--radius-md, 12px);
	padding: .6rem .85rem; font-size: .9rem; margin-bottom: .75rem;
}
.pd-urgency i { color: var(--pink-dark, #9d174d); }
.pd-timeline { width: 100%; }
.pd-tl { display: flex; align-items: flex-start; }
.pd-tl-step { display: flex; flex-direction: column; align-items: center; text-align: center; flex: 0 0 auto; width: 5.5rem; }
.pd-tl-dot {
	width: 16px; height: 16px; border-radius: 50%;
	background: var(--pink, #ec4899); border: 3px solid #fff;
	box-shadow: 0 0 0 2px var(--pink, #ec4899); margin-bottom: .4rem;
}
.pd-tl-dot-end { background: #16a34a; box-shadow: 0 0 0 2px #16a34a; }
.pd-tl-bar { flex: 1 1 auto; height: 3px; background: linear-gradient(90deg, var(--pink, #ec4899), #16a34a); margin-top: 7px; border-radius: 2px; }
.pd-tl-date { font-weight: 700; color: var(--choco, #3f2a1e); font-size: .82rem; line-height: 1.15; }
.pd-tl-label { color: var(--text-light, #8a7a70); font-size: .72rem; text-transform: uppercase; letter-spacing: .3px; margin-top: .15rem; }
@media (max-width: 420px) {
	.pd-tl-step { width: 4.5rem; }
	.pd-tl-date { font-size: .74rem; }
}

/* ===================== Product Detail — Material Polish ===================== */
.pd-detail {
	border: none;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
	background:
		radial-gradient(900px 320px at 100% -12%, var(--pink-soft), transparent 62%),
		var(--white);
	overflow: hidden;
}

/* --- Image gallery --- */
.pd-detail #pd_image_carousel {
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-md);
	background: var(--pink-soft);
}
.pd-detail #pd_image_carousel img { border-radius: var(--radius-lg) !important; }
.pd-detail .carousel-control-prev-icon,
.pd-detail .carousel-control-next-icon {
	background-color: rgba(194, 24, 91, .85);
	border-radius: 50%;
	padding: 1.1rem;
	background-size: 42%;
}
.pd-detail #pd_thumbnail_gallery .pd-thumb {
	box-shadow: var(--shadow-sm);
}
.pd-detail #pd_thumbnail_gallery .pd-thumb:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-pink);
}

/* --- Title & meta --- */
.pd-detail #pd_name {
	font-family: var(--font-heading);
	font-size: clamp(1.6rem, 3vw, 2.25rem);
	color: var(--choco);
	line-height: 1.15;
	letter-spacing: .3px;
}
.pd-detail #pd_tagline { color: var(--text-light); font-size: 1rem; }
.pd-detail .badge-soft {
	background: var(--pink-light);
	color: var(--pink-dark);
	border-radius: var(--radius-pill);
	padding: .4rem .9rem;
	font-weight: 600;
	font-size: .78rem;
	letter-spacing: .2px;
}

/* --- Price block --- */
.pd-detail .pd-price-block {
	background: linear-gradient(135deg, var(--pink-soft), #fff);
	border: 1px solid var(--pink-light);
	border-radius: var(--radius-md);
	padding: .85rem 1.15rem;
	margin-bottom: 1.25rem !important;
	flex-wrap: wrap;
}
.pd-detail .pd-price-block #pd_price {
	font-family: var(--font-heading);
	font-size: 2rem;
	color: var(--pink-dark);
	font-weight: 700;
}
.pd-detail .pd-price-block #pd_mrp { font-size: 1.05rem; color: #9a8b8e; }

/* --- Info cards (description / ingredients / allergy / shelf) --- */
.pd-detail .pd-info {
	background: var(--cream);
	border: 1px solid var(--md-outline-variant, #d6c1c5);
	border-radius: var(--radius-md);
	padding: 1rem 1.15rem;
	margin-bottom: 1rem !important;
}
.pd-detail .pd-info h2 {
	font-family: var(--font-heading);
	color: var(--pink-dark);
	font-size: .98rem;
	letter-spacing: .3px;
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .55rem;
}
.pd-detail .pd-info p { color: var(--text-light); line-height: 1.6; font-size: .92rem; }

/* --- Option selectors --- */
.pd-detail .form-label {
	font-weight: 600;
	color: var(--choco);
	font-size: .9rem;
	margin-bottom: .35rem;
}
.pd-detail .form-select {
	border-radius: var(--radius-sm);
	border: 1.5px solid var(--md-outline-variant, #d6c1c5);
	padding: .6rem .9rem;
	font-size: .95rem;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.pd-detail .form-select:focus {
	border-color: var(--pink);
	box-shadow: 0 0 0 .2rem rgba(194, 24, 91, .15);
}

/* --- Call-to-action buttons --- */
.pd-detail .pd-cta-row {
	margin-top: .75rem;
	gap: .75rem;
}
.pd-detail .pd-cta-row .btn {
	flex: 1 1 auto;
	border-radius: var(--radius-pill);
	padding: .78rem 1.5rem;
	font-weight: 600;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.pd-detail .btn-primary {
	background: var(--pink);
	border-color: var(--pink);
	box-shadow: var(--shadow-pink);
}
.pd-detail .btn-primary:hover {
	background: var(--pink-dark);
	border-color: var(--pink-dark);
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(194, 24, 91, .28);
}
.pd-detail .btn-outline-primary {
	color: var(--pink);
	border: 2px solid var(--pink);
	background: transparent;
}
.pd-detail .btn-outline-primary:hover {
	background: var(--pink);
	color: var(--white);
	transform: translateY(-2px);
}

@media (min-width: 992px) {
	/* Keep the buy panel in view while scrolling long descriptions */
	.pd-detail .row > .col-lg-6:first-child { position: sticky; top: 96px; }
}
@media (max-width: 575px) {
	.pd-detail .pd-cta-row .btn { flex: 1 1 100%; }
}
