/* =========================================================================
   Pet Planet - Single Blog Post Template
   Scoped under #ppb-main / .ppb-* so it never affects Header, Footer,
   or other pages. Poppins + Pet Planet brand system.
   ========================================================================= */

:root {
	--ppb-royal:  #0D4DB8;
	--ppb-green:  #5BBF21;
	--ppb-deep:   #073B91;
	--ppb-navy:   #12233F;
	--ppb-body:   #536176;
	--ppb-soft:   #F6F9FC;
	--ppb-light:  #EEF5FF;
	--ppb-border: #E5EAF0;
	--ppb-white:  #FFFFFF;
	--ppb-font:   "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--ppb-radius: 16px;
	--ppb-shadow: 0 8px 24px rgba(18, 35, 63, .05);
	--ppb-max:    1220px;
}

/* Reset within our scope only */
#ppb-main.ppb-wrap {
	font-family: var(--ppb-font);
	color: var(--ppb-body);
	max-width: var(--ppb-max);
	margin: 0 auto;
	padding: 0 20px 60px;
	box-sizing: border-box;
	background: var(--ppb-white);
	overflow-x: hidden;
}
#ppb-main *, #ppb-main *::before, #ppb-main *::after { box-sizing: border-box; }
#ppb-main img { max-width: 100%; height: auto; }

/* ---- Breadcrumbs ---- */
.ppb-breadcrumbs { padding: 16px 0 4px; font-size: 13px; }
.ppb-breadcrumbs a, .ppb-crumbs a { color: var(--ppb-royal); text-decoration: none; }
.ppb-breadcrumbs a:hover { text-decoration: underline; }
.ppb-crumbs .ppb-sep { margin: 0 8px; color: #9fb0c4; }
.ppb-crumbs .ppb-current { color: var(--ppb-body); }

/* ---- Hero ---- */
.ppb-hero {
	display: grid;
	grid-template-columns: 54% 46%;
	gap: 40px;
	align-items: center;
	background: var(--ppb-soft);
	border: 1px solid var(--ppb-border);
	border-radius: 18px;
	padding: 34px;
	margin-top: 12px;
	min-height: 360px;
}
.ppb-cat {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	color: var(--ppb-green);
	text-decoration: none;
	margin-bottom: 14px;
}
.ppb-title {
	font-family: var(--ppb-font);
	font-weight: 700;
	font-size: 46px;
	line-height: 1.14;
	color: var(--ppb-navy);
	margin: 0 0 16px;
}
.ppb-excerpt { font-size: 17px; line-height: 1.6; color: var(--ppb-body); margin: 0 0 20px; }
.ppb-meta { display: flex; flex-wrap: wrap; gap: 22px; font-size: 13px; color: var(--ppb-body); }
.ppb-meta-item { display: inline-flex; align-items: center; gap: 7px; }
.ppb-meta-item svg { color: var(--ppb-royal); }

.ppb-hero-media { position: relative; }
.ppb-featured, .ppb-hero-media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 16px;
	display: block;
}

/* ---- Trust strip ---- */
.ppb-trust {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	background: var(--ppb-light);
	border-radius: 14px;
	padding: 16px 20px;
	margin: 22px 0 40px;
}
.ppb-trust-item { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: var(--ppb-navy); }
.ppb-trust-item svg { color: var(--ppb-royal); flex: 0 0 auto; }

/* ---- Body grid: article + sidebar ---- */
.ppb-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 40px;
	align-items: start;
}
.ppb-article { max-width: 820px; }

/* ---- Article typography (styles native the_content output) ---- */
.ppb-article p { font-size: 16.5px; line-height: 1.78; color: var(--ppb-body); margin: 0 0 18px; }
.ppb-article h2 { font-size: 32px; font-weight: 700; color: var(--ppb-navy); line-height: 1.25; margin: 44px 0 16px; }
.ppb-article h3 { font-size: 22px; font-weight: 600; color: var(--ppb-royal); margin: 32px 0 12px; }
.ppb-article h4 { font-size: 19px; font-weight: 600; color: var(--ppb-navy); margin: 26px 0 10px; }
.ppb-article a { color: var(--ppb-royal); text-decoration: none; border-bottom: 1px solid rgba(13,77,184,.3); }
.ppb-article a:hover { border-bottom-color: var(--ppb-royal); }
.ppb-article ul, .ppb-article ol { margin: 0 0 20px; padding-left: 22px; }
.ppb-article li { font-size: 16.5px; line-height: 1.7; color: var(--ppb-body); margin-bottom: 9px; }
.ppb-article img { border-radius: 12px; margin: 26px 0; }
.ppb-article figcaption { font-size: 13.5px; color: var(--ppb-body); text-align: center; margin-top: 8px; }
.ppb-article blockquote {
	background: var(--ppb-light);
	border-left: 4px solid var(--ppb-royal);
	border-radius: 0 10px 10px 0;
	padding: 18px 22px;
	margin: 24px 0;
	color: var(--ppb-navy);
}

