/*
Theme Name: Memberlite - Child Theme
Theme URI: https://www.paidmembershipspro.com/themes/memberlite
Description: Raven Hill Gypsy Vanners — Memberlite child theme.
Author: Kim Coleman
Author URI: https://www.strangerstudios.com/
Template: memberlite
Version: 1.0
License: GPL-2.0+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

/* ============================================================
   Design Tokens
   ============================================================ */

:root {
	--rh-green-dark:   #2C4A30;
	--rh-green-mid:    #3D6B42;
	--rh-green-light:  #EBF3EC;
	--rh-cream:        #F5EDD8;
	--rh-cream-dark:   #E2D0A8;
	--rh-earth:        #3E2A1A;
	--rh-earth-light:  #7A5C42;
	--rh-text:         #2A2A2A;
	--rh-text-muted:   #6B6558;
	--rh-white:        #FFFFFF;

	--rh-radius:       4px;
	--rh-radius-lg:    8px;
	--rh-transition:   0.2s ease;

	--rh-section-pad:  5rem 1rem;
}

/* ============================================================
   Buttons
   ============================================================ */

.rh-btn {
	display: inline-block;
	padding: 0.75rem 1.75rem;
	border-radius: var(--rh-radius);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--rh-transition), color var(--rh-transition), border-color var(--rh-transition);
	/* Normalize <button> elements to match <a> rendering */
	appearance: none;
	-webkit-appearance: none;
	font-family: inherit;
	line-height: normal;
	box-sizing: border-box;
}

.rh-btn--primary {
	background: var(--rh-green-dark);
	color: var(--rh-white);
	border: 2px solid var(--rh-green-dark);
}
.rh-btn--primary:hover,
.rh-btn--primary:focus {
	background: var(--rh-green-mid);
	border-color: var(--rh-green-mid);
	color: var(--rh-white);
}

.rh-btn--secondary {
	background: var(--rh-earth);
	color: var(--rh-cream);
	border: 2px solid var(--rh-earth);
}
.rh-btn--secondary:hover,
.rh-btn--secondary:focus {
	background: var(--rh-earth-light);
	border-color: var(--rh-earth-light);
	color: var(--rh-white);
}

.rh-btn--outline {
	background: transparent;
	color: var(--rh-green-dark);
	border: 2px solid var(--rh-green-dark);
}
.rh-btn--outline:hover,
.rh-btn--outline:focus {
	background: var(--rh-green-dark);
	color: var(--rh-white);
}

/* White-border ghost button for hero (dark backgrounds) */
.rh-btn--ghost {
	background: transparent;
	color: var(--rh-white);
	border: 2px solid rgba(255, 255, 255, 0.75);
}
.rh-btn--ghost:hover,
.rh-btn--ghost:focus {
	background: rgba(255, 255, 255, 0.15);
	border-color: var(--rh-white);
	color: var(--rh-white);
}

.rh-btn--sm {
	padding: 0.5rem 1.25rem;
	font-size: 0.875rem;
}

.rh-link {
	color: var(--rh-green-dark);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color var(--rh-transition);
}
.rh-link:hover,
.rh-link:focus {
	border-bottom-color: var(--rh-green-dark);
	color: var(--rh-green-dark);
}

/* ── Gutenberg wp:button — explicit contrast guarantee ──────
   Without these rules the button inherits whatever WordPress/Memberlite
   defaults apply, which can produce insufficient text-to-background
   contrast. White (#fff) on --rh-green-dark (#2C4A30) = 9.86:1 ratio,
   well above the WCAG AA 4.5:1 threshold for normal text. */
.wp-block-button .wp-block-button__link {
	background-color: var(--rh-green-dark);
	color: var(--rh-white);
	border: 2px solid var(--rh-green-dark);
	border-radius: var(--rh-radius);
	padding: 0.7rem 1.75rem;
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: 0.01em;
	text-decoration: none;
	display: inline-block;
	transition: background-color var(--rh-transition), border-color var(--rh-transition);
}
.wp-block-button .wp-block-button__link:hover,
.wp-block-button .wp-block-button__link:focus {
	background-color: var(--rh-earth);
	border-color: var(--rh-earth);
	color: var(--rh-white);
}

/* ============================================================
   Section Utilities
   ============================================================ */

.rh-section-title {
	font-size: 2rem;
	color: var(--rh-earth);
	margin-bottom: 0.5rem;
}

.rh-section-intro {
	color: var(--rh-text-muted);
	font-size: 1.05rem;
	margin-bottom: 2.5rem;
}

/* ============================================================
   Global: Author Avatar
   ============================================================ */

/* All avatar images — bylines, author boxes, comments — display as circles. */
img.avatar,
.avatar img,
.wp-block-avatar img {
	border-radius: 50%;
	display: block;
}

/* ============================================================
   Foundation Grid Override
   ============================================================ */

/*
 * .medium-centered is a Foundation 5 class that was removed in Foundation 6.
 * Memberlite's grid is Foundation 6 flexbox, so the class has no definition
 * and every column using it sits at the left of its .row flex container.
 *
 * Fix: in a flex container, margin-left/right: auto absorbs free space and
 * centers the flex item — equivalent to the old centered-column behavior.
 */
@media (min-width: 768px) {
	.medium-centered {
		margin-left: auto;
		margin-right: auto;
	}
}

/* ============================================================
   Hero
   ============================================================ */

.rh-hero {
	position: relative;
	min-height: 620px;
	display: flex;
	align-items: center;
	overflow: hidden;
	background-color: var(--rh-green-dark); /* fallback before image loads */
	background-size: cover;
	background-position: center;
}

.rh-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(30, 50, 30, 0.55) 0%,
		rgba(20, 35, 20, 0.70) 100%
	);
}

