/* RFC Sermon Notes
 * Palette follows the church site: navy + gold. Both are overridable in
 * Sermon Notes > Settings and per Elementor widget. Fonts inherit from the theme.
 */

.rfcsn {
	--rfcsn-accent: #1b365d;      /* navy */
	--rfcsn-highlight: #ffd100;   /* gold */
	--rfcsn-ink: #16213a;
	--rfcsn-muted: #5b6475;
	--rfcsn-line: #e3e7ee;
	--rfcsn-soft: #f4f6f9;
	--rfcsn-card: #ffffff;
	--rfcsn-radius: 14px;
	--rfcsn-accent-tint: color-mix(in srgb, var(--rfcsn-accent) 8%, #fff);
	--rfcsn-highlight-tint: color-mix(in srgb, var(--rfcsn-highlight) 32%, #fff);
	box-sizing: border-box;
}
.rfcsn *, .rfcsn *::before, .rfcsn *::after { box-sizing: inherit; }
.rfcsn p { margin: 0; }
.rfcsn .rfcsn-icon { display: inline-block; flex: none; vertical-align: middle; }

/* ---------- Buttons (specific enough to beat theme/Elementor kit button styles) ---------- */
.rfcsn .rfcsn-btn,
.rfcsn button.rfcsn-btn,
.rfcsn a.rfcsn-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 48px;
	margin: 0;
	padding: 0.6em 1.4em;
	border: 2px solid var(--rfcsn-accent);
	border-radius: 10px;
	background: var(--rfcsn-accent);
	box-shadow: none;
	color: #fff;
	font: inherit;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.2;
	text-decoration: none;
	text-transform: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.rfcsn .rfcsn-btn:hover,
.rfcsn .rfcsn-btn:focus-visible {
	background: var(--rfcsn-highlight);
	border-color: var(--rfcsn-highlight);
	color: var(--rfcsn-accent);
}
.rfcsn .rfcsn-btn--quiet,
.rfcsn button.rfcsn-btn--quiet {
	background: transparent;
	color: var(--rfcsn-accent);
}
.rfcsn .rfcsn-btn--quiet:hover {
	background: var(--rfcsn-accent);
	border-color: var(--rfcsn-accent);
	color: #fff;
}
.rfcsn a:focus-visible,
.rfcsn button:focus-visible,
.rfcsn input:focus-visible,
.rfcsn select:focus-visible {
	outline: 3px solid var(--rfcsn-highlight);
	outline-offset: 2px;
}

/* ---------- Filter bar ---------- */
.rfcsn .rfcsn-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.75rem;
	margin: 0 0 2rem;
	padding: 0.9rem;
	border: 1px solid var(--rfcsn-line);
	border-radius: var(--rfcsn-radius);
	background: var(--rfcsn-card);
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 8px 24px -16px rgba(27, 54, 93, 0.25);
}
.rfcsn .rfcsn-filter { display: flex; flex-direction: column; gap: 0.35rem; flex: 1 1 170px; min-width: 0; }
.rfcsn .rfcsn-filter--search { flex: 3 1 280px; }
.rfcsn .rfcsn-filter--actions { flex: 0 0 auto; flex-direction: row; align-items: center; gap: 1rem; }
.rfcsn .rfcsn-filter label {
	color: var(--rfcsn-muted);
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.2;
}
.rfcsn .rfcsn-filter input,
.rfcsn .rfcsn-filter select {
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0.6em 0.9em;
	border: 1px solid transparent;
	border-radius: 10px;
	background-color: var(--rfcsn-soft);
	box-shadow: none;
	color: var(--rfcsn-ink);
	font: inherit;
	font-size: 1rem;
	line-height: 1.3;
}
.rfcsn .rfcsn-filter input[type="search"] {
	padding-left: 2.6em;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6475' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 0.9em center;
	background-size: 1.1em;
}
.rfcsn .rfcsn-filter select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.4em;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6475' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.8em center;
	background-size: 1em;
	cursor: pointer;
}
.rfcsn .rfcsn-filter input:focus,
.rfcsn .rfcsn-filter select:focus {
	border-color: var(--rfcsn-accent);
	background-color: #fff;
	outline: none;
	box-shadow: 0 0 0 3px var(--rfcsn-highlight-tint);
}
.rfcsn .rfcsn-filter input::placeholder { color: #8a92a3; opacity: 1; }
.rfcsn .rfcsn-clear { color: var(--rfcsn-accent); font-size: 0.9rem; font-weight: 600; text-underline-offset: 3px; }
.rfcsn .rfcsn-count { margin: -1rem 0 1.25rem; color: var(--rfcsn-muted); font-size: 0.95rem; }

@media (max-width: 639px) {
	.rfcsn .rfcsn-filter--actions { flex: 1 1 100%; }
	.rfcsn .rfcsn-filter--actions .rfcsn-btn { flex: 1; }
}

/* ---------- Grid ---------- */
.rfcsn .rfcsn-grid { display: grid; gap: 1.75rem; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 640px) {
	.rfcsn .rfcsn-grid--2, .rfcsn .rfcsn-grid--3, .rfcsn .rfcsn-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.rfcsn .rfcsn-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rfcsn .rfcsn-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.rfcsn .rfcsn-featured { margin-bottom: 2rem; }

/* ---------- Card ---------- */
.rfcsn .rfcsn-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--rfcsn-line);
	border-radius: var(--rfcsn-radius);
	background: var(--rfcsn-card);
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05);
	color: var(--rfcsn-ink);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.rfcsn .rfcsn-card:hover {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--rfcsn-accent) 30%, var(--rfcsn-line));
	box-shadow: 0 16px 32px -14px rgba(27, 54, 93, 0.35);
}
/* Optional top bar (Elementor "Top accent bar" control) */
.rfcsn .rfcsn-card::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 2;
	height: 4px;
	background: var(--rfcsn-highlight);
	display: none;
	pointer-events: none;
}
.rfcsn-bar-show .rfcsn .rfcsn-card::before { display: block; }

