/* ====================================================
   Journey with Mary — site-wide styling
   ==================================================== */
body {
	background: #faf6ef !important;
	color: #2a2520;
	font-family: 'EB Garamond', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif !important;
	font-size: 19px;
	line-height: 1.7;
}

/* ====================================================
   WIDE CONTENT — text 1100, images 1400, container 1500
   ==================================================== */
:root {
}

/* Post container takes most of the screen */
.wp-block-post-content {
	max-width: 1500px !important;
	margin-left: auto;
	margin-right: auto;
	padding-left: 32px;
	padding-right: 32px;
}

/* Text blocks at a comfortable wide reading width */
.wp-block-post-content > p,
.wp-block-post-content > h1,
.wp-block-post-content > h2,
.wp-block-post-content > h3,
.wp-block-post-content > h4,
.wp-block-post-content > h5,
.wp-block-post-content > h6,
.wp-block-post-content > ul,
.wp-block-post-content > ol,
.wp-block-post-content > .wp-block-paragraph,
.wp-block-post-content > .wp-block-heading,
.wp-block-post-content > .wp-block-list,
.wp-block-post-content > .wp-block-quote,
.wp-block-post-content > .wp-block-buttons,
.wp-block-post-content > .wp-block-separator {
	max-width: 1100px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Images / cover blocks / columns / galleries — even wider */
.wp-block-post-content > .wp-block-image,
.wp-block-post-content > .wp-block-cover,
.wp-block-post-content > .wp-block-columns,
.wp-block-post-content > .wp-block-gallery,
.wp-block-post-content > .alignwide {
	max-width: 1400px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Full-width covers go edge-to-edge */
.wp-block-post-content > .alignfull,
.wp-block-cover.alignfull {
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

/* ====================================================
   Header band — visible transition line
   ==================================================== */
header.wp-block-template-part {
	background: #f3eddf !important;
	border-bottom: 1px solid #d8cdb5 !important;
	padding-top: 1.4em !important;
	padding-bottom: 0 !important;
}

header .wp-block-site-title {
	margin-bottom: .5em !important;
}

header nav.wp-block-navigation {
	padding-top: .6em !important;
	padding-bottom: .6em !important;
	border-top: 1px solid #e6dcc4 !important;
	flex-wrap: nowrap !important;
}

header nav.wp-block-navigation .wp-block-pages-list__item > a {
	padding: .3em .4em;
	white-space: nowrap;
}

/* ====================================================
   Typography
   ==================================================== */
h1, h2, h3, h4, h5, h6, .wp-block-heading {
	font-family: 'EB Garamond', 'Iowan Old Style', Palatino, Georgia, serif !important;
	color: #5a3d1f;
	font-weight: 500;
	letter-spacing: .005em;
}

.wp-block-site-title a, .wp-block-site-title {
	font-family: 'EB Garamond', Georgia, serif !important;
	color: #5a3d1f !important;
	font-size: 1.6em;
	font-weight: 500;
}

.wp-block-navigation a {
	font-family: 'EB Garamond', Georgia, serif !important;
	color: #5a3d1f !important;
	font-size: 1.05em !important;
}

.wp-block-navigation a:hover {
	color: #6a3a1a !important;
}

/* ====================================================
   Buttons
   ==================================================== */
.wp-block-button__link, .wp-block-button .wp-element-button {
	background-color: #6a3a1a !important;
	color: #faf6ef !important;
	border-radius: 3px !important;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
	letter-spacing: .02em;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent !important;
	color: #6a3a1a !important;
	border: 2px solid #6a3a1a !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: #6a3a1a !important;
	color: #faf6ef !important;
}

/* ====================================================
   Quotes & captions
   ==================================================== */
blockquote.wp-block-quote {
	border-left: 4px solid #b08a4a !important;
	background: #faf6ef;
	padding: 1.4em 1.7em !important;
	font-style: italic;
	color: #5a4f44;
}

blockquote.wp-block-quote cite {
	font-style: normal;
	font-size: .92em;
	color: #88796a;
	display: block;
	margin-top: .4em;
}

figcaption, .wp-element-caption {
	font-family: -apple-system, sans-serif !important;
	font-style: italic;
	color: #88796a !important;
	font-size: .88em !important;
	text-align: center;
}

/* ====================================================
   Hide subscribe blocks & header trim
   ==================================================== */
.wp-block-jetpack-subscriptions,
.jetpack_subscription_widget,
#subscribe-blog,
form#subscribe-blog,
.subscribe-form,
.actnbr-action-follow,
.subscribe-modal,
.wp-block-jetpack-subscriptions__container {
	display: none !important;
}

header .wp-block-navigation .wp-block-pages-list__item:has(> a[href$="/prayer-communities/"]),
header .wp-block-navigation .wp-block-pages-list__item:has(> a[href$="/contact/"]) {
	display: none !important;
}

/* ====================================================
   Add real space between elements (no width changes)
   ==================================================== */
/* Big vertical gap between every direct child of post-content */
.wp-block-post-content > * + * {
	margin-top: 3em !important;
}

/* Even more space around images, cards grid, cover blocks */
.wp-block-post-content > .wp-block-image,
.wp-block-post-content > .wp-block-cover,
.wp-block-post-content > .wp-block-columns,
.wp-block-post-content > .wp-block-gallery {
	margin-top: 5em !important;
	margin-bottom: 5em !important;
}

/* Section dividers (the gold lines): generous gap on both sides */
.wp-block-post-content > .wp-block-separator {
	margin-top: 5em !important;
	margin-bottom: 5em !important;
}

/* Headings: each new section feels like a fresh page */
.wp-block-post-content > h2 {
	margin-top: 4em !important;
	margin-bottom: 1em !important;
}

.wp-block-post-content > h3 {
	margin-top: 3em !important;
	margin-bottom: .6em !important;
}

.wp-block-post-content > h2 + p,
.wp-block-post-content > h3 + p {
	margin-top: 1.4em !important;
}

/* The 2x2 cards grid: real space BETWEEN the cards (column gap) */
.wp-block-post-content .wp-block-columns {
	gap: 2.5em !important;
}

/* Inside each cover card, generous padding from the title overlay */
.wp-block-cover .wp-block-cover__inner-container {
	padding: 1.5em !important;
}

/* Cover blocks: more breathing room inside (taller minimum) */
.wp-block-post-content .wp-block-cover {
	min-height: 320px;
}

/* Caption beneath images: clear separation from image and from next block */
figure.wp-block-image figcaption,
.wp-element-caption {
	margin-top: .9em !important;
	margin-bottom: .4em !important;
}

/* Quote blocks get more vertical air */
.wp-block-post-content > .wp-block-quote {
	margin-top: 3.5em !important;
	margin-bottom: 3.5em !important;
}

/* Big buttons (like "Pray the Rosary Live") get a generous halo */
.wp-block-post-content > .wp-block-buttons {
	margin-top: 3em !important;
	margin-bottom: 3em !important;
}

/* Lists also get vertical breathing room */
.wp-block-post-content > ul,
.wp-block-post-content > ol {
	margin-top: 2em !important;
	margin-bottom: 2em !important;
}

/* Force separators full content width — fixes narrow Twenty Twenty-Four default */
.wp-block-post-content > hr.wp-block-separator,
.wp-block-post-content > .wp-block-separator {
	width: 100% !important;
	max-width: 1100px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	border: 0 !important;
	border-top: 1px solid #d8cdb5 !important;
	background: transparent !important;
	height: 0 !important;
	opacity: .85;
}

/* ====================================================
   Align column buttons to bottom (so all buttons sit on the same row)
   ==================================================== */
.wp-block-post-content .wp-block-columns .wp-block-column {
	display: flex !important;
	flex-direction: column;
	gap: 1em;
}

.wp-block-post-content .wp-block-columns .wp-block-column > .wp-block-buttons:last-child {
	margin-top: auto !important;
}

/* Left-align column buttons (override the centered button group inside columns) */
.wp-block-post-content .wp-block-columns .wp-block-column > .wp-block-buttons {
	justify-content: flex-start !important;
}

.wp-block-post-content .wp-block-columns .wp-block-column > .wp-block-buttons.is-content-justification-center {
	justify-content: flex-start !important;
}

/* Hide page title on homepage (we don't need to show "Home" as a heading) */
body.home .wp-block-post-title,
body.page-id-139 .wp-block-post-title,
body.home h1.entry-title,
body.page-id-139 h1.entry-title {
	display: none !important;
}

/* Cap image heights so portrait paintings don't dominate the page */
.wp-block-post-content .wp-block-image img {
	max-height: 80vh;
	width: auto !important;
	height: auto;
	margin-left: auto;
	margin-right: auto;
	display: block;
}

/* Hero image specifically (first image in post content) — slightly tighter */
.wp-block-post-content > .wp-block-image:first-of-type img {
	max-height: 75vh;
}

/* ====================================================
   Marian Shrines page: uniform card layout
   - All shrine images cropped to identical 280x200 frame
   - All cards same height in each row
   - Buttons aligned at the same y per row
   - Headings same number of lines
   ==================================================== */
/* Each card image: identical aspect-cropped frame */
body.page-id-23 .wp-block-post-content .wp-block-column figure.wp-block-image,
body.page-id-23 .wp-block-post-content .wp-block-column .wp-block-image {
	margin: 0 0 .8em !important;
}

body.page-id-23 .wp-block-post-content .wp-block-column figure.wp-block-image img,
body.page-id-23 .wp-block-post-content .wp-block-column .wp-block-image img {
	width: 100% !important;
	height: 200px !important;
	object-fit: cover !important;
	object-position: center;
	display: block;
	border-radius: 4px;
	max-height: 200px !important;
/* override our sitewide max-height for these specific cards */
}

/* Each card: stretch to fill column height, push button to bottom */
body.page-id-23 .wp-block-post-content .wp-block-column {
	display: flex !important;
	flex-direction: column;
}

body.page-id-23 .wp-block-post-content .wp-block-column > .wp-block-group {
	display: flex !important;
	flex-direction: column;
	height: 100%;
	gap: .6em;
}

body.page-id-23 .wp-block-post-content .wp-block-column .wp-block-buttons {
	margin-top: auto !important;
}

/* Headings on shrine cards: ensure consistent appearance */
body.page-id-23 .wp-block-post-content .wp-block-column h3 {
	margin: 0 !important;
	font-size: 1.15em;
	line-height: 1.35;
	min-height: 2.7em;
/* reserves room for 2 lines so single-line titles still align */
}

body.page-id-23 .wp-block-post-content .wp-block-column p {
	margin: 0 !important;
	font-size: .95em;
	line-height: 1.5;
}

/* Tighten the row gap between cards a touch */
body.page-id-23 .wp-block-post-content .wp-block-columns {
	gap: 1.5em !important;
	margin-top: 2em !important;
	margin-bottom: 2em !important;
}

/* ====================================================
   Rosary timeline beads — serpentine layout with bead-shaped cards
   ==================================================== */
/* Each card looks like a rosary bead */
.jwm-timeline-card {
	background: #faf6ef !important;
	border: 2px solid #b08a4a !important;
	border-radius: 18px !important;
	padding: 1.4em 1.2em !important;
	text-align: center !important;
	height: 100%;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	position: relative;
	box-shadow: 0 2px 6px rgba(106, 58, 26, 0.08);
}

.jwm-timeline-card .jwm-timeline-date {
	font-family: 'EB Garamond', Georgia, serif;
	color: #6a3a1a !important;
	font-size: 1.25em !important;
	font-weight: 600;
	margin: 0 0 .3em !important;
	letter-spacing: .02em;
}

.jwm-timeline-card .jwm-timeline-title {
	margin: 0 0 .5em !important;
	font-size: 1em !important;
	color: #5a3d1f !important;
	font-weight: 500;
	line-height: 1.3;
}

.jwm-timeline-card .jwm-timeline-text {
	font-size: .85em !important;
	line-height: 1.5 !important;
	color: #5a4f44 !important;
	margin: 0 !important;
}

/* Serpentine: even-numbered rows flow right-to-left */
.wp-block-post-content > .wp-block-columns.jwm-timeline-row:nth-of-type(2n) {
	flex-direction: row-reverse !important;
}

/* Tighter row spacing inside the timeline */
.wp-block-post-content > .wp-block-columns.jwm-timeline-row {
	margin-top: 1.5em !important;
	margin-bottom: 0 !important;
	gap: 1.2em !important;
}

/* The "thread" — a faint dotted line behind the row connecting beads */
.wp-block-post-content > .wp-block-columns.jwm-timeline-row {
	position: relative;
}

.wp-block-post-content > .wp-block-columns.jwm-timeline-row::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 8%;
	right: 8%;
	border-top: 2px dotted #b08a4a;
	opacity: .55;
	z-index: 0;
}

.wp-block-post-content > .wp-block-columns.jwm-timeline-row .wp-block-column {
	position: relative;
	z-index: 1;
}

/* Vertical connector between rows — a small dotted line at the end of each row */
.wp-block-post-content > .wp-block-columns.jwm-timeline-row::after {
	content: '';
	position: absolute;
	bottom: -1.5em;
	width: 0;
	height: 1.5em;
	border-left: 2px dotted #b08a4a;
	opacity: .55;
}

.wp-block-post-content > .wp-block-columns.jwm-timeline-row:nth-of-type(2n+1)::after {
/* odd rows end at the right — bend down to next row */
	right: 8%;
}

.wp-block-post-content > .wp-block-columns.jwm-timeline-row:nth-of-type(2n)::after {
/* even rows end at the left — bend down to next row */
	left: 8%;
}

/* No connector after the last row */
.wp-block-post-content > .wp-block-columns.jwm-timeline-row:last-of-type::after {
	display: none;
}

/* ====================================================
   Prayer flow with arrows between buttons
   ==================================================== */
.jwm-prayer-flow {
	align-items: center;
	flex-wrap: wrap;
	gap: .5em !important;
}

.jwm-prayer-flow .wp-block-button {
	flex: 1 1 auto;
	min-width: 0;
}

.jwm-prayer-flow .wp-block-button:not(:last-child)::after {
	content: '→';
	color: #6a3a1a;
	font-size: 1.6em;
	font-weight: 600;
	margin-left: .4em;
	margin-right: .4em;
	align-self: center;
	display: inline-block;
}

/* On narrow screens, the arrows would clutter — keep them hidden if buttons wrap */
@media (max-width: 720px) {
	.jwm-prayer-flow .wp-block-button:not(:last-child)::after {
		display: none;
	}
}

/* ====================================================
   Mystery row — uniform image and text sizes
   ==================================================== */
.jwm-mysteries-row {
	gap: 1.5em !important;
}

.jwm-mysteries-row .wp-block-column {
	display: flex !important;
	flex-direction: column;
	background: #faf6ef;
	border: 1px solid #d8cdb5;
	border-radius: 6px;
	padding: 1em !important;
	flex: 1 1 0 !important;
	min-width: 0;
}

/* Image: same crop dimensions for all four */
.jwm-mysteries-row .wp-block-column figure.wp-block-image {
	margin: 0 0 .8em !important;
	width: 100%;
}

.jwm-mysteries-row .wp-block-column figure.wp-block-image img {
	width: 100% !important;
	height: 220px !important;
	max-height: 220px !important;
	object-fit: cover !important;
	object-position: center 18% !important;
	border-radius: 4px;
	display: block;
}

.jwm-mysteries-row .wp-block-column figure.wp-block-image figcaption {
	display: none;
/* keep cards clean — captions hidden */
}

/* Heading inside mystery card */
.jwm-mysteries-row .wp-block-column h3 {
	margin: 0 0 .3em !important;
	font-size: 1.15em !important;
	color: #5a3d1f;
	border-bottom: 1px solid #d8cdb5;
	padding-bottom: .4em;
}

/* Day caption */
.jwm-mysteries-row .wp-block-column p {
	margin: 0 0 .6em !important;
	font-size: .9em !important;
	color: #88796a;
}

/* Numbered list of decades */
.jwm-mysteries-row .wp-block-column ol {
	margin: 0 !important;
	padding-left: 1.4em !important;
	font-size: .92em;
}

.jwm-mysteries-row .wp-block-column ol li {
	margin: .35em 0;
	line-height: 1.45;
}

/* ====================================================
   Force prayer flow buttons to fit on one line
   ==================================================== */
.jwm-prayer-flow {
	flex-wrap: nowrap !important;
	gap: .3em !important;
	justify-content: center !important;
}

.jwm-prayer-flow .wp-block-button {
	flex: 0 1 auto;
	min-width: 0;
}

.jwm-prayer-flow .wp-block-button .wp-block-button__link {
	padding: .55em .9em !important;
	font-size: .9em !important;
	white-space: nowrap !important;
	border-width: 1px !important;
}

.jwm-prayer-flow .wp-block-button:not(:last-child)::after {
	content: '→';
	color: #6a3a1a;
	font-size: 1.2em;
	margin: 0 .2em;
	align-self: center;
}

/* Mobile: allow buttons to wrap and hide arrows */
@media (max-width: 760px) {
	.jwm-prayer-flow {
		flex-wrap: wrap !important;
	}
	
	.jwm-prayer-flow .wp-block-button:not(:last-child)::after {
		display: none;
	}
}

/* Per-mystery image focal-point overrides (so heads are visible in each crop) */
.jwm-mysteries-row img[src*="Angelico_Annunciation"],
.jwm-mysteries-row img[src*="Annunciation"][src*="Cortona"] {
	object-position: center 35% !important;
/* Joyful — pull down so heads show */
}

.jwm-mysteries-row img[src*="Last_Supper"],
.jwm-mysteries-row img[src*="Last%20Supper"] {
	object-position: center 35% !important;
/* Luminous — Last Supper, faces in middle */
}

.jwm-mysteries-row img[src*="Vel%C3%A1zquez"],
.jwm-mysteries-row img[src*="Christ_on_the_Cross"] {
	object-position: center 12% !important;
/* Sorrowful — Christ's head at very top */
}

.jwm-mysteries-row img[src*="Tizian"],
.jwm-mysteries-row img[src*="Assumption"] {
	object-position: center top !important;
/* Glorious — Mary in upper-middle */
}

/* ====================================================
   Marian Prayers — uniform 2-column layout
   Each prayer: text on left, image on right, balanced sizes
   ==================================================== */
.jwm-prayer-row {
	gap: 2em !important;
	margin-top: 1em !important;
	margin-bottom: 2.5em !important;
}

.jwm-prayer-row .wp-block-column {
	flex: 1 1 50% !important;
}

.jwm-prayer-row figure.jwm-prayer-image,
.jwm-prayer-row .wp-block-image {
	margin: 0 !important;
	width: 100%;
}

.jwm-prayer-row figure.jwm-prayer-image img,
.jwm-prayer-row .wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	min-height: 100% !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center 25%;
	border-radius: 4px;
	display: block;
}

/* Image caption — small italic, centered under image */
.jwm-prayer-row figcaption,
.jwm-prayer-row .wp-element-caption {
	margin-top: .4em !important;
	font-size: .85em !important;
	text-align: center;
}

/* Quote (the prayer text) inside left column */
.jwm-prayer-row blockquote.wp-block-quote {
	margin: 1em 0 0 !important;
}

/* Centered prayer headings */
.wp-block-post-content > h2.has-text-align-center {
	margin-top: 2em;
	margin-bottom: .6em;
}

/* Make right column's image stretch to match left column's text height */
.jwm-prayer-row {
	align-items: stretch !important;
}

.jwm-prayer-row .wp-block-column {
	display: flex !important;
	flex-direction: column !important;
}

.jwm-prayer-row .wp-block-column > figure.wp-block-image {
	flex: 1 1 auto !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column;
	min-height: 100%;
}

/* ====================================================
   Marian Prayers — uniform 3-column layout
   image | description text | prayer quote, all equal width & height
   ==================================================== */
.jwm-prayer-3col {
	align-items: stretch !important;
	gap: 1.5em !important;
	margin-top: 1em !important;
	margin-bottom: 2em !important;
}

.jwm-prayer-3col .wp-block-column {
	flex: 1 1 33.33% !important;
	display: flex !important;
	flex-direction: column !important;
}

/* Image column: figure fills the column, image fills the figure */
.jwm-prayer-3col .wp-block-column figure.wp-block-image {
	flex: 1 1 auto !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column;
	height: 100%;
}

.jwm-prayer-3col .wp-block-column figure.wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	min-height: 280px !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center 25% !important;
	border-radius: 4px;
	display: block;
}

