/*
Theme Name: Soli Deo Gloria
Theme URI: https://solideogloria-muenchen.de
Description: Standalone theme for Soli Deo Gloria München (Tailwind-based landing + WordPress integration).
Author: Felipe Salazar
Author URI: https://solideogloria-muenchen.de
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Text Domain: sdg
*/

/* ===================================================================
   Content typography — matches the homepage's visual language.
   Applied to .entry-content (WordPress the_content output).
   =================================================================== */

/* Fixed header should sit below the WordPress admin bar for logged-in users. */
.admin-bar .sdg-header {
  top: 32px;
}

@media (max-width: 782px) {
  .admin-bar .sdg-header {
    top: 46px;
  }
}

/* TranslatePress language switcher styled as the header action button. */
.sdg-header .sdg-language-switcher {
  align-items: center;
  line-height: 1;
}

.sdg-header .sdg-language-switcher--mobile {
  display: inline-flex;
  margin-top: 0.75rem;
}

.sdg-header .sdg-language-switcher--desktop {
  display: none;
}

.sdg-header .sdg-language-switcher__button {
  text-decoration: none;
}

@media (min-width: 768px) {
  .sdg-header .sdg-language-switcher--desktop {
    display: inline-flex;
  }
}

/* Page title */
.page-title {
  font-family: "DM Serif Display", Georgia, serif;
  font-size: 2.25rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--foreground);
}

@media (min-width: 768px) {
  .page-title {
    font-size: 2.75rem;
  }
}

.entry-content {
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--muted-foreground);
}

/* Headings */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  font-family: "DM Serif Display", Georgia, serif;
  color: var(--foreground);
  line-height: 1.3;
  margin-top: 2em;
  margin-bottom: 0.6em;
}

.entry-content h1 { font-size: 2rem; font-weight: 700; }
.entry-content h2 { font-size: 1.5rem; font-weight: 700; }
.entry-content h3 { font-size: 1.5rem; font-weight: 700; }
.entry-content h4 { font-size: 1.125rem; font-weight: 600; }
.entry-content h5 { font-size: 1rem; font-weight: 600; }
.entry-content h6 { font-size: 0.875rem; font-weight: 600; color: var(--muted-foreground); }

.entry-content > :first-child { margin-top: 0; }

/* Paragraphs */
.entry-content p {
  margin-bottom: 1.4em;
  text-wrap: pretty;
}

/* Links */
.entry-content a {
  color: var(--foreground);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  transition: color 0.2s ease;
}

.entry-content a:hover,
.entry-content a:focus {
  color: #bca141;
}

/* Strong / Emphasis */
.entry-content strong,
.entry-content b {
  font-weight: 600;
  color: var(--foreground);
}

/* Lists */
.entry-content ul,
.entry-content ol {
  margin-bottom: 1.4em;
  padding-left: 1.75em;
}

.entry-content ul { list-style-type: disc; }
.entry-content ol { list-style-type: decimal; }

.entry-content li {
  margin-bottom: 0.4em;
  padding-left: 0.25em;
}

.entry-content li::marker {
  color: #bca141;
}

.entry-content ul ul,
.entry-content ol ol,
.entry-content ul ol,
.entry-content ol ul {
  margin-top: 0.4em;
  margin-bottom: 0.4em;
}

/* Blockquotes */
.entry-content blockquote {
  margin: 2em 0;
  padding: 1.5em 2em;
  border-left: 3px solid #bca141;
  background: color-mix(in oklab, var(--accent) 50%, transparent);
  border-radius: 0 0.75rem 0.75rem 0;
  font-style: italic;
  font-family: "DM Serif Display", Georgia, serif;
  font-size: 1.125rem;
  line-height: 1.75;
  color: var(--foreground);
}

.entry-content blockquote p:last-child {
  margin-bottom: 0;
}

.entry-content blockquote cite {
  display: block;
  margin-top: 0.75em;
  font-size: 0.8125rem;
  font-style: normal;
  font-family: inherit;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #bca141;
}

/* Horizontal rules */
.entry-content hr {
  border: none;
  height: 1px;
  background: var(--border);
  margin: 3em 0;
}

/* Images & figures */
.entry-content img {
  max-width: 100%;
  height: auto;
  border-radius: 1rem;
  margin: 2em 0;
}

.entry-content figure {
  margin: 2em 0;
}

.entry-content figcaption {
  font-size: 0.8125rem;
  color: var(--muted-foreground);
  text-align: center;
  margin-top: 0.75em;
}

/* Code */
.entry-content code {
  font-family: "Source Code Pro", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.875em;
  background: var(--accent);
  padding: 0.15em 0.4em;
  border-radius: 0.375rem;
  color: var(--foreground);
}

.entry-content pre {
  margin: 2em 0;
  padding: 1.25em 1.5em;
  background: var(--foreground);
  color: var(--background);
  border-radius: 0.75rem;
  overflow-x: auto;
  font-size: 0.875rem;
  line-height: 1.7;
}

.entry-content pre code {
  background: transparent;
  padding: 0;
  border-radius: 0;
  color: inherit;
}

/* Tables */
.entry-content table {
  width: 100%;
  margin: 2em 0;
  border-collapse: collapse;
  font-size: 0.9375rem;
}

.entry-content th {
  text-align: left;
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted-foreground);
  padding: 0.75em 1em;
  border-bottom: 2px solid var(--border);
}

.entry-content td {
  padding: 0.75em 1em;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.entry-content tbody tr:last-child td {
  border-bottom: none;
}

/* WordPress specific: alignments, captions, galleries */
.entry-content .aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.entry-content .alignleft {
  float: left;
  margin: 0.5em 1.5em 1em 0;
}

.entry-content .alignright {
  float: right;
  margin: 0.5em 0 1em 1.5em;
}

.entry-content .wp-caption {
  max-width: 100%;
}

.entry-content .wp-caption-text {
  font-size: 0.8125rem;
  color: var(--muted-foreground);
  text-align: center;
  margin-top: 0.5em;
}

/* Table of contents (floated sidebar in content) */
.entry-content .wp-block-table-of-contents,
.entry-content .toc,
.entry-content .tableofcontents,
.entry-content [class*="table-of-contents"] {
  float: right;
  width: 220px;
  margin: 0 0 1.5em 2.5em;
  padding: 0;
  font-size: 0.875rem;
  line-height: 1.8;
}

.entry-content .wp-block-table-of-contents a,
.entry-content .toc a,
.entry-content .tableofcontents a,
.entry-content [class*="table-of-contents"] a {
  text-decoration: none;
  color: var(--foreground);
  transition: color 0.2s ease;
}

.entry-content .wp-block-table-of-contents a:hover,
.entry-content .toc a:hover,
.entry-content .tableofcontents a:hover,
.entry-content [class*="table-of-contents"] a:hover {
  color: #bca141;
}

@media (max-width: 767px) {
  .entry-content .wp-block-table-of-contents,
  .entry-content .toc,
  .entry-content .tableofcontents,
  .entry-content [class*="table-of-contents"] {
    float: none;
    width: 100%;
    margin: 0 0 2em 0;
  }
}

/* WordPress block editor: wide / full-width */
.entry-content .alignwide {
  margin-left: -2rem;
  margin-right: -2rem;
  max-width: calc(100% + 4rem);
}

.entry-content .alignfull {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  width: 100vw;
}

/* Summary (excerpts on index) */
.entry-summary {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--muted-foreground);
}

.entry-summary a {
  color: var(--foreground);
  text-decoration: underline;
  text-decoration-color: var(--border);
  text-underline-offset: 3px;
}

/* Pagination */
.nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding-top: 3rem;
}

.nav-links a,
.nav-links span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.75rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.nav-links a {
  color: var(--foreground);
  border: 1px solid var(--border);
}

.nav-links a:hover {
  background: var(--accent);
}

.nav-links .current {
  background: var(--primary);
  color: var(--primary-foreground);
  border: 1px solid var(--primary);
}

.nav-links .dots {
  border: none;
  color: var(--muted-foreground);
}

/* ===================================================================
   Elementor pages – match homepage design language.
   Scoped to .elementor-page-content so normal pages are unaffected.
   =================================================================== */

.elementor-page-content {
  --sdg-gold: #bca141;
  --sdg-text-muted: oklch(55.6% 0 0);
  --sdg-border: oklch(92.2% 0 0);
}

