/*
Theme Name:   PawPress
Theme URI:    https://example.com/pawpress
Author:       Tom DeMartino
Author URI:   https://example.com
Description:  A magazine-style pet care theme inspired by editorial pet publications. Built for Elementor: registers all Elementor Theme Builder locations, ships custom Elementor widgets (article grids, section headings, stats bar, newsletter CTA), and includes importable section templates. Works standalone with classic WordPress templates for the homepage, category hubs, and articles.
Version:      1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  pawpress
Tags:         blog, news, two-columns, custom-logo, custom-menu, featured-images, full-width-template, theme-options, translation-ready
*/

/* =========================================================
   1. DESIGN TOKENS
   ========================================================= */
:root {
	--pp-teal:        #1d7a74;
	--pp-teal-dark:   #145550;
	--pp-teal-soft:   #4d9d97;
	--pp-coral:       #ef8a68;
	--pp-coral-dark:  #d96f4c;
	--pp-ink:         #26302e;
	--pp-ink-soft:    #5a6664;
	--pp-mint:        #e7f2f0;
	--pp-mint-deep:   #d5e9e6;
	--pp-cream:       #faf7f2;
	--pp-line:        #e3e6e5;
	--pp-white:       #ffffff;
	/* pastel image frames, rotated per card */
	--pp-frame-1:     #b9dcd8;
	--pp-frame-2:     #cfe3b4;
	--pp-frame-3:     #e9e094;
	--pp-frame-4:     #f6d8c6;

	--pp-font-serif:  "Lora", Georgia, "Times New Roman", serif;
	--pp-font-sans:   "Source Sans 3", "Helvetica Neue", Arial, sans-serif;

	--pp-max:         1200px;
	--pp-radius:      2px;
	--pp-shadow:      0 1px 4px rgba(38, 48, 46, 0.10);
	--pp-shadow-lift: 0 10px 30px rgba(38, 48, 46, 0.12);
}

/* =========================================================
   2. BASE
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--pp-white);
	color: var(--pp-ink);
	font-family: var(--pp-font-sans);
	font-size: 17px;
	line-height: 1.6;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--pp-teal); text-decoration: none; }
a:hover { color: var(--pp-teal-dark); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--pp-font-serif);
	font-weight: 600;
	line-height: 1.2;
	color: var(--pp-ink);
	margin: 0 0 0.5em;
}

h1 { font-size: clamp(2rem, 4.5vw, 3rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
h3 { font-size: 1.35rem; }

.pp-container {
	max-width: var(--pp-max);
	margin: 0 auto;
	padding: 0 24px;
}

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute;
}
.screen-reader-text:focus {
	clip: auto; clip-path: none; height: auto; width: auto;
	background: var(--pp-white); color: var(--pp-teal);
	display: block; font-size: 0.9rem; font-weight: 700;
	left: 8px; top: 8px; line-height: normal; padding: 14px 22px;
	z-index: 100000; box-shadow: var(--pp-shadow-lift);
}

/* =========================================================
   3. HEADER
   ========================================================= */
.pp-header {
	background: var(--pp-white);
	position: relative;
	z-index: 500;
}

.pp-header__top {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 14px 24px;
	max-width: var(--pp-max);
	margin: 0 auto;
}

.pp-brand { display: flex; align-items: center; gap: 12px; }

.pp-brand__mark {
	width: 54px; height: 54px; flex: 0 0 auto;
	color: var(--pp-coral);
}

.pp-brand__text { line-height: 1.1; }

.pp-brand__name {
	font-family: var(--pp-font-serif);
	font-size: 1.7rem;
	font-weight: 700;
	color: var(--pp-ink);
	letter-spacing: -0.01em;
	margin: 0;
}
.pp-brand__name a { color: inherit; }
.pp-brand__name .accent { color: var(--pp-coral); text-transform: uppercase; letter-spacing: 0.04em; }

.pp-brand__tagline {
	font-family: var(--pp-font-serif);
	font-style: italic;
	font-size: 0.8rem;
	color: var(--pp-ink-soft);
	margin: 2px 0 0;
}

.pp-header__utils {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 20px;
}

.pp-newsletter-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pp-teal);
}

.pp-search-form { display: flex; align-items: center; gap: 10px; }

.pp-search-form__label {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--pp-ink);
}

