/**
 * Shared madunicow-style page template styles.
 * Used by about, books, contact, blog/archive, and home page templates.
 *
 * @package MadUnicow_Author_Template
 */

/* ==========================================================================
   Page hero band
   ========================================================================== */
.pt-hero {
	background-color: #ffffff;
	padding: 2.5rem 0 2rem;
	position: relative;
	overflow: hidden;
}
.pt-hero::after {
	content: "";
	position: absolute;
	top: 0; right: 0;
	width: min(320px, 35vw);
	height: 100%;
	background-image: url("../img/ornaments/ornament-hero-2.png");
	background-repeat: no-repeat;
	background-position: top right;
	background-size: contain;
	opacity: 0.45;
	pointer-events: none;
}
.pt-hero__inner {
	position: relative;
	z-index: 1;
}
.pt-breadcrumb {
	font-size: 0.85rem;
	color: var(--madunicow-smoky);
	margin-bottom: 0.75rem;
}
.pt-breadcrumb a {
	color: var(--madunicow-secondary);
	text-decoration: none;
}
.pt-breadcrumb a:hover { color: var(--madunicow-primary); }
.pt-breadcrumb span[aria-hidden] {
	margin: 0 0.35rem;
	opacity: 0.5;
}
.pt-hero__title {
	font-family: var(--font-serif);
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0;
	line-height: 1.2;
}
.pt-hero__subtitle {
	font-size: 1rem;
	color: var(--madunicow-smoky);
	margin: 0.5rem 0 0;
	max-width: 52ch;
}

/* ==========================================================================
   Section rhythm helpers
   ========================================================================== */