/* --- Hero / Cover blocks inside Elementor --- */
.elementor-page-content .wp-block-cover {
  border-radius: 0;
  margin-top: 0;
  margin-bottom: 0;
}

.elementor-page-content .wp-block-cover__image-background {
  border-radius: 0;
  margin: 0;
}

.elementor-page-content .wp-block-cover h1 {
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  font-size: 2.5rem;
  letter-spacing: -0.015em;
  margin-bottom: 0.6em;
}

@media (min-width: 768px) {
  .elementor-page-content .wp-block-cover h1 {
    font-size: 3.25rem;
  }
}

.elementor-page-content .wp-block-cover__inner-container {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  max-width: 56rem;
}

@media (min-width: 768px) {
  .elementor-page-content .wp-block-cover__inner-container {
    font-size: 1.0625rem;
  }
}

/* --- Global section spacing --- */
.elementor-page-content .elementor-top-section {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

@media (min-width: 768px) {
  .elementor-page-content .elementor-top-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}

/* Cover-hero first sections: no extra section padding (hero meets the nav). */
.elementor-page-content .elementor-top-section:first-child:has(.wp-block-cover) {
  padding-top: 0;
  padding-bottom: 0;
}

/* Pages without a cover hero (Impressum, etc.): clear the fixed header and
   keep balanced top/bottom section padding. */
.elementor-page-content:not(.legal-page-content)
  .elementor-top-section:first-child:not(:has(.wp-block-cover)) {
  padding-top: 7rem;
  padding-bottom: 3rem;
}

@media (min-width: 768px) {
  .elementor-page-content:not(.legal-page-content)
    .elementor-top-section:first-child:not(:has(.wp-block-cover)) {
    padding-top: 8rem;
    padding-bottom: 4rem;
  }
}

.admin-bar
  .elementor-page-content:not(.legal-page-content)
  .elementor-top-section:first-child:not(:has(.wp-block-cover)) {
  padding-top: calc(7rem + 32px);
}

@media (min-width: 768px) {
  .admin-bar
    .elementor-page-content:not(.legal-page-content)
    .elementor-top-section:first-child:not(:has(.wp-block-cover)) {
    padding-top: calc(8rem + 32px);
  }
}

/* Reduce excessive Elementor default spacing */
.elementor-page-content .elementor-element > .elementor-widget-container {
  margin-bottom: 0;
}

/* Limit spacer heights to avoid oversized gaps */
.elementor-page-content .elementor-widget-spacer .elementor-spacer-inner {
  max-height: 2rem;
}

/* --- Typography: headings --- */
.elementor-page-content .elementor-heading-title {
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  color: var(--foreground);
  letter-spacing: -0.01em;
  line-height: 1.3;
}

.elementor-page-content h3.elementor-heading-title {
  font-size: 1.5rem;
  position: relative;
  padding-bottom: 0.75rem;
  margin-bottom: 0.25rem;
}

.elementor-page-content h3.elementor-heading-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2rem;
  height: 2px;
  background: var(--sdg-gold);
  border-radius: 1px;
}

/* Page-title style for h2 used as the top heading of an Elementor page
   (e.g. "Was Wir Lehren"). Renders large, with a gold accent rule below,
   matching the visual language of the rest of the site. */
.elementor-page-content h2.elementor-heading-title {
  font-size: 2.5rem;
  line-height: 1.15;
  letter-spacing: -0.015em;
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
  position: relative;
}

@media (min-width: 768px) {
  .elementor-page-content h2.elementor-heading-title {
    font-size: 3.25rem;
  }
}

.elementor-page-content h2.elementor-heading-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 3rem;
  height: 2px;
  background: var(--sdg-gold);
  border-radius: 1px;
}

/* Pasted-from-Word fragments (e.g. nested <p>/<span> with inline font
   declarations) inside Elementor heading widgets need to inherit the
   parent heading's typography rather than override it. */
.elementor-page-content .elementor-widget-heading .elementor-heading-title p,
.elementor-page-content .elementor-widget-heading .elementor-heading-title span {
  display: inline;
  margin: 0;
  padding: 0;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  font-style: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  color: inherit !important;
}

.elementor-page-content h5 {
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.5;
  color: var(--foreground);
  letter-spacing: -0.01em;
}

@media (min-width: 768px) {
  .elementor-page-content h5 {
    font-size: 1.375rem;
  }
}

/* --- Typography: body text --- */
.elementor-page-content .elementor-widget-text-editor {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--sdg-text-muted);
}

/* Override pasted-from-Word inline font-family */
.elementor-page-content .elementor-widget-text-editor span[style*="font-family"] {
  font-family: inherit !important;
}

/* Override pasted-from-Word inline font-size */
.elementor-page-content .elementor-widget-text-editor span[style*="font-size"] {
  font-size: inherit !important;
  line-height: inherit !important;
}

.elementor-page-content .elementor-widget-text-editor p {
  margin-bottom: 1em;
  text-wrap: pretty;
}

.elementor-page-content .elementor-widget-text-editor strong,
.elementor-page-content .elementor-widget-text-editor b {
  font-weight: 600;
  color: var(--foreground);
}

.elementor-page-content .elementor-widget-text-editor em {
  color: var(--sdg-text-muted);
}

.elementor-page-content .elementor-widget-text-editor a {
  color: var(--foreground);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  transition: color 0.2s ease;
}

.elementor-page-content .elementor-widget-text-editor a:hover {
  color: var(--sdg-gold);
}

/* --- Images: rounded corners --- */
.elementor-page-content .elementor-widget-image img {
  border-radius: 1rem;
  transition: transform 0.4s ease;
}

.elementor-page-content .elementor-widget-image:hover img {
  transform: scale(1.02);
}

/* --- Card-style columns (3-col feature grid) --- */
.elementor-page-content .elementor-section-content-top .elementor-column {
  background: var(--background);
  border-radius: 1rem;
  padding: 1.5rem;
  border: 1px solid var(--sdg-border);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.06), 0 1px 2px -1px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.elementor-page-content .elementor-section-content-top .elementor-column:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}

/* --- Centered text section (invitation heading) ---
   Only target text-editor widgets that are DIRECT children of a 100% column.
   Without `>`, this rule was leaking into text editors nested inside col-50
   inner sections and offsetting them from sibling headings. */
.elementor-page-content
  .elementor-col-100
  > .elementor-element-populated
  > .elementor-widget-text-editor {
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}

/* --- Two-column info sections (address, time, etc.) --- */
.elementor-page-content .elementor-section-boxed:not(.elementor-section-content-top) .elementor-col-33 > .elementor-element-populated {
  padding: 0.5rem 0;
}

/* --- Section background overlays --- */
.elementor-page-content .elementor-background-overlay {
  border-radius: inherit;
}

/* Subtle warm background for card-grid sections */
.elementor-page-content .elementor-section-content-top {
  background: linear-gradient(to bottom right, #f5f4f3, #eeece9);
}

/* Legal pages: white card on grey field; grey gap above the footer. */
.legal-page-content,
.page-id-3 .elementor-page-content:not(.legal-page-content) {
  background: linear-gradient(to bottom right, #f5f4f3, #eeece9);
}

.legal-page-content__wrap {
  margin: 0 auto;
  max-width: 72rem;
  padding: 5.5rem 1.5rem 5rem;
}

@media (min-width: 768px) {
  .legal-page-content__wrap {
    padding: 7rem 3rem 6rem;
  }
}

.legal-page-content__card {
  background: var(--background);
  border: 1px solid var(--sdg-border);
  border-radius: 1rem;
  box-shadow:
    0 1px 3px 0 rgba(0, 0, 0, 0.06),
    0 1px 2px -1px rgba(0, 0, 0, 0.06);
  padding: 2rem 1.75rem;
}

@media (min-width: 768px) {
  .legal-page-content__card {
    padding: 2.75rem 2.5rem;
  }
}

.legal-page-content__card .elementor-section {
  background: transparent;
  padding: 0;
}

.legal-page-content__card .elementor-section + .elementor-section {
  margin-top: 4rem;
}

.legal-page-content.legal-page-content .legal-page-content__card .elementor-column,
.legal-page-content.legal-page-content .legal-page-content__card .elementor-column:hover {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transform: none;
}

.legal-page-content.legal-page-content .legal-page-content__card .elementor-section-content-top .elementor-column {
  padding: 0;
}

.legal-page-content.legal-page-content .legal-page-content__card .elementor-element-populated {
  height: auto;
  padding: 0;
}

.legal-page-content__card .elementor-widget-text-editor,
.legal-page-content__card .elementor-widget-heading {
  max-width: 64rem;
}

.legal-page-content__card .elementor-widget-text-editor p {
  margin-bottom: 1.25rem;
}

.legal-page-content__card .elementor-widget-text-editor p:empty,
.legal-page-content__card .elementor-widget-text-editor p:has(br:only-child) {
  display: none;
  margin: 0;
}

.legal-page-content__card .elementor-widget-text-editor h3,
.legal-page-content__card .elementor-widget-heading h2,
.legal-page-content__card .elementor-widget-heading h3 {
  font-family: "DM Serif Display", Georgia, serif;
  font-size: 1.75rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--foreground);
  margin: 0 0 1.5rem;
  padding-bottom: 0.75rem;
  position: relative;
}

.legal-page-content__card .elementor-widget-text-editor h3::after,
.legal-page-content__card .elementor-widget-heading h2::after,
.legal-page-content__card .elementor-widget-heading h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.5rem;
  height: 2px;
  background: var(--sdg-gold);
  border-radius: 1px;
}