.rfcsn .rfcsn-card--linked .rfcsn-card-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.rfcsn .rfcsn-card--linked .rfcsn-card-link,
.rfcsn .rfcsn-card--linked .rfcsn-card-media { position: relative; z-index: 2; }

/* Image / cover */
.rfcsn .rfcsn-card-image {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--rfcsn-accent);
	text-decoration: none;
}
.rfcsn .rfcsn-card-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.rfcsn .rfcsn-card:hover .rfcsn-card-image img { transform: scale(1.04); }

/* Generated cover: a ruled notebook page in the church navy, gold margin line. */
.rfcsn .rfcsn-cover {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.25rem 1.2rem 2.6rem;
	color: #fff;
	background-color: var(--rfcsn-accent);
	background-image:
		linear-gradient(to right, transparent 1.55rem, var(--rfcsn-highlight) 1.55rem, var(--rfcsn-highlight) calc(1.55rem + 2px), transparent calc(1.55rem + 2px)),
		repeating-linear-gradient(to bottom, transparent 0, transparent 27px, rgba(255, 255, 255, 0.09) 27px, rgba(255, 255, 255, 0.09) 28px);
}
.rfcsn .rfcsn-cover-series {
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.3;
	max-width: 85%;
}
.rfcsn .rfcsn-cover-scripture {
	color: var(--rfcsn-highlight);
	font-size: clamp(1.35rem, 1rem + 1.2vw, 1.8rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
}
.rfcsn .rfcsn-cover-icon { color: var(--rfcsn-highlight); margin-top: auto; }
.rfcsn .rfcsn-cover-icon .rfcsn-icon { width: 44px; height: 44px; }
.rfcsn .rfcsn-cover-top { display: flex; flex-direction: column; align-items: flex-start; gap: 0.55rem; }
.rfcsn .rfcsn-card-flag--float { position: absolute; top: 0.9rem; left: 0.9rem; }
.rfcsn .rfcsn-card-flag {
	display: inline-block;
	padding: 0.35em 0.8em;
	border-radius: 999px;
	background: var(--rfcsn-highlight);
	color: var(--rfcsn-accent);
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.2;
}

/* Body */
.rfcsn .rfcsn-card-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.55rem;
	padding: 1.25rem 1.35rem 1.2rem;
}
.rfcsn .rfcsn-card--text { border-top: 4px solid var(--rfcsn-highlight); }
.rfcsn .rfcsn-card-series { color: var(--rfcsn-accent); font-size: 0.85rem; font-weight: 700; }
.rfcsn .rfcsn-card-title {
	margin: 0;
	color: var(--rfcsn-ink);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
}
.rfcsn .rfcsn-card-title a { color: inherit; text-decoration: none; }
.rfcsn .rfcsn-card-title a:hover { color: var(--rfcsn-accent); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.rfcsn .rfcsn-card-scripture { color: var(--rfcsn-accent); font-weight: 700; }
.rfcsn .rfcsn-card-meta,
.rfcsn .rfcsn-header-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	overflow: hidden; /* clips the divider in front of whichever item starts a line */
	color: var(--rfcsn-muted);
	font-size: 0.9rem;
}
.rfcsn .rfcsn-card-meta > *,
.rfcsn .rfcsn-header-meta > * {
	position: relative;
	margin-right: 1.4rem;
}
.rfcsn .rfcsn-card-meta > *::before,
.rfcsn .rfcsn-header-meta > *::before {
	content: "";
	position: absolute;
	left: -0.7rem;
	top: 50%;
	width: 1px;
	height: 0.95em;
	transform: translateY(-50%);
	background: var(--rfcsn-line);
}
.rfcsn .rfcsn-card-idea {
	color: #3d4658;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.rfcsn .rfcsn-card-foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: auto;
	padding-top: 0.9rem;
	border-top: 1px solid var(--rfcsn-line);
}
.rfcsn .rfcsn-card-meta + .rfcsn-card-foot,
.rfcsn .rfcsn-card-idea + .rfcsn-card-foot,
.rfcsn .rfcsn-card-title + .rfcsn-card-foot { margin-top: auto; }
.rfcsn .rfcsn-card-body > :last-child:not(.rfcsn-card-foot) { margin-bottom: 0; }
.rfcsn .rfcsn-card-link {
	color: var(--rfcsn-accent);
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: none;
	background-image: linear-gradient(var(--rfcsn-highlight), var(--rfcsn-highlight));
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 2px;
	padding-bottom: 2px;
	transition: background-size 0.2s ease;
}
.rfcsn .rfcsn-card-link:hover { background-size: 100% 100%; color: var(--rfcsn-accent); }
.rfcsn .rfcsn-card-media { display: inline-flex; gap: 0.4rem; color: var(--rfcsn-muted); }
.rfcsn .rfcsn-card-media-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 8px;
	background: var(--rfcsn-soft);
	color: var(--rfcsn-accent);
}