.pt-section {
	padding: 4rem 0;
}
.pt-section--cream { background: var(--madunicow-pale); }
.pt-section--white { background: #ffffff; }
.pt-section--dark  {
	background: #22307A;
	color: #ffffff;
}
.pt-section__heading {
	font-family: var(--font-serif);
	font-size: clamp(1.4rem, 3vw, 2rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0 0 0.5rem;
}
.pt-section--dark .pt-section__heading { color: #ffffff; }
.pt-section__lead {
	color: var(--madunicow-smoky);
	font-size: 1rem;
	margin: 0 0 2rem;
	max-width: 52ch;
}
.pt-section--dark .pt-section__lead { color: rgba(255,255,255,0.7); }

/* ==========================================================================
   About page
   ========================================================================== */

/* Outer section — no padding so the two columns can control their own bg */
.about-bio-section {
	background: #ffffff;
}
.about-bio-section .layout-wrap {
	padding-top: 0;
	padding-bottom: 0;
}

/* Two-column bio grid */
.about-bio {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	align-items: stretch;
}
@media (max-width: 860px) {
	.about-bio { grid-template-columns: 1fr; }
	.about-bio__media { order: -1; }
}

/* LEFT: white panel with an elegantly framed photo */
.about-bio__media {
	background: #ffffff;
	position: relative;
	display: flex;
	align-items: flex-end;
	padding: 4rem 2.5rem;
	min-height: 480px;
}
/* Elegant offset frame on the photo — matches the book-card style. */
.about-bio__media .about-bio__author-img,
.about-bio__media figure.about-bio__author-img {
	border: 1px solid rgba(34, 48, 122, 0.12);
	box-shadow: 14px 14px 0 var(--madunicow-light);
}

/* Works on both <img> (PHP template) and <figure> (block editor) */
.about-bio__author-img,
.about-bio__author-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	max-height: 560px;
}
/* Remove figure default margin when used as a block */
figure.about-bio__author-img { margin: 0; }

@media (max-width: 860px) {
	.about-bio__media { min-height: 320px; padding: 2.5rem 1.5rem; }
	.about-bio__author-img,
	.about-bio__author-img img { max-height: 380px; }
}

/* Book cover overlay — works on <img> and block <figure> */
.about-bio__book-cover,
figure.about-bio__book-cover {
	position: absolute;
	bottom: 2rem;
	right: 1.5rem;
	width: 110px;
	height: auto;
	z-index: 2;
	box-shadow: 4px 6px 16px rgba(0,0,0,0.24);
	margin: 0;
}
figure.about-bio__book-cover img {
	width: 100%;
	height: auto;
	display: block;
}

/* Columns block overrides for the bio two-column layout.
   align-items:flex-start so a long bio in the text column doesn't stretch the
   cyan media panel into a giant empty block. */
.about-bio-cols.wp-block-columns {
	align-items: flex-start !important;
	flex-wrap: nowrap !important;
	gap: 0 !important;
}
/* Keep the media panel in view alongside a long bio instead of stretching it. */
.about-bio-cols .wp-block-column:first-child {
	position: sticky;
	top: 1.5rem;
}
@media (max-width: 860px) {
	.about-bio-cols.wp-block-columns { flex-wrap: wrap !important; }
	.about-bio-cols .about-bio__media { order: -1; }
	.about-bio-cols .wp-block-column:first-child { position: static; }
}
.about-bio__img-placeholder {
	width: 100%;
	aspect-ratio: 3 / 4;
	background: var(--madunicow-light);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 5rem;
	color: var(--madunicow-primary);
	opacity: 0.3;
}

/* RIGHT: white panel with structured text */
.about-bio__text {
	background: #ffffff;
	padding: 4rem 3.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.1rem;
}
@media (max-width: 860px) {
	.about-bio__text { padding: 2.5rem 1.5rem; }
}
.about-bio__eyebrow {
	font-family: var(--font-serif);
	font-size: 1.05rem;
	font-style: italic;
	color: var(--madunicow-primary-alt);
	margin: 0;
}
.about-bio__heading {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 2.8vw, 2.4rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0;
	line-height: 1.2;
}
.about-bio__para {
	font-size: 0.975rem;
	line-height: 1.85;
	color: var(--madunicow-smoky);
	margin: 0;
}

/* Skills checklist */
.about-skills {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.4rem 1.5rem;
}
@media (max-width: 560px) {
	.about-skills { grid-template-columns: 1fr; }
}
.about-skills__item {
	font-size: 0.9rem;
	color: var(--madunicow-smoky);
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.about-skills__item .fas {
	color: var(--madunicow-primary-alt);
	font-size: 0.75rem;
	flex-shrink: 0;
}

.about-bio__inline-quote {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-style: italic;
	color: var(--madunicow-primary-alt);
	line-height: 1.7;
	margin: 0;
}
.about-bio__signature {
	font-family: var(--font-serif);
	font-size: 1.6rem;
	font-style: italic;
	color: var(--madunicow-primary);
	margin-top: 0.25rem;
}

/* Stats strip — dark background numbers */
.about-stats {
	background: linear-gradient(135deg, var(--madunicow-light) 0%, var(--madunicow-pale) 100%);
	color: var(--madunicow-primary);
	padding: 3.5rem 0;
}
.about-stats__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0;
	flex-wrap: wrap;
}
.about-stat {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 3.25rem;
	position: relative;
}
/* Elegant hairline divider between stats */
.about-stat + .about-stat::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	height: 62%;
	width: 1px;
	background: rgba(34, 48, 122, 0.18);
}
.about-stat__number {
	font-family: var(--font-serif);
	font-size: clamp(3rem, 6vw, 5rem);
	font-weight: 500;
	line-height: 1;
	color: var(--madunicow-primary);
}
.about-stat__number sup {
	font-size: 0.42em;
	vertical-align: super;
	color: var(--madunicow-accent);
	font-weight: 600;
	margin-left: 0.05em;
}
.about-stat__label {
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 600;
	color: var(--madunicow-secondary);
}
@media (max-width: 600px) {
	.about-stat { padding: 0.75rem 1.75rem; }
	.about-stat + .about-stat::before { display: none; }
}

/* Highlight / quote strip */
.about-highlight {
	background: var(--madunicow-primary);
	color: #ffffff;
	padding: 4rem 0;
	text-align: center;
	position: relative;
	overflow: hidden;
}
/* Side ornament removed — the ornament PNGs have white backgrounds, which
   washed the band's edges to gray. The clean navy band reads better. */
.about-highlight blockquote {
	font-family: var(--font-serif);
	font-size: clamp(1.35rem, 2.6vw, 1.9rem);
	font-style: italic;
	font-weight: 400;
	margin: 0 auto 1rem;
	max-width: 720px;
	line-height: 1.6;
	position: relative;
	z-index: 1;
}
/* Decorative opening quotation mark in the accent color */
.about-highlight blockquote::before {
	content: "\201C";
	display: block;
	font-family: Georgia, "Noto Serif", serif;
	font-style: normal;
	font-size: 4.5rem;
	line-height: 0.5;
	color: var(--madunicow-accent);
	margin-bottom: 1.25rem;
}
.about-highlight cite {
	display: inline-block;
	font-size: 0.82rem;
	opacity: 0.9;
	font-style: normal;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	position: relative;
	z-index: 1;
	color: var(--madunicow-light);
}
/* Short accent rule above the attribution */
.about-highlight cite::before {
	content: "";
	display: block;
	width: 42px;
	height: 2px;
	background: var(--madunicow-accent);
	margin: 0 auto 1.1rem;
}

/* FAQ accordion */
.about-faq {
	max-width: 720px;
}

/* Accent ornament on FAQ section */
.pt-section:has(.about-faq) {
	position: relative;
	overflow: hidden;
}
.pt-section:has(.about-faq)::after {
	content: "";
	position: absolute;
	top: 0; right: 0;
	width: min(280px, 25vw);
	height: 100%;
	background-image: url("../img/ornaments/ornament-accent.png");
	background-repeat: no-repeat;
	background-position: top right;
	background-size: contain;
	opacity: 0.14;
	pointer-events: none;
}
.faq-item {
	border-bottom: 1px solid rgba(34, 48, 122, 0.12);
}
.faq-item:first-child { border-top: 1px solid rgba(34, 48, 122, 0.12); }
.faq-item__btn {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	background: none;
	border: none;
	padding: 1rem 0;
	text-align: left;
	font-family: var(--font-sans);
	font-size: 1rem;
	font-weight: 600;
	color: var(--madunicow-primary);
	cursor: pointer;
	gap: 1rem;
}
.faq-item__btn .faq-icon {
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	border: 2px solid var(--madunicow-primary);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.85rem;
	transition: background 0.15s;
}
.faq-item__btn[aria-expanded="true"] .faq-icon {
	background: var(--madunicow-primary);
	color: #ffffff;
}
.faq-item__answer {
	display: none;
	padding: 0 0 1rem;
	font-size: 0.95rem;
	line-height: 1.8;
	color: var(--madunicow-smoky);
}
.faq-item__answer.is-open { display: block; }

/* ==========================================================================
   About page — block editor content area (Writing Journey and other blocks)
   ========================================================================== */
.about-editor-content {
	background: #ffffff;
	/* Contain to the same width as every other page template (Contact, Books,
	   FAQ, etc.) instead of letting the bio/stats bleed edge-to-edge. */
	max-width: var(--layout-max);
	margin-inline: auto;
	padding: 4.5rem var(--layout-pad);
}
/* Neutralize alignfull/alignwide inside the contained About content so the
   bio columns and stats strip sit within the container, matching other pages. */
.about-editor-content .alignfull,
.about-editor-content .alignwide {
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}

/* Force Gutenverse sections/spacers inside all page-template content wrappers
   to be white — prevents the cream body from bleeding through. */
.about-editor-content .guten-section,
.about-editor-content .guten-spacer,
.about-editor-content .guten-element.guten-spacer,
.books-extra-content .guten-section,
.books-extra-content .guten-spacer,
.books-extra-content .guten-element.guten-spacer {
	background: #ffffff !important;
	background-color: #ffffff !important;
}

.writing-journey-section {
	padding: 0 var(--layout-pad);
}

.writing-journey-heading {
	font-family: var(--font-serif) !important;
	color: var(--madunicow-primary) !important;
	font-size: clamp(2rem, 4vw, 2.75rem) !important;
	font-weight: 400 !important;
	margin-bottom: 3rem !important;
}

.writing-journey-steps {
	align-items: flex-start !important;
}

.writing-journey-step {
	text-align: center;
	position: relative;
}

/* Curved arrow between steps */
.writing-journey-step:not(:first-child)::before {
	content: '\2192';
	position: absolute;
	left: 0;
	top: 1.2rem;
	transform: translateX(-50%);
	color: #c0c0c0;
	font-size: 1.4rem;
	font-weight: 300;
	pointer-events: none;
}

.journey-icon {
	font-size: 2.5rem;
	color: var(--madunicow-primary);
	margin-bottom: 1rem;
	opacity: 0.75;
}

.journey-step-title {
	font-family: var(--font-serif) !important;
	color: var(--madunicow-primary) !important;
	font-size: 1.35rem !important;
	font-weight: 400 !important;
	margin-bottom: 0.75rem !important;
}

.writing-journey-step p {
	color: var(--madunicow-smoky);
	font-size: 0.93rem;
	line-height: 1.7;
}

@media (max-width: 781px) {
	.writing-journey-step:not(:first-child)::before {
		display: none;
	}
}

/* ==========================================================================
   Books grid section header
   ========================================================================== */
.books-section-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 2.5rem;
	gap: 1rem;
}
.books-section-header__eyebrow {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-style: italic;
	color: var(--madunicow-primary-alt);
	display: block;
	margin-bottom: 0.3rem;
}
.books-section-header__heading {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0;
}
.books-section-header__view-all {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--madunicow-secondary);
	text-decoration: none;
	letter-spacing: 0.04em;
	white-space: nowrap;
	flex-shrink: 0;
}
.books-section-header__view-all:hover { color: var(--madunicow-primary); }