.jwm-prayer-3col .wp-block-column figcaption {
	margin-top: .4em !important;
	font-size: .82em !important;
	text-align: center;
}

/* Text and quote columns: vertical centering of content */
.jwm-prayer-3col .wp-block-column blockquote.wp-block-quote {
	margin: 0 !important;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.jwm-prayer-3col .wp-block-column p {
	font-size: .95em;
	line-height: 1.6;
}

/* On mobile, stack to one column */
@media (max-width: 760px) {
	.jwm-prayer-3col {
		flex-direction: column !important;
	}
	
	.jwm-prayer-3col .wp-block-column {
		flex: 1 1 100% !important;
	}
}

/* ====================================================
   Mary and the Church — bible & dogma cards (same look as Marian Shrines)
   ==================================================== */
.jwm-bible-row, .jwm-dogma-row {
	gap: 1.5em !important;
	margin-top: 1em !important;
	margin-bottom: 1.5em !important;
}

.jwm-bible-card, .jwm-dogma-card {
	background: #faf6ef !important;
	border: 1px solid #d8cdb5 !important;
	border-radius: 6px;
	padding: 1em !important;
	height: 100%;
	display: flex !important;
	flex-direction: column;
}

.jwm-bible-card figure.wp-block-image,
.jwm-dogma-card figure.wp-block-image {
	margin: 0 0 .8em !important;
	width: 100%;
}

.jwm-bible-card img, .jwm-dogma-card img {
	width: 100% !important;
	height: 200px !important;
	max-height: 200px !important;
	object-fit: cover !important;
	object-position: center 25%;
	border-radius: 4px;
	display: block;
}

.jwm-bible-card h3, .jwm-dogma-card h3 {
	margin: 0 0 .3em !important;
	font-size: 1.1em !important;
	border-bottom: 1px solid #d8cdb5;
	padding-bottom: .3em;
	color: #5a3d1f;
}

.jwm-bible-card p, .jwm-dogma-card p {
	margin: 0 0 .5em !important;
	font-size: .9em !important;
	line-height: 1.5;
}

.jwm-dogma-card .wp-block-buttons {
	margin-top: auto !important;
}

/* Bishop Barron 3-col video row */
.jwm-barron-row {
	gap: 1.5em !important;
	margin-top: 1em !important;
}

.jwm-barron-row .wp-block-column {
	flex: 1 1 33.33% !important;
}

/* ====================================================
   Jesus page — I AM card grid (matching Marian Shrines look)
   ==================================================== */
.jwm-iam-row {
	gap: 1.5em !important;
	margin-top: 1em !important;
	margin-bottom: 1.5em !important;
}

.jwm-iam-card {
	background: #faf6ef !important;
	border: 1px solid #d8cdb5 !important;
	border-radius: 6px;
	padding: 1em !important;
	height: 100%;
	display: flex !important;
	flex-direction: column;
}

.jwm-iam-card figure.wp-block-image {
	margin: 0 0 .8em !important;
	width: 100%;
}

.jwm-iam-card img {
	width: 100% !important;
	height: 200px !important;
	max-height: 200px !important;
	object-fit: cover !important;
	object-position: center 25%;
	border-radius: 4px;
	display: block;
}

.jwm-iam-card h3 {
	margin: 0 0 .3em !important;
	font-size: 1.05em !important;
	border-bottom: 1px solid #d8cdb5;
	padding-bottom: .3em;
	color: #5a3d1f;
}

.jwm-iam-card p {
	margin: 0 0 .5em !important;
	font-size: .9em !important;
	line-height: 1.5;
}

/* ====================================================
   Divine Mercy hero — show the WHOLE painting
   ==================================================== */
.wp-block-post-content .wp-block-image.jwm-divine-mercy-hero {
	margin-left: calc(50% - 46vw) !important;
	margin-right: calc(50% - 46vw) !important;
	width: 92vw !important;
	max-width: 92vw !important;
	margin-top: 0 !important;
	background: #faf6ef !important;
	text-align: center;
}

.wp-block-post-content .wp-block-image.jwm-divine-mercy-hero img {
	width: auto !important;
	max-width: 92vw !important;
	height: 85vh !important;
	max-height: none !important;
	object-fit: contain !important;
	display: inline-block !important;
	margin: 0 auto !important;
}

.wp-block-post-content .wp-block-image.jwm-divine-mercy-hero figcaption {
	text-align: center;
	font-size: .9em;
	margin-top: .6em !important;
	padding: 0 1em;
}

@media (max-width: 760px) {
	.wp-block-post-content .wp-block-image.jwm-divine-mercy-hero img {
		height: 70vh !important;
	}
}

/* ====================================================
   Trinitarian God — Bible card grid (same look as Marian Shrines / Mary in Bible)
   ==================================================== */
.jwm-trinity-row {
	gap: 1.5em !important;
	margin-top: 1em !important;
	margin-bottom: 1.5em !important;
}

.jwm-trinity-card {
	background: #faf6ef !important;
	border: 1px solid #d8cdb5 !important;
	border-radius: 6px;
	padding: 1em !important;
	height: 100%;
	display: flex !important;
	flex-direction: column;
}

.jwm-trinity-card figure.wp-block-image {
	margin: 0 0 .8em !important;
	width: 100%;
}

.jwm-trinity-card img {
	width: 100% !important;
	height: 200px !important;
	max-height: 200px !important;
	object-fit: cover !important;
	object-position: center 25%;
	border-radius: 4px;
	display: block;
}

.jwm-trinity-card h3 {
	margin: 0 0 .3em !important;
	font-size: 1.05em !important;
	border-bottom: 1px solid #d8cdb5;
	padding-bottom: .3em;
	color: #5a3d1f;
}

.jwm-trinity-card p {
	margin: 0 0 .5em !important;
	font-size: .9em !important;
	line-height: 1.5;
}

/* ====================================================
   Jesus Prayer source cards (matching site card style)
   ==================================================== */
.jwm-jpsource-row {
	gap: 1.5em !important;
	margin-top: 1em !important;
	margin-bottom: 1.5em !important;
}

.jwm-jpsource-card {
	background: #faf6ef !important;
	border: 1px solid #d8cdb5 !important;
	border-radius: 6px;
	padding: 1em !important;
	height: 100%;
	display: flex !important;
	flex-direction: column;
}

.jwm-jpsource-card figure.wp-block-image {
	margin: 0 0 .8em !important;
	width: 100%;
}

.jwm-jpsource-card img {
	width: 100% !important;
	height: 200px !important;
	max-height: 200px !important;
	object-fit: cover !important;
	object-position: center 25%;
	border-radius: 4px;
	display: block;
}

.jwm-jpsource-card h3 {
	margin: 0 0 .3em !important;
	font-size: 1.1em !important;
	border-bottom: 1px solid #d8cdb5;
	padding-bottom: .3em;
	color: #5a3d1f;
}

.jwm-jpsource-card p {
	margin: 0 0 .5em !important;
	font-size: .9em !important;
	line-height: 1.5;
}

/* ====================================================
   Eucharist Jewish roots cards (matching site card style)
   ==================================================== */
.jwm-euch-row {
	gap: 1.5em !important;
	margin-top: 1em !important;
	margin-bottom: 1.5em !important;
}

.jwm-euch-card {
	background: #faf6ef !important;
	border: 1px solid #d8cdb5 !important;
	border-radius: 6px;
	padding: 1em !important;
	height: 100%;
	display: flex !important;
	flex-direction: column;
}

.jwm-euch-card figure.wp-block-image {
	margin: 0 0 .8em !important;
	width: 100%;
}

.jwm-euch-card img {
	width: 100% !important;
	height: 200px !important;
	max-height: 200px !important;
	object-fit: cover !important;
	object-position: center 25%;
	border-radius: 4px;
	display: block;
}

.jwm-euch-card h3 {
	margin: 0 0 .3em !important;
	font-size: 1.1em !important;
	border-bottom: 1px solid #d8cdb5;
	padding-bottom: .3em;
	color: #5a3d1f;
}

.jwm-euch-card p {
	margin: 0 0 .5em !important;
	font-size: .9em !important;
	line-height: 1.5;
}

/* ====================================================
   Perpetual Virginity cards (matching site card style)
   ==================================================== */
.jwm-pv-row {
	gap: 1.5em !important;
	margin-top: 1em !important;
	margin-bottom: 1.5em !important;
}

.jwm-pv-card {
	background: #faf6ef !important;
	border: 1px solid #d8cdb5 !important;
	border-radius: 6px;
	padding: 1em !important;
	height: 100%;
	display: flex !important;
	flex-direction: column;
}

.jwm-pv-card figure.wp-block-image {
	margin: 0 0 .8em !important;
	width: 100%;
}

.jwm-pv-card img {
	width: 100% !important;
	height: 220px !important;
	max-height: 220px !important;
	object-fit: cover !important;
	object-position: center 25%;
	border-radius: 4px;
	display: block;
}

.jwm-pv-card h3 {
	margin: 0 0 .3em !important;
	font-size: 1.15em !important;
	border-bottom: 1px solid #d8cdb5;
	padding-bottom: .3em;
	color: #5a3d1f;
}

.jwm-pv-card p {
	margin: 0 0 .5em !important;
	font-size: .9em !important;
	line-height: 1.55;
}

/* === JWM-HERO-FULLBLEED START === */
/* Full-bleed hero pattern, sitewide --------------------- */
body {
	position: relative;
	padding-top: 120vh;
}

main .wp-block-post-content > .wp-block-image:first-child,
main > .wp-block-group > .wp-block-image:first-child,
.wp-block-post-content > .wp-block-image:first-of-type {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100vw !important;
	max-width: 100vw !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 120vh !important;
	max-height: 120vh !important;
	overflow: hidden !important;
	z-index: 0 !important;
	display: block !important;
	table-layout: auto !important;
}

main .wp-block-post-content > .wp-block-image:first-child img,
main > .wp-block-group > .wp-block-image:first-child img,
.wp-block-post-content > .wp-block-image:first-of-type img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center 30% !important;
	border-radius: 0 !important;
	display: block !important;
}

