/* Pia Reiser – blog listing, archives, single posts
 * Heading selectors use two classes on purpose: the Elementor kit sets
 * ".elementor-kit-4 h1/h2/h3" to Montserrat bold, which would otherwise win. */

:root {
	--pia-brown: #3f332c;
	--pia-brown-70: rgba(63, 51, 44, 0.7);
	--pia-brown-55: rgba(63, 51, 44, 0.55);
	--pia-brown-15: rgba(63, 51, 44, 0.15);
	--pia-beige: #F1E7D8;
	--pia-cream: #FAF8F2;
	--pia-yellow: #f3df99;
	--pia-serif: "Cormorant Garamond", Georgia, serif;
	--pia-sans: Montserrat, "Helvetica Neue", Arial, sans-serif;
}

/* ---------- layout ---------- */

.pia-inner {
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 40px;
	box-sizing: border-box;
}
.pia-inner--narrow { max-width: 800px; }

.pia-archive,
.pia-single {
	background: var(--pia-cream);
	color: var(--pia-brown);
	font-family: var(--pia-sans);
}

.pia-blog {
	background: var(--pia-cream);
	padding-block: 72px 128px;
	color: var(--pia-brown);
	font-family: var(--pia-sans);
}

/* Hello theme gives links a pink default – keep everything in the brand palette */
.pia-blog a,
.pia-archive a,
.pia-single a:not(.pia-prose a) {
	color: inherit;
	text-decoration: none;
}

/* ---------- small hero (archives) ---------- */

.pia-hero-sm {
	background: var(--pia-beige);
	padding-block: 88px 72px;
}
.pia-eyebrow {
	margin: 24px 0 12px;
	font: 600 11px/1 var(--pia-sans);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--pia-brown-70);
}
.pia-archive .pia-hero-sm__title {
	margin: 0;
	font: 500 64px/1.05 var(--pia-serif);
	letter-spacing: -0.01em;
	color: var(--pia-brown);
}
.pia-hero-sm__desc {
	max-width: 560px;
	margin-top: 20px;
	font-size: 17px;
	line-height: 1.75;
	color: var(--pia-brown-70);
}
.pia-hero-sm__desc p { margin: 0; }

.pia-back {
	display: inline-block;
	font: 600 11px/1 var(--pia-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--pia-brown-70) !important;
	transition: color 0.3s ease, transform 0.3s ease;
}
.pia-back:hover { color: var(--pia-brown) !important; transform: translateX(-4px); }

/* ---------- filters ---------- */

.pia-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 20px;
}
.pia-chip {
	display: inline-flex;
	align-items: center;
	padding: 13px 22px;
	border: 1px solid var(--pia-brown-15);
	border-radius: 999px;
	font: 600 11px/1 var(--pia-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--pia-brown);
	background: transparent;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.pia-chip:hover { border-color: var(--pia-brown); }
.pia-chip.is-active {
	background: var(--pia-brown);
	border-color: var(--pia-brown);
	color: var(--pia-cream) !important;
}

.pia-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 16px;
	margin-bottom: 56px;
}
.pia-tags__label {
	font: 600 11px/1 var(--pia-sans);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--pia-brown-55);
	margin-right: 4px;
}
.pia-tag {
	font-size: 14px;
	color: var(--pia-brown-70) !important;
	text-decoration: underline !important;
	text-decoration-color: transparent !important;
	text-underline-offset: 5px;
	transition: color 0.3s ease, text-decoration-color 0.3s ease;
}
.pia-tag:hover,
.pia-tag.is-active { color: var(--pia-brown) !important; text-decoration-color: currentColor !important; }

/* ---------- grid + cards ---------- */

.pia-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 64px 32px;
}

.pia-card { display: flex; flex-direction: column; gap: 22px; }

.pia-card__media {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 20px;
	background: var(--pia-beige);
}
.pia-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 1.2s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.pia-card:hover .pia-card__img { transform: scale(1.05); }

