/* ============================================================
   Blog → Puppy promo banners (single posts)
   Scoped under .blog-puppy-* — on-brand (Petland orange #f26322),
   conversion-focused, mobile-first. The product cards are untouched;
   this styles only the CTA banners and the end hero.
   ============================================================ */

/* --- Mid-article inline CTA --------------------------------------- */
.blog-puppy-cta {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin: 2.75rem 0;
	padding: 1.25rem 1.5rem;
	border-radius: 1.1rem;
	background:
		radial-gradient(120% 200% at 0% 50%, rgba(242, 99, 34, .12), transparent 58%),
		linear-gradient(180deg, #fffaf6 0%, #fff3ec 100%);
	border: 1px solid rgba(242, 99, 34, .18);
	box-shadow: 0 16px 40px -26px rgba(242, 99, 34, .65);
}
.blog-puppy-cta__glyph {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.4rem;
	height: 3.4rem;
	border-radius: 50%;
	color: #fff;
	font-size: 1.55rem;
	background: linear-gradient(145deg, #ff8a4c, #f26322);
	box-shadow: 0 10px 20px -8px rgba(242, 99, 34, .75), inset 0 1px 0 rgba(255, 255, 255, .45);
}
.blog-puppy-cta__body {
	flex: 1 1 auto;
	min-width: 0;
}
.blog-puppy-cta__title {
	margin: 0 0 .2rem;
	font-weight: 800;
	font-size: clamp(1.05rem, 1.8vw, 1.25rem);
	line-height: 1.25;
	letter-spacing: -.01em;
	color: #2a2018;
}
.blog-puppy-cta__sub {
	margin: 0;
	font-size: clamp(.875rem, 1.2vw, .95rem);
	line-height: 1.45;
	color: #6b5d52;
}
.blog-puppy-cta__btn {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .7rem 1.3rem;
	border-radius: 999px;
	font-weight: 700;
	font-size: .95rem;
	text-decoration: none;
	white-space: nowrap;
	color: #fff;
	background: linear-gradient(135deg, #ff8a4c, #f26322);
	box-shadow: 0 10px 22px -10px rgba(242, 99, 34, .8);
	transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.blog-puppy-cta__btn:hover,
.blog-puppy-cta__btn:focus-visible {
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 16px 28px -10px rgba(242, 99, 34, .9);
	filter: saturate(1.05);
}
.blog-puppy-cta__btn i { transition: transform .18s ease; }
.blog-puppy-cta__btn:hover i { transform: translateX(3px); }

@media (max-width: 640px) {
	.blog-puppy-cta {
		flex-direction: column;
		text-align: center;
		gap: .9rem;
		padding: 1.4rem 1.15rem;
	}
	.blog-puppy-cta__btn { width: 100%; justify-content: center; }
}

/* --- Injected Promotional Banner spacing ------------------------- */
.blog-puppy-promo { margin: 2.75rem 0; }

/* --- End-of-article section -------------------------------------- */
.blog-puppy-end {
	margin-top: 3rem;
	padding: clamp(2rem, 5vw, 3.5rem) 0 1rem;
	border-top: 1px solid rgba(242, 99, 34, .14);
	background: radial-gradient(80% 120% at 50% 0%, rgba(242, 99, 34, .06), transparent 60%);
}

/* --- End hero ---------------------------------------------------- */
.blog-puppy-hero {
	text-align: center;
	max-width: 44rem;
	margin: 0 auto clamp(2rem, 4vw, 2.75rem);
}
.blog-puppy-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .4rem .9rem;
	margin-bottom: 1rem;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #c2410c;
	background: rgba(242, 99, 34, .1);
	border: 1px solid rgba(242, 99, 34, .2);
}
.blog-puppy-hero__dot {
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: #f26322;
	box-shadow: 0 0 0 0 rgba(242, 99, 34, .5);
	animation: blogPuppyPulse 1.8s ease-out infinite;
}
.blog-puppy-hero__title {
	font-weight: 800;
	font-size: clamp(1.6rem, 4vw, 2.5rem);
	line-height: 1.15;
	letter-spacing: -.02em;
	color: #2a2018;
	margin: 0 0 .65rem;
}
.blog-puppy-hero__title em {
	font-style: normal;
	color: #f26322;
}
.blog-puppy-hero__sub {
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	line-height: 1.55;
	color: #6b5d52;
	margin: 0 auto 1.5rem;
	max-width: 34rem;
}
.blog-puppy-hero__btn {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .85rem 1.7rem;
	border-radius: 999px;
	font-weight: 800;
	font-size: 1rem;
	text-decoration: none;
	color: #fff;
	background: linear-gradient(135deg, #ff8a4c, #f26322);
	box-shadow: 0 16px 30px -12px rgba(242, 99, 34, .85);
	transition: transform .18s ease, box-shadow .18s ease;
}
.blog-puppy-hero__btn:hover,
.blog-puppy-hero__btn:focus-visible {
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 22px 38px -12px rgba(242, 99, 34, .95);
}
.blog-puppy-hero__btn i { transition: transform .18s ease; }
.blog-puppy-hero__btn:hover i { transform: translateX(4px); }

@keyframes blogPuppyPulse {
	0%   { box-shadow: 0 0 0 0 rgba(242, 99, 34, .5); }
	70%  { box-shadow: 0 0 0 .6rem rgba(242, 99, 34, 0); }
	100% { box-shadow: 0 0 0 0 rgba(242, 99, 34, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.blog-puppy-hero__dot { animation: none; }
	.blog-puppy-cta__btn,
	.blog-puppy-hero__btn { transition: none; }
}

/* The mid-article button sits inside .entry-content, where the theme colors <a>
   links a dark orange (`.entry-content a`, which out-specifies a single class).
   Force the button text white over the orange fill so it stays legible. */
.blog-puppy-cta__btn,
.blog-puppy-cta__btn:hover,
.blog-puppy-cta__btn:focus,
.blog-puppy-cta__btn:focus-visible,
.blog-puppy-hero__btn,
.blog-puppy-hero__btn:hover,
.blog-puppy-hero__btn:focus,
.blog-puppy-hero__btn:focus-visible {
	color: #fff !important;
	text-decoration: none !important;
}