main .wp-block-post-content > .wp-block-image:first-child figcaption,
main > .wp-block-group > .wp-block-image:first-child figcaption {
	display: none !important;
}

header.wp-block-template-part {
	position: relative;
	z-index: 5;
	background: #faf6ef !important;
	padding-top: 1.4em !important;
	padding-bottom: .4em !important;
	border-bottom: 1px solid #d8cdb5;
}

header.wp-block-template-part > .wp-block-group,
header.wp-block-template-part > .wp-block-group > .wp-block-group,
header.wp-block-template-part .is-content-justification-space-between {
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
}

header.wp-block-template-part .wp-block-site-title {
	text-align: center !important;
	font-size: clamp(1.5rem, 3.4vw, 2.3rem) !important;
	margin: 0 !important;
	line-height: 1.1 !important;
}

header.wp-block-template-part .wp-block-site-title a {
	color: #5a3d1f !important;
	text-decoration: none !important;
}

header.wp-block-template-part .wp-block-navigation {
	justify-content: center !important;
}

header.wp-block-template-part .wp-block-navigation .wp-block-navigation__container {
	justify-content: center !important;
	flex-wrap: wrap !important;
}

@media (max-width: 768px) {
	body {
		padding-top: 80vh;
	}
	
	main .wp-block-post-content > .wp-block-image:first-child,
				  main > .wp-block-group > .wp-block-image:first-child,
				  .wp-block-post-content > .wp-block-image:first-of-type {
		height: 80vh !important;
		max-height: 80vh !important;
	}
}