.legal-page-content__card .elementor-widget-text-editor h3 span,
.legal-page-content__card .elementor-widget-heading h2 span,
.legal-page-content__card .elementor-widget-heading h3 span {
  color: var(--foreground) !important;
  font-family: inherit !important;
  font-size: inherit !important;
  background: transparent !important;
}

.legal-page-content__card .elementor-widget-text-editor h4 {
  font-family: "DM Serif Display", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: var(--foreground);
  margin: 2.5rem 0 0.75rem;
}

.legal-page-content__card .elementor-widget-text-editor h4 span {
  color: var(--foreground) !important;
  font-family: inherit !important;
  font-size: inherit !important;
  background: transparent !important;
}

.legal-page-content__card .elementor-widget-text-editor h4 + p {
  margin-top: 0;
}

.page-id-3 .elementor-page-content:not(.legal-page-content) .elementor-section-content-top {
  padding-bottom: 5rem;
}

@media (min-width: 768px) {
  .page-id-3 .elementor-page-content:not(.legal-page-content) .elementor-section-content-top {
    padding-bottom: 6rem;
  }
}

.page-id-3 .elementor-page-content:not(.legal-page-content) .elementor-section-content-top > .elementor-container {
  align-items: flex-start;
}

.page-id-3 .elementor-page-content:not(.legal-page-content) .elementor-section-content-top .elementor-col-100 {
  height: auto;
  align-self: flex-start;
  background: var(--background);
  border: 1px solid var(--sdg-border);
  border-radius: 1rem;
  box-shadow:
    0 1px 3px 0 rgba(0, 0, 0, 0.06),
    0 1px 2px -1px rgba(0, 0, 0, 0.06);
  padding: 2rem 1.75rem;
  transform: none;
}

@media (min-width: 768px) {
  .page-id-3 .elementor-page-content:not(.legal-page-content) .elementor-section-content-top .elementor-col-100 {
    padding: 2.75rem 2.5rem;
  }
}

.page-id-3 .elementor-page-content:not(.legal-page-content) .elementor-section-content-top .elementor-col-100:hover {
  box-shadow:
    0 1px 3px 0 rgba(0, 0, 0, 0.06),
    0 1px 2px -1px rgba(0, 0, 0, 0.06);
  transform: none;
}

.page-id-3 .elementor-page-content:not(.legal-page-content) .elementor-section-content-top .elementor-element-populated {
  height: auto;
}

.page-id-3 .elementor-page-content:not(.legal-page-content) .elementor-section-content-top .elementor-widget-text-editor {
  max-width: 64rem;
}

/* --- Elementor widget spacing refinement --- */
.elementor-page-content .elementor-widget:not(:last-child) {
  margin-bottom: 1rem;
}

.elementor-page-content .elementor-widget-heading + .elementor-widget-text-editor {
  margin-top: 0.25rem;
}

/* --- Elementor container max-width --- */
.elementor-page-content .elementor-section-boxed > .elementor-container {
  max-width: 1140px;
}

/* --- Forms (Contact Form 7 / Elementor forms) --- */
.elementor-page-content input[type="text"],
.elementor-page-content input[type="email"],
.elementor-page-content input[type="tel"],
.elementor-page-content input[type="url"],
.elementor-page-content input[type="number"],
.elementor-page-content textarea,
.elementor-page-content select {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.9375rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--sdg-border);
  border-radius: 0.625rem;
  background: var(--background);
  color: var(--foreground);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  width: 100%;
}

.elementor-page-content input:focus,
.elementor-page-content textarea:focus,
.elementor-page-content select:focus {
  outline: none;
  border-color: var(--sdg-gold);
  box-shadow: 0 0 0 3px rgba(188, 161, 65, 0.15);
}

.elementor-page-content input[type="submit"],
.elementor-page-content button[type="submit"],
.elementor-page-content .wpcf7-submit,
.elementor-page-content .elementor-button {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.75rem 2rem;
  border: none;
  border-radius: 9999px;
  background: var(--foreground);
  color: var(--background);
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.elementor-page-content input[type="submit"]:hover,
.elementor-page-content button[type="submit"]:hover,
.elementor-page-content .wpcf7-submit:hover,
.elementor-page-content .elementor-button:hover {
  background: oklch(30% 0 0);
  transform: scale(1.03);
}

/* Form labels */
.elementor-page-content .wpcf7-form label,
.elementor-page-content .elementor-field-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--foreground);
  margin-bottom: 0.375rem;
  display: block;
}

/* --- Blockquotes inside Elementor --- */
.elementor-page-content blockquote,
.elementor-page-content .elementor-blockquote {
  margin: 1.5em 0;
  padding: 1.25em 1.5em;
  border-left: 3px solid var(--sdg-gold);
  background: color-mix(in oklab, var(--accent, #f5f5f4) 50%, transparent);
  border-radius: 0 0.75rem 0.75rem 0;
  font-style: italic;
  font-family: "DM Serif Display", Georgia, serif;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--foreground);
}

.elementor-page-content blockquote cite,
.elementor-page-content .elementor-blockquote cite {
  display: block;
  margin-top: 0.75em;
  font-size: 0.8125rem;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--sdg-gold);
}

/* --- Responsive column stacking --- */
@media (max-width: 767px) {
  .elementor-page-content .elementor-section-content-top .elementor-column {
    margin-bottom: 1rem;
  }
}

/* --- Sticky sidebar (e.g. "Inhaltsverzeichnis" on /was-wir-lehren/) ---
   Mirrors the behaviour of the production Astra child theme. The local
   header is fixed (~88px tall) so the sidebar sits just below it. The
   WP admin bar (32px / 46px mobile) is accounted for below. */
.elementor-page-content .sidebar-contents-sticky {
  position: sticky;
  top: 6rem;
  align-self: flex-start;
  height: fit-content;
}

.admin-bar .elementor-page-content .sidebar-contents-sticky {
  top: calc(6rem + 32px);
}

@media (max-width: 782px) {
  .admin-bar .elementor-page-content .sidebar-contents-sticky {
    top: calc(6rem + 46px);
  }
}

/* The default Elementor `.elementor-container` uses `flex: wrap` which can
   prevent `position: sticky` from working when the container collapses its
   row to the height of the tallest child. Disable wrapping on the section
   that hosts the sticky sidebar so the column tracks the full content. */
.elementor-page-content
  .elementor-section:has(> .elementor-container > .sidebar-contents-sticky)
  > .elementor-container {
  flex-wrap: nowrap;
  align-items: flex-start;
}

@media (max-width: 1024px) {
  .elementor-page-content
    .elementor-section:has(> .elementor-container > .sidebar-contents-sticky)
    > .elementor-container {
    flex-wrap: wrap;
  }
}

/* Smooth anchor scrolling when clicking entries in the table of contents,
   with an offset so anchored headings clear the fixed site header. */
html {
  scroll-behavior: smooth;
}