.rh-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 5rem 1rem;
	text-align: center;
	color: var(--rh-white);
}

.rh-hero__eyebrow {
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--rh-cream-dark);
	margin-bottom: 1rem;
}

.rh-hero__headline {
	font-size: clamp(2.4rem, 5vw, 3.75rem);
	line-height: 1.15;
	color: var(--rh-white);
	margin-bottom: 1.25rem;
}

.rh-hero__sub {
	font-size: 1.15rem;
	color: rgba(255, 255, 255, 0.88);
	max-width: 540px;
	margin: 0 auto 2rem;
	line-height: 1.6;
}

.rh-hero__actions {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
}

/* ============================================================
   Brand Statement
   ============================================================ */

.rh-brand {
	background: var(--rh-white);
	padding: var(--rh-section-pad);
	border-bottom: 1px solid var(--rh-cream-dark);
}

.rh-brand__heading {
	font-size: 1.75rem;
	color: var(--rh-earth);
	margin-bottom: 1.25rem;
}

.rh-brand__text {
	font-size: 1.1rem;
	line-height: 1.8;
	color: var(--rh-text);
}

/* ============================================================
   Featured Horses
   ============================================================ */

.rh-featured {
	background: var(--rh-cream);
	padding: var(--rh-section-pad);
}

.rh-featured__cta {
	margin-top: 2.5rem;
}

/* ============================================================
   Horse Card (shared: front page + archive)
   ============================================================ */

.rh-horse-grid {
	margin-top: 0.5rem;
}

.rh-horse-card {
	margin-bottom: 2rem;
}

.rh-horse-card__media {
	position: relative;
	overflow: hidden;
	border-radius: var(--rh-radius-lg) var(--rh-radius-lg) 0 0;
	background: var(--rh-cream-dark);
	aspect-ratio: 4 / 3;
}

.rh-horse-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.rh-horse-card:hover .rh-horse-card__img {
	transform: scale(1.03);
}

.rh-horse-card__placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--rh-green-dark) 0%, var(--rh-earth) 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

.rh-horse-card__badge {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	background: var(--rh-green-dark);
	color: var(--rh-white);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.3rem 0.65rem;
	border-radius: var(--rh-radius);
}

.rh-horse-card__badge--sold {
	background: var(--rh-text-muted);
}

.rh-horse-card__body {
	background: var(--rh-white);
	border: 1px solid var(--rh-cream-dark);
	border-top: none;
	border-radius: 0 0 var(--rh-radius-lg) var(--rh-radius-lg);
	padding: 1.25rem 1.5rem 1.5rem;
}

.rh-horse-card__name {
	font-size: 1.25rem;
	margin-bottom: 0.4rem;
}

.rh-horse-card__name a {
	color: var(--rh-earth);
	text-decoration: none;
}
.rh-horse-card__name a:hover {
	color: var(--rh-green-dark);
}

.rh-horse-card__meta {
	font-size: 0.875rem;
	color: var(--rh-text-muted);
	margin-bottom: 0.5rem;
}

.rh-horse-card__bloodline {
	font-size: 0.875rem;
	color: var(--rh-text-muted);
	margin-bottom: 0.75rem;
}

.rh-horse-card__excerpt {
	font-size: 0.9rem;
	color: var(--rh-text);
	margin-bottom: 1rem;
	line-height: 1.6;
}

/* ============================================================
   Services Overview
   ============================================================ */

.rh-services {
	background: var(--rh-white);
	padding: var(--rh-section-pad);
}

.rh-service-grid {
	margin-top: 0.5rem;
}

.rh-service-card {
	padding: 2rem 1.5rem;
	text-align: center;
	border: 1px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius-lg);
	margin-bottom: 1.5rem;
	transition: box-shadow var(--rh-transition);
}

.rh-service-card:hover {
	box-shadow: 0 4px 20px rgba(44, 74, 48, 0.12);
}

.rh-service-card__icon {
	font-size: 2.25rem;
	color: var(--rh-green-dark);
	margin-bottom: 1rem;
}

.rh-service-card__title {
	font-size: 1.2rem;
	color: var(--rh-earth);
	margin-bottom: 0.75rem;
}

.rh-service-card__text {
	font-size: 0.95rem;
	color: var(--rh-text);
	line-height: 1.7;
	margin-bottom: 1.25rem;
}

/* ============================================================
   CTA Strip
   ============================================================ */

.rh-cta {
	background: var(--rh-green-dark);
	padding: var(--rh-section-pad);
}

.rh-cta__heading {
	color: var(--rh-white);
	font-size: 1.9rem;
	margin-bottom: 0.75rem;
}

.rh-cta__text {
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.05rem;
	line-height: 1.7;
	margin-bottom: 2rem;
}

/* ============================================================
   Archive Header
   ============================================================ */

.rh-archive-header {
	background: var(--rh-green-dark);
	padding: 2.5rem 1rem 2rem;
}

.rh-archive-header__title {
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	color: var(--rh-white);
	margin-bottom: 0.35rem;
	line-height: 1.2;
}

.rh-archive-header__sub {
	color: rgba(255, 255, 255, 0.82);
	font-size: 1rem;
	margin: 0;
}

/* ============================================================
   Homepage Blog Section ("From the Farm")
   ============================================================ */

.rh-blog {
	background: var(--rh-cream);
	border-top: 1px solid var(--rh-cream-dark);
	border-bottom: 1px solid var(--rh-cream-dark);
	padding: 2.75rem 0;
}

/* Styled as an eyebrow/label — intentionally smaller than section headings
   so the block reads as supplementary, not a primary page section. */
.rh-blog__heading {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--rh-earth-light);
	margin-bottom: 1.25rem;
}

