/* =========================================================
   John Elsadai Ministries — Design tokens
   ========================================================= */
:root {
	--color-primary: #16233F;      /* deep navy blue — authority, trust */
	--color-primary-light: #24365C;
	--color-primary-dark: #0D1729;
	--color-gold: #C6A15A;         /* warm elegant gold */
	--color-gold-dark: #8C6A2E;    /* darkened from #A6803C for WCAG AA text contrast on white */
	--color-gold-light: #E8D9B8;
	--color-white: #FFFFFF;
	--color-sky: #8FCBE0;          /* soft sky blue highlight */
	--color-success: #2F855A;
	--color-gray-50: #F7F6F3;
	--color-gray-100: #F0EEE9;
	--color-gray-300: #D8D5CE;
	--color-gray-500: #8A8780;
	--color-text: #26261F;
	--color-text-muted: #5B5A52;

	--font-heading: 'Merriweather', Georgia, serif;
	--font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	--radius-md: 10px;
	--radius-lg: 18px;
	--shadow-sm: 0 1px 3px rgba(22,35,63,0.08);
	--shadow-md: 0 8px 24px rgba(22,35,63,0.10);
	--shadow-lg: 0 20px 45px rgba(22,35,63,0.14);
	--container-w: 1200px;
}

/* =========================================================
   Reset & base
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; max-width: 100%; overflow-x: hidden; }
body {
	margin: 0;
	font-family: var(--font-body);
	color: var(--color-text);
	background: var(--color-white);
	line-height: 1.65;
	font-size: 17px;
	-webkit-font-smoothing: antialiased;
	max-width: 100%;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-primary); text-decoration: none; }
a:hover { color: var(--color-gold-dark); }
h1, h2, h3, h4, h5 {
	font-family: var(--font-heading);
	color: var(--color-primary);
	line-height: 1.25;
	margin: 0 0 0.5em;
	font-weight: 700;
}
h1 { font-size: clamp(2.1rem, 4vw, 3.4rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1.1em; }
ul, ol { padding-left: 1.3em; }
button, input, select, textarea { font-family: inherit; font-size: 1rem; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px,1px,1px,1px); white-space: nowrap;
}
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 10000;
	background: var(--color-primary); color: #fff; padding: 0.8em 1.2em;
	border-radius: 0 0 8px 0;
}
.skip-link:focus { left: 0; }

:focus-visible {
	outline: 3px solid var(--color-sky);
	outline-offset: 2px;
}

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

/* =========================================================
   Buttons
   ========================================================= */