.elementor-page-content .entry-content :is(h2, h3, h4)[id] {
  scroll-margin-top: 6rem;
}

.admin-bar .elementor-page-content .entry-content :is(h2, h3, h4)[id] {
  scroll-margin-top: calc(6rem + 32px);
}

/* --- Table of contents (Inhaltsverzeichnis) presentation --- */
.elementor-page-content .sidebar-contents-sticky .elementor-heading-title {
  font-size: 1.25rem;
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
  position: relative;
  padding-bottom: 0.75rem;
}

.elementor-page-content .sidebar-contents-sticky .elementor-heading-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2rem;
  height: 2px;
  background: var(--sdg-gold);
  border-radius: 1px;
}

.elementor-page-content .sidebar-contents-sticky .elementor-icon-list-items {
  list-style: none;
  padding: 0;
  margin: 0;
}

.elementor-page-content .sidebar-contents-sticky .elementor-icon-list-item {
  margin: 0;
  padding: 0;
}

.elementor-page-content .sidebar-contents-sticky .elementor-icon-list-item a {
  display: block;
  padding: 0.5rem 0;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--sdg-text-muted);
  text-decoration: none;
  border-bottom: 1px solid var(--sdg-border);
  transition: color 0.2s ease, padding-left 0.2s ease;
}

.elementor-page-content
  .sidebar-contents-sticky
  .elementor-icon-list-item:last-child
  a {
  border-bottom: none;
}

.elementor-page-content .sidebar-contents-sticky .elementor-icon-list-item a:hover {
  color: var(--sdg-gold);
  padding-left: 0.375rem;
}

/* ===================================================================
   Kontakt page — Ninja Forms styling for the custom page template.
   Scoped to the template wrapper and legacy page ID.
   =================================================================== */

.sdg-kontakt-page,
.page-id-1076 {
  --sdg-gold: #bca141;
  --sdg-gold-hover: #a8903a;
  --sdg-text-muted: oklch(55.6% 0 0);
  --sdg-border: oklch(92.2% 0 0);
}