/* === JWM-HERO-FULLBLEED END === */
/* JWM-JESUS-HERO-FOCAL */
body.page-id-14 main .wp-block-post-content > .wp-block-image:first-child img,
body.page-id-14 main > .wp-block-group > .wp-block-image:first-child img,
body.page-id-14 .wp-block-post-content > .wp-block-image:first-of-type img {
	object-position: center 20% !important;
}

/* END JWM-JESUS-HERO-FOCAL */
/* === JWM-FRAME-AND-FLOURISH START === */
/* Side frame lines on left and right of the content area only.
   Anchored to body so they scroll with the page, start after hero + header, end before footer.
   They DO NOT pass through the hero or any other content — only sit in the side margins. */
body::before, body::after {
	content: '';
	position: absolute;
	top: calc(120vh + 240px);
/* clear of hero (120vh) + header (~240px) */
	bottom: 120px;
/* clear of footer */
	width: 1px;
	background: linear-gradient(to bottom, transparent 0%, #c9b890 4%, #c9b890 96%, transparent 100%);
	pointer-events: none;
	z-index: 1;
}

body::before {
	left: max(14px, calc(50% - 780px));
}

body::after {
	right: max(14px, calc(50% - 780px));
}

@media (max-width: 768px) {
	body::before, body::after {
		display: none;
	}
}

/* Ornamental flourish replacing plain horizontal separators */
.wp-block-separator,
hr.wp-block-separator,
hr.is-style-wide,
hr.is-style-default,
hr.is-style-dots {
	border: none !important;
	background: none !important;
	height: 32px !important;
	margin: 2.4em auto !important;
	max-width: 280px !important;
	width: 80% !important;
	background-image: !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	background-size: contain !important;
	opacity: 1 !important;
}

/* === JWM-FRAME-AND-FLOURISH END === */
/* === JWM-ABOUT-CARDS START === */
/* About page — Three Sacred Moments cards */
.jwm-about-card {
	background: #faf6ef !important;
	border: 1px solid #d8cdb5 !important;
	border-radius: 6px;
	padding: 1.1em !important;
	height: 100%;
	display: flex !important;
	flex-direction: column;
}

.jwm-about-card .wp-block-image {
	margin: 0 0 .8em !important;
	text-align: center;
}

.jwm-about-card img {
	width: 100% !important;
	height: 200px !important;
	max-height: 200px !important;
	object-fit: cover !important;
	object-position: center 35%;
	border-radius: 4px;
}

.jwm-about-card h3 {
	border-bottom: 1px solid #d8cdb5;
	color: #5a3d1f;
	padding-bottom: .35em;
	margin-bottom: .6em !important;
}

.jwm-about-card .wp-block-quote {
	margin-top: auto;
	border-left: 3px solid #b08a4a;
	padding-left: .9em;
	font-size: .95em;
}

/* === JWM-ABOUT-CARDS END === */
/* === JWM-CREED-CARDS START === */
.jwm-creed-card {
	background: #faf6ef !important;
	border: 1px solid #d8cdb5 !important;
	border-radius: 6px;
	padding: 1.1em !important;
	height: 100%;
}

.jwm-creed-card h3, .jwm-creed-card h4 {
	border-bottom: 1px solid #d8cdb5;
	color: #5a3d1f;
	padding-bottom: .3em;
	margin-top: 0 !important;
	margin-bottom: .55em !important;
}

/* === JWM-CREED-CARDS END === */
/* === JWM-CREED-QUOTE-SIZE START === */
/* On the Creed page, shrink the creed text inside the 50/50 columns so it sits visually balanced with the small image next to it */
body.page-id-104 .wp-block-columns .wp-block-quote {
	font-size: 1em !important;
	line-height: 1.55 !important;
	margin: 0 !important;
	padding-left: .9em !important;
}

body.page-id-104 .wp-block-columns .wp-block-quote p {
	font-size: inherit !important;
	margin-bottom: .4em !important;
}

/* === JWM-CREED-QUOTE-SIZE END === */
/* JWM-MOG-HERO-FOCAL */
body.page-id-116 main .wp-block-post-content > .wp-block-image:first-child img,
body.page-id-116 main > .wp-block-group > .wp-block-image:first-child img,
body.page-id-116 .wp-block-post-content > .wp-block-image:first-of-type img {
	object-position: center 20% !important;
}

/* END JWM-MOG-HERO-FOCAL */
/* JWM-IC-HERO-FOCAL */
body.page-id-118 main .wp-block-post-content > .wp-block-image:first-child img,
body.page-id-118 main > .wp-block-group > .wp-block-image:first-child img,
body.page-id-118 .wp-block-post-content > .wp-block-image:first-of-type img {
	object-position: center 9% !important;
}

/* END JWM-IC-HERO-FOCAL */
/* === JWM-FOOTER START === */
.jwm-footer {
	background: #f3eddf !important;
	border-top: 1px solid #d8cdb5;
	padding: 2.5em 1.5em 1.5em !important;
	margin-top: 3em !important;
}

.jwm-footer-h {
	color: #5a3d1f !important;
	font-size: 1.05rem !important;
	margin: 0 0 .6em !important;
	border-bottom: 1px solid #d8cdb5;
	padding-bottom: .3em;
}

.jwm-footer-list {
	list-style: none !important;
	padding-left: 0 !important;
	margin: 0 !important;
}

.jwm-footer-list li {
	margin: .35em 0 !important;
	font-size: .95em;
}

.jwm-footer-list a {
	color: #5a3d1f !important;
	text-decoration: none !important;
}

.jwm-footer-list a:hover {
	color: #b08a4a !important;
	text-decoration: underline !important;
}

.jwm-footer-tag {
	font-size: .95em;
	color: #5a3d1f;
	line-height: 1.55;
}

.jwm-footer-bottom {
	color: #6a5a40 !important;
	margin-top: 1em !important;
}

/* === JWM-FOOTER END === */
/* === JWM-KIDS-ANIMATED START === */
/* Kids' Corner — animated, colourful card variants for the children's section */
.jwm-kids-card,
.jwm-saint-card,
.jwm-colour-card {
	background: #faf6ef !important;
	border: 2px solid #d8cdb5 !important;
	border-radius: 14px !important;
	padding: 1.2em !important;
	height: 100%;
	transition: transform .25s ease-out, box-shadow .25s ease-out;
	box-shadow: 0 2px 5px rgba(176, 138, 74, 0.08);
}

.jwm-kids-card:hover,
.jwm-saint-card:hover,
.jwm-colour-card:hover {
	transform: translateY(-4px) rotate(-0.5deg);
	box-shadow: 0 6px 18px rgba(176, 138, 74, 0.18);
}

.jwm-kids-card h3,
.jwm-saint-card h3,
.jwm-colour-card h3 {
	color: #5a3d1f !important;
	border-bottom: 1.5px solid #d8cdb5;
	padding-bottom: .35em;
	margin-top: 0 !important;
	margin-bottom: .6em !important;
}

/* Colour variants — soft, child-friendly accent colours */
.jwm-card-blue {
	background: #eef4f7 !important;
	border-color: #a8c5d1 !important;
}

.jwm-card-blue h3 {
	border-color: #a8c5d1;
	color: #2c5363 !important;
}

.jwm-card-yellow {
	background: #fbf3dc !important;
	border-color: #e0c97a !important;
}

.jwm-card-yellow h3 {
	border-color: #e0c97a;
	color: #6e5318 !important;
}

.jwm-card-rose {
	background: #f7ecec !important;
	border-color: #d4a5a5 !important;
}

.jwm-card-rose h3 {
	border-color: #d4a5a5;
	color: #6f3a3a !important;
}

.jwm-card-green {
	background: #ecf3eb !important;
	border-color: #a3c19c !important;
}

.jwm-card-green h3 {
	border-color: #a3c19c;
	color: #2f5527 !important;
}

/* Buttons inside kid cards — match the card colour, with a gentle bounce on hover */
.jwm-kids-card .wp-block-button__link,
.jwm-saint-card .wp-block-button__link,
.jwm-colour-card .wp-block-button__link {
	border-radius: 999px !important;
	padding: .5em 1.4em !important;
	transition: transform .2s ease-out;
}

.jwm-kids-card .wp-block-button__link:hover,
.jwm-saint-card .wp-block-button__link:hover,
.jwm-colour-card .wp-block-button__link:hover {
	transform: scale(1.06);
}

/* Saint sub-pages — softer kid-friendly typography */
body.parent-pageid-487 main p,
body.parent-pageid-469 main p {
	line-height: 1.7;
}

/* The kid-friendly inline closing quote on saint sub-pages */
.jwm-kids-quote {
	background: #fbf6e4;
	border-left: 4px solid #b08a4a !important;
	border-radius: 0 10px 10px 0;
	padding: 1em 1.2em !important;
}

/* Colouring page SVGs — gentle hover that signals "interactive" */
.jwm-colour-card svg {
	transition: transform .3s ease-out;
}

.jwm-colour-card:hover svg {
	transform: scale(1.04);
}

/* Friendly fade-in when cards appear */
@keyframes jwmKidsFadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.jwm-kids-card,
.jwm-saint-card,
.jwm-colour-card {
	animation: jwmKidsFadeIn .5s ease-out;
}

/* === JWM-KIDS-ANIMATED END === */
/* === JWM-KIDS-NOTICE START === */
.jwm-kids-notice {
	background: #fdf3d6;
	border: 2px dashed #b08a4a;
	border-radius: 12px;
	padding: 1.1em 1.4em !important;
	margin: 1.5em auto 2em !important;
	max-width: 720px;
}

.jwm-kids-notice p {
	margin: 0 !important;
	color: #5a3d1f;
	line-height: 1.55;
}

/* === JWM-KIDS-NOTICE END === */
/* === JWM-LIVE-BUTTON START === */
.jwm-live-rosary-wrap {
	text-align: center;
	margin: 2.5em auto !important;
}

.jwm-live-now-btn {
	display: inline-block;
	padding: .95em 2.4em !important;
	background: #6a3a1a;
	color: #fbf6e4 !important;
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: .4px;
	border-radius: 999px;
	border: 2px solid #5a3d1f;
	text-decoration: none !important;
	box-shadow: 0 3px 0 #5a3d1f, 0 6px 16px rgba(90, 61, 31, 0.18);
	transition: all .2s ease-out;
}

.jwm-live-now-btn:hover {
	background: #7a4a2a;
	transform: translateY(-2px);
	box-shadow: 0 5px 0 #5a3d1f, 0 8px 22px rgba(90, 61, 31, 0.25);
}

.jwm-live-now-btn.jwm-live-active {
	background: #c0392b;
	border-color: #8b1f12;
	color: #fff !important;
	box-shadow: 0 3px 0 #8b1f12, 0 0 0 0 rgba(192, 57, 43, 0.5);
	animation: jwmLivePulse 2s ease-out infinite;
}

.jwm-live-now-btn.jwm-live-active:hover {
	background: #e74c3c;
}

@keyframes jwmLivePulse {
	0%, 100% {
		box-shadow: 0 3px 0 #8b1f12, 0 0 0 0 rgba(192, 57, 43, 0.5);
	}
	
	50% {
		box-shadow: 0 3px 0 #8b1f12, 0 0 0 14px rgba(192, 57, 43, 0);
	}
}

.jwm-live-now-sub {
	margin-top: .7em;
	font-size: .95em;
	color: #6a5a40;
	font-style: italic;
}

/* === JWM-LIVE-BUTTON END === */




/* === JWM-COMICS-CARD START === */
.jwm-kids-card.jwm-card-comics {
  background: linear-gradient(135deg, #fff7e6 0%, #ffe9c7 100%) !important;
  border: 2px solid #f0c060 !important;
  border-radius: 16px !important;
  padding: 40px 32px !important;
  box-shadow: 0 4px 20px rgba(240, 192, 96, 0.18) !important;
  max-width: 760px !important;
  margin: 0 auto !important;
}

.jwm-comics-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  align-items: start !important;
}
@media (max-width: 900px) {
  .jwm-comics-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 500px) {
  .jwm-comics-grid { grid-template-columns: 1fr !important; }
}

.jwm-comics-grid .wp-block-image {
  margin: 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
  transition: transform 0.25s, box-shadow 0.25s !important;
  cursor: pointer !important;
  background: #faf7f2 !important;
}
.jwm-comics-grid .wp-block-image:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18) !important;
}
.jwm-comics-grid .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}
.jwm-comics-grid .wp-block-image figcaption {
  text-align: center !important;
  padding: 8px 4px 12px !important;
  font-size: 0.95rem !important;
  color: #5b4b8a !important;
  font-weight: 600 !important;
}