.rh-blog-cards {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.rh-blog-card {
	display: flex;
	gap: 1.1rem;
	align-items: flex-start;
	background: var(--rh-white);
	border: 1px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius-lg);
	padding: 1rem;
	text-decoration: none;
}

/* ── Thumbnail + avatar badge ── */

.rh-blog-card__media {
	flex: 0 0 auto;
	position: relative;
	width: 90px;
	height: 90px;
}

.rh-blog-card__img {
	width: 90px;
	height: 90px;
	object-fit: cover;
	border-radius: var(--rh-radius);
	display: block;
}

.rh-blog-card__placeholder {
	width: 90px;
	height: 90px;
	border-radius: var(--rh-radius);
	background: linear-gradient(135deg, var(--rh-green-dark) 0%, var(--rh-earth) 100%);
}

.rh-blog-card__avatar {
	position: absolute;
	bottom: -5px;
	right: -5px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 2px solid var(--rh-white);
	object-fit: cover;
	display: block;
}

/* ── Card body ── */

.rh-blog-card__body {
	flex: 1;
	min-width: 0;
}

.rh-blog-card__date {
	display: block;
	font-size: 0.75rem;
	color: var(--rh-text-muted);
	letter-spacing: 0.03em;
	margin-bottom: 0.2rem;
}

.rh-blog-card__title {
	font-size: 0.975rem;
	line-height: 1.35;
	color: var(--rh-earth);
	margin-bottom: 0.35rem;
}

.rh-blog-card__title a {
	color: inherit;
	text-decoration: none;
}

.rh-blog-card__title a:hover {
	color: var(--rh-green-dark);
}

.rh-blog-card__excerpt {
	font-size: 0.85rem;
	color: var(--rh-text-muted);
	line-height: 1.55;
	margin-bottom: 0.5rem;
	/* Clamp to 2 visible lines */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.rh-blog__footer {
	margin-top: 1.25rem;
	font-size: 0.875rem;
}

/* ── Blog section responsive ── */

@media screen and (max-width: 640px) {
	.rh-blog {
		padding: 2rem 0;
	}

	.rh-blog-card {
		flex-direction: column;
		gap: 0.75rem;
	}

	.rh-blog-card__media {
		width: 100%;
		height: 140px;
	}

	.rh-blog-card__img,
	.rh-blog-card__placeholder {
		width: 100%;
		height: 140px;
	}

	.rh-blog-card__avatar {
		width: 30px;
		height: 30px;
		bottom: -6px;
		right: -6px;
	}
}

/* ============================================================
   Archive Filters
   ============================================================ */

.rh-archive-filters {
	margin: 0 0 2.5rem;
	padding: 1rem 0;
	border-bottom: 2px solid var(--rh-cream-dark);
}

.rh-filter-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.rh-filter-list__item {
	margin: 0;
}

.rh-filter-list__btn {
	display: inline-block;
	padding: 0.45rem 1.1rem;
	border-radius: 2rem;
	border: 1.5px solid var(--rh-cream-dark);
	background: var(--rh-white);
	color: var(--rh-text);
	font-size: 0.9rem;
	font-weight: 500;
	text-decoration: none;
	transition: background var(--rh-transition), border-color var(--rh-transition), color var(--rh-transition);
}

.rh-filter-list__btn:hover,
.rh-filter-list__btn:focus {
	background: var(--rh-green-light);
	border-color: var(--rh-green-dark);
	color: var(--rh-green-dark);
}

.rh-filter-list__btn.is-active {
	background: var(--rh-green-dark);
	border-color: var(--rh-green-dark);
	color: var(--rh-white);
	font-weight: 700;
}

/* ============================================================
   Archive No-Results
   ============================================================ */

.rh-no-results {
	padding: 3rem 1rem;
	text-align: center;
	color: var(--rh-text-muted);
	font-size: 1rem;
}

.rh-no-results a {
	color: var(--rh-green-dark);
}

/* ============================================================
   Responsive
   ============================================================ */

@media screen and (max-width: 640px) {
	.rh-hero {
		min-height: 480px;
	}

	.rh-hero__headline {
		font-size: 2rem;
	}

	.rh-hero__actions {
		flex-direction: column;
		align-items: center;
	}

	.rh-horse-card {
		margin-bottom: 1.5rem;
	}

	.rh-section-title {
		font-size: 1.6rem;
	}

	.rh-filter-list {
		gap: 0.4rem;
	}

	.rh-service-card {
		margin-bottom: 1rem;
	}
}

/* ============================================================
   Single Horse Profile
   ============================================================ */

/* ── Hero ── */

.rh-horse-hero {
	position: relative;
	min-height: 480px;
	background: linear-gradient(135deg, var(--rh-green-dark) 0%, var(--rh-earth) 100%);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}

.rh-horse-hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
}

/* Gradient rises from bottom so the name text stays legible over the photo */
.rh-horse-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(20, 35, 20, 0.90) 0%,
		rgba(20, 35, 20, 0.40) 50%,
		transparent 100%
	);
}

.rh-horse-hero--placeholder .rh-horse-hero__content {
	/* No photo: center the title vertically */
	padding-top: 4rem;
}

.rh-horse-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 0 1rem 2.5rem;
	color: var(--rh-white);
}

.rh-horse-hero__eyebrow {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rh-cream-dark);
	margin-bottom: 0.5rem;
}

.rh-horse-hero__title {
	font-size: clamp(2rem, 4vw, 3rem);
	color: var(--rh-white);
	margin-bottom: 0.75rem;
	line-height: 1.15;
}

/* ── Availability / Gender badges ── */

.rh-badge {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	padding: 0.3rem 0.75rem;
	border-radius: var(--rh-radius);
}