/* ==========================================================================
   Litza-style book cards
   ========================================================================== */
.books-grid--litza {
	display: grid;
	grid-template-columns: repeat(var(--books-grid-cols, 4), 1fr);
	gap: 1.5rem 1.75rem;
}
@media (max-width: 1100px) {
	.books-grid--litza { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
	.books-grid--litza { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
}
@media (max-width: 440px) {
	.books-grid--litza { grid-template-columns: 1fr; }
}

.book-card--litza {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid rgba(34, 48, 122, 0.07);
	transition: box-shadow 0.2s;
}
.book-card--litza:hover {
	box-shadow: 4px 4px 0 var(--madunicow-light);
}

/* Cover: cream panel */
.book-card__cover-wrap {
	display: block;
	background: var(--madunicow-pale);
	aspect-ratio: 2 / 3;
	overflow: hidden;
	position: relative;
}
.book-card__cover-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}
.book-card--litza:hover .book-card__cover-img { transform: scale(1.03); }
.book-card__cover-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3rem;
	color: var(--madunicow-primary);
	opacity: 0.35;
}

/* Info panel */
.book-card__info {
	padding: 1rem 1rem 1.25rem;
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.35rem;
}
.book-card__genre {
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--madunicow-primary-alt);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0;
}
.book-card__title {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0;
	line-height: 1.3;
}
.book-card__title a { color: inherit; text-decoration: none; }
.book-card__title a:hover { color: var(--madunicow-secondary); }
.book-card__author {
	font-size: 0.8rem;
	color: var(--madunicow-smoky);
	margin: 0;
}
.book-card__stars {
	color: #D4A017;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	margin: 0.1rem 0;
}
.book-card__price {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--madunicow-primary);
	margin-top: auto;
	padding-top: 0.35rem;
}
.book-card__btn {
	display: block;
	text-align: center;
	margin-top: 0.6rem;
	padding: 0.65rem 1rem;
	background: var(--madunicow-secondary);
	color: #ffffff !important;
	font-size: 0.78rem;
	font-weight: 700;
	font-family: var(--font-sans);
	text-decoration: none;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	box-shadow: 4px 4px 0 var(--madunicow-light);
	transition: background 0.15s, box-shadow 0.15s;
}
.book-card__btn:hover {
	background: var(--madunicow-primary);
	box-shadow: none;
	color: #fff;
}

/* ==========================================================================
   Pre-order callout strip
   ========================================================================== */