.pia-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(120% 80% at 20% 10%, rgba(243, 223, 153, 0.55), transparent 60%),
		linear-gradient(160deg, var(--pia-beige), #e6d8c2);
	transition: transform 1.2s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.pia-card__placeholder span {
	font: italic 400 120px/1 var(--pia-serif);
	color: rgba(63, 51, 44, 0.25);
}
.pia-card:hover .pia-card__placeholder { transform: scale(1.05); }

.pia-card__body { display: flex; flex-direction: column; gap: 12px; }

.pia-meta {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	font: 600 11px/1.5 var(--pia-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pia-brown-55);
}
.pia-meta__cat { color: var(--pia-brown) !important; }
.pia-meta__cat:hover { text-decoration: underline !important; text-underline-offset: 4px; }

.pia-card .pia-card__title {
	margin: 0;
	font: 500 30px/1.15 var(--pia-serif);
	color: var(--pia-brown);
}
.pia-card__title a {
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.5s ease;
}
.pia-card:hover .pia-card__title a { background-size: 100% 1px; }

.pia-card__excerpt {
	margin: 0;
	font-size: 15px;
	line-height: 1.75;
	color: var(--pia-brown-70);
}

.pia-card__more {
	align-self: flex-start;
	margin-top: 4px;
	font: 600 11px/1 var(--pia-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--pia-brown) !important;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--pia-brown);
}
.pia-card__more span { display: inline-block; transition: transform 0.3s ease; }
.pia-card:hover .pia-card__more span { transform: translateX(5px); }

.pia-empty {
	padding: 64px 0;
	font: italic 400 30px/1.3 var(--pia-serif);
	color: var(--pia-brown-70);
}

/* ---------- pagination ---------- */

.pia-pagination { margin-top: 80px; }
.pia-pagination ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pia-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	height: 46px;
	padding: 0 16px;
	border: 1px solid var(--pia-brown-15);
	border-radius: 999px;
	font: 600 12px/1 var(--pia-sans);
	letter-spacing: 0.1em;
	color: var(--pia-brown);
	box-sizing: border-box;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.pia-pagination a.page-numbers:hover { border-color: var(--pia-brown); }
.pia-pagination .page-numbers.current { background: var(--pia-brown); border-color: var(--pia-brown); color: var(--pia-cream); }
.pia-pagination .page-numbers.dots { border: 0; }

/* ---------- single post ---------- */

.pia-single__hero {
	padding-block: 72px 56px;
	text-align: center;
}
.pia-single__hero .pia-meta { justify-content: center; margin-top: 32px; }
.pia-single .pia-single__title {
	margin: 20px 0 0;
	font: 500 60px/1.08 var(--pia-serif);
	letter-spacing: -0.01em;
	color: var(--pia-brown);
}

.pia-single__cover {
	max-width: 1120px;
	margin: 0 auto 72px;
	padding-inline: 40px;
	box-sizing: border-box;
}
.pia-single__img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 82vh;
	object-fit: cover;
	border-radius: 24px;
}