/* Landscape comics span 2 columns so they're readable */
.jwm-comics-grid .jwm-card-wide {
  grid-column: span 2 !important;
}
@media (max-width: 500px) {
  .jwm-comics-grid .jwm-card-wide { grid-column: span 1 !important; }
}
/* === JWM-COMICS-CARD END === */


/* === JWM-DRAWINGS-GRID START === */
.jwm-drawings-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 28px !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  align-items: start !important;
}
@media (max-width: 900px) {
  .jwm-drawings-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 500px) {
  .jwm-drawings-grid { grid-template-columns: 1fr !important; }
}
.jwm-drawings-grid .wp-block-image {
  margin: 0 !important;
  background: #fff !important;
  border: 1px solid #e8e0f0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08) !important;
  transition: transform 0.25s, box-shadow 0.25s !important;
  cursor: pointer !important;
}
.jwm-drawings-grid .wp-block-image:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14) !important;
}
.jwm-drawings-grid .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}
.jwm-drawings-grid .wp-block-image figcaption {
  text-align: center !important;
  padding: 10px 6px 14px !important;
  font-size: 0.95rem !important;
  color: #5b4b8a !important;
  font-weight: 600 !important;
}
/* Bible story sheets are landscape — 2 columns instead of 3 */
.jwm-drawings-bible {
  grid-template-columns: repeat(2, 1fr) !important;
}
@media (max-width: 700px) {
  .jwm-drawings-bible { grid-template-columns: 1fr !important; }
}
/* === JWM-DRAWINGS-GRID END === */