/* Featured card: side-by-side on wider screens */
.rfcsn .rfcsn-card--featured .rfcsn-card-title { font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); line-height: 1.2; }
.rfcsn .rfcsn-card--featured .rfcsn-card-idea { -webkit-line-clamp: 4; font-size: 1.05rem; }
.rfcsn .rfcsn-card--featured .rfcsn-cover-scripture { font-size: clamp(1.8rem, 1.2rem + 2vw, 2.8rem); }
@media (min-width: 820px) {
	.rfcsn .rfcsn-card--featured { flex-direction: row; }
	.rfcsn .rfcsn-card--featured .rfcsn-card-image { flex: 0 0 52%; aspect-ratio: auto; min-height: 300px; }
	.rfcsn .rfcsn-card--featured .rfcsn-card-body { padding: 2rem 2.2rem; justify-content: center; gap: 0.8rem; }
	.rfcsn .rfcsn-card--featured .rfcsn-card-foot { margin-top: 0.6rem; }
	.rfcsn-latest--img-right .rfcsn-card--featured { flex-direction: row-reverse; }
	.rfcsn-latest--img-top .rfcsn-card--featured { flex-direction: column; }
	.rfcsn-latest--img-top .rfcsn-card--featured .rfcsn-card-image { flex-basis: auto; aspect-ratio: 16 / 9; min-height: 0; }
}