/* Availability badges */
.rh-badge--avail-available {
	background: var(--rh-green-dark);
	color: var(--rh-white);
}

.rh-badge--avail-sold {
	background: var(--rh-text-muted);
	color: var(--rh-white);
}

.rh-badge--avail-not-for-sale {
	background: var(--rh-earth-light);
	color: var(--rh-white);
}

/* Gender badges (shown in profile meta row) */
.rh-badge--gender {
	font-size: 0.75rem;
}

.rh-badge--stallion {
	background: var(--rh-green-light);
	color: var(--rh-green-dark);
	border: 1px solid var(--rh-green-dark);
}

.rh-badge--mare {
	background: #F3EAF5;
	color: #6B3A7D;
	border: 1px solid #C9A8D6;
}

.rh-badge--foal {
	background: #FEF3DC;
	color: #8A5A00;
	border: 1px solid #E4C06B;
}

/* ── Profile section ── */

.rh-horse-profile {
	padding: 3rem 0 2rem;
}

.rh-horse-meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem 1.25rem;
	margin-bottom: 2rem;
	padding-bottom: 1.25rem;
	border-bottom: 2px solid var(--rh-cream-dark);
}

.rh-meta-item {
	font-size: 0.9rem;
	color: var(--rh-text);
}

.rh-meta-item strong {
	color: var(--rh-earth);
}

.rh-horse-description {
	font-size: 1.02rem;
	line-height: 1.8;
	color: var(--rh-text);
}

.rh-horse-description h3 {
	font-size: 1.15rem;
	color: var(--rh-earth);
	margin-top: 2rem;
}

.rh-horse-description ul {
	padding-left: 1.25rem;
}

.rh-horse-description li {
	margin-bottom: 0.35rem;
}

.rh-horse-back {
	margin-top: 2.5rem;
	font-size: 0.9rem;
}

/* ── Inquiry sidebar card ── */

.rh-horse-sidebar {
	padding-left: 1.5rem;
}

.rh-inquiry-card {
	background: var(--rh-cream);
	border: 1px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius-lg);
	padding: 1.75rem;
	position: sticky;
	top: 2rem;
}

.rh-inquiry-card__heading {
	font-size: 1.15rem;
	color: var(--rh-earth);
	margin-bottom: 0.5rem;
}

.rh-inquiry-card__intro {
	font-size: 0.875rem;
	color: var(--rh-text-muted);
	margin-bottom: 1.25rem;
	line-height: 1.5;
}

/* ── Inquiry form ── */

.rh-form-group {
	margin-bottom: 1rem;
}

.rh-form-group label {
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--rh-earth);
	margin-bottom: 0.35rem;
}

.rh-required {
	color: #C0392B;
}

.rh-optional {
	font-weight: 400;
	color: var(--rh-text-muted);
	font-size: 0.8rem;
}

.rh-form-group input[type="text"],
.rh-form-group input[type="email"],
.rh-form-group input[type="tel"],
.rh-form-group textarea {
	width: 100%;
	padding: 0.6rem 0.85rem;
	border: 1.5px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius);
	background: var(--rh-white);
	font-size: 0.9rem;
	color: var(--rh-text);
	transition: border-color var(--rh-transition);
	box-sizing: border-box;
}

.rh-form-group input:focus,
.rh-form-group textarea:focus {
	outline: none;
	border-color: var(--rh-green-dark);
}

.rh-form-group textarea {
	resize: vertical;
	min-height: 110px;
}

.rh-btn--block {
	display: block;
	width: 100%;
	text-align: center;
}

.rh-inquiry-success {
	background: var(--rh-green-light);
	border: 1px solid var(--rh-green-dark);
	border-radius: var(--rh-radius);
	padding: 1.25rem;
	color: var(--rh-green-dark);
}

.rh-inquiry-error {
	background: #FDEDED;
	border: 1px solid #E0A0A0;
	border-radius: var(--rh-radius);
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	color: #8B2121;
	margin-bottom: 1rem;
}

/* ── Related horses section ── */

.rh-related-horses {
	background: var(--rh-cream);
	padding: 3.5rem 0 4rem;
	margin-top: 2rem;
}

.rh-related-horses .rh-section-title {
	margin-bottom: 2rem;
}

/* ── Single horse responsive ── */

@media screen and (max-width: 640px) {
	.rh-horse-hero {
		min-height: 360px;
	}

	.rh-horse-hero__title {
		font-size: 1.75rem;
	}

	.rh-horse-sidebar {
		padding-left: 0;
		margin-top: 2rem;
	}

	.rh-inquiry-card {
		position: static;
	}
}

/* ============================================================
   Page Hero (Services + About template header)
   ============================================================ */

.rh-page-hero {
	background: var(--rh-green-dark);
	color: var(--rh-white);
	padding: 4rem 1rem;
	text-align: center;
}

.rh-page-hero--earth {
	background: var(--rh-earth);
}

.rh-page-hero__eyebrow {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rh-cream-dark);
	margin-bottom: 0.75rem;
}

.rh-page-hero__title {
	font-size: clamp(1.9rem, 3.5vw, 2.75rem);
	color: var(--rh-white);
	margin-bottom: 0.75rem;
	line-height: 1.2;
}

.rh-page-hero__sub {
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.05rem;
	max-width: 520px;
	margin: 0 auto;
	line-height: 1.65;
}

/* ============================================================
   Services Template
   ============================================================ */

/* ── Section nav ── */

.rh-services-nav {
	background: var(--rh-white);
	border-bottom: 2px solid var(--rh-cream-dark);
	position: sticky;
	top: 0;
	z-index: 200;
}

.rh-services-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 0;
	overflow-x: auto;
}

.rh-services-nav__list li {
	flex-shrink: 0;
}