.sdg-kontakt-page .nf-form-cont,
.page-id-1076 .nf-form-cont {
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.sdg-kontakt-page .nf-form-wrap,
.sdg-kontakt-page .nf-form-layout,
.sdg-kontakt-page .nf-form-content,
.page-id-1076 .nf-form-wrap,
.page-id-1076 .nf-form-layout,
.page-id-1076 .nf-form-content {
  max-width: none;
  margin: 0;
  padding: 0;
}

.sdg-kontakt-page .nf-form-content::after,
.page-id-1076 .nf-form-content::after {
  content: "";
  display: block;
  clear: both;
}

.sdg-kontakt-page .nf-form-title,
.page-id-1076 .nf-form-title,
.sdg-kontakt-page .nf-form-fields-required,
.page-id-1076 .nf-form-fields-required {
  display: none;
}

.sdg-kontakt-page .nf-form-cont .ninja-forms-req-symbol,
.page-id-1076 .nf-form-cont .ninja-forms-req-symbol {
  color: var(--sdg-gold);
  font-weight: 600;
  margin-left: 0.2em;
}

.sdg-kontakt-page .nf-form-cont .nf-field-container,
.page-id-1076 .nf-form-cont .nf-field-container {
  margin-bottom: 2rem;
}

.sdg-kontakt-page .nf-form-cont .nf-field-container:last-child,
.sdg-kontakt-page .nf-form-cont .submit-container,
.page-id-1076 .nf-form-cont .nf-field-container:last-child,
.page-id-1076 .nf-form-cont .submit-container {
  margin-bottom: 0;
}

.sdg-kontakt-page .nf-form-cont .nf-field-container.one-half,
.page-id-1076 .nf-form-cont .nf-field-container.one-half {
  width: calc(50% - 0.75rem) !important;
  margin-left: 0 !important;
}

.sdg-kontakt-page .nf-form-cont .nf-field-container.one-half.first,
.page-id-1076 .nf-form-cont .nf-field-container.one-half.first {
  margin-right: 1.5rem;
}

.sdg-kontakt-page .nf-form-cont .nf-field-label,
.page-id-1076 .nf-form-cont .nf-field-label {
  margin-bottom: 0.75rem;
}

.sdg-kontakt-page .nf-form-cont .nf-field-label label,
.sdg-kontakt-page .nf-form-cont .nf-field-label .nf-label-span,
.page-id-1076 .nf-form-cont .nf-field-label label,
.page-id-1076 .nf-form-cont .nf-field-label .nf-label-span {
  font-family: var(--font-sans, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--foreground);
}

.sdg-kontakt-page .nf-form-cont input.ninja-forms-field:not([type="submit"]):not([type="button"]),
.sdg-kontakt-page .nf-form-cont textarea.ninja-forms-field,
.sdg-kontakt-page .nf-form-cont .nf-element[type="text"],
.sdg-kontakt-page .nf-form-cont .nf-element[type="email"],
.sdg-kontakt-page .nf-form-cont .nf-element[type="tel"],
.page-id-1076 .nf-form-cont input.ninja-forms-field:not([type="submit"]):not([type="button"]),
.page-id-1076 .nf-form-cont textarea.ninja-forms-field,
.page-id-1076 .nf-form-cont .nf-element[type="text"],
.page-id-1076 .nf-form-cont .nf-element[type="email"],
.page-id-1076 .nf-form-cont .nf-element[type="tel"] {
  width: 100%;
  font-family: var(--font-sans, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--foreground);
  background: #fff;
  border: 1px solid #d8d4ce;
  border-radius: 1rem;
  box-shadow: none;
  padding: 1rem 1.5rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sdg-kontakt-page .nf-form-cont textarea.ninja-forms-field,
.page-id-1076 .nf-form-cont textarea.ninja-forms-field {
  min-height: 11.25rem;
  resize: vertical;
}

.sdg-kontakt-page .nf-form-cont input.ninja-forms-field:focus,
.sdg-kontakt-page .nf-form-cont textarea.ninja-forms-field:focus,
.page-id-1076 .nf-form-cont input.ninja-forms-field:focus,
.page-id-1076 .nf-form-cont textarea.ninja-forms-field:focus {
  outline: none;
  border-color: var(--sdg-gold);
  box-shadow: none;
}

.sdg-kontakt-page .nf-form-cont input.ninja-forms-field::placeholder,
.sdg-kontakt-page .nf-form-cont textarea.ninja-forms-field::placeholder,
.page-id-1076 .nf-form-cont input.ninja-forms-field::placeholder,
.page-id-1076 .nf-form-cont textarea.ninja-forms-field::placeholder {
  color: var(--sdg-text-muted);
  opacity: 0.7;
}

.sdg-kontakt-page .nf-form-cont .field-wrap,
.page-id-1076 .nf-form-cont .field-wrap {
  border-bottom: none !important;
}

.sdg-kontakt-page .nf-form-cont .nf-error.field-wrap .nf-field-element::after,
.page-id-1076 .nf-form-cont .nf-error.field-wrap .nf-field-element::after {
  content: none !important;
  display: none !important;
}

body .sdg-kontakt-page .nf-form-cont .nf-error .ninja-forms-field,
body .sdg-kontakt-page .nf-form-cont .nf-error input.ninja-forms-field,
body .sdg-kontakt-page .nf-form-cont .nf-error textarea.ninja-forms-field,
body.page-id-1076 .nf-form-cont .nf-error .ninja-forms-field,
body.page-id-1076 .nf-form-cont .nf-error input.ninja-forms-field,
body.page-id-1076 .nf-form-cont .nf-error textarea.ninja-forms-field {
  border-color: #d4796c !important;
  background-color: #fdf6f5;
  box-shadow: none;
}

body .sdg-kontakt-page .nf-form-cont .nf-error .ninja-forms-field:focus,
body.page-id-1076 .nf-form-cont .nf-error .ninja-forms-field:focus {
  border-color: #b85a4d !important;
  background-color: #fff;
}

.sdg-kontakt-page .nf-form-cont .nf-error-wrap,
.sdg-kontakt-page .nf-form-cont .nf-error-msg,
.page-id-1076 .nf-form-cont .nf-error-wrap,
.page-id-1076 .nf-form-cont .nf-error-msg {
  font-family: var(--font-sans, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #b04a3e;
  margin-top: 0.5rem;
  margin-right: 0;
}

body .sdg-kontakt-page .nf-form-cont .nf-error-msg,
body.page-id-1076 .nf-form-cont .nf-error-msg {
  color: #b04a3e;
}

.sdg-kontakt-page .nf-form-cont .nf-form-errors,
.page-id-1076 .nf-form-cont .nf-form-errors {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden;
}

.sdg-kontakt-page .nf-form-cont .nf-form-errors.nf-form-errors--active,
.page-id-1076 .nf-form-cont .nf-form-errors.nf-form-errors--active {
  display: flex !important;
  align-items: center;
  height: auto !important;
  overflow: visible;
  font-family: var(--font-sans, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 0.875rem;
  color: #b04a3e;
  background: #fdf6f5;
  border: 1px solid #e8c9c3 !important;
  border-radius: 1rem;
  padding: 0.75rem 1rem !important;
  margin-bottom: 1.5rem !important;
}

.sdg-kontakt-page .nf-form-cont .nf-form-errors .nf-error-msg,
.page-id-1076 .nf-form-cont .nf-form-errors .nf-error-msg {
  margin-top: 0;
}

.sdg-kontakt-page .nf-form-cont .submit-container,
.page-id-1076 .nf-form-cont .submit-container {
  margin-top: 0.5rem;
  text-align: left;
}

body .sdg-kontakt-page .nf-form-cont input.ninja-forms-field[type="submit"],
body .sdg-kontakt-page .nf-form-cont .nf-element[type="submit"],
body.page-id-1076 .nf-form-cont input.ninja-forms-field[type="submit"],
body.page-id-1076 .nf-form-cont .nf-element[type="submit"] {
  display: inline-flex;
  width: auto;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: #fff !important;
  background: var(--sdg-gold) !important;
  border: 0 !important;
  border-radius: 9999px;
  cursor: pointer;
  box-shadow: none;
  padding: 0.75rem 2.5rem;
  transition: background-color 0.2s ease, transform 0.15s ease;
}

body .sdg-kontakt-page .nf-form-cont input.ninja-forms-field[type="submit"]:hover,
body .sdg-kontakt-page .nf-form-cont input.ninja-forms-field[type="submit"]:focus,
body .sdg-kontakt-page .nf-form-cont .nf-element[type="submit"]:hover,
body .sdg-kontakt-page .nf-form-cont .nf-element[type="submit"]:focus,
body.page-id-1076 .nf-form-cont input.ninja-forms-field[type="submit"]:hover,
body.page-id-1076 .nf-form-cont input.ninja-forms-field[type="submit"]:focus,
body.page-id-1076 .nf-form-cont .nf-element[type="submit"]:hover,
body.page-id-1076 .nf-form-cont .nf-element[type="submit"]:focus {
  color: #fff !important;
  background: var(--sdg-gold-hover) !important;
  outline: none;
  transform: translateY(-1px);
}

.sdg-kontakt-page .nf-form-cont input.ninja-forms-field[type="submit"][disabled],
.sdg-kontakt-page .nf-form-cont .nf-element[type="submit"][disabled],
.page-id-1076 .nf-form-cont input.ninja-forms-field[type="submit"][disabled],
.page-id-1076 .nf-form-cont .nf-element[type="submit"][disabled] {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}

.sdg-kontakt-page .nf-form-cont .nf-response-msg,
.page-id-1076 .nf-form-cont .nf-response-msg {
  max-width: 32rem;
  padding-top: 3rem;
  color: var(--sdg-text-muted);
  font-family: var(--font-sans, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  line-height: 1.7;
}

.sdg-kontakt-page .nf-form-cont .nf-response-msg::before,
.page-id-1076 .nf-form-cont .nf-response-msg::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 1px;
  margin-bottom: 2rem;
  background: var(--sdg-gold);
}

.sdg-kontakt-page .nf-form-cont .nf-response-msg p,
.page-id-1076 .nf-form-cont .nf-response-msg p {
  margin: 0;
}

.sdg-kontakt-page .nf-form-cont .nf-loading-spinner,
.page-id-1076 .nf-form-cont .nf-loading-spinner {
  margin: 1rem 0;
}

@media (max-width: 640px) {
  .sdg-kontakt-page .nf-form-cont .nf-field-container.one-half,
  .sdg-kontakt-page .nf-form-cont .nf-field-container.one-half.first,
  .sdg-kontakt-page .nf-form-cont .nf-field-container.one-half.second,
  .page-id-1076 .nf-form-cont .nf-field-container.one-half,
  .page-id-1076 .nf-form-cont .nf-field-container.one-half.first,
  .page-id-1076 .nf-form-cont .nf-field-container.one-half.second {
    float: none;
    clear: both;
    width: 100% !important;
    margin-right: 0;
    margin-left: 0 !important;
  }
}

/* ===================================================================
   Sermon Manager — Archive (Predigten) and Single Sermon pages.

   Shared design tokens. Scoped under .sdg-sermon-context so the same
   selectors work for both the archive (rendered via the [sermons]
   shortcode inside the /predigten/ Elementor page) and the single
   sermon template (rendered by Sermon Manager directly).
   =================================================================== */

.single-wpfc_sermon,
.post-type-archive-wpfc_sermon,
.page-id-2027 {
  --sdg-gold: #bca141;
  --sdg-gold-soft: rgba(188, 161, 65, 0.12);
  --sdg-gold-strong: rgba(188, 161, 65, 0.22);
  --sdg-card-bg: #ffffff;
  --sdg-card-border: color-mix(in oklab, var(--border) 50%, transparent);
  --sdg-card-shadow: 0 1px 2px 0 rgba(20, 18, 14, 0.04);
  --sdg-card-shadow-hover: 0 8px 24px -8px rgba(20, 18, 14, 0.12);
  background: linear-gradient(to bottom right, #f8f7f5, #f0eeea);
}

/* --- Predigten page (archive via shortcode) ------------------------- */
.page-id-2027 .elementor-page-content {
  background: transparent;
}

/* The first Elementor section on /predigten/ is an empty placeholder.
   Use it as the fixed-header offset (no bottom padding) so the title
   block below sits at a comfortable distance from the nav. */
.page-id-2027 .elementor-page-content .elementor-top-section:first-child {
  padding-top: 6rem;
  padding-bottom: 0;
}

@media (min-width: 768px) {
  .page-id-2027 .elementor-page-content .elementor-top-section:first-child {
    padding-top: 7rem;
  }
}

.admin-bar .page-id-2027 .elementor-page-content .elementor-top-section:first-child {
  padding-top: calc(6rem + 32px);
}

@media (min-width: 768px) {
  .admin-bar .page-id-2027 .elementor-page-content .elementor-top-section:first-child {
    padding-top: calc(7rem + 32px);
  }
}

.page-id-2027 .elementor-page-content .elementor-top-section:nth-child(2) {
  padding-top: 0;
  padding-bottom: 2rem;
}

@media (min-width: 768px) {
  .page-id-2027 .elementor-page-content .elementor-top-section:nth-child(2) {
    padding-bottom: 2.5rem;
  }
}

/* Page H1 ("Predigten") rendered as an Elementor heading */
.page-id-2027 .elementor-page-content h1.elementor-heading-title {
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  font-size: 2.75rem;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--foreground);
  text-align: center;
  margin: 0 auto 1.25rem;
  padding-bottom: 1rem;
  position: relative;
}

@media (min-width: 768px) {
  .page-id-2027 .elementor-page-content h1.elementor-heading-title {
    font-size: 3.5rem;
  }
}

.page-id-2027 .elementor-page-content h1.elementor-heading-title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 3rem;
  height: 2px;
  background: var(--sdg-gold);
  border-radius: 1px;
}

/* Intro text block on the Predigten page */
.page-id-2027 .elementor-page-content .elementor-widget-text-editor {
  max-width: 56rem;
  margin: 0 auto;
}

.page-id-2027 .elementor-page-content .elementor-widget-text-editor > .elementor-widget-container {
  text-align: center;
}

.page-id-2027 .elementor-page-content .elementor-widget-text-editor p {
  margin-bottom: 1.25em;
  text-wrap: pretty;
}

/* Bible quote (italic paragraph at the top of the intro) */
.page-id-2027 .elementor-page-content .elementor-widget-text-editor p:has(> i:only-child) {
  font-family: "DM Serif Display", Georgia, serif;
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--foreground);
  margin-bottom: 0.75rem;
}

@media (min-width: 768px) {
  .page-id-2027 .elementor-page-content .elementor-widget-text-editor p:has(> i:only-child) {
    font-size: 1.25rem;
  }
}

.page-id-2027 .elementor-page-content .elementor-widget-text-editor p:has(> i:only-child) i {
  font-style: italic;
}

/* Right-aligned scripture citation */
.page-id-2027 .elementor-page-content .elementor-widget-text-editor p[style*="text-align"][style*="right"] {
  text-align: right !important;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--sdg-gold);
  margin-bottom: 2.5rem;
}

/* Empty paragraphs left behind by pasted/cleaned content */
.page-id-2027 .elementor-page-content .elementor-widget-text-editor p:empty,
.page-id-2027 .elementor-page-content .elementor-widget-text-editor p:has(br:only-child) {
  display: none;
}

/* --- Sermon list (shortcode + archive template) --------------------- */

#wpfc-sermons-shortcode,
#primary.content-area .wpfc-sermon-container {
  background: transparent;
}