.pp-search-form input[type="search"] {
	width: 230px;
	padding: 9px 12px;
	border: 1px solid var(--pp-line);
	border-radius: var(--pp-radius);
	font-family: var(--pp-font-sans);
	font-size: 0.9rem;
	color: var(--pp-ink);
}
.pp-search-form input[type="search"]:focus {
	outline: 2px solid var(--pp-teal);
	outline-offset: -1px;
}

.pp-search-form button {
	background: var(--pp-teal);
	color: var(--pp-white);
	border: 0;
	padding: 9px 12px;
	border-radius: var(--pp-radius);
	cursor: pointer;
	line-height: 0;
}
.pp-search-form button:hover { background: var(--pp-teal-dark); }

/* Primary nav bar */
.pp-nav {
	border-top: 1px solid var(--pp-line);
	border-bottom: 1px solid var(--pp-line);
	background: var(--pp-white);
	position: sticky;
	top: 0;
	z-index: 400;
}
.pp-nav.is-stuck { box-shadow: var(--pp-shadow); }

.pp-nav__list {
	list-style: none;
	margin: 0 auto;
	padding: 0 24px;
	max-width: var(--pp-max);
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 4px;
}

.pp-nav__list > li { position: relative; }

.pp-nav__list > li > a {
	display: block;
	padding: 14px 18px;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pp-ink);
}
.pp-nav__list > li > a:hover,
.pp-nav__list > li.current-menu-item > a {
	color: var(--pp-teal);
	box-shadow: inset 0 -3px 0 var(--pp-teal);
}

/* dropdowns */
.pp-nav__list ul {
	list-style: none;
	margin: 0;
	padding: 8px 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 230px;
	background: var(--pp-white);
	border: 1px solid var(--pp-line);
	box-shadow: var(--pp-shadow-lift);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: all 0.18s ease;
	z-index: 500;
}
.pp-nav__list li:hover > ul,
.pp-nav__list li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.pp-nav__list ul a {
	display: block;
	padding: 9px 18px;
	font-size: 0.9rem;
	color: var(--pp-ink);
}
.pp-nav__list ul a:hover { color: var(--pp-teal); background: var(--pp-mint); }

/* Mobile toggle */
.pp-nav-toggle {
	display: none;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 10px;
	color: var(--pp-ink);
}

@media (max-width: 900px) {
	.pp-search-form input[type="search"] { width: 140px; }
	.pp-newsletter-link span { display: none; }
}

@media (max-width: 720px) {
	.pp-nav-toggle { display: block; margin-left: auto; }
	.pp-search-form { display: none; }
	.pp-nav__list {
		display: none;
		flex-direction: column;
		gap: 0;
		padding: 0;
	}
	.pp-nav.is-open .pp-nav__list { display: flex; }
	.pp-nav__list > li > a { padding: 13px 24px; }
	.pp-nav__list ul {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		border: 0;
		box-shadow: none;
		padding-left: 16px;
		display: none;
	}
	.pp-nav__list li.is-sub-open > ul { display: block; }
}

/* =========================================================
   4. CARDS + GRIDS
   ========================================================= */
.pp-grid {
	display: grid;
	gap: 36px 28px;
}
.pp-grid--3 { grid-template-columns: repeat(3, 1fr); }
.pp-grid--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 980px) {
	.pp-grid--3, .pp-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.pp-grid--3, .pp-grid--4 { grid-template-columns: 1fr; }
}

.pp-card { position: relative; }

.pp-card__media {
	position: relative;
	margin-bottom: 16px;
	overflow: hidden;
}

/* pastel frame effect: colored block behind/around the image */
.pp-card--framed .pp-card__media {
	padding: 12px 12px 20px;
}
.pp-card--framed:nth-child(4n+1) .pp-card__media { background: var(--pp-frame-1); }
.pp-card--framed:nth-child(4n+2) .pp-card__media { background: var(--pp-frame-2); }
.pp-card--framed:nth-child(4n+3) .pp-card__media { background: var(--pp-frame-3); }
.pp-card--framed:nth-child(4n+4) .pp-card__media { background: var(--pp-frame-4); }

.pp-card__media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform 0.35s ease;
}
.pp-card:hover .pp-card__media img { transform: scale(1.03); }

.pp-eyebrow {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pp-teal);
	margin-bottom: 8px;
}

.pp-card__title {
	font-size: 1.28rem;
	line-height: 1.25;
	margin: 0 0 8px;
}
.pp-card__title a { color: var(--pp-ink); }
.pp-card__title a:hover { color: var(--pp-teal-dark); }