/* Elementor: read link as button */
.rfcsn-link-button .rfcsn .rfcsn-card-link {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 0.5em 1.1em;
	border-radius: 10px;
	background: var(--rfcsn-accent);
	color: #fff;
}
.rfcsn-link-button .rfcsn .rfcsn-card-link:hover { background: var(--rfcsn-highlight); color: var(--rfcsn-accent); }

/* ---------- Pagination / empty ---------- */
.rfcsn .rfcsn-pagination { margin-top: 2.5rem; }
.rfcsn .rfcsn-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.rfcsn .rfcsn-pagination li { margin: 0; }
.rfcsn .rfcsn-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.9em;
	border: 1px solid var(--rfcsn-line);
	border-radius: 10px;
	background: var(--rfcsn-card);
	color: var(--rfcsn-ink);
	font-weight: 600;
	text-decoration: none;
}
.rfcsn .rfcsn-pagination a.page-numbers:hover { border-color: var(--rfcsn-accent); color: var(--rfcsn-accent); }
.rfcsn .rfcsn-pagination .page-numbers.current { background: var(--rfcsn-accent); border-color: var(--rfcsn-accent); color: #fff; }
.rfcsn .rfcsn-prevnext { display: flex; justify-content: space-between; gap: 1rem; }
.rfcsn .rfcsn-prevnext .next { margin-left: auto; }
.rfcsn .rfcsn-empty {
	padding: 3rem 1.5rem;
	border: 2px dashed var(--rfcsn-line);
	border-radius: var(--rfcsn-radius);
	background: var(--rfcsn-soft);
	color: var(--rfcsn-muted);
	text-align: center;
}
.rfcsn .rfcsn-empty p { margin: 0 0 1.25rem; font-size: 1.05rem; }

/* ---------- Single note ---------- */
.rfcsn.rfcsn-header { margin: 0 0 1.75rem; color: var(--rfcsn-ink); }
.rfcsn .rfcsn-header-series { margin-bottom: 0.5rem; }
.rfcsn .rfcsn-header-series a,
.rfcsn .rfcsn-header-series span {
	display: inline-block;
	padding: 0.3em 0.85em;
	border-radius: 999px;
	background: var(--rfcsn-highlight);
	color: var(--rfcsn-accent);
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
}
.rfcsn .rfcsn-header-title { margin: 0 0 0.5rem; }
.rfcsn .rfcsn-header-scripture { margin-bottom: 0.4rem; color: var(--rfcsn-accent); font-size: 1.4rem; font-weight: 800; line-height: 1.25; }
.rfcsn .rfcsn-header-meta { font-size: 1rem; }
.rfcsn .rfcsn-header-meta a { color: inherit; font-weight: 600; }
.rfcsn .rfcsn-bigidea {
	margin-top: 1.4rem;
	padding: 1.3rem 1.5rem;
	border-left: 5px solid var(--rfcsn-highlight);
	border-radius: 0 12px 12px 0;
	background: var(--rfcsn-accent);
	color: #fff;
	font-size: 1.15rem;
	line-height: 1.55;
}
.rfcsn .rfcsn-bigidea-label { margin-bottom: 0.35rem; color: var(--rfcsn-highlight); font-size: 0.85rem; font-weight: 700; }

.rfcsn.rfcsn-media { margin: 0 0 2rem; }
.rfcsn .rfcsn-video { position: relative; aspect-ratio: 16 / 9; margin-bottom: 1rem; border-radius: 12px; overflow: hidden; background: #000; }
.rfcsn .rfcsn-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rfcsn .rfcsn-audio { margin-bottom: 1rem; }
.rfcsn .rfcsn-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }

.rfcsn.rfcsn-content { max-width: 72ch; }
.rfcsn.rfcsn-content h2, .rfcsn.rfcsn-content h3 { margin-top: 1.8em; }
.rfcsn.rfcsn-content p { margin: 0 0 1em; }

.rfcsn.rfcsn-sections { max-width: 72ch; }
.rfcsn .rfcsn-section { margin: 2.5rem 0 0; padding-top: 1.4rem; border-top: 1px solid var(--rfcsn-line); }
.rfcsn .rfcsn-section-title { margin: 0 0 0.85rem; color: var(--rfcsn-accent); font-size: 1.35rem; }
.rfcsn .rfcsn-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.rfcsn .rfcsn-section-body { line-height: 1.75; }
.rfcsn .rfcsn-section-body p { margin: 0 0 0.9em; }

/* Fill-in-the-blank */
.rfcsn .rfcsn-outline .rfcsn-section-body { font-size: 1.05rem; line-height: 2.1; }
.rfcsn .rfcsn-reveal-all,
.rfcsn button.rfcsn-reveal-all {
	padding: 0.35em 0.9em;
	border: 2px solid var(--rfcsn-accent);
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	color: var(--rfcsn-accent);
	font: inherit;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: none;
	cursor: pointer;
}
.rfcsn .rfcsn-reveal-all:hover { background: var(--rfcsn-accent); color: #fff; }
.rfcsn .rfcsn-blank,
.rfcsn button.rfcsn-blank {
	display: inline-block;
	min-width: 7ch;
	margin: 0 0.15em;
	padding: 0 0.45em;
	border: 0;
	border-bottom: 2px solid var(--rfcsn-accent);
	border-radius: 4px 4px 0 0;
	background: var(--rfcsn-highlight-tint);
	box-shadow: none;
	color: inherit;
	font: inherit;
	line-height: 1.4;
	text-transform: none;
	vertical-align: baseline;
	cursor: pointer;
}
.rfcsn .rfcsn-blank:hover { background: color-mix(in srgb, var(--rfcsn-highlight) 55%, #fff); }
.rfcsn .rfcsn-blank-answer { visibility: hidden; color: var(--rfcsn-accent); font-weight: 800; }
.rfcsn .rfcsn-blank[aria-pressed="true"] { background: transparent; cursor: default; }
.rfcsn .rfcsn-blank[aria-pressed="true"] .rfcsn-blank-answer { visibility: visible; }
@media (prefers-reduced-motion: no-preference) {
	.rfcsn .rfcsn-blank[aria-pressed="true"] .rfcsn-blank-answer { animation: rfcsn-ink 0.35s ease-out; }
	@keyframes rfcsn-ink { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: none; } }
}

/* Related */
.rfcsn.rfcsn-related { margin: 4rem 0 0; }
.rfcsn .rfcsn-related-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.4rem; }
.rfcsn .rfcsn-related-title { margin: 0; color: var(--rfcsn-ink); font-size: 1.5rem; }
.rfcsn .rfcsn-related-all { color: var(--rfcsn-accent); font-weight: 700; text-underline-offset: 3px; }

.rfcsn .screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.rfcsn .rfcsn-card, .rfcsn .rfcsn-card-image img, .rfcsn .rfcsn-card-link { transition: none; }
	.rfcsn .rfcsn-card:hover { transform: none; }
	.rfcsn .rfcsn-card:hover .rfcsn-card-image img { transform: none; }
}

/* ---------- Print ---------- */
@media print {
	.rfcsn.rfcsn-media, .rfcsn.rfcsn-related, .rfcsn .rfcsn-reveal-all,
	header.site-header, footer.site-footer, .elementor-location-header, .elementor-location-footer,
	#comments, nav { display: none !important; }
	.rfcsn .rfcsn-bigidea { background: none; color: #000; border-left-color: #000; }
	.rfcsn .rfcsn-bigidea-label { color: #000; }
	.rfcsn .rfcsn-blank { background: none; min-width: 12ch; border-bottom-color: #000; }
	.rfcsn .rfcsn-blank .rfcsn-blank-answer { visibility: hidden !important; }
	.rfcsn .rfcsn-print-answers .rfcsn-blank .rfcsn-blank-answer { visibility: visible !important; color: #000; }
	.rfcsn.rfcsn-content, .rfcsn.rfcsn-sections { max-width: none; }
}

/* Single sermon: scoped rules never reposition the church's site header. */
.rfcsn-page { clear:both; width:100%; background:#f5f7fa; padding:clamp(28px,5vw,72px) 20px; }
.rfcsn-single { max-width:1160px; margin:0 auto; color:var(--rfcsn-ink); font-size:17px; line-height:1.75; }
.rfcsn-single .rfcsn-back { display:inline-block; color:var(--rfcsn-accent); margin-bottom:24px; font-size:14px; font-weight:700; text-decoration:none; }
.rfcsn-single-hero { display:flex; align-items:center; gap:40px; padding:clamp(24px,5vw,60px); background:var(--rfcsn-accent); border-radius:24px; margin-bottom:32px; overflow:hidden; }
.rfcsn-single-hero .rfcsn-header { position:static; width:auto; flex:1; min-width:0; background:transparent; margin:0; padding:0; color:white; }
.rfcsn-single-hero .rfcsn-header-title { color:white; font-size:clamp(32px,4.5vw,56px); line-height:1.12; letter-spacing:-.035em; margin:16px 0 24px; overflow-wrap:anywhere; }
.rfcsn-single-hero .rfcsn-header-series, .rfcsn-single-hero .rfcsn-header-series a, .rfcsn-single-hero .rfcsn-header-scripture { color:var(--rfcsn-highlight); }
.rfcsn-single-hero .rfcsn-header-meta, .rfcsn-single-hero .rfcsn-header-meta a { color:#e1e9f4; }
.rfcsn-single-hero .rfcsn-bigidea { border-left:3px solid var(--rfcsn-highlight); background:transparent; padding:4px 0 4px 20px; margin-top:28px; color:white; }
.rfcsn-single-hero .rfcsn-bigidea-text { color:white; font-size:18px; }
.rfcsn-single-hero .rfcsn-bigidea-label { color:#e1e9f4; font-size:11px; letter-spacing:.15em; margin-bottom:8px; }
.rfcsn-single-art { flex:0 1 36%; }
.rfcsn-single-art img { display:block; width:100%; height:auto; border-radius:16px; }
.rfcsn-single-reading { max-width:880px; margin:0 auto 48px; padding:clamp(22px,4vw,48px); background:white; border:1px solid var(--rfcsn-line); border-radius:20px; box-shadow:0 12px 40px #1b365d08; }
.rfcsn-single-reading .rfcsn-content:empty { display:none; }
.rfcsn-single-reading .rfcsn-content { font-size:18px; line-height:1.85; overflow-wrap:anywhere; }
.rfcsn-single-reading .rfcsn-content p { margin:0 0 1.2em; }
.rfcsn-single .rfcsn-section { margin-top:32px; }
.rfcsn-single .rfcsn-section-title { font-size:25px; line-height:1.3; }
.rfcsn-single .rfcsn-section-head { flex-wrap:wrap; gap:12px; }
.rfcsn-single .rfcsn-media { margin-bottom:30px; }
.rfcsn-custom { background:white; padding:clamp(20px,4vw,48px); border-radius:20px; }
@media(max-width:700px) { .rfcsn-single-hero { flex-direction:column; align-items:stretch; gap:24px; } .rfcsn-single-art { flex:auto; } .rfcsn-page { padding:24px 14px; } .rfcsn-single .rfcsn-actions { flex-wrap:wrap; } }
@media print { .rfcsn-page { background:white; padding:0; } .rfcsn-single-hero { background:white; padding:0; display:block; } .rfcsn-single-hero .rfcsn-header *, .rfcsn-single-hero .rfcsn-bigidea-text { color:black!important; } .rfcsn-single-art,.rfcsn-back { display:none!important; } .rfcsn-single-reading { border:0; padding:0; box-shadow:none; max-width:none; } }

/* Card design is selected per Elementor widget: Content > Card content. */
.rfcsn-layout-list .rfcsn .rfcsn-grid,
.rfcsn-layout-compact .rfcsn .rfcsn-grid { grid-template-columns:minmax(0,1fr)!important; }
.rfcsn .rfcsn-card--list { flex-direction:row; }
.rfcsn .rfcsn-card--list .rfcsn-card-image { flex:0 0 30%; width:30%; min-height:190px; aspect-ratio:auto; }
.rfcsn .rfcsn-card--list .rfcsn-card-body { min-width:0; }
.rfcsn .rfcsn-card--overlay { display:flex; flex-direction:column; min-height:380px; background:var(--rfcsn-accent); border-top:0; }
.rfcsn .rfcsn-card--overlay .rfcsn-card-image { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; margin:0; }
.rfcsn .rfcsn-card--overlay .rfcsn-cover-top,
.rfcsn .rfcsn-card--overlay .rfcsn-cover-scripture,
.rfcsn .rfcsn-card--overlay .rfcsn-cover-icon { display:none; }
.rfcsn .rfcsn-card--overlay .rfcsn-card-body { position:relative; flex:1; justify-content:flex-end; padding:120px 24px 24px; background:linear-gradient(180deg,transparent,rgba(8,18,36,.65) 45%,rgba(8,18,36,.97)); color:white; }
.rfcsn .rfcsn-card--overlay .rfcsn-card-title,
.rfcsn .rfcsn-card--overlay .rfcsn-card-title a,
.rfcsn .rfcsn-card--overlay .rfcsn-card-link { color:white; }
.rfcsn .rfcsn-card--overlay .rfcsn-card-series,
.rfcsn .rfcsn-card--overlay .rfcsn-card-scripture { color:var(--rfcsn-highlight); }
.rfcsn .rfcsn-card--overlay .rfcsn-card-meta,
.rfcsn .rfcsn-card--overlay .rfcsn-card-idea { color:#e1e8f3; }
.rfcsn .rfcsn-card--overlay .rfcsn-card-foot { margin-top:8px; border-color:#ffffff40; }
.rfcsn .rfcsn-card--overlay .rfcsn-card-media-item { background:#ffffff22; color:white; }
.rfcsn .rfcsn-card--compact { flex-direction:row; align-items:center; gap:18px; padding:20px; border-top:1px solid var(--rfcsn-line); }
.rfcsn .rfcsn-card--compact .rfcsn-card-body { min-width:0; padding:0; gap:5px; }
.rfcsn .rfcsn-card--compact .rfcsn-card-title { font-size:1.15rem; }
.rfcsn .rfcsn-card--compact .rfcsn-card-idea { -webkit-line-clamp:2; }
.rfcsn .rfcsn-card--compact .rfcsn-card-foot { padding-top:8px; border:0; }
.rfcsn .rfcsn-date-badge { display:flex; flex:0 0 64px; flex-direction:column; align-items:center; justify-content:center; padding:12px 8px; border-radius:12px; background:var(--rfcsn-accent); color:white; line-height:1.3; font-size:12px; }
.rfcsn .rfcsn-date-badge strong { color:var(--rfcsn-highlight); font-size:28px; }
@media(min-width:768px) {
 .rfcsn .rfcsn-card--list.rfcsn-card--featured { display:flex; }
 .rfcsn .rfcsn-card--overlay.rfcsn-card--featured { display:flex; }
 .rfcsn .rfcsn-card--compact.rfcsn-card--featured { display:flex; }
}
@media(max-width:639px) {
 .rfcsn .rfcsn-card--list { flex-direction:column; }
 .rfcsn .rfcsn-card--list .rfcsn-card-image { width:100%; flex:auto; aspect-ratio:16/9; min-height:0; }
 .rfcsn .rfcsn-card--compact { padding:16px; gap:12px; }
 .rfcsn .rfcsn-card--compact .rfcsn-card-foot { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { .rfcsn .rfcsn-card,.rfcsn .rfcsn-card-image img { transition:none; } }

/* Theme header integration: only pages rendered by the plugin have this spacer. */
body.rfcsn-single-page:has(.rfcsn-site-header-space) .elementor-location-header,
body.rfcsn-single-page:has(.rfcsn-site-header-space) header.site-header,
body.rfcsn-single-page:has(.rfcsn-site-header-space) #masthead { background-color:transparent; }
.rfcsn-site-header-space { height:var(--rfcsn-header-space,96px); background:transparent; width:100%; flex:none; }
body.rfcsn-single-page main.rfcsn-page { margin:0!important; padding:clamp(28px,5vw,72px) 20px; width:100%; max-width:none; float:none; }
.rfcsn-library-layout-list > .rfcsn-grid,
.rfcsn-library-layout-compact > .rfcsn-grid { grid-template-columns:minmax(0,1fr)!important; }
.rfcsn-library-layout-compact > .rfcsn-grid { gap:0!important; border:1px solid var(--rfcsn-line); border-radius:14px; overflow:hidden; background:var(--rfcsn-card); }
.rfcsn-library-layout-compact > .rfcsn-grid > .rfcsn-card--compact { border:0; border-radius:0; box-shadow:none; }
.rfcsn-library-layout-compact > .rfcsn-grid > .rfcsn-card--compact + .rfcsn-card--compact { border-top:1px solid var(--rfcsn-line); }
.rfcsn-library-layout-compact > .rfcsn-grid > .rfcsn-card--compact:hover { transform:none; background:var(--rfcsn-soft); }
@media(min-width:768px) {
 .rfcsn .rfcsn-card--compact .rfcsn-card-body { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:24px; }
 .rfcsn .rfcsn-card--compact .rfcsn-card-body > * { grid-column:1; }
 .rfcsn .rfcsn-card--compact .rfcsn-card-body > .rfcsn-card-foot { grid-column:2; grid-row:1 / span 5; align-self:center; margin:0; padding:0; }
 .rfcsn .rfcsn-card--compact .rfcsn-card-foot .rfcsn-card-media { order:-1; }
 .rfcsn .rfcsn-card--compact .rfcsn-card-link { white-space:nowrap; }
}
@media(max-width:639px) { body.rfcsn-single-page main.rfcsn-page { padding:28px 14px; } }
@media print { .rfcsn-site-header-space { display:none!important; } body.rfcsn-single-page main.rfcsn-page { padding:0; } }
body.rfcsn-single-page main.rfcsn-page { box-sizing:border-box; }

/* Full-width photo banner with the existing theme navigation above it. */
.rfcsn-site-banner { position:relative; isolation:isolate; width:100%; box-sizing:border-box; min-height:360px; height:clamp(360px,22.1vw,500px); margin-top:calc(-1 * var(--rfcsn-header-space,96px)); display:flex; align-items:center; justify-content:center; padding:calc(var(--rfcsn-header-space,96px) + 20px) 24px 40px; background:#1b365d; }
.rfcsn-site-banner-image,.rfcsn-site-banner-shade { position:absolute; inset:0; width:100%; height:100%; }
.rfcsn-site-banner-image { object-fit:cover; object-position:center; z-index:-2; }
.rfcsn-site-banner-shade { background:rgba(0,0,0,.52); z-index:-1; }
.rfcsn-site-banner .rfcsn-site-banner-title { margin:0; color:white; text-align:center; font-size:clamp(36px,3.1vw,64px); font-weight:400; line-height:1.15; letter-spacing:normal; }
.rfcsn-single-intro { max-width:880px; margin:0 auto 32px; }
.rfcsn-single-intro .rfcsn-header-title { font-size:clamp(30px,3.2vw,44px); line-height:1.2; margin-bottom:20px; color:var(--rfcsn-accent); }
.rfcsn-single-intro .rfcsn-bigidea { margin-top:24px; }
@media(max-width:639px) { .rfcsn-site-banner { height:320px; min-height:320px; padding-bottom:30px; } }
@media print { .rfcsn-site-banner { display:none; } }

/* Source hero keeps the original Elementor dimensions at every breakpoint. */
.rfcsn-site-banner.rfcsn-site-banner--source { display:block; height:auto; min-height:0; padding:0; background:transparent; isolation:auto; }
.rfcsn-site-banner--source > .elementor { width:100%; }

/* 1.3.5 — Copied page hero in normal flow. The theme header's own overlap and the site's
   main#content / .site-main rules position it exactly as on the source page. */
.rfcsn-site-banner.rfcsn-site-banner--flow { margin-top: 0; padding: 0; height: auto; min-height: 0; }
main.rfcsn-shell { display: block; width: 100%; max-width: none; }
main.rfcsn-shell > .rfcsn-page { margin: 0; }
.rfcsn-single-intro--no-title .rfcsn-header { padding-top: 0; }
@media print { main.rfcsn-shell { padding: 0 !important; } }