.pia-prose {
	font-size: 18px;
	line-height: 1.85;
	color: var(--pia-brown);
}
/* Descendant selectors: inside the Elementor template the text sits in extra widget wrappers. */
.pia-prose :is(p, ul, ol, figure, .wp-block-image, .wp-block-buttons) { margin-block: 0 1.2em; }
.pia-prose :is(p, li) { font-size: 18px; line-height: 1.85; color: var(--pia-brown); }
.pia-prose :is(h2, h3, h4):first-child { margin-top: 0 !important; }
.pia-single .pia-prose h2,
.pia-single .pia-prose h3,
.pia-single .pia-prose h4 {
	font-family: var(--pia-serif);
	font-weight: 500;
	line-height: 1.15;
	color: var(--pia-brown);
	margin-top: 2em;
	margin-bottom: 0.4em;
}
.pia-single .pia-prose h2 { font-size: 40px; }
.pia-single .pia-prose h3 { font-size: 30px; }
.pia-single .pia-prose h4 { font-size: 24px; }
.pia-prose a {
	color: var(--pia-brown);
	text-decoration: underline;
	text-decoration-color: var(--pia-yellow);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
	transition: text-decoration-color 0.3s ease;
}
.pia-prose a:hover { text-decoration-color: var(--pia-brown); }
.pia-prose strong { font-weight: 600; }
.pia-prose ul,
.pia-prose ol { padding-left: 1.3em; }
.pia-prose li + li { margin-top: 0.4em; }
.pia-prose li::marker { color: var(--pia-brown-55); }
.pia-prose blockquote {
	margin: 2em 0;
	padding: 0 0 0 28px;
	border-left: 2px solid var(--pia-yellow);
	font: italic 400 28px/1.4 var(--pia-serif);
	color: var(--pia-brown);
}
.pia-prose blockquote p { margin: 0; }
.pia-prose img,
.pia-prose figure img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: 18px;
}
.pia-prose figure { margin: 2em 0; }
.pia-prose figcaption {
	margin-top: 10px;
	font-size: 13px;
	color: var(--pia-brown-55);
	text-align: center;
}
.pia-prose hr {
	width: 64px;
	margin: 3em auto;
	border: 0;
	border-top: 1px solid var(--pia-brown-15);
}
.pia-prose .wp-block-button__link {
	background: var(--pia-yellow);
	color: var(--pia-brown);
	border-radius: 999px;
	padding: 16px 30px;
	text-decoration: none;
	font: 600 12px/1 var(--pia-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pia-tags--single {
	margin: 64px 0 0;
	padding-top: 32px;
	border-top: 1px solid var(--pia-brown-15);
}

.pia-comments { margin-top: 64px; }

.pia-related {
	margin-top: 112px;
	padding-block: 104px 128px;
	background: var(--pia-beige);
}
.pia-related .pia-related__title {
	margin: 0 0 56px;
	font: 500 48px/1.1 var(--pia-serif);
	color: var(--pia-brown);
}
.pia-related__all { margin: 64px 0 0; text-align: center; }
.pia-btn {
	display: inline-flex;
	padding: 18px 32px;
	border: 1px solid var(--pia-brown);
	border-radius: 999px;
	font: 600 12px/1 var(--pia-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pia-brown) !important;
	transition: background-color 0.35s ease, color 0.35s ease;
}
.pia-btn:hover { background: var(--pia-brown); color: var(--pia-cream) !important; }

/* ---------- responsive ---------- */

@media (max-width: 1024px) {
	.pia-inner { padding-inline: 32px; }
	.pia-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 24px; }
	.pia-archive .pia-hero-sm__title { font-size: 52px; }
	.pia-single .pia-single__title { font-size: 48px; }
	.pia-single__cover { padding-inline: 32px; }
}

@media (max-width: 767px) {
	.pia-inner { padding-inline: 20px; }
	.pia-blog { padding-block: 48px 88px; }

	/* chips scroll sideways instead of wrapping into many rows */
	.pia-filter {
		flex-wrap: nowrap;
		overflow-x: auto;
		margin-inline: -20px;
		padding-inline: 20px;
		scrollbar-width: none;
	}
	.pia-filter::-webkit-scrollbar { display: none; }
	.pia-tags { margin-bottom: 40px; }

	.pia-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.pia-card .pia-card__title { font-size: 28px; }

	.pia-hero-sm { padding-block: 56px 48px; }
	.pia-archive .pia-hero-sm__title { font-size: 40px; }

	.pia-single__hero { padding-block: 48px 40px; }
	.pia-single .pia-single__title { font-size: 36px; }
	.pia-single__cover { padding-inline: 0; margin-bottom: 48px; }
	.pia-single__img { border-radius: 0; max-height: 70vh; }
	.pia-prose { font-size: 17px; line-height: 1.8; }
	.pia-single .pia-prose h2 { font-size: 32px; }
	.pia-single .pia-prose h3 { font-size: 26px; }
	.pia-prose blockquote { font-size: 24px; padding-left: 20px; }

	.pia-related { margin-top: 80px; padding-block: 72px 88px; }
	.pia-related .pia-related__title { font-size: 36px; margin-bottom: 40px; }
	.pia-pagination { margin-top: 56px; }
}

/* ---------- Elementor Theme Builder templates ---------- */

/* Posts without a featured image: hide the empty cover slot */
.pia-cover:has(img:not([src])),
.pia-cover:has(img[src=""]),
.pia-cover:has(img[src*="placeholder"]),
.pia-cover:not(:has(img)) { display: none !important; }

.pia-single-after { background: var(--pia-cream); }
.pia-single-after .pia-tags--single { margin: 0; padding-block: 32px 0; }
.pia-single-after + .pia-related { margin-top: 96px; }
.elementor-location-single + .pia-related { margin-top: 0; }

@media (max-width: 767px) {
	.pia-prose :is(p, li) { font-size: 17px; line-height: 1.8; }
	.pia-single-after + .pia-related { margin-top: 64px; }
}