/* stretch the whole card into a click target */
.pp-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.pp-byline {
	font-size: 0.85rem;
	color: var(--pp-ink-soft);
}
.pp-byline a { position: relative; z-index: 2; color: var(--pp-ink-soft); }
.pp-byline a:hover { color: var(--pp-teal); }

/* =========================================================
   5. SECTION HEADINGS
   ========================================================= */
.pp-section { padding: 56px 0; }
.pp-section--tight { padding: 32px 0; }

.pp-section-heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 0 0 40px;
	text-align: center;
}
.pp-section-heading h2 {
	font-size: clamp(1.7rem, 3.4vw, 2.3rem);
	margin: 0;
}
.pp-section-heading--left { justify-content: flex-start; text-align: left; }

.pp-section-heading__arrow {
	color: var(--pp-coral);
	line-height: 0;
	transition: transform 0.2s ease;
}
.pp-section-heading a:hover .pp-section-heading__arrow,
.pp-section-heading__arrow:hover { transform: translateX(5px); }

/* =========================================================
   6. HOMEPAGE — STATS BAR
   ========================================================= */
.pp-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	max-width: 960px;
	margin: 0 auto;
	padding: 36px 24px 20px;
}
.pp-stats__item {
	text-align: center;
	padding: 0 20px;
	border-left: 1px solid var(--pp-line);
}
.pp-stats__item:first-child { border-left: 0; }

.pp-stats__icon { color: var(--pp-coral); margin-bottom: 10px; }
.pp-stats__icon svg { margin: 0 auto; }

.pp-stats__number {
	display: block;
	font-family: var(--pp-font-serif);
	font-weight: 700;
	font-size: 1.25rem;
	background: linear-gradient(transparent 55%, var(--pp-frame-4) 55%);
	width: fit-content;
	margin: 0 auto;
	padding: 0 4px;
}
.pp-stats__label {
	font-family: var(--pp-font-serif);
	font-size: 0.92rem;
	color: var(--pp-ink);
}

@media (max-width: 720px) {
	.pp-stats { grid-template-columns: repeat(2, 1fr); row-gap: 26px; }
	.pp-stats__item:nth-child(3) { border-left: 0; }
}

/* =========================================================
   7. HOMEPAGE — HERO
   ========================================================= */
.pp-hero { padding: 20px 0 0; }

.pp-hero__media {
	position: relative;
	max-width: var(--pp-max);
	margin: 0 auto;
}
.pp-hero__media img {
	width: 100%;
	aspect-ratio: 21 / 9;
	object-fit: cover;
}

.pp-hero__card {
	position: relative;
	max-width: 620px;
	margin: -110px auto 0;
	background: var(--pp-white);
	padding: 34px 44px 40px;
	text-align: center;
}
.pp-hero__card .pp-eyebrow { margin-bottom: 12px; }
.pp-hero__title {
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	margin: 0;
}
.pp-hero__title a { color: var(--pp-ink); }
.pp-hero__title a:hover { color: var(--pp-teal-dark); }

.pp-hero__rule {
	width: 70px;
	height: 3px;
	border: 0;
	background: var(--pp-mint-deep);
	margin: 26px auto 0;
}

@media (max-width: 720px) {
	.pp-hero__media img { aspect-ratio: 4 / 3; }
	.pp-hero__card { margin: -60px 16px 0; padding: 24px 22px 30px; }
}

/* =========================================================
   8. BAND — VETERINARY REVIEW BOARD
   ========================================================= */
.pp-band {
	background:
		radial-gradient(circle at 12% 20%, rgba(255,255,255,0.5) 0 6px, transparent 7px),
		radial-gradient(circle at 78% 70%, rgba(255,255,255,0.5) 0 5px, transparent 6px),
		var(--pp-mint);
	padding: 64px 0;
}

.pp-review-board {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: 48px;
	align-items: center;
}

.pp-review-board__intro { text-align: center; }
.pp-review-board__intro h2 {
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-family: var(--pp-font-sans);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--pp-ink);
}
.pp-review-board__intro p {
	font-size: 0.98rem;
	color: var(--pp-ink-soft);
	max-width: 420px;
	margin: 14px auto;
}