/* Make the shortcode escape its surrounding `<p>` wrapper visually. */
.page-id-2027 .elementor-widget-text-editor > .elementor-widget-container > p:has(#wpfc-sermons-shortcode) {
  margin: 2rem 0 0;
  padding: 0;
}

#wpfc-sermons-shortcode,
#wpfc-sermons-container {
  margin: 0 auto;
  padding: 0;
}

#wpfc-sermons-container {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 56rem;
  text-align: left;
}

@media (min-width: 768px) {
  #wpfc-sermons-container {
    gap: 1.5rem;
  }
}

/* Archive template uses <article class="wpfc_sermon"> wrappers. */
.wpfc-sermon-container > article.wpfc_sermon,
#wpfc-sermons-container > .wpfc-sermon {
  background: var(--sdg-card-bg);
  border: 0;
  border-radius: 1rem;
  box-shadow: var(--sdg-card-shadow);
  overflow: hidden;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.wpfc-sermon-container > article.wpfc_sermon:hover,
#wpfc-sermons-container > .wpfc-sermon:hover {
  box-shadow: var(--sdg-card-shadow-hover);
  transform: translateY(-2px);
}

.post-type-archive-wpfc_sermon .wpfc-sermon-container,
.tax-wpfc_sermon_series .wpfc-sermon-container,
.tax-wpfc_preacher .wpfc-sermon-container,
.tax-wpfc_sermon_topics .wpfc-sermon-container,
.tax-wpfc_bible_book .wpfc-sermon-container {
  max-width: 56rem;
  margin: 0 auto;
  padding: 6rem 1rem 4rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .post-type-archive-wpfc_sermon .wpfc-sermon-container,
  .tax-wpfc_sermon_series .wpfc-sermon-container,
  .tax-wpfc_preacher .wpfc-sermon-container,
  .tax-wpfc_sermon_topics .wpfc-sermon-container,
  .tax-wpfc_bible_book .wpfc-sermon-container {
    padding: 8rem 2rem 5rem;
    gap: 1.5rem;
  }
}

.wpfc-sermon-inner.entry-wrap {
  display: block;
  padding: 0;
}

/* Sermon Manager plugin default — remove inner card border (outer card is styled above). */
.wpfc-sermon > .wpfc-sermon-inner,
#wpfc-sermons-container > .wpfc-sermon > .wpfc-sermon-inner,
.wpfc-sermon-container > article.wpfc_sermon > .wpfc-sermon-inner {
  background: transparent;
  border: 0;
}

/* Optional sermon thumbnail (when configured in plugin options) */
.wpfc-sermon-image {
  margin: 0;
  padding: 0;
}

.wpfc-sermon-image a,
.wpfc-sermon-image-img {
  display: block;
}

.wpfc-sermon-image-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.4s ease;
}

#wpfc-sermons-container > .wpfc-sermon:hover .wpfc-sermon-image-img,
.wpfc-sermon-container > article.wpfc_sermon:hover .wpfc-sermon-image-img {
  transform: scale(1.02);
}

.wpfc-sermon-main {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 768px) {
  .wpfc-sermon-main {
    padding: 1.75rem 2rem;
  }
}

.wpfc-sermon-header {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  border-bottom: 0;
  padding: 0;
  margin: 0;
}

.wpfc-sermon-header-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.625rem;
}

/* Reset entry-content defaults that leak into sermon cards via .entry-content
   on the post wrapper. */
.entry-content .wpfc-sermon-title,
.entry-content .wpfc-sermon-meta-item,
.wpfc-sermon-container .wpfc-sermon-title,
.wpfc-sermon-container .wpfc-sermon-meta-item {
  margin: 0;
  padding: 0;
}

/* Series badge — pill above the title */
.wpfc-sermon-meta-item.wpfc-sermon-meta-series {
  order: -1;
}

.wpfc-sermon .wpfc-sermon-meta-item.wpfc-sermon-meta-series a,
.elementor-page-content .wpfc-sermon-meta-item.wpfc-sermon-meta-series a {
  display: inline-flex;
  align-items: center;
  padding: 0.3125rem 0.75rem;
  background: var(--sdg-gold-soft);
  color: #6f5e26;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: 9999px;
  text-decoration: none;
  border-bottom: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.wpfc-sermon .wpfc-sermon-meta-item.wpfc-sermon-meta-series a:hover,
.wpfc-sermon .wpfc-sermon-meta-item.wpfc-sermon-meta-series a:focus-visible,
.elementor-page-content .wpfc-sermon-meta-item.wpfc-sermon-meta-series a:hover,
.elementor-page-content .wpfc-sermon-meta-item.wpfc-sermon-meta-series a:focus-visible {
  background: var(--sdg-gold-strong);
  color: #564618;
  outline: none;
}

/* Sermon title */
.wpfc-sermon-title,
.entry-content .wpfc-sermon-title,
.wpfc-sermon-container .wpfc-sermon-title {
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  font-size: 1.375rem;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0;
  padding: 0;
  color: var(--foreground);
  text-wrap: pretty;
}

@media (min-width: 768px) {
  .wpfc-sermon-title,
  .entry-content .wpfc-sermon-title,
  .wpfc-sermon-container .wpfc-sermon-title {
    font-size: 1.625rem;
  }
}

/* High specificity to override Elementor's text-editor link rule
   (`.elementor-page-content .elementor-widget-text-editor a`) that
   otherwise underlines every link inside the embedded shortcode. */
.wpfc-sermon .wpfc-sermon-title .wpfc-sermon-title-text,
.wpfc-sermon-container .wpfc-sermon-title .wpfc-sermon-title-text,
.elementor-page-content .wpfc-sermon-title .wpfc-sermon-title-text,
.elementor-page-content .wpfc-sermon-title a {
  color: inherit;
  text-decoration: none;
  border-bottom: 0;
  transition: color 0.2s ease;
}

.wpfc-sermon .wpfc-sermon-title .wpfc-sermon-title-text:hover,
.wpfc-sermon .wpfc-sermon-title .wpfc-sermon-title-text:focus-visible,
.wpfc-sermon-container .wpfc-sermon-title .wpfc-sermon-title-text:hover,
.wpfc-sermon-container .wpfc-sermon-title .wpfc-sermon-title-text:focus-visible,
.elementor-page-content .wpfc-sermon-title .wpfc-sermon-title-text:hover,
.elementor-page-content .wpfc-sermon-title .wpfc-sermon-title-text:focus-visible,
.elementor-page-content .wpfc-sermon-title a:hover,
.elementor-page-content .wpfc-sermon-title a:focus-visible {
  color: var(--sdg-gold);
  outline: none;
}

/* Date — small uppercase */
.wpfc-sermon-meta-item.wpfc-sermon-meta-date {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--muted-foreground);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  margin-top: 0.125rem;
}

/* Footer (preacher + passage + service).
   The two scoped selectors below win over `.entry-content > *` /
   `.entry-content p` defaults that otherwise leak a top margin onto
   the footer div when the shortcode is embedded inside an Elementor
   text editor on the /predigten/ page. Keep padding-top + border-top
   for the visual divider above the meta row. */