.je-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
	font-family: var(--font-body); font-weight: 600; font-size: 0.98rem;
	padding: 0.85em 1.75em; border-radius: 999px; border: 2px solid transparent;
	cursor: pointer; transition: all 0.2s ease; line-height: 1.1;
}
.je-btn-primary { background: var(--color-primary); color: #fff; }
.je-btn-primary:hover { background: var(--color-primary-light); color: #fff; }
.je-btn-gold { background: var(--color-gold); color: var(--color-primary-dark); }
.je-btn-gold:hover { background: var(--color-gold-dark); color: #fff; }
.je-btn-outline { background: transparent; border-color: #fff; color: #fff; }
.je-btn-outline:hover { background: #fff; color: var(--color-primary); }
.je-btn-outline-dark { background: transparent; border-color: var(--color-primary); color: var(--color-primary); }
.je-btn-outline-dark:hover { background: var(--color-primary); color: #fff; }
.je-btn-sm { padding: 0.55em 1.2em; font-size: 0.88rem; }

/* =========================================================
   Header
   ========================================================= */
.je-edit-link { display: block; background: var(--color-sky); text-align: center; font-size: 0.85rem; }
.je-edit-link a { color: var(--color-primary-dark); display: block; padding: 6px; font-weight: 600; }

.site-header {
	position: sticky; top: 0; z-index: 999;
	background: rgba(255,255,255,0.97); backdrop-filter: blur(6px);
	border-bottom: 1px solid var(--color-gray-100);
}
.site-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	padding: 14px 24px; max-width: var(--container-w); margin: 0 auto;
}
.site-branding { display: flex; align-items: center; gap: 12px; }
.site-branding img { max-height: 90px; width: auto; }
.site-title { font-family: var(--font-heading); font-size: 1.4rem; font-weight: 700; color: var(--color-primary); margin: 0; }
.site-title a { color: inherit; }
.site-tagline { font-size: 0.78rem; color: var(--color-text-muted); margin: 0; letter-spacing: 0.03em; }
.site-logo-link { display: block; line-height: 0; }
.site-logo-svg { height: 80px; width: auto; display: block; }
.custom-logo-link img { max-height: 90px; width: auto; }

.main-nav ul { list-style: none; display: flex; gap: 2px; margin: 0; padding: 0; white-space: nowrap; }
.main-nav li { position: relative; }
.main-nav a {
	display: block; padding: 10px 11px; color: var(--color-primary);
	font-weight: 600; font-size: 0.92rem; border-radius: 8px; transition: background 0.15s;
}
.main-nav a:hover, .main-nav .current-menu-item > a { background: var(--color-gray-100); color: var(--color-primary); }
.header-actions { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.header-cart {
	position: relative; display: flex; align-items: center; color: var(--color-primary);
}
.header-cart__count {
	position: absolute; top: -8px; right: -10px; background: var(--color-gold); color: var(--color-primary-dark);
	font-size: 0.65rem; font-weight: 700; line-height: 1; border-radius: 999px; min-width: 16px; height: 16px;
	display: flex; align-items: center; justify-content: center; padding: 2px;
}
.nav-toggle {
	display: none; background: none; border: none; cursor: pointer; padding: 8px;
}
.nav-toggle span { display: block; width: 26px; height: 2px; background: var(--color-primary); margin: 5px 0; transition: 0.2s; }

@media (max-width: 1180px) {
	.main-nav a { padding: 10px 9px; font-size: 0.88rem; }
}
@media (max-width: 960px) {
	.nav-toggle { display: block; }
	.main-nav {
		display: none; position: absolute; top: 100%; left: 0; right: 0;
		background: #fff; border-top: 1px solid var(--color-gray-100); box-shadow: var(--shadow-md);
	}
	.main-nav.is-open { display: block; }
	.main-nav ul { flex-direction: column; padding: 12px; }
	.main-nav a { padding: 12px 16px; }
	/* Once nav collapses to the hamburger there's no room for the full-size
	   wordmark logo *and* the CTA button *and* the menu/cart icons on one
	   row — hide the CTA and shrink the logo (keeping the full wordmark,
	   just smaller) so nothing gets pushed off-screen. */
	.header-actions .je-btn { display: none; }
	.site-logo-svg { height: 52px; }
}
@media (max-width: 560px) {
	.site-header__inner { padding: 12px 16px; }
	.header-actions { gap: 10px; }
	/* Smaller still, so the full lockup (icon + JOHN ELSADAI + tagline)
	   keeps fitting alongside the cart and hamburger down to ~320px wide
	   phones without overflowing. */
	.site-logo-svg { height: 44px; }
}

/* =========================================================
   Hero
   ========================================================= */
.hero {
	background: linear-gradient(120deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
	color: #fff; position: relative; overflow: hidden;
}
.hero__inner {
	max-width: var(--container-w); margin: 0 auto; padding: 80px 24px;
	display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: center;
}
/* Prevent CSS Grid "blowout" — replaced elements (img) otherwise force
   their intrinsic size as the track's minimum, breaking mobile layouts. */
.hero__inner > *, .latest-book > * { min-width: 0; }

.latest-book { display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 56px; align-items: center; }
@media (max-width: 720px) {
	.latest-book { grid-template-columns: 1fr; text-align: center; }
	.latest-book__cover { max-width: 280px; margin: 0 auto; }
}
.hero__eyebrow { color: var(--color-gold-light); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.85rem; margin-bottom: 14px; }
.hero h1 { color: #fff; margin-bottom: 0.5em; }
.hero__sub { color: #E4E7EE; font-size: 1.15rem; max-width: 46ch; margin-bottom: 2em; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.hero__image { position: relative; }
.hero__image img { border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); border: 6px solid rgba(255,255,255,0.12); }
.hero__image::after {
	content: ""; position: absolute; inset: -18px -18px auto auto; width: 130px; height: 130px;
	border: 3px solid var(--color-gold); border-radius: 50%; z-index: -1; opacity: 0.5;
}
@media (max-width: 880px) {
	.hero__inner { grid-template-columns: 1fr; padding: 56px 24px; text-align: center; }
	.hero__sub { margin-left: auto; margin-right: auto; }
	.hero__actions { justify-content: center; }
	.hero__image { order: -1; max-width: 320px; margin: 0 auto; }
}

/* =========================================================
   Sections
   ========================================================= */
.section { padding: 84px 0; }
.section--alt { background: var(--color-gray-50); }
.section--navy { background: var(--color-primary); color: #fff; }
.section--navy h2, .section--navy h3 { color: #fff; }
.section__header { text-align: center; max-width: 720px; margin: 0 auto 48px; }
.section__eyebrow { color: var(--color-gold-dark); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.82rem; }
.section--navy .section__eyebrow { color: var(--color-gold); }
.section__subtitle { color: var(--color-text-muted); font-size: 1.08rem; }
.section__footer-cta { text-align: center; margin-top: 44px; }

/* =========================================================
   Grids & Cards
   ========================================================= */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.card-grid--2 { grid-template-columns: repeat(2, 1fr); }
.card-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .card-grid, .card-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .card-grid, .card-grid--2, .card-grid--4 { grid-template-columns: 1fr; } }

.je-card {
	background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
	overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; border: 1px solid var(--color-gray-100);
}
.je-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.je-card__media { aspect-ratio: 3/4; overflow: hidden; background: var(--color-gray-100); }
.je-card__media img { width: 100%; height: 100%; object-fit: cover; }
.je-card__media--square { aspect-ratio: 1/1; }
.je-card__body { padding: 20px 22px 24px; }
.je-card__meta { font-size: 0.8rem; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 6px; }
.je-card__title { font-size: 1.15rem; margin-bottom: 8px; }
.je-card__title a { color: var(--color-primary); }
.je-card__excerpt { color: var(--color-text-muted); font-size: 0.95rem; margin-bottom: 14px; }

.je-badge {
	display: inline-block; background: var(--color-gold-light); color: var(--color-primary);
	font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
	padding: 4px 10px; border-radius: 999px; margin-bottom: 8px;
}
.je-badge--navy { background: var(--color-primary); color: #fff; }
.je-badge--soon { background: var(--color-sky); color: var(--color-primary-dark); }

/* =========================================================
   Testimonials
   ========================================================= */
.testimonial-card { padding: 32px; text-align: center; }
.testimonial-card__quote { font-family: var(--font-heading); font-style: italic; font-size: 1.1rem; color: var(--color-primary); }
.testimonial-card__author { font-weight: 700; margin-top: 12px; }
.testimonial-card__role { color: var(--color-text-muted); font-size: 0.9rem; }

/* =========================================================
   Impact stats
   ========================================================= */
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; text-align: center; }
@media (max-width: 760px) { .stats-grid { grid-template-columns: repeat(2, 1fr); } }
.stat-item .stat-number { font-family: var(--font-heading); font-size: 2.6rem; color: var(--color-gold); font-weight: 900; }
.stat-item .stat-label { color: #D6DAE4; font-size: 0.95rem; }

/* =========================================================
   Newsletter
   ========================================================= */
.newsletter-section { background: var(--color-gold-light); text-align: center; }
.je-newsletter-fallback, .mailpoet_form { display: flex; gap: 10px; max-width: 460px; margin: 0 auto; flex-wrap: wrap; justify-content: center; }
.je-newsletter-fallback input[type=email] {
	flex: 1; min-width: 220px; padding: 0.85em 1.1em; border-radius: 999px; border: 1px solid var(--color-gray-300);
}

/* =========================================================
   Footer
   ========================================================= */
.site-footer { background: var(--color-primary-dark); color: #C9CEDB; padding: 64px 0 24px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; margin-bottom: 40px; }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-widget-title, .footer-col h3 { color: #fff; font-size: 1.05rem; margin-bottom: 16px; }
.footer-brand__mark { margin-bottom: 14px; border-radius: 50%; }
.footer-brand h3 { font-family: var(--font-heading); }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li { margin-bottom: 10px; }
.footer-col a { color: #C9CEDB; }
.footer-col a:hover { color: var(--color-gold); }
.social-icons { display: flex; gap: 12px; margin-top: 16px; }
.social-icons a {
	width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,0.08);
	display: flex; align-items: center; justify-content: center; color: #fff; font-size: 0.85rem;
}
.social-icons a:hover { background: var(--color-gold); color: var(--color-primary-dark); }
.footer-bottom {
	border-top: 1px solid rgba(255,255,255,0.1); padding-top: 24px;
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: 0.85rem;
}
.footer-bottom a { color: #C9CEDB; }

/* =========================================================
   Breadcrumbs, reading progress, share
   ========================================================= */
.je-breadcrumbs { background: var(--color-gray-50); padding: 14px 0; }
.je-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; max-width: var(--container-w); margin: 0 auto; padding: 0 24px; font-size: 0.85rem; }
.je-breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 6px; color: var(--color-gray-500); }
.je-breadcrumbs li[aria-current] { color: var(--color-text-muted); }

.reading-progress-bar { position: fixed; top: 0; left: 0; height: 3px; background: var(--color-gold); z-index: 1001; width: 0%; }

.je-share-buttons { display: flex; gap: 10px; margin: 24px 0; flex-wrap: wrap; }
.je-share-buttons a {
	padding: 8px 14px; background: var(--color-gray-100); border-radius: 999px; font-size: 0.85rem; font-weight: 600; color: var(--color-primary);
}
.je-share-buttons a:hover { background: var(--color-gold-light); }

/* =========================================================
   Content area / single pages
   ========================================================= */
.page-header { padding: 56px 0 20px; text-align: center; }
.page-header__title { margin-bottom: 10px; }
.page-header .je-testimonial-cta { margin-top: 22px; display: inline-flex; align-items: center; gap: 9px; }
.entry-content { max-width: 760px; margin: 0 auto; }
.entry-content img { border-radius: var(--radius-md); }
.entry-content blockquote {
	border-left: 4px solid var(--color-gold); margin: 1.5em 0; padding: 0.5em 1.5em;
	font-family: var(--font-heading); font-style: italic; color: var(--color-primary);
}
.single-wrap { padding: 48px 0 90px; }
.entry-meta { color: var(--color-text-muted); font-size: 0.9rem; text-align: center; margin-bottom: 30px; }
.entry-meta span:not(:last-child)::after { content: "•"; margin: 0 8px; }

/* =========================================================
   Filters / search
   ========================================================= */
.je-filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 44px; }
.je-filters select, .je-filters input[type=search] {
	padding: 0.7em 1em; border-radius: 8px; border: 1px solid var(--color-gray-300); background: #fff;
}
.je-search-form { display: flex; max-width: 480px; margin: 0 auto 40px; gap: 8px; }
.je-search-form input { flex: 1; padding: 0.8em 1.1em; border-radius: 999px; border: 1px solid var(--color-gray-300); }

/* =========================================================
   Forms (Contact Form 7 baseline)
   ========================================================= */
.wpcf7-form p { margin-bottom: 1.1em; }
.wpcf7-form label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 0.92rem; }
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form input[type=tel],
.wpcf7-form input[type=date], .wpcf7-form input[type=url], .wpcf7-form select, .wpcf7-form textarea {
	width: 100%; padding: 0.85em 1em; border: 1px solid var(--color-gray-300); border-radius: 8px; background: #fff;
}
.wpcf7-form textarea { min-height: 130px; }
.wpcf7-form input[type=submit] {
	background: var(--color-primary); color: #fff; border: none; border-radius: 999px;
	padding: 0.9em 2em; font-weight: 600; cursor: pointer;
}
.wpcf7-form input[type=submit]:hover { background: var(--color-primary-light); }
.wpcf7-not-valid-tip { color: #B3261E; font-size: 0.85rem; }
.wpcf7-response-output { border-radius: 8px; padding: 12px 16px !important; margin-top: 16px !important; }

.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
@media (max-width: 880px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-info-item { display: flex; gap: 14px; margin-bottom: 22px; }
.contact-info-item .dashicons { color: var(--color-gold-dark); }
.je-map-embed iframe { width: 100%; height: 320px; border: 0; border-radius: var(--radius-md); }

/* =========================================================
   Testimonial submission form
   ========================================================= */
.je-testimonial-form p { margin-bottom: 1.1em; }
.je-testimonial-form label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 0.92rem; }
.je-testimonial-form .je-form-optional { font-weight: 400; color: var(--color-text-muted); }
.je-testimonial-form input[type=text], .je-testimonial-form input[type=url],
.je-testimonial-form select, .je-testimonial-form textarea {
	width: 100%; padding: 0.85em 1em; border: 1px solid var(--color-gray-300); border-radius: 8px; background: #fff;
}
.je-testimonial-form textarea { min-height: 130px; }
.je-testimonial-form .je-form-hint { color: var(--color-text-muted); font-size: 0.85rem; }
.je-testimonial-form .je-btn { border: none; cursor: pointer; }
.je-hp-field { position: absolute; left: -9999px; top: -9999px; }
.je-form-notice { border-radius: 8px; padding: 12px 16px; margin-bottom: 20px; font-size: 0.95rem; }
.je-form-notice--success { background: #E6F4EA; color: #1E4620; }
.je-form-notice--error { background: #FCE8E6; color: #8A1C13; }

/* =========================================================
   Testimonial submission modal
   ========================================================= */
body.je-modal-open { overflow: hidden; }
.je-modal[hidden] { display: none; }
.je-modal {
	position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 24px;
}
.je-modal__backdrop {
	position: absolute; inset: 0; background: rgba(20, 24, 38, 0.6); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
}
.je-modal__panel {
	position: relative; background: #fff; border-radius: var(--radius-lg); max-width: 560px; width: 100%;
	max-height: 88vh; overflow-y: auto; padding: 44px 40px; box-shadow: 0 24px 64px rgba(15, 23, 42, 0.3);
	animation: je-modal-in 0.22s ease-out;
}
@keyframes je-modal-in {
	from { opacity: 0; transform: translateY(14px) scale(0.97); }
	to { opacity: 1; transform: none; }
}
.je-modal__close {
	position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; border-radius: 50%; border: none;
	background: var(--color-gray-100); color: var(--color-primary); font-size: 1.5rem; line-height: 1; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
}
.je-modal__close:hover { background: var(--color-gold-light); }
.je-modal__panel h2 { margin-bottom: 6px; }
.je-modal__panel .section__subtitle { margin-bottom: 26px; }
@media (max-width: 620px) { .je-modal__panel { padding: 32px 22px; } }

.je-tabs { display: flex; gap: 8px; justify-content: center; margin-bottom: 36px; flex-wrap: wrap; }
.je-tabs button {
	background: var(--color-gray-100); border: none; padding: 10px 20px; border-radius: 999px; cursor: pointer; font-weight: 600;
}
.je-tabs button.is-active { background: var(--color-primary); color: #fff; }

/* =========================================================
   WooCommerce (Books)
   ========================================================= */
.woocommerce-products-header,
.woocommerce-products-header + .woocommerce-notices-wrapper {
	max-width: var(--container-w); margin: 0 auto; padding: 56px 24px 0; text-align: center;
}
.woocommerce-products-header__title.page-title { font-family: var(--font-heading); color: var(--color-primary); margin-bottom: 10px; }
.content-area, #primary { max-width: var(--container-w); margin: 0 auto; padding: 20px 24px 90px; }
.woocommerce-result-count, .woocommerce-ordering {
	font-size: 0.88rem; color: var(--color-text-muted); margin: 0 0 24px;
}
.woocommerce-ordering select { padding: 0.5em 0.8em; border-radius: 8px; border: 1px solid var(--color-gray-300); }

ul.products { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; padding: 0; margin: 0 0 40px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; display: none; }
/* Neutralize WooCommerce float-grid sizing so CSS grid controls layout */
.woocommerce ul.products li.product,
.woocommerce ul.products.columns-2 li.product { float: none; width: auto; margin: 0; clear: none; }
@media (max-width: 620px) { ul.products { grid-template-columns: 1fr; gap: 32px; } }
ul.products li.product {
	position: relative; background: #fff; border: 1px solid var(--color-gray-100); border-radius: var(--radius-lg);
	overflow: hidden; box-shadow: var(--shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease;
}
ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
ul.products li.product a.woocommerce-LoopProduct-link { display: block; }
ul.products li.product img { aspect-ratio: 2/3; object-fit: cover; transition: transform 0.4s ease; }
ul.products li.product:hover img { transform: scale(1.03); }
ul.products li.product .woocommerce-loop-product__title { font-size: 1.12rem; padding: 18px 20px 4px; color: var(--color-primary); line-height: 1.35; }
ul.products li.product .price { padding: 0 20px; color: var(--color-gold-dark); font-weight: 700; font-size: 1.05rem; }
ul.products li.product .price del { color: var(--color-gray-500); font-weight: 400; opacity: 0.7; }
ul.products li.product .price ins { text-decoration: none; }
ul.products li.product .button {
	display: block; margin: 16px 20px 22px; text-align: center; background: var(--color-primary);
	color: #fff; border-radius: 999px; padding: 0.75em; font-weight: 600; letter-spacing: 0.01em;
}
ul.products li.product .button:hover { background: var(--color-gold-dark); }
ul.products li.product .onsale, ul.products li.product .je-cover-badge {
	position: absolute; top: 14px; left: 14px; z-index: 2;
	background: var(--color-gold); color: var(--color-primary-dark); font-size: 0.72rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: 0.04em; padding: 5px 12px; border-radius: 999px; box-shadow: var(--shadow-sm);
}
ul.products li.product.outofstock .je-cover-badge { background: var(--color-sky); }

.woocommerce-product-gallery img { border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.single-product .summary .price { font-size: 1.6rem; color: var(--color-gold-dark); font-weight: 800; }
.single-product .product_title { margin-bottom: 6px; }
.single-product .cart { display: flex; align-items: center; gap: 12px; margin: 26px 0; }
.single-product .quantity .qty {
	width: 64px; height: 48px; text-align: center; border: 1px solid var(--color-gray-300); border-radius: 8px; font-size: 1rem;
}
.single-product .single_add_to_cart_button,
.single-product a.button.product_type_simple {
	background: var(--color-primary) !important; border: none !important; color: #fff !important;
	border-radius: 999px !important; padding: 0.9em 2.2em !important; font-weight: 600 !important;
	font-size: 1rem !important; box-shadow: none !important; text-transform: none !important;
}
.single-product .single_add_to_cart_button:hover { background: var(--color-gold-dark) !important; color: #fff !important; }
.single-product .product_meta { color: var(--color-text-muted); font-size: 0.9rem; }
.single-product .product_meta a { color: var(--color-primary); font-weight: 600; }

.woocommerce-tabs ul.tabs { border: none; margin: 0 0 30px; padding: 0; display: flex; gap: 6px; justify-content: center; }
.woocommerce-tabs ul.tabs li {
	background: var(--color-gray-100) !important; border: none !important; border-radius: 999px !important;
	margin: 0 !important; padding: 0 !important;
}
.woocommerce-tabs ul.tabs li a { padding: 10px 22px !important; font-weight: 600; color: var(--color-primary); }
.woocommerce-tabs ul.tabs li.active { background: var(--color-primary) !important; }
.woocommerce-tabs ul.tabs li.active a { color: #fff !important; }
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs .panel { max-width: 760px; margin: 0 auto; border: none !important; padding: 0 !important; }
.woocommerce-Reviews .comment-form input, .woocommerce-Reviews .comment-form textarea {
	width: 100%; padding: 0.8em 1em; border: 1px solid var(--color-gray-300); border-radius: 8px;
}
.book-meta-table { width: 100%; border-collapse: collapse; margin: 24px 0; }
.book-meta-table td { padding: 8px 0; border-bottom: 1px solid var(--color-gray-100); }
.book-meta-table td:first-child { font-weight: 600; width: 40%; color: var(--color-text-muted); }
.book-purchase-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0; }
.related.products { max-width: var(--container-w); margin: 0 auto; }
.related.products > h2 { text-align: center; font-size: 1.7rem; margin-bottom: 32px; }

/* =========================================================
   Events (The Events Calendar) light styling overrides
   ========================================================= */
.tribe-events, .tribe-events-single { max-width: var(--container-w); margin: 0 auto; padding: 0 24px 60px; }
.tribe-events-schedule h2, .tribe-event-schedule-details { color: var(--color-primary); }

/* =========================================================
   Misc / utility
   ========================================================= */
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.je-empty-state { text-align: center; padding: 60px 0; color: var(--color-text-muted); }
.je-cta-banner {
	background: linear-gradient(120deg, var(--color-primary), var(--color-primary-dark)); color: #fff;
	border-radius: var(--radius-lg); padding: 56px; text-align: center; margin: 60px 0;
}
.je-cta-banner h2 { color: #fff; }
.je-cta-banner .je-btn { margin-top: 10px; }

.timeline { position: relative; max-width: 760px; margin: 0 auto; padding-left: 30px; border-left: 3px solid var(--color-gold-light); }
.timeline-item { position: relative; margin-bottom: 34px; }
.timeline-item::before {
	content: ""; position: absolute; left: -38px; top: 4px; width: 14px; height: 14px;
	border-radius: 50%; background: var(--color-gold); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--color-gold);
}
.timeline-item .timeline-year { color: var(--color-gold-dark); font-weight: 700; font-size: 0.9rem; }

.gallery-grid { columns: 3; column-gap: 16px; }
@media (max-width: 760px) { .gallery-grid { columns: 2; } }
@media (max-width: 480px) { .gallery-grid { columns: 1; } }
.gallery-grid img { margin-bottom: 16px; border-radius: var(--radius-md); width: 100%; }

.cookie-notice, #cmplz-cookiebanner { font-family: var(--font-body) !important; }