.pp-process {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 190px));
	gap: 16px 30px;
	justify-content: center;
	margin-top: 28px;
}
.pp-process__step {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--pp-font-serif);
	font-size: 1.1rem;
}
.pp-process__num {
	flex: 0 0 auto;
	width: 30px; height: 30px;
	border-radius: 50%;
	background: var(--pp-teal);
	color: var(--pp-white);
	font-family: var(--pp-font-sans);
	font-size: 0.85rem;
	font-weight: 700;
	display: grid;
	place-items: center;
}

.pp-board-title { text-align: center; margin-bottom: 8px; }
.pp-board-title h2 { font-size: 1.6rem; margin-bottom: 6px; }
.pp-board-title a {
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.pp-board-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
	margin-top: 20px;
}

.pp-board-card {
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--pp-white);
	border-bottom: 3px solid var(--pp-teal);
	box-shadow: var(--pp-shadow);
	padding: 16px;
}
.pp-board-card img {
	width: 56px; height: 56px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
}
.pp-board-card__name {
	font-family: var(--pp-font-serif);
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 3px;
}
.pp-board-card__role {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pp-teal);
}

@media (max-width: 860px) {
	.pp-review-board { grid-template-columns: 1fr; }
	.pp-board-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   9. NEWSLETTER BAND
   ========================================================= */
.pp-newsletter {
	max-width: 820px;
	margin: 0 auto;
	padding: 44px 24px;
	display: flex;
	align-items: center;
	gap: 28px;
	position: relative;
}
/* corner ticks */
.pp-newsletter::before,
.pp-newsletter::after {
	content: "";
	position: absolute;
	width: 26px; height: 26px;
	border: 2px solid var(--pp-mint-deep);
}
.pp-newsletter::before { top: 20px; left: 0; border-right: 0; border-bottom: 0; }
.pp-newsletter::after { bottom: 20px; right: 0; border-left: 0; border-top: 0; }

.pp-newsletter__icon { flex: 0 0 64px; color: var(--pp-teal); }

.pp-newsletter__copy h2 {
	font-size: 1.4rem;
	margin: 0 0 4px;
}
.pp-newsletter__copy p {
	margin: 0;
	font-family: var(--pp-font-serif);
	color: var(--pp-ink-soft);
}

.pp-newsletter__form {
	margin-left: auto;
	display: flex;
	gap: 10px;
	flex: 0 0 auto;
}
.pp-newsletter__form input[type="email"] {
	padding: 12px 14px;
	border: 1px solid var(--pp-line);
	border-radius: var(--pp-radius);
	font-family: var(--pp-font-sans);
	min-width: 210px;
}

.pp-btn,
.pp-newsletter__form button {
	display: inline-block;
	background: var(--pp-teal);
	color: var(--pp-white);
	border: 0;
	padding: 12px 26px;
	font-family: var(--pp-font-sans);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-radius: var(--pp-radius);
	cursor: pointer;
	transition: background 0.15s ease;
}
.pp-btn:hover,
.pp-newsletter__form button:hover { background: var(--pp-teal-dark); color: var(--pp-white); }

.pp-btn--coral { background: var(--pp-coral); }
.pp-btn--coral:hover { background: var(--pp-coral-dark); }

@media (max-width: 860px) {
	.pp-newsletter { flex-direction: column; text-align: center; }
	.pp-newsletter__form { margin-left: 0; flex-wrap: wrap; justify-content: center; }
}

/* =========================================================
   10. CATEGORY HUB (archive)
   ========================================================= */
.pp-hub-hero { position: relative; margin-bottom: 40px; }
.pp-hub-hero__media img {
	width: 100%;
	height: 340px;
	object-fit: cover;
}
.pp-hub-hero__media--placeholder {
	height: 340px;
	background: linear-gradient(120deg, var(--pp-mint), var(--pp-mint-deep));
}
.pp-hub-hero__card {
	position: relative;
	max-width: 640px;
	margin: -120px auto 0;
	background: var(--pp-white);
	padding: 42px 48px 10px;
	text-align: center;
}
.pp-hub-hero__card h1 { margin-bottom: 14px; }
.pp-hub-hero__dek {
	font-size: 1rem;
	color: var(--pp-ink-soft);
	margin: 0;
}

/* featured split */
.pp-feature-split {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 44px;
	align-items: center;
	position: relative;
	margin-bottom: 56px;
}
.pp-feature-split__media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.pp-feature-split__title {
	font-size: clamp(1.7rem, 3.6vw, 2.5rem);
	margin: 6px 0 14px;
}
.pp-feature-split__title a { color: var(--pp-ink); }
.pp-feature-split__title a::after { content: ""; position: absolute; inset: 0; }
.pp-feature-split .pp-byline {
	text-transform: uppercase;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--pp-teal);
}