.preorder-callout {
	background: var(--madunicow-primary);
	color: #ffffff;
	padding: 5rem 0;
	position: relative;
	overflow: hidden;
}
.preorder-callout::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("../img/ornaments/ornament-7.png");
	background-repeat: repeat;
	background-size: 220px;
	opacity: 0.05;
	pointer-events: none;
}
.preorder-callout__inner {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2.5rem 4rem;
	align-items: center;
	position: relative;
	z-index: 1;
}
@media (max-width: 680px) {
	.preorder-callout__inner { grid-template-columns: 1fr; }
}
.preorder-callout__cover {
	flex-shrink: 0;
}
.preorder-callout__img {
	display: block;
	width: 200px;
	height: auto;
	box-shadow: 6px 8px 24px rgba(0,0,0,0.4);
}
@media (max-width: 680px) {
	.preorder-callout__img { width: 140px; }
}
.preorder-callout__img-placeholder {
	width: 200px;
	aspect-ratio: 2 / 3;
	background: rgba(255,255,255,0.1);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 4rem;
	color: rgba(255,255,255,0.4);
}
.preorder-callout__badge {
	display: inline-block;
	padding: 0.25rem 0.85rem;
	border: 1px solid rgba(255,255,255,0.45);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	margin-bottom: 0.85rem;
}
.preorder-callout__title {
	font-family: var(--font-serif);
	font-size: clamp(1.6rem, 3.5vw, 2.5rem);
	font-weight: 400;
	color: #ffffff;
	margin: 0 0 0.4rem;
	line-height: 1.2;
}
.preorder-callout__subtitle {
	font-size: 1.05rem;
	font-style: italic;
	opacity: 0.75;
	margin: 0 0 0.6rem;
}
.preorder-callout__release {
	font-size: 0.875rem;
	opacity: 0.7;
	margin: 0 0 0.75rem;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.preorder-callout__desc {
	font-size: 0.975rem;
	line-height: 1.75;
	opacity: 0.8;
	max-width: 52ch;
	margin: 0 0 1.75rem;
}
.preorder-callout__btn {
	display: inline-block;
	padding: 0.9rem 2.25rem;
	background: #ffffff;
	color: var(--madunicow-primary);
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 5px 5px 0 rgba(255,255,255,0.25);
	transition: background 0.15s, box-shadow 0.15s;
}
.preorder-callout__btn:hover {
	background: var(--madunicow-light);
	box-shadow: none;
	color: var(--madunicow-primary);
}

/* ==========================================================================
   Publisher inline scroller
   ========================================================================== */
.publisher-scroller {
	background: var(--madunicow-pale);
	padding: 2.5rem 0;
	overflow: hidden;
	border-top: 1px solid rgba(34, 48, 122, 0.08);
	border-bottom: 1px solid rgba(34, 48, 122, 0.08);
}
.publisher-scroller__label {
	text-align: center;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--madunicow-smoky);
	opacity: 0.55;
	margin-bottom: 1.5rem;
}
.publisher-scroller__viewport {
	overflow: hidden;
	width: 100%;
}
.publisher-scroller__track {
	display: flex;
	align-items: center;
	gap: 3rem;
	width: max-content;
	animation: pub-scroll 28s linear infinite;
}
.publisher-scroller__track:hover {
	animation-play-state: paused;
}
@keyframes pub-scroll {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
.publisher-scroller__item {
	font-family: var(--font-serif);
	font-size: 1.1rem;
	font-style: italic;
	color: var(--madunicow-primary);
	opacity: 0.45;
	white-space: nowrap;
	transition: opacity 0.2s;
	user-select: none;
	padding: 0 1rem;
}
.publisher-scroller__item::after {
	content: "·";
	margin-left: 3rem;
	opacity: 0.3;
}
.publisher-scroller__item:last-child::after { content: ""; }
.publisher-scroller__track:hover .publisher-scroller__item { opacity: 0.7; }

/* Event card meta rows (date/time, venue) */
.book-card__event-meta {
	font-size: 0.82rem;
	color: var(--madunicow-smoky);
	margin: 0;
	display: flex;
	align-items: flex-start;
	gap: 0.4rem;
	line-height: 1.45;
}
.book-card__event-meta .fas {
	color: var(--madunicow-primary-alt);
	font-size: 0.78rem;
	flex-shrink: 0;
	margin-top: 0.15em;
}

/* Extra content area (Gutenverse blocks from page editor) */
.books-extra-content {
	padding: 0;
}

/* Featured book (two-col) */
.featured-book {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 3rem 4rem;
	align-items: start;
	padding: 1rem 0 2rem;
}
@media (max-width: 860px) {
	.featured-book { grid-template-columns: 1fr; gap: 1.5rem; }
}
.featured-book__cover { position: sticky; top: 2rem; }
.featured-book__img {
	display: block;
	width: 100%;
	max-width: 360px;
	height: auto;
	border: 1px solid rgba(34, 48, 122, 0.1);
	box-shadow: 6px 6px 0 var(--madunicow-light);
}
.featured-book__placeholder {
	width: 100%;
	max-width: 300px;
	aspect-ratio: 2 / 3;
	background: var(--madunicow-light);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 4rem;
	color: var(--madunicow-primary);
	opacity: 0.4;
}
@media (max-width: 860px) {
	.featured-book__cover { position: static; }
	.featured-book__img { max-width: 240px; }
}
.featured-book__label {
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--madunicow-primary-alt);
	display: block;
	margin-bottom: 0.6rem;
}
.featured-book__title {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3.5vw, 2.5rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0 0 0.5rem;
	line-height: 1.2;
}
.featured-book__title a { color: inherit; text-decoration: none; }
.featured-book__title a:hover { color: var(--madunicow-secondary); }
.featured-book__subtitle {
	font-size: 1.05rem;
	font-style: italic;
	color: var(--madunicow-smoky);
	margin: -0.25rem 0 0.75rem;
}
.featured-book__price {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--madunicow-primary);
	margin-bottom: 0.5rem;
}
.featured-book__excerpt {
	font-size: 0.95rem;
	line-height: 1.8;
	color: var(--madunicow-smoky);
	max-width: 54ch;
}

/* Pre-sale strip */
.books-presale {
	background: var(--madunicow-primary);
	color: #ffffff;
	padding: 4rem 0;
	position: relative;
	overflow: hidden;
}
.books-presale::after {
	content: "";
	position: absolute;
	top: 0; right: 0;
	width: min(260px, 25vw);
	height: 100%;
	background-image: url("../img/ornaments/ornament-7.png");
	background-repeat: repeat-y;
	background-size: auto;
	opacity: 0.07;
	pointer-events: none;
}
.books-presale__inner {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2rem 3rem;
	align-items: center;
	position: relative;
	z-index: 1;
}
@media (max-width: 680px) {
	.books-presale__inner { grid-template-columns: 1fr; }
}
.books-presale__img {
	display: block;
	width: 180px;
	height: auto;
	box-shadow: 4px 4px 16px rgba(0,0,0,0.3);
}
.books-presale__label {
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: rgba(255,255,255,0.7);
	display: block;
	margin-bottom: 0.5rem;
}
.books-presale__title {
	font-family: var(--font-serif);
	font-size: clamp(1.4rem, 3vw, 2.25rem);
	font-weight: 400;
	color: #ffffff;
	margin: 0 0 0.5rem;
	line-height: 1.2;
}
.books-presale__subtitle {
	font-size: 1rem;
	font-style: italic;
	opacity: 0.75;
	margin: -0.25rem 0 0.75rem;
}
.books-presale__desc {
	font-size: 0.95rem;
	line-height: 1.75;
	opacity: 0.8;
	max-width: 52ch;
	margin: 0 0 1.5rem;
}
.books-presale__btn {
	display: inline-block;
	padding: 0.85rem 2rem;
	background: #ffffff;
	color: var(--madunicow-primary);
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 5px 5px 0 rgba(255,255,255,0.25);
	transition: background 0.15s, box-shadow 0.15s;
}
.books-presale__btn:hover {
	background: var(--madunicow-light);
	box-shadow: none;
	color: var(--madunicow-primary);
}

