/* ==========================================================================
   Parish Core - Frontend shortcode styles (front.css)
   ========================================================================== */

/* Base wrappers */
.parish-readings-content,
.parish-reflection,
.parish-mass-times,
.parish-events,
.parish-churches,
.parish-clergy,
.parish-contact,
.parish-prayers,
.parish-feast-days,
.parish-liturgical-day,
.parish-liturgical-week,
.parish-rosary-days,
.parish-rosary-today,
.parish-rosary-week,
.parish-rosary-series,
.parish-rosary-mysteries {
	margin: 1.5em 0;
	font-size: 1rem;
	line-height: 1.6;
}

/* ==========================================================================
   CONSISTENT RHYTHM for the 3 problematic shortcodes
   ========================================================================== */
.parish-readings-content.parish-feast-days,
.parish-readings-content.parish-mass-readings,
.parish-readings-content.parish-liturgical-day {
	--parish-row-gap: 0.55em;
}

/* Generic UL lists (only ULs — do not style DLs like lists) */
.parish-mass-times ul,
.parish-events ul,
.parish-clergy ul,
.parish-prayers ul,
.parish-readings-content ul {
	list-style: disc;
	margin: 0 0 0 1.25em;
	padding: 0;
}

.parish-mass-times li,
.parish-events li,
.parish-clergy li,
.parish-prayers li,
.parish-readings-content li {
	margin: 0.25em 0;
	padding: 0;
	border: 0;
	background: none;
}

/* Reflection */
.parish-reflection blockquote { margin: 0; font-style: italic; }
.parish-reflection cite {
	display: block;
	margin-top: 0.5em;
	font-size: 0.9em;
	color: #555;
	font-style: normal;
}

/* Mass times headings */
.parish-mass-times .mass-day { margin-bottom: 1.5em; }
.parish-mass-times .mass-day:last-child { margin-bottom: 0; }
.parish-mass-times h4 {
	margin: 0 0 0.5em 0;
	font-size: 1.1em;
	font-weight: 600;
	padding-bottom: 0.25em;
	border-bottom: 2px solid #2271b1;
}
.parish-mass-times .event-type {
	display: inline-block;
	padding: 2px 8px;
	background: #e8f4fc;
	color: #2271b1;
	border-radius: 4px;
	font-size: 0.85em;
	font-weight: 500;
	margin-left: 0.5em;
}
.parish-mass-times .event-church {
	display: inline-block;
	font-size: 0.85em;
	color: #666;
	margin-left: 0.5em;
}
.parish-mass-times .event-notes {
	font-size: 0.85em;
	color: #888;
	margin-left: 0.25em;
}
.parish-mass-times .livestream-badge {
	display: inline-block;
	font-size: 0.85em;
	margin-left: 0.5em;
	cursor: help;
}

/* Events extras */
.parish-events .event-date,
.parish-events .event-location {
	display: block;
	font-size: 0.9em;
	color: #555;
}

/* Churches – simple block list */
.parish-churches .church-item { margin-bottom: 1em; padding: 0; border: 0; box-shadow: none; }
.parish-churches h4 { margin: 0.25em 0; font-size: 1.05em; }
.parish-churches p { margin: 0; }

/* Clergy */
.parish-clergy strong { font-weight: 600; }

/* Contact */
.parish-contact { padding: 0; background: none; border: 0; }
.parish-contact p { margin: 0 0 0.75em; }
.parish-contact p:last-child { margin-bottom: 0; }
.parish-contact a { text-decoration: underline; }

/* Prayers */
.parish-prayers .prayer-item { margin-bottom: 1.5em; padding-bottom: 0; border-bottom: 0; }
.parish-prayers h4 { margin: 0.25em 0; font-size: 1.05em; }
.parish-prayers .prayer-text { line-height: 1.7; }

/* ==========================================================================
   READINGS (mass_reading_details) — mobile-friendly wrapping + consistent gaps
   ========================================================================== */