@media (max-width: 860px) {
	.pp-feature-split { grid-template-columns: 1fr; gap: 20px; }
	.pp-hub-hero__card { margin: -70px 16px 0; padding: 26px 22px 6px; }
}

/* filter pills */
.pp-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	border-bottom: 3px solid var(--pp-teal);
	padding-bottom: 0;
	margin: 26px 0 34px;
}
.pp-pills a {
	display: inline-block;
	padding: 10px 20px;
	background: var(--pp-mint);
	color: var(--pp-ink);
	font-size: 0.92rem;
	font-weight: 600;
	border-radius: 3px 3px 0 0;
}
.pp-pills a:hover { background: var(--pp-mint-deep); }
.pp-pills a.is-active {
	background: var(--pp-teal);
	color: var(--pp-white);
}

/* pagination */
.pp-pagination {
	display: flex;
	justify-content: center;
	gap: 6px;
	padding: 40px 0 10px;
}
.pp-pagination .page-numbers {
	display: inline-block;
	min-width: 42px;
	text-align: center;
	padding: 9px 12px;
	border: 1px solid var(--pp-line);
	color: var(--pp-ink);
	font-weight: 600;
	border-radius: var(--pp-radius);
}
.pp-pagination .page-numbers.current,
.pp-pagination .page-numbers:hover {
	background: var(--pp-teal);
	border-color: var(--pp-teal);
	color: var(--pp-white);
}

/* =========================================================
   11. SINGLE ARTICLE
   ========================================================= */
.pp-article { padding: 44px 0 30px; }

.pp-article__header {
	max-width: 780px;
	margin: 0 auto 30px;
	text-align: center;
}
.pp-article__title { margin-bottom: 14px; }
.pp-article__dek {
	font-size: 1.15rem;
	color: var(--pp-ink-soft);
	margin: 0 0 16px;
}
.pp-article__meta {
	font-size: 0.9rem;
	color: var(--pp-ink-soft);
}
.pp-article__meta a {
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-size: 0.8rem;
}
.pp-article__meta .sep {
	display: inline-block;
	margin: 0 10px;
	color: var(--pp-line);
}

.pp-article__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 56px;
	max-width: var(--pp-max);
	margin: 0 auto;
	padding: 0 24px;
}

.pp-article__hero { margin-bottom: 8px; }
.pp-article__hero img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.pp-article__credit {
	font-size: 0.75rem;
	color: var(--pp-ink-soft);
	padding-top: 6px;
}

/* Key takeaways box */
.pp-takeaways {
	border: 1px solid var(--pp-line);
	padding: 26px 30px 20px;
	margin: 34px auto;
	max-width: 620px;
	position: relative;
}
.pp-takeaways__label {
	position: absolute;
	top: -0.75em;
	left: 50%;
	transform: translateX(-50%);
	background: var(--pp-white);
	padding: 0 16px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pp-ink);
	white-space: nowrap;
}
.pp-takeaways ul { margin: 0; padding: 0; list-style: none; }
.pp-takeaways li {
	position: relative;
	padding: 6px 0 6px 24px;
}
.pp-takeaways li::before {
	content: "";
	position: absolute;
	left: 0; top: 0.95em;
	width: 8px; height: 8px;
	background: var(--pp-mint-deep);
}

/* body copy */
.pp-entry {
	font-size: 1.06rem;
	line-height: 1.75;
}
.pp-entry > * { max-width: 680px; }
.pp-entry h2 {
	font-size: 1.65rem;
	margin: 1.6em 0 0.6em;
}
.pp-entry h3 { margin: 1.4em 0 0.5em; }
.pp-entry a { text-decoration: underline; text-underline-offset: 3px; }
.pp-entry ul { list-style: none; padding-left: 6px; }
.pp-entry ul > li {
	position: relative;
	padding: 4px 0 4px 24px;
}
.pp-entry ul > li::before {
	content: "";
	position: absolute;
	left: 0; top: 0.85em;
	width: 8px; height: 8px;
	background: var(--pp-teal-soft);
}
.pp-entry blockquote {
	border-left: 4px solid var(--pp-coral);
	margin: 1.5em 0;
	padding: 4px 0 4px 22px;
	font-family: var(--pp-font-serif);
	font-style: italic;
	color: var(--pp-ink-soft);
}
.pp-entry figcaption {
	font-size: 0.8rem;
	color: var(--pp-ink-soft);
	padding-top: 6px;
}