/* Books featured CTA strip */
.books-cta {
	text-align: center;
	padding: 3.5rem 2rem;
	background: var(--madunicow-primary);
	color: #ffffff;
	position: relative;
	overflow: hidden;
}
.books-cta::after {
	content: "";
	position: absolute;
	top: 0; right: 0;
	width: min(280px, 30vw);
	height: 100%;
	background-image: url("../img/ornaments/ornament-7.png");
	background-repeat: repeat-y;
	background-position: top right;
	background-size: auto;
	opacity: 0.08;
	pointer-events: none;
}
.books-cta__title {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 400;
	margin: 0 0 0.75rem;
	position: relative; z-index: 1;
}
.books-cta__text {
	font-size: 1rem;
	opacity: 0.8;
	margin: 0 0 1.5rem;
	max-width: 48ch;
	margin-left: auto;
	margin-right: auto;
	position: relative; z-index: 1;
}
.books-cta__btn {
	display: inline-block;
	padding: 0.85rem 2rem;
	background: #ffffff;
	color: var(--madunicow-primary);
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	box-shadow: 5px 5px 0 rgba(255,255,255,0.25);
	transition: background 0.15s, box-shadow 0.15s;
	position: relative; z-index: 1;
}
.books-cta__btn:hover {
	background: var(--madunicow-light);
	box-shadow: none;
	color: var(--madunicow-primary);
}

/* ==========================================================================
   Blog / Archive — madunicow 3-column grid
   ========================================================================== */
.blog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}
@media (max-width: 960px) {
	.blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.blog-grid { grid-template-columns: 1fr; }
}

.blog-card {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid rgba(34, 48, 122, 0.07);
	transition: box-shadow 0.2s;
}
.blog-card:hover { box-shadow: 4px 4px 0 var(--madunicow-light); }

.blog-card__thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}
.blog-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}
.blog-card:hover .blog-card__thumb img { transform: scale(1.04); }
.blog-card__thumb--placeholder {
	background: var(--madunicow-light);
	width: 100%;
	aspect-ratio: 16 / 10;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2.5rem;
	color: var(--madunicow-primary);
	opacity: 0.4;
}

.blog-card__body {
	padding: 1.25rem 1.25rem 1.5rem;
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.5rem;
}
.blog-card__meta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	font-size: 0.78rem;
}
.blog-card__category {
	color: var(--madunicow-primary-alt);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	text-decoration: none;
}
.blog-card__category:hover { color: var(--madunicow-primary); }
.blog-card__date { color: var(--madunicow-smoky); }
.blog-card__sep { color: var(--madunicow-smoky); opacity: 0.5; }

.blog-card__title {
	font-family: var(--font-serif);
	font-size: 1.15rem;
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0;
	line-height: 1.35;
}
.blog-card__title a { color: inherit; text-decoration: none; }
.blog-card__title a:hover { color: var(--madunicow-secondary); }

.blog-card__excerpt {
	font-size: 0.875rem;
	line-height: 1.7;
	color: var(--madunicow-smoky);
	margin: 0;
}
.blog-card__read-more {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--madunicow-secondary);
	text-decoration: none;
	letter-spacing: 0.04em;
	margin-top: auto;
	padding-top: 0.5rem;
}
.blog-card__read-more:hover { color: var(--madunicow-primary); }

/* Pagination */
.pt-pagination {
	display: flex;
	justify-content: center;
	gap: 0.4rem;
	flex-wrap: wrap;
	margin-top: 2rem;
}
.pt-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--madunicow-primary);
	text-decoration: none;
	border: 1px solid rgba(34, 48, 122, 0.18);
	transition: background 0.15s;
}
.pt-pagination .page-numbers:hover,
.pt-pagination .page-numbers.current {
	background: var(--madunicow-primary);
	color: #ffffff;
	border-color: var(--madunicow-primary);
}
.pt-pagination .page-numbers.dots {
	border: none;
	background: none;
}

/* ==========================================================================
   Contact page
   ========================================================================== */
.contact-section {
	background: #ffffff;
	padding: 2.5rem 0 5rem;
}
.contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
	gap: 3rem 5rem;
	align-items: start;
}
@media (max-width: 900px) {
	.contact-layout {
		grid-template-columns: 1fr;
		gap: 3rem;
	}
}

/* ------- Form column ------- */
.contact-form-wrap__eyebrow {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-style: italic;
	color: var(--madunicow-primary-alt);
	margin: 0 0 0.6rem;
}
.contact-form-wrap__heading {
	font-family: var(--font-serif);
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0 0 1rem;
	line-height: 1.15;
}
.contact-form-wrap__lead {
	font-size: 0.975rem;
	color: var(--madunicow-smoky);
	line-height: 1.8;
	max-width: 52ch;
	margin: 0 0 2.5rem;
}
.contact-form-wrap__notice {
	font-size: 0.875rem;
	color: var(--madunicow-smoky);
	font-style: italic;
	background: var(--madunicow-pale);
	padding: 1rem 1.25rem;
	border-left: 3px solid var(--madunicow-light);
}
.contact-form-content input,
.contact-form-content textarea,
.contact-form-content select {
	font-family: inherit;
}
.contact-form-content input[type="text"],
.contact-form-content input[type="email"],
.contact-form-content input[type="tel"],
.contact-form-content textarea,
.contact-form-content select {
	border: 1px solid rgba(34, 48, 122,0.22) !important;
	border-radius: 0 !important;
	padding: 0.65rem 0.85rem !important;
	font-family: var(--font-sans) !important;
	font-size: 0.95rem !important;
	width: 100% !important;
	box-sizing: border-box;
	transition: border-color 0.15s;
}
.contact-form-content input:focus,
.contact-form-content textarea:focus {
	outline: none;
	border-color: var(--madunicow-primary) !important;
}
.contact-form-content label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--madunicow-text);
	display: block;
	margin-bottom: 0.3rem;
}
.contact-form-content button[type="submit"],
.contact-form-content input[type="submit"] {
	background: var(--madunicow-secondary) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0.85rem 2.25rem !important;
	font-family: var(--font-sans) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	cursor: pointer;
	box-shadow: 4px 4px 0 var(--madunicow-light) !important;
	transition: background 0.15s, box-shadow 0.15s !important;
}
.contact-form-content button[type="submit"]:hover,
.contact-form-content input[type="submit"]:hover {
	background: var(--madunicow-primary) !important;
	box-shadow: none !important;
}

/* ------- Info cards column ------- */
.contact-info {
	display: flex;
	flex-direction: column;
	gap: 0;
	position: sticky;
	top: 2rem;
}
@media (max-width: 900px) {
	.contact-info { position: static; }
}