.rh-services-nav__list a {
	display: block;
	padding: 0.9rem 1.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--rh-text);
	text-decoration: none;
	border-bottom: 3px solid transparent;
	transition: color var(--rh-transition), border-color var(--rh-transition);
	white-space: nowrap;
}

.rh-services-nav__list a:hover,
.rh-services-nav__list a:focus {
	color: var(--rh-green-dark);
	border-bottom-color: var(--rh-green-dark);
}

/* ── Service sections ── */

.rh-service-section {
	padding: 4.5rem 0;
	background: var(--rh-white);
}

.rh-service-section--cream {
	background: var(--rh-cream);
}

.rh-service-section__title {
	font-size: 2rem;
	color: var(--rh-earth);
	margin-bottom: 0.75rem;
}

.rh-service-section__lead {
	font-size: 1.05rem;
	color: var(--rh-text-muted);
	line-height: 1.75;
	margin-bottom: 2rem;
}

/* ── Process steps ── */

.rh-steps-heading {
	font-size: 1.1rem;
	color: var(--rh-earth);
	margin-bottom: 1.25rem;
	margin-top: 2rem;
}

.rh-steps {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin-bottom: 2.5rem;
}

.rh-step {
	display: flex;
	gap: 1.25rem;
	align-items: flex-start;
}

.rh-step__num {
	flex: 0 0 auto;
	width: 2.6rem;
	height: 2.6rem;
	background: var(--rh-green-dark);
	color: var(--rh-white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.rh-step__body h4 {
	font-size: 1rem;
	color: var(--rh-earth);
	margin: 0.15rem 0 0.35rem;
}

.rh-step__body p {
	font-size: 0.925rem;
	color: var(--rh-text);
	line-height: 1.65;
	margin: 0;
}

/* ── Requirements list ── */

.rh-req-list {
	list-style: none;
	padding: 0;
	margin-bottom: 2rem;
}

.rh-req-list li {
	padding: 0.5rem 0 0.5rem 1.75rem;
	position: relative;
	font-size: 0.925rem;
	color: var(--rh-text);
	border-bottom: 1px solid var(--rh-cream-dark);
	line-height: 1.55;
}

.rh-req-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.85rem;
	width: 0.55rem;
	height: 0.55rem;
	background: var(--rh-green-dark);
	border-radius: 50%;
}

/* ── Highlight box ── */

.rh-highlight-box {
	background: var(--rh-green-light);
	border-left: 4px solid var(--rh-green-dark);
	padding: 1.1rem 1.25rem;
	font-size: 0.925rem;
	color: var(--rh-text);
	line-height: 1.65;
	border-radius: 0 var(--rh-radius) var(--rh-radius) 0;
	margin-top: 0.5rem;
}

/* ── Service aside cards ── */

.rh-service-aside {
	padding-top: 0.5rem;
}

.rh-service-aside-card {
	background: var(--rh-white);
	border: 1px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius-lg);
	padding: 1.5rem;
	margin-bottom: 1.25rem;
}

.rh-service-section--cream .rh-service-aside-card:not(.rh-service-aside-card--cta) {
	background: var(--rh-white);
}

.rh-service-aside-card--cta {
	background: var(--rh-earth);
	border-color: var(--rh-earth);
	color: var(--rh-white);
}

.rh-service-aside-card--cta p {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.9rem;
	margin-bottom: 1.1rem;
}

.rh-service-aside-card__title {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--rh-earth);
	margin-bottom: 0.85rem;
	padding-bottom: 0.6rem;
	border-bottom: 2px solid var(--rh-cream-dark);
}

.rh-service-aside-card--cta .rh-service-aside-card__title {
	color: var(--rh-white);
	border-bottom-color: rgba(255, 255, 255, 0.2);
}

.rh-fee-list {
	margin: 0 0 0.75rem;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.4rem 1rem;
	font-size: 0.875rem;
}

.rh-fee-list dt {
	color: var(--rh-text);
	font-weight: 600;
}

.rh-fee-list dd {
	color: var(--rh-text-muted);
	text-align: right;
	margin: 0;
}

.rh-fee-note {
	font-size: 0.8rem;
	color: var(--rh-text-muted);
	line-height: 1.5;
	margin: 0;
}

/* ============================================================
   About Template
   ============================================================ */

/* ── Farm story ── */

.rh-about-story {
	padding: 4.5rem 0;
	background: var(--rh-white);
}

.rh-about-story__heading {
	font-size: 1.9rem;
	color: var(--rh-earth);
	margin-bottom: 1.25rem;
}

.rh-about-story p {
	font-size: 1.02rem;
	line-height: 1.8;
	color: var(--rh-text);
	margin-bottom: 1.2rem;
}

.rh-about-story__media {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-top: 0.5rem;
}

.rh-about-story__img {
	width: 100%;
	height: auto;
	border-radius: var(--rh-radius-lg);
	background: linear-gradient(135deg, var(--rh-green-dark), var(--rh-earth));
	aspect-ratio: 4 / 5;
	object-fit: cover;
	display: block;
}

.rh-about-story__caption {
	font-size: 0.8rem;
	color: var(--rh-text-muted);
	text-align: center;
	margin-top: 0.5rem;
	font-style: italic;
}

/* ── Breed philosophy ── */

.rh-about-philosophy {
	background: var(--rh-cream);
	padding: 4.5rem 0;
}

.rh-philosophy-row {
	margin-top: 1rem;
}

.rh-about-philosophy p {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--rh-text);
	margin-bottom: 1.25rem;
}

.rh-philosophy-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.rh-philosophy-list li {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}

.rh-philosophy-list .fa-check {
	flex: 0 0 auto;
	margin-top: 0.2rem;
	color: var(--rh-green-dark);
	font-size: 1rem;
}