.wpfc-sermon-footer,
.entry-content .wpfc-sermon-footer,
.wpfc-sermon-container .wpfc-sermon-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.75rem;
  margin: 0;
  padding-top: 1.25rem;
  border-top: 1px solid color-mix(in oklab, var(--border) 50%, transparent);
}

.wpfc-sermon-footer .wpfc-sermon-meta-item {
  display: flex;
  flex-direction: column;
  gap: 0.1875rem;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.875rem;
  line-height: 1.4;
  background: transparent;
  border: 0;
  padding: 0;
}

.wpfc-sermon-footer .wpfc-sermon-meta-prefix {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--sdg-gold);
}

.wpfc-sermon-footer .wpfc-sermon-meta-text,
.wpfc-sermon-footer .wpfc-sermon-meta-text a,
.elementor-page-content .wpfc-sermon-footer .wpfc-sermon-meta-text,
.elementor-page-content .wpfc-sermon-footer .wpfc-sermon-meta-text a {
  color: var(--foreground);
  text-decoration: none;
  border-bottom: 0;
  font-weight: 500;
  transition: color 0.2s ease;
}

.wpfc-sermon-footer .wpfc-sermon-meta-text a:hover,
.wpfc-sermon-footer .wpfc-sermon-meta-text a:focus-visible,
.elementor-page-content .wpfc-sermon-footer .wpfc-sermon-meta-text a:hover,
.elementor-page-content .wpfc-sermon-footer .wpfc-sermon-meta-text a:focus-visible {
  color: var(--sdg-gold);
  outline: none;
}

/* --- Pagination ----------------------------------------------------- */
.sm-pagination,
.wpfc-sermon-container .sm-pagination,
#wpfc-sermons-shortcode-navigation {
  max-width: 56rem;
  margin: 2.5rem auto 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  text-align: center;
}

.sm-pagination .pagination,
.sm-pagination .nav-links,
.sm-pagination > .page-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 0;
  margin: 0;
}

.sm-pagination .page-numbers,
#wpfc-sermons-shortcode-navigation .page-numbers,
.elementor-page-content #wpfc-sermons-shortcode-navigation .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.875rem;
  border-radius: 9999px;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--foreground);
  background: var(--background);
  border: 1px solid var(--sdg-card-border);
  text-decoration: none;
  border-bottom: 0;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.sm-pagination a.page-numbers:hover,
.sm-pagination a.page-numbers:focus-visible,
#wpfc-sermons-shortcode-navigation a.page-numbers:hover,
#wpfc-sermons-shortcode-navigation a.page-numbers:focus-visible,
.elementor-page-content #wpfc-sermons-shortcode-navigation a.page-numbers:hover,
.elementor-page-content #wpfc-sermons-shortcode-navigation a.page-numbers:focus-visible {
  background: var(--accent);
  color: var(--foreground);
  border-color: color-mix(in oklab, var(--sdg-gold) 30%, var(--sdg-card-border));
  outline: none;
}

.sm-pagination .page-numbers.current,
#wpfc-sermons-shortcode-navigation .page-numbers.current {
  background: var(--sdg-gold);
  color: #fff;
  border-color: var(--sdg-gold);
}

.sm-pagination .page-numbers.dots,
#wpfc-sermons-shortcode-navigation .page-numbers.dots {
  background: transparent;
  border: none;
  color: var(--muted-foreground);
}

/* ===================================================================
   Single sermon page.
   =================================================================== */

/* Container offset for fixed header (already used by plugin) */
.single-wpfc_sermon #primary,
.single-wpfc_sermon #main.wpfc-sermon-container,
#primary .site-main.wpfc-sermon-container,
.wrap #primary .site-main {
  background: transparent;
}

.single-wpfc_sermon #main.wpfc-sermon-container {
  padding: 6rem 1rem 4rem;
  max-width: 56rem;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .single-wpfc_sermon #main.wpfc-sermon-container {
    padding: 8rem 2rem 5rem;
  }
}

article.wpfc-sermon-single {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}

.wpfc-sermon-single-inner {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.wpfc-sermon-single-main {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--sdg-card-bg);
  border-radius: 1rem;
  box-shadow: var(--sdg-card-shadow);
  overflow: hidden;
}

/* Reset margins on direct children; section padding handles rhythm. */
.wpfc-sermon-single-main > *,
.wpfc-sermon-single-main > * > .wpfc-sermon-single-audio,
.wpfc-sermon-single-main > * > .wpfc-sermon-single-video {
  margin-top: 0;
  margin-bottom: 0;
}

/* --- Single header (no background image) --- */
.wpfc-sermon-single-header:not(.has-bg) {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 2rem 1.5rem 1.75rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  border-bottom: 1px solid color-mix(in oklab, var(--border) 55%, transparent);
}

@media (min-width: 768px) {
  .wpfc-sermon-single-header:not(.has-bg) {
    padding: 2.5rem 2.5rem 2rem;
  }
}

.wpfc-sermon-single-header .wpfc-sermon-single-meta-item.wpfc-sermon-single-meta-date {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--sdg-gold);
  margin: 0;
}

h1.wpfc-sermon-single-title {
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--foreground);
  margin: 0;
  text-wrap: pretty;
  max-width: 38rem;
}

@media (min-width: 768px) {
  h1.wpfc-sermon-single-title {
    font-size: 2.75rem;
  }
}

.wpfc-sermon-single-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem 2rem;
  margin-top: 0.25rem;
}

.wpfc-sermon-single-meta-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}

.wpfc-sermon-single-meta .wpfc-sermon-single-meta-prefix {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--sdg-gold);
  white-space: nowrap;
}

.wpfc-sermon-single-meta .wpfc-sermon-single-meta-text,
.wpfc-sermon-single-meta .wpfc-sermon-single-meta-text a {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--foreground);
  text-decoration: none;
  border-bottom: 0;
  transition: color 0.2s ease;
}

.wpfc-sermon-single-meta .wpfc-sermon-single-meta-text a:hover,
.wpfc-sermon-single-meta .wpfc-sermon-single-meta-text a:focus-visible {
  color: var(--sdg-gold);
  outline: none;
}

/* Single header WITH background image — hero band at top of the page panel. */
.wpfc-sermon-single-header.has-bg {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  isolation: isolate;
  width: 100%;
  margin: 0;
  padding: 3rem 1.5rem 3.25rem;
  border-radius: 0;
  border: 0;
  box-shadow: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

@media (min-width: 768px) {
  .wpfc-sermon-single-header.has-bg {
    padding: 4rem 2.5rem 4.25rem;
  }
}

.wpfc-sermon-single-header.has-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(20, 18, 14, 0.55) 0%,
    rgba(20, 18, 14, 0.7) 100%
  );
  z-index: 0;
  border-radius: inherit;
}

.wpfc-sermon-single-header.has-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  backdrop-filter: blur(2px);
  z-index: 0;
  border-radius: inherit;
}

.wpfc-sermon-single-header.has-bg > * {
  position: relative;
  z-index: 1;
}

.wpfc-sermon-single-header.has-bg,
.wpfc-sermon-single-header.has-bg h1,
.wpfc-sermon-single-header.has-bg .wpfc-sermon-single-meta-text,
.wpfc-sermon-single-header.has-bg .wpfc-sermon-single-meta-text a {
  color: #fff;
}

.wpfc-sermon-single-header.has-bg .wpfc-sermon-single-meta-prefix,
.wpfc-sermon-single-header.has-bg .wpfc-sermon-single-meta-date {
  color: #e6c96f;
}

.wpfc-sermon-single-header.has-bg .wpfc-sermon-single-meta-text a:hover,
.wpfc-sermon-single-header.has-bg .wpfc-sermon-single-meta-text a:focus-visible {
  color: #e6c96f;
}

/* --- Media block (video + audio player) ----------------------------- */
.wpfc-sermon-single-media {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 1.5rem 1.5rem 0;
  border-bottom: 1px solid color-mix(in oklab, var(--border) 55%, transparent);
}

@media (min-width: 768px) {
  .wpfc-sermon-single-media {
    padding: 1.75rem 2.5rem 0;
  }
}

.wpfc-sermon-single-media:empty {
  display: none;
  padding: 0;
  border-bottom: 0;
}