.contact-info-card {
	display: flex;
	gap: 1.25rem;
	align-items: flex-start;
	padding: 1.5rem 0;
	border-bottom: 1px solid rgba(34, 48, 122,0.1);
}
.contact-info-card:first-child {
	padding-top: 0;
}
.contact-info-card:last-child {
	border-bottom: none;
}
.contact-info-card__icon {
	width: 3rem;
	height: 3rem;
	flex-shrink: 0;
	background: var(--madunicow-primary);
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
}
.contact-info-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}
.contact-info-card__label {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--madunicow-primary-alt);
}
.contact-info-card__value {
	font-size: 0.975rem;
	color: var(--madunicow-smoky);
	line-height: 1.6;
}
.contact-info-card__value a {
	color: var(--madunicow-smoky);
	text-decoration: none;
	transition: color 0.15s;
}
.contact-info-card__value a:hover { color: var(--madunicow-primary); text-decoration: underline; }

/* Social icons row */
.contact-social-links {
	display: flex;
	gap: 0.85rem;
	flex-wrap: wrap;
	margin-top: 0.2rem;
}
.contact-social-links a {
	width: 2.25rem;
	height: 2.25rem;
	background: var(--madunicow-pale);
	color: var(--madunicow-primary) !important;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.9rem;
	transition: background 0.15s, color 0.15s;
	text-decoration: none !important;
}
.contact-social-links a:hover {
	background: var(--madunicow-primary);
	color: #fff !important;
}

/* Map strip */
.contact-map {
	width: 100%;
	height: 420px;
	overflow: hidden;
	display: block;
}
.contact-map iframe {
	width: 100%;
	height: 100%;
	display: block;
	border: none;
}

/* ==========================================================================
   Events category archive — Litza horizontal event cards
   ========================================================================== */
.event-list {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.event-card {
	display: grid;
	grid-template-columns: 2fr 3fr;
	min-height: 280px;
	border: 1px solid rgba(34, 48, 122, 0.07);
	overflow: hidden;
	transition: box-shadow 0.2s;
}
.event-card:hover {
	box-shadow: 5px 5px 0 var(--madunicow-light);
}
@media (max-width: 700px) {
	.event-card { grid-template-columns: 1fr; }
}

/* Image column */
.event-card__image-wrap {
	position: relative;
	overflow: hidden;
	display: block;
	background: var(--madunicow-pale);
	/* Fixed ratio so every event image is uniform regardless of its source
	   dimensions — otherwise mismatched image heights break the grid. */
	aspect-ratio: 3 / 2;
	width: 100%;
}
.event-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.3s;
}
.event-card:hover .event-card__img { transform: scale(1.03); }
.event-card__img-placeholder {
	width: 100%;
	height: 100%;
	min-height: 220px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 4rem;
	color: var(--madunicow-primary);
	opacity: 0.25;
}

/* Date overlay box */
.event-card__date-box {
	position: absolute;
	bottom: 0;
	left: 0;
	background: #ffffff;
	padding: 1rem 1.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 80px;
}
.event-card__date-day {
	font-family: var(--font-serif);
	font-size: 3rem;
	font-weight: 400;
	color: var(--madunicow-primary);
	line-height: 1;
	display: block;
}
.event-card__date-mth {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--madunicow-smoky);
	display: block;
	margin-top: 0.25rem;
}

/* Body column */
.event-card__body {
	background: #ffffff;
	padding: 2rem 2.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	justify-content: center;
}
@media (max-width: 700px) {
	.event-card__body { padding: 1.5rem; }
}
.event-card__cat {
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--madunicow-primary-alt);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.event-card__title {
	font-family: var(--font-serif);
	font-size: clamp(1.2rem, 2vw, 1.65rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0;
	line-height: 1.25;
}
.event-card__title a { color: inherit; text-decoration: none; }
.event-card__title a:hover { color: var(--madunicow-secondary); }
.event-card__meta {
	font-size: 0.875rem;
	color: var(--madunicow-smoky);
	margin: 0;
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	line-height: 1.5;
}
.event-card__meta .fas {
	color: var(--madunicow-primary-alt);
	font-size: 0.82rem;
	flex-shrink: 0;
	margin-top: 0.15em;
}
.event-card__price {
	font-size: 1rem;
	font-weight: 700;
	color: var(--madunicow-primary);
	margin-top: 0.25rem;
}
.event-card__btn {
	display: inline-block;
	align-self: flex-start;
	margin-top: 0.5rem;
	padding: 0.7rem 1.75rem;
	background: var(--madunicow-secondary);
	color: #ffffff !important;
	font-family: var(--font-sans);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 4px 4px 0 var(--madunicow-light);
	transition: background 0.15s, box-shadow 0.15s;
}
.event-card__btn:hover {
	background: var(--madunicow-primary);
	box-shadow: none;
	color: #ffffff !important;
}

/* ==========================================================================
   Contact form block (madunicow/contact-form)
   ========================================================================== */
.madunicow-contact-form { width: 100%; }

.madunicow-cf__field { margin: 0 0 1.15rem; }
.madunicow-cf__field label {
	display: block;
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--madunicow-primary);
	margin-bottom: 0.4rem;
}
.madunicow-cf__field label span { color: var(--madunicow-primary-alt); }