/* ---- Tables inside article ---- */
.ppb-article table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 15px; }
.ppb-article table th { background: var(--ppb-royal); color: #fff; text-align: left; padding: 12px 14px; }
.ppb-article table td { padding: 11px 14px; border: 1px solid var(--ppb-border); }
.ppb-article table tr:nth-child(even) td { background: var(--ppb-soft); }
/* keep wide tables usable on mobile */
.ppb-article table { display: block; overflow-x: auto; }

/* ---- Sidebar ---- */
.ppb-sticky { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 20px; }
.ppb-card {
	background: var(--ppb-white);
	border: 1px solid var(--ppb-border);
	border-radius: 16px;
	padding: 22px;
	box-shadow: var(--ppb-shadow);
}
.ppb-card-h { font-size: 17px; font-weight: 600; color: var(--ppb-navy); margin: 0 0 14px; }
.ppb-card-book { background: var(--ppb-deep); border-color: var(--ppb-deep); color: #fff; }
.ppb-card-book h3 { color: #fff; font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.ppb-card-book p { color: rgba(255,255,255,.85); font-size: 14px; line-height: 1.55; margin: 0 0 16px; }
.ppb-card-wa h3 { font-size: 18px; font-weight: 700; color: var(--ppb-navy); margin: 0 0 6px; }
.ppb-card-wa p { font-size: 14px; margin: 0 0 14px; }

/* Buttons */
.ppb-btn {
	display: block; width: 100%; text-align: center;
	padding: 13px 18px; border-radius: 9px;
	font-family: var(--ppb-font); font-weight: 600; font-size: 15px;
	text-decoration: none; margin-bottom: 10px; border: 1px solid transparent;
	transition: opacity .15s ease, background .15s ease;
}
.ppb-btn:last-child { margin-bottom: 0; }
.ppb-btn-green { background: var(--ppb-green); color: #fff; }
.ppb-btn-green:hover { opacity: .9; }
.ppb-btn-outline { background: transparent; border-color: rgba(255,255,255,.55); color: #fff; }
.ppb-btn-outline:hover { background: rgba(255,255,255,.12); }
.ppb-btn-ghost { background: transparent; border-color: rgba(255,255,255,.6); color: #fff; width: auto; display: inline-block; }
.ppb-btn-ghost:hover { background: rgba(255,255,255,.12); }

/* Service list */
.ppb-services { list-style: none; margin: 0; padding: 0; }
.ppb-services li { border-bottom: 1px solid var(--ppb-border); }
.ppb-services li:last-child { border-bottom: 0; }
.ppb-services a { display: block; padding: 10px 0; color: var(--ppb-royal); text-decoration: none; font-size: 14.5px; }
.ppb-services a:hover { color: var(--ppb-deep); }

/* Related posts cards */
.ppb-rellist { display: flex; flex-direction: column; gap: 14px; }
.ppb-relcard { display: flex; gap: 12px; text-decoration: none; align-items: center; }
.ppb-relthumb { flex: 0 0 64px; }
.ppb-relthumb img { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; display: block; }
.ppb-relmeta { display: flex; flex-direction: column; }
.ppb-relcat { font-size: 11px; font-weight: 600; letter-spacing: .04em; color: var(--ppb-green); text-transform: uppercase; }
.ppb-reltitle { font-size: 14px; font-weight: 500; color: var(--ppb-navy); line-height: 1.35; }
.ppb-relcard:hover .ppb-reltitle { color: var(--ppb-royal); }

/* ---- Final CTA ---- */
.ppb-finalcta { background: var(--ppb-deep); border-radius: 18px; margin-top: 50px; padding: 44px 24px; text-align: center; }
.ppb-finalcta-inner { max-width: 640px; margin: 0 auto; }
.ppb-finalcta h2 { color: #fff; font-size: 30px; font-weight: 700; margin: 0 0 12px; }
.ppb-finalcta p { color: rgba(255,255,255,.85); font-size: 16px; line-height: 1.6; margin: 0 0 22px; }
.ppb-finalcta-btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.ppb-finalcta-btns .ppb-btn { width: auto; margin: 0; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1024px) {
	.ppb-title { font-size: 40px; }
	.ppb-body { grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; }
}

/* Stack sidebar below article */
@media (max-width: 900px) {
	.ppb-hero { grid-template-columns: 1fr; gap: 22px; padding: 26px; min-height: 0; }
	.ppb-hero-media { order: -1; }           /* image first concept optional */
	.ppb-body { grid-template-columns: 1fr; gap: 34px; }
	.ppb-sticky { position: static; }
	.ppb-article { max-width: 100%; }
	.ppb-trust { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
	#ppb-main.ppb-wrap { padding: 0 16px 42px; }
	.ppb-title { font-size: 33px; }
	.ppb-excerpt { font-size: 16px; }
	.ppb-article h2 { font-size: 27px; margin-top: 34px; }
	.ppb-article h3 { font-size: 21px; }
	.ppb-finalcta h2 { font-size: 25px; }
	.ppb-finalcta-btns .ppb-btn { width: 100%; }
}

/* Order for mobile: keep hero text before image (title/excerpt/meta first) */
@media (max-width: 900px) {
	.ppb-hero-media { order: 0; }
}

/* Accessibility: visible focus */
#ppb-main a:focus-visible, #ppb-main .ppb-btn:focus-visible { outline: 3px solid var(--ppb-green); outline-offset: 2px; }