.rh-philosophy-list div {
	font-size: 0.925rem;
	line-height: 1.65;
	color: var(--rh-text);
}

.rh-philosophy-list strong {
	color: var(--rh-earth);
}

/* ── Raven Hill difference grid ── */

.rh-about-diff {
	background: var(--rh-white);
	padding: 4.5rem 0;
}

.rh-diff-grid {
	margin-top: 1rem;
}

.rh-diff-card {
	padding: 2rem 1.5rem;
	margin-bottom: 1.5rem;
	border: 1px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius-lg);
	transition: box-shadow var(--rh-transition);
}

.rh-diff-card:hover {
	box-shadow: 0 4px 20px rgba(44, 74, 48, 0.10);
}

.rh-diff-card__icon {
	font-size: 1.75rem;
	color: var(--rh-green-dark);
	margin-bottom: 1rem;
}

.rh-diff-card__title {
	font-size: 1.05rem;
	color: var(--rh-earth);
	margin-bottom: 0.6rem;
}

.rh-diff-card__text {
	font-size: 0.925rem;
	color: var(--rh-text);
	line-height: 1.7;
	margin: 0;
}

/* ── Location & contact ── */

.rh-about-contact {
	background: var(--rh-earth);
	padding: 4.5rem 0;
	color: var(--rh-white);
}

.rh-about-contact__heading {
	font-size: 1.75rem;
	color: var(--rh-white);
	margin-bottom: 1rem;
}

.rh-about-contact p {
	font-size: 0.975rem;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 1.1rem;
}

.rh-contact-details {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 0;
}

.rh-contact-details li {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	margin-bottom: 0.85rem;
	font-size: 0.925rem;
	color: rgba(255, 255, 255, 0.85);
}

.rh-contact-details .fa-solid {
	flex: 0 0 auto;
	margin-top: 0.2rem;
	color: var(--rh-cream-dark);
	width: 1rem;
	text-align: center;
}

.rh-contact-details a {
	color: var(--rh-white);
	text-decoration: underline;
}

.rh-contact-card {
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--rh-radius-lg);
	padding: 2rem;
}

.rh-contact-card__heading {
	font-size: 1.25rem;
	color: var(--rh-white);
	margin-bottom: 0.6rem;
}

.rh-contact-card__intro {
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.65;
	margin-bottom: 1.5rem;
}

.rh-contact-card__links {
	display: flex;
	gap: 1.5rem;
	margin-top: 1.25rem;
}

.rh-contact-card__links .rh-link {
	color: var(--rh-cream-dark);
	border-bottom-color: transparent;
	font-size: 0.875rem;
}

.rh-contact-card__links .rh-link:hover {
	color: var(--rh-cream);
	border-bottom-color: var(--rh-cream);
}

/* ── Template responsive ── */

@media screen and (max-width: 640px) {
	.rh-page-hero {
		padding: 2.75rem 1rem;
	}

	.rh-page-hero__title {
		font-size: 1.75rem;
	}

	.rh-services-nav__list a {
		padding: 0.75rem 1rem;
		font-size: 0.85rem;
	}

	.rh-service-section {
		padding: 3rem 0;
	}

	.rh-service-aside {
		margin-top: 2rem;
	}

	.rh-about-story__media {
		margin-top: 2rem;
	}

	.rh-about-contact {
		padding: 3rem 0;
	}

	.rh-contact-card {
		margin-top: 2rem;
	}

	.rh-contact-card__links {
		flex-direction: column;
		gap: 0.75rem;
	}

	.rh-diff-card {
		margin-bottom: 1rem;
	}
}

/* ============================================================
   Contact Template
   ============================================================ */

.rh-contact-body {
	padding: 4.5rem 0 5rem;
	background: var(--rh-white);
}

/* ── Form heading ── */

.rh-contact-form__heading {
	font-size: 1.75rem;
	color: var(--rh-earth);
	margin-bottom: 0.5rem;
}

.rh-contact-form__intro {
	font-size: 1rem;
	color: var(--rh-text-muted);
	line-height: 1.7;
	margin-bottom: 2rem;
}

/* ── Two-column form row ── */

.rh-form-row {
	display: flex;
	gap: 1.25rem;
}

.rh-form-group--half {
	flex: 1;
	min-width: 0;
}

/* ── Select input ── */

.rh-form-group select {
	width: 100%;
	padding: 0.6rem 0.85rem;
	border: 1px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius);
	background: var(--rh-white);
	color: var(--rh-text);
	font-size: 0.9rem;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236B6558' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	padding-right: 2.25rem;
	cursor: pointer;
}

.rh-form-group select:focus {
	outline: none;
	border-color: var(--rh-green-dark);
}

/* ── Success / error feedback ── */

.rh-contact-success {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	background: var(--rh-green-light);
	border: 1px solid var(--rh-green-dark);
	border-radius: var(--rh-radius-lg);
	padding: 1.5rem;
	margin-bottom: 2rem;
}

.rh-contact-success .fa-circle-check {
	flex: 0 0 auto;
	font-size: 1.5rem;
	color: var(--rh-green-dark);
	margin-top: 0.15rem;
}

.rh-contact-success strong {
	display: block;
	color: var(--rh-green-dark);
	font-size: 1rem;
	margin-bottom: 0.4rem;
}

.rh-contact-success p {
	font-size: 0.925rem;
	color: var(--rh-text);
	margin: 0;
	line-height: 1.6;
}

.rh-contact-error-list {
	background: #FDEDED;
	border: 1px solid #E0A0A0;
	border-radius: var(--rh-radius);
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
}

.rh-contact-error-list ul {
	margin: 0;
	padding: 0 0 0 1.25rem;
}