.madunicow-cf__field input,
.madunicow-cf__field textarea {
	width: 100%;
	padding: 0.8rem 1rem;
	font-family: var(--font-sans);
	font-size: 0.95rem;
	color: var(--madunicow-text);
	background: var(--madunicow-white);
	border: 1.5px solid rgba(34, 48, 122, 0.25);
	border-radius: 4px;
	outline: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.madunicow-cf__field input:focus,
.madunicow-cf__field textarea:focus {
	border-color: var(--madunicow-primary);
	box-shadow: 0 0 0 3px rgba(34, 48, 122, 0.12);
}
.madunicow-cf__field textarea { resize: vertical; min-height: 130px; }

.madunicow-cf__btn {
	display: inline-block;
	padding: 0.85rem 2rem;
	background: var(--madunicow-primary);
	color: var(--madunicow-white);
	border: none;
	border-radius: 4px;
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	cursor: pointer;
	transition: background 0.15s;
}
.madunicow-cf__btn:hover { background: var(--madunicow-primary-alt); }

.madunicow-cf-notice {
	margin: 0 0 1.5rem;
	padding: 0.9rem 1.1rem;
	border-radius: 4px;
	font-family: var(--font-sans);
	font-size: 0.95rem;
	border-left: 4px solid;
}
.madunicow-cf-notice ul { margin: 0; padding-left: 1.1rem; }
.madunicow-cf-notice--success {
	background: var(--madunicow-pale, #BFD9F0);
	border-color: var(--madunicow-primary);
	color: var(--madunicow-primary);
}
.madunicow-cf-notice--error {
	background: #fdecea;
	border-color: #c0392b;
	color: #922b21;
}

/* ==========================================================================
   Banner block (madunicow/banner)
   ========================================================================== */
.madunicow-banner {
	position: relative;
	display: flex;
	align-items: center;
	background:
		radial-gradient(120% 140% at 85% 0%, rgba(83, 137, 20, 0.20) 0%, rgba(83, 137, 20, 0) 55%),
		linear-gradient(135deg, var(--madunicow-primary) 0%, var(--madunicow-secondary) 100%);
	background-size: cover;
	background-position: center;
	color: #ffffff;
	overflow: hidden;
}
.madunicow-banner.has-image { background-size: cover; background-position: center; }
.madunicow-banner--short  { min-height: 180px; }
.madunicow-banner--medium { min-height: 300px; }
.madunicow-banner--tall   { min-height: 440px; }

/* Subtle author-style botanical flourish on the right */
.madunicow-banner::after {
	content: "";
	position: absolute;
	top: 0; right: 0;
	width: min(360px, 38vw);
	height: 100%;
	background-image: url("../img/ornaments/ornament-hero-2.png");
	background-repeat: no-repeat;
	background-position: top right;
	background-size: contain;
	opacity: 0.18;
	pointer-events: none;
}
.madunicow-banner__inner {
	position: relative;
	z-index: 1;
	padding: 2.5rem 0;
}
.madunicow-banner .madunicow-banner__title {
	font-family: var(--font-serif);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 400;
	color: #ffffff !important;
	margin: 0;
	line-height: 1.1;
}
.madunicow-banner__subtext {
	font-size: clamp(1rem, 2vw, 1.2rem);
	color: rgba(255, 255, 255, 0.85);
	margin: 0.75rem 0 0;
	max-width: 56ch;
}

/* Contact: slim breadcrumb bar above the banner */
.contact-breadcrumb-bar { background: #ffffff; padding: 1rem 0 0.25rem; }
.contact-breadcrumb-bar .pt-breadcrumb { margin-bottom: 0; }

/* ==========================================================================
   Books category filter bar (books-grid block, catalog mode)
   ========================================================================== */
.books-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.75rem;
	margin: 0 0 2rem;
}
.books-filter__btn {
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 0.5rem 1.1rem;
	border: 1.5px solid rgba(34, 48, 122, 0.25);
	border-radius: 999px;
	background: #ffffff;
	color: var(--madunicow-primary);
	cursor: pointer;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.books-filter__btn:hover { border-color: var(--madunicow-primary); }
.books-filter__btn--active {
	background: var(--madunicow-primary);
	border-color: var(--madunicow-primary);
	color: #ffffff;
}

/* ==========================================================================
   Event details block + event ticket buttons
   ========================================================================== */
.event-details { margin: 0; }
.event-details__price {
	font-family: var(--font-serif);
	font-size: 1.75rem;
	color: var(--madunicow-primary);
	margin-bottom: 1.25rem;
}
.event-details__list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 0.75rem; }
.event-details__row {
	display: grid;
	grid-template-columns: 1.5rem 6rem 1fr;
	align-items: baseline;
	gap: 0.5rem;
	font-size: 0.975rem;
	color: var(--madunicow-text);
}
.event-details__row .fas { color: var(--madunicow-primary-alt); }
.event-details__label { font-weight: 600; color: var(--madunicow-primary); text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.06em; }
.event-details__value { color: var(--madunicow-smoky); }

/* Ticket buttons use the warm accent so they read differently from book buttons */
.event-details__btn,
.book-card__btn--event {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: var(--madunicow-primary-alt);
	color: #ffffff;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s;
}
.event-details__btn { padding: 0.9rem 2rem; font-size: 0.9rem; }
.event-details__btn:hover,
.book-card__btn--event:hover { background: var(--madunicow-primary); color: #fff; }

/* Events list empty state */
.events-empty {
	text-align: center;
	padding: 3rem 1rem;
	color: var(--madunicow-smoky);
}
.events-empty .fas {
	font-size: 2.5rem;
	color: var(--madunicow-pale, #BFD9F0);
	margin-bottom: 1rem;
}
.events-empty p { font-size: 1.05rem; max-width: 46ch; margin: 0 auto; }

/* ==========================================================================
   Hero → first-section spacing (stop the large gap under page titles)
   ========================================================================== */
.pt-hero + .pt-section,
.pt-hero + section,
.site-main--full > .pt-hero + .pt-section {
	padding-top: 1.75rem;
}
.madunicow-banner + .pt-section,
.madunicow-banner + section {
	padding-top: 2.25rem;
}

/* ==========================================================================
   Contact: align the right rail header with the form column
   ========================================================================== */
.contact-info__eyebrow {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-style: italic;
	color: var(--madunicow-primary-alt);
	margin: 0 0 0.6rem;
}
.contact-info__heading {
	font-family: var(--font-serif);
	font-size: clamp(1.4rem, 2.5vw, 2rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0 0 1.5rem;
	line-height: 1.2;
}
.contact-info { top: 0; }

/* ==========================================================================
   Banner block — refined to sit better with the rest of the site
   ========================================================================== */
.madunicow-banner {
	background: linear-gradient(120deg, var(--madunicow-primary) 0%, var(--madunicow-secondary) 100%);
}
.madunicow-banner--short  { min-height: 150px; }
.madunicow-banner--medium { min-height: 220px; }
.madunicow-banner--tall   { min-height: 340px; }
/* Remove the decorative right-side panel/ornament that created a discolored seam. */
.madunicow-banner::after { display: none; }
.madunicow-banner__inner { padding: 2rem 0; }
.madunicow-banner__title { font-size: clamp(1.9rem, 4vw, 2.8rem); }

/* ==========================================================================
   Review / comment form — modernised to match the theme
   ========================================================================== */
.bd-comment-form .comment-reply-title {
	font-family: var(--font-serif);
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0 0 1rem;
}
.bd-comment-form .logged-in-as,
.bd-comment-form .comment-notes {
	font-size: 0.85rem;
	color: var(--madunicow-smoky);
	margin: 0 0 1.25rem;
}
.bd-comment-form .comment-form label,
.bd-comment-form .comment-form-comment label {
	display: block;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--madunicow-primary);
	margin-bottom: 0.4rem;
}
.bd-comment-form .comment-form textarea {
	min-height: 130px;
	resize: vertical;
}
.bd-comment-form .comment-form-submit input[type="submit"],
.bd-comment-form .submit {
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 700;
	box-shadow: 6px 6px 0 var(--madunicow-light);
	transition: background 0.15s, transform 0.1s, box-shadow 0.15s;
}
.bd-comment-form .comment-form-submit input[type="submit"]:hover,
.bd-comment-form .submit:hover {
	transform: translate(2px, 2px);
	box-shadow: 3px 3px 0 var(--madunicow-light);
}
/* Star-rating selector (WooCommerce review rating) */
.bd-comment-form .comment-form-rating label { display: inline-block; margin-right: 0.5rem; }
.bd-comment-form .stars a { color: var(--madunicow-primary-alt); }

/* ==========================================================================
   Event: Add-to-Calendar links + RSVP form
   ========================================================================== */
.event-cal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.85rem;
	margin-top: 1rem;
	font-size: 0.85rem;
}
.event-cal__label {
	font-weight: 700;
	color: var(--madunicow-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.75rem;
}
.event-cal__links { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.event-cal__links a {
	color: var(--madunicow-secondary);
	text-decoration: none;
	border-bottom: 1px solid var(--madunicow-light);
	padding-bottom: 1px;
}
.event-cal__links a:hover { color: var(--madunicow-accent); border-color: var(--madunicow-accent); }

.event-rsvp {
	margin-top: 1.75rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(34, 48, 122, 0.12);
}
.event-rsvp__title {
	font-family: var(--font-serif);
	font-size: 1.2rem;
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0 0 0.85rem;
}
.event-rsvp__fields { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.event-rsvp__fields input[type="text"],
.event-rsvp__fields input[type="email"] {
	flex: 1 1 180px;
	padding: 0.7rem 0.9rem;
	border: 1.5px solid rgba(34, 48, 122, 0.25);
	border-radius: 0;
	font-size: 0.95rem;
}
.event-rsvp__fields input[type="number"] { width: 76px; padding: 0.7rem 0.5rem; border: 1.5px solid rgba(34, 48, 122, 0.25); text-align: center; }
.event-rsvp__fields .event-details__btn { flex: 0 0 auto; }
.event-rsvp__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.event-rsvp__note { padding: 0.6rem 0.9rem; border-radius: 4px; font-size: 0.9rem; margin: 0 0 0.85rem; }
.event-rsvp__note--ok { background: rgba(61,125,202,0.12); border: 1px solid var(--madunicow-light); color: var(--madunicow-primary); }
.event-rsvp__note--err { background: #fdecea; border: 1px solid #f5c6cb; color: #922b21; }

/* ==========================================================================
   Event Schedule / Agenda block (madunicow/schedule)
   ========================================================================== */
.md-schedule { padding: 3rem 0; }
.md-schedule__heading {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 400;
	color: var(--madunicow-primary);
	margin: 0 0 0.5rem;
	text-align: center;
}
.md-schedule__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	color: var(--madunicow-smoky);
	margin: 0 0 2rem;
}
.md-schedule__dot {
	width: 0.8rem; height: 0.8rem; border-radius: 2px;
	background: var(--madunicow-accent);
	display: inline-block;
}
.md-schedule__list {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: 780px;
}
.md-schedule__item {
	display: flex;
	gap: 1.25rem;
	padding: 1rem 1.1rem;
	border-left: 3px solid var(--madunicow-light);
	border-bottom: 1px solid rgba(34, 48, 122, 0.08);
	transition: background 0.15s;
}
.md-schedule__item:hover { background: var(--madunicow-pale); }
.md-schedule__item--mine {
	border-left-color: var(--madunicow-accent);
	background: rgba(255, 122, 89, 0.06);
}
.md-schedule__time {
	flex: 0 0 8.5rem;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--madunicow-secondary);
	letter-spacing: 0.01em;
	padding-top: 0.1rem;
}
.md-schedule__body { display: flex; flex-direction: column; gap: 0.25rem; }
.md-schedule__title {
	font-family: var(--font-serif);
	font-size: 1.05rem;
	color: var(--madunicow-primary);
	line-height: 1.35;
}
.md-schedule__item--mine .md-schedule__title { font-weight: 700; }
.md-schedule__badge {
	display: inline-block;
	margin-left: 0.5rem;
	font-family: var(--font-sans);
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #fff;
	background: var(--madunicow-accent);
	padding: 0.12rem 0.5rem;
	border-radius: 3px;
	vertical-align: middle;
	white-space: nowrap;
}
.md-schedule__loc {
	font-size: 0.85rem;
	color: var(--madunicow-smoky);
}
.md-schedule__loc .fas { color: var(--madunicow-secondary); margin-right: 0.25rem; font-size: 0.8em; }
@media (max-width: 560px) {
	.md-schedule__item { flex-direction: column; gap: 0.35rem; }
	.md-schedule__time { flex-basis: auto; }
}

/* Past events (archive) — subtly de-emphasized */
.event-card--past { opacity: 0.85; }
.event-card--past .event-card__date-box { background: var(--madunicow-smoky); }
.event-card--past .event-card__cat::after {
	content: " · Past";
	color: var(--madunicow-smoky);
	font-weight: 400;
}

/* Free event / free product price + note */
.madunicow-free-price,
.event-details__price--free {
	color: var(--madunicow-secondary);
	font-weight: 700;
	letter-spacing: 0.01em;
}
.event-details__free-note {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	color: var(--madunicow-primary);
	background: var(--madunicow-pale);
	border: 1px solid var(--madunicow-light);
	padding: 0.7rem 1rem;
	border-radius: 4px;
	font-size: 0.95rem;
}
.event-details__free-note .fa-circle-check { color: #2e9e5b; }