.wpfc-sermon-single-video {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0 0 1.25rem;
  overflow: hidden;
}

.wpfc-sermon-single-video iframe,
.wpfc-sermon-single-video video {
  display: block;
  width: 100%;
  border-radius: 0.625rem;
  aspect-ratio: 16 / 9;
  border: 0;
}

.wpfc-sermon-single-audio {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0 0 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

@media (min-width: 768px) {
  .wpfc-sermon-single-audio {
    gap: 1rem;
  }
}

.wpfc-sermon-single-audio .plyr {
  flex: 1 1 auto;
  min-width: 0;
}

.wpfc-sermon-single-audio .plyr--audio {
  background: transparent;
  --plyr-color-main: var(--sdg-gold);
  --plyr-audio-controls-background: transparent;
  --plyr-audio-control-color: var(--foreground);
  --plyr-audio-control-color-hover: #fff;
  --plyr-audio-control-background-hover: var(--sdg-gold);
}

.wpfc-sermon-single-audio-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background: var(--accent);
  color: var(--foreground);
  flex-shrink: 0;
  text-decoration: none;
  border-bottom: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.wpfc-sermon-single-audio-download:hover,
.wpfc-sermon-single-audio-download:focus-visible {
  background: var(--sdg-gold);
  color: #fff;
  outline: none;
}

.wpfc-sermon-single-audio-download svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

/* --- Body content --------------------------------------------------- */
.wpfc-sermon-single-description {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 2rem 1.5rem;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--muted-foreground);
}

@media (min-width: 768px) {
  .wpfc-sermon-single-description {
    padding: 2.5rem 2.5rem;
    font-size: 1.0625rem;
  }
}

.wpfc-sermon-single-description > :first-child {
  margin-top: 0;
}

.wpfc-sermon-single-description > :last-child {
  margin-bottom: 0;
}

.wpfc-sermon-single-description h1,
.wpfc-sermon-single-description h2,
.wpfc-sermon-single-description h3,
.wpfc-sermon-single-description h4,
.wpfc-sermon-single-description h5,
.wpfc-sermon-single-description h6 {
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  color: var(--foreground);
  line-height: 1.3;
  margin: 1.8em 0 0.6em;
  letter-spacing: -0.01em;
}

.wpfc-sermon-single-description h1 { font-size: 1.875rem; }
.wpfc-sermon-single-description h2 { font-size: 1.5rem; }
.wpfc-sermon-single-description h3 { font-size: 1.25rem; }
.wpfc-sermon-single-description h4 { font-size: 1.125rem; }

.wpfc-sermon-single-description p {
  margin: 0 0 1.25em;
  text-wrap: pretty;
}

.wpfc-sermon-single-description a {
  color: var(--foreground);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  transition: color 0.2s ease;
}

.wpfc-sermon-single-description a:hover,
.wpfc-sermon-single-description a:focus-visible {
  color: var(--sdg-gold);
}

.wpfc-sermon-single-description strong,
.wpfc-sermon-single-description b {
  color: var(--foreground);
  font-weight: 600;
}

.wpfc-sermon-single-description blockquote {
  margin: 1.75em 0;
  padding: 1.25em 1.5em;
  border-left: 3px solid var(--sdg-gold);
  background: color-mix(in oklab, var(--accent) 50%, transparent);
  border-radius: 0 0.75rem 0.75rem 0;
  font-family: "DM Serif Display", Georgia, serif;
  font-style: italic;
  color: var(--foreground);
}

.wpfc-sermon-single-description blockquote p:last-child {
  margin-bottom: 0;
}

.wpfc-sermon-single-description ul,
.wpfc-sermon-single-description ol {
  margin: 0 0 1.25em;
  padding-left: 1.75em;
}

.wpfc-sermon-single-description li {
  margin-bottom: 0.4em;
}

.wpfc-sermon-single-description li::marker {
  color: var(--sdg-gold);
}

.wpfc-sermon-single-description img {
  max-width: 100%;
  height: auto;
  border-radius: 0.75rem;
  margin: 1.5em 0;
}

/* "Nach oben scrollen" link */
.wpfc-sermon-single-back-top {
  margin: 0;
  padding: 0 1.5rem 1.25rem;
  text-align: right;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.2em;
}

@media (min-width: 768px) {
  .wpfc-sermon-single-back-top {
    padding: 0 2.5rem 1.5rem;
  }
}

.wpfc-sermon-single-back-top a {
  color: var(--muted-foreground);
  text-decoration: none;
  border-bottom: 0;
  transition: color 0.2s ease;
}

.wpfc-sermon-single-back-top a:hover,
.wpfc-sermon-single-back-top a:focus-visible {
  color: var(--sdg-gold);
  outline: none;
}

/* --- Attachments ---------------------------------------------------- */
.wpfc-sermon-single-attachments {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0 1.5rem 1.5rem;
  margin: 0;
  border-top: 1px solid color-mix(in oklab, var(--border) 55%, transparent);
}

@media (min-width: 768px) {
  .wpfc-sermon-single-attachments {
    padding: 0 2.5rem 1.75rem;
  }
}

.wpfc-sermon-single-attachments #wpfc-attachments {
  margin: 0;
}

.wpfc-sermon-single-attachments #wpfc-attachments p {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.4;
}

.wpfc-sermon-single-attachments #wpfc-attachments strong {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--sdg-gold);
  margin-right: 0.25rem;
}

.wpfc-sermon-single-attachments .sermon-attachments {
  display: inline-flex;
  align-items: center;
  gap: 0.4375rem;
  padding: 0.5rem 0.875rem;
  background: var(--accent);
  border-radius: 9999px;
  font-size: 0.8125rem;
  color: var(--foreground);
  text-decoration: none;
  border-bottom: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.wpfc-sermon-single-attachments .sermon-attachments:hover,
.wpfc-sermon-single-attachments .sermon-attachments:focus-visible {
  background: var(--sdg-gold);
  color: #fff;
  outline: none;
}

.wpfc-sermon-single-attachments .sermon-attachments .dashicons {
  font-size: 1rem;
  width: 1rem;
  height: 1rem;
  line-height: 1;
}

/* --- Topics --------------------------------------------------------- */
.wpfc-sermon-single-topics {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.625rem;
  margin: 0;
  padding: 0 1.5rem 1.5rem;
  font-size: 0.875rem;
}

@media (min-width: 768px) {
  .wpfc-sermon-single-topics {
    padding: 0 2.5rem 1.75rem;
  }
}

.wpfc-sermon-single-topics-prefix {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--sdg-gold);
  margin-right: 0.25rem;
}

.wpfc-sermon-single-topics-text a {
  display: inline-flex;
  padding: 0.3125rem 0.75rem;
  background: var(--accent);
  border-radius: 9999px;
  color: var(--foreground);
  font-size: 0.8125rem;
  text-decoration: none;
  border-bottom: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.wpfc-sermon-single-topics-text a:hover,
.wpfc-sermon-single-topics-text a:focus-visible {
  background: var(--sdg-gold);
  color: #fff;
  outline: none;
}

/* --- Sermon-to-sermon navigation ------------------------------------ */
.wpfc-sermon-single-navigation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 2rem;
  margin: 0;
  padding: 1.5rem 1.5rem 2rem;
  border-top: 1px solid color-mix(in oklab, var(--border) 55%, transparent);
}

@media (min-width: 768px) {
  .wpfc-sermon-single-navigation {
    padding: 1.75rem 2.5rem 2.25rem;
    gap: 1.25rem 2.5rem;
  }
}

.wpfc-sermon-single-navigation > a,
.wpfc-sermon-single-navigation > div {
  display: flex;
  align-items: center;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--foreground);
  text-decoration: none;
  transition: color 0.2s ease;
}

.wpfc-sermon-single-navigation > div {
  visibility: hidden;
}

.wpfc-sermon-single-navigation a.previous-sermon {
  justify-content: flex-start;
}

.wpfc-sermon-single-navigation a.next-sermon {
  justify-content: flex-end;
  text-align: right;
}

.wpfc-sermon-single-navigation a:hover,
.wpfc-sermon-single-navigation a:focus-visible {
  color: var(--sdg-gold);
  outline: none;
}

@media (max-width: 540px) {
  .wpfc-sermon-single-navigation a {
    font-size: 0.8125rem;
  }
}