.parish-readings-content { padding: 0; background: none; border: 0; }
.parish-readings-content.parish-readings-empty { text-align: left; font-style: italic; color: #666; }

.parish-readings-content.parish-mass-readings .readings-rows {
	margin: 0;
	padding: 0;
}

.parish-readings-content.parish-mass-readings .reading-row {
	margin: 0 0 var(--parish-row-gap) 0;
}

.parish-readings-content.parish-mass-readings .reading-row:last-child {
	margin-bottom: 0;
}

.parish-readings-content.parish-mass-readings .reading-label {
	font-weight: 700;
}

.parish-readings-content.parish-mass-readings .reading-sep,
.parish-readings-content.parish-mass-readings .reading-text {
	font-weight: 400;
}

/* (Back-compat) If any theme/templates still output DL markup, keep it readable */
.parish-readings-content.parish-mass-readings dl {
	margin: 0;
}
.parish-readings-content.parish-mass-readings dt {
	font-weight: 700;
}
.parish-readings-content.parish-mass-readings dd {
	margin: 0 0 var(--parish-row-gap) 0;
}

/* ==========================================================================
   FEAST DAY DETAILS (feast_day_details) — inline rank + same colour + gaps
   ========================================================================== */
.parish-readings-content.parish-feast-days .feast-entry {
	margin: 0 0 1.1em 0;
}
.parish-readings-content.parish-feast-days .feast-entry:last-child {
	margin-bottom: 0;
}

/* Important: p margins inside this block are controlled here to beat theme defaults */
.parish-readings-content.parish-feast-days .feast-row {
	margin: 0 0 var(--parish-row-gap) 0;
}
.parish-readings-content.parish-feast-days .feast-row:last-child {
	margin-bottom: 0;
}

.parish-readings-content.parish-feast-days .feast-label {
	font-weight: 700;
}

.parish-readings-content.parish-feast-days .feast-title {
	font-weight: 600;
}

.parish-readings-content.parish-feast-days .liturgical-colour-badge {
	display: inline-block;
	padding: 0.15em 0.55em;
	border-radius: 0.35em;
	font-weight: 700;
	font-size: 0.9em;
	line-height: 1.2;
	vertical-align: middle;

	background: var(--liturgical-badge-bg, #808080);
	color: var(--liturgical-badge-fg, #fff);
	border: 1px solid var(--liturgical-badge-border, rgba(0, 0, 0, 0.08));
}

/* Rank MUST be inline + inherit colour */
.parish-readings-content.parish-feast-days .feast-rank {
	display: inline;
	color: inherit;
	font-size: 1em;
	font-weight: 400;
}

/* Back-compat (if any older markup still outputs a UL) */
.parish-feast-days .feast-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.parish-feast-days .feast-item {
	margin: 0.4em 0;
	padding: 0;
	border: 0;
	background: none;
}

/* ==========================================================================
   LITURGICAL DAY (liturgical_day) — remove card look + match same gaps
   ========================================================================== */
.parish-readings-content.parish-liturgical-day {
	padding: 0;
	background: none;
	border-radius: 0;
}

/* Beat theme p spacing to match the other blocks */
.parish-readings-content.parish-liturgical-day .liturgical-info p {
	margin: 0 0 var(--parish-row-gap) 0;
}
.parish-readings-content.parish-liturgical-day .liturgical-info p:last-child {
	margin-bottom: 0;
}

.parish-readings-content.parish-liturgical-day strong {
	font-weight: 700;
}

.parish-liturgical-day a {
	color: #2271b1;
	text-decoration: none;
}
.parish-liturgical-day a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   LITURGICAL WEEK
   ========================================================================== */
.parish-liturgical-week { padding: 0; }
.parish-liturgical-week .week-info { margin-bottom: 20px; }
.parish-liturgical-week h4 { margin: 0 0 16px 0; font-size: 1.1em; }

.rosary-schedule-table {
	width: 100%;
	border-collapse: collapse;
}
.rosary-schedule-table th,
.rosary-schedule-table td {
	padding: 12px;
	text-align: left;
	border-bottom: 1px solid #eee;
}
.rosary-schedule-table th {
	background: #f5f5f5;
	font-weight: 600;
}
.rosary-schedule-table a {
	color: #2271b1;
	text-decoration: none;
}
.rosary-schedule-table a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   ROSARY DAYS
   ========================================================================== */
.parish-rosary-days { padding: 0; }
.parish-rosary-days .rosary-season { margin-bottom: 20px; }
.parish-rosary-days .rosary-series-list { display: grid; gap: 20px; }
.parish-rosary-days .rosary-series-item {
	padding: 16px;
	background: #f9f9f9;
	border-radius: 8px;
	border-left: 4px solid #2271b1;
}
.parish-rosary-days .rosary-series-item h4 { margin: 0 0 8px 0; }
.parish-rosary-days .rosary-series-item h4 a { color: #2271b1; text-decoration: none; }
.parish-rosary-days .rosary-series-item h4 a:hover { text-decoration: underline; }
.parish-rosary-days .series-days { margin: 0 0 8px 0; font-weight: 600; color: #333; }
.parish-rosary-days .series-description { margin: 0; color: #666; font-size: 0.95em; }

/* ==========================================================================
   ROSARY TODAY
   ========================================================================== */
.parish-rosary-today { padding: 0; }
.parish-rosary-today .rosary-today-simple { margin: 0; }
.parish-rosary-today .rosary-today-simple a {
	color: #2271b1;
	text-decoration: none;
	font-weight: 600;
}
.parish-rosary-today .rosary-today-simple a:hover { text-decoration: underline; }
.parish-rosary-today .rosary-today-link {
	display: inline-block;
	padding: 10px 20px;
	background: #2271b1;
	color: #fff;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
}
.parish-rosary-today .rosary-today-link:hover { background: #1a5a8e; }
.parish-rosary-today .rosary-today-full {
	padding: 20px;
	background: #f9f9f9;
	border-radius: 8px;
}
.parish-rosary-today .rosary-title { margin: 0 0 12px 0; font-size: 1.3em; }
.parish-rosary-today .rosary-title a { color: #2271b1; text-decoration: none; }
.parish-rosary-today .rosary-title a:hover { text-decoration: underline; }
.parish-rosary-today .rosary-description { margin: 0 0 16px 0; color: #555; }
.parish-rosary-today .rosary-mysteries-list { margin: 0 0 16px 0; padding-left: 24px; }
.parish-rosary-today .rosary-mysteries-list li { margin-bottom: 6px; }
.parish-rosary-today .rosary-season-note { margin: 0; color: #888; }

/* ==========================================================================
   ROSARY WEEK
   ========================================================================== */
.parish-rosary-week { padding: 0; }
.parish-rosary-week .rosary-season { margin-bottom: 16px; }
.parish-rosary-week .rosary-week-list { list-style: none; margin: 0; padding: 0; }
.parish-rosary-week .rosary-week-list li { padding: 12px 16px; border-bottom: 1px solid #eee; }
.parish-rosary-week .rosary-week-list li:last-child { border-bottom: none; }
.parish-rosary-week .rosary-week-list li.is-today {
	background: #e8f4fc;
	border-radius: 6px;
	font-weight: 600;
}
.parish-rosary-week .rosary-week-list a { color: #2271b1; text-decoration: none; }
.parish-rosary-week .rosary-week-list a:hover { text-decoration: underline; }

.rosary-week-table { width: 100%; border-collapse: collapse; }
.rosary-week-table th,
.rosary-week-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #eee; }
.rosary-week-table th { background: #f5f5f5; font-weight: 600; }
.rosary-week-table tr.is-today { background: #e8f4fc; }
.rosary-week-table .today-badge {
	display: inline-block;
	padding: 2px 8px;
	background: #2271b1;
	color: #fff;
	font-size: 0.75em;
	border-radius: 4px;
	margin-left: 8px;
	font-weight: normal;
}
.rosary-week-table a { color: #2271b1; text-decoration: none; }
.rosary-week-table a:hover { text-decoration: underline; }

/* ==========================================================================
   ROSARY SERIES
   ========================================================================== */
.parish-rosary-series { padding: 0; }
.parish-rosary-series .rosary-season { margin-bottom: 20px; }
.parish-rosary-series .rosary-series-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}
.parish-rosary-series .rosary-series-card {
	padding: 20px;
	background: #f9f9f9;
	border-radius: 8px;
	border-top: 4px solid #2271b1;
}
.parish-rosary-series .rosary-series-card h4 { margin: 0 0 12px 0; }
.parish-rosary-series .rosary-series-card h4 a { color: #2271b1; text-decoration: none; }
.parish-rosary-series .rosary-series-card h4 a:hover { text-decoration: underline; }
.parish-rosary-series .series-description { margin: 0 0 12px 0; color: #555; font-size: 0.95em; }
.parish-rosary-series .series-days { margin: 0; padding-top: 12px; border-top: 1px solid #ddd; font-size: 0.9em; }

/* Mystery-specific colors */
.parish-rosary-series .rosary-series-card:nth-child(1) { border-top-color: #FFD700; }
.parish-rosary-series .rosary-series-card:nth-child(2) { border-top-color: #C41E3A; }
.parish-rosary-series .rosary-series-card:nth-child(3) { border-top-color: #FFFFFF; border-top: 4px solid #ddd; }
.parish-rosary-series .rosary-series-card:nth-child(4) { border-top-color: #87CEEB; }

/* ==========================================================================
   ROSARY MYSTERIES
   ========================================================================== */
.parish-rosary-mysteries { padding: 0; }
.parish-rosary-mysteries .mysteries-section {
	margin-bottom: 30px;
	padding: 20px;
	background: #f9f9f9;
	border-radius: 8px;
}
.parish-rosary-mysteries .mysteries-section:last-child { margin-bottom: 0; }
.parish-rosary-mysteries .mysteries-section h3 {
	margin: 0 0 12px 0;
	padding-bottom: 12px;
	border-bottom: 2px solid #2271b1;
}
.parish-rosary-mysteries .mysteries-description {
	margin: 0 0 16px 0;
	color: #555;
	font-style: italic;
}
.parish-rosary-mysteries .mysteries-list { margin: 0; padding-left: 24px; }
.parish-rosary-mysteries .mysteries-list li { margin-bottom: 8px; font-size: 1.05em; }
.parish-rosary-mysteries .mysteries-list li:last-child { margin-bottom: 0; }

/* Anchor styling for direct links */
.parish-rosary-mysteries .mysteries-section:target { animation: highlight-section 2s ease-out; }
@keyframes highlight-section { from { background: #d4edfc; } to { background: #f9f9f9; } }

#joyful h3 { border-bottom-color: #FFD700; }
#sorrowful h3 { border-bottom-color: #C41E3A; }
#glorious h3 { border-bottom-color: #8B00FF; }
#luminous h3 { border-bottom-color: #87CEEB; }

/* ==========================================================================
   SCHEDULE SHORTCODES
   ========================================================================== */
.parish-schedule,
.parish-weekly-schedule,
.parish-today-schedule {
	margin: 1.5em 0;
	font-size: 1rem;
	line-height: 1.6;
}

/* Schedule Day */
.parish-schedule .schedule-day,
.parish-weekly-schedule .schedule-day {
	margin-bottom: 1.5em;
}

.parish-schedule .schedule-day:last-child,
.parish-weekly-schedule .schedule-day:last-child {
	margin-bottom: 0;
}

.parish-schedule .schedule-day.is-today,
.parish-weekly-schedule .schedule-day.is-today {
	background: #f0f7fc;
	border-radius: 8px;
	padding: 1em;
	margin-left: -1em;
	margin-right: -1em;
}

/* Day Header */
.parish-schedule .day-header,
.parish-weekly-schedule .day-header {
	display: flex;
	align-items: center;
	gap: 0.75em;
	margin: 0 0 0.75em 0;
	font-size: 1.1em;
	font-weight: 600;
	color: #1d2327;
	padding-bottom: 0.5em;
	border-bottom: 2px solid #2271b1;
}

.parish-schedule .day-date,
.parish-weekly-schedule .day-date {
	font-weight: 400;
	color: #666;
	font-size: 0.9em;
}

.parish-schedule .today-badge,
.parish-weekly-schedule .today-badge,
.parish-today-schedule .today-badge {
	display: inline-block;
	padding: 2px 10px;
	background: #2271b1;
	color: #fff;
	font-size: 0.75em;
	border-radius: 4px;
	font-weight: 500;
}

/* Feast Day */
.feast-day-header,
.feast-day-info {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin-bottom: 0.75em;
	padding: 0.5em 0.75em;
	background: #f9f9f9;
	border-radius: 6px;
	font-size: 0.95em;
}

.feast-color {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 2px solid rgba(0, 0, 0, 0.1);
	flex-shrink: 0;
}

.feast-title {
	font-weight: 600;
	color: #1d2327;
}

.feast-rank {
	font-size: 0.85em;
	color: #666;
}

/* Today's Schedule */
.parish-today-schedule .today-header {
	margin: 0 0 1em 0;
	font-size: 1.2em;
	font-weight: 600;
}

.parish-today-schedule .today-date {
	color: #1d2327;
}

/* Schedule Events List */
.schedule-events {
	list-style: none;
	margin: 0;
	padding: 0;
}

.schedule-events li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75em;
	padding: 0.75em 0;
	border-bottom: 1px solid #eee;
}

.schedule-events li:last-child {
	border-bottom: none;
}

.schedule-events li.cancelled {
	opacity: 0.5;
	text-decoration: line-through;
}

.schedule-events .event-time {
	font-weight: 600;
	color: #2271b1;
	min-width: 80px;
}

.schedule-events .event-type {
	display: inline-block;
	padding: 2px 10px;
	background: #e8f4fc;
	color: #2271b1;
	border-radius: 4px;
	font-size: 0.9em;
	font-weight: 500;
}

.schedule-events .event-title {
	color: #1d2327;
}

.schedule-events .event-location {
	color: #666;
	font-size: 0.9em;
}

.schedule-events .event-intention {
	font-size: 0.9em;
	color: #666;
}

.schedule-events .livestream-badge {
	font-size: 0.85em;
}

.schedule-events .cancelled-badge {
	font-size: 0.75em;
	background: #dc3545;
	color: #fff;
	padding: 2px 8px;
	border-radius: 4px;
	font-weight: 500;
}

.parish-schedule-empty,
.parish-schedule-error {
	text-align: center;
	font-style: italic;
	color: #666;
	padding: 2em;
}

.no-events {
	font-style: italic;
	color: #666;
}

/* Schedule Table Format */
.parish-schedule-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1em 0;
}

.parish-schedule-table th,
.parish-schedule-table td {
	padding: 12px;
	text-align: left;
	border-bottom: 1px solid #eee;
}

.parish-schedule-table th {
	background: #f5f5f5;
	font-weight: 600;
	font-size: 0.9em;
	color: #666;
}

.parish-schedule-table tr.cancelled {
	opacity: 0.5;
	text-decoration: line-through;
}

.parish-schedule-table .livestream-badge {
	font-size: 0.85em;
}

/* Schedule Cards Format */
.parish-schedule-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1em;
	margin: 1em 0;
}

.schedule-card {
	display: flex;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	overflow: hidden;
	transition: box-shadow 0.2s;
}

.schedule-card:hover {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.schedule-card.cancelled {
	opacity: 0.5;
}

.schedule-card .card-time {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 80px;
	padding: 1em;
	background: #2271b1;
	color: #fff;
	font-weight: 600;
	font-size: 1.1em;
}

.schedule-card .card-content {
	flex: 1;
	padding: 1em;
}

.schedule-card .card-type {
	font-size: 0.85em;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 0.25em;
}

.schedule-card .card-title {
	font-weight: 600;
	color: #1d2327;
	margin-bottom: 0.25em;
}

.schedule-card .card-location {
	font-size: 0.9em;
	color: #666;
}

.schedule-card .card-intention {
	font-size: 0.9em;
	color: #666;
	margin-top: 0.5em;
}

.schedule-card .livestream-link {
	display: inline-block;
	margin-top: 0.5em;
	color: #dc3545;
	font-size: 0.9em;
	text-decoration: none;
}

.schedule-card .livestream-link:hover {
	text-decoration: underline;
}

/* Schedule Simple Format */
.parish-schedule-simple {
	list-style: none;
	margin: 1em 0;
	padding: 0;
}

.parish-schedule-simple li {
	padding: 0.5em 0;
	border-bottom: 1px solid #eee;
}

.parish-schedule-simple li:last-child {
	border-bottom: none;
}

/* ==========================================================================
   RESPONSIVE ADJUSTMENTS
   ========================================================================== */
@media (max-width: 600px) {
	.parish-rosary-series .rosary-series-grid { grid-template-columns: 1fr; }
	.rosary-schedule-table,
	.rosary-week-table { font-size: 0.9em; }
	.rosary-schedule-table th,
	.rosary-schedule-table td,
	.rosary-week-table th,
	.rosary-week-table td { padding: 10px; }

	/* Schedule responsive */
	.parish-schedule-cards {
		grid-template-columns: 1fr;
	}

	.schedule-events li {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.25em;
	}

	.schedule-events .event-time {
		min-width: auto;
	}

	.parish-schedule .schedule-day.is-today,
	.parish-weekly-schedule .schedule-day.is-today {
		margin-left: 0;
		margin-right: 0;
	}
}


/* ==========================================================================
   LEGACY SCHEDULE SECTIONS
   ========================================================================== */
/* Hide legacy schedule sections by default - shown only when schedule_display is static */
.church-legacy-schedule {
	display: none;
}

/* Static schedule display when explicitly set */
.parish-church-schedule-static {
	padding: 20px 0;
}

.parish-church-schedule-static .schedule-section {
	margin-bottom: 24px;
}

.parish-church-schedule-static .schedule-section:last-child {
	margin-bottom: 0;
}

.parish-church-schedule-static h3 {
	font-size: 1.1em;
	margin-bottom: 8px;
	color: var(--parish-text-dark, #333);
}

.parish-church-schedule-static .schedule-content {
	line-height: 1.8;
	color: var(--parish-text-color, #555);
}

/* ==========================================================================
   MINI SHORTCODES (Block Format)
   For use on dark backgrounds - white text with clean typography
   ========================================================================== */

/* Feast Day Mini - Block Format */
.feast-day-mini--block {
	color: #fff;
	line-height: 1.5;
}

.feast-day-mini--block .feast-mini-name {
	display: block;
	font-size: 1.25em;
	font-weight: 600;
	margin-bottom: 0.5em;
}

.feast-day-mini--block .feast-mini-color-row,
.feast-day-mini--block .feast-mini-rank-row {
	display: block;
	font-size: 0.95em;
	margin-bottom: 0.25em;
}

.feast-day-mini--block .feast-mini-label {
	opacity: 0.85;
}

.feast-day-mini--block .feast-mini-color,
.feast-day-mini--block .feast-mini-rank {
	font-weight: 600;
}

/* Mass Readings Mini - Block Format */
.mass-readings-mini--block {
	color: #fff;
	line-height: 1.5;
}

.mass-readings-mini--block .reading-mini-row {
	display: block;
	margin-bottom: 0.35em;
}

.mass-readings-mini--block .reading-mini-row:last-child {
	margin-bottom: 0;
}

.mass-readings-mini--block .reading-mini-label {
	font-weight: 600;
	opacity: 0.85;
}

.mass-readings-mini--block .reading-mini-text {
	font-weight: 400;
}

/* Liturgical Season Mini - Block Format */
.liturgical-season-mini--block {
	color: #fff;
	line-height: 1.5;
}

.liturgical-season-mini--block .season-mini-row {
	display: block;
	margin-bottom: 0.35em;
}

.liturgical-season-mini--block .season-mini-row:last-child {
	margin-bottom: 0;
}

.liturgical-season-mini--block .season-mini-label {
	font-weight: 600;
	opacity: 0.85;
}

.liturgical-season-mini--block .season-mini-name,
.liturgical-season-mini--block .season-mini-week,
.liturgical-season-mini--block .season-mini-color {
	font-weight: 400;
}

/* Rosary Today Mini - Block Format */
.rosary-today-mini--block {
	color: #fff;
	line-height: 1.5;
}

.rosary-today-mini--block .rosary-mini-name {
	display: block;
	font-size: 1.25em;
	font-weight: 600;
	margin-bottom: 0.5em;
}

.rosary-today-mini--block .rosary-mini-description {
	display: block;
	font-size: 0.95em;
	margin-bottom: 0.5em;
	opacity: 0.9;
}

.rosary-today-mini--block .rosary-mini-mysteries {
	display: block;
	font-size: 0.9em;
	opacity: 0.85;
}

/* Mini Shortcodes - Inline Format (for dark backgrounds) */
.feast-day-mini--inline,
.mass-readings-mini--inline,
.liturgical-season-mini--inline,
.rosary-today-mini--inline {
	color: #fff;
}

.feast-day-mini--inline .feast-mini-label,
.mass-readings-mini--inline .reading-mini-label,
.liturgical-season-mini--inline .season-mini-label {
	font-weight: 600;
	opacity: 0.85;
}

/* Mini Shortcodes - Light Theme Modifier */
.mini-shortcode--light .feast-day-mini--block,
.mini-shortcode--light .mass-readings-mini--block,
.mini-shortcode--light .liturgical-season-mini--block,
.mini-shortcode--light .rosary-today-mini--block,
.mini-shortcode--light .feast-day-mini--inline,
.mini-shortcode--light .mass-readings-mini--inline,
.mini-shortcode--light .liturgical-season-mini--inline,
.mini-shortcode--light .rosary-today-mini--inline {
	color: #1d2327;
}

.mini-shortcode--light .feast-day-mini--block .feast-mini-label,
.mini-shortcode--light .mass-readings-mini--block .reading-mini-label,
.mini-shortcode--light .liturgical-season-mini--block .season-mini-label,
.mini-shortcode--light .rosary-today-mini--block .rosary-mini-description,
.mini-shortcode--light .rosary-today-mini--block .rosary-mini-mysteries {
	opacity: 0.7;
}

/* ==========================================================================
   TODAY WIDGET SHORTCODE
   ========================================================================== */
.parish-today-widget {
	line-height: 1.6;
}

.parish-today-widget .widget-date {
	margin: 0 0 1em 0;
	font-size: 0.9em;
	color: inherit;
	opacity: 0.85;
}

.parish-today-widget .widget-church {
	margin-bottom: 1.25em;
}

.parish-today-widget .widget-church:last-child {
	margin-bottom: 0;
}

.parish-today-widget .church-name {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin: 0 0 0.25em 0;
	font-weight: 400;
	color: inherit;
}

.parish-today-widget .livestream-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	color: var(--wp--preset--color--accent, #2271b1);
	font-size: 0.9em;
	font-weight: 400;
}

.parish-today-widget .livestream-badge svg {
	width: 1em;
	height: 1em;
}

.parish-today-widget .church-times {
	margin: 0;
}

.parish-today-widget .time {
	font-weight: 600;
	color: var(--wp--preset--color--accent, #2271b1);
}

.parish-today-widget .time-note {
	font-weight: 400;
	color: inherit;
	opacity: 0.7;
}

.parish-today-widget .no-events {
	margin: 0;
	font-style: italic;
	opacity: 0.7;
}

/* ==========================================================================
   CHURCH SCHEDULE SHORTCODE
   ========================================================================== */
.parish-church-schedule {
	line-height: 1.6;
}

.parish-church-schedule .schedule-table {
	display: flex;
	flex-direction: column;
}

.parish-church-schedule .schedule-table + .schedule-table {
	margin-top: 1.5em;
	padding-top: 1em;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.parish-church-schedule .schedule-row {
	display: flex;
	align-items: baseline;
	gap: 1em;
	padding: 0.5em 0;
}

.parish-church-schedule .schedule-day {
	display: flex;
	align-items: center;
	gap: 0.5em;
	min-width: 140px;
	flex-shrink: 0;
}

.parish-church-schedule .schedule-icon {
	width: 1em;
	height: 1em;
	flex-shrink: 0;
	opacity: 0.5;
}

.parish-church-schedule .day-name {
	font-weight: 400;
	color: inherit;
}

.parish-church-schedule .schedule-times {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25em;
	flex: 1;
}

.parish-church-schedule .time {
	font-weight: 600;
	color: var(--wp--preset--color--accent, #2271b1);
}

.parish-church-schedule .time-sep {
	color: inherit;
}

.parish-church-schedule .livestream-icon {
	width: 0.9em;
	height: 0.9em;
	margin-left: 0.15em;
	color: var(--wp--preset--color--accent, #2271b1);
	vertical-align: middle;
}

.parish-church-schedule .time-note {
	font-weight: 400;
	color: var(--wp--preset--color--accent, #2271b1);
	font-size: 0.9em;
	margin-left: 0.15em;
}

.parish-church-schedule .schedule-side-note {
	font-size: 0.9em;
	font-style: italic;
	color: inherit;
	opacity: 0.7;
	margin-left: auto;
	text-align: right;
}

.parish-church-schedule .parish-schedule-empty,
.parish-church-schedule .parish-schedule-error {
	margin: 0;
	font-style: italic;
	opacity: 0.7;
}

/* ==========================================================================
   RESPONSIVE - TODAY WIDGET & CHURCH SCHEDULE
   ========================================================================== */
@media (max-width: 600px) {
	.parish-church-schedule .schedule-row {
		flex-wrap: wrap;
	}

	.parish-church-schedule .schedule-day {
		min-width: 100%;
		margin-bottom: 0.25em;
	}

	.parish-church-schedule .schedule-times {
		padding-left: 1.5em;
	}

	.parish-church-schedule .schedule-side-note {
		width: 100%;
		padding-left: 1.5em;
		text-align: left;
		margin-left: 0;
		margin-top: 0.25em;
	}
}

/* ==========================================================================
   MASS SCHEDULE GUTENBERG BLOCK
   ========================================================================== */
.parish-mass-schedule-block {
	line-height: 1.4;
}

.parish-mass-schedule-rows {
	display: block !important;
}

.parish-mass-schedule-row {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 0.75em !important;
	padding: 0.35em 0 !important;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.parish-mass-schedule-row:last-child {
	border-bottom: none;
}

.parish-mass-schedule-row > * {
	display: inline-flex !important;
}

.parish-mass-schedule-icon {
	flex: 0 0 auto !important;
	width: 1.2em !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.parish-mass-schedule-icon i {
	font-size: 1em;
	display: inline-block !important;
}

.parish-mass-schedule-day {
	flex: 0 0 90px !important;
	font-weight: 500;
}

.parish-mass-schedule-times {
	flex: 1 1 auto !important;
	display: inline-flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 0.25em !important;
}

.parish-mass-schedule-time {
	font-weight: 600;
	display: inline !important;
}

.parish-mass-schedule-sep {
	color: inherit;
	opacity: 0.5;
	display: inline !important;
}

.parish-mass-schedule-note {
	font-size: 0.9em;
	opacity: 0.7;
	display: inline !important;
}

.parish-mass-schedule-no-mass {
	font-style: italic;
	opacity: 0.5;
	display: inline !important;
}

.parish-mass-schedule-live {
	margin-left: 0.5em;
	font-size: 0.9em;
	display: inline !important;
}

.parish-mass-schedule-sidenote {
	flex: 0 0 auto !important;
	font-size: 0.85em;
	font-style: italic;
	opacity: 0.6;
	margin-left: auto !important;
	text-align: right;
}

.parish-mass-schedule-divider {
	height: 1px;
	background: rgba(0, 0, 0, 0.1);
	margin: 0.5em 0;
	border-top: 1px dashed rgba(0, 0, 0, 0.15);
}

/* Editor placeholder */
.parish-mass-schedule-placeholder,
.parish-mass-schedule-error {
	padding: 1.5em;
	background: #f8f8f8;
	border: 1px dashed #ccc;
	border-radius: 4px;
	text-align: center;
	color: #666;
	font-style: italic;
}

/* Responsive - Mass Schedule Block */
@media (max-width: 600px) {
	.parish-mass-schedule-row {
		flex-wrap: wrap !important;
	}

	.parish-mass-schedule-day {
		flex: 0 0 calc(100% - 2em) !important;
	}

	.parish-mass-schedule-times {
		width: 100%;
		padding-left: 2em;
	}

	.parish-mass-schedule-sidenote {
		width: 100%;
		padding-left: 2em;
		text-align: left;
		margin-left: 0;
		margin-top: 0.25em;
	}
}

/* ==========================================================================
   CHURCH SCHEDULE GUTENBERG BLOCK
   ========================================================================== */
.parish-church-schedule-block {
	line-height: 1.4;
}

.parish-church-schedule-rows {
	display: block !important;
}

.parish-church-schedule-row {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 0.75em !important;
	padding: 0.35em 0 !important;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.parish-church-schedule-row:last-child {
	border-bottom: none;
}

.parish-church-schedule-row > * {
	display: inline-flex !important;
}

.parish-church-schedule-icon {
	flex: 0 0 auto !important;
	width: 1.2em !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.parish-church-schedule-icon i {
	font-size: 1em;
	display: inline-block !important;
}

.parish-church-schedule-day {
	flex: 0 0 90px !important;
	font-weight: 500;
}

.parish-church-schedule-times {
	flex: 1 1 auto !important;
	display: inline-flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 0.25em !important;
}

.parish-church-schedule-time {
	font-weight: 600;
	display: inline !important;
}

.parish-church-schedule-sep {
	color: inherit;
	opacity: 0.5;
	display: inline !important;
}

.parish-church-schedule-note {
	font-size: 0.9em;
	opacity: 0.7;
	display: inline !important;
}

.parish-church-schedule-no-event {
	font-style: italic;
	opacity: 0.5;
	display: inline !important;
}

.parish-church-schedule-live {
	margin-left: 0.5em;
	font-size: 0.9em;
	display: inline !important;
}

.parish-church-schedule-sidenote {
	flex: 0 0 auto !important;
	font-size: 0.85em;
	font-style: italic;
	opacity: 0.6;
	margin-left: auto !important;
	text-align: right;
}

.parish-church-schedule-divider {
	height: 1px;
	background: rgba(0, 0, 0, 0.1);
	margin: 0.5em 0;
	border-top: 1px dashed rgba(0, 0, 0, 0.15);
}

/* Static schedule fallback */
.parish-church-schedule-block--static .parish-church-schedule-section {
	margin-bottom: 1.5em;
}

.parish-church-schedule-block--static .parish-church-schedule-section:last-child {
	margin-bottom: 0;
}

.parish-church-schedule-block--static .parish-church-schedule-section-title {
	font-size: 1.1em;
	font-weight: 600;
	margin: 0 0 0.5em 0;
}

.parish-church-schedule-block--static .parish-church-schedule-section-content {
	line-height: 1.8;
}

/* Editor placeholder */
.parish-church-schedule-placeholder {
	padding: 1.5em;
	background: #f8f8f8;
	border: 1px dashed #ccc;
	border-radius: 4px;
	text-align: center;
	color: #666;
	font-style: italic;
}

/* Responsive - Church Schedule Block */
@media (max-width: 600px) {
	.parish-church-schedule-row {
		flex-wrap: wrap !important;
	}

	.parish-church-schedule-day {
		flex: 0 0 calc(100% - 2em) !important;
	}

	.parish-church-schedule-times {
		width: 100%;
		padding-left: 2em;
	}

	.parish-church-schedule-sidenote {
		width: 100%;
		padding-left: 2em;
		text-align: left;
		margin-left: 0;
		margin-top: 0.25em;
	}
}

/* ==========================================================================
   TODAY MASS WIDGET BLOCK
   ========================================================================== */
.parish-today-mass-block {
	line-height: 1.4;
}

.parish-today-mass-date {
	font-weight: 600;
	margin-bottom: 0.5em;
}

.parish-today-mass-rows {
	display: block !important;
}

.parish-today-mass-row {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 0.75em !important;
	padding: 0.35em 0 !important;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.parish-today-mass-row:last-child {
	border-bottom: none;
}

.parish-today-mass-row > * {
	display: inline-flex !important;
}

.parish-today-mass-icon {
	flex: 0 0 auto !important;
	width: 1.2em !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.parish-today-mass-icon i {
	font-size: 1em;
	display: inline-block !important;
}

.parish-today-mass-church {
	flex: 0 0 auto !important;
	font-weight: 500;
	min-width: 120px;
}

.parish-today-mass-times {
	flex: 1 1 auto !important;
	display: inline-flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 0.25em !important;
}

.parish-today-mass-time {
	font-weight: 600;
	display: inline !important;
}

.parish-today-mass-sep {
	color: inherit;
	opacity: 0.5;
	display: inline !important;
}

.parish-today-mass-note {
	font-size: 0.9em;
	opacity: 0.7;
	display: inline !important;
}

.parish-today-mass-no-mass {
	font-style: italic;
	opacity: 0.5;
	display: inline !important;
}

.parish-today-mass-live {
	margin-left: 0.5em;
	font-size: 0.9em;
	display: inline !important;
}

/* Editor placeholder */
.parish-today-mass-placeholder {
	padding: 1.5em;
	background: #f8f8f8;
	border: 1px dashed #ccc;
	border-radius: 4px;
	text-align: center;
	color: #666;
	font-style: italic;
}

/* ==========================================================================
   EVENTS CALENDAR BLOCK
   ========================================================================== */
.parish-events-calendar-block {
	width: 100%;
	max-width: 100%;
}

.parish-events-calendar {
	width: 100%;
}

.parish-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 1px;
	background: #ddd;
	border: 1px solid #ddd;
	border-radius: 8px;
	overflow-x: auto;
	min-width: 100%;
}

/* On smaller screens, add horizontal scroll with minimum column widths */
@media (max-width: 768px) {
	.parish-calendar-grid {
		grid-template-columns: repeat(7, minmax(100px, 1fr));
		min-width: 700px;
	}

	.parish-events-calendar {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

.parish-calendar-day-header {
	background: #f6f7f7;
	padding: 0.75em 0.5em;
	text-align: center;
	font-weight: 600;
	font-size: 0.85em;
}

.parish-calendar-day {
	background: #fff;
	min-height: 100px;
	padding: 0.5em;
	position: relative;
}

.parish-calendar-day-empty {
	background: #fafafa;
}

.parish-calendar-today {
	background: #f0f7ff;
}

.parish-calendar-day-number {
	display: inline-block;
	font-weight: 600;
	font-size: 0.9em;
	margin-bottom: 0.25em;
}

.parish-calendar-day-events {
	font-size: 0.75em;
	line-height: 1.3;
}

.parish-calendar-event {
	display: block;
	padding: 2px 4px;
	margin: 2px 0;
	border-radius: 2px;
	text-decoration: none;
	color: inherit;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.parish-calendar-event-more {
	color: #666;
	font-style: italic;
}

.parish-calendar-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1em;
	padding: 0.5em 0;
	flex-wrap: wrap;
	gap: 0.5em;
}

.parish-calendar-nav {
	padding: 0.5em 1em;
	background: #f0f0f0;
	border-radius: 4px;
	text-decoration: none;
	color: inherit;
	display: flex;
	align-items: center;
	gap: 0.25em;
}

.parish-calendar-nav:hover {
	background: #e0e0e0;
}

.parish-calendar-title {
	margin: 0;
	font-size: 1.25em;
}