/* tip callout — reusable via Gutenberg group class or Elementor */
.pp-tip {
	background: var(--pp-cream);
	border-left: 4px solid var(--pp-coral);
	padding: 20px 24px;
	margin: 1.6em 0;
}
.pp-tip strong:first-child {
	display: block;
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pp-coral-dark);
	margin-bottom: 6px;
}

/* sidebar rail */
.pp-rail { min-width: 0; }
.pp-rail .widget { margin-bottom: 36px; }
.pp-rail .widget-title {
	font-family: var(--pp-font-sans);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-bottom: 2px solid var(--pp-teal);
	padding-bottom: 8px;
	margin-bottom: 18px;
}
.pp-rail ul { list-style: none; margin: 0; padding: 0; }
.pp-rail li { padding: 8px 0; border-bottom: 1px solid var(--pp-line); }

@media (max-width: 980px) {
	.pp-article__layout { grid-template-columns: 1fr; gap: 30px; }
}

/* author box */
.pp-author-box {
	display: flex;
	gap: 20px;
	align-items: center;
	border-top: 1px solid var(--pp-line);
	border-bottom: 1px solid var(--pp-line);
	padding: 26px 0;
	margin: 44px 0;
	max-width: 680px;
}
.pp-author-box img { width: 72px; height: 72px; border-radius: 50%; flex: 0 0 auto; }
.pp-author-box__name {
	font-family: var(--pp-font-serif);
	font-weight: 700;
	font-size: 1.05rem;
	margin-bottom: 4px;
}
.pp-author-box__bio { font-size: 0.92rem; color: var(--pp-ink-soft); margin: 0; }

/* related */
.pp-related { padding: 30px 0 60px; }

/* =========================================================
   12. FOOTER
   ========================================================= */
.pp-footer {
	border-top: 1px solid var(--pp-mint-deep);
	padding: 56px 0 0;
	margin-top: 60px;
}

.pp-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 44px;
}

.pp-footer .pp-brand__name { font-size: 1.5rem; }

.pp-footer__about p {
	font-family: var(--pp-font-serif);
	font-size: 0.95rem;
	margin: 16px 0 20px;
}

.pp-footer__social {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 26px;
}
.pp-footer__social span { font-size: 0.9rem; color: var(--pp-ink-soft); }
.pp-footer__social a { color: var(--pp-teal); line-height: 0; }
.pp-footer__social a:hover { color: var(--pp-teal-dark); }

.pp-footer__col h3 {
	font-family: var(--pp-font-sans);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pp-ink-soft);
	margin-bottom: 16px;
}
.pp-footer__col ul { list-style: none; margin: 0; padding: 0; }
.pp-footer__col li { margin-bottom: 12px; }
.pp-footer__col a {
	font-size: 0.88rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--pp-teal-dark);
}
.pp-footer__col a:hover { color: var(--pp-coral-dark); }

.pp-footer__bar {
	border-top: 1px solid var(--pp-line);
	margin-top: 48px;
	padding: 18px 0;
	font-size: 0.85rem;
	color: var(--pp-ink-soft);
}

@media (max-width: 860px) {
	.pp-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.pp-footer__grid { grid-template-columns: 1fr; }
}

/* =========================================================
   13. SEARCH / 404 / GENERIC PAGE
   ========================================================= */
.pp-page-header {
	text-align: center;
	padding: 54px 24px 10px;
	max-width: 760px;
	margin: 0 auto;
}

.pp-notfound {
	text-align: center;
	padding: 90px 24px;
}
.pp-notfound h1 { font-size: clamp(2.4rem, 6vw, 4rem); }
.pp-notfound p { color: var(--pp-ink-soft); max-width: 480px; margin: 14px auto 28px; }

/* =========================================================
   14. ELEMENTOR COMPATIBILITY
   ========================================================= */
/* Full-width template: let Elementor own the canvas edge-to-edge */
.pp-fullwidth-content { width: 100%; }

/* Make Elementor sections inherit theme typography */
.elementor-widget-heading .elementor-heading-title {
	font-family: var(--pp-font-serif);
}

/* Default content width hint for the Elementor kit */
.elementor-section.elementor-section-boxed > .elementor-container {
	max-width: var(--pp-max);
}