/* === JWM-QA START === */
.jwm-qa-section-heading {
  text-align: center !important;
  margin-top: 48px !important;
  margin-bottom: 18px !important;
  color: #5b4b8a !important;
  font-size: 1.6rem !important;
}
.jwm-qa-section {
  max-width: 760px !important;
  margin: 0 auto 32px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.jwm-qa {
  background: linear-gradient(135deg, #fff8ef 0%, #fdeed9 100%) !important;
  border: 1px solid #f0d2a4 !important;
  border-radius: 12px !important;
  padding: 0 !important;
  overflow: hidden !important;
  transition: box-shadow 0.2s !important;
}
.jwm-qa[open] {
  box-shadow: 0 4px 14px rgba(240, 192, 96, 0.18) !important;
  background: linear-gradient(135deg, #fff 0%, #fdeed9 100%) !important;
}
.jwm-qa summary {
  cursor: pointer !important;
  padding: 14px 18px !important;
  font-weight: 600 !important;
  color: #4a3d75 !important;
  font-size: 1rem !important;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}
.jwm-qa summary::-webkit-details-marker { display: none !important; }
.jwm-qa summary::after {
  content: '+' !important;
  font-size: 1.4rem !important;
  font-weight: 300 !important;
  color: #b08850 !important;
  transition: transform 0.2s !important;
  flex-shrink: 0 !important;
}
.jwm-qa[open] summary::after {
  content: '−' !important;
}
.jwm-qa summary:hover {
  background: rgba(255, 255, 255, 0.4) !important;
}
.jwm-qa-answer {
  padding: 4px 18px 18px !important;
  color: #3a3550 !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
}
.jwm-qa-answer em { color: #5b4b8a; }
/* === JWM-QA END === */

/* === JWM-QUESTIONS-CARD START === */
.jwm-kids-card.jwm-card-questions {
  background: linear-gradient(135deg, #eef2ff 0%, #ddd6fe 100%) !important;
  border: 2px solid #a78bfa !important;
  border-radius: 16px !important;
  padding: 40px 32px !important;
  box-shadow: 0 4px 20px rgba(167, 139, 250, 0.18) !important;
  max-width: 760px !important;
  margin: 0 auto !important;
}
/* === JWM-QUESTIONS-CARD END === */


/* === JWM-SHARE START === */
.jwm-share-card {
  max-width: 720px !important;
  margin: 48px auto 24px !important;
  padding: 24px 28px !important;
  background: linear-gradient(135deg, #fdf6ff 0%, #f0e6ff 100%) !important;
  border: 1px solid #d6c4ec !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 16px rgba(122, 79, 156, 0.08) !important;
  text-align: center !important;
}
.jwm-share-label {
  margin: 0 0 14px !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  color: #5b4b8a !important;
}
.jwm-share-row {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 10px !important;
}
.jwm-share-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 9px 16px !important;
  background: #ffffff !important;
  border: 1.5px solid #e0d2f0 !important;
  border-radius: 999px !important;
  color: #4a3d75 !important;
  font-weight: 600 !important;
  font-size: 0.92rem !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: transform 0.15s, box-shadow 0.15s, background 0.15s !important;
}
.jwm-share-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(122, 79, 156, 0.18) !important;
  text-decoration: none !important;
}
.jwm-share-btn svg { display: block !important; }
.jwm-share-fb:hover { background: #1877f2 !important; color: #fff !important; border-color: #1877f2 !important; }
.jwm-share-wa:hover { background: #25d366 !important; color: #fff !important; border-color: #25d366 !important; }
.jwm-share-x:hover { background: #000 !important; color: #fff !important; border-color: #000 !important; }
.jwm-share-em:hover { background: #5b4b8a !important; color: #fff !important; border-color: #5b4b8a !important; }
.jwm-share-copy:hover { background: #f0c060 !important; color: #fff !important; border-color: #f0c060 !important; }
@media (max-width: 500px) {
  .jwm-share-card { padding: 18px 16px !important; }
  .jwm-share-btn span { display: none !important; }
  .jwm-share-btn { padding: 10px !important; }
}
/* === JWM-SHARE END === */

/* === JWM-MOBILE START === */
@media (max-width: 600px) {
  /* Live Now floating button — slightly smaller, doesn't crowd thumbs */
  #jwm-live-rosary-btn, .jwm-live-button, [class*="jwm-live"] {
    bottom: 16px !important;
    right: 16px !important;
    transform: scale(0.9);
  }
  /* Heros — reasonable max-height on mobile */
  .wp-block-cover { min-height: 220px !important; }
  /* Buttons — full width on phones if cramped */
  .wp-block-buttons.is-content-justification-center .wp-block-button { min-width: 0 !important; }
  /* Section headings — slightly smaller */
  h1.wp-block-heading { font-size: 1.85rem !important; line-height: 1.15 !important; }
  h2.wp-block-heading { font-size: 1.45rem !important; }
  /* Reduce gap on grid layouts */
  .jwm-comics-grid, .jwm-drawings-grid { gap: 14px !important; }
  /* Q&A cards — smaller text */
  .jwm-qa summary { font-size: 0.95rem !important; padding: 12px 14px !important; }
  .jwm-qa-answer { padding: 4px 14px 14px !important; font-size: 0.95rem !important; }
  /* Share card — full width minus margin */
  .jwm-share-card { margin-left: 12px !important; margin-right: 12px !important; }
  /* Tighter card padding */
  .jwm-kids-card { padding: 24px 18px !important; }
  /* Hero images don't break layout */
  .wp-block-image img, .wp-block-cover img { max-width: 100% !important; height: auto !important; }
}
/* === JWM-MOBILE END === */

/* === JWM-NEWSLETTER-GRIEF START === */
.jwm-newsletter {
  max-width: 720px !important;
  margin: 56px auto 24px !important;
  padding: 36px 32px !important;
  background: linear-gradient(135deg, #fff8ef 0%, #ffeed5 100%) !important;
  border: 1px solid #f0d2a4 !important;
  border-radius: 16px !important;
  text-align: center !important;
  box-shadow: 0 4px 18px rgba(240, 192, 96, 0.14) !important;
}
.jwm-newsletter h2 { color: #5b4b8a !important; margin-top: 0 !important; }
.jwm-newsletter .wp-block-jetpack-subscriptions { margin-top: 18px !important; }
.jwm-grief-prayer {
  max-width: 720px !important;
  margin: 32px auto !important;
  padding: 36px 32px !important;
  background: linear-gradient(135deg, #f5f0fe 0%, #e8def5 100%) !important;
  border: 1px solid #d6c4ec !important;
  border-radius: 16px !important;
  text-align: center !important;
  font-style: italic !important;
  line-height: 1.7 !important;
}
.jwm-grief-closing {
  max-width: 600px !important;
  margin: 36px auto 0 !important;
  padding: 24px !important;
  border-left: 3px solid #b89aef !important;
  border-right: 3px solid #b89aef !important;
}
/* === JWM-NEWSLETTER-GRIEF END === */


/* === JWM-HOME-EMOTIONAL START === */

/* HERO DOORWAY */
.jwm-hero-doorway {
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  margin-top: -1em !important;
  height: 100vh !important;
  min-height: 600px !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
}
.jwm-hero-image {
  position: absolute; inset: 0;
  background-image: url('https://journey-with-mary.org/wp-content/uploads/2026/04/sassoferrato-virgin-in-prayer.jpg');
  background-size: cover;
  background-position: center 25%;
  background-repeat: no-repeat;
  filter: brightness(0.85);
}
.jwm-hero-doorway::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.0) 40%, rgba(0,0,0,0.55) 95%);
  pointer-events: none;
}
.jwm-hero-overlay {
  position: relative; z-index: 2;
  text-align: center;
  padding: 0 24px 80px;
  color: #fff;
  display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.jwm-hero-line {
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2rem, 5vw, 3.4rem) !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: 0.02em !important;
  margin: 0 !important;
  text-shadow: 0 2px 18px rgba(0,0,0,0.55);
  font-style: italic;
}
.jwm-hero-cta {
  display: inline-block;
  padding: 12px 38px;
  background: rgba(255,255,255,0.92);
  color: #4a3d75 !important;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 999px;
  transition: transform 0.2s, background 0.2s;
}
.jwm-hero-cta:hover { transform: translateY(-2px); background: #fff; text-decoration: none !important; }
.jwm-hero-scroll {
  display: block;
  font-size: 1.3rem;
  opacity: 0.7;
  margin-top: 6px;
  animation: jwmFloat 2.5s ease-in-out infinite;
}
@keyframes jwmFloat {
  0%, 100% { transform: translateY(0); opacity: 0.6; }
  50%      { transform: translateY(8px); opacity: 1; }
}

/* RIGHT NOW LINE */
.jwm-rightnow {
  text-align: center;
  padding: 56px 24px 16px;
  max-width: 800px;
  margin: 0 auto;
  scroll-margin-top: 100px;
}
.jwm-rightnow-text {
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.15rem, 2.4vw, 1.5rem) !important;
  color: #5b4b8a !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* CANDLE */
.jwm-candle-section {
  text-align: center;
  padding: 32px 24px 56px;
  max-width: 580px;
  margin: 0 auto;
}
.jwm-candle-h {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.8rem !important;
  color: #5b4b8a !important;
  margin: 0 0 8px !important;
  font-weight: 500 !important;
}
.jwm-candle-sub {
  color: #7a6f95 !important;
  font-style: italic !important;
  margin: 0 0 28px !important;
  font-size: 1rem !important;
}
.jwm-candle-stage {
  height: 220px;
  display: flex; align-items: flex-end; justify-content: center;
  margin-bottom: 24px;
  position: relative;
}
.jwm-candle {
  position: relative;
  width: 60px;
  display: flex; flex-direction: column; align-items: center;
}
.jwm-candle-flame {
  position: relative;
  width: 22px; height: 0;
  margin-bottom: 0;
  transition: height 0.6s ease-out;
}
.jwm-candle.lit .jwm-candle-flame { height: 50px; margin-bottom: -4px; }
.jwm-candle-fire {
  position: absolute;
  width: 22px; height: 36px;
  bottom: 8px;
  left: 0;
  background: radial-gradient(ellipse at center 70%, #ffe680 10%, #ffae3a 50%, #d35400 90%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(0.4px);
  opacity: 0;
  transform: scaleY(1);
  transform-origin: bottom center;
  transition: opacity 0.6s 0.3s;
  animation: jwmFlicker 1.6s ease-in-out infinite;
}
.jwm-candle.lit .jwm-candle-fire { opacity: 1; }
@keyframes jwmFlicker {
  0%, 100% { transform: scaleY(1) scaleX(1) rotate(-1deg); }
  25%      { transform: scaleY(1.06) scaleX(0.96) rotate(1.5deg); }
  50%      { transform: scaleY(0.94) scaleX(1.04) rotate(-1deg); }
  75%      { transform: scaleY(1.04) scaleX(0.98) rotate(2deg); }
}
.jwm-candle-glow {
  position: absolute;
  width: 140px; height: 140px;
  bottom: -30px; left: 50%; transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,90,0.28) 0%, rgba(255,200,90,0) 70%);
  opacity: 0; transition: opacity 1s 0.4s;
  pointer-events: none;
}
.jwm-candle.lit .jwm-candle-glow { opacity: 1; animation: jwmGlow 3s ease-in-out infinite; }
@keyframes jwmGlow {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}
.jwm-candle-wick {
  width: 2px; height: 10px; background: #2a1a0a;
  margin-bottom: -2px; z-index: 2;
}
.jwm-candle-body {
  position: relative;
  width: 36px; height: 130px;
  background: linear-gradient(to right, #e8d8b8 0%, #fff5e0 35%, #fdfaf0 50%, #f0e0c4 75%, #d4b88a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -8px 20px rgba(160, 130, 80, 0.18);
}
.jwm-candle-shine {
  position: absolute;
  top: 0; left: 30%;
  width: 4px; height: 100%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.55), rgba(255,255,255,0.1) 70%);
  border-radius: 50%;
}
.jwm-candle-base {
  width: 60px; height: 6px;
  background: #b89870;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

.jwm-candle-controls { margin-top: 8px; }
.jwm-candle-light-btn,
.jwm-candle-save-btn {
  background: #5b4b8a;
  color: #fff;
  border: none;
  padding: 11px 30px;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
}
.jwm-candle-light-btn:hover,
.jwm-candle-save-btn:hover {
  background: #7a4f9c;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(122, 79, 156, 0.25);
}
.jwm-candle-prompt {
  display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
  margin-top: 4px;
  max-width: 480px;
  margin-left: auto; margin-right: auto;
}
.jwm-candle-input {
  flex: 1 1 280px;
  padding: 11px 18px;
  border: 1.5px solid #d6c4ec;
  border-radius: 999px;
  font-size: 0.95rem;
  font-family: inherit;
  outline: none;
  background: #faf7ff;
}
.jwm-candle-input:focus { border-color: #7a4f9c; background: #fff; }
.jwm-candle-status {
  margin-top: 16px !important;
  font-size: 0.95rem !important;
  color: #5b4b8a !important;
  font-style: italic !important;
}

/* LETTER */
.jwm-letter {
  max-width: 620px;
  margin: 24px auto 64px;
  padding: 36px 36px 32px;
  background: linear-gradient(180deg, #fdfaf0 0%, #faf3e2 100%);
  border-radius: 6px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.06);
  border-left: 3px solid #d4b88a;
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.08rem !important;
  line-height: 1.7 !important;
  color: #3a3550 !important;
}
.jwm-letter p { margin: 0 0 14px !important; }
.jwm-letter-greeting { font-size: 1.3rem !important; font-weight: 500 !important; color: #5b4b8a !important; }
.jwm-letter-sign { margin-top: 22px !important; font-style: italic !important; color: #7a6f95 !important; text-align: right !important; }

/* MOBILE */
@media (max-width: 600px) {
  .jwm-hero-doorway { min-height: 540px; height: 92vh; }
  .jwm-hero-overlay { padding-bottom: 56px; gap: 18px; }
  .jwm-hero-line { font-size: 1.8rem !important; }
  .jwm-hero-cta { padding: 10px 28px; font-size: 0.85rem; }
  .jwm-rightnow { padding: 36px 20px 8px; }
  .jwm-letter { padding: 28px 22px; margin: 16px 16px 40px; max-width: none; }
}
/* === JWM-HOME-EMOTIONAL END === */









/* === JWM-NAV-SITEWIDE START === */
/* SITEWIDE: header floats transparent over the hero, no site title, white nav links */

/* Header overlay — applies to all pages */
.wp-site-blocks > header {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 30 !important;
  background: transparent !important;
  width: 100% !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}

/* Hide site title and tagline on all pages — only nav menu shows */
.wp-block-site-title,
.wp-block-site-logo,
.wp-block-site-tagline {
  display: none !important;
}

/* Clear background colors anywhere inside the header (theme adds an off-white) */
.wp-site-blocks > header *,
.wp-site-blocks > header .has-base-background-color,
.wp-site-blocks > header .has-background {
  background: transparent !important;
  background-color: transparent !important;
}

/* All header text and links: white with a soft text-shadow for legibility on hero */
.wp-site-blocks > header,
.wp-site-blocks > header * {
  color: #ffffff !important;
}
.wp-site-blocks > header a {
  color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.55) !important;
}
.wp-site-blocks > header a:hover {
  opacity: 0.75 !important;
}
/* Submenu items still need a backdrop because they appear out of the hero */
.wp-site-blocks > header .wp-block-navigation__submenu-container {
  background: rgba(0, 0, 0, 0.85) !important;
  border-radius: 8px !important;
  padding: 8px 0 !important;
}
.wp-site-blocks > header .wp-block-navigation__submenu-container a {
  text-shadow: none !important;
}

/* Soft dark gradient at very top of every page so white nav stays readable */
.wp-site-blocks > header::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 220%;
  background: linear-gradient(to bottom, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0) 100%);
  pointer-events: none;
  z-index: -1;
}

/* === JWM-NAV-SITEWIDE END === */

/* === JWM-HOME-FULLBLEED START === */
/* Homepage-specific: no body padding-top because we use a custom hero block */
body.home, body.page-id-139 {
  padding-top: 0 !important;
  position: relative !important;
}
body.home main .wp-block-post-content > .wp-block-image:first-child,
body.home main > .wp-block-group > .wp-block-image:first-child,
body.page-id-139 main .wp-block-post-content > .wp-block-image:first-child,
body.page-id-139 main > .wp-block-group > .wp-block-image:first-child {
  position: static !important;
  width: auto !important;
  max-width: 100% !important;
}
body.home::before, body.home::after,
body.page-id-139::before, body.page-id-139::after {
  display: none !important;
}
body.home .jwm-hero-doorway,
body.page-id-139 .jwm-hero-doorway {
  margin-top: 0 !important;
}
body.home main,
body.home .wp-site-blocks > main,
body.page-id-139 main,
body.page-id-139 .wp-site-blocks > main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.home main > .wp-block-group:first-child,
body.page-id-139 main > .wp-block-group:first-child {
  display: none !important;
}
body.home .entry-content,
body.page-id-139 .entry-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
/* === JWM-HOME-FULLBLEED END === */



/* === JWM-ROSARY-CTA START === */
.jwm-rosary-cta-card {
  max-width: 760px !important;
  margin: 32px auto 40px !important;
  padding: 36px 32px !important;
  background: linear-gradient(135deg, #f5f0fe 0%, #e8def5 100%) !important;
  border: 2px solid #b89aef !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 20px rgba(122, 79, 156, 0.18) !important;
  text-align: center !important;
}
.jwm-rosary-cta-card h2 { color: #4a3d75 !important; margin-top: 0 !important; }
/* === JWM-ROSARY-CTA END === */

/* === JWM-ROSARY START === */
.jwm-rosary-app {
  max-width: 760px;
  margin: 0 auto;
  padding: 32px 20px;
  text-align: center;
}
.jwm-rosary-day {
  font-size: 1rem !important;
  color: #7a6f95 !important;
  font-style: italic !important;
  margin: 0 0 24px !important;
}
.jwm-rosary-stage {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #2a2440;
  min-height: 480px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin-bottom: 18px;
  box-shadow: 0 8px 28px rgba(60, 30, 80, 0.25);
}
.jwm-rosary-img {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 1.2s ease-in-out;
  filter: brightness(0.85);
}
.jwm-rosary-img.active { opacity: 1; }
.jwm-rosary-img.active::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20,15,35,0.92) 0%, rgba(20,15,35,0.55) 40%, rgba(20,15,35,0.05) 100%);
}
.jwm-rosary-text-card {
  position: relative;
  z-index: 2;
  padding: 36px 32px 28px;
  color: #fff;
}
.jwm-rosary-label {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.4rem !important;
  font-weight: 500 !important;
  margin: 0 0 14px !important;
  letter-spacing: 0.02em;
  color: #ffe9c7 !important;
}
.jwm-rosary-text {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.18rem !important;
  line-height: 1.65 !important;
  margin: 0 !important;
  color: #fff !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.jwm-rosary-scripture {
  margin: 14px 0 0 !important;
  font-style: italic !important;
  color: #f0c060 !important;
  font-size: 0.92rem !important;
}
.jwm-rosary-credit {
  position: relative;
  z-index: 2;
  font-size: 0.78rem !important;
  color: rgba(255,233,199,0.6) !important;
  text-align: right !important;
  padding: 0 18px 12px !important;
  margin: 0 !important;
  font-style: italic !important;
  letter-spacing: 0.02em;
}
/* When no image, stage has a soft cream gradient background */
.jwm-rosary-stage:has(.jwm-rosary-img:not(.active)) {
  background: linear-gradient(135deg, #fdfaf0 0%, #f5e9d2 100%);
}
.jwm-rosary-stage:has(.jwm-rosary-img:not(.active)) .jwm-rosary-label { color: #5b4b8a !important; }
.jwm-rosary-stage:has(.jwm-rosary-img:not(.active)) .jwm-rosary-text { color: #3a3550 !important; text-shadow: none; }
.jwm-rosary-stage:has(.jwm-rosary-img:not(.active)) .jwm-rosary-scripture { color: #b08850 !important; }
.jwm-rosary-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}
.jwm-rosary-prev, .jwm-rosary-next, .jwm-rosary-auto {
  background: #5b4b8a;
  color: #fff;
  border: none;
  padding: 11px 22px;
  border-radius: 999px;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
  font-family: inherit;
}
.jwm-rosary-auto { background: #f0c060; color: #4a3d75; min-width: 170px; }
.jwm-rosary-auto.on { background: #d35400; color: #fff; }
.jwm-rosary-prev:hover:not(:disabled), .jwm-rosary-next:hover, .jwm-rosary-auto:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.18);
}
.jwm-rosary-prev:disabled { opacity: 0.4; cursor: default; }
.jwm-rosary-progress-line { font-size: 0.85rem !important; color: #7a6f95 !important; font-style: italic !important; margin: 0 0 24px !important; }
.jwm-rosary-beads-wrap { padding-top: 20px; border-top: 1px solid #e8d4ad; }
.jwm-rosary-beads-legend { font-size: 0.85rem !important; color: #7a6f95 !important; margin: 0 0 14px !important; }
.jwm-rosary-beads { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; padding: 0 8px; margin: 0 auto 18px; max-width: 720px; }
.jwm-bead { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: #d4b88a; cursor: pointer; transition: all 0.2s; flex-shrink: 0; }
.jwm-bead-mystery { width: 16px; height: 16px; background: #7a4f9c; transform: scale(1.3); margin: 0 6px; }
.jwm-bead-of { width: 14px; height: 14px; background: #b08850; }
.jwm-bead-gb { width: 12px; height: 12px; background: #f0c060; border-radius: 3px; }
.jwm-bead-fat { width: 10px; height: 10px; background: #e8a878; border-radius: 2px; }
.jwm-bead-hm { background: #f5e3c4; }
.jwm-bead-sign, .jwm-bead-creed, .jwm-bead-hhq { width: 14px; height: 14px; background: #5b4b8a; }
.jwm-bead.current {
  background: #ffae3a !important;
  box-shadow: 0 0 0 3px rgba(255, 174, 58, 0.3), 0 0 14px rgba(255, 174, 58, 0.7);
  z-index: 2;
  animation: jwmRosaryBreathe 3.2s ease-in-out infinite;
}
@keyframes jwmRosaryBreathe {
  0%, 100% { transform: scale(1.5); box-shadow: 0 0 0 2px rgba(255, 174, 58, 0.25), 0 0 10px rgba(255, 174, 58, 0.55); }
  50% { transform: scale(1.85); box-shadow: 0 0 0 4px rgba(255, 174, 58, 0.35), 0 0 22px rgba(255, 174, 58, 0.85); }
}
.jwm-bead-mystery.current { animation-name: jwmRosaryBreatheMystery; }
@keyframes jwmRosaryBreatheMystery {
  0%, 100% { transform: scale(1.3); }
  50% { transform: scale(1.65); }
}
.jwm-bead.done { opacity: 0.5; }
.jwm-bead:hover:not(.current) { transform: scale(1.4); }
.jwm-rosary-key { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 22px; margin-top: 14px; font-size: 0.85rem; color: #5b4b8a; font-style: italic; }
.jwm-rosary-key span { display: inline-flex; align-items: center; gap: 6px; }
.jwm-rosary-key .jwm-bead { cursor: default; animation: none !important; }
.jwm-rosary-key .jwm-bead.current { animation: none !important; }
@media (max-width: 600px) {
  .jwm-rosary-stage { min-height: 380px; }
  .jwm-rosary-text-card { padding: 24px 18px 20px; }
  .jwm-rosary-label { font-size: 1.2rem !important; }
  .jwm-rosary-text { font-size: 1rem !important; }
  .jwm-rosary-prev, .jwm-rosary-next, .jwm-rosary-auto { padding: 10px 14px; font-size: 0.82rem; }
  .jwm-rosary-auto { min-width: 140px; }
  .jwm-bead { width: 10px; height: 10px; }
  .jwm-bead-mystery { width: 14px; height: 14px; }
}
/* === JWM-ROSARY END === */

/* === JWM-TODAY START === */
.jwm-today {
  max-width: 920px;
  margin: 28px auto 24px;
  padding: 0 20px;
}
.jwm-today-season {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 0.95rem;
  color: #5b4b8a;
  font-style: italic;
  letter-spacing: 0.04em;
  margin: 0 0 22px;
  text-transform: uppercase;
}
.jwm-season-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #5a7d3a;
  display: inline-block;
  box-shadow: 0 0 0 4px rgba(122, 79, 156, 0.12);
}
.jwm-today-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.jwm-today-card {
  padding: 30px 28px;
  border-radius: 16px;
  border: 1px solid #e8d4ad;
  background: linear-gradient(135deg, #fdfaf0 0%, #faf3e2 100%);
  box-shadow: 0 2px 12px rgba(180, 140, 80, 0.08);
}
.jwm-today-eyebrow {
  font-size: 0.78rem !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #b08850 !important;
  font-weight: 600 !important;
  margin: 0 0 12px !important;
}
.jwm-today-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.55rem !important;
  font-weight: 500 !important;
  color: #4a3d75 !important;
  margin: 0 0 12px !important;
  line-height: 1.2 !important;
}
.jwm-today-text {
  color: #3a3550 !important;
  font-size: 0.98rem !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}
.jwm-today-quote {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.25rem !important;
  font-style: italic !important;
  color: #4a3d75 !important;
  margin: 0 0 12px !important;
  border-left: none !important;
  padding-left: 0 !important;
  line-height: 1.45 !important;
}
.jwm-today-cite {
  font-size: 0.88rem !important;
  color: #b08850 !important;
  font-style: normal !important;
  letter-spacing: 0.03em;
}
@media (max-width: 700px) {
  .jwm-today-grid { grid-template-columns: 1fr; gap: 14px; }
  .jwm-today-card { padding: 22px 20px; }
  .jwm-today-title { font-size: 1.3rem !important; }
  .jwm-today-quote { font-size: 1.1rem !important; }
}
/* === JWM-TODAY END === */

/* === JWM-READINGS START === */
.jwm-readings {
  max-width: 720px;
  margin: 40px auto 24px;
  padding: 0 20px;
}
.jwm-readings-eyebrow {
  text-align: center;
  font-size: 0.78rem !important;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #b08850 !important;
  font-weight: 600 !important;
  margin: 0 0 8px !important;
}
.jwm-readings-day {
  text-align: center;
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.35rem !important;
  font-weight: 500 !important;
  color: #5b4b8a !important;
  margin: 0 0 32px !important;
  line-height: 1.3 !important;
}
.jwm-reading {
  margin-bottom: 28px;
  padding-bottom: 26px;
  border-bottom: 1px solid #e8d4ad;
}
.jwm-reading:last-of-type {
  border-bottom: none;
}
.jwm-reading-label {
  font-size: 0.78rem !important;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #7a4f9c !important;
  font-weight: 700 !important;
  margin: 0 0 12px !important;
}
.jwm-reading-ref {
  text-transform: none;
  letter-spacing: 0.02em;
  color: #b08850;
  font-weight: 500;
  margin-left: 8px;
  font-style: italic;
}
.jwm-reading-text {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.18rem !important;
  line-height: 1.65 !important;
  color: #3a3550 !important;
  margin: 0 !important;
  padding: 0 0 0 18px !important;
  border-left: 3px solid #f0c060 !important;
  font-style: normal !important;
  background: transparent !important;
}
.jwm-reading-text strong {
  color: #4a3d75;
  font-weight: 600;
}
.jwm-reflection {
  margin-top: 36px;
  padding: 32px 32px 28px;
  background: linear-gradient(135deg, #fff8ef 0%, #fdeed9 100%);
  border: 1px solid #f0d2a4;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(240, 192, 96, 0.12);
}
.jwm-reflection-eyebrow {
  font-size: 0.75rem !important;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #b08850 !important;
  font-weight: 600 !important;
  margin: 0 0 8px !important;
}
.jwm-reflection-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.6rem !important;
  font-weight: 500 !important;
  color: #4a3d75 !important;
  margin: 0 0 18px !important;
  line-height: 1.2 !important;
}
.jwm-reflection p {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.1rem !important;
  line-height: 1.65 !important;
  color: #3a3550 !important;
  margin: 0 0 12px !important;
}
.jwm-reflection p:last-child {
  margin-bottom: 0 !important;
}
.jwm-reflection-flower {
  font-style: normal;
  margin-left: 4px;
}
@media (max-width: 600px) {
  .jwm-readings { padding: 0 14px; }
  .jwm-reflection { padding: 24px 22px; }
  .jwm-reading-text { font-size: 1.05rem !important; }
  .jwm-reflection-title { font-size: 1.35rem !important; }
  .jwm-reflection p { font-size: 1.02rem !important; }
}
/* === JWM-READINGS END === */









/* === JWM-IMG-CAPTION START === */
.jwm-img-caption {
  text-align: center !important;
  font-size: 0.92rem !important;
  color: #7a6f95 !important;
  font-style: italic !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
}
/* === JWM-IMG-CAPTION END === */



/* === JWM-FIND-LIST START === */
.jwm-find-list {
  max-width: 760px !important;
  margin: 24px auto 32px !important;
  padding-left: 24px !important;
  list-style: disc !important;
}
.jwm-find-list li {
  margin: 0 0 14px !important;
  line-height: 1.5 !important;
  padding-left: 6px !important;
}
.jwm-find-list li strong {
  color: #5b4b8a;
}
/* === JWM-FIND-LIST END === */

/* === JWM-EQUAL-IMG START === */
.jwm-image-stack {
  display: flex;
  flex-direction: column;
  gap: 60px;
  width: 100%;
}
.jwm-mary-img {
  width: 100%;
  height: 360px;
  background-size: cover;
  background-position: center;
  border-radius: 8px;
  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.12);
}
@media (max-width: 900px) {
  .jwm-mary-img { height: 300px; }
}
@media (max-width: 600px) {
  .jwm-mary-img { height: 260px; }
}
/* === JWM-EQUAL-IMG END === */