.rh-contact-error-list li {
	font-size: 0.9rem;
	color: #8B0000;
	margin-bottom: 0.25rem;
	line-height: 1.5;
}

/* ── Contact aside ── */

.rh-contact-aside {
	padding-top: 0.25rem;
}

.rh-contact-aside-card {
	background: var(--rh-cream);
	border: 1px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius-lg);
	padding: 1.5rem;
	margin-bottom: 1.25rem;
}

.rh-contact-aside-card__title {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--rh-earth);
	margin-bottom: 0.85rem;
	padding-bottom: 0.6rem;
	border-bottom: 2px solid var(--rh-cream-dark);
}

.rh-contact-aside-card p {
	font-size: 0.9rem;
	color: var(--rh-text);
	line-height: 1.65;
	margin-bottom: 0.75rem;
}

.rh-contact-aside-card p:last-child {
	margin-bottom: 0;
}

.rh-contact-aside-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.rh-contact-aside-list li {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	font-size: 0.9rem;
	color: var(--rh-text);
	margin-bottom: 0.85rem;
	line-height: 1.55;
}

.rh-contact-aside-list li:last-child {
	margin-bottom: 0;
}

.rh-contact-aside-list .fa-solid {
	flex: 0 0 auto;
	margin-top: 0.2rem;
	color: var(--rh-earth-light);
	width: 1rem;
	text-align: center;
}

.rh-contact-aside-list a {
	color: var(--rh-earth);
}

.rh-contact-aside-list a:hover {
	color: var(--rh-green-dark);
}

.rh-contact-quick-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.rh-contact-quick-links li {
	margin-bottom: 0.6rem;
}

.rh-contact-quick-links li:last-child {
	margin-bottom: 0;
}

.rh-contact-quick-links a {
	font-size: 0.9rem;
	color: var(--rh-earth);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid var(--rh-cream-dark);
	padding-bottom: 0.1rem;
	transition: color var(--rh-transition), border-color var(--rh-transition);
}

.rh-contact-quick-links a:hover {
	color: var(--rh-green-dark);
	border-bottom-color: var(--rh-green-dark);
}

/* ── Contact responsive ── */

@media screen and (max-width: 640px) {
	.rh-contact-body {
		padding: 3rem 0 4rem;
	}

	.rh-form-row {
		flex-direction: column;
		gap: 0;
	}

	.rh-contact-aside {
		margin-top: 2.5rem;
	}
}

/* ============================================================
   Homepage Book Teaser
   ============================================================ */

.rh-book-teaser {
	background: var(--rh-cream);
	padding: var(--rh-section-pad);
	border-top: 1px solid var(--rh-cream-dark);
	border-bottom: 1px solid var(--rh-cream-dark);
}

.rh-book-teaser__media {
	display: flex;
	align-items: center;
	justify-content: center;
}

.rh-book-teaser__cover {
	max-width: 280px;
	width: 100%;
	height: auto;
	border-radius: var(--rh-radius-lg);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
	display: block;
}

.rh-book-teaser__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.rh-book-teaser__eyebrow {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rh-earth-light);
	margin-bottom: 0.75rem;
}

.rh-book-teaser__title {
	font-size: clamp(1.4rem, 2.5vw, 1.9rem);
	color: var(--rh-earth);
	margin-bottom: 1rem;
	line-height: 1.25;
}

.rh-book-teaser__title a {
	color: inherit;
	text-decoration: none;
}

.rh-book-teaser__title a:hover {
	color: var(--rh-green-dark);
}

.rh-book-teaser__excerpt {
	font-size: 0.975rem;
	color: var(--rh-text);
	line-height: 1.75;
	margin-bottom: 1.75rem;
}

.rh-book-teaser__excerpt p {
	margin: 0;
}

@media screen and (max-width: 640px) {
	.rh-book-teaser__media {
		margin-bottom: 2rem;
	}

	.rh-book-teaser__cover {
		max-width: 200px;
	}
}

/* ============================================================
   Books Archive Header
   ============================================================ */

.rh-books-header {
	background: var(--rh-earth);
	padding: 3.5rem 1rem 3rem;
	text-align: center;
}

.rh-books-header__eyebrow {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rh-cream-dark);
	margin-bottom: 0.75rem;
}

.rh-books-header__title {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	color: var(--rh-white);
	margin-bottom: 0.6rem;
	line-height: 1.2;
}

.rh-books-header__tagline {
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.05rem;
	max-width: 560px;
	margin: 0 auto;
	line-height: 1.65;
}

/* ============================================================
   Book Card (archive + related)
   ============================================================ */

.rh-books-archive {
	padding: var(--rh-section-pad);
	background: var(--rh-white);
}

.rh-book-card {
	margin-bottom: 2.5rem;
}

.rh-book-card__media {
	position: relative;
	border-radius: var(--rh-radius-lg) var(--rh-radius-lg) 0 0;
	background: var(--rh-cream);
	height: 280px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 0.75rem;
}

/* object-fit: contain keeps the full cover visible — never crops */
.rh-book-card__cover {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	border-radius: var(--rh-radius);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
	transition: transform 0.35s ease;
}

.rh-book-card:not(.rh-book-card--placeholder):hover .rh-book-card__cover {
	transform: scale(1.03);
}

.rh-book-card__cover-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--rh-earth-light);
	font-size: 3rem;
}

.rh-book-num-badge {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	background: var(--rh-earth);
	color: var(--rh-cream);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 0.3rem 0.7rem;
	border-radius: var(--rh-radius);
}

.rh-book-card__body {
	background: var(--rh-white);
	border: 1px solid var(--rh-cream-dark);
	border-top: none;
	border-radius: 0 0 var(--rh-radius-lg) var(--rh-radius-lg);
	padding: 1.25rem 1.5rem 1.5rem;
}

.rh-book-status {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.25rem 0.65rem;
	border-radius: var(--rh-radius);
	margin-bottom: 0.6rem;
}

.rh-book-status--available {
	background: var(--rh-green-light);
	color: var(--rh-green-dark);
	border: 1px solid var(--rh-green-dark);
}

.rh-book-status--coming-soon {
	background: #FEF3DC;
	color: #8A5A00;
	border: 1px solid #E4C06B;
}

.rh-book-status--pre-order {
	background: #F0F0F0;
	color: #555555;
	border: 1px solid #CCCCCC;
}

.rh-book-card__title {
	font-size: 1.1rem;
	color: var(--rh-earth);
	margin-bottom: 0.6rem;
	line-height: 1.3;
}

.rh-book-card__title a {
	color: inherit;
	text-decoration: none;
}

.rh-book-card__title a:hover {
	color: var(--rh-green-dark);
}

.rh-book-card__excerpt {
	font-size: 0.9rem;
	color: var(--rh-text);
	line-height: 1.65;
	margin-bottom: 1.25rem;
}

/* Disabled / Coming Soon button state */
.rh-btn--disabled {
	opacity: 0.6;
	cursor: default;
	pointer-events: none;
	background: var(--rh-cream-dark);
	color: var(--rh-text-muted);
	border: 2px solid var(--rh-cream-dark);
}

/* ── Placeholder card ── */

.rh-book-card--placeholder {
	background: var(--rh-cream);
	border: 2px dashed var(--rh-cream-dark);
	border-radius: var(--rh-radius-lg);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 3rem 2rem;
	min-height: 220px;
}

.rh-book-card--placeholder .fa-horse {
	font-size: 2.5rem;
	color: var(--rh-earth-light);
	margin-bottom: 1rem;
}

.rh-book-card__placeholder-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--rh-earth-light);
	margin-bottom: 0.5rem;
}

.rh-book-card__placeholder-text {
	font-size: 0.875rem;
	color: var(--rh-text-muted);
	max-width: 300px;
	margin: 0 auto;
	line-height: 1.6;
}

/* ============================================================
   Single Book
   ============================================================ */

.rh-book-hero {
	background: var(--rh-earth);
	padding: 4rem 1rem 3rem;
	text-align: center;
}

.rh-book-presentation {
	max-width: 380px;
	margin: 0 auto 2rem;
}

/* Layered shadow: slight offset creates physical page-thickness feel */
.rh-book-presentation__cover {
	width: 100%;
	height: auto;
	border-radius: var(--rh-radius-lg);
	box-shadow:
		3px 3px 0 rgba(0, 0, 0, 0.07),
		6px 6px 0 rgba(0, 0, 0, 0.05),
		0 20px 48px rgba(0, 0, 0, 0.28),
		0 6px 16px rgba(0, 0, 0, 0.14);
	display: block;
}

.rh-book-hero__meta {
	color: var(--rh-white);
}

.rh-book-series-eyebrow {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rh-cream-dark);
	margin-bottom: 0.75rem;
}

.rh-book-single__title {
	font-size: clamp(1.6rem, 3vw, 2.25rem);
	color: var(--rh-white);
	margin-bottom: 0.75rem;
	line-height: 1.2;
}

.rh-book-single {
	padding: 4rem 0 3rem;
	background: var(--rh-white);
}

.rh-book-content {
	font-size: 1.02rem;
	line-height: 1.8;
	color: var(--rh-text);
	margin-bottom: 2rem;
}

.rh-book-content h3 {
	font-size: 1.15rem;
	color: var(--rh-earth);
}

.rh-book-purchase {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem;
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 2px solid var(--rh-cream-dark);
}

.rh-book-purchase__coming-soon {
	font-size: 0.95rem;
	color: var(--rh-text-muted);
	margin: 0;
}

.rh-book-back {
	font-size: 0.9rem;
}

/* ── Characters section ── */

.rh-book-characters {
	background: var(--rh-cream);
	padding: 4rem 0;
	border-top: 1px solid var(--rh-cream-dark);
}

.rh-book-characters__title {
	font-size: 1.75rem;
	color: var(--rh-earth);
	text-align: center;
	margin-bottom: 0.5rem;
}

.rh-book-characters__intro {
	text-align: center;
	color: var(--rh-text-muted);
	font-size: 1rem;
	margin-bottom: 2.5rem;
}

.rh-character-card {
	background: var(--rh-white);
	border: 1px solid var(--rh-cream-dark);
	border-radius: var(--rh-radius-lg);
	padding: 2rem 1.75rem;
	margin-bottom: 1.5rem;
	height: 100%;
}

.rh-character-card__name {
	font-size: 1.2rem;
	color: var(--rh-earth);
	margin-bottom: 0.75rem;
}

.rh-character-card__desc {
	font-size: 0.95rem;
	color: var(--rh-text);
	line-height: 1.75;
	margin: 0;
}

/* ── Related books section ── */

.rh-related-books {
	background: var(--rh-white);
	padding: 4rem 0 5rem;
	border-top: 1px solid var(--rh-cream-dark);
}

.rh-related-books .rh-section-title {
	margin-bottom: 2rem;
}

/* ── Single book responsive ── */

@media screen and (max-width: 640px) {
	.rh-book-hero {
		padding: 2.5rem 1rem 2rem;
	}

	.rh-book-presentation {
		max-width: 200px;
	}

	.rh-book-purchase {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
	}
}

/* Fix book cover image overflow on archive page */
.rh-book-card__media {
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    max-height: 320px;
}

.rh-book-card__media img {
    width: 100%;
    height: 100%;
    max-height: 320px;
    object-fit: contain;
}