/*
 Theme Name:   CFC Kids & Church Theme
 Theme URI:    https://cfcitasca.org
 Description:  Custom child theme for Christian Fellowship Church of Itasca, built on Astra.
 Author:       Isa
 Author URI:   https://cfcitasca.org
 Template:     astra
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  cfc-child
*/

/* ==========================================================================
   CFC Custom Styles
   ========================================================================== */

/* -- Theme Palette & Astra Variable Overrides -- */
:root {
  --cfc-primary: #232616;
  --cfc-accent: #c8a456;
  --cfc-secondary: #8a9a6b;
  --cfc-light-bg: #f5f0e8;
  --cfc-dark-text: #2d2d2d;
  --cfc-light-text: #ede8df;
  --cfc-cta: #b87333;
  --cfc-cta-hover: #a0622b;
  --cfc-white: #ffffff;

  /* Compatibility aliases */
  --cfc-primary-dark: var(--cfc-primary);
  --cfc-accent-gold: var(--cfc-accent);
  --cfc-secondary-sage: var(--cfc-secondary);
  --cfc-light-background: var(--cfc-light-bg);
  --cfc-body-text-light: var(--cfc-dark-text);
  --cfc-body-text-on-dark: var(--cfc-light-text);
  --cfc-cta-copper: var(--cfc-cta);

  /* Override Astra global palette variables where available */
  --ast-global-color-0: var(--cfc-primary);
  --ast-global-color-1: var(--cfc-accent);
  --ast-global-color-2: var(--cfc-secondary);
  --ast-global-color-3: var(--cfc-light-bg);
  --ast-global-color-4: var(--cfc-dark-text);
  --ast-global-color-5: var(--cfc-light-text);
  --ast-global-color-6: var(--cfc-cta);
  --ast-global-color-7: var(--cfc-light-bg);
  --ast-global-color-8: var(--cfc-primary);

  /* Additional Astra color hooks */
  --ast-color-primary: var(--cfc-primary);
  --ast-color-link: var(--cfc-cta);
  --ast-color-link-hover: var(--cfc-cta-hover);
  --ast-color-text: var(--cfc-dark-text);
  --ast-color-text-on-dark: var(--cfc-light-text);
}

/* -- Global Base -- */
html,
body,
body.ast-theme-transparent-header,
body.ast-separate-container {
  background-color: var(--cfc-light-bg) !important;
  color: var(--cfc-dark-text);
  font-size: 16px;
  line-height: 1.65;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Keep text highlight legible across light/dark sections */
::selection {
  background: var(--cfc-accent);
  color: var(--cfc-primary);
  text-shadow: none;
}

::-moz-selection {
  background: var(--cfc-accent);
  color: var(--cfc-primary);
  text-shadow: none;
}

@media (max-width: 768px) {
  html,
  body {
    font-size: 15px;
    line-height: 1.6;
  }
}

.cfc-container {
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
}

/* Astra starter presets force flex layouts and oversized headings.
   Reassert normal single-column flow for page-builder templates. */
.site-content .ast-container,
.ast-page-builder-template .site-content .ast-container,
.ast-page-builder-template.ast-no-sidebar .site-content .ast-container {
  display: block !important;
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#primary,
.ast-page-builder-template #primary,
.ast-page-builder-template.ast-no-sidebar #primary {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

#page,
.site,
#content,
.site-content {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Elementor canvas pages that we intentionally render with site chrome. */
html body.cfc-force-site-chrome.page-template-elementor_canvas #masthead.site-header,
html body.cfc-force-site-chrome.page-template-elementor_canvas #masthead,
html body.cfc-force-site-chrome.page-template-elementor_canvas .site-header,
html body.cfc-force-site-chrome.page-template-elementor_canvas #colophon.site-footer,
html body.cfc-force-site-chrome.page-template-elementor_canvas #colophon,
html body.cfc-force-site-chrome.page-template-elementor_canvas .site-footer,
html body.cfc-force-site-chrome.page-template-elementor_canvas .cfc-site-footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* -- Typography -- */
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h1,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h2,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h3,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h4,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h5,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h6,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h1,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h2,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h3,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h4,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h5,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h6,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .ast-single-post .entry-title,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .ast-archive-title,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .page-title {
  color: var(--cfc-primary) !important;
  font-weight: 700;
  line-height: 1.2;
  font-family: "Montserrat", sans-serif !important;
}

:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h1,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h1 {
  font-size: clamp(2.2rem, 4.8vw, 3.6rem) !important;
}

:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h2,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h2 {
  font-size: clamp(1.7rem, 3.4vw, 2.6rem) !important;
}

:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h3,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.9rem) !important;
}

:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h4,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h4 {
  font-size: clamp(1.2rem, 2vw, 1.5rem) !important;
}

:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h5,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h5 {
  font-size: 1.05rem !important;
}

:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) h6,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content h6 {
  font-size: 0.95rem !important;
}

:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) p,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) li,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content p,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content li {
  color: var(--cfc-dark-text);
  font-size: 1rem;
  line-height: 1.65;
  margin-bottom: 1rem;
}

/* -- Links -- */
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) a,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content a,
.ast-footer-copyright a,
.ast-breadcrumbs a,
.ast-header-navigation a,
.main-header-menu .menu-link {
  color: var(--cfc-cta);
  text-decoration: none;
}

:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) a:hover,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) a:focus,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content a:hover,
:where(body:not(.elementor-page):not(.page-template-elementor_canvas)) .entry-content a:focus,
.ast-footer-copyright a:hover,
.ast-footer-copyright a:focus,
.ast-breadcrumbs a:hover,
.ast-breadcrumbs a:focus,
.ast-header-navigation a:hover,
.main-header-menu .menu-link:hover,
.main-header-menu .menu-link:focus {
  color: var(--cfc-cta-hover);
  text-decoration: underline;
}

/* -- Scripture Tooltip -- */
.cfc-scripture-ref {
  border-bottom: 1px dotted rgba(200, 164, 86, 0.8);
  cursor: help;
  text-underline-offset: 2px;
  transition:
    color 0.2s ease,
    border-bottom-color 0.2s ease;
}

.cfc-scripture-ref:hover,
.cfc-scripture-ref:focus-visible {
  color: #c8a456;
  border-bottom-color: #c8a456;
  outline: none;
}

.cfc-scripture-tooltip {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999999;
  width: min(420px, calc(100vw - 20px));
  background: rgba(35, 38, 22, 0.96);
  color: #f2ebdd;
  border: 1px solid rgba(200, 164, 86, 0.62);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.32);
  padding: 14px 16px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    visibility 0.2s ease;
  pointer-events: none;
}

.cfc-scripture-tooltip.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.cfc-scripture-tooltip-reference {
  margin: 0 0 8px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  font-size: 0.7rem;
  color: #c8a456;
}

.cfc-scripture-tooltip-text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.65;
  color: #f2ebdd;
  white-space: pre-line;
}

.cfc-scripture-tooltip-text p {
  margin: 0 0 8px;
}

.cfc-scripture-tooltip-text p:last-child {
  margin-bottom: 0;
}

.cfc-scripture-tooltip-text a {
  color: #e7d1a0;
  text-decoration: underline;
}

.cfc-scripture-tooltip.is-loading .cfc-scripture-tooltip-text {
  color: rgba(242, 235, 221, 0.78);
}

.cfc-scripture-tooltip.is-error .cfc-scripture-tooltip-reference {
  color: #e7d1a0;
}

/* -- Buttons (CTA scope only) -- */
input[type="submit"],
input[type="reset"],
.button,
.ast-button,
.wp-block-button__link,
a.cfc-btn,
button.cfc-btn,
.cfc-btn-primary,
button.cfc-btn-primary,
a.cfc-btn-primary {
  display: inline-block;
  background-color: var(--cfc-cta) !important;
  border: 1px solid var(--cfc-cta) !important;
  border-radius: 4px !important;
  color: var(--cfc-white) !important;
  padding: 12px 28px !important;
  line-height: 1.2;
  font-weight: 600;
  text-decoration: none;
  box-shadow: none !important;
}

input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="reset"]:hover,
input[type="reset"]:focus,
.button:hover,
.button:focus,
.ast-button:hover,
.ast-button:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
a.cfc-btn:hover,
a.cfc-btn:focus,
button.cfc-btn:hover,
button.cfc-btn:focus {
  background-color: var(--cfc-cta-hover) !important;
  border-color: var(--cfc-cta-hover) !important;
  color: var(--cfc-white) !important;
  text-decoration: none;
}

/* Theme CTA buttons: transparent default, filled on hover */
a.cfc-btn,
button.cfc-btn {
  background-color: transparent !important;
  border: 1px solid var(--cfc-white) !important;
  border-radius: 0 !important;
  color: var(--cfc-white) !important;
}

a.cfc-btn:hover,
a.cfc-btn:focus,
button.cfc-btn:hover,
button.cfc-btn:focus {
  background-color: var(--cfc-cta) !important;
  border-color: var(--cfc-cta) !important;
  color: var(--cfc-white) !important;
}

/* -- Header -- */
.ast-primary-header-bar,
.ast-mobile-header-wrap .ast-primary-header-bar,
.site-header {
  background-color: var(--cfc-light-bg);
  border-bottom: 0 !important;
  box-shadow: none !important;
}

.home #masthead.site-header {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1001;
  background: linear-gradient(
    180deg,
    rgba(30, 25, 20, 0.45) 0%,
    rgba(30, 25, 20, 0.15) 50%,
    rgba(30, 25, 20, 0) 100%
  ) !important;
  border-bottom: 0 !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.home #masthead .ast-primary-header-bar,
.home #masthead .main-header-bar,
.home #masthead .ast-mobile-header-wrap .ast-primary-header-bar,
.home #masthead .site-primary-header-wrap,
.home #masthead .ast-main-header-wrap,
.home #masthead #ast-desktop-header,
.home #masthead #ast-mobile-header {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
}

#masthead,
#masthead .main-header-bar,
#masthead .ast-primary-header-bar,
#masthead .site-primary-header-wrap {
  border-bottom: 0 !important;
  box-shadow: none !important;
}

.site-header .site-title a,
.ast-site-identity .site-title a,
.ast-builder-menu-1 .menu-item > .menu-link,
.ast-mobile-menu-trigger-minimal,
.ast-mobile-menu-buttons .menu-toggle,
.ast-icon.icon-arrow svg {
  color: var(--cfc-primary) !important;
  fill: var(--cfc-primary) !important;
}

.ast-builder-menu-1 .menu-item > .menu-link {
  font-weight: 600;
}

.home .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link,
.home .ast-mobile-menu-trigger-minimal,
.home .ast-mobile-menu-buttons .menu-toggle,
.home .ast-icon.icon-arrow svg {
  color: var(--cfc-light-bg) !important;
  fill: var(--cfc-light-bg) !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.home .ast-builder-menu-1 .sub-menu .menu-item > .menu-link {
  color: var(--cfc-primary) !important;
  text-shadow: none !important;
}

.ast-builder-menu-1 .menu-item > .menu-link:hover,
.ast-builder-menu-1 .menu-item > .menu-link:focus,
.ast-builder-menu-1 .menu-item.current-menu-item > .menu-link,
.ast-builder-menu-1 .menu-item.current-menu-ancestor > .menu-link {
  color: var(--cfc-cta) !important;
}

.home .ast-builder-menu-1 .menu-item > .menu-link:hover,
.home .ast-builder-menu-1 .menu-item > .menu-link:focus,
.home .ast-builder-menu-1 .menu-item.current-menu-item > .menu-link,
.home .ast-builder-menu-1 .menu-item.current-menu-ancestor > .menu-link {
  color: var(--cfc-accent) !important;
}

.home .ast-builder-menu-1 .sub-menu .menu-item > .menu-link:hover,
.home .ast-builder-menu-1 .sub-menu .menu-item > .menu-link:focus,
.home .ast-builder-menu-1 .sub-menu .menu-item.current-menu-item > .menu-link,
.home
  .ast-builder-menu-1
  .sub-menu
  .menu-item.current-menu-ancestor
  > .menu-link {
  color: var(--cfc-cta) !important;
}

.ast-builder-menu-1 .sub-menu {
  background: rgba(245, 240, 232, 0.98);
}

.ast-builder-menu-1 .sub-menu .menu-link {
  color: var(--cfc-primary) !important;
}

.ast-site-identity .custom-logo-link img,
.ast-site-identity .custom-logo {
  max-height: clamp(40px, 5vw, 55px);
  width: auto;
}

.home .ast-site-identity .custom-logo-link img,
.home .ast-site-identity .custom-logo {
  filter: drop-shadow(0 0 2px rgba(245, 240, 232, 0.92))
    drop-shadow(0 6px 18px rgba(0, 0, 0, 0.35));
}

.ast-site-identity .custom-logo-link {
  display: inline-flex;
  align-items: center;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.ast-site-identity .custom-logo-link:hover,
.ast-site-identity .custom-logo-link:focus {
  text-decoration: none;
}

@media (max-width: 921px) {
  .ast-site-identity .custom-logo-link img,
  .ast-site-identity .custom-logo {
    max-height: clamp(40px, 7vw, 44px);
  }

  #ast-desktop-header .ast-header-button-1 {
    display: none !important;
  }

  .ast-mobile-popup-drawer .ast-header-button-1,
  .ast-mobile-header-content .ast-header-button-1 {
    display: block !important;
    margin-top: 14px;
    width: 100%;
  }

  .ast-mobile-popup-drawer .ast-header-button-1 .ast-builder-button-wrap,
  .ast-mobile-header-content .ast-header-button-1 .ast-builder-button-wrap {
    display: block;
    width: 100%;
  }

  .ast-mobile-popup-drawer .ast-header-button-1 .ast-custom-button,
  .ast-mobile-header-content .ast-header-button-1 .ast-custom-button,
  .ast-mobile-header-content .ast-header-button-1 .ast-custom-button {
    align-items: center;
    display: flex;
    justify-content: center;
    width: 100%;
    margin: 0 auto;
  }
}

.cfc-text-logo {
  color: var(--cfc-primary) !important;
  font-size: clamp(0.72rem, 1.2vw, 0.95rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.3;
}

.cfc-text-logo:hover,
.cfc-text-logo:focus {
  color: var(--cfc-accent) !important;
  text-decoration: none;
}

.site-branding .site-title,
.site-branding .site-title a {
  display: block !important;
  color: var(--cfc-primary) !important;
  font-size: clamp(0.72rem, 1.2vw, 0.95rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em;
  line-height: 1.3;
  text-transform: uppercase;
}

.site-branding .site-title a:hover,
.site-branding .site-title a:focus {
  color: var(--cfc-cta) !important;
  text-decoration: none;
}

#ast-desktop-header .ast-header-button-1,
#ast-mobile-header .ast-header-button-1,
.ast-mobile-popup-drawer .ast-header-button-1,
.ast-mobile-header-content .ast-header-button-1 {
  display: none !important;
}

@media (min-width: 922px) {
  #masthead .site-primary-header-wrap {
    padding-top: 7px !important;
    padding-bottom: 1px !important;
  }

  #masthead .ast-builder-grid-row {
    align-items: center !important;
  }

  #masthead .ast-builder-menu-1 .main-header-menu {
    margin-top: 2px;
  }

  .site-header-primary-section-right {
    display: flex !important;
    align-items: center !important;
  }

  .site-header-primary-section-right > .ast-builder-layout-element {
    align-self: center !important;
  }

  .site-header-primary-section-right > .ast-builder-menu-1 {
    order: 0;
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
  }

  .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link {
    display: inline-flex !important;
    align-items: center !important;
    height: 70px;
  }

  .ast-builder-menu-1 .main-header-menu > .menu-item.cfc-nav-new-here-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    line-height: normal !important;
    margin-right: 14px !important;
  }

  .ast-builder-menu-1
    .main-header-menu
    > .menu-item.cfc-nav-new-here-item
    > .menu-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 10px 26px !important;
    border-radius: 2px !important;
    background: #d4956a !important;
    border: none !important;
    color: #fff !important;
    font-family: "Alegreya Sans", sans-serif !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: nowrap;
    line-height: 1.1 !important;
    margin: 0 !important;
    transition: background 0.2s ease !important;
  }

  .ast-builder-menu-1
    .main-header-menu
    > .menu-item.cfc-nav-new-here-item
    > .menu-link:hover,
  .ast-builder-menu-1
    .main-header-menu
    > .menu-item.cfc-nav-new-here-item
    > .menu-link:focus {
    background: #c4854e !important;
    color: #fff !important;
    text-decoration: none !important;
  }
}

@media (max-width: 921px) {
  .ast-mobile-popup-content
    .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.menu-item-has-children
    > .menu-link
    .dropdown-menu-toggle.ast-header-navigation-arrow,
  .ast-mobile-header-content
    .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.menu-item-has-children
    > .menu-link
    .dropdown-menu-toggle.ast-header-navigation-arrow {
    display: none !important;
  }

  .ast-mobile-popup-content
    .ast-builder-menu-mobile
    .sub-menu
    .menu-link
    > .ast-icon.icon-arrow,
  .ast-mobile-header-content
    .ast-builder-menu-mobile
    .sub-menu
    .menu-link
    > .ast-icon.icon-arrow {
    display: none !important;
  }

  .ast-mobile-popup-content
    .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.menu-item-has-children
    > .menu-link,
  .ast-mobile-header-content
    .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.menu-item-has-children
    > .menu-link {
    position: relative;
    padding-right: 42px !important;
    cursor: pointer;
  }

  .ast-mobile-popup-content
    .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.menu-item-has-children
    > .menu-link
    .ast-header-navigation-arrow,
  .ast-mobile-header-content
    .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.menu-item-has-children
    > .menu-link
    .ast-header-navigation-arrow {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin-left: 6px;
    opacity: 0.9;
  }

  .ast-mobile-popup-content
    .ast-builder-menu-mobile
    .main-navigation
    .menu-item.menu-item-has-children
    > .ast-menu-toggle,
  .ast-mobile-header-content
    .ast-builder-menu-mobile
    .main-navigation
    .menu-item.menu-item-has-children
    > .ast-menu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 2px;
    background: transparent;
    color: var(--cfc-primary) !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .ast-mobile-popup-content
    .ast-builder-menu-mobile
    .main-navigation
    .menu-item.menu-item-has-children
    > .ast-menu-toggle
    .ast-icon.icon-arrow
    svg,
  .ast-mobile-header-content
    .ast-builder-menu-mobile
    .main-navigation
    .menu-item.menu-item-has-children
    > .ast-menu-toggle
    .ast-icon.icon-arrow
    svg,
  .ast-mobile-popup-content
    .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.menu-item-has-children
    > .menu-link
    .ast-icon.icon-arrow
    svg,
  .ast-mobile-header-content
    .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.menu-item-has-children
    > .menu-link
    .ast-icon.icon-arrow
    svg {
    color: var(--cfc-primary) !important;
    fill: var(--cfc-primary) !important;
    transition: transform 0.2s ease;
  }

  .ast-builder-menu-mobile
    .main-header-menu
    > .menu-item.ast-submenu-expanded
    > .menu-link
    .ast-icon.icon-arrow
    svg,
  .ast-builder-menu-mobile
    .main-navigation
    .menu-item.ast-submenu-expanded
    > .ast-menu-toggle
    .ast-icon.icon-arrow
    svg {
    transform: rotate(180deg);
  }

  .home
    .ast-mobile-popup-content
    .ast-builder-menu-mobile
    .menu-item
    > .menu-link,
  .home
    .ast-mobile-header-content
    .ast-builder-menu-mobile
    .menu-item
    > .menu-link {
    color: var(--cfc-primary) !important;
    text-shadow: none !important;
  }

  .ast-builder-menu-mobile .main-header-menu .menu-item.cfc-nav-new-here-item {
    margin: 8px 0 6px !important;
  }

  .ast-builder-menu-mobile
    .main-header-menu
    .menu-item.cfc-nav-new-here-item
    > .menu-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    padding: 10px 18px !important;
    border-radius: 2px !important;
    background: #d4956a !important;
    border: none !important;
    color: #fff !important;
    font-family: "Alegreya Sans", sans-serif !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    line-height: 1.1 !important;
    text-decoration: none !important;
  }
}

/* -- Section Utilities -- */
.cfc-section {
  width: 100%;
  margin: 0;
  padding: clamp(80px, 10vw, 120px) 0;
}

.cfc-section--light {
  background-color: var(--cfc-light-bg);
  color: var(--cfc-dark-text);
}

.cfc-section--dark {
  background-color: var(--cfc-primary);
  color: var(--cfc-light-text);
}

.cfc-section--dark p,
.cfc-section--dark li,
.cfc-section--dark .cfc-copy,
.cfc-section--dark .entry-content p {
  color: var(--cfc-light-text);
}

.cfc-section--dark h1,
.cfc-section--dark h2,
.cfc-section--dark h3,
.cfc-section--dark h4,
.cfc-section--dark h5,
.cfc-section--dark h6 {
  color: var(--cfc-accent) !important;
}

.cfc-section--dark a,
.cfc-section--dark .menu-link {
  color: var(--cfc-accent);
}

.cfc-section--dark a:hover,
.cfc-section--dark a:focus {
  color: var(--cfc-light-text);
}

.cfc-copy {
  max-width: 760px;
}

@media (max-width: 921px) {
  .cfc-section {
    padding: 64px 0;
  }
}

/* -- Simple Placeholder Templates -- */
.cfc-page-placeholder {
  background: #f2ebdd;
}

.cfc-page-placeholder-hero {
  align-items: center;
  background: #232616;
  display: flex;
  justify-content: center;
  min-height: 45vh;
  padding: 64px 22px;
  text-align: center;
}

.cfc-page-placeholder-shell {
  max-width: 720px;
  width: 100%;
}

.cfc-page-placeholder-label {
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 2.4px;
  margin: 0;
  text-transform: uppercase;
}

.cfc-page-placeholder-title {
  color: #f2ebdd;
  font-family: "Alegreya", Georgia, serif;
  font-size: clamp(2.1rem, 5vw, 3.2rem);
  font-weight: 800;
  line-height: 1.15;
  margin: 12px 0 0;
}

.cfc-page-placeholder-rule {
  background: #8b8b38;
  display: block;
  height: 2px;
  margin: 20px auto 22px;
  width: 56px;
}

.cfc-page-placeholder-copy {
  color: rgba(242, 235, 221, 0.78);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.04rem;
  line-height: 1.85;
  margin: 0;
}

.cfc-page-placeholder-copy--stack p {
  color: inherit;
  margin: 0;
}

/* -- Plan Your Visit Page -- */
.cfc-plan-visit {
  background: #fff;
  color: #232616;
}

.cfc-plan-visit h1,
.cfc-plan-visit h2,
.cfc-plan-visit h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-plan-visit-container {
  width: min(1200px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-plan-visit-kicker {
  margin: 0 0 12px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-plan-visit-rule {
  display: block;
  width: 40px;
  height: 1px;
  margin: 14px 0 18px;
  background: #8b8b38;
}

.cfc-plan-visit-section-header {
  max-width: 760px;
}

.cfc-plan-visit-section-header--center {
  margin: 0 auto 2rem;
  text-align: center;
}

.cfc-plan-visit-section-header--center .cfc-plan-visit-rule {
  margin-left: auto;
  margin-right: auto;
}

.cfc-plan-visit-section-header h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(2rem, 4vw, 2.2rem);
  line-height: 1.08;
}

.cfc-plan-visit-section-intro {
  margin: 0;
  color: rgba(35, 38, 22, 0.74);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.08rem;
  font-style: italic;
  line-height: 1.7;
}

.cfc-plan-visit-hero {
  min-height: 85vh;
  display: flex;
  align-items: flex-end;
  background-color: #232616;
  background-image:
    linear-gradient(
      to top,
      rgba(35, 38, 22, 0.7) 0%,
      rgba(35, 38, 22, 0.42) 42%,
      rgba(35, 38, 22, 0.16) 72%,
      rgba(35, 38, 22, 0.04) 100%
    ),
    var(--cfc-plan-visit-hero-image, none);
  background-size: cover;
  background-position: center 24%;
  padding: clamp(110px, 10vw, 148px) 0 clamp(62px, 7vw, 88px);
}

.cfc-plan-visit-hero-inner {
  max-width: 700px;
}

.cfc-plan-visit-hero-label {
  margin: 0;
  color: rgba(255, 255, 255, 0.86);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-plan-visit-hero-title {
  margin: 10px 0 0;
  color: #fff !important;
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.02;
}

.cfc-plan-visit-hero-rule {
  display: block;
  width: 60px;
  height: 1px;
  margin: 16px 0 18px;
  background: #8b8b38;
}

.cfc-plan-visit-hero-address {
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.2rem;
  line-height: 1.5;
}

.cfc-plan-visit-hero-times {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.84);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.cfc-plan-visit-guide-wrap {
  background: #fff;
  padding: 48px 0;
  border-bottom: 1px solid rgba(35, 38, 22, 0.06);
}

.cfc-visit-guide-shell {
  position: relative;
}

.cfc-visit-guide {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 0;
  background: #fff;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  z-index: 40;
  transition:
    padding 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

.cfc-visit-guide-card {
  flex: 1;
  min-width: 0;
  padding: 0 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: #232616;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.cfc-visit-guide-card + .cfc-visit-guide-card {
  border-left: 1px solid rgba(35, 38, 22, 0.06);
}

.cfc-visit-guide-card:hover {
  transform: translateY(-3px);
}

.cfc-visit-guide-icon {
  width: 28px;
  height: 28px;
  max-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8b8b38;
  overflow: hidden;
  transition:
    transform 0.3s ease,
    color 0.3s ease,
    opacity 0.25s ease,
    max-height 0.25s ease,
    margin 0.25s ease;
}

.cfc-visit-guide-icon .fas {
  width: 1.2rem;
  height: 1.2rem;
  display: block;
  font-size: 1.2rem;
  line-height: 1;
}

.cfc-visit-guide-label {
  margin-top: 12px;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  transition: color 0.3s ease;
}

.cfc-visit-guide-label::after {
  content: "";
  display: block;
  width: 0;
  height: 2px;
  margin: 8px auto 0;
  background: #d4956a;
  transition: width 0.25s ease;
}

.cfc-visit-guide-teaser {
  margin-top: 6px;
  max-height: 42px;
  color: rgba(35, 38, 22, 0.45);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.78rem;
  line-height: 1.4;
  max-width: 140px;
  overflow: hidden;
  transition:
    color 0.3s ease,
    opacity 0.25s ease,
    max-height 0.25s ease,
    margin 0.25s ease;
}

.cfc-visit-guide-card.is-active .cfc-visit-guide-icon,
.cfc-visit-guide-card:hover .cfc-visit-guide-icon,
.cfc-visit-guide-card:focus-visible .cfc-visit-guide-icon {
  color: #d4956a;
}

.cfc-visit-guide-card.is-active .cfc-visit-guide-label,
.cfc-visit-guide-card:hover .cfc-visit-guide-label,
.cfc-visit-guide-card:focus-visible .cfc-visit-guide-label {
  color: #d4956a;
}

.cfc-visit-guide-card.is-active .cfc-visit-guide-label::after {
  width: 28px;
}

.cfc-visit-guide-card.is-active .cfc-visit-guide-teaser {
  color: rgba(35, 38, 22, 0.7);
}

.cfc-visit-guide-card.is-clicked .cfc-visit-guide-icon {
  transform: scale(1.15);
}

.cfc-visit-guide.is-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(35, 38, 22, 0.06);
  box-shadow: 0 2px 12px rgba(35, 38, 22, 0.04);
  padding: 12px max(20px, calc((100vw - 1200px) / 2));
}

.cfc-visit-guide.is-sticky .cfc-visit-guide-icon,
.cfc-visit-guide.is-sticky .cfc-visit-guide-teaser {
  max-height: 0;
  opacity: 0;
  margin: 0;
  overflow: hidden;
}

.cfc-visit-guide.is-sticky .cfc-visit-guide-label {
  margin-top: 0;
  font-size: 0.66rem;
}

.cfc-plan-visit-when-where {
  background: #fff;
  padding: 5.4rem 0;
}

.cfc-plan-visit-when-where-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(26px, 4vw, 48px);
  align-items: stretch;
}

.cfc-plan-visit-when-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cfc-plan-visit-when-copy h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.7rem, 3vw, 1.95rem);
  line-height: 1.1;
}

.cfc-plan-visit-info-pairs {
  margin: 0;
}

.cfc-plan-visit-info-pair {
  margin: 0;
  padding: 0;
}

.cfc-plan-visit-info-pair + .cfc-plan-visit-info-pair {
  margin-top: 16px;
}

.cfc-plan-visit-info-pair--spaced {
  margin-top: 24px !important;
}

.cfc-plan-visit-info-pair dt {
  margin: 0;
  color: rgba(35, 38, 22, 0.72);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.4px;
}

.cfc-plan-visit-info-pair dd {
  margin: 3px 0 0;
  color: rgba(35, 38, 22, 0.88);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.03rem;
  line-height: 1.65;
}

.cfc-plan-visit-info-pair dd a {
  color: inherit;
  text-decoration: none;
}

.cfc-plan-visit-info-pair dd a:hover,
.cfc-plan-visit-info-pair dd a:focus-visible {
  color: #8b8b38;
}

.cfc-plan-visit-directions-btn {
  margin-top: 26px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 15px;
  border: 1px solid #8b8b38;
  border-radius: 2px;
  background: transparent;
  color: #8b8b38;
  text-decoration: none;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  width: fit-content;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.cfc-plan-visit-directions-btn:hover,
.cfc-plan-visit-directions-btn:focus-visible {
  background: rgba(139, 139, 56, 0.08);
  color: #6f762f;
  border-color: #6f762f;
  text-decoration: none;
}

.cfc-plan-visit-map {
  border-radius: 2px;
  overflow: hidden;
  min-height: 500px;
}

.cfc-plan-visit-map iframe {
  width: 100%;
  height: 100%;
  min-height: 500px;
  border: 0;
  display: block;
}

.cfc-plan-visit-expect {
  background: #f5f0e8;
  padding: 5.4rem 0;
}

.cfc-plan-visit-expect > .cfc-plan-visit-container,
.cfc-plan-visit-families > .cfc-plan-visit-container {
  max-width: 1120px;
}

.cfc-plan-visit-timeline {
  position: relative;
  margin-top: 2.4rem;
}

.cfc-plan-visit-timeline::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  transform: translateX(-0.5px);
  background: rgba(139, 139, 56, 0.2);
}

.cfc-plan-visit-timeline-item {
  position: relative;
  width: calc(50% - 56px);
  margin-bottom: 2.3rem;
}

.cfc-plan-visit-timeline-item:last-child {
  margin-bottom: 0;
}

.cfc-plan-visit-timeline-item.is-left {
  margin-right: auto;
}

.cfc-plan-visit-timeline-item.is-right {
  margin-left: auto;
}

.cfc-plan-visit-timeline-dot {
  position: absolute;
  top: 12px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8b8b38;
}

.cfc-plan-visit-timeline-item.is-left .cfc-plan-visit-timeline-dot {
  right: -60px;
}

.cfc-plan-visit-timeline-item.is-right .cfc-plan-visit-timeline-dot {
  left: -60px;
}

.cfc-plan-visit-timeline-number {
  margin: 0;
  color: rgba(35, 38, 22, 0.25);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 1px;
  line-height: 1;
}

.cfc-plan-visit-timeline-content h3 {
  margin: 8px 0 0;
  color: #232616 !important;
  font-size: 1.22rem;
  line-height: 1.2;
}

.cfc-plan-visit-timeline-content p {
  margin: 9px 0 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.75;
}

.cfc-plan-visit-expect-link {
  margin: 2.3rem 0 0;
  text-align: center;
}

.cfc-plan-visit-arrow-link a,
.cfc-plan-visit-expect-link a {
  color: #d4956a;
  text-decoration: none;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.cfc-plan-visit-arrow-link a:hover,
.cfc-plan-visit-arrow-link a:focus-visible,
.cfc-plan-visit-expect-link a:hover,
.cfc-plan-visit-expect-link a:focus-visible {
  color: #c4854e;
}

.cfc-plan-visit-families {
  background: #fff;
  padding: 5.4rem 0;
}

.cfc-plan-visit-family-quote {
  margin: 2.5rem auto;
  max-width: 720px;
  color: rgba(35, 38, 22, 0.82);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.15rem;
  font-style: italic;
  line-height: 1.9;
  text-align: center;
}

.cfc-plan-visit-family-feature {
  display: grid;
  grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
  gap: clamp(22px, 3.2vw, 38px);
  align-items: center;
}

.cfc-plan-visit-family-image,
.cfc-plan-visit-nursery-visual {
  margin: 0;
  border-radius: 2px;
  overflow: hidden;
  min-height: 340px;
}

.cfc-plan-visit-family-image img,
.cfc-plan-visit-nursery-visual img {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
  object-position: center;
  display: block;
}

.cfc-plan-visit-family-image-fallback,
.cfc-plan-visit-nursery-visual-fallback {
  width: 100%;
  height: 100%;
  min-height: 340px;
  background: rgba(168, 184, 140, 0.08);
}

.cfc-plan-visit-family-copy h3,
.cfc-plan-visit-nursery-copy h3 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.5rem;
  line-height: 1.15;
}

.cfc-plan-visit-family-copy p,
.cfc-plan-visit-nursery-copy > p {
  margin: 12px 0 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.8;
}

.cfc-plan-visit-family-copy p a {
  color: #8b8b38;
  text-decoration: none;
}

.cfc-plan-visit-family-copy p a:hover,
.cfc-plan-visit-family-copy p a:focus-visible {
  color: #6f762f;
}

.cfc-plan-visit-family-values {
  color: #8b8b38 !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif !important;
  font-size: 0.7rem !important;
  font-weight: 800 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase;
}

.cfc-plan-visit-nursery {
  margin-top: 2.7rem;
  display: grid;
  grid-template-columns: minmax(0, 0.55fr) minmax(0, 0.45fr);
  gap: clamp(22px, 3.2vw, 38px);
  align-items: center;
}

.cfc-plan-visit-nursery-copy h3 {
  font-size: 1.35rem;
}

.cfc-plan-visit-nursery-steps {
  margin-top: 18px;
  display: flex;
  align-items: flex-start;
  gap: 18px;
  flex-wrap: wrap;
}

.cfc-plan-visit-nursery-step {
  flex: 1 1 140px;
}

.cfc-plan-visit-nursery-step span {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(139, 139, 56, 0.12);
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
}

.cfc-plan-visit-nursery-step p {
  margin: 7px 0 0;
  color: rgba(35, 38, 22, 0.74);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  line-height: 1.55;
}

.cfc-plan-visit-form-section {
  background: #f5f0e8;
  padding: 5.4rem 0;
}

.cfc-plan-visit-form-container {
  max-width: 560px;
}

.cfc-plan-visit-form-wrap {
  margin-top: 1.3rem;
}

.cfc-plan-visit-form-success {
  text-align: center;
}

.cfc-plan-visit-form-success-check {
  width: 48px;
  height: 48px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: #8b8b38;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1.45rem;
  font-weight: 800;
}

.cfc-plan-visit-form-success h3 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.5rem;
  line-height: 1.2;
  text-align: center;
}

.cfc-plan-visit-form-success p {
  margin: 12px 0 0;
  color: rgba(35, 38, 22, 0.78);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.8;
  text-align: center;
}

.cfc-plan-visit-form-success a {
  color: #8b8b38;
  text-decoration: none;
}

.cfc-plan-visit-form-success a:hover,
.cfc-plan-visit-form-success a:focus-visible {
  color: #6f762f;
}

.cfc-plan-visit-form-wrap .cfc-contact-error {
  margin-bottom: 18px;
}

.cfc-plan-visit-form-wrap .cfc-form-field {
  margin-bottom: 28px;
}

.cfc-plan-visit-form-wrap .cfc-form-label {
  color: rgba(35, 38, 22, 0.7);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.cfc-plan-visit-form-wrap .cfc-form-optional {
  color: rgba(35, 38, 22, 0.45);
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.68rem;
}

.cfc-plan-visit-form-wrap .cfc-form-input,
.cfc-plan-visit-form-wrap .cfc-form-textarea {
  width: 100%;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid rgba(35, 38, 22, 0.15);
  background: transparent;
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.98rem;
  padding: 10px 0;
  box-shadow: none;
}

.cfc-plan-visit-form-wrap .cfc-form-input:focus,
.cfc-plan-visit-form-wrap .cfc-form-textarea:focus {
  border-bottom-color: #8b8b38;
  outline: none;
  box-shadow: none;
}

.cfc-plan-visit-form-wrap .cfc-form-textarea {
  min-height: 110px;
  resize: vertical;
}

.cfc-plan-visit-form-wrap .cfc-form-submit {
  width: 100%;
  border: 0;
  border-radius: 2px;
  background: #d4956a;
  color: #fff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 14px;
  transition: background-color 0.2s ease;
}

.cfc-plan-visit-form-wrap .cfc-form-submit:hover,
.cfc-plan-visit-form-wrap .cfc-form-submit:focus-visible {
  background: #c4854e;
  color: #fff;
}

.cfc-plan-visit-faq {
  background: #fff;
  padding: 5.4rem 0;
}

.cfc-plan-visit-accordion {
  max-width: 720px;
  margin: 0 auto;
}

.cfc-plan-visit-faq-item {
  border-bottom: 1px solid rgba(35, 38, 22, 0.08);
}

.cfc-plan-visit-faq-item:first-child {
  border-top: 1px solid rgba(35, 38, 22, 0.08);
}

.cfc-plan-visit-faq-question-wrap {
  margin: 0;
}

.cfc-plan-visit-faq-trigger {
  width: 100%;
  margin: 0;
  padding: 18px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 0 !important;
  border-bottom: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: left;
  cursor: pointer;
}

.cfc-plan-visit-faq-trigger span:first-child {
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
}

.cfc-plan-visit-faq-indicator {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  border-right: 2px solid #8b8b38;
  border-bottom: 2px solid #8b8b38;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}

.cfc-plan-visit-faq-trigger[aria-expanded="true"]
  .cfc-plan-visit-faq-indicator {
  transform: rotate(-135deg);
}

.cfc-plan-visit-faq-trigger:hover span:first-child,
.cfc-plan-visit-faq-trigger:focus-visible span:first-child,
.cfc-plan-visit-faq-trigger[aria-expanded="true"] span:first-child {
  color: #8b8b38;
}

.cfc-plan-visit-faq-panel {
  padding: 0 0 18px;
}

.cfc-plan-visit-faq-panel p {
  margin: 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.96rem;
  line-height: 1.85;
}

.cfc-plan-visit-faq-panel a {
  color: #8b8b38;
  text-decoration: none;
}

.cfc-plan-visit-faq-panel a:hover,
.cfc-plan-visit-faq-panel a:focus-visible {
  color: #6f762f;
}

.cfc-plan-visit-deeper {
  background: #f5f0e8;
  padding: 4rem 0;
}

.cfc-plan-visit-deeper-row {
  display: flex;
  align-items: center;
  justify-content: center;
}

.cfc-plan-visit-deeper-text {
  margin: 0;
  color: rgba(35, 38, 22, 0.78);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.8;
  text-align: center;
}

.cfc-plan-visit-deeper-text a {
  color: #8b8b38;
  text-decoration: none;
}

.cfc-plan-visit-deeper-text a:hover,
.cfc-plan-visit-deeper-text a:focus-visible {
  color: #6f762f;
}

.cfc-plan-visit.cfc-plan-visit--animated [data-pv-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.55s ease-out,
    transform 0.55s ease-out;
  transition-delay: var(--cfc-pv-delay, 0s);
}

.cfc-plan-visit.cfc-plan-visit--animated [data-pv-reveal="left"] {
  transform: translateX(-16px);
}

.cfc-plan-visit.cfc-plan-visit--animated [data-pv-reveal="right"] {
  transform: translateX(16px);
}

.cfc-plan-visit.cfc-plan-visit--animated [data-pv-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 980px) {
  .cfc-plan-visit-container {
    width: min(100%, calc(100% - 40px));
  }

  .cfc-plan-visit-when-where-layout,
  .cfc-plan-visit-family-feature,
  .cfc-plan-visit-nursery {
    grid-template-columns: 1fr;
  }

  .cfc-plan-visit-map,
  .cfc-plan-visit-map iframe,
  .cfc-plan-visit-family-image,
  .cfc-plan-visit-family-image img,
  .cfc-plan-visit-family-image-fallback,
  .cfc-plan-visit-nursery-visual,
  .cfc-plan-visit-nursery-visual img,
  .cfc-plan-visit-nursery-visual-fallback {
    min-height: 300px;
  }

  .cfc-plan-visit-timeline::before {
    left: 14px;
    transform: none;
  }

  .cfc-plan-visit-timeline-item {
    width: 100%;
    padding-left: 40px;
    margin-left: 0;
    margin-right: 0;
  }

  .cfc-plan-visit-timeline-item.is-left .cfc-plan-visit-timeline-dot,
  .cfc-plan-visit-timeline-item.is-right .cfc-plan-visit-timeline-dot {
    left: 10px;
    right: auto;
  }

  .cfc-plan-visit-nursery {
    margin-top: 2.3rem;
  }

  .cfc-plan-visit-nursery-visual {
    order: -1;
  }

  .cfc-visit-guide.is-sticky {
    padding-left: max(20px, calc((100vw - 1200px) / 2));
    padding-right: max(20px, calc((100vw - 1200px) / 2));
  }
}

@media (max-width: 768px) {
  .cfc-plan-visit-container {
    width: min(100%, calc(100% - 40px));
  }

  .cfc-plan-visit-hero {
    min-height: 76vh;
    background-position: center 20%;
    padding: clamp(100px, 13vw, 124px) 0 44px;
  }

  .cfc-plan-visit-hero-title {
    font-size: clamp(2.2rem, 9.5vw, 3rem);
  }

  .cfc-plan-visit-hero-address {
    font-size: 1.05rem;
  }

  .cfc-plan-visit-hero-times {
    font-size: 0.8rem;
  }

  .cfc-plan-visit-guide-wrap {
    padding: 24px 0;
    position: relative;
    overflow: hidden;
  }

  .cfc-visit-guide-shell {
    position: relative;
    overflow: hidden;
  }

  .cfc-visit-guide-shell::before,
  .cfc-visit-guide-shell::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 30px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: 2;
  }

  .cfc-visit-guide-shell::before {
    left: 0;
    background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
  }

  .cfc-visit-guide-shell::after {
    right: 0;
    background: linear-gradient(to left, #fff, rgba(255, 255, 255, 0));
  }

  .cfc-visit-guide-shell.has-left-overflow::before,
  .cfc-visit-guide-shell.has-right-overflow::after {
    opacity: 1;
  }

  .cfc-visit-guide {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 20px;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 4px;
  }

  .cfc-visit-guide::-webkit-scrollbar {
    display: none;
  }

  .cfc-visit-guide-card {
    min-width: 140px;
    flex: 0 0 140px;
    scroll-snap-align: center;
    padding: 0 10px;
  }

  .cfc-visit-guide-card + .cfc-visit-guide-card {
    border-left: 0;
  }

  .cfc-visit-guide-shell.is-sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: max(20px, env(safe-area-inset-left, 0px));
    padding-right: max(20px, env(safe-area-inset-right, 0px));
    background: #fff;
    border-bottom: 1px solid rgba(35, 38, 22, 0.06);
    box-shadow: 0 2px 12px rgba(35, 38, 22, 0.04);
    box-sizing: border-box;
  }

  .cfc-visit-guide.is-sticky {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    z-index: auto;
    border-bottom: 0;
    box-shadow: none;
    padding: 0 0 4px;
  }

  .cfc-plan-visit-when-where,
  .cfc-plan-visit-expect,
  .cfc-plan-visit-families,
  .cfc-plan-visit-form-section,
  .cfc-plan-visit-faq {
    padding: 5rem 0;
  }

  .cfc-plan-visit-deeper {
    padding: 3.2rem 0;
  }

  .cfc-plan-visit-section-header h2 {
    font-size: clamp(1.68rem, 7.8vw, 2rem);
  }

  .cfc-plan-visit-section-intro,
  .cfc-plan-visit-family-quote {
    font-size: 1rem;
    line-height: 1.75;
  }

  .cfc-plan-visit-nursery-steps {
    gap: 14px;
  }

  .cfc-plan-visit-nursery-step {
    flex-basis: calc(50% - 10px);
  }

  .cfc-plan-visit-form-wrap .cfc-form-field {
    margin-bottom: 24px;
  }

  .cfc-plan-visit-deeper-row {
    padding-inline: 8px;
  }
}

@media (max-width: 520px) {
  .cfc-plan-visit-map,
  .cfc-plan-visit-map iframe,
  .cfc-plan-visit-family-image,
  .cfc-plan-visit-family-image img,
  .cfc-plan-visit-family-image-fallback,
  .cfc-plan-visit-nursery-visual,
  .cfc-plan-visit-nursery-visual img,
  .cfc-plan-visit-nursery-visual-fallback {
    min-height: 240px;
  }

  .cfc-plan-visit-nursery-step {
    flex-basis: 100%;
  }

  .cfc-plan-visit-directions-btn {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-plan-visit.cfc-plan-visit--animated [data-pv-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* -- Serve Page -- */
.cfc-serve {
  background: #f2ebdd;
  color: #232616;
}

.cfc-serve h1,
.cfc-serve h2,
.cfc-serve h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-serve-container {
  width: min(1100px, calc(100% - 64px));
  margin: 0 auto;
}

.cfc-serve-hero {
  min-height: 45vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(94px, 11vw, 136px) 0 56px;
  background: #232616;
}

.cfc-serve-hero.has-image {
  background-image:
    linear-gradient(
      to top,
      rgba(35, 38, 22, 0.9) 0%,
      rgba(35, 38, 22, 0.68) 44%,
      rgba(35, 38, 22, 0.5) 100%
    ),
    var(--cfc-serve-hero-image, none);
  background-size: cover;
  background-position: center 60%;
}

.cfc-serve-hero-inner {
  max-width: 760px;
}

.cfc-serve-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-serve-hero-title {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.5rem, 5.4vw, 3.6rem);
  line-height: 1.08;
}

.cfc-serve-hero-rule {
  display: block;
  width: 56px;
  height: 2px;
  margin: 22px auto;
  background: #8b8b38;
}

.cfc-serve-hero-copy {
  margin: 0;
  color: rgba(242, 235, 221, 0.84);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.15rem;
  line-height: 1.7;
}

.cfc-serve-overview {
  padding: 42px 0 26px;
}

.cfc-serve-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.cfc-serve-overview-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 232px;
  overflow: hidden;
  background: linear-gradient(
    160deg,
    rgba(35, 38, 22, 0.88) 0%,
    rgba(35, 38, 22, 0.72) 58%,
    rgba(35, 38, 22, 0.58) 100%
  );
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 6px;
  padding: 20px 20px 18px;
  text-decoration: none;
  color: #f2ebdd;
  transition:
    transform 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.cfc-serve-overview-card,
.cfc-serve-overview-card:visited {
  color: #f2ebdd !important;
}

.cfc-serve-overview-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      to top,
      rgba(35, 38, 22, 0.86) 0%,
      rgba(35, 38, 22, 0.56) 42%,
      rgba(35, 38, 22, 0.24) 100%
    ),
    var(--cfc-serve-card-image, none);
  background-size: cover;
  background-position: center;
  transform: scale(1);
  transition: transform 0.45s ease;
  z-index: 0;
}

.cfc-serve-overview-card > * {
  position: relative;
  z-index: 1;
}

.cfc-serve-overview-card:hover,
.cfc-serve-overview-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(139, 139, 56, 0.44);
  box-shadow: 0 8px 24px rgba(35, 38, 22, 0.16);
  color: #f2ebdd;
}

.cfc-serve-overview-card:hover::before,
.cfc-serve-overview-card:focus-visible::before {
  transform: scale(1.04);
}

.cfc-serve-overview-label {
  margin: 0 0 8px;
  color: rgba(242, 235, 221, 0.82) !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-serve-overview-card h2 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.4rem;
  line-height: 1.2;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
}

.cfc-serve-overview-desc {
  margin: 10px 0 0;
  color: rgba(242, 235, 221, 0.9) !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.82rem;
  line-height: 1.62;
}

.cfc-serve-overview-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin-top: 14px;
  border: 1px solid rgba(242, 235, 221, 0.28);
  border-radius: 4px;
  font-size: 0.9rem;
  line-height: 1;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.cfc-serve-overview-card:hover .cfc-serve-overview-arrow,
.cfc-serve-overview-card:focus-visible .cfc-serve-overview-arrow {
  background: rgba(139, 139, 56, 0.22);
  border-color: rgba(139, 139, 56, 0.52);
}

.cfc-serve-section {
  padding: 74px 0;
  scroll-margin-top: 110px;
}

.cfc-serve-section--community {
  background: #ffffff;
}

.cfc-serve-section--world {
  border-top: 1px solid rgba(35, 38, 22, 0.06);
  background:
    linear-gradient(135deg, rgba(35, 38, 22, 0.05) 0%, rgba(35, 38, 22, 0) 52%),
    #f2ebdd;
}

.cfc-serve-section-header {
  max-width: 760px;
  margin: 0 0 28px;
}

.cfc-serve-kicker {
  margin: 0 0 10px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-serve-section-header h2 {
  margin: 0;
  color: #232616;
  font-size: clamp(2rem, 4.2vw, 2.7rem);
  line-height: 1.12;
}

.cfc-serve-rule {
  display: block;
  width: 46px;
  height: 2px;
  margin: 14px 0 16px;
  background: #8b8b38;
}

.cfc-serve-section-header p {
  margin: 0;
  color: rgba(35, 38, 22, 0.72);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.85;
}

.cfc-serve-editorial-lead {
  margin: 4px 0 30px;
  max-width: 980px;
  color: rgba(35, 38, 22, 0.86);
  font-family: "Alegreya", Georgia, serif;
  font-size: clamp(1.5rem, 3.3vw, 2.35rem);
  font-weight: 400;
  font-style: italic;
  line-height: 1.42;
  letter-spacing: 0.2px;
}

.cfc-serve-kids-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: 24px;
  align-items: stretch;
}

.cfc-serve-kids-feature-media {
  position: relative;
  min-height: 340px;
  border-radius: 8px;
  overflow: hidden;
}

.cfc-serve-kids-feature-media img,
.cfc-serve-kids-feature-fallback {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 34%;
}

.cfc-serve-kids-feature-fallback {
  background:
    linear-gradient(
      140deg,
      rgba(168, 184, 140, 0.5) 0%,
      rgba(122, 132, 80, 0.38) 45%,
      rgba(35, 38, 22, 0.5) 100%
    ),
    #232616;
}

.cfc-serve-kids-feature-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
}

.cfc-serve-kids-feature-copy h3 {
  margin: 0;
  color: #232616;
  font-size: clamp(1.68rem, 2.6vw, 2.2rem);
  line-height: 1.14;
}

.cfc-serve-kids-feature-summary {
  margin: 12px 0 0;
  color: rgba(35, 38, 22, 0.78);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.02rem;
  line-height: 1.78;
}

.cfc-serve-role-line {
  margin-top: 12px;
  color: rgba(35, 38, 22, 0.62) !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

.cfc-serve-quiet-cta {
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  border: 1px solid rgba(139, 139, 56, 0.42);
  border-radius: 4px;
  padding: 7px 14px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.cfc-serve-quiet-cta:hover,
.cfc-serve-quiet-cta:focus-visible {
  background: rgba(139, 139, 56, 0.08);
  border-color: rgba(139, 139, 56, 0.58);
  text-decoration: none;
}

.cfc-serve-worship-feature {
  margin-top: 30px;
  padding: 22px 20px;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 22px;
  border-top: 2px solid rgba(139, 139, 56, 0.5);
  border-bottom: 1px solid rgba(35, 38, 22, 0.1);
  background: rgba(255, 255, 255, 0.36);
}

.cfc-serve-worship-feature-copy {
  min-width: 0;
}

.cfc-serve-worship-feature-copy h3 {
  margin: 0;
  color: #232616;
  font-size: clamp(1.5rem, 2.3vw, 1.95rem);
  line-height: 1.16;
}

.cfc-serve-worship-summary {
  margin: 12px 0 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.72;
}

.cfc-serve-worship-roles {
  margin: 14px 0 0;
  color: rgba(35, 38, 22, 0.66);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-style: italic;
  line-height: 1.6;
}

.cfc-serve-worship-feature-visual {
  position: relative;
  overflow: hidden;
  display: block;
  min-height: 180px;
  border: 1px solid rgba(139, 139, 56, 0.22);
  background: #f2ebdd;
  border-radius: 6px;
}

.cfc-serve-worship-feature-visual img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
  display: block;
}

.cfc-serve-worship-feature-fallback {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      150deg,
      rgba(139, 139, 56, 0.2) 0%,
      rgba(139, 139, 56, 0.06) 48%,
      rgba(35, 38, 22, 0.08) 100%
    ),
    #f2ebdd;
}

.cfc-serve-hospitality-row {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}

.cfc-serve-hospitality-item {
  padding: 8px 0 8px 26px;
  border-left: 3px solid #8b8b38;
}

.cfc-serve-hospitality-item h3 {
  margin: 0;
  color: #232616;
  font-size: 1.4rem;
  line-height: 1.2;
}

.cfc-serve-hospitality-copy {
  margin: 14px 0 0;
  color: rgba(35, 38, 22, 0.72);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.99rem;
  line-height: 1.74;
}

.cfc-serve-safety-block {
  margin-top: 26px;
  max-width: 760px;
  padding: 8px 0 8px 26px;
  border-left: 3px solid #8b8b38;
}

.cfc-serve-safety-block h3 {
  margin: 0;
  color: #232616;
  font-size: 1.32rem;
  line-height: 1.2;
}

.cfc-serve-safety-copy {
  margin: 12px 0 0;
  color: rgba(35, 38, 22, 0.7);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.97rem;
  line-height: 1.7;
}

.cfc-serve-ministry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.cfc-serve-ministry-card,
.cfc-serve-community-card {
  background: #ffffff;
  border-radius: 6px;
  border: 1px solid rgba(35, 38, 22, 0.08);
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.cfc-serve-card-label,
.cfc-serve-bb-label {
  margin: 0 0 10px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-serve-ministry-card h3,
.cfc-serve-community-card h3,
.cfc-serve-bb-highlight h3 {
  margin: 0;
  color: #232616;
  font-size: 1.44rem;
  line-height: 1.24;
}

.cfc-serve-ministry-card p,
.cfc-serve-community-card p,
.cfc-serve-bb-highlight p,
.cfc-serve-world-copy p {
  margin: 10px 0 0;
  color: rgba(35, 38, 22, 0.74);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.96rem;
  line-height: 1.84;
}

.cfc-serve-team-list {
  margin: 10px 0 0;
  padding-left: 18px;
  display: grid;
  gap: 4px;
}

.cfc-serve-team-list li {
  color: rgba(35, 38, 22, 0.78);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  line-height: 1.6;
}

.cfc-serve-card-actions {
  margin-top: 12px;
  display: grid;
  gap: 8px;
}

.cfc-serve-ministry-card a,
.cfc-serve-community-card a,
.cfc-serve-bb-link a,
.cfc-serve-world-actions a,
.cfc-serve-contact-cta a,
.cfc-serve-partners a {
  color: #8b8b38;
  text-decoration: none;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-weight: 800;
  letter-spacing: 0.5px;
}

.cfc-serve-ministry-card a:hover,
.cfc-serve-ministry-card a:focus-visible,
.cfc-serve-community-card a:hover,
.cfc-serve-community-card a:focus-visible,
.cfc-serve-bb-link a:hover,
.cfc-serve-bb-link a:focus-visible,
.cfc-serve-world-actions a:hover,
.cfc-serve-world-actions a:focus-visible,
.cfc-serve-contact-cta a:hover,
.cfc-serve-contact-cta a:focus-visible,
.cfc-serve-partners a:hover,
.cfc-serve-partners a:focus-visible {
  text-decoration: underline;
}

.cfc-serve-contact-cta {
  margin: 20px 0 0;
  color: rgba(35, 38, 22, 0.68);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.87rem;
  line-height: 1.7;
}

.cfc-serve-liturgical-note {
  margin: 16px 0 0;
  color: rgba(35, 38, 22, 0.58);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.78rem;
  line-height: 1.66;
}

.cfc-serve-bb-highlight {
  background: #f2ebdd;
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 8px;
  padding: 24px 24px 20px;
}

.cfc-serve-bb-feature-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 14px;
  align-items: stretch;
}

.cfc-serve-bb-media {
  position: relative;
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
  min-height: 0;
  height: 100%;
  align-self: stretch;
  border: 1px solid rgba(35, 38, 22, 0.08);
  background: #232616;
}

.cfc-serve-bb-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 34%;
  display: block;
}

.cfc-serve-bb-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.8) 0%,
    rgba(35, 38, 22, 0.25) 55%,
    rgba(35, 38, 22, 0.08) 100%
  );
}

.cfc-serve-bb-media figcaption {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  margin: 0;
  z-index: 1;
  color: rgba(242, 235, 221, 0.92);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.55;
}

.cfc-serve-bb-leader {
  display: flex;
  align-items: center;
  gap: 14px;
}

.cfc-serve-bb-leader-photo {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 2px solid rgba(139, 139, 56, 0.35);
  object-fit: cover;
  object-position: center top;
  display: block;
}

.cfc-serve-bb-leader-name {
  margin: 0;
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.2;
}

.cfc-serve-bb-hours {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.cfc-serve-bb-hours p {
  margin: 0;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.cfc-serve-community-grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.cfc-serve-partners {
  margin: 18px 0 0;
  color: rgba(35, 38, 22, 0.68);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.82rem;
  line-height: 1.7;
}

.cfc-serve-world-copy {
  max-width: 860px;
}

.cfc-serve-world-actions {
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.cfc-serve-world-actions a {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border: 1px solid rgba(139, 139, 56, 0.35);
  border-radius: 4px;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.cfc-serve-world-actions a:hover,
.cfc-serve-world-actions a:focus-visible {
  text-decoration: none;
  background: rgba(139, 139, 56, 0.08);
}

.cfc-serve.cfc-serve--animated [data-serve-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.48s ease-out,
    transform 0.48s ease-out;
  transition-delay: var(--cfc-serve-delay, 0s);
}

.cfc-serve.cfc-serve--animated [data-serve-reveal="left"] {
  transform: translateX(-20px);
}

.cfc-serve.cfc-serve--animated [data-serve-reveal="right"] {
  transform: translateX(20px);
}

.cfc-serve.cfc-serve--animated [data-serve-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 1024px) {
  .cfc-serve-container {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-serve-overview-grid,
  .cfc-serve-ministry-grid {
    grid-template-columns: 1fr;
  }

  .cfc-serve-overview-card {
    min-height: 208px;
  }

  .cfc-serve-kids-feature {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .cfc-serve-kids-feature-media {
    min-height: 280px;
  }

  .cfc-serve-worship-feature {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 16px;
  }

  .cfc-serve-worship-feature-visual {
    min-height: 150px;
  }

  .cfc-serve-hospitality-row {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .cfc-serve-bb-feature-grid {
    grid-template-columns: 1fr;
  }

  .cfc-serve-bb-media {
    min-height: 280px;
  }

  .cfc-serve-community-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .cfc-serve-container {
    width: min(100%, calc(100% - 36px));
  }

  .cfc-serve-hero {
    min-height: 40vh;
    padding: clamp(84px, 12vw, 108px) 0 40px;
  }

  .cfc-serve-hero.has-image {
    background-position: center 60%;
  }

  .cfc-serve-hero-title {
    font-size: clamp(2.2rem, 9.6vw, 2.9rem);
  }

  .cfc-serve-overview {
    padding: 34px 0 18px;
  }

  .cfc-serve-section {
    padding: 56px 0;
  }

  .cfc-serve-section-header h2 {
    font-size: clamp(1.85rem, 8vw, 2.35rem);
  }

  .cfc-serve-editorial-lead {
    margin-bottom: 20px;
    font-size: clamp(1.34rem, 7vw, 1.78rem);
  }

  .cfc-serve-kids-feature-media {
    min-height: 232px;
  }

  .cfc-serve-worship-roles {
    font-size: 0.74rem;
  }

  .cfc-serve-safety-block {
    max-width: none;
  }

  .cfc-serve-ministry-card,
  .cfc-serve-community-card,
  .cfc-serve-bb-highlight {
    padding: 20px 18px;
  }

  .cfc-serve-bb-media {
    min-height: 240px;
  }

  .cfc-serve-bb-leader-photo {
    width: 60px;
    height: 60px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-serve.cfc-serve--animated [data-serve-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* -- Placeholders -- */
.cfc-placeholder {
  background: #f7f3ec;
  background: color-mix(in srgb, var(--cfc-light-bg) 86%, var(--cfc-white) 14%);
  border: 2px dashed var(--cfc-accent);
  border-radius: 10px;
  padding: 28px;
  text-align: center;
  color: var(--cfc-secondary);
  font-style: italic;
}

.cfc-placeholder img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  background: #dddccc;
  background: color-mix(
    in srgb,
    var(--cfc-secondary) 22%,
    var(--cfc-light-bg) 78%
  );
  display: block;
  margin: 0 auto 12px;
}

.cfc-placeholder--image img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.cfc-placeholder--map,
.cfc-placeholder--form {
  min-height: 280px;
  display: grid;
  align-items: center;
}

.cfc-contact-form-placeholder {
  margin-top: 24px;
}

.cfc-placeholder--content {
  padding: 36px;
}

/* -- Shared Layout Blocks -- */
.cfc-grid {
  display: grid;
  gap: 24px;
}

.cfc-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cfc-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 921px) {
  .cfc-grid-2,
  .cfc-grid-3 {
    grid-template-columns: 1fr;
  }
}

.cfc-card {
  background: var(--cfc-white);
  color: var(--cfc-dark-text);
  border: 1px solid #cccfb8;
  border: 1px solid
    color-mix(in srgb, var(--cfc-secondary) 38%, var(--cfc-light-bg) 62%);
  border-radius: 10px;
  padding: 26px;
  box-shadow: 0 10px 30px rgba(35, 38, 22, 0.08);
}

.cfc-card h3,
.cfc-card h4,
.cfc-card p,
.cfc-card li,
.cfc-card a {
  color: var(--cfc-dark-text);
}

.cfc-card a {
  color: var(--cfc-cta);
  font-weight: 600;
}

.cfc-card a:hover,
.cfc-card a:focus {
  color: var(--cfc-cta-hover);
}

/* -- Home Page -- */
.cfc-hero-section {
  position: relative;
  min-height: clamp(460px, 72vh, 760px);
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
}

.cfc-hero-section.cfc-section {
  padding: clamp(96px, 12vw, 160px) 0;
}

.home .cfc-hero-section.cfc-section {
  min-height: 100vh;
  min-height: 100svh;
  padding-top: clamp(132px, 16vh, 176px);
  padding-bottom: clamp(72px, 11vh, 120px);
}

.cfc-hero-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    120deg,
    rgba(35, 38, 22, 0.46) 0%,
    rgba(35, 38, 22, 0.28) 45%,
    rgba(35, 38, 22, 0.48) 100%
  );
}

.cfc-hero-slides {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.cfc-hero-slide {
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0;
  transform: scale(1.04);
  animation: cfc-hero-slide-fade 64s ease-in-out infinite;
}

.cfc-hero-slide--1 {
  background-image: url("assets/images/hero/hero-fellowship-kenny-clare.jpg");
  animation-delay: 0s;
}

.cfc-hero-slide--2 {
  background-image: url("assets/images/hero/hero-fellowship-olivia-tina-anna.jpg");
  animation-delay: 8s;
}

.cfc-hero-slide--3 {
  background-image: url("assets/images/hero/hero-fellowship-forgive-us.jpg");
  animation-delay: 16s;
}

.cfc-hero-slide--4 {
  background-image: url("assets/images/hero/hero-fellowship-2.jpg");
  animation-delay: 24s;
}

.cfc-hero-slide--5 {
  background-image: url("assets/images/hero/hero-fellowship-3.jpg");
  animation-delay: 32s;
}

.cfc-hero-slide--6 {
  background-image: url("assets/images/hero/hero-fellowship-5.jpg");
  animation-delay: 40s;
}

.cfc-hero-slide--7 {
  background-image: url("assets/images/hero/hero-fellowship-strahans.jpg");
  animation-delay: 48s;
}

.cfc-hero-slide--8 {
  background-image: url("assets/images/hero/hero-fellowship-1.jpg");
  animation-delay: 56s;
}

@keyframes cfc-hero-slide-fade {
  0% {
    opacity: 0;
    transform: scale(1.08);
  }

  3% {
    opacity: 1;
  }

  14% {
    opacity: 1;
    transform: scale(1.02);
  }

  18% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform: scale(1.08);
  }
}

.cfc-hero {
  position: relative;
  z-index: 2;
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

.cfc-hero--text-only {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.cfc-hero-title {
  margin: 0 0 14px;
  font-size: clamp(2rem, 5vw, 3.4rem);
  color: var(--cfc-white) !important;
  text-shadow:
    0 3px 12px rgba(0, 0, 0, 0.62),
    0 14px 34px rgba(0, 0, 0, 0.46);
}

.cfc-hero-subtitle {
  margin: 0 0 24px;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  max-width: 700px;
  color: var(--cfc-light-text);
  text-shadow:
    0 3px 10px rgba(0, 0, 0, 0.58),
    0 12px 28px rgba(0, 0, 0, 0.42);
}

.cfc-hero .cfc-btn {
  margin-top: 6px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
}

@media (max-width: 768px) {
  .cfc-hero-section {
    min-height: 430px;
  }

  .cfc-hero-section.cfc-section {
    padding: 88px 0;
  }

  .home .cfc-hero-section.cfc-section {
    min-height: 100svh;
    padding-top: clamp(112px, 20vw, 148px);
    padding-bottom: clamp(56px, 10vw, 88px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-hero-slide {
    animation: none;
    opacity: 0;
    transform: none;
  }

  .cfc-hero-slide--1 {
    opacity: 1;
  }
}

.cfc-quick-card .cfc-placeholder {
  margin-bottom: 18px;
}

.cfc-immersive-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  width: 100%;
}

.cfc-immersive-row .cfc-immersive-block {
  position: relative;
  min-height: clamp(360px, 36vw, 470px);
  display: flex;
  align-items: flex-end;
  border-radius: 0;
  overflow: hidden;
  isolation: isolate;
  box-shadow: none;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  cursor: default;
}

.cfc-immersive-row-section.cfc-section {
  padding: 0 !important;
}

.cfc-immersive-row a.cfc-immersive-block {
  cursor: pointer;
}

.cfc-immersive-row .cfc-immersive-block::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: transparent;
  transition: background-color 0.4s ease;
}

.cfc-immersive-row .cfc-immersive-block--welcome {
  background-image: url("assets/images/hero/hero-fellowship-4.jpg");
  background-position: 35% center;
}

.cfc-immersive-row .cfc-immersive-block--gospel {
  background-image: url("assets/images/immersive/gospel-empty-tomb.jpg");
}

.cfc-immersive-row .cfc-immersive-block--sundays {
  background-image: url("assets/images/hero/hero-fellowship-1.jpg");
}

.cfc-immersive-row .cfc-immersive-content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 40px;
  background: transparent;
  transition: background 0.4s ease;
}

.cfc-immersive-row .cfc-immersive-title {
  margin: 0;
  color: var(--cfc-white) !important;
  font-size: clamp(1.5rem, 2.25vw, 2rem);
  line-height: 1.15;
  display: inline-block;
  position: relative;
  transform: translateY(0);
  transition: transform 0.4s ease;
}

.cfc-immersive-row .cfc-immersive-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -9px;
  width: 0;
  height: 2px;
  background: var(--cfc-accent);
  transition: width 0.4s ease;
}

.cfc-immersive-row .cfc-immersive-always {
  margin: 16px 0 0;
  color: var(--cfc-light-text);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.5;
  text-wrap: balance;
}

.cfc-immersive-row .cfc-immersive-always span {
  display: block;
}

.cfc-immersive-row .cfc-immersive-body {
  margin-top: 16px;
  display: grid;
  gap: 10px;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s ease;
}

.cfc-immersive-row .cfc-immersive-body p {
  margin: 0;
  color: var(--cfc-light-text);
}

.cfc-immersive-row .cfc-reveal-step {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
}

.cfc-immersive-row .cfc-immersive-block--gospel .cfc-immersive-body p {
  font-size: 0.9rem;
  line-height: 1.58;
}

.cfc-immersive-row .cfc-immersive-block--gospel .cfc-immersive-body {
  scrollbar-width: thin;
  scrollbar-color: var(--cfc-accent) transparent;
}

.cfc-immersive-row
  .cfc-immersive-block--gospel
  .cfc-immersive-body::-webkit-scrollbar {
  width: 6px;
}

.cfc-immersive-row
  .cfc-immersive-block--gospel
  .cfc-immersive-body::-webkit-scrollbar-track {
  background: transparent;
}

.cfc-immersive-row
  .cfc-immersive-block--gospel
  .cfc-immersive-body::-webkit-scrollbar-thumb {
  background: var(--cfc-accent);
  border-radius: 999px;
}

@media (hover: hover) and (pointer: fine) {
  .cfc-immersive-row .cfc-immersive-block:hover .cfc-immersive-content {
    background: linear-gradient(
      0deg,
      rgba(35, 38, 22, 0.72) 0%,
      rgba(35, 38, 22, 0.52) 50%,
      rgba(35, 38, 22, 0) 100%
    );
  }

  .cfc-immersive-row .cfc-immersive-block:hover .cfc-immersive-title {
    transform: translateY(-10px);
  }

  .cfc-immersive-row .cfc-immersive-block:hover .cfc-immersive-title::after {
    width: 60px;
  }

  .cfc-immersive-row .cfc-immersive-block:hover .cfc-immersive-body {
    max-height: 320px;
  }

  .cfc-immersive-row .cfc-immersive-block--gospel:hover .cfc-immersive-body {
    max-height: 238px;
    padding-right: 8px;
    overflow-y: auto;
  }

  .cfc-immersive-row .cfc-immersive-block:hover .cfc-reveal-step {
    opacity: 1;
    transform: translateY(0);
  }

  .cfc-immersive-row .cfc-immersive-block:hover .cfc-reveal-step--1 {
    transition-delay: 0.1s;
  }

  .cfc-immersive-row .cfc-immersive-block:hover .cfc-reveal-step--2 {
    transition-delay: 0.2s;
  }

  .cfc-immersive-row .cfc-immersive-block:hover .cfc-reveal-step--3 {
    transition-delay: 0.3s;
  }
}

.cfc-explore-section.cfc-section {
  background: var(--cfc-light-bg);
  padding: clamp(34px, 5vw, 56px) 0 !important;
}

.cfc-explore-grid-wrap {
  width: min(1200px, calc(100% - 28px));
  margin: 0 auto;
}

.cfc-explore-label {
  margin: 0 0 22px;
  color: var(--cfc-dark-text);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-explore-grid {
  --cfc-explore-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: grid;
  grid-template-columns: 1.2fr 0.8fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 6px;
  background: var(--cfc-light-bg);
}

.cfc-explore-block {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: block;
  min-height: clamp(220px, 23vw, 300px);
  border-radius: 6px;
  background: var(--cfc-primary);
  color: var(--cfc-light-text) !important;
  text-decoration: none;
  z-index: 0;
  transition: box-shadow 0.35s var(--cfc-explore-ease);
}

.cfc-explore-block::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: var(--cfc-explore-image);
  background-position: var(--cfc-explore-position, center);
  background-repeat: no-repeat;
  background-size: cover;
  transform: scale(1);
  transition: transform 0.5s var(--cfc-explore-ease);
}

.cfc-explore-block::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.75) 0%,
    rgba(0, 0, 0, 0.45) 30%,
    rgba(0, 0, 0, 0.1) 60%,
    rgba(0, 0, 0, 0.03) 100%
  );
  transition: background 0.35s var(--cfc-explore-ease);
}

.cfc-explore-card-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 28px;
  z-index: 2;
}

.cfc-explore-block--belief {
  grid-row: 1 / 3;
  grid-column: 1;
  --cfc-explore-image: url("assets/images/explore/explore-what-we-believe-baptist-confession.png");
  --cfc-explore-position: center;
}

.cfc-explore-block--who {
  grid-row: 1;
  grid-column: 2 / 4;
  --cfc-explore-image: url("assets/images/quick-links/quick-link-who-we-are.jpg");
  --cfc-explore-position: center;
}

.cfc-explore-block--sermons {
  grid-row: 2;
  grid-column: 2;
  --cfc-explore-image: url("assets/images/explore/preaching.jpg");
  --cfc-explore-position: center;
}

.cfc-explore-block--groups {
  grid-row: 2;
  grid-column: 3;
  --cfc-explore-image: url("assets/images/explore/explore-growth-groups.jpg");
  --cfc-explore-position: center;
}

.cfc-explore-title {
  margin: 0;
  color: #fff !important;
  font-family: "Alegreya", Georgia, serif;
  font-size: clamp(1.3rem, 1.8vw, 1.55rem);
  font-weight: 800;
  line-height: 1.15;
}

.cfc-explore-subtitle {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.6);
  font-family: "Alegreya Sans", sans-serif;
  font-size: 0.8rem;
  font-weight: 500;
  font-style: normal;
  letter-spacing: 0.3px;
  line-height: 1.4;
}

.cfc-explore-subtitle::after {
  content: " \2192";
  opacity: 0;
  transition: opacity 0.25s ease;
}

.cfc-explore-block--belief .cfc-explore-title {
  font-size: clamp(1.8rem, 2.8vw, 2.2rem);
}

.cfc-explore-block:hover,
.cfc-explore-block:focus-visible {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.cfc-explore-block:hover::before,
.cfc-explore-block:focus-visible::before {
  transform: scale(1.04);
}

.cfc-explore-block:hover::after,
.cfc-explore-block:focus-visible::after {
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.8) 0%,
    rgba(0, 0, 0, 0.5) 30%,
    rgba(0, 0, 0, 0.15) 60%,
    rgba(0, 0, 0, 0.05) 100%
  );
}

.cfc-explore-block:hover .cfc-explore-subtitle::after,
.cfc-explore-block:focus-visible .cfc-explore-subtitle::after {
  opacity: 1;
}

.cfc-explore-block:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 2px rgba(242, 235, 221, 0.7),
    0 0 0 4px rgba(35, 38, 22, 0.9);
}

.cfc-contact-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr 1fr;
}

.cfc-visit-us {
  position: relative;
  width: 100%;
  min-height: 70vh;
  display: flex;
  align-items: center;
  background-image: url("assets/images/visitus.jpg");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  overflow: hidden;
  isolation: isolate;
}

.cfc-visit-us::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(35, 38, 22, 0.8);
  transition: background-color 0.6s ease;
}

.cfc-visit-us:hover::before {
  background: rgba(35, 38, 22, 0.75);
}

.cfc-visit-us-inner {
  position: relative;
  z-index: 1;
  width: min(1100px, 100%);
  margin: 0 auto;
  padding: 80px 40px;
  box-sizing: border-box;
}

.cfc-visit-us-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.cfc-visit-us-label {
  margin: 0 0 12px;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.75rem;
}

.cfc-visit-us-title {
  margin: 0;
  color: #f2ebdd !important;
  font-family: "Alegreya", "Georgia", serif;
  font-weight: 800;
  font-size: clamp(2.5rem, 4.1vw, 3rem);
}

.cfc-visit-us-rule {
  display: block;
  width: 60px;
  height: 2px;
  background: #8b8b38;
  margin: 20px 0 30px;
}

.cfc-visit-us-line {
  margin: 0 0 8px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #f2ebdd;
  font-size: 1.05rem;
  line-height: 1.8;
}

.cfc-visit-us-line span:last-child {
  color: #f2ebdd;
}

.cfc-visit-us-prefix {
  color: #8b8b38;
  min-width: 1.2em;
  text-align: center;
  line-height: 1.8;
}

.cfc-visit-us-prefix--phone {
  color: #c8a456;
}

.cfc-visit-us-divider {
  border-top: 1px dotted rgba(168, 184, 140, 0.3);
  margin: 20px 0;
}

.cfc-visit-us-mini {
  margin: 0 0 8px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 0.75rem;
}

.cfc-visit-us-line--strong {
  font-weight: 700;
}

.cfc-visit-us-cta {
  margin-top: 30px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: transparent !important;
  border-color: var(--cfc-white) !important;
  color: var(--cfc-white) !important;
  padding: 14px 32px !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 0 !important;
}

.cfc-visit-us-cta:hover,
.cfc-visit-us-cta:focus {
  background: var(--cfc-cta) !important;
  border-color: var(--cfc-cta) !important;
  color: var(--cfc-white) !important;
}

.cfc-visit-us-cta-arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}

.cfc-visit-us-cta:hover .cfc-visit-us-cta-arrow,
.cfc-visit-us-cta:focus .cfc-visit-us-cta-arrow {
  transform: translateX(6px);
}

.cfc-visit-us-map-frame {
  border: 2px solid #8b8b38;
  border-radius: 4px;
  overflow: hidden;
  transition: box-shadow 0.5s ease;
}

.cfc-visit-us-map-wrap:hover .cfc-visit-us-map-frame {
  box-shadow: 0 0 20px rgba(139, 139, 56, 0.15);
}

.cfc-visit-us-map-frame iframe {
  width: 100%;
  height: 350px;
  border: 0;
  display: block;
}

.cfc-visit-us-caption {
  margin: 10px 0 0;
  color: #7a8450;
  font-size: 0.8rem;
  font-style: italic;
}

@media (max-width: 921px) {
  .cfc-immersive-row {
    grid-template-columns: 1fr;
  }

  .cfc-contact-grid {
    grid-template-columns: 1fr;
  }

  .cfc-visit-us-inner {
    padding: 68px 32px;
  }

  .cfc-visit-us-grid {
    gap: 44px;
  }
}

@media (max-width: 768px) {
  .cfc-immersive-row .cfc-immersive-block {
    min-height: 340px;
  }

  .cfc-immersive-row .cfc-immersive-block::before {
    background: transparent;
  }

  .cfc-immersive-row .cfc-immersive-content {
    padding: 34px;
  }

  .cfc-immersive-row .cfc-immersive-title {
    transform: none;
  }

  .cfc-immersive-row .cfc-immersive-title::after {
    width: 60px;
  }

  .cfc-immersive-row .cfc-immersive-body {
    max-height: none;
    overflow: visible;
  }

  .cfc-immersive-row .cfc-immersive-block--gospel .cfc-immersive-body {
    padding-right: 0;
  }

  .cfc-immersive-row .cfc-reveal-step {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .cfc-explore-grid-wrap {
    width: min(1200px, calc(100% - 20px));
  }

  .cfc-explore-label {
    text-align: center;
    margin-bottom: 16px;
  }

  .cfc-explore-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 6px;
  }

  .cfc-explore-block {
    min-height: 180px;
  }

  .cfc-explore-card-content {
    padding: 24px;
  }

  .cfc-explore-title {
    font-size: clamp(1.2rem, 6vw, 1.45rem);
  }

  .cfc-explore-block--belief .cfc-explore-title {
    font-size: clamp(1.45rem, 7vw, 1.8rem);
  }

  .cfc-explore-subtitle {
    font-size: 0.78rem;
  }

  .cfc-explore-block:hover,
  .cfc-explore-block:focus-visible {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
  }

  .cfc-visit-us {
    min-height: auto;
    background-attachment: scroll;
  }

  .cfc-visit-us-inner {
    padding: 50px 20px;
  }

  .cfc-visit-us-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .cfc-visit-us-info,
  .cfc-visit-us-map-wrap {
    text-align: center;
  }

  .cfc-visit-us-rule {
    margin-left: auto;
    margin-right: auto;
  }

  .cfc-visit-us-line {
    justify-content: center;
    text-align: center;
  }

  .cfc-visit-us-divider {
    margin: 18px auto;
    max-width: 320px;
  }

  .cfc-visit-us-cta {
    margin-left: auto;
    margin-right: auto;
  }

  .cfc-visit-us-map-frame iframe {
    height: 280px;
  }

  .cfc-visit-us-caption {
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-explore-block,
  .cfc-explore-block::before,
  .cfc-explore-block::after,
  .cfc-explore-title,
  .cfc-explore-subtitle,
  .cfc-explore-subtitle::after {
    transition: none !important;
    animation: none !important;
  }

  .cfc-explore-block:hover,
  .cfc-explore-block:focus-visible {
    box-shadow: none;
  }

  .cfc-visit-us {
    background-attachment: scroll;
  }

  .cfc-visit-us::before,
  .cfc-visit-us:hover::before {
    background: rgba(35, 38, 22, 0.8);
    transition: none;
  }

  .cfc-visit-us-map-frame,
  .cfc-visit-us-cta-arrow {
    transition: none;
  }
}

.cfc-contact-list {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
}

.cfc-contact-list li {
  margin-bottom: 10px;
}

.cfc-map-embed {
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid
    color-mix(in srgb, var(--cfc-secondary) 28%, var(--cfc-light-bg) 72%);
  box-shadow: 0 10px 30px rgba(35, 38, 22, 0.12);
  min-height: 320px;
}

.cfc-map-embed iframe {
  width: 100%;
  min-height: 320px;
  height: 100%;
  border: 0;
  display: block;
}

/* -- About Subnavigation -- */
.cfc-subnav {
  background: var(--cfc-white);
  border: 1px solid #d7d8c5;
  border: 1px solid
    color-mix(in srgb, var(--cfc-secondary) 28%, var(--cfc-light-bg) 72%);
  border-radius: 10px;
  padding: 20px;
}

.cfc-subnav h3 {
  margin-top: 0;
  margin-bottom: 12px;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.cfc-subnav ul {
  margin: 0;
  padding-left: 18px;
}

.cfc-subnav li {
  margin-bottom: 8px;
}

/* -- CFC Kids Page -- */
.cfc-kids {
  background: #f2ebdd;
  color: #232616;
}

.cfc-kids h1,
.cfc-kids h2,
.cfc-kids h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-kids-container {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-kids-hero {
  position: relative;
  min-height: 55vh;
  display: flex;
  align-items: center;
  background: #232616;
  padding: clamp(96px, 11vw, 148px) 0 clamp(66px, 9vw, 110px);
  overflow: hidden;
}

.cfc-kids-hero.has-image {
  background-image: var(--cfc-kids-hero-image);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.cfc-kids-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 38, 22, 0.7);
}

.cfc-kids-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 800px;
  text-align: left;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
}

.cfc-kids-hero-inner.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.cfc-kids-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-kids-hero-title {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.5rem, 5.6vw, 3.5rem);
  line-height: 1.05;
}

.cfc-kids-hero-tagline {
  margin: 8px 0 0;
  max-width: 550px;
  color: #d4956a;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.15rem;
  font-style: italic;
  line-height: 1.75;
}

.cfc-kids-hero-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
}

.cfc-kids-badge {
  margin: 0;
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 3px;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.4px;
}

.cfc-kids-badge--time {
  background: #8b8b38;
}

.cfc-kids-badge--ages {
  background: #d4956a;
}

.cfc-kids-hero-placeholder {
  margin-top: 24px;
  max-width: 420px;
}

.cfc-kids-philosophy {
  background: #f2ebdd;
  padding: 80px 0;
}

.cfc-kids-philosophy-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 70px;
  align-items: center;
}

.cfc-kids-section-label {
  margin: 0 0 12px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-kids-philosophy-main h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.9rem, 4.2vw, 2.2rem);
  line-height: 1.2;
}

.cfc-kids-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px 0 24px;
  background: #8b8b38;
}

.cfc-kids-rule--center {
  margin-left: auto;
  margin-right: auto;
}

.cfc-kids-philosophy-main p {
  margin: 0;
  color: rgba(35, 38, 22, 0.85);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-kids-pullquote {
  margin: 28px 0 0;
  border-left: 3px solid #d4956a;
  padding-left: 20px;
  color: #d4956a;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.3rem;
  font-style: italic;
  font-weight: 800;
  line-height: 1.55;
}

.cfc-kids-values {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cfc-kids-value-card {
  margin: 0;
  background: #ffffff;
  border-radius: 4px;
  padding: 24px 28px;
  border-left: 3px solid #8b8b38;
}

.cfc-kids-value-card h3 {
  margin: 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif !important;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-kids-value-card p {
  margin: 6px 0 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.9rem;
  line-height: 1.7;
}

.cfc-kids-value-card--safe {
  border-left-color: #8b8b38;
}

.cfc-kids-value-card--safe h3 {
  color: #8b8b38;
}

.cfc-kids-value-card--rooted {
  border-left-color: #d4956a;
}

.cfc-kids-value-card--rooted h3 {
  color: #d4956a;
}

.cfc-kids-value-card--joyful {
  border-left-color: #a8b88c;
}

.cfc-kids-value-card--joyful h3 {
  color: #a8b88c;
}

.cfc-kids-curriculum {
  background: #ffffff;
  padding: 70px 0;
}

.cfc-kids-curriculum .cfc-kids-container {
  max-width: 900px;
}

.cfc-kids-curriculum-grid {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 40px;
  align-items: center;
}

.cfc-kids-curriculum-visual {
  min-height: 220px;
  border-radius: 4px;
  background: #232616;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.cfc-kids-curriculum-the {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-kids-curriculum-title {
  margin: 4px 0 0;
  color: #f2ebdd;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.6rem;
  font-style: italic;
  font-weight: 800;
  line-height: 1.2;
}

.cfc-kids-curriculum-rule {
  display: block;
  width: 30px;
  height: 2px;
  margin: 12px auto;
  background: #8b8b38;
}

.cfc-kids-curriculum-label {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-kids-curriculum-content p {
  margin: 0;
  color: rgba(35, 38, 22, 0.85);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-kids-curriculum-content p + p {
  margin-top: 16px;
}

.cfc-kids-curriculum-content a {
  color: #d4956a;
}

.cfc-kids-curriculum-link a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
}

.cfc-kids-curriculum-link a span {
  display: inline-block;
  transform: translateX(0);
  transition: transform 0.3s ease;
}

.cfc-kids-curriculum-link a:hover span,
.cfc-kids-curriculum-link a:focus-visible span {
  transform: translateX(6px);
}

.cfc-kids-register {
  background: #ffffff;
  padding: 56px 0;
}

.cfc-kids-anchor {
  display: block;
  position: relative;
  top: -90px;
  visibility: hidden;
}

.cfc-kids-register-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(30px, 3vw, 44px);
  align-items: start;
}

.cfc-kids-register-copy h2 {
  margin: 0;
  color: #232616;
  font-size: clamp(1.85rem, 3.6vw, 2.35rem);
  line-height: 1.14;
}

.cfc-kids-register-copy p {
  margin: 10px 0 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.78;
  max-width: 620px;
}

.cfc-kids-register-form-card {
  background: #f2ebdd;
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 8px;
  padding: clamp(26px, 2.6vw, 36px) clamp(24px, 2.4vw, 34px);
}

.cfc-kids-register-form-card .cfc-contact-form-row {
  gap: 16px;
  align-items: start;
}

.cfc-kids-register-form-card .cfc-form-field {
  margin-bottom: 14px;
}

.cfc-kids-register-parent-row .cfc-form-label,
.cfc-kids-child-row .cfc-form-label,
.cfc-kids-register-visit-row .cfc-form-label {
  min-height: 2.2em;
  line-height: 1.3;
  display: flex;
  align-items: flex-end;
}

.cfc-kids-register-parent-row {
  grid-template-columns: 5fr 3fr 2fr;
}

.cfc-kids-children-group {
  display: grid;
  gap: 16px;
  margin-top: 8px;
}

.cfc-kids-child-entry {
  border: 1px solid rgba(35, 38, 22, 0.1);
  border-radius: 4px;
  background: #ffffff;
  padding: 16px 16px 12px;
}

.cfc-kids-child-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.cfc-kids-child-label {
  margin: 0;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-kids-remove-child {
  border: 0;
  background: transparent;
  color: rgba(35, 38, 22, 0.52);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  cursor: pointer;
  padding: 0;
}

.cfc-kids-remove-child:hover,
.cfc-kids-remove-child:focus-visible {
  color: #d4956a;
}

.cfc-kids-child-row {
  grid-template-columns: 7fr 7fr 6fr;
}

.cfc-kids-child-row .cfc-form-field {
  margin-bottom: 8px;
}

.cfc-kids-child-notes-field {
  grid-column: 1 / -1;
}

.cfc-kids-child-notes,
.cfc-kids-additional-notes {
  min-height: 86px;
}

.cfc-kids-add-child {
  margin: 10px 0 22px;
  border: 0;
  background: transparent;
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  cursor: pointer;
  padding: 0;
}

.cfc-kids-add-child:hover,
.cfc-kids-add-child:focus-visible {
  color: #c47f54;
}

.cfc-kids-register-visit-row {
  grid-template-columns: 1fr 1fr;
}

.cfc-kids-register-privacy {
  margin: 14px 0 0;
  color: rgba(35, 38, 22, 0.55);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.76rem;
  line-height: 1.5;
}

.cfc-kids-serve {
  background: #232616;
  padding: clamp(58px, 6.5vw, 84px) 0;
  scroll-margin-top: 92px;
}

.cfc-kids-serve .cfc-kids-container {
  max-width: 980px;
}

.cfc-kids-serve-shell {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.cfc-kids-serve-kicker {
  margin: 0 0 12px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-kids-serve-shell h2 {
  margin: 0;
  color: #ffffff !important;
  font-size: clamp(1.45rem, 3vw, 1.86rem);
  line-height: 1.2;
}

.cfc-kids-serve-summary {
  margin: 14px auto 0;
  max-width: 620px;
  color: rgba(242, 235, 221, 0.66);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.96rem;
  line-height: 1.82;
}

.cfc-kids-serve-toggle {
  margin-top: 24px;
  border: 1px solid rgba(139, 139, 56, 0.5);
  border-radius: 2px;
  background: transparent;
  color: #8b8b38;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 32px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    color 0.22s ease,
    border-color 0.22s ease,
    background-color 0.22s ease;
}

.cfc-js .cfc-kids-serve-toggle {
  display: inline-flex;
}

.cfc-kids-serve-toggle:hover,
.cfc-kids-serve-toggle:focus-visible,
.cfc-kids-serve-toggle.is-open {
  border-color: #8b8b38;
  background: rgba(139, 139, 56, 0.08);
  color: #a7b487;
}

.cfc-kids-serve-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1ch;
  transition: transform 0.22s ease;
}

.cfc-kids-serve-toggle.is-open .cfc-kids-serve-toggle-icon {
  transform: scale(1.05);
}

.cfc-kids-serve-reveal {
  max-height: none;
  opacity: 1;
  margin-top: 24px;
  overflow: visible;
}

.cfc-js .cfc-kids-serve-reveal {
  max-height: 0;
  opacity: 0;
  margin-top: 0;
  overflow: hidden;
  transition:
    max-height 0.5s ease,
    opacity 0.36s ease,
    margin-top 0.36s ease;
}

.cfc-js .cfc-kids-serve-reveal.is-open {
  opacity: 1;
  margin-top: 24px;
}

.cfc-kids-serve-reveal-inner {
  max-width: 520px;
  margin: 0 auto;
  text-align: left;
}

.cfc-kids-serve-close {
  margin: 0 0 10px auto;
  border: 0;
  background: transparent;
  color: rgba(242, 235, 221, 0.62);
  display: none;
  align-items: center;
  gap: 4px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  padding: 0;
}

.cfc-js .cfc-kids-serve-close {
  display: inline-flex;
}

.cfc-kids-serve-close:hover,
.cfc-kids-serve-close:focus-visible {
  color: #a7b487;
}

.cfc-kids-serve-form-card {
  background: rgba(242, 235, 221, 0.04);
  border: 1px solid rgba(242, 235, 221, 0.16);
  border-radius: 4px;
  padding: 22px 20px 18px;
}

.cfc-kids-serve-form-card .cfc-form-field {
  margin-bottom: 14px;
}

.cfc-kids-serve-form-card .cfc-form-label {
  margin-bottom: 6px;
  color: rgba(242, 235, 221, 0.48);
  font-size: 0.62rem;
  letter-spacing: 1.5px;
}

.cfc-kids-serve-form-card .cfc-form-required {
  color: rgba(167, 180, 135, 0.92);
}

.cfc-kids-serve-form-card .cfc-form-input,
.cfc-kids-serve-form-card .cfc-form-select,
.cfc-kids-serve-form-card .cfc-form-textarea {
  background: rgba(242, 235, 221, 0.06);
  border: 1px solid rgba(242, 235, 221, 0.15);
  color: #f2ebdd;
}

.cfc-kids-serve-form-card .cfc-form-input:focus,
.cfc-kids-serve-form-card .cfc-form-select:focus,
.cfc-kids-serve-form-card .cfc-form-textarea:focus {
  border-color: rgba(139, 139, 56, 0.65);
  background: rgba(242, 235, 221, 0.09);
  box-shadow: 0 0 0 3px rgba(139, 139, 56, 0.18);
}

.cfc-kids-serve-form-card .cfc-form-field--select::after {
  color: rgba(167, 180, 135, 0.92);
}

.cfc-kids-serve-form-card .cfc-form-input::placeholder,
.cfc-kids-serve-form-card .cfc-form-textarea::placeholder {
  color: rgba(242, 235, 221, 0.32);
}

.cfc-kids-serve-form-card .cfc-form-textarea {
  min-height: 120px;
}

.cfc-kids-serve-form-card .cfc-contact-error {
  margin-bottom: 16px;
  border-left-color: #8b8b38;
  background: rgba(139, 139, 56, 0.16);
  color: #f2ebdd;
  font-size: 0.8rem;
}

.cfc-kids-serve-form-card .cfc-form-submit {
  border-radius: 2px;
  background: #8b8b38;
  color: #232616;
  font-size: 0.72rem;
  letter-spacing: 1.5px;
}

.cfc-kids-serve-form-card .cfc-form-submit:hover,
.cfc-kids-serve-form-card .cfc-form-submit:focus-visible {
  background: #9a9a42;
}

.cfc-kids-serve-form-card .cfc-form-submit.is-loading::before {
  color: #232616;
}

.cfc-kids-serve-form-card .cfc-form-submit.is-loading::after {
  border-color: rgba(35, 38, 22, 0.3);
  border-top-color: #232616;
}

.cfc-kids-serve-form-card .cfc-contact-success {
  padding: 0;
  text-align: left;
}

.cfc-kids-serve-form-card .cfc-contact-success-check {
  margin: 0 0 16px;
  background: #8b8b38;
  color: #232616;
}

.cfc-kids-serve-form-card .cfc-contact-success h2 {
  color: #f2ebdd !important;
  font-size: clamp(1.2rem, 2.6vw, 1.36rem);
}

.cfc-kids-serve-form-card .cfc-contact-success p {
  color: rgba(242, 235, 221, 0.68);
  font-size: 0.95rem;
  line-height: 1.65;
}

.cfc-kids-serve-form-card .cfc-contact-success a {
  color: #8b8b38;
  font-size: 0.82rem;
  letter-spacing: 0.5px;
}

.cfc-kids-serve-form-card .cfc-contact-success a:hover,
.cfc-kids-serve-form-card .cfc-contact-success a:focus-visible {
  color: #a7b487;
}

.cfc-kids-leader {
  background: #f2ebdd;
  padding: 60px 0;
}

.cfc-kids-leader .cfc-kids-container {
  max-width: 800px;
}

.cfc-kids-leader-inner {
  display: flex;
  align-items: center;
  gap: 30px;
}

.cfc-kids-leader-photo {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
  border: 3px solid #8b8b38;
  display: block;
}

.cfc-kids-leader-photo-placeholder {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 3px solid #8b8b38;
  background: #232616;
  color: #8b8b38;
  display: grid;
  place-items: center;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.8rem;
  font-weight: 800;
}

.cfc-kids-leader-label {
  margin: 0;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-kids-leader-content h2 {
  margin: 6px 0 0;
  color: #232616 !important;
  font-size: 1.4rem;
}

.cfc-kids-leader-content p {
  margin: 4px 0 0;
  color: rgba(35, 38, 22, 0.7);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.9rem;
  line-height: 1.7;
}

.cfc-kids-leader-link a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-weight: 700;
  text-decoration: none;
}

.cfc-kids-leader-link a span {
  display: inline-block;
  transform: translateX(0);
  transition: transform 0.3s ease;
}

.cfc-kids-leader-link a:hover span,
.cfc-kids-leader-link a:focus-visible span {
  transform: translateX(6px);
}

.cfc-kids-faq {
  background: #ffffff;
  padding: 70px 0;
}

.cfc-kids-faq .cfc-kids-container {
  max-width: 800px;
}

.cfc-kids-faq-inner h2 {
  margin: 0;
  text-align: center;
  color: #232616 !important;
  font-size: clamp(1.6rem, 3vw, 1.8rem);
}

.cfc-kids-faq-accordion {
  margin-top: 10px;
}

.cfc-kids-faq-item {
  border-bottom: 1px solid rgba(35, 38, 22, 0.1);
}

.cfc-kids-faq-item:first-child {
  border-top: 1px solid rgba(35, 38, 22, 0.1);
}

.cfc-kids-faq-question-wrap {
  margin: 0;
}

.cfc-kids-faq-trigger {
  width: 100%;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  margin: 0;
  padding: 18px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  text-align: left;
}

.cfc-kids-faq-question {
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.cfc-kids-faq-indicator {
  width: 22px;
  text-align: center;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
}

.cfc-kids-faq-indicator::before {
  content: "+";
}

.cfc-kids-faq-trigger:hover .cfc-kids-faq-question,
.cfc-kids-faq-trigger:focus-visible .cfc-kids-faq-question,
.cfc-kids-faq-trigger[aria-expanded="true"] .cfc-kids-faq-question {
  color: #8b8b38;
}

.cfc-kids-faq-trigger[aria-expanded="true"] .cfc-kids-faq-indicator::before {
  content: "-";
}

.cfc-kids-faq-panel {
  padding: 12px 0 20px;
}

.cfc-kids-faq-panel p {
  margin: 0;
  color: rgba(35, 38, 22, 0.82);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.8;
}

/* FAQ / accordion controls should stay neutral, not CTA-styled */
.cfc-accordion-trigger,
.cfc-faq-toggle,
.wp-block-yoast-faq-block .schema-faq-question,
details summary {
  background: transparent !important;
  color: #232616 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(35, 38, 22, 0.08) !important;
  box-shadow: none !important;
}

.cfc-accordion-trigger:hover,
.cfc-accordion-trigger:focus-visible,
.cfc-faq-toggle:hover,
.cfc-faq-toggle:focus-visible,
.wp-block-yoast-faq-block .schema-faq-question:hover,
details summary:hover {
  color: #8b8b38 !important;
}

.cfc-kids-sundays {
  background: #232616;
  padding: 60px 0;
}

.cfc-kids-sundays .cfc-kids-container {
  max-width: 900px;
}

.cfc-kids-sundays-label {
  margin: 0 0 30px;
  text-align: center;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-kids-sundays-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.cfc-kids-sundays-card {
  display: block;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(242, 235, 221, 0.1);
  border-radius: 4px;
  padding: 24px;
  text-align: center;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease;
}

.cfc-kids-sundays-card h3 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.1rem;
}

.cfc-kids-sundays-card p {
  margin: 4px 0 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.cfc-kids-sundays-card:hover,
.cfc-kids-sundays-card:focus {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(139, 139, 56, 0.3);
  text-decoration: none;
}

.cfc-kids.cfc-kids--animated [data-kids-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
  transition-delay: var(--cfc-kids-delay, 0s);
}

.cfc-kids.cfc-kids--animated [data-kids-reveal="left"] {
  transform: translateX(-20px);
}

.cfc-kids.cfc-kids--animated [data-kids-reveal="right"] {
  transform: translateX(20px);
}

.cfc-kids.cfc-kids--animated [data-kids-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 768px) {
  .cfc-kids-container,
  .cfc-kids-philosophy-grid,
  .cfc-kids-curriculum-grid {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-kids-hero {
    min-height: 50vh;
    padding: clamp(92px, 13vw, 126px) 0 50px;
  }

  .cfc-kids-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-kids-hero-title {
    font-size: 2.5rem;
  }

  .cfc-kids-hero-badges {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .cfc-kids-philosophy,
  .cfc-kids-curriculum,
  .cfc-kids-register,
  .cfc-kids-serve,
  .cfc-kids-leader,
  .cfc-kids-faq,
  .cfc-kids-sundays {
    padding: 50px 0;
  }

  .cfc-kids-philosophy-grid,
  .cfc-kids-curriculum-grid,
  .cfc-kids-register-grid,
  .cfc-kids-sundays-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .cfc-kids-serve {
    padding: 50px 0;
  }

  .cfc-kids-serve-shell {
    max-width: 100%;
  }

  .cfc-kids-serve-summary {
    max-width: 640px;
    font-size: 0.95rem;
    line-height: 1.72;
  }

  .cfc-kids-serve-toggle {
    width: 100%;
    justify-content: center;
  }

  .cfc-js .cfc-kids-serve-toggle {
    display: flex;
  }

  .cfc-kids-serve-reveal.is-open {
    margin-top: 18px;
  }

  .cfc-kids-serve-reveal-inner {
    max-width: 100%;
  }

  .cfc-kids-serve-form-card {
    padding: 18px 16px 14px;
  }

  .cfc-kids-register-parent-row,
  .cfc-kids-register-visit-row {
    grid-template-columns: 1fr;
  }

  .cfc-kids-child-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cfc-kids-register-parent-row .cfc-form-label,
  .cfc-kids-child-row .cfc-form-label,
  .cfc-kids-register-visit-row .cfc-form-label {
    min-height: 0;
    display: block;
  }

  .cfc-kids-child-age,
  .cfc-kids-child-notes-field {
    grid-column: 1 / -1;
  }

  .cfc-kids-pullquote {
    border-left: 0;
    border-top: 3px solid #d4956a;
    padding-left: 0;
    padding-top: 16px;
    text-align: center;
  }

  .cfc-kids-curriculum-visual {
    min-height: 160px;
  }

  .cfc-kids-leader-inner {
    flex-direction: column;
    text-align: center;
  }

  .cfc-kids-leader-content p {
    margin-left: auto;
    margin-right: auto;
    max-width: 460px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-kids-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-kids-hero-inner,
  .cfc-kids.cfc-kids--animated [data-kids-reveal],
  .cfc-kids-curriculum-link a span,
  .cfc-kids-leader-link a span,
  .cfc-js .cfc-kids-serve-reveal,
  .cfc-kids-serve-toggle-icon {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* -- Nursery Page -- */
.cfc-nursery {
  background: #f2ebdd;
  color: #232616;
}

.cfc-nursery h1,
.cfc-nursery h2,
.cfc-nursery h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-nursery-container {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-nursery-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 70vh;
}

.cfc-nursery-hero-media {
  position: relative;
  background: #d5c9b9;
  background-size: cover;
  background-position: center;
  min-height: 100%;
}

.cfc-nursery-hero-media.no-image {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.cfc-nursery-media-placeholder {
  width: min(420px, 100%);
}

.cfc-nursery-hero-panel {
  background: #232616;
  display: flex;
  align-items: center;
  padding: 60px 60px 60px 80px;
}

.cfc-nursery-hero-content {
  max-width: 560px;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
}

.cfc-nursery-hero-content.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.cfc-nursery-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-nursery-hero-content h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.6rem, 5.5vw, 3.5rem);
  line-height: 1.05;
}

.cfc-nursery-hero-tagline {
  margin: 8px 0 0;
  color: #d4956a;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.15rem;
  font-style: italic;
  line-height: 1.72;
}

.cfc-nursery-hero-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
}

.cfc-nursery-badge {
  margin: 0;
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 3px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.35px;
}

.cfc-nursery-badge--time {
  background: #8b8b38;
  color: #232616;
}

.cfc-nursery-badge--ages {
  background: #d4956a;
  color: #ffffff;
}

.cfc-nursery-steps {
  background: #f2ebdd;
  padding: 80px 0;
}

.cfc-nursery-steps .cfc-nursery-container {
  max-width: 900px;
}

.cfc-nursery-steps h2 {
  margin: 0;
  text-align: center;
  color: #232616 !important;
  font-size: clamp(1.75rem, 3.2vw, 2rem);
}

.cfc-nursery-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 14px 0 24px;
  background: #8b8b38;
}

.cfc-nursery-rule--center {
  margin-left: auto;
  margin-right: auto;
}

.cfc-nursery-steps-track {
  position: relative;
  margin-top: 50px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
}

.cfc-nursery-steps-connector {
  position: absolute;
  top: 24px;
  left: calc((100% - 80px) / 6);
  right: calc((100% - 80px) / 6);
  height: 2px;
  z-index: 0;
  background: linear-gradient(to right, #8b8b38, #d4956a, #a8b88c);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 1s ease-out;
}

.cfc-nursery-steps-connector.is-visible {
  transform: scaleX(1);
}

.cfc-nursery-step {
  position: relative;
  z-index: 1;
  text-align: center;
}

.cfc-nursery-step-circle {
  width: 48px;
  height: 48px;
  margin: 0 auto 16px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1.1rem;
  font-weight: 800;
}

.cfc-nursery-step-circle--1 {
  background: #8b8b38;
  color: #ffffff;
}

.cfc-nursery-step-circle--2 {
  background: #d4956a;
  color: #ffffff;
}

.cfc-nursery-step-circle--3 {
  background: #a8b88c;
  color: #232616;
}

.cfc-nursery-step h3 {
  margin: 0 0 8px;
  color: #232616 !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif !important;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 2px;
}

.cfc-nursery-step p {
  margin: 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.9rem;
  line-height: 1.75;
}

.cfc-nursery-photo-strip {
  position: relative;
  height: 45vh;
  min-height: 320px;
  background: #232616;
  overflow: hidden;
}

.cfc-nursery-photo-strip.has-image {
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.cfc-nursery-photo-strip::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.15) 0%,
    rgba(35, 38, 22, 0) 30%
  );
}

.cfc-nursery-photo-strip.no-image {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.cfc-nursery-photo-strip-placeholder {
  width: min(420px, 100%);
  position: relative;
  z-index: 1;
}

.cfc-nursery-provide {
  background: #ffffff;
  padding: 70px 0;
}

.cfc-nursery-provide-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 60px;
  align-items: center;
}

.cfc-nursery-provide-media img {
  width: 100%;
  display: block;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(35, 38, 22, 0.08);
}

.cfc-nursery-provide-placeholder {
  border-radius: 8px;
}

.cfc-nursery-provide-content h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.55rem, 2.8vw, 1.8rem);
}

.cfc-nursery-provide-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.cfc-nursery-provide-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
}

.cfc-nursery-provide-item:last-child {
  margin-bottom: 0;
}

.cfc-nursery-provide-dot {
  width: 8px;
  height: 8px;
  margin-top: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
}

.cfc-nursery-provide-item--citron .cfc-nursery-provide-dot {
  background: #8b8b38;
}

.cfc-nursery-provide-item--apricot .cfc-nursery-provide-dot {
  background: #d4956a;
}

.cfc-nursery-provide-item--spring .cfc-nursery-provide-dot {
  background: #a8b88c;
}

.cfc-nursery-provide-item--moss .cfc-nursery-provide-dot {
  background: #7a8450;
}

.cfc-nursery-provide-item p {
  margin: 0;
  color: rgba(35, 38, 22, 0.85);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.7;
}

.cfc-nursery-note {
  background: #f2ebdd;
  padding: 60px 0;
}

.cfc-nursery-note .cfc-nursery-container {
  max-width: 700px;
}

.cfc-nursery-note-inner {
  text-align: center;
}

.cfc-nursery-note-dots {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-bottom: 24px;
}

.cfc-nursery-note-dots span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #d4956a;
}

.cfc-nursery-note-inner h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.4rem, 2.6vw, 1.6rem);
}

.cfc-nursery-note-inner p {
  margin: 14px 0 0;
  color: rgba(35, 38, 22, 0.75);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  font-style: italic;
  line-height: 1.9;
}

.cfc-nursery-note-link a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-style: normal;
  font-weight: 700;
  text-decoration: none;
}

.cfc-nursery-note-link {
  margin-top: 22px !important;
  color: rgba(35, 38, 22, 0.82) !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif !important;
  font-size: 0.9rem !important;
  font-style: normal !important;
  line-height: 1.6 !important;
}

.cfc-nursery-note-link a span {
  display: inline-block;
  transform: translateX(0);
  transition: transform 0.3s ease;
}

.cfc-nursery-note-link a:hover span,
.cfc-nursery-note-link a:focus-visible span {
  transform: translateX(6px);
}

.cfc-nursery-sundays {
  background: #232616;
  padding: 60px 0;
}

.cfc-nursery-sundays .cfc-nursery-container {
  max-width: 900px;
}

.cfc-nursery-sundays-label {
  margin: 0 0 30px;
  text-align: center;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-nursery-sundays-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.cfc-nursery-sundays-card {
  display: block;
  padding: 24px;
  border: 1px solid rgba(242, 235, 221, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  text-align: center;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease;
}

.cfc-nursery-sundays-card h3 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.1rem;
}

.cfc-nursery-sundays-card p {
  margin: 4px 0 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}

.cfc-nursery-sundays-card:hover,
.cfc-nursery-sundays-card:focus {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(139, 139, 56, 0.3);
  text-decoration: none;
}

.cfc-nursery.cfc-nursery--animated [data-nursery-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
  transition-delay: var(--cfc-nursery-delay, 0s);
}

.cfc-nursery.cfc-nursery--animated [data-nursery-reveal="provide-left"] {
  transform: translateX(-20px);
}

.cfc-nursery.cfc-nursery--animated [data-nursery-reveal="provide-right"],
.cfc-nursery.cfc-nursery--animated [data-nursery-reveal="provide-item"] {
  transform: translateX(20px);
}

.cfc-nursery.cfc-nursery--animated [data-nursery-reveal="steps-line"] {
  opacity: 1;
  transform: none;
}

.cfc-nursery.cfc-nursery--animated [data-nursery-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 768px) {
  .cfc-nursery-container,
  .cfc-nursery-provide-grid {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-nursery-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .cfc-nursery-hero-media {
    min-height: 45vh;
  }

  .cfc-nursery-hero-panel {
    padding: 40px 24px;
  }

  .cfc-nursery-hero-content h1 {
    font-size: 2.5rem;
  }

  .cfc-nursery-hero-badges {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .cfc-nursery-steps,
  .cfc-nursery-provide,
  .cfc-nursery-note,
  .cfc-nursery-sundays {
    padding: 50px 0;
  }

  .cfc-nursery-steps-track {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 36px;
  }

  .cfc-nursery-steps-track::before {
    content: "";
    position: absolute;
    top: 24px;
    bottom: 24px;
    left: 23px;
    width: 2px;
    background: linear-gradient(to bottom, #8b8b38, #d4956a, #a8b88c);
  }

  .cfc-nursery-steps-connector {
    display: none;
  }

  .cfc-nursery-step {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 16px;
    text-align: left;
    align-items: flex-start;
  }

  .cfc-nursery-step-circle {
    margin: 0;
  }

  .cfc-nursery-step-body h3 {
    margin: 0 0 8px;
  }

  .cfc-nursery-photo-strip {
    height: 35vh;
    min-height: 240px;
  }

  .cfc-nursery-photo-strip.has-image {
    background-attachment: scroll;
  }

  .cfc-nursery-provide-grid,
  .cfc-nursery-sundays-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-nursery-photo-strip.has-image {
    background-attachment: scroll;
  }

  .cfc-nursery-hero-content,
  .cfc-nursery.cfc-nursery--animated [data-nursery-reveal],
  .cfc-nursery-note-link a span {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }

  .cfc-nursery-steps-connector {
    transform: scaleX(1) !important;
  }
}

/* -- Prayer Night Page -- */
.cfc-prayer-night {
  background: #232616;
  color: #f2ebdd;
}

.cfc-prayer-night h1,
.cfc-prayer-night h2,
.cfc-prayer-night h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-prayer-container {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-prayer-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #232616;
  padding: clamp(108px, 11vw, 156px) 0 clamp(74px, 8.5vw, 108px);
  overflow: hidden;
}

.cfc-prayer-hero.has-image {
  background-size: cover;
  background-position: center;
}

.cfc-prayer-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 38, 22, 0.82);
}

.cfc-prayer-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 700px;
}

.cfc-prayer-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-prayer-hero h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.8rem, 6.6vw, 3.8rem);
  letter-spacing: 1px;
  line-height: 1.02;
}

.cfc-prayer-rule {
  display: block;
  margin-left: auto;
  margin-right: auto;
  background: #8b8b38;
}

.cfc-prayer-rule--hero {
  width: 50px;
  height: 2px;
  margin-top: 24px;
  margin-bottom: 24px;
}

.cfc-prayer-schedule {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-prayer-hero-tagline {
  margin: 16px 0 0;
  color: #d4956a;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.2rem;
  font-style: italic;
  line-height: 1.6;
}

.cfc-prayer-hero-placeholder {
  margin: 22px auto 0;
  max-width: 420px;
}

.cfc-prayer-scripture {
  padding: 60px 0;
}

.cfc-prayer-scripture-frame {
  position: relative;
  max-width: 650px;
  margin: 0 auto;
  border: 1px solid rgba(139, 139, 56, 0.2);
  padding: 40px 50px;
  text-align: center;
}

.cfc-prayer-corner {
  position: absolute;
  color: rgba(139, 139, 56, 0.5);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  background: #232616;
  padding: 0 4px;
}

.cfc-prayer-corner--tl {
  top: -8px;
  left: -8px;
}

.cfc-prayer-corner--tr {
  top: -8px;
  right: -8px;
}

.cfc-prayer-corner--bl {
  bottom: -8px;
  left: -8px;
}

.cfc-prayer-corner--br {
  bottom: -8px;
  right: -8px;
}

.cfc-prayer-fleuron {
  margin: 0 0 16px;
  color: rgba(139, 139, 56, 0.75);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.2rem;
  line-height: 1;
}

.cfc-prayer-verse {
  margin: 0 auto;
  max-width: 500px;
  color: rgba(242, 235, 221, 0.85);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.15rem;
  font-style: italic;
  line-height: 2;
}

.cfc-prayer-reference {
  margin: 16px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-prayer-evening {
  background: linear-gradient(180deg, #232616 0%, #2a2e1c 50%, #232616 100%);
  padding: 80px 0;
}

.cfc-prayer-evening-inner {
  max-width: 900px;
}

.cfc-prayer-evening-inner h2 {
  margin: 0;
  text-align: center;
  color: #f2ebdd !important;
  font-size: 2rem;
}

.cfc-prayer-rule--evening {
  width: 40px;
  height: 2px;
  margin-top: 16px;
  margin-bottom: 50px;
}

.cfc-prayer-moment-cards {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.cfc-prayer-moment-card {
  margin: 0;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(139, 139, 56, 0.12);
  border-radius: 4px;
  padding: 36px 40px;
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 30px;
  align-items: start;
  transition:
    background-color 0.5s ease,
    border-color 0.5s ease;
}

.cfc-prayer-moment-card:hover,
.cfc-prayer-moment-card:focus-within {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(139, 139, 56, 0.25);
}

.cfc-prayer-moment-marker {
  text-align: center;
}

.cfc-prayer-moment-numeral {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya", Georgia, serif;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1;
}

.cfc-prayer-moment-line {
  display: block;
  width: 1px;
  height: 30px;
  margin: 8px auto 0;
  background: rgba(139, 139, 56, 0.3);
}

.cfc-prayer-moment-content h3 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.4rem;
  line-height: 1.25;
}

.cfc-prayer-moment-content p {
  margin: 8px 0 0;
  color: rgba(242, 235, 221, 0.78);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.9;
}

.cfc-prayer-photo {
  padding: 60px 0;
}

.cfc-prayer-photo-inner {
  max-width: 800px;
  text-align: center;
}

.cfc-prayer-photo-image,
.cfc-prayer-photo-placeholder {
  width: 100%;
  display: block;
}

.cfc-prayer-photo-image {
  max-height: 450px;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid rgba(139, 139, 56, 0.15);
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3);
}

.cfc-prayer-photo-placeholder .cfc-placeholder {
  min-height: 280px;
  border-radius: 4px;
  border-color: rgba(139, 139, 56, 0.35);
  background: rgba(255, 255, 255, 0.02);
  color: rgba(242, 235, 221, 0.68);
}

.cfc-prayer-photo-caption {
  margin: 14px 0 0;
  color: rgba(168, 184, 140, 0.6);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-prayer-why {
  background: #f2ebdd;
  color: #232616;
  padding: 70px 0;
}

.cfc-prayer-why .cfc-prayer-container {
  max-width: 900px;
}

.cfc-prayer-why-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 60px;
  align-items: start;
}

.cfc-prayer-why-label {
  margin: 0 0 12px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-prayer-why-main h2 {
  margin: 0;
  color: #232616 !important;
  font-size: 2rem;
  line-height: 1.25;
}

.cfc-prayer-rule--why {
  width: 40px;
  height: 2px;
  margin-top: 16px;
  margin-bottom: 24px;
}

.cfc-prayer-why-main > p {
  margin: 0;
  color: rgba(35, 38, 22, 0.85);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-prayer-why-quote {
  margin: 28px 0 0;
  border-left: 3px solid #d4956a;
  padding-left: 20px;
  color: #d4956a;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.25rem;
  font-style: italic;
  font-weight: 800;
  line-height: 1.6;
}

.cfc-prayer-why-cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cfc-prayer-why-card {
  margin: 0;
  background: #ffffff;
  border-radius: 4px;
  padding: 22px 26px;
  border-left: 3px solid #8b8b38;
}

.cfc-prayer-why-card h3 {
  margin: 0;
  color: #8b8b38 !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif !important;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-prayer-why-card p {
  margin: 6px 0 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.88rem;
  line-height: 1.75;
}

.cfc-prayer-why-card--apricot {
  border-left-color: #d4956a;
}

.cfc-prayer-why-card--apricot h3 {
  color: #d4956a !important;
}

.cfc-prayer-why-card--spring {
  border-left-color: #a8b88c;
}

.cfc-prayer-why-card--spring h3 {
  color: #7a8450 !important;
}

.cfc-prayer-invitation {
  background: #232616;
  padding: 70px 0;
}

.cfc-prayer-invitation-inner {
  max-width: 600px;
  text-align: center;
}

.cfc-prayer-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
}

.cfc-prayer-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8b8b38;
}

.cfc-prayer-invitation h2 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.8rem;
}

.cfc-prayer-rule--invitation {
  width: 40px;
  height: 2px;
  margin-top: 16px;
  margin-bottom: 24px;
  background: #8b8b38;
}

.cfc-prayer-invitation-text {
  margin: 0;
  color: rgba(242, 235, 221, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.95;
}

.cfc-prayer-next-box {
  margin-top: 40px;
  display: inline-block;
  border-radius: 4px;
  border: 1px solid rgba(139, 139, 56, 0.15);
  background: rgba(255, 255, 255, 0.04);
  padding: 28px 36px;
}

.cfc-prayer-next-label {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-prayer-next-time {
  margin: 8px 0 0;
  color: #f2ebdd;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.45;
}

.cfc-prayer-invitation-cta {
  margin: 24px 0 0;
}

.cfc-prayer-invitation-cta a {
  color: #d4956a;
  text-decoration: none;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.4px;
}

.cfc-prayer-invitation-cta a span {
  display: inline-block;
  transform: translateX(0);
  transition: transform 0.35s ease;
}

.cfc-prayer-invitation-cta a:hover span,
.cfc-prayer-invitation-cta a:focus-visible span {
  transform: translateX(6px);
}

.cfc-prayer-sundays {
  background: #232616;
  padding: 50px 0;
}

.cfc-prayer-sundays-inner {
  max-width: 900px;
  border-top: 1px solid rgba(139, 139, 56, 0.1);
  padding-top: 34px;
}

.cfc-prayer-sundays-label {
  margin: 0 0 24px;
  text-align: center;
  color: rgba(168, 184, 140, 0.6);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-prayer-sundays-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.cfc-prayer-sundays-card {
  display: block;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(242, 235, 221, 0.08);
  border-radius: 4px;
  padding: 22px 20px;
  text-align: center;
  text-decoration: none;
  transition:
    background-color 0.5s ease,
    border-color 0.5s ease;
}

.cfc-prayer-sundays-card h3 {
  margin: 0;
  color: rgba(242, 235, 221, 0.8) !important;
  font-size: 1.05rem;
}

.cfc-prayer-sundays-card p {
  margin: 5px 0 0;
  color: rgba(168, 184, 140, 0.5);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 1.7px;
  text-transform: uppercase;
}

.cfc-prayer-sundays-card:hover,
.cfc-prayer-sundays-card:focus {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(139, 139, 56, 0.22);
  text-decoration: none;
}

.cfc-prayer-night.cfc-prayer-night--animated [data-prayer-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition-property: opacity, transform;
  transition-duration: 0.8s;
  transition-timing-function: ease;
  transition-delay: var(--cfc-prayer-delay, 0s);
}

.cfc-prayer-night.cfc-prayer-night--animated [data-prayer-reveal="scripture"],
.cfc-prayer-night.cfc-prayer-night--animated [data-prayer-reveal="photo"],
.cfc-prayer-night.cfc-prayer-night--animated
  [data-prayer-reveal="evening-heading"] {
  transform: none;
}

.cfc-prayer-night.cfc-prayer-night--animated
  [data-prayer-reveal="moment-card"] {
  transform: translateY(20px);
  transition-duration: 0.7s;
}

.cfc-prayer-night.cfc-prayer-night--animated [data-prayer-reveal="why-left"] {
  transform: translateX(-20px);
}

.cfc-prayer-night.cfc-prayer-night--animated [data-prayer-reveal="why-card"] {
  transform: translateX(20px);
}

.cfc-prayer-night.cfc-prayer-night--animated [data-prayer-reveal="nav-card"] {
  transition-duration: 0.7s;
}

.cfc-prayer-night.cfc-prayer-night--animated [data-prayer-reveal].is-visible {
  opacity: 1;
  transform: none;
}

@media (max-width: 768px) {
  .cfc-prayer-container {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-prayer-hero {
    min-height: 55vh;
    padding: clamp(96px, 14vw, 132px) 0 52px;
  }

  .cfc-prayer-hero h1 {
    font-size: 2.8rem;
  }

  .cfc-prayer-hero-tagline {
    font-size: 1.05rem;
  }

  .cfc-prayer-scripture,
  .cfc-prayer-evening,
  .cfc-prayer-photo,
  .cfc-prayer-why,
  .cfc-prayer-invitation,
  .cfc-prayer-sundays {
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .cfc-prayer-scripture-frame {
    padding: 28px 24px;
  }

  .cfc-prayer-corner {
    font-size: 0.85rem;
  }

  .cfc-prayer-corner--tl {
    top: -7px;
    left: -7px;
  }

  .cfc-prayer-corner--tr {
    top: -7px;
    right: -7px;
  }

  .cfc-prayer-corner--bl {
    bottom: -7px;
    left: -7px;
  }

  .cfc-prayer-corner--br {
    bottom: -7px;
    right: -7px;
  }

  .cfc-prayer-verse {
    max-width: 400px;
    font-size: 1rem;
  }

  .cfc-prayer-evening-inner h2 {
    font-size: 1.7rem;
  }

  .cfc-prayer-moment-card {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 28px 24px;
  }

  .cfc-prayer-moment-marker {
    text-align: center;
  }

  .cfc-prayer-moment-line {
    height: 24px;
  }

  .cfc-prayer-photo-image {
    max-height: 280px;
  }

  .cfc-prayer-why-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .cfc-prayer-why-quote {
    border-left: 0;
    border-top: 3px solid #d4956a;
    padding-left: 0;
    padding-top: 14px;
    text-align: center;
  }

  .cfc-prayer-next-box {
    display: block;
    width: 100%;
    padding: 24px 20px;
  }

  .cfc-prayer-sundays-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-prayer-night.cfc-prayer-night--animated [data-prayer-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .cfc-prayer-invitation-cta a span {
    transition: none !important;
    transform: none !important;
  }
}

/* -- Youth Group Page -- */
.cfc-youth {
  background: #f2ebdd;
  color: #232616;
}

.cfc-youth h1,
.cfc-youth h2,
.cfc-youth h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-youth-container {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-youth-hero {
  position: relative;
  min-height: 65vh;
  display: flex;
  align-items: center;
  background: #232616;
  padding: clamp(96px, 10vw, 136px) 0 clamp(64px, 8vw, 98px);
  overflow: hidden;
}

.cfc-youth-hero.has-image {
  background-size: cover;
  background-position: center 40%;
}

.cfc-youth-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(35, 38, 22, 0.85) 0%,
    rgba(35, 38, 22, 0.5) 60%,
    rgba(35, 38, 22, 0.75) 100%
  );
}

.cfc-youth-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 600px;
  text-align: left;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
}

.cfc-youth-hero-inner.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.cfc-youth-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-youth-hero h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.8rem, 6.2vw, 4rem);
  line-height: 1.03;
}

.cfc-youth-hero-tagline {
  margin: 10px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-youth-hero-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
}

.cfc-youth-hero-badge {
  margin: 0;
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 3px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.35px;
}

.cfc-youth-hero-badge--time {
  background: #8b8b38;
  color: #232616;
}

.cfc-youth-hero-badge--age {
  background: #d4956a;
  color: #ffffff;
}

.cfc-youth-hero-placeholder {
  margin-top: 24px;
  max-width: 420px;
}

.cfc-youth-mosaic-wrap {
  background: #f2ebdd;
}

.cfc-youth-mosaic {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 260px 260px;
  gap: 4px;
}

.cfc-youth-mosaic-item {
  position: relative;
  overflow: hidden;
  background: #232616;
}

.cfc-youth-mosaic-item--worship {
  grid-column: 1;
  grid-row: 1 / 3;
}

.cfc-youth-mosaic-item--bicycle {
  grid-column: 2;
  grid-row: 1;
}

.cfc-youth-mosaic-item--stage {
  grid-column: 3;
  grid-row: 1;
}

.cfc-youth-mosaic-item--table {
  grid-column: 2 / 4;
  grid-row: 2;
}

.cfc-youth-mosaic-item img,
.cfc-youth-mosaic-placeholder {
  width: 100%;
  height: 100%;
  display: block;
}

.cfc-youth-mosaic-item img {
  object-fit: cover;
}

.cfc-youth-mosaic-placeholder .cfc-placeholder {
  height: 100%;
}

.cfc-youth-mosaic-caption {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(35, 38, 22, 0.4);
  color: #f2ebdd;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 0.4s ease;
}

.cfc-youth-mosaic-item:hover .cfc-youth-mosaic-caption,
.cfc-youth-mosaic-item:focus-within .cfc-youth-mosaic-caption {
  opacity: 1;
}

.cfc-youth-heart {
  background: #f2ebdd;
  padding: 80px 0;
}

.cfc-youth-heart .cfc-youth-container {
  max-width: 1000px;
}

.cfc-youth-heart-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 70px;
  align-items: start;
}

.cfc-youth-section-label {
  margin: 0 0 12px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-youth-heart-main h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.7rem, 3.6vw, 2rem);
  line-height: 1.25;
}

.cfc-youth-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px 0 24px;
  background: #8b8b38;
}

.cfc-youth-rule--center {
  margin-left: auto;
  margin-right: auto;
}

.cfc-youth-heart-main p {
  margin: 0;
  color: rgba(35, 38, 22, 0.85);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-youth-pullquote {
  margin: 28px 0 0;
  border-left: 3px solid #d4956a;
  padding-left: 20px;
  color: #d4956a;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.3rem;
  font-style: italic;
  font-weight: 800;
  line-height: 1.55;
}

.cfc-youth-heart-cards {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.cfc-youth-heart-card {
  margin: 0;
  background: #ffffff;
  border-radius: 4px;
  padding: 28px 32px;
  border-left: 3px solid #8b8b38;
}

.cfc-youth-heart-card--monthly {
  border-left-color: #d4956a;
}

.cfc-youth-heart-card-label {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-youth-heart-card--monthly .cfc-youth-heart-card-label {
  color: #d4956a;
}

.cfc-youth-heart-card h3 {
  margin: 6px 0 0;
  color: #232616 !important;
  font-size: 1.3rem;
}

.cfc-youth-heart-card p {
  margin: 10px 0 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.9rem;
  line-height: 1.75;
}

.cfc-youth-leader {
  background: #ffffff;
  padding: 60px 0;
}

.cfc-youth-leader .cfc-youth-container {
  max-width: 800px;
}

.cfc-youth-leader-inner {
  display: flex;
  align-items: center;
  gap: 30px;
}

.cfc-youth-leader-photo {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
  border: 3px solid #8b8b38;
  display: block;
}

.cfc-youth-leader-photo-placeholder {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 3px solid #8b8b38;
  background: #232616;
  color: #8b8b38;
  display: grid;
  place-items: center;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.8rem;
  font-weight: 800;
}

.cfc-youth-leader-label {
  margin: 0;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-youth-leader-content h2 {
  margin: 6px 0 0;
  color: #232616 !important;
  font-size: 1.4rem;
}

.cfc-youth-leader-content h2 a {
  color: inherit !important;
  text-decoration: none;
}

.cfc-youth-leader-content h2 a:hover,
.cfc-youth-leader-content h2 a:focus-visible {
  color: #7a8450 !important;
}

.cfc-youth-leader-role {
  margin: 2px 0 0;
  color: rgba(35, 38, 22, 0.6);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.85rem;
  line-height: 1.6;
}

.cfc-youth-leader-contact {
  margin: 8px 0 0;
  color: rgba(35, 38, 22, 0.75);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  line-height: 1.65;
}

.cfc-youth-leader-contact a {
  color: #d4956a;
  text-decoration: none;
  font-weight: 700;
}

.cfc-youth-leader-contact a span {
  display: inline-block;
  transform: translateX(0);
  transition: transform 0.3s ease;
}

.cfc-youth-leader-contact a:hover span,
.cfc-youth-leader-contact a:focus-visible span {
  transform: translateX(6px);
}

.cfc-youth-parents {
  background: #f2ebdd;
  padding: 70px 0;
}

.cfc-youth-parents .cfc-youth-container {
  max-width: 800px;
}

.cfc-youth-parents-inner {
  text-align: center;
}

.cfc-youth-parents-inner h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.6rem, 3vw, 1.8rem);
}

.cfc-youth-parents-note {
  margin: 0 auto;
  max-width: 650px;
  color: rgba(35, 38, 22, 0.75);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  font-style: italic;
  line-height: 1.9;
}

.cfc-youth-parents-values {
  margin: 40px auto 0;
  max-width: 700px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.cfc-youth-parents-value {
  text-align: center;
}

.cfc-youth-parents-value h3 {
  margin: 0;
  color: #8b8b38 !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif !important;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-youth-value-rule {
  display: block;
  width: 20px;
  height: 2px;
  margin: 8px auto 10px;
  background: #8b8b38;
}

.cfc-youth-parents-value p {
  margin: 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.9rem;
  line-height: 1.7;
}

.cfc-youth-sundays {
  background: #232616;
  padding: 60px 0;
}

.cfc-youth-sundays .cfc-youth-container {
  max-width: 900px;
}

.cfc-youth-sundays-label {
  margin: 0 0 30px;
  text-align: center;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-youth-sundays-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.cfc-youth-sundays-card {
  display: block;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(242, 235, 221, 0.1);
  border-radius: 4px;
  padding: 24px;
  text-align: center;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease;
}

.cfc-youth-sundays-card h3 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.1rem;
}

.cfc-youth-sundays-card p {
  margin: 4px 0 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.cfc-youth-sundays-card:hover,
.cfc-youth-sundays-card:focus {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(139, 139, 56, 0.3);
  text-decoration: none;
}

.cfc-youth.cfc-youth--animated [data-youth-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
  transition-delay: var(--cfc-youth-delay, 0s);
}

.cfc-youth.cfc-youth--animated [data-youth-reveal="mosaic"] {
  transform: scale(0.98);
}

.cfc-youth.cfc-youth--animated [data-youth-reveal="heart-left"] {
  transform: translateX(-20px);
}

.cfc-youth.cfc-youth--animated [data-youth-reveal="heart-card"] {
  transform: translateX(20px);
}

.cfc-youth.cfc-youth--animated [data-youth-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

@media (max-width: 768px) {
  .cfc-youth-container,
  .cfc-youth-heart-grid {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-youth-hero {
    min-height: 55vh;
    padding: clamp(92px, 13vw, 126px) 0 50px;
  }

  .cfc-youth-hero::before {
    background: rgba(35, 38, 22, 0.75);
  }

  .cfc-youth-hero h1 {
    font-size: 2.8rem;
  }

  .cfc-youth-hero-badges {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .cfc-youth-mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: 200px 200px;
    gap: 3px;
  }

  .cfc-youth-mosaic-item--worship {
    grid-column: 1;
    grid-row: 1;
  }

  .cfc-youth-mosaic-item--bicycle {
    grid-column: 2;
    grid-row: 1;
  }

  .cfc-youth-mosaic-item--stage {
    grid-column: 1;
    grid-row: 2;
  }

  .cfc-youth-mosaic-item--table {
    grid-column: 2;
    grid-row: 2;
  }

  .cfc-youth-mosaic-caption {
    inset: auto auto 10px 10px;
    width: auto;
    height: auto;
    padding: 6px 10px;
    border-radius: 3px;
    background: rgba(35, 38, 22, 0.65);
    font-size: 0.65rem;
    letter-spacing: 2px;
    opacity: 1;
  }

  .cfc-youth-heart,
  .cfc-youth-leader,
  .cfc-youth-parents,
  .cfc-youth-sundays {
    padding: 50px 0;
  }

  .cfc-youth-heart-grid,
  .cfc-youth-parents-values,
  .cfc-youth-sundays-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .cfc-youth-pullquote {
    border-left: 0;
    border-top: 3px solid #d4956a;
    padding-left: 0;
    padding-top: 16px;
    text-align: center;
  }

  .cfc-youth-leader-inner {
    flex-direction: column;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-youth-hero-inner,
  .cfc-youth.cfc-youth--animated [data-youth-reveal],
  .cfc-youth-leader-contact a span {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* -- CFC Course Page -- */
.cfc-course {
  background: #f2ebdd;
  color: #232616;
}

.cfc-course h1,
.cfc-course h2,
.cfc-course h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-course-container {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-course-hero {
  position: relative;
  min-height: 50vh;
  background: #232616;
  display: flex;
  align-items: center;
  padding: clamp(92px, 11vw, 148px) 0 clamp(64px, 9vw, 108px);
  overflow: hidden;
}

.cfc-course-hero.has-image {
  background-image: var(--cfc-course-hero-image);
  background-size: cover;
  background-position: center 28%;
  background-attachment: fixed;
}

.cfc-course-hero.has-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    170deg,
    rgba(35, 38, 22, 0.5) 0%,
    rgba(35, 38, 22, 0.66) 42%,
    rgba(35, 38, 22, 0.84) 100%
  );
  pointer-events: none;
}

.cfc-course-hero .cfc-course-container {
  position: relative;
  z-index: 1;
}

.cfc-course-hero-inner {
  max-width: 800px;
  text-align: left;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
}

.cfc-course-hero-inner.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.cfc-course-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.75rem;
  font-weight: 800;
}

.cfc-course-hero-title {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.5rem, 5.5vw, 3.5rem);
  line-height: 1.08;
}

.cfc-course-time-badge {
  display: inline-block;
  margin: 16px 0 0;
  padding: 6px 16px;
  border-radius: 3px;
  background: #8b8b38;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.cfc-course-hero-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 24px 0 30px;
  background: #8b8b38;
}

.cfc-course-hero-description {
  margin: 0;
  max-width: 600px;
  color: rgba(242, 235, 221, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.1rem;
  line-height: 1.9;
}

.cfc-course-feature {
  background: #f2ebdd;
  padding: 80px 0;
}

.cfc-course-feature-grid {
  width: min(1000px, calc(100% - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 4fr);
  gap: 60px;
  align-items: start;
}

.cfc-course-feature-main {
  min-width: 0;
}

.cfc-course-feature-label {
  margin: 0 0 12px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.7rem;
  font-weight: 800;
}

.cfc-course-feature-title {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.9rem, 4.5vw, 2.4rem);
  line-height: 1.2;
}

.cfc-course-feature-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px 0 20px;
  background: #8b8b38;
}

.cfc-course-feature-description {
  margin: 0 0 24px;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.85;
}

.cfc-course-schedule {
  border-top: 1px solid rgba(35, 38, 22, 0.08);
}

.cfc-course-session {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px solid rgba(35, 38, 22, 0.08);
}

.cfc-course-session:last-child {
  border-bottom: 0;
}

.cfc-course-session.is-current {
  border-left: 3px solid #8b8b38;
  padding-left: 14px;
}

.cfc-course-session-date {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.cfc-course-session-topic {
  margin: 0;
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.6;
}

.cfc-course-session.is-current .cfc-course-session-topic {
  font-weight: 700;
}

.cfc-course-visual {
  min-width: 0;
}

.cfc-course-visual-image-wrap {
  border-radius: 4px;
  overflow: hidden;
  border: 2px solid rgba(139, 139, 56, 0.2);
  box-shadow: 0 4px 24px rgba(35, 38, 22, 0.1);
}

.cfc-course-visual-image-wrap img {
  width: 100%;
  display: block;
  height: auto;
}

.cfc-course-visual-fallback {
  position: relative;
  min-height: 300px;
  border-radius: 4px;
  background: #232616;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 50px 40px;
  overflow: hidden;
}

.cfc-course-visual-watermark {
  position: absolute;
  inset: 0;
  margin: auto;
  width: min(90%, 420px);
  color: rgba(242, 235, 221, 0.08);
  font-family: "Alegreya", Georgia, serif;
  font-size: clamp(2rem, 6vw, 3rem);
  font-weight: 800;
  font-style: normal;
  line-height: 1.08;
  text-align: center;
  transform: rotate(-3deg);
  pointer-events: none;
}

.cfc-course-visual-center {
  position: relative;
  z-index: 1;
  text-align: center;
}

.cfc-course-visual-star {
  margin: 0 0 16px;
  color: #8b8b38;
  font-size: 1.5rem;
  line-height: 1;
}

.cfc-course-visual-label {
  margin: 0;
  color: rgba(242, 235, 221, 0.55);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 4px;
  text-transform: uppercase;
}

.cfc-course-visual-title {
  margin: 16px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(1.2rem, 2.4vw, 1.4rem);
  font-style: italic;
  line-height: 1.3;
}

.cfc-course-visual-time {
  margin: 12px 0 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.5px;
}

.cfc-course-library {
  background: #ffffff;
  padding: 70px 0;
  border-top: 1px solid rgba(35, 38, 22, 0.06);
}

.cfc-course-library-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 28px;
}

.cfc-course-library-current,
.cfc-course-library-catalogue {
  background: #f2ebdd;
  border-radius: 6px;
  padding: 30px;
}

.cfc-course-library-label {
  margin: 0 0 12px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.68rem;
  font-weight: 800;
}

.cfc-course-library-current h2,
.cfc-course-library-catalogue h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.75rem, 3.4vw, 2.2rem);
  line-height: 1.18;
}

.cfc-course-library-rule {
  display: block;
  width: 42px;
  height: 2px;
  margin: 14px 0 18px;
  background: #8b8b38;
}

.cfc-course-library-intro {
  margin: 0 0 18px;
  color: rgba(35, 38, 22, 0.76);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.8;
}

.cfc-course-embed-wrap {
  width: 100%;
  border-radius: 6px;
  border: 1px solid rgba(35, 38, 22, 0.08);
  overflow: hidden;
}

.cfc-course-embed-wrap iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: none;
}

.cfc-course-catalogue-list {
  display: grid;
  gap: 6px;
}

.cfc-course-catalogue-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  background: #ffffff;
  border-radius: 6px;
  padding: 13px 16px;
  border-left: 3px solid transparent;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-left-color 0.2s ease;
}

.cfc-course-catalogue-row:hover {
  transform: translateX(2px);
  box-shadow: 0 2px 12px rgba(35, 38, 22, 0.06);
  border-left-color: #8b8b38;
}

.cfc-course-catalogue-main {
  min-width: 0;
}

.cfc-course-catalogue-title {
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.98rem;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: none;
}

.cfc-course-catalogue-title:hover,
.cfc-course-catalogue-title:focus-visible {
  color: #8b8b38;
}

.cfc-course-catalogue-meta {
  margin: 4px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: rgba(35, 38, 22, 0.45);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.74rem;
  letter-spacing: 0.2px;
}

.cfc-course-catalogue-meta span + span::before {
  content: "·";
  margin-right: 8px;
}

.cfc-course-catalogue-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border: 1px solid rgba(139, 139, 56, 0.3);
  border-radius: 3px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.cfc-course-catalogue-action:hover,
.cfc-course-catalogue-action:focus-visible {
  background: rgba(139, 139, 56, 0.08);
  border-color: rgba(139, 139, 56, 0.55);
  color: #8b8b38;
}

.cfc-course-expect {
  background: #ffffff;
  padding: 60px 0;
}

.cfc-course-expect-grid {
  width: min(900px, calc(100% - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
}

.cfc-course-expect-item {
  text-align: center;
}

.cfc-course-expect-label {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 3px;
}

.cfc-course-expect-rule {
  display: block;
  width: 20px;
  height: 2px;
  margin: 10px auto 14px;
  background: #8b8b38;
}

.cfc-course-expect-text {
  margin: 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.9rem;
  line-height: 1.7;
}

.cfc-sundays-nav {
  background: #232616;
  padding: 60px 0;
}

.cfc-sundays-nav .cfc-course-container {
  max-width: 900px;
}

.cfc-sundays-nav-label {
  margin: 0 0 30px;
  text-align: center;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-sundays-nav-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.cfc-sundays-nav-card {
  display: block;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(242, 235, 221, 0.1);
  border-radius: 4px;
  padding: 24px;
  text-align: center;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease;
}

.cfc-sundays-nav-card h3 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.1rem;
}

.cfc-sundays-nav-card p {
  margin: 4px 0 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.cfc-sundays-nav-card:hover,
.cfc-sundays-nav-card:focus {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(139, 139, 56, 0.3);
  text-decoration: none;
}

.cfc-course.cfc-course--animated [data-course-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
  transition-delay: var(--cfc-course-delay, 0s);
}

.cfc-course.cfc-course--animated [data-course-reveal="left"] {
  transform: translateX(-20px);
}

.cfc-course.cfc-course--animated [data-course-reveal="right"] {
  transform: translateX(20px);
}

.cfc-course.cfc-course--animated [data-course-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 1024px) and (min-width: 769px) {
  .cfc-course-feature-grid {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .cfc-course-container,
  .cfc-course-feature-grid,
  .cfc-course-expect-grid {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-course-hero {
    padding: clamp(92px, 13vw, 126px) 0 50px;
  }

  .cfc-course-hero.has-image {
    background-attachment: scroll;
    background-position: center 28%;
  }

  .cfc-course-hero-title {
    font-size: 2.5rem;
  }

  .cfc-course-feature,
  .cfc-course-library,
  .cfc-course-expect,
  .cfc-sundays-nav {
    padding: 50px 0;
  }

  .cfc-course-feature-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .cfc-course-visual-fallback {
    min-height: 200px;
    padding: 30px;
  }

  .cfc-course-session {
    grid-template-columns: 60px 1fr;
  }

  .cfc-course-expect-grid,
  .cfc-sundays-nav-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .cfc-course-library-current,
  .cfc-course-library-catalogue {
    padding: 22px 20px;
  }

  .cfc-course-catalogue-row {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px 14px;
  }

  .cfc-course-catalogue-action {
    justify-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-course-hero-inner,
  .cfc-course.cfc-course--animated [data-course-reveal] {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Our History Page -- */
.cfc-history {
  background: #f2ebdd;
  color: #232616;
  overflow-x: clip;
}

.cfc-history h1,
.cfc-history h2,
.cfc-history h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-history-container {
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
}

.cfc-history-hero {
  position: relative;
  background: #232616;
  min-height: 55vh;
  padding: clamp(92px, 12vw, 150px) 0 60px;
  text-align: center;
  overflow: hidden;
}

.cfc-history-hero.has-image {
  background-image: var(--cfc-history-hero-image);
  background-size: cover;
  background-position: center 35%;
  background-attachment: fixed;
}

.cfc-history-hero.has-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(35, 38, 22, 0.48) 0%,
    rgba(35, 38, 22, 0.64) 40%,
    rgba(35, 38, 22, 0.84) 100%
  );
  pointer-events: none;
}

.cfc-history-hero .cfc-history-container {
  position: relative;
  z-index: 1;
}

.cfc-history-hero-inner {
  max-width: 800px;
}

.cfc-history-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-history-hero-title {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.5rem, 5.5vw, 3.5rem);
  line-height: 1.08;
}

.cfc-history-hero-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 24px auto 30px;
  background: #8b8b38;
}

.cfc-history-range {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya", Georgia, serif;
  font-size: clamp(1.18rem, 2.8vw, 1.5rem);
  font-weight: 800;
  letter-spacing: 4px;
  text-transform: uppercase;
}

.cfc-history-hero-intro {
  margin: 16px 0 0;
  color: rgba(242, 235, 221, 0.7);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.1rem;
  font-style: italic;
  line-height: 1.8;
}

.cfc-history-decade-nav {
  margin-top: 40px;
  padding-bottom: 60px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 18px 32px;
}

.cfc-history-decade-link {
  position: relative;
  display: inline-block;
  color: rgba(242, 235, 221, 0.4);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    color 0.3s ease,
    opacity 0.3s ease;
}

.cfc-history-decade-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 0;
  height: 2px;
  background: #8b8b38;
  transition: width 0.3s ease;
}

.cfc-history-decade-link:hover,
.cfc-history-decade-link:focus,
.cfc-history-decade-link.is-active {
  color: #8b8b38;
  opacity: 1;
  text-decoration: none;
}

.cfc-history-decade-link:hover::after,
.cfc-history-decade-link:focus::after,
.cfc-history-decade-link.is-active::after {
  width: 100%;
}

.cfc-history-timeline-section {
  background: #f2ebdd;
  padding: 80px 0;
  position: relative;
}

.cfc-timeline {
  position: relative;
  padding-bottom: 24px;
}

.cfc-timeline-spine {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  background: rgba(139, 139, 56, 0.25);
  transform: translateX(-50%);
}

.cfc-spine-fill {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 0;
  background: rgba(139, 139, 56, 0.6);
  transition: height 0.2s linear;
}

.cfc-decade-marker {
  position: relative;
  text-align: center;
  padding: 30px 0;
  margin: 0 0 18px;
}

.cfc-decade-marker span {
  display: inline-block;
  padding: 0 20px;
  background: #f2ebdd;
  color: rgba(35, 38, 22, 0.25);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 5px;
  text-transform: uppercase;
}

.cfc-timeline-event {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 80px;
}

.cfc-timeline-event:last-child {
  margin-bottom: 24px;
}

.cfc-timeline-node-wrap {
  position: absolute;
  left: 50%;
  top: 108px;
  width: 0;
  transform: translateX(-50%);
  z-index: 2;
}

.cfc-timeline-node {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 3px solid #8b8b38;
  background: #232616;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 4px #f2ebdd;
  transition:
    background-color 0.4s ease,
    border-color 0.4s ease,
    transform 0.4s ease;
}

.cfc-timeline-node span {
  color: #f2ebdd;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  transition: color 0.4s ease;
}

.cfc-timeline-connector {
  position: absolute;
  top: 50%;
  height: 2px;
  width: 40px;
  background: rgba(139, 139, 56, 0.3);
  transform: translateY(-50%);
  transition: transform 0.35s ease;
}

.cfc-timeline-event--left .cfc-timeline-connector {
  right: 22px;
  transform-origin: right center;
}

.cfc-timeline-event--right .cfc-timeline-connector {
  left: 22px;
  transform-origin: left center;
}

.cfc-timeline-card {
  width: min(100%, 470px);
  background: #ffffff;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(35, 38, 22, 0.06);
  position: relative;
  z-index: 1;
}

.cfc-timeline-event--left .cfc-timeline-card {
  grid-column: 1;
  justify-self: end;
  margin-right: 82px;
}

.cfc-timeline-event--right .cfc-timeline-card {
  grid-column: 2;
  justify-self: start;
  margin-left: 82px;
}

.cfc-timeline-media {
  position: relative;
  height: 260px;
  background: #232616;
  overflow: hidden;
}

.cfc-timeline-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.cfc-timeline-event--1973 .cfc-timeline-media img {
  object-position: center 13%;
}

.cfc-timeline-event--1992 .cfc-timeline-media img,
.cfc-timeline-event--2006 .cfc-timeline-media img,
.cfc-timeline-event--2007 .cfc-timeline-media img {
  object-position: center 13%;
}

.cfc-timeline-media-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.3) 0%,
    rgba(35, 38, 22, 0) 50%
  );
}

.cfc-timeline-media-placeholder {
  width: 100%;
  height: 100%;
  border: 2px dashed #8b8b38;
  background: #232616;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px;
}

.cfc-timeline-media-placeholder span {
  color: #7a8450;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  font-style: italic;
}

.cfc-timeline-card-content {
  padding: 28px 32px 32px;
}

.cfc-timeline-date-label {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-timeline-card-rule {
  display: block;
  width: 30px;
  height: 2px;
  margin: 10px 0 16px;
  background: #8b8b38;
}

.cfc-timeline-description {
  margin: 0;
  color: rgba(35, 38, 22, 0.85);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.85;
}

.cfc-timeline-description a {
  color: #d4956a;
  text-decoration-color: rgba(212, 149, 106, 0.45);
}

.cfc-timeline-description a:hover,
.cfc-timeline-description a:focus {
  color: #b87333;
  text-decoration-color: #b87333;
}

.cfc-timeline-scripture-pullout {
  margin: 12px 0 0;
  padding-left: 16px;
  border-left: 2px solid #8b8b38;
}

.cfc-timeline-scripture-pullout p {
  margin: 0;
  color: #7a8450;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.96rem;
  font-style: italic;
  line-height: 1.8;
}

.cfc-timeline-event.is-active .cfc-timeline-node {
  background: #8b8b38;
  border-color: #8b8b38;
}

.cfc-timeline-event.is-active .cfc-timeline-node span {
  color: #232616;
}

.cfc-history-closing {
  background: #232616;
  padding: 80px 0;
  position: relative;
}

.cfc-history-closing-node {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #8b8b38;
  border: 3px solid #8b8b38;
  box-shadow: 0 0 0 4px #232616;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cfc-history-closing-node span {
  color: #232616;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
}

.cfc-history-closing-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-history-closing-title {
  margin: 0;
  color: #f2ebdd !important;
  font-size: clamp(1.8rem, 4.5vw, 2rem);
}

.cfc-history-closing-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 20px auto 26px;
  background: #8b8b38;
}

.cfc-history-closing-copy {
  margin: 0;
  color: rgba(242, 235, 221, 0.8);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-history-video {
  margin-top: 36px;
  position: relative;
  width: 100%;
  max-width: 640px;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.cfc-history-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.cfc-history-closing-actions {
  margin-top: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.cfc-history-closing-cta {
  min-width: 190px;
}

.cfc-history-closing-cta--primary {
  background: #d4956a !important;
  border: 1px solid #d4956a !important;
  border-radius: 4px !important;
  color: #ffffff !important;
}

.cfc-history-closing-cta--primary:hover,
.cfc-history-closing-cta--primary:focus {
  background: #c07e52 !important;
  border-color: #c07e52 !important;
  color: #ffffff !important;
}

.cfc-history-closing-cta--ghost {
  background: transparent !important;
  border: 1px solid #f2ebdd !important;
  border-radius: 4px !important;
  color: #f2ebdd !important;
}

.cfc-history-closing-cta--ghost:hover,
.cfc-history-closing-cta--ghost:focus {
  background: #f2ebdd !important;
  border-color: #f2ebdd !important;
  color: #232616 !important;
}

.cfc-history.cfc-history--animated .cfc-timeline-event .cfc-timeline-node {
  transform: scale(0.7);
}

.cfc-history.cfc-history--animated .cfc-timeline-event .cfc-timeline-connector {
  transform: translateY(-50%) scaleX(0);
}

.cfc-history.cfc-history--animated .cfc-timeline-event .cfc-timeline-card {
  opacity: 0;
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
}

.cfc-history.cfc-history--animated
  .cfc-timeline-event--left
  .cfc-timeline-card {
  transform: translateX(-30px);
}

.cfc-history.cfc-history--animated
  .cfc-timeline-event--right
  .cfc-timeline-card {
  transform: translateX(30px);
}

.cfc-history.cfc-history--animated .cfc-timeline-event .cfc-timeline-node,
.cfc-history.cfc-history--animated .cfc-timeline-event .cfc-timeline-connector {
  transition:
    transform 0.35s ease,
    background-color 0.4s ease,
    border-color 0.4s ease,
    color 0.4s ease;
}

.cfc-history.cfc-history--animated
  .cfc-timeline-event.is-visible
  .cfc-timeline-node {
  transform: scale(1);
  transition-delay: 0s;
}

.cfc-history.cfc-history--animated
  .cfc-timeline-event.is-visible
  .cfc-timeline-connector {
  transform: translateY(-50%) scaleX(1);
  transition-delay: 0.1s;
}

.cfc-history.cfc-history--animated
  .cfc-timeline-event.is-visible
  .cfc-timeline-card {
  opacity: 1;
  transform: translateX(0);
  transition-delay: 0.2s;
}

@media (max-width: 1024px) and (min-width: 769px) {
  .cfc-history-container {
    width: min(1100px, calc(100% - 56px));
  }

  .cfc-timeline-node-wrap {
    top: 92px;
  }

  .cfc-timeline-node {
    width: 38px;
    height: 38px;
    border-width: 2px;
  }

  .cfc-timeline-node span {
    font-size: 0.55rem;
  }

  .cfc-timeline-media {
    height: 220px;
  }

  .cfc-timeline-event--left .cfc-timeline-card {
    margin-right: 58px;
  }

  .cfc-timeline-event--right .cfc-timeline-card {
    margin-left: 58px;
  }

  .cfc-timeline-event--left .cfc-timeline-connector {
    right: 19px;
    width: 25px;
  }

  .cfc-timeline-event--right .cfc-timeline-connector {
    left: 19px;
    width: 25px;
  }
}

@media (max-width: 768px) {
  .cfc-history-container {
    width: min(100%, calc(100% - 40px));
  }

  .cfc-history-hero-title {
    font-size: 2.5rem;
  }

  .cfc-history-hero.has-image {
    background-attachment: scroll;
    background-position: center;
  }

  .cfc-history-range {
    letter-spacing: 3px;
  }

  .cfc-history-decade-nav {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 12px;
  }

  .cfc-history-decade-link {
    font-size: 0.64rem;
    text-align: center;
  }

  .cfc-history-timeline-section {
    padding: 60px 0;
  }

  .cfc-timeline-spine {
    left: 20px;
    transform: none;
  }

  .cfc-decade-marker {
    text-align: left;
    padding: 24px 0 18px 50px;
  }

  .cfc-decade-marker span {
    padding: 0 14px 0 0;
    letter-spacing: 3px;
    font-size: 0.74rem;
  }

  .cfc-timeline-event {
    display: block;
    margin-bottom: 50px;
    padding-left: 50px;
  }

  .cfc-timeline-node-wrap {
    left: 20px;
    top: 18px;
    transform: translateX(-50%);
  }

  .cfc-timeline-node {
    width: 38px;
    height: 38px;
    border-width: 2px;
    box-shadow: 0 0 0 3px #f2ebdd;
  }

  .cfc-timeline-node span {
    font-size: 0.54rem;
  }

  .cfc-timeline-event--left .cfc-timeline-connector,
  .cfc-timeline-event--right .cfc-timeline-connector {
    left: 19px;
    right: auto;
    width: 24px;
    transform-origin: left center;
  }

  .cfc-timeline-card,
  .cfc-timeline-event--left .cfc-timeline-card,
  .cfc-timeline-event--right .cfc-timeline-card {
    width: 100%;
    margin: 0;
    box-shadow: none;
    border-left: 3px solid #8b8b38;
  }

  .cfc-timeline-media {
    height: 200px;
  }

  .cfc-timeline-card-content {
    padding: 24px;
  }

  .cfc-history.cfc-history--animated .cfc-timeline-event .cfc-timeline-card {
    transform: translateY(20px);
  }

  .cfc-history.cfc-history--animated
    .cfc-timeline-event.is-visible
    .cfc-timeline-card {
    transform: translateY(0);
  }

  .cfc-history-closing {
    padding: 68px 0;
  }

  .cfc-history-closing-actions {
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-spine-fill,
  .cfc-history-decade-link,
  .cfc-history-decade-link::after,
  .cfc-timeline-node,
  .cfc-timeline-connector,
  .cfc-timeline-card {
    transition: none !important;
  }

  .cfc-history.cfc-history--animated .cfc-timeline-event .cfc-timeline-node,
  .cfc-history.cfc-history--animated
    .cfc-timeline-event
    .cfc-timeline-connector,
  .cfc-history.cfc-history--animated .cfc-timeline-event .cfc-timeline-card {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Our Leaders Page -- */
.cfc-leaders {
  background: #f2ebdd;
  color: #232616;
}

.cfc-leaders h1,
.cfc-leaders h2,
.cfc-leaders h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-leaders-container {
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
}

.cfc-leaders-hero {
  position: relative;
  min-height: 50vh;
  background: #232616;
  display: flex;
  align-items: center;
  padding: clamp(90px, 12vw, 145px) 0 clamp(56px, 8vw, 84px);
  text-align: center;
  overflow: hidden;
}

.cfc-leaders-hero.has-image {
  background-image: var(--cfc-leaders-hero-image);
  background-size: cover;
  background-position: center 34%;
  background-attachment: fixed;
}

.cfc-leaders-hero.has-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    176deg,
    rgba(35, 38, 22, 0.42) 0%,
    rgba(35, 38, 22, 0.6) 40%,
    rgba(35, 38, 22, 0.86) 100%
  );
  pointer-events: none;
}

.cfc-leaders-hero .cfc-leaders-container {
  max-width: 800px;
  position: relative;
  z-index: 1;
}

.cfc-leaders-hero-label {
  margin: 0 0 12px;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 3px;
}

.cfc-leaders-hero-title {
  margin: 0;
  color: #f2ebdd !important;
  font-size: clamp(2.5rem, 5.5vw, 3.5rem);
  line-height: 1.1;
}

.cfc-leaders-hero-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 24px auto 30px;
  background: #8b8b38;
}

.cfc-leaders-hero-line {
  margin: 0;
  color: rgba(242, 235, 221, 0.72);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-leaders-hero-line + .cfc-leaders-hero-line {
  margin-top: 10px;
}

.cfc-leaders-hero-line--lead {
  color: #f2ebdd;
  font-size: 1.15rem;
}

.cfc-leaders-hero-line--accent {
  margin-top: 16px !important;
  color: #8b8b38;
  font-style: italic;
  font-weight: 800;
  font-size: 1.2rem;
}

.cfc-leaders-group {
  padding: 80px 0;
}

.cfc-leaders-group--pastors {
  background: #f2ebdd;
}

.cfc-leaders-group--elders {
  background: #ffffff;
}

.cfc-leaders-group--deacons {
  background: #f2ebdd;
}

.cfc-leaders-group-header {
  text-align: center;
  margin-bottom: 50px;
}

.cfc-leaders-group-label {
  margin: 0;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 4px;
}

.cfc-leaders-group-rule {
  display: block;
  width: 100px;
  height: 1px;
  margin: 14px auto 0;
  background: rgba(35, 38, 22, 0.12);
}

.cfc-leader-card {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  --cfc-rule-width: 30px;
  --cfc-rule-hover-width: 50px;
  background: #ffffff;
}

.cfc-leader-card--pastor {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 50px;
  box-shadow: 0 2px 20px rgba(35, 38, 22, 0.06);
  --cfc-rule-width: 40px;
  --cfc-rule-hover-width: 60px;
}

.cfc-leader-card--pastor-reverse {
  grid-template-columns: 1fr 380px;
}

.cfc-leader-card--pastor-reverse .cfc-leader-photo-wrap {
  order: 2;
}

.cfc-leader-card--pastor-reverse .cfc-leader-content {
  order: 1;
}

.cfc-leader-card--pastor .cfc-leader-photo-wrap {
  min-height: 420px;
}

.cfc-leader-card--pastor .cfc-leader-content {
  padding: 40px 40px 40px 0;
}

.cfc-leader-card--pastor-reverse .cfc-leader-content {
  padding: 40px 0 40px 40px;
}

.cfc-leaders-pastor-list {
  display: grid;
  gap: 60px;
}

.cfc-leaders-elder-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 50px;
}

.cfc-leader-card--elder {
  background: #f2ebdd;
  box-shadow: none;
  --cfc-rule-width: 30px;
  --cfc-rule-hover-width: 50px;
}

.cfc-leader-card--elder .cfc-leader-photo-wrap {
  height: 400px;
}

.cfc-leader-card--elder .cfc-leader-content {
  padding: 30px 32px 36px;
}

.cfc-leaders-deacon-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px;
}

.cfc-leader-card--deacon {
  background: #ffffff;
  box-shadow: 0 1px 12px rgba(35, 38, 22, 0.05);
  --cfc-rule-width: 25px;
  --cfc-rule-hover-width: 40px;
}

.cfc-leader-card--deacon .cfc-leader-photo-wrap {
  height: 340px;
}

.cfc-leader-card--deacon .cfc-leader-content {
  padding: 24px 24px 28px;
}

.cfc-leader-photo-wrap {
  position: relative;
  overflow: hidden;
  background: #232616;
}

.cfc-leader-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transform: scale(1);
  transition: transform 0.6s ease;
}

.cfc-leader-photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed #8b8b38;
  background: #232616;
}

.cfc-leader-initials {
  color: #8b8b38;
  font-family: "Alegreya", Georgia, serif;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
}

.cfc-leader-photo-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.4) 0%,
    rgba(35, 38, 22, 0) 40%
  );
  transition: background 0.6s ease;
}

.cfc-leader-name {
  margin: 0;
  color: #232616 !important;
  font-size: 2rem;
  line-height: 1.15;
}

.cfc-leader-card--elder .cfc-leader-name {
  font-size: 1.6rem;
}

.cfc-leader-card--deacon .cfc-leader-name {
  font-size: 1.35rem;
}

.cfc-leader-name a {
  color: inherit !important;
  text-decoration: none;
}

.cfc-leader-name a:hover,
.cfc-leader-name a:focus-visible {
  color: #7a8450 !important;
}

.cfc-leader-meta-role {
  margin: 4px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.cfc-leader-card--elder .cfc-leader-meta-role {
  font-size: 0.7rem;
}

.cfc-leader-card--deacon .cfc-leader-meta-role {
  font-size: 0.65rem;
}

.cfc-leader-contact-email {
  margin: 10px 0 0;
  color: rgba(35, 38, 22, 0.72);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  line-height: 1.6;
}

.cfc-leader-contact-email a {
  color: #7a8450;
  text-decoration: none;
  font-weight: 700;
}

.cfc-leader-contact-email a:hover,
.cfc-leader-contact-email a:focus-visible {
  color: #5f683e;
}

.cfc-leader-rule {
  display: block;
  width: var(--cfc-rule-width);
  height: 2px;
  margin: 16px 0 20px;
  background: #8b8b38;
  transition: width 0.4s ease;
}

.cfc-leader-card--elder .cfc-leader-rule {
  margin: 12px 0 16px;
}

.cfc-leader-card--deacon .cfc-leader-rule {
  margin: 10px 0 14px;
}

.cfc-leader-bio {
  margin: 0;
  color: rgba(35, 38, 22, 0.82);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.85;
}

.cfc-leader-card--elder .cfc-leader-bio {
  font-size: 0.95rem;
  line-height: 1.8;
}

.cfc-leader-card--deacon .cfc-leader-bio {
  font-size: 0.9rem;
  line-height: 1.75;
}

.cfc-leader-since {
  margin: 20px 0 0;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

.cfc-leader-card:hover .cfc-leader-photo,
.cfc-leader-card:focus-within .cfc-leader-photo {
  transform: scale(1.03);
}

.cfc-leader-card:hover .cfc-leader-photo-overlay,
.cfc-leader-card:focus-within .cfc-leader-photo-overlay {
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.55) 0%,
    rgba(35, 38, 22, 0) 40%
  );
}

.cfc-leader-card:hover .cfc-leader-rule,
.cfc-leader-card:focus-within .cfc-leader-rule {
  width: var(--cfc-rule-hover-width);
}

.cfc-leaders-closing {
  background: #232616;
  padding: 70px 0;
}

.cfc-leaders-closing-inner {
  max-width: 700px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.cfc-leaders-closing-verse {
  margin: 0;
  color: rgba(242, 235, 221, 0.82);
  font-family: "Alegreya", Georgia, serif;
  font-style: italic;
  font-size: 1.1rem;
  line-height: 1.9;
}

.cfc-leaders-closing-reference {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.cfc-leaders-closing-dots {
  margin: 8px 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.cfc-leaders-closing-dots span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #8b8b38;
}

.cfc-leaders-closing-cta {
  margin-top: 0;
  min-width: 180px;
  background-color: #d4956a !important;
  border: 1px solid #d4956a !important;
  border-radius: 4px !important;
  color: #ffffff !important;
}

.cfc-leaders-closing-cta:hover,
.cfc-leaders-closing-cta:focus {
  background-color: #c07e52 !important;
  border-color: #c07e52 !important;
  color: #ffffff !important;
}

.cfc-leaders.cfc-leaders--animated .cfc-leaders-group-header,
.cfc-leaders.cfc-leaders--animated .cfc-leader-card {
  opacity: 0;
  transform: translateY(25px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s ease-out;
}

.cfc-leaders.cfc-leaders--animated .cfc-leader-card {
  transition-delay: calc(var(--cfc-leader-delay, 0s) + 0.3s);
}

.cfc-leaders.cfc-leaders--animated .cfc-leaders-group-header.cfc-visible,
.cfc-leaders.cfc-leaders--animated .cfc-leader-card.cfc-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1024px) and (min-width: 769px) {
  .cfc-leaders-container {
    width: min(1100px, calc(100% - 56px));
  }

  .cfc-leader-card--pastor,
  .cfc-leader-card--pastor-reverse {
    grid-template-columns: 300px 1fr;
    gap: 36px;
  }

  .cfc-leader-card--pastor-reverse {
    grid-template-columns: 1fr 300px;
  }

  .cfc-leader-card--elder .cfc-leader-photo-wrap {
    height: 350px;
  }

  .cfc-leader-card--deacon .cfc-leader-photo-wrap {
    height: 280px;
  }

  .cfc-leader-card--deacon .cfc-leader-bio {
    font-size: 0.85rem;
  }
}

@media (max-width: 768px) {
  .cfc-leaders-container {
    width: min(100%, calc(100% - 40px));
  }

  .cfc-leaders-hero-title {
    font-size: 2.5rem;
  }

  .cfc-leaders-hero.has-image {
    background-attachment: scroll;
    background-position: center;
  }

  .cfc-leaders-hero-line--lead {
    font-size: 1.05rem;
  }

  .cfc-leaders-hero-line {
    font-size: 0.95rem;
  }

  .cfc-leaders-hero-line--accent {
    font-size: 1.1rem;
  }

  .cfc-leaders-group {
    padding: 60px 0;
  }

  .cfc-leaders-group-header {
    margin-bottom: 30px;
  }

  .cfc-leaders-pastor-list,
  .cfc-leaders-elder-grid,
  .cfc-leaders-deacon-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .cfc-leader-card--pastor,
  .cfc-leader-card--pastor-reverse {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .cfc-leader-card--pastor-reverse .cfc-leader-photo-wrap,
  .cfc-leader-card--pastor-reverse .cfc-leader-content {
    order: initial;
  }

  .cfc-leader-card--pastor .cfc-leader-photo-wrap,
  .cfc-leader-card--pastor-reverse .cfc-leader-photo-wrap {
    min-height: 300px;
    height: 300px;
  }

  .cfc-leader-card--pastor .cfc-leader-content,
  .cfc-leader-card--pastor-reverse .cfc-leader-content {
    padding: 24px;
  }

  .cfc-leader-card--elder .cfc-leader-photo-wrap {
    height: 350px;
  }

  .cfc-leader-card--deacon .cfc-leader-photo-wrap {
    height: 300px;
  }

  .cfc-leader-card--elder .cfc-leader-content,
  .cfc-leader-card--deacon .cfc-leader-content {
    padding: 24px;
  }

  .cfc-leader-card--pastor .cfc-leader-name {
    font-size: 1.8rem;
  }

  .cfc-leader-card--elder .cfc-leader-name {
    font-size: 1.5rem;
  }

  .cfc-leader-card--deacon .cfc-leader-name {
    font-size: 1.25rem;
  }

  .cfc-leader-card--pastor .cfc-leader-bio {
    font-size: 0.94rem;
  }

  .cfc-leader-card--elder .cfc-leader-bio,
  .cfc-leader-card--deacon .cfc-leader-bio {
    font-size: 0.88rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-leader-photo,
  .cfc-leader-photo-overlay,
  .cfc-leader-rule,
  .cfc-leaders.cfc-leaders--animated .cfc-leaders-group-header,
  .cfc-leaders.cfc-leaders--animated .cfc-leader-card {
    transition: none !important;
  }

  .cfc-leaders.cfc-leaders--animated .cfc-leaders-group-header,
  .cfc-leaders.cfc-leaders--animated .cfc-leader-card {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Sundays & Ministries Cards -- */
.cfc-activity-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1024px) {
  .cfc-activity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .cfc-activity-grid {
    grid-template-columns: 1fr;
  }
}

.cfc-activity-time {
  color: var(--cfc-accent);
  font-weight: 700;
  margin-bottom: 10px;
}

/* -- Growth Groups -- */
.cfc-growth-groups {
  background: #f2ebdd;
  color: #232616;
}

.cfc-growth-groups h1,
.cfc-growth-groups h2,
.cfc-growth-groups h3 {
  font-family: "Alegreya", Georgia, serif !important;
  letter-spacing: normal;
  text-transform: none;
}

.cfc-gg-container {
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
}

.cfc-gg-hero {
  position: relative;
  min-height: 55vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #232616;
  padding: clamp(96px, 12vw, 150px) 0 72px;
  overflow: hidden;
}

.cfc-gg-hero.has-image {
  background-image: var(--cfc-gg-hero-image);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.cfc-gg-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 38, 22, 0.65);
  opacity: 0;
}

.cfc-gg-hero.has-image::before {
  opacity: 1;
}

.cfc-gg-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 750px;
  text-align: center;
}

.cfc-gg-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-gg-hero-title {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.5rem, 5.4vw, 3.5rem);
  line-height: 1.05;
}

.cfc-gg-hero-rule {
  display: block;
  width: 50px;
  height: 2px;
  margin: 24px auto 30px;
  background: #8b8b38;
}

.cfc-gg-hero-tagline {
  margin: 0 auto;
  max-width: 500px;
  color: #d4956a;
  font-size: 1.2rem;
  font-style: italic;
  line-height: 1.7;
}

.cfc-gg-pills {
  margin-top: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.cfc-gg-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border: 1px solid rgba(242, 235, 221, 0.15);
  border-radius: 3px;
  color: rgba(242, 235, 221, 0.5);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    opacity 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease;
}

.cfc-gg-pill:hover,
.cfc-gg-pill:focus-visible {
  color: rgba(242, 235, 221, 0.95);
  border-color: rgba(139, 139, 56, 0.4);
  text-decoration: none;
}

.cfc-gg-about {
  background: #f2ebdd;
  padding: 80px 0;
}

.cfc-gg-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 4fr);
  gap: 70px;
  align-items: start;
  max-width: 1000px;
}

.cfc-gg-about-copy h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.95rem, 3vw, 2.2rem);
  line-height: 1.25;
}

.cfc-gg-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px 0 24px;
  background: #8b8b38;
}

.cfc-gg-rule--center {
  margin: 16px auto 50px;
}

.cfc-gg-about-copy p {
  margin: 0;
  color: rgba(35, 38, 22, 0.85);
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-gg-about-copy p + p {
  margin-top: 16px;
}

.cfc-gg-about-copy a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-gg-about-copy a:hover,
.cfc-gg-about-copy a:focus-visible {
  color: #c07e52;
  text-decoration: none;
}

.cfc-gg-pull-quote {
  margin: 28px 0 0;
  padding-left: 20px;
  border-left: 3px solid #d4956a;
  color: #d4956a;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.3rem;
  font-style: italic;
  font-weight: 800;
  line-height: 1.5;
}

.cfc-gg-contact-card {
  background: #ffffff;
  border-radius: 8px;
  padding: 36px;
  box-shadow: 0 2px 16px rgba(35, 38, 22, 0.06);
}

.cfc-gg-contact-label,
.cfc-gg-glance-label {
  margin: 0;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.cfc-gg-contact-label {
  margin-bottom: 14px;
  font-size: 0.7rem;
  font-weight: 800;
}

.cfc-gg-contact-phone {
  margin: 0;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.2;
}

.cfc-gg-contact-phone a {
  color: #232616;
  text-decoration: none;
}

.cfc-gg-contact-phone a:hover,
.cfc-gg-contact-phone a:focus-visible {
  color: #8b8b38;
  text-decoration: none;
}

.cfc-gg-contact-email {
  margin: 4px 0 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
}

.cfc-gg-contact-email a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-gg-contact-email a:hover,
.cfc-gg-contact-email a:focus-visible {
  color: #c07e52;
  text-decoration: none;
}

.cfc-gg-contact-divider {
  border-top: 1px solid rgba(35, 38, 22, 0.08);
  margin: 24px 0;
}

.cfc-gg-glance-label {
  margin-bottom: 16px;
  font-size: 0.65rem;
  font-weight: 700;
}

.cfc-gg-glance {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.cfc-gg-glance-day {
  grid-column: 1 / -1;
  margin: 12px 0 4px;
  color: rgba(35, 38, 22, 0.4);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-gg-glance-day:first-child {
  margin-top: 0;
}

.cfc-gg-glance-cell {
  display: block;
  background: #f2ebdd;
  border-radius: 4px;
  padding: 12px 14px;
  text-align: center;
  border-top: 3px solid transparent;
  text-decoration: none;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.cfc-gg-glance-cell--men {
  border-top-color: #8b8b38;
}

.cfc-gg-glance-cell--women {
  border-top-color: #d4956a;
}

.cfc-gg-glance-cell span {
  display: block;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1.2;
}

.cfc-gg-glance-cell small {
  display: block;
  margin-top: 3px;
  color: rgba(35, 38, 22, 0.5);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  line-height: 1.35;
}

.cfc-gg-glance-cell:hover,
.cfc-gg-glance-cell:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(35, 38, 22, 0.08);
  text-decoration: none;
}

.cfc-gg-groups {
  background: #ffffff;
  padding: 80px 0;
}

.cfc-gg-groups-title {
  margin: 0;
  color: #232616 !important;
  text-align: center;
  font-size: 2rem;
}

.cfc-gg-day-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  max-width: 1000px;
  margin: 0 auto;
}

.cfc-gg-day-block {
  min-width: 0;
}

.cfc-gg-day-label {
  margin: 0 0 20px;
  color: rgba(35, 38, 22, 0.3);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 4px;
  text-transform: uppercase;
  text-align: center;
}

.cfc-gg-group-card {
  background: #f2ebdd;
  border-radius: 8px;
  padding: 32px;
  border-top: 4px solid transparent;
  margin-bottom: 20px;
  box-shadow: 0 0 0 rgba(35, 38, 22, 0);
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
  scroll-margin-top: 110px;
}

.cfc-gg-group-card-inner {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.cfc-gg-leader-photo {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #8b8b38;
  background: #232616;
}

.cfc-gg-leader-photo--women {
  border-color: #d4956a;
}

.cfc-gg-leader-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.cfc-gg-leader-photo-placeholder {
  width: 100%;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.cfc-gg-leader-photo--women .cfc-gg-leader-photo-placeholder {
  color: #d4956a;
}

.cfc-gg-group-card:last-child {
  margin-bottom: 0;
}

.cfc-gg-group-card--men {
  border-top-color: #8b8b38;
}

.cfc-gg-group-card--women {
  border-top-color: #d4956a;
}

.cfc-gg-group-card h3 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.4rem;
}

.cfc-gg-group-rule {
  display: block;
  width: 30px;
  height: 2px;
  margin: 10px 0 18px;
  background: #8b8b38;
}

.cfc-gg-group-card--women .cfc-gg-group-rule {
  background: #d4956a;
}

.cfc-gg-detail-row {
  margin: 0 0 10px;
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 12px;
}

.cfc-gg-detail-row:last-child {
  margin-bottom: 0;
}

.cfc-gg-detail-row span:first-child {
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.4px;
}

.cfc-gg-detail-row span:last-child {
  color: #232616;
  font-size: 0.95rem;
  line-height: 1.5;
}

.cfc-gg-group-card:hover,
.cfc-gg-group-card:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 6px 24px rgba(35, 38, 22, 0.08);
}

.cfc-gg-calendar {
  background: #f2ebdd;
  padding: 70px 0;
}

.cfc-gg-calendar-inner {
  max-width: 900px;
}

.cfc-gg-calendar h2 {
  margin: 0;
  color: #232616 !important;
  text-align: center;
  font-size: 1.8rem;
}

.cfc-gg-calendar-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px;
}

.cfc-gg-year-card {
  background: #ffffff;
  border-radius: 8px;
  overflow: hidden;
}

.cfc-gg-year-header {
  background: #232616;
  padding: 16px 28px;
}

.cfc-gg-year-header h3 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.4rem;
}

.cfc-gg-quarter-row {
  padding: 14px 28px;
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  background: rgba(139, 139, 56, 0.08);
  border-left: 3px solid #8b8b38;
}

.cfc-gg-quarter-row + .cfc-gg-quarter-row {
  border-top: 1px solid rgba(35, 38, 22, 0.04);
}

.cfc-gg-quarter-row.is-current {
  background: rgba(139, 139, 56, 0.15);
}

.cfc-gg-quarter-label,
.cfc-gg-quarter-dates {
  margin: 0;
}

.cfc-gg-quarter-label {
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
}

.cfc-gg-quarter-dates {
  color: #232616;
  font-size: 0.9rem;
  line-height: 1.5;
}

.cfc-gg-break-row {
  background: transparent;
  border-left: 0;
}

.cfc-gg-break-row .cfc-gg-quarter-label {
  color: rgba(35, 38, 22, 0.4);
  font-style: italic;
  font-weight: 700;
}

.cfc-gg-break-row .cfc-gg-quarter-dates {
  color: rgba(35, 38, 22, 0.4);
}

.cfc-gg-current-badge {
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 2px;
  background: #8b8b38;
  color: #ffffff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.55rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  line-height: 1.35;
}

.cfc-gg-connector {
  background: #f2ebdd;
  padding: 50px 0;
}

.cfc-gg-connector-inner {
  max-width: 600px;
  text-align: center;
}

.cfc-gg-connector-names {
  margin: 0;
  color: rgba(35, 38, 22, 0.15);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-gg-connector-dots {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.cfc-gg-connector-dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: block;
}

.cfc-gg-connector-dots .is-men {
  background: #8b8b38;
}

.cfc-gg-connector-dots .is-women {
  background: #d4956a;
}

.cfc-gg-closing {
  background: #232616;
  padding: 70px 0;
}

.cfc-gg-closing-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-gg-closing h2 {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 2rem;
}

.cfc-gg-closing .cfc-gg-rule {
  background: #8b8b38;
}

.cfc-gg-closing-copy {
  margin: 0;
  color: rgba(242, 235, 221, 0.8);
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-gg-closing-copy a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-gg-closing-copy a:hover,
.cfc-gg-closing-copy a:focus-visible {
  color: #f2ebdd;
  text-decoration: none;
}

.cfc-gg-closing-card {
  margin-top: 30px;
  display: inline-flex;
  align-items: center;
  gap: 24px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(139, 139, 56, 0.15);
  border-radius: 4px;
  padding: 20px 36px;
}

.cfc-gg-closing-phone,
.cfc-gg-closing-email {
  text-decoration: none;
}

.cfc-gg-closing-phone {
  color: #f2ebdd;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.1rem;
  font-weight: 800;
}

.cfc-gg-closing-email {
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
}

.cfc-gg-closing-phone:hover,
.cfc-gg-closing-phone:focus-visible {
  color: #8b8b38;
  text-decoration: none;
}

.cfc-gg-closing-email:hover,
.cfc-gg-closing-email:focus-visible {
  color: #f2ebdd;
  text-decoration: none;
}

.cfc-gg-closing-divider {
  width: 1px;
  height: 28px;
  background: rgba(242, 235, 221, 0.15);
}

.cfc-growth-groups.cfc-growth-groups--animated [data-gg-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s ease-out;
  transition-delay: var(--cfc-gg-delay, 0s);
}

.cfc-growth-groups.cfc-growth-groups--animated [data-gg-reveal="about-left"],
.cfc-growth-groups.cfc-growth-groups--animated [data-gg-reveal="day-left"],
.cfc-growth-groups.cfc-growth-groups--animated
  [data-gg-reveal="calendar-left"] {
  transform: translateX(-24px);
}

.cfc-growth-groups.cfc-growth-groups--animated [data-gg-reveal="about-right"],
.cfc-growth-groups.cfc-growth-groups--animated [data-gg-reveal="day-right"],
.cfc-growth-groups.cfc-growth-groups--animated
  [data-gg-reveal="calendar-right"] {
  transform: translateX(24px);
}

.cfc-growth-groups.cfc-growth-groups--animated [data-gg-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 1024px) {
  .cfc-gg-container {
    width: min(1100px, calc(100% - 56px));
  }

  .cfc-gg-about-grid {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .cfc-gg-container {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-gg-hero {
    min-height: 50vh;
    padding: clamp(86px, 20vw, 118px) 0 40px;
  }

  .cfc-gg-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-gg-hero-title {
    font-size: 2.5rem;
  }

  .cfc-gg-pills {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .cfc-gg-pill {
    width: 100%;
    min-height: 48px;
    line-height: 1.25;
    padding: 8px 10px;
    letter-spacing: 1.1px;
  }

  .cfc-gg-about,
  .cfc-gg-groups,
  .cfc-gg-calendar,
  .cfc-gg-connector,
  .cfc-gg-closing {
    padding: 50px 0;
  }

  .cfc-gg-about-grid,
  .cfc-gg-day-grid,
  .cfc-gg-calendar-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .cfc-gg-year-card--2026 {
    order: 1;
  }

  .cfc-gg-quarter-row {
    padding: 12px 20px;
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 12px;
  }

  .cfc-gg-day-block + .cfc-gg-day-block {
    margin-top: 20px;
  }

  .cfc-gg-group-card {
    margin-bottom: 16px;
  }

  .cfc-gg-group-card-inner {
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 14px;
  }

  .cfc-gg-closing-card {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 20px;
  }

  .cfc-gg-closing-divider {
    width: 100%;
    height: 1px;
  }
}

@media (max-width: 359px) {
  .cfc-gg-group-card-inner {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .cfc-gg-leader-photo {
    margin: 0 auto;
  }

  .cfc-gg-group-card-content {
    text-align: center;
  }

  .cfc-gg-group-rule {
    margin-left: auto;
    margin-right: auto;
  }

  .cfc-gg-detail-row {
    grid-template-columns: 1fr;
    gap: 2px;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-gg-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-gg-pill,
  .cfc-gg-glance-cell,
  .cfc-gg-group-card,
  .cfc-growth-groups.cfc-growth-groups--animated [data-gg-reveal] {
    transition: none !important;
  }

  .cfc-growth-groups.cfc-growth-groups--animated [data-gg-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Calendar Page -- */
.cfc-calendar {
  background: #f2ebdd;
  color: #232616;
}

.cfc-calendar h1,
.cfc-calendar h2,
.cfc-calendar h3 {
  font-family: "Alegreya", Georgia, serif !important;
  letter-spacing: normal;
  text-transform: none;
}

.cfc-cal-shell {
  width: min(1300px, calc(100% - 64px));
  margin: 0 auto;
}

.cfc-cal-hero {
  min-height: 35vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #232616;
  background-image:
    linear-gradient(
      to top,
      rgba(35, 38, 22, 0.9) 0%,
      rgba(35, 38, 22, 0.68) 52%,
      rgba(35, 38, 22, 0.56) 100%
    ),
    var(--cfc-cal-hero-image, none);
  background-size: cover;
  background-position: center;
  padding: clamp(88px, 10vw, 124px) 0 42px;
}

.cfc-cal-hero-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-cal-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-cal-hero h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.3rem, 5vw, 3rem);
  line-height: 1.05;
}

.cfc-cal-hero-rule {
  display: block;
  width: 50px;
  height: 2px;
  margin: 20px auto;
  background: #8b8b38;
}

.cfc-cal-hero-subtitle {
  margin: 0;
  color: rgba(242, 235, 221, 0.6);
  font-size: 1rem;
  line-height: 1.8;
}

.cfc-cal-main {
  background: #f2ebdd;
  padding: 40px 0 60px;
}

.cfc-cal-container {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.cfc-cal-grid {
  position: relative;
  background: #ffffff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 24px rgba(35, 38, 22, 0.07);
}

.cfc-cal-nav {
  background: #232616;
  padding: 20px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.cfc-cal-nav-center {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-width: 0;
  flex: 1;
}

.cfc-cal-nav-month {
  margin: 0;
  color: #f2ebdd !important;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
}

.cfc-cal-nav-btn,
.cfc-calendar .fc-prev-button,
.cfc-calendar .fc-next-button {
  border: 1px solid rgba(242, 235, 221, 0.15) !important;
  width: 36px;
  height: 36px;
  border-radius: 6px;
  background: rgba(242, 235, 221, 0.1) !important;
  color: rgba(242, 235, 221, 0.7) !important;
  font-size: 1.3rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.cfc-cal-nav-btn:hover,
.cfc-cal-nav-btn:focus-visible,
.cfc-calendar .fc-prev-button:hover,
.cfc-calendar .fc-next-button:hover {
  background: rgba(242, 235, 221, 0.18) !important;
  border-color: rgba(242, 235, 221, 0.25) !important;
  color: #f2ebdd !important;
}

.cfc-cal-today-btn {
  border: 1px solid rgba(139, 139, 56, 0.3) !important;
  border-radius: 4px;
  background: transparent !important;
  color: #8b8b38 !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 6px 16px;
  cursor: pointer;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.cfc-cal-today-btn:hover,
.cfc-cal-today-btn:focus-visible {
  color: #d4956a !important;
  border-color: rgba(212, 149, 106, 0.45) !important;
  background: rgba(139, 139, 56, 0.15) !important;
}

.cfc-cal-today-btn.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.cfc-cal-dow {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: rgba(35, 38, 22, 0.03);
  border-bottom: 2px solid rgba(35, 38, 22, 0.08);
}

.cfc-cal-dow span {
  padding: 14px 12px;
  text-align: left;
  color: rgba(35, 38, 22, 0.4);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.cfc-cal-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  transition: opacity 0.15s ease;
}

.cfc-cal-days.is-transitioning {
  opacity: 0;
}

.cfc-cal-day {
  border: 0;
  border-right: 1px solid rgba(35, 38, 22, 0.05);
  border-bottom: 1px solid rgba(35, 38, 22, 0.06);
  background: #ffffff !important;
  min-height: 130px;
  padding: 8px;
  text-align: left;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease;
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.cfc-cal-day:nth-child(7n) {
  border-right: 0;
}

.cfc-cal-day.is-sunday-col {
  background: rgba(35, 38, 22, 0.02) !important;
}

.cfc-cal-day.is-outside {
  background: rgba(35, 38, 22, 0.015) !important;
}

.cfc-cal-day:hover,
.cfc-cal-day:focus-visible {
  background: rgba(139, 139, 56, 0.05) !important;
}

.cfc-cal-day.is-selected {
  background: rgba(139, 139, 56, 0.1) !important;
  box-shadow: inset 0 0 0 2px rgba(139, 139, 56, 0.2);
}

.cfc-cal-day.is-today {
  background: rgba(139, 139, 56, 0.04) !important;
}

.cfc-cal-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-bottom: 6px;
  border-radius: 50%;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1;
}

.cfc-cal-day.is-outside .cfc-cal-day-number {
  opacity: 0.2;
}

.cfc-cal-day.is-today .cfc-cal-day-number {
  background: #8b8b38;
  color: #ffffff;
}

.cfc-cal-day.is-selected .cfc-cal-day-number {
  background: #232616;
  color: #f2ebdd;
}

.cfc-cal-day.is-selected.is-today .cfc-cal-day-number {
  background: #8b8b38;
  color: #ffffff;
}

.cfc-cal-day-events {
  display: grid;
  gap: 3px;
  margin-top: 2px;
}

.cfc-calendar .fc-event,
.cfc-calendar .fc-daygrid-event,
.cfc-calendar .fc-daygrid-dot-event,
.cfc-calendar .cfc-calendar-event,
.cfc-calendar .cfc-calendar-event-pill {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.cfc-cal-event-label {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  min-height: 18px;
  border: none !important;
  border-left: 2px solid var(--cfc-cal-event-accent, #8b8b38) !important;
  border-radius: 2px !important;
  padding: 2px 6px !important;
  margin: 1px 2px !important;
  background: rgba(139, 139, 56, 0.08) !important;
  cursor: pointer;
  text-align: left;
  color: #232616 !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  line-height: 1.32;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}

.cfc-cal-event-label:hover,
.cfc-cal-event-label:focus-visible {
  background: rgba(139, 139, 56, 0.15) !important;
  color: #232616 !important;
}

.cfc-cal-event-label-time {
  flex-shrink: 0;
  color: var(--cfc-cal-event-time, #6b6b28);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.01em;
}

.cfc-cal-event-label-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(35, 38, 22, 0.82);
  font-size: 0.65rem;
  font-weight: 700;
}

.cfc-cal-day-more,
.cfc-calendar .fc-more-link,
.cfc-calendar .fc-daygrid-more-link {
  border: none !important;
  border-left: none !important;
  background: transparent !important;
  padding: 2px 6px !important;
  margin: 0;
  text-align: left;
  cursor: pointer;
  color: rgba(35, 38, 22, 0.35) !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  line-height: 1.3;
}

.cfc-cal-day-more:hover,
.cfc-cal-day-more:focus-visible,
.cfc-calendar .fc-more-link:hover,
.cfc-calendar .fc-daygrid-more-link:hover {
  color: #8b8b38 !important;
}

.cfc-cal-day.is-has-event:not(.is-selected):not(.is-today),
.cfc-calendar
  .fc-daygrid-day.fc-day-has-event:not(.is-selected):not(.is-today) {
  background: rgba(139, 139, 56, 0.03) !important;
}

.cfc-cal-day.is-outside .cfc-cal-event-label,
.cfc-cal-day.is-outside .cfc-cal-day-more {
  opacity: 0.45;
}

.cfc-cal-detail-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: 380px;
  height: 100%;
  background: #ffffff;
  box-shadow: -4px 0 24px rgba(35, 38, 22, 0.1);
  transform: translateX(100%);
  transition: transform 0.3s ease-out;
  z-index: 10;
  overflow: hidden;
  border-radius: 0 8px 8px 0;
  pointer-events: none;
  display: flex;
  flex-direction: column;
}

.cfc-cal-detail-panel.is-open {
  transform: translateX(0);
  pointer-events: auto;
}

.cfc-cal-detail-close {
  border: 1px solid rgba(35, 38, 22, 0.1);
  background: rgba(35, 38, 22, 0.02);
  color: rgba(35, 38, 22, 0.4);
  font-size: 1.35rem;
  line-height: 1;
  position: absolute;
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  margin: 0;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
}

.cfc-cal-detail-close:hover,
.cfc-cal-detail-close:focus-visible {
  background: rgba(35, 38, 22, 0.06) !important;
  border-radius: 6px !important;
  color: rgba(35, 38, 22, 0.5) !important;
  box-shadow: none !important;
}

.cfc-cal-detail-header,
.cfc-cal-sheet-header {
  padding: 24px 56px 16px 24px;
  border-bottom: 1px solid rgba(35, 38, 22, 0.06);
}

.cfc-cal-detail-date,
.cfc-cal-sheet-date {
  margin: 0;
  color: #232616 !important;
  font-size: 1.2rem;
}

.cfc-cal-detail-count,
.cfc-cal-sheet-count {
  margin: 4px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.cfc-cal-detail-body {
  padding: 0;
  overflow-y: auto;
  max-height: 100%;
  flex: 1;
  transition: opacity 0.15s ease;
}

.cfc-cal-detail-body.is-transitioning {
  opacity: 0.2;
}

.cfc-cal-detail-body::-webkit-scrollbar {
  width: 4px;
}

.cfc-cal-detail-body::-webkit-scrollbar-track {
  background: rgba(35, 38, 22, 0.08);
}

.cfc-cal-detail-body::-webkit-scrollbar-thumb {
  background: #8b8b38;
  border-radius: 2px;
}

.cfc-cal-detail-event {
  padding: 20px 24px;
  border-bottom: 1px solid rgba(35, 38, 22, 0.06);
  transition: background-color 0.2s ease;
}

.cfc-cal-detail-event:last-child {
  border-bottom: 0;
}

.cfc-cal-detail-event:hover {
  background: rgba(139, 139, 56, 0.04);
}

.cfc-cal-detail-event.is-focused {
  background: rgba(139, 139, 56, 0.12);
}

.cfc-cal-detail-event-inner {
  border-left: 4px solid var(--cfc-cal-event-accent, #8b8b38);
  padding-left: 16px;
}

.cfc-cal-detail-event-title {
  margin: 0;
  color: #232616 !important;
  font-size: 1.1rem;
}

.cfc-cal-detail-time {
  margin: 4px 0 0;
  color: var(--cfc-cal-event-time, rgba(35, 38, 22, 0.62));
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
}

.cfc-cal-detail-location {
  margin: 2px 0 0;
  color: rgba(35, 38, 22, 0.45);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
}

.cfc-cal-detail-description {
  margin: 10px 0 0;
  color: rgba(35, 38, 22, 0.75);
  font-size: 0.9rem;
  line-height: 1.75;
}

.cfc-cal-detail-link {
  display: inline-block;
  margin-top: 12px;
  padding: 5px 14px;
  border-radius: 3px;
  border: 1px solid #d4956a;
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

.cfc-cal-detail-link:hover,
.cfc-cal-detail-link:focus-visible {
  background: #d4956a;
  color: #ffffff;
  text-decoration: none;
}

.cfc-cal-detail-empty {
  padding: 40px 24px;
  text-align: center;
}

.cfc-cal-detail-empty span {
  display: block;
  margin-bottom: 12px;
  color: rgba(35, 38, 22, 0.15);
  font-size: 2rem;
  line-height: 1;
}

.cfc-cal-detail-empty p {
  margin: 0;
  color: rgba(35, 38, 22, 0.4);
  font-size: 0.9rem;
  font-style: italic;
}

.cfc-cal-detail-footer {
  padding: 16px 24px;
  border-top: 1px solid rgba(35, 38, 22, 0.06);
  text-align: center;
}

.cfc-cal-detail-footer a,
.cfc-cal-upcoming-subscribe a {
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.2s ease;
}

.cfc-cal-detail-footer a:hover,
.cfc-cal-detail-footer a:focus-visible,
.cfc-cal-upcoming-subscribe a:hover,
.cfc-cal-upcoming-subscribe a:focus-visible {
  color: #d4956a;
}

@keyframes cfcCalDayPulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

.cfc-cal-day.is-pulse .cfc-cal-day-number {
  animation: cfcCalDayPulse 0.3s ease;
}

.cfc-cal-upcoming {
  background: #ffffff;
  padding: 60px 0;
}

.cfc-cal-upcoming-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 24px;
}

.cfc-cal-upcoming-head h2 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.5rem;
}

.cfc-cal-upcoming-range {
  margin: 0;
  color: rgba(35, 38, 22, 0.4);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
}

.cfc-cal-upcoming-list {
  display: block;
}

.cfc-cal-upcoming-row {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(35, 38, 22, 0.06);
  border-left: 3px solid transparent;
  border-radius: 4px;
  padding: 14px 20px;
  margin-bottom: 2px;
  background: #ffffff;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px 160px;
  gap: 16px;
  align-items: center;
  text-align: left;
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    transform 0.2s ease;
}

.cfc-cal-upcoming-row:hover,
.cfc-cal-upcoming-row:focus-visible {
  background: rgba(255, 255, 255, 0.82);
  border-left-color: #8b8b38;
  transform: translateX(1px);
}

.cfc-cal-upcoming-main {
  min-width: 0;
}

.cfc-cal-upcoming-title {
  display: block;
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
  text-transform: none;
}

.cfc-cal-upcoming-date,
.cfc-cal-upcoming-time,
.cfc-cal-upcoming-meta-mobile {
  color: rgba(35, 38, 22, 0.45);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.73rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.cfc-cal-upcoming-time {
  color: rgba(35, 38, 22, 0.38);
}

.cfc-cal-upcoming-meta-mobile {
  display: none;
  margin-top: 3px;
}

.cfc-cal-upcoming-empty {
  margin: 0;
  padding: 24px 20px;
  border-radius: 6px;
  background: #ffffff;
  color: rgba(35, 38, 22, 0.45);
  font-size: 0.9rem;
  font-style: italic;
}

.cfc-cal-upcoming-subscribe {
  margin: 22px 0 0;
  text-align: center;
}

.cfc-cal-closing {
  background: #232616;
  padding: 50px 0;
}

.cfc-cal-closing-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-cal-closing p {
  margin: 0;
  color: rgba(242, 235, 221, 0.7);
  font-size: 1rem;
  line-height: 1.9;
}

.cfc-cal-closing-actions {
  margin-top: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.cfc-cal-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  padding: 10px 18px;
  text-decoration: none;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.4px;
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease;
}

.cfc-cal-btn--primary {
  border: 1px solid #d4956a;
  background: #d4956a;
  color: #ffffff;
}

.cfc-cal-btn--primary:hover,
.cfc-cal-btn--primary:focus-visible {
  background: #c07e52;
  border-color: #c07e52;
  color: #ffffff;
  text-decoration: none;
}

.cfc-cal-btn--ghost {
  border: 1px solid rgba(242, 235, 221, 0.72);
  background: transparent;
  color: #f2ebdd;
}

.cfc-cal-btn--ghost:hover,
.cfc-cal-btn--ghost:focus-visible {
  background: #f2ebdd;
  border-color: #f2ebdd;
  color: #232616;
  text-decoration: none;
}

.cfc-calendar.cfc-calendar--animated [data-cal-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.4s ease-out,
    transform 0.4s ease-out;
  transition-delay: var(--cfc-cal-delay, 0s);
}

.cfc-calendar.cfc-calendar--animated [data-cal-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

.cfc-cal-sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(35, 38, 22, 0.3);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s ease,
    visibility 0.3s ease;
  z-index: 110;
}

.cfc-cal-sheet-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}

.cfc-cal-bottom-sheet {
  display: none;
}

body.cfc-cal-sheet-open {
  overflow: hidden;
}

.cfc-cal-sheet-handle {
  width: 40px;
  height: 4px;
  border-radius: 2px;
  background: rgba(35, 38, 22, 0.15);
  margin: 10px auto 0;
}

.cfc-cal-sheet-close {
  border: 1px solid rgba(35, 38, 22, 0.1);
  background: rgba(35, 38, 22, 0.02);
  color: rgba(35, 38, 22, 0.4);
  font-size: 1.35rem;
  line-height: 1;
  position: absolute;
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
}

.cfc-cal-sheet-close:hover,
.cfc-cal-sheet-close:focus-visible {
  background: rgba(35, 38, 22, 0.06) !important;
  border-radius: 6px !important;
  color: rgba(35, 38, 22, 0.5) !important;
  box-shadow: none !important;
}

.cfc-calendar-detail-close:hover,
.cfc-calendar-day-panel .close:hover,
.cfc-calendar-day-panel [class*="close"]:hover,
.cfc-calendar-popup .close:hover {
  background: rgba(35, 38, 22, 0.06) !important;
  border-radius: 6px !important;
  color: rgba(35, 38, 22, 0.5) !important;
  box-shadow: none !important;
}

.cfc-cal-detail-close:focus,
.cfc-cal-sheet-close:focus,
.cfc-calendar-detail-close:focus,
.cfc-calendar-day-panel .close:focus,
.cfc-calendar-day-panel [class*="close"]:focus,
.cfc-calendar-popup .close:focus {
  background: rgba(35, 38, 22, 0.06) !important;
  border-radius: 6px !important;
  color: rgba(35, 38, 22, 0.5) !important;
  box-shadow: none !important;
}

@media (max-width: 1024px) {
  .cfc-cal-shell {
    width: min(100%, calc(100% - 32px));
  }

  .cfc-cal-day {
    min-height: 110px;
  }

  .cfc-cal-nav-month {
    font-size: 1.3rem;
  }

  .cfc-cal-event-label {
    font-size: 0.66rem;
    min-height: 19px;
  }

  .cfc-cal-event-label-time {
    font-size: 0.68rem;
  }

  .cfc-cal-event-label-name {
    font-size: 0.66rem;
  }

  .cfc-cal-detail-panel {
    width: 320px;
  }
}

@media (max-width: 768px) {
  .cfc-cal-shell {
    width: 100%;
  }

  .cfc-cal-hero {
    min-height: 32vh;
    padding: clamp(80px, 16vw, 106px) 0 30px;
  }

  .cfc-cal-hero-inner {
    padding: 0 20px;
  }

  .cfc-cal-hero h1 {
    font-size: 2.5rem;
  }

  .cfc-cal-main,
  .cfc-cal-upcoming,
  .cfc-cal-closing {
    padding: 40px 0;
  }

  .cfc-cal-nav {
    padding: 14px 16px;
  }

  .cfc-cal-nav-month {
    font-size: 1.2rem;
  }

  .cfc-cal-nav-btn {
    width: 34px !important;
    height: 34px !important;
    font-size: 1.1rem;
  }

  .cfc-cal-dow span {
    font-size: 0;
    padding: 10px 8px;
  }

  .cfc-cal-dow span::after {
    content: attr(data-short);
    color: rgba(35, 38, 22, 0.45);
    font-family: "Alegreya Sans", "Montserrat", sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
  }

  .cfc-cal-day {
    min-height: 80px;
    padding: 6px;
  }

  .cfc-cal-day-number {
    width: 22px;
    height: 22px;
    font-size: 0.7rem;
    margin-bottom: 4px;
  }

  .cfc-cal-day-events {
    gap: 2px;
  }

  .cfc-cal-event-label {
    font-size: 0.62rem;
    min-height: 17px;
    padding: 2px 5px 2px 4px;
    gap: 0;
  }

  .cfc-cal-event-label-name {
    display: none;
  }

  .cfc-cal-event-label-time {
    font-size: 0.62rem;
    font-weight: 900;
  }

  .cfc-cal-day-more {
    font-size: 0.6rem;
  }

  .cfc-cal-upcoming-head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 18px;
    padding: 0 20px;
  }

  .cfc-cal-upcoming-list,
  .cfc-cal-upcoming-subscribe {
    padding: 0 20px;
  }

  .cfc-cal-upcoming-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 12px 14px;
  }

  .cfc-cal-upcoming-date,
  .cfc-cal-upcoming-time {
    display: none;
  }

  .cfc-cal-upcoming-meta-mobile {
    display: block;
    font-size: 0.75rem;
  }

  .cfc-cal-closing-actions {
    flex-direction: column;
    align-items: stretch;
    padding: 0 20px;
  }

  .cfc-cal-detail-panel {
    display: none;
  }

  .cfc-cal-bottom-sheet {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    max-height: 60vh;
    background: #ffffff;
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -4px 20px rgba(35, 38, 22, 0.12);
    z-index: 120;
    transform: translateY(100%);
    transition: transform 0.3s ease-out;
    overflow: hidden;
    padding-bottom: env(safe-area-inset-bottom, 0);
  }

  .cfc-cal-bottom-sheet.is-open {
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-cal-day,
  .cfc-cal-detail-body,
  .cfc-cal-upcoming-row,
  .cfc-cal-event-label,
  .cfc-cal-days,
  .cfc-cal-detail-panel,
  .cfc-cal-bottom-sheet,
  .cfc-cal-sheet-backdrop,
  .cfc-calendar.cfc-calendar--animated [data-cal-reveal] {
    transition: none !important;
  }

  .cfc-cal-day.is-pulse .cfc-cal-day-number {
    animation: none !important;
  }

  .cfc-calendar.cfc-calendar--animated [data-cal-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Contact Page -- */
.cfc-contact {
  background: #f2ebdd;
  color: #232616;
}

.cfc-contact h1,
.cfc-contact h2,
.cfc-contact h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-contact-container {
  width: min(1100px, calc(100% - 64px));
  margin: 0 auto;
}

.cfc-contact-hero {
  min-height: 40vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: #232616;
  background-image:
    linear-gradient(
      to top,
      rgba(35, 38, 22, 0.9) 0%,
      rgba(35, 38, 22, 0.68) 52%,
      rgba(35, 38, 22, 0.56) 100%
    ),
    var(--cfc-contact-hero-image, none);
  background-size: cover;
  background-position: center 40%;
  padding: clamp(86px, 10vw, 122px) 0 38px;
}

.cfc-contact-hero-inner {
  max-width: 700px;
}

.cfc-contact-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-contact-hero h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.6rem, 5.6vw, 3.5rem);
  line-height: 1.08;
}

.cfc-contact-hero-rule {
  display: block;
  width: 50px;
  height: 2px;
  margin: 24px auto;
  background: #8b8b38;
}

.cfc-contact-hero-intro {
  margin: 0;
  color: rgba(242, 235, 221, 0.75);
  font-size: 1.1rem;
  line-height: 1.8;
}

.cfc-contact-panels-wrap {
  background: #f2ebdd;
  padding: 70px 0 80px;
}

.cfc-contact-panels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: start;
}

.cfc-contact-form {
  background: #ffffff;
  border-radius: 8px;
  padding: 40px;
  box-shadow: 0 2px 20px rgba(35, 38, 22, 0.06);
}

.cfc-contact-form-header {
  margin: 0 0 20px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-contact-success {
  text-align: center;
  padding: 60px 20px;
}

.cfc-contact-success-check {
  width: 50px;
  height: 50px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: #8b8b38;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1.5rem;
  font-weight: 800;
}

.cfc-contact-success h2 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.6rem;
}

.cfc-contact-success p {
  margin: 8px 0 0;
  color: rgba(35, 38, 22, 0.7);
  font-size: 1rem;
  line-height: 1.7;
}

.cfc-contact-success a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  text-decoration: none;
}

.cfc-contact-success a:hover,
.cfc-contact-success a:focus-visible {
  color: #c47f54;
}

.cfc-contact-error {
  margin-bottom: 20px;
  border-left: 3px solid #d4956a;
  border-radius: 4px;
  background: rgba(212, 149, 106, 0.1);
  padding: 12px 16px;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
}

.cfc-contact-form-row {
  display: grid;
  gap: 16px;
}

.cfc-contact-form-row--two {
  grid-template-columns: 1fr 1fr;
}

.cfc-form-field {
  margin-bottom: 20px;
}

.cfc-form-label {
  display: block;
  margin-bottom: 8px;
  color: rgba(35, 38, 22, 0.5);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-form-required {
  color: #d4956a;
}

.cfc-form-input,
.cfc-form-select,
.cfc-form-textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid rgba(35, 38, 22, 0.1);
  border-radius: 4px;
  background: #f2ebdd;
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.45;
  outline: none;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    background-color 0.3s ease;
}

.cfc-form-input:focus,
.cfc-form-select:focus,
.cfc-form-textarea:focus {
  border-color: #8b8b38;
  box-shadow: 0 0 0 3px rgba(139, 139, 56, 0.1);
  background: #ffffff;
}

.cfc-form-field--select {
  position: relative;
}

.cfc-form-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 42px;
}

.cfc-form-field--select::after {
  content: "\25BE";
  position: absolute;
  right: 14px;
  bottom: 14px;
  color: #8b8b38;
  font-size: 0.75rem;
  pointer-events: none;
}

.cfc-contact-serve-ministry-field {
  display: none;
}

.cfc-contact-serve-ministry-field.is-visible {
  display: block;
}

.cfc-form-textarea {
  min-height: 140px;
  resize: vertical;
}

.cfc-contact-honeypot {
  display: none;
}

.cfc-form-submit {
  width: 100%;
  border: 0;
  border-radius: 4px;
  padding: 14px 0;
  background: #d4956a;
  color: #ffffff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    transform 0.2s ease;
}

.cfc-form-submit:hover,
.cfc-form-submit:focus-visible {
  background: #c47f54;
  transform: translateY(-1px);
}

.cfc-form-submit:active {
  transform: translateY(0);
}

.cfc-form-submit {
  position: relative;
  overflow: hidden;
}

.cfc-form-submit.is-loading {
  color: transparent !important;
  pointer-events: none;
  transform: none !important;
}

.cfc-form-submit.is-loading::before {
  content: "Sending...";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: inherit;
  font-weight: 800;
  letter-spacing: inherit;
  text-transform: uppercase;
}

.cfc-form-submit.is-loading::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 14px;
  width: 13px;
  height: 13px;
  margin-top: -6.5px;
  border: 2px solid rgba(255, 255, 255, 0.42);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: cfc-form-submit-spin 0.72s linear infinite;
}

.cfc-contact-form,
.cfc-plan-visit-form-wrap,
.cfc-kids-register-form-card,
.cfc-kids-serve-form-card,
.cfc-worship-serve-form-card,
.cfc-bb-volunteer-form-wrap {
  position: relative;
}

.cfc-contact-form.is-submitting::before,
.cfc-plan-visit-form-wrap.is-submitting::before,
.cfc-kids-register-form-card.is-submitting::before,
.cfc-kids-serve-form-card.is-submitting::before,
.cfc-worship-serve-form-card.is-submitting::before,
.cfc-bb-volunteer-form-wrap.is-submitting::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  z-index: 6;
  pointer-events: none;
  border-radius: 2px 2px 0 0;
  background-image: linear-gradient(
    90deg,
    rgba(139, 139, 56, 0.08) 0%,
    rgba(139, 139, 56, 0.94) 50%,
    rgba(139, 139, 56, 0.08) 100%
  );
  background-size: 220% 100%;
  animation: cfc-form-progress-sweep 1.05s linear infinite;
}

.cfc-bb-volunteer-form-wrap.is-submitting::before {
  background-image: linear-gradient(
    90deg,
    rgba(212, 149, 106, 0.1) 0%,
    rgba(212, 149, 106, 0.95) 50%,
    rgba(212, 149, 106, 0.1) 100%
  );
}

@keyframes cfc-form-submit-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes cfc-form-progress-sweep {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -20% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-form-submit.is-loading::after,
  .cfc-contact-form.is-submitting::before,
  .cfc-plan-visit-form-wrap.is-submitting::before,
  .cfc-kids-serve-form-card.is-submitting::before,
  .cfc-worship-serve-form-card.is-submitting::before,
  .cfc-bb-volunteer-form-wrap.is-submitting::before {
    animation: none !important;
  }
}

.cfc-contact-email-fallback {
  margin: 20px 0 0;
  text-align: center;
  color: rgba(35, 38, 22, 0.55);
  font-size: 0.88rem;
  line-height: 1.8;
}

.cfc-contact-email-fallback a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-contact-email-fallback a:hover,
.cfc-contact-email-fallback a:focus-visible {
  color: #c47f54;
}

.cfc-contact-info {
  padding-top: 4px;
}

.cfc-contact-info-section + .cfc-contact-info-section {
  margin-top: 36px;
}

.cfc-contact-info-label {
  margin: 0 0 16px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-contact-info h2 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.5rem;
  line-height: 1.3;
}

.cfc-contact-address {
  margin: 6px 0 0;
  color: rgba(35, 38, 22, 0.7);
  font-size: 1rem;
  line-height: 1.7;
}

.cfc-contact-map {
  margin-top: 20px;
}

.cfc-contact-map iframe {
  width: 100%;
  height: 280px;
  border: 2px solid rgba(139, 139, 56, 0.15);
  border-radius: 8px;
  display: block;
  transition: border-color 0.4s ease;
}

.cfc-contact-map:hover iframe {
  border-color: rgba(139, 139, 56, 0.35);
}

.cfc-contact-map-link {
  margin: 10px 0 0;
}

.cfc-contact-map-link a {
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  text-decoration: none;
}

.cfc-contact-map-link a:hover,
.cfc-contact-map-link a:focus-visible {
  color: #c47f54;
}

.cfc-contact-methods {
  display: block;
}

.cfc-contact-method-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.cfc-contact-method-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 800;
}

.cfc-contact-method-icon--phone {
  background: rgba(139, 139, 56, 0.1);
  color: #8b8b38;
}

.cfc-contact-method-icon--email {
  background: rgba(212, 149, 106, 0.1);
  color: #d4956a;
}

.cfc-contact-method-icon--location {
  background: rgba(168, 184, 140, 0.16);
  color: #7a8450;
}

.cfc-contact-method-row a {
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.95rem;
  text-decoration: none;
}

.cfc-contact-method-row a[href^="mailto:"] {
  color: #d4956a;
}

.cfc-contact-method-row a:hover,
.cfc-contact-method-row a:focus-visible {
  opacity: 0.8;
}

.cfc-contact-schedule-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
}

.cfc-contact-schedule-time {
  min-width: 90px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
}

.cfc-contact-schedule-label {
  color: #232616;
  font-size: 0.95rem;
}

.cfc-contact-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
}

.cfc-contact-socials a {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  border-radius: 6px;
  border: 1px solid rgba(35, 38, 22, 0.08);
  background: #ffffff;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  text-decoration: none;
  transition:
    border-color 0.3s ease,
    background-color 0.3s ease;
}

.cfc-contact-socials a:hover,
.cfc-contact-socials a:focus-visible {
  border-color: rgba(139, 139, 56, 0.25);
  background: rgba(139, 139, 56, 0.04);
}

.cfc-contact-closing {
  background: #232616;
  padding: 50px 0;
}

.cfc-contact-closing-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-contact-closing-dots {
  display: inline-flex;
  gap: 8px;
  margin-bottom: 24px;
}

.cfc-contact-closing-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8b8b38;
}

.cfc-contact-closing-verse {
  margin: 0;
  color: rgba(242, 235, 221, 0.75);
  font-size: 1.1rem;
  font-style: italic;
  line-height: 2;
}

.cfc-contact-closing-reference {
  margin: 12px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-contact.cfc-contact--animated [data-contact-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s ease-out;
  transition-delay: var(--cfc-contact-delay, 0s);
}

.cfc-contact.cfc-contact--animated [data-contact-reveal="left"] {
  transform: translateX(-20px);
}

.cfc-contact.cfc-contact--animated [data-contact-reveal="right"],
.cfc-contact.cfc-contact--animated [data-contact-reveal="info"] {
  transform: translateX(20px);
}

.cfc-contact.cfc-contact--animated [data-contact-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 1024px) and (min-width: 769px) {
  .cfc-contact-container {
    width: min(100%, calc(100% - 56px));
  }

  .cfc-contact-panels {
    gap: 30px;
  }

  .cfc-contact-map iframe {
    height: 240px;
  }
}

@media (max-width: 768px) {
  .cfc-contact-container {
    width: min(100%, calc(100% - 40px));
  }

  .cfc-contact-hero {
    min-height: 35vh;
    background-position: center 30%;
    padding: clamp(82px, 12vw, 104px) 0 30px;
  }

  .cfc-contact-hero h1 {
    font-size: 2.5rem;
  }

  .cfc-contact-panels-wrap {
    padding: 50px 0;
  }

  .cfc-contact-panels {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .cfc-contact-form {
    padding: 28px 24px;
  }

  .cfc-contact-form-row--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cfc-contact-map iframe {
    height: 220px;
  }

  .cfc-contact-socials {
    gap: 10px;
  }
}

@media (max-width: 420px) {
  .cfc-contact-form-row--two {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-contact.cfc-contact--animated [data-contact-reveal],
  .cfc-form-input,
  .cfc-form-select,
  .cfc-form-textarea,
  .cfc-form-submit,
  .cfc-contact-map iframe {
    transition: none !important;
  }

  .cfc-contact.cfc-contact--animated [data-contact-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Give Page -- */
.cfc-give {
  background: #f2ebdd;
  color: #232616;
}

.cfc-give h1,
.cfc-give h2,
.cfc-give h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-give-container {
  width: min(1000px, calc(100% - 64px));
  margin: 0 auto;
}

.cfc-give-hero {
  min-height: 45vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #232616;
  background-image:
    linear-gradient(
      to top,
      rgba(35, 38, 22, 0.88) 0%,
      rgba(35, 38, 22, 0.66) 52%,
      rgba(35, 38, 22, 0.52) 100%
    ),
    var(--cfc-give-hero-image, none);
  background-size: cover;
  background-position: center;
  text-align: center;
  padding: clamp(92px, 10vw, 126px) 0 48px;
}

.cfc-give-hero-inner {
  max-width: 700px;
}

.cfc-give-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-give-hero h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.6rem, 5.6vw, 3.5rem);
  line-height: 1.05;
}

.cfc-give-hero-rule,
.cfc-give-rule {
  display: block;
  width: 50px;
  height: 2px;
  background: #8b8b38;
}

.cfc-give-hero-rule {
  margin: 24px auto 28px;
}

.cfc-give-hero-intro {
  margin: 0;
  color: rgba(242, 235, 221, 0.75);
  font-size: 1.1rem;
  line-height: 1.9;
}

.cfc-give-rule {
  margin: 14px 0 20px;
}

.cfc-give-rule--center {
  margin-left: auto;
  margin-right: auto;
}

.cfc-give-online {
  background: #f2ebdd;
  padding: 70px 0;
}

.cfc-give-online h2,
.cfc-give-funds h2,
.cfc-give-info h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.8rem, 4vw, 2.2rem);
  text-align: center;
}

.cfc-give-online-subtext {
  margin: 8px auto 0;
  max-width: 680px;
  color: rgba(35, 38, 22, 0.6);
  font-size: 1rem;
  line-height: 1.7;
  text-align: center;
}

.cfc-give-online-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.cfc-give-card {
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 8px;
  background: #ffffff;
  padding: 36px 28px;
  text-align: center;
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}

.cfc-give-card h3 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.25rem;
  line-height: 1.35;
}

.cfc-give-card .cfc-give-rule {
  margin-left: auto;
  margin-right: auto;
}

.cfc-give-card-detail {
  margin: 0;
  color: rgba(35, 38, 22, 0.75);
  font-size: 0.92rem;
  line-height: 1.75;
}

.cfc-give-card-fees {
  margin-top: 14px;
  border-radius: 6px;
  background: rgba(35, 38, 22, 0.03);
  padding: 12px 16px;
}

.cfc-give-card-fees p {
  margin: 0;
  color: rgba(35, 38, 22, 0.62);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.78rem;
  line-height: 1.6;
}

.cfc-give-card-cta-wrap {
  margin: 22px 0 0;
}

.cfc-give-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  border: 1px solid #d4956a;
  padding: 12px 24px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    transform 0.2s ease;
}

.cfc-give-button--outline {
  background: transparent;
  color: #d4956a;
}

.cfc-give-button--outline:hover,
.cfc-give-button--outline:focus-visible {
  background: #d4956a;
  color: #ffffff;
}

.cfc-give-button--solid {
  background: #d4956a;
  color: #ffffff;
}

.cfc-give-button--solid:hover,
.cfc-give-button--solid:focus-visible {
  background: #c47f54;
  color: #ffffff;
}

.cfc-give-button:hover,
.cfc-give-button:focus-visible {
  transform: translateY(-2px);
}

.cfc-give-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 24px rgba(35, 38, 22, 0.08);
}

.cfc-give-card-primary {
  border: 0;
  background: #232616;
  box-shadow: 0 8px 32px rgba(35, 38, 22, 0.16);
}

.cfc-give-card-primary h3 {
  color: #f2ebdd !important;
  font-size: 1.5rem;
}

.cfc-give-card-primary .cfc-give-card-detail {
  color: rgba(242, 235, 221, 0.72);
}

.cfc-give-card-primary .cfc-give-rule {
  background: #8b8b38;
}

.cfc-give-card-primary:hover {
  box-shadow: 0 10px 36px rgba(35, 38, 22, 0.2);
}

.cfc-give-mail {
  background: #ffffff;
  padding: 50px 0;
}

.cfc-give-mail-inner {
  max-width: 420px;
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin: 0 auto;
  background: rgba(35, 38, 22, 0.03);
  border: 1px solid rgba(35, 38, 22, 0.06);
  border-radius: 8px;
  padding: 24px 28px;
}

.cfc-give-mail-label {
  margin: 0 0 6px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-give-mail-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(139, 139, 56, 0.08);
  color: #8b8b38;
}

.cfc-give-mail-icon .fas {
  width: 24px;
  height: 24px;
  display: block;
  font-size: 1.15rem;
  line-height: 1;
}

.cfc-give-mail-content {
  flex: 1;
  min-width: 0;
}

.cfc-give-mail-address {
  margin: 0;
  color: rgba(35, 38, 22, 0.75);
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.92rem;
  line-height: 1.6;
}

.cfc-give-mail-church-name {
  display: block;
  margin-bottom: 2px;
  color: #232616;
  font-size: 0.95rem;
  font-weight: 700;
}

.cfc-give-funds {
  background: #f2ebdd;
  padding: 70px 0;
}

.cfc-give-funds-intro {
  max-width: 750px;
  margin: 20px auto 40px;
  color: rgba(35, 38, 22, 0.72);
  font-size: 1rem;
  line-height: 1.9;
  text-align: center;
}

.cfc-give-funds-accordion {
  max-width: 800px;
  margin: 0 auto;
}

.cfc-give-fund {
  margin-bottom: 8px;
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 1px 8px rgba(35, 38, 22, 0.04);
  transition: box-shadow 0.3s ease;
}

.cfc-give-fund:hover {
  box-shadow: 0 2px 16px rgba(35, 38, 22, 0.07);
}

.cfc-give-fund-header {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 20px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.2s ease;
}

.cfc-give-fund-header:hover,
.cfc-give-fund-header:focus-visible {
  background: rgba(139, 139, 56, 0.04);
}

.cfc-give-fund-heading-wrap {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}

.cfc-give-fund-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}

.cfc-give-fund-dot--apricot {
  background: #d4956a;
}

.cfc-give-fund-dot--springwater {
  background: #a8b88c;
}

.cfc-give-fund-dot--branch {
  background: #6b5b3e;
}

.cfc-give-fund-dot--chateau {
  background: #6e4e5c;
}

.cfc-give-fund-dot--citron {
  background: #8b8b38;
}

.cfc-give-fund-name {
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.1rem;
  font-weight: 800;
}

.cfc-give-fund-chevron,
.cfc-give-legacy-chevron {
  width: 12px;
  height: 12px;
  color: rgba(35, 38, 22, 0.38);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  line-height: 1;
  transition: transform 0.3s ease;
}

.cfc-give-fund-body,
.cfc-give-legacy-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.cfc-give-fund.is-open .cfc-give-fund-body,
.cfc-give-legacy.is-open .cfc-give-legacy-body {
  max-height: 1200px;
}

.cfc-give-fund-body-inner {
  padding: 0 28px 24px;
}

.cfc-give-fund-body p {
  margin: 0;
  color: rgba(35, 38, 22, 0.82);
  font-size: 0.95rem;
  line-height: 1.85;
}

.cfc-give-fund-body a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-give-fund-body a:hover,
.cfc-give-fund-body a:focus-visible {
  color: #c47f54;
}

.cfc-give-fund.is-open .cfc-give-fund-chevron,
.cfc-give-legacy.is-open .cfc-give-legacy-chevron {
  transform: rotate(180deg);
}

.cfc-give-info {
  background: #ffffff;
  padding: 70px 0;
}

.cfc-give-tax {
  margin-top: 8px;
  border-radius: 8px;
  background: #f2ebdd;
  padding: 32px 36px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}

.cfc-give-tax p {
  margin: 0;
  color: rgba(35, 38, 22, 0.86);
  font-size: 0.95rem;
  line-height: 1.85;
}

.cfc-give-info-grid {
  margin-top: 30px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}

.cfc-give-info-card {
  border: 1px solid rgba(35, 38, 22, 0.06);
  border-radius: 8px;
  background: #ffffff;
  padding: 28px;
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}

.cfc-give-info-card h3 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.15rem;
}

.cfc-give-info-card p {
  margin: 0;
  color: rgba(35, 38, 22, 0.8);
  font-size: 0.88rem;
  line-height: 1.85;
}

.cfc-give-info-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(35, 38, 22, 0.07);
}

.cfc-give-legacy {
  margin-top: 30px;
  border: 1px dashed rgba(35, 38, 22, 0.2);
  border-radius: 8px;
  padding: 0;
}

.cfc-give-legacy-header {
  width: 100%;
  border: 0;
  background: transparent;
  color: rgba(35, 38, 22, 0.7);
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  cursor: pointer;
  padding: 22px 28px;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.1rem;
  font-weight: 800;
}

.cfc-give-legacy-body-inner {
  padding: 0 28px 24px;
}

.cfc-give-legacy-body p {
  margin: 0;
  color: rgba(35, 38, 22, 0.75);
  font-size: 0.9rem;
  line-height: 1.85;
}

.cfc-give-legacy-body p + p {
  margin-top: 12px;
}

.cfc-give-legacy-fees {
  margin-top: 16px;
  border-radius: 6px;
  background: rgba(35, 38, 22, 0.03);
  padding: 20px 24px;
}

.cfc-give-legacy-fees-label {
  margin: 0 0 10px !important;
  color: rgba(35, 38, 22, 0.6) !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem !important;
  font-weight: 800;
}

.cfc-give-legacy-fees p {
  position: relative;
  margin: 0 0 4px;
  color: rgba(35, 38, 22, 0.68);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  line-height: 1.8;
  padding-left: 14px;
}

.cfc-give-legacy-fees p::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(35, 38, 22, 0.45);
  position: absolute;
  top: 0.75em;
  left: 0;
}

.cfc-give-legacy-link-wrap a {
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  text-decoration: none;
}

.cfc-give-legacy-link-wrap a:hover,
.cfc-give-legacy-link-wrap a:focus-visible {
  color: #c47f54;
}

.cfc-give-closing {
  background: #232616;
  padding: 60px 0;
}

.cfc-give-closing-inner {
  max-width: 650px;
  text-align: center;
}

.cfc-give-closing p {
  margin: 0;
  color: rgba(242, 235, 221, 0.82);
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-give-closing-cta {
  margin-top: 26px !important;
}

.cfc-give.cfc-give--animated [data-give-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s ease-out;
  transition-delay: var(--cfc-give-delay, 0s);
}

.cfc-give.cfc-give--animated [data-give-reveal="online-card"] {
  transform: translateY(22px);
}

.cfc-give.cfc-give--animated [data-give-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 1100px) {
  .cfc-give-container {
    width: min(100%, calc(100% - 56px));
  }

  .cfc-give-online-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cfc-give-card-primary {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .cfc-give-container {
    width: min(100%, calc(100% - 40px));
  }

  .cfc-give-hero {
    min-height: 40vh;
    padding: clamp(82px, 12vw, 104px) 0 36px;
  }

  .cfc-give-hero h1 {
    font-size: 2.5rem;
  }

  .cfc-give-online,
  .cfc-give-funds,
  .cfc-give-info,
  .cfc-give-closing {
    padding: 50px 0;
  }

  .cfc-give-mail {
    padding: 50px 0;
  }

  .cfc-give-online-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .cfc-give-card,
  .cfc-give-card-primary {
    grid-column: auto;
    padding: 30px 22px;
  }

  .cfc-give-mail-inner {
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 22px;
  }

  .cfc-give-fund-header,
  .cfc-give-fund-body-inner {
    padding-left: 20px;
    padding-right: 20px;
  }

  .cfc-give-tax {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px 20px;
  }

  .cfc-give-info-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .cfc-give-info-card {
    padding: 24px 20px;
  }

  .cfc-give-legacy-header,
  .cfc-give-legacy-body-inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-give.cfc-give--animated [data-give-reveal],
  .cfc-give-card,
  .cfc-give-button,
  .cfc-give-fund,
  .cfc-give-fund-header,
  .cfc-give-fund-body,
  .cfc-give-legacy-body,
  .cfc-give-info-card {
    transition: none !important;
  }

  .cfc-give.cfc-give--animated [data-give-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- For Members Page -- */
.cfc-members {
  background: #f2ebdd;
  color: #232616;
}

.cfc-members h1,
.cfc-members h2,
.cfc-members h3 {
  font-family: "Alegreya", Georgia, serif !important;
  text-transform: none;
  letter-spacing: normal;
}

.cfc-members-container {
  width: min(1000px, calc(100% - 64px));
  margin: 0 auto;
}

.cfc-members-gate-page {
  background: #232616;
  min-height: 100vh;
}

.cfc-members-gate {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  transform: scale(0.96);
  transition:
    opacity 0.4s ease-out,
    transform 0.4s ease-out;
}

.cfc-members-gate.is-visible {
  opacity: 1;
  transform: scale(1);
}

.cfc-members-gate-card {
  width: min(100%, 420px);
  border-radius: 8px;
  background: #f2ebdd;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
  padding: 50px 48px;
  text-align: center;
}

.cfc-members-gate-brand {
  margin: 0;
  color: #232616;
  font-size: 1.5rem;
  font-weight: 800;
}

.cfc-members-gate-card h1 {
  margin: 8px 0 0;
  color: #232616 !important;
  font-size: 2rem;
}

.cfc-members-gate-rule {
  display: block;
  width: 50px;
  height: 2px;
  margin: 20px auto;
  background: #8b8b38;
}

.cfc-members-gate-copy {
  margin: 0;
  color: rgba(35, 38, 22, 0.6);
  font-size: 0.95rem;
  line-height: 1.7;
}

.cfc-members-gate-form {
  margin-top: 28px;
}

.cfc-members-gate-form label {
  display: block;
  margin: 0 0 8px;
  text-align: left;
  color: rgba(35, 38, 22, 0.45);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-members-gate-form input {
  width: 100%;
  border: 1px solid rgba(35, 38, 22, 0.12);
  border-radius: 4px;
  background: #ffffff;
  color: #232616;
  padding: 14px 18px;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  letter-spacing: 2px;
  text-align: center;
  outline: none;
}

.cfc-members-gate-form input:focus {
  border-color: #8b8b38;
  box-shadow: 0 0 0 3px rgba(139, 139, 56, 0.1);
}

.cfc-members-gate-form button {
  width: 100%;
  border: 0;
  border-radius: 4px;
  margin-top: 16px;
  padding: 14px 0;
  background: #d4956a;
  color: #ffffff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.cfc-members-gate-form button:hover,
.cfc-members-gate-form button:focus-visible {
  background: #c47f54;
}

.cfc-members-gate-error {
  margin: 12px 0 0;
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
}

.cfc-members-header {
  min-height: 35vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: #232616;
  background-image:
    linear-gradient(
      to top,
      rgba(35, 38, 22, 0.9) 0%,
      rgba(35, 38, 22, 0.68) 52%,
      rgba(35, 38, 22, 0.56) 100%
    ),
    var(--cfc-members-hero-image, none);
  background-size: cover;
  background-position: center;
  padding: clamp(82px, 9vw, 114px) 0 34px;
}

.cfc-members-header-inner {
  max-width: 760px;
}

.cfc-members-header-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-members-header h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2rem, 5vw, 2.8rem);
  line-height: 1.12;
}

.cfc-members-header-rule {
  display: block;
  width: 50px;
  height: 2px;
  margin: 20px auto;
  background: #8b8b38;
}

.cfc-members-header-intro {
  margin: 0;
  color: rgba(242, 235, 221, 0.64);
  font-size: 1rem;
  line-height: 1.85;
}

.cfc-members-header-intro a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-members-header-intro a:hover,
.cfc-members-header-intro a:focus-visible {
  color: #c47f54;
}

.cfc-members-nav-pills {
  margin-top: 24px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}

.cfc-members-nav-pills a {
  border: 1px solid rgba(242, 235, 221, 0.12);
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(242, 235, 221, 0.64);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  padding: 6px 16px;
  transition:
    border-color 0.3s ease,
    background-color 0.3s ease,
    color 0.3s ease;
}

.cfc-members-nav-pills a:hover,
.cfc-members-nav-pills a:focus-visible,
.cfc-members-nav-pills a.is-active {
  border-color: rgba(139, 139, 56, 0.4);
  background: rgba(139, 139, 56, 0.1);
  color: #f2ebdd;
}

.cfc-members-content {
  background: #f2ebdd;
  padding: 60px 0;
}

.cfc-members-category {
  margin-bottom: 60px;
}

.cfc-members-category-header {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 12px;
}

.cfc-members-category-header h2 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.6rem;
}

.cfc-members-category-count {
  color: rgba(35, 38, 22, 0.34);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
}

.cfc-members-category-rule {
  flex: 1;
  height: 1px;
  background: rgba(35, 38, 22, 0.1);
}

.cfc-members-category-intro {
  margin: 0 0 20px;
  color: rgba(35, 38, 22, 0.62);
  font-size: 0.95rem;
  line-height: 1.8;
}

.cfc-members-category-intro a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-members-category-intro a:hover,
.cfc-members-category-intro a:focus-visible {
  color: #c47f54;
}

.cfc-members-quick-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.cfc-members-quick-card {
  background: #ffffff;
  border-radius: 8px;
  border-left: 4px solid #8b8b38;
  padding: 28px;
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}

.cfc-members-quick-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(35, 38, 22, 0.07);
}

.cfc-members-quick-card h3 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.1rem;
}

.cfc-members-quick-card p {
  margin: 8px 0 0;
  color: rgba(35, 38, 22, 0.72);
  font-size: 0.9rem;
  line-height: 1.75;
}

.cfc-members-quick-card a {
  display: inline-flex;
  margin-top: 14px;
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  text-decoration: none;
}

.cfc-members-quick-card a:hover,
.cfc-members-quick-card a:focus-visible {
  color: #c47f54;
}

.cfc-members-embed-wrap {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 2px 16px rgba(35, 38, 22, 0.06);
  margin-top: 12px;
}

.cfc-members-embed-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.cfc-members-resource-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  background: #ffffff;
  border-radius: 6px;
  padding: 16px 20px;
  margin-bottom: 6px;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.cfc-members-resource-row:hover {
  transform: translateX(4px);
  box-shadow: 0 2px 12px rgba(35, 38, 22, 0.06);
}

.cfc-members-pinned {
  border-left: 3px solid #8b8b38;
}

.cfc-members-resource-main {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.cfc-members-resource-badge {
  width: 36px;
  height: 36px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.5rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.cfc-members-badge-pdf {
  background: rgba(212, 149, 106, 0.12);
  color: #d4956a;
}

.cfc-members-badge-yt {
  background: rgba(255, 0, 0, 0.06);
  color: #cc0000;
}

.cfc-members-badge-link {
  background: rgba(139, 139, 56, 0.1);
  color: #8b8b38;
}

.cfc-members-resource-copy {
  min-width: 0;
}

.cfc-members-resource-title {
  display: inline-block;
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  font-weight: 800;
  text-decoration: none;
}

.cfc-members-resource-title:hover,
.cfc-members-resource-title:focus-visible {
  color: #d4956a;
}

.cfc-members-resource-meta {
  margin: 3px 0 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
  color: rgba(35, 38, 22, 0.45);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
}

.cfc-members-resource-meta span + span::before {
  content: "\00B7";
  margin-right: 8px;
}

.cfc-members-resource-action {
  border: 1px solid rgba(139, 139, 56, 0.25);
  border-radius: 3px;
  padding: 6px 16px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.cfc-members-resource-action:hover,
.cfc-members-resource-action:focus-visible {
  background: rgba(139, 139, 56, 0.08);
  border-color: rgba(139, 139, 56, 0.42);
}

.cfc-members-meeting-group {
  border-left: 2px solid rgba(139, 139, 56, 0.15);
  padding-left: 16px;
  margin-bottom: 24px;
}

.cfc-members-meeting-group-label {
  margin: 0 0 10px;
  color: rgba(35, 38, 22, 0.35);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.cfc-members-year-sub {
  margin: 24px 0 8px;
  color: rgba(35, 38, 22, 0.22);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-members-cbts-card {
  background: #ffffff;
  border-radius: 8px;
  border-left: 4px solid #6b5b3e;
  padding: 32px;
}

.cfc-members-cbts-card h3 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.3rem;
}

.cfc-members-cbts-card p {
  margin: 10px 0 0;
  color: rgba(35, 38, 22, 0.78);
  font-size: 0.95rem;
  line-height: 1.85;
}

.cfc-members-cbts-card a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-members-cbts-card a:hover,
.cfc-members-cbts-card a:focus-visible {
  color: #c47f54;
}

.cfc-members-cbts-button {
  display: inline-flex;
  margin-top: 16px;
  border: 1px solid #d4956a;
  border-radius: 4px;
  padding: 10px 16px;
  color: #d4956a !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
}

.cfc-members-cbts-button:hover,
.cfc-members-cbts-button:focus-visible {
  background: #d4956a;
  color: #ffffff !important;
}

.cfc-members-closing {
  background: #232616;
  padding: 50px 0;
}

.cfc-members-closing-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-members-closing-inner p {
  margin: 0;
  color: rgba(242, 235, 221, 0.68);
  font-size: 1rem;
  line-height: 1.9;
}

.cfc-members-closing-inner a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-members-closing-inner a:hover,
.cfc-members-closing-inner a:focus-visible {
  color: #c47f54;
}

.cfc-members-closing-email {
  margin-top: 12px !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.92rem !important;
}

.cfc-members.cfc-members--animated [data-members-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.45s ease-out,
    transform 0.45s ease-out;
  transition-delay: var(--cfc-members-delay, 0s);
}

.cfc-members.cfc-members--animated [data-members-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 1024px) {
  .cfc-members-container {
    width: min(100%, calc(100% - 56px));
  }
}

@media (max-width: 768px) {
  .cfc-members-container {
    width: min(100%, calc(100% - 40px));
  }

  .cfc-members-gate-card {
    padding: 36px 24px;
  }

  .cfc-members-header {
    min-height: 30vh;
    padding: clamp(78px, 11vw, 96px) 0 28px;
  }

  .cfc-members-header h1 {
    font-size: 2rem;
  }

  .cfc-members-nav-pills {
    gap: 8px;
  }

  .cfc-members-content {
    padding: 40px 0;
  }

  .cfc-members-quick-grid {
    grid-template-columns: 1fr;
  }

  .cfc-members-resource-row {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .cfc-members-resource-action {
    justify-self: start;
  }

  .cfc-members-meeting-group {
    padding-left: 12px;
  }

  .cfc-members-closing {
    padding: 40px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-members-gate,
  .cfc-members.cfc-members--animated [data-members-reveal],
  .cfc-members-resource-row,
  .cfc-members-resource-action,
  .cfc-members-quick-card,
  .cfc-members-cbts-button {
    transition: none !important;
  }

  .cfc-members.cfc-members--animated [data-members-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Who We Are Page -- */
html {
  scroll-behavior: smooth;
}

.cfc-who-we-are {
  position: relative;
  background: #f2ebdd;
  color: #232616;
}

.cfc-who-we-are-container {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-who-we-are-hero {
  position: relative;
  min-height: 55vh;
  display: flex;
  align-items: center;
  background: #232616;
  padding: clamp(94px, 11vw, 148px) 0;
  overflow: hidden;
}

.cfc-who-we-are-hero.has-image {
  background-image: var(--cfc-who-we-are-hero-image);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.cfc-who-we-are-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 38, 22, 0.68);
}

.cfc-who-we-are-hero .cfc-who-we-are-container {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.cfc-who-we-are-hero-label {
  margin: 0 0 10px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.75rem;
  font-weight: 800;
  color: #a8b88c;
}

.cfc-who-we-are-hero-title {
  margin: 0;
  font-size: clamp(2.8rem, 5vw, 3.5rem);
  color: #f2ebdd !important;
  line-height: 1.08;
}

.cfc-who-we-are-hero-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 24px 0;
  background: #8b8b38;
}

.cfc-who-we-are-hero-intro {
  margin: 0;
  max-width: 650px;
  font-size: 1.15rem;
  line-height: 1.9;
  color: #f2ebdd;
}

.cfc-who-we-are-hero-subtext {
  margin: 20px 0 0;
  max-width: 680px;
  font-size: 1rem;
  line-height: 1.85;
  color: rgba(242, 235, 221, 0.78);
}

.cfc-identity-jump {
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.96em;
  font-weight: 800;
  letter-spacing: 0.25px;
  text-decoration: none;
  border-bottom: 1px solid rgba(139, 139, 56, 0.55);
  transition:
    border-color 0.25s ease,
    color 0.25s ease;
}

.cfc-identity-jump:hover,
.cfc-identity-jump:focus {
  color: #a8b88c;
  border-color: #a8b88c;
  text-decoration: none;
}

.cfc-sidebar-tracker {
  position: fixed;
  left: 40px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 140;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.cfc-sidebar-tracker.visible {
  opacity: 1;
  pointer-events: auto;
}

.cfc-sidebar-tracker ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.cfc-sidebar-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: rgba(35, 38, 22, 0.3);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    color 0.3s ease,
    opacity 0.3s ease;
}

.cfc-sidebar-link::before {
  content: "";
  width: 0;
  height: 2px;
  margin-right: 0;
  background: #8b8b38;
  transition:
    width 0.3s ease,
    margin-right 0.3s ease;
}

.cfc-sidebar-link.active {
  color: #8b8b38;
  opacity: 1;
  font-weight: 800;
}

.cfc-sidebar-link.active::before {
  width: 20px;
  margin-right: 8px;
}

.cfc-identity-section {
  position: relative;
  padding: 100px 0;
  scroll-margin-top: 120px;
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
}

.cfc-identity-section.cfc-visible {
  opacity: 1;
  transform: translateY(0);
}

.cfc-identity-section--a {
  background: #f2ebdd;
}

.cfc-identity-section--b {
  background: #ffffff;
}

.cfc-identity-section-inner {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
}

.cfc-identity-number {
  position: absolute;
  right: -20px;
  top: 50%;
  transform: translateY(-50%);
  font-family: "Alegreya", Georgia, serif;
  font-size: clamp(8rem, 12vw, 12rem);
  font-weight: 800;
  line-height: 1;
  color: rgba(35, 38, 22, 0.04);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.cfc-identity-heading,
.cfc-identity-body {
  position: relative;
  z-index: 1;
}

.cfc-identity-kicker {
  margin: 0 0 10px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #7a8450;
}

.cfc-identity-heading h2 {
  margin: 0;
  font-size: clamp(2.2rem, 4.5vw, 3rem);
  color: #232616 !important;
  line-height: 1.06;
}

.cfc-identity-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 20px 0 30px;
  background: #8b8b38;
}

.cfc-identity-body p {
  margin: 0 0 18px;
  color: rgba(35, 38, 22, 0.85);
  font-size: 1.08rem;
  line-height: 1.95;
}

.cfc-identity-body p:last-child {
  margin-bottom: 0;
}

.cfc-identity-body a {
  color: #d4956a;
  text-decoration: none;
  border-bottom: 1px solid rgba(212, 149, 106, 0.4);
  transition:
    color 0.25s ease,
    border-color 0.25s ease;
}

.cfc-identity-body a:hover,
.cfc-identity-body a:focus {
  color: #b87333;
  border-color: #d4956a;
}

.cfc-identity-heading,
.cfc-identity-rule,
.cfc-identity-body {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
}

.cfc-identity-rule {
  transition-delay: 0.1s;
}

.cfc-identity-body {
  transition-delay: 0.2s;
}

.cfc-identity-section.cfc-visible .cfc-identity-heading,
.cfc-identity-section.cfc-visible .cfc-identity-rule,
.cfc-identity-section.cfc-visible .cfc-identity-body {
  opacity: 1;
  transform: translateY(0);
}

.cfc-solas-block {
  margin: 40px 0;
  padding-left: 30px;
  border-left: 3px solid #8b8b38;
}

.cfc-solas-line {
  margin: 0 0 8px;
  line-height: 1.45;
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.45s ease-out,
    transform 0.45s ease-out;
}

.cfc-solas-line:last-child {
  margin-bottom: 0;
}

.cfc-solas-connector {
  color: #7a8450;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.9rem;
  margin-right: 6px;
}

.cfc-solas-keyword {
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: 0.25px;
}

.cfc-solas-alone {
  color: #8b8b38;
}

.cfc-identity-section.cfc-visible .cfc-solas-line {
  opacity: 1;
  transform: translateY(0);
}

.cfc-identity-section.cfc-visible .cfc-solas-line:nth-child(1) {
  transition-delay: 0.28s;
}

.cfc-identity-section.cfc-visible .cfc-solas-line:nth-child(2) {
  transition-delay: 0.38s;
}

.cfc-identity-section.cfc-visible .cfc-solas-line:nth-child(3) {
  transition-delay: 0.48s;
}

.cfc-identity-section.cfc-visible .cfc-solas-line:nth-child(4) {
  transition-delay: 0.58s;
}

.cfc-identity-section.cfc-visible .cfc-solas-line:nth-child(5) {
  transition-delay: 0.68s;
}

.cfc-evangelical-pillars {
  margin: 34px 0 36px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}

.cfc-evangelical-pillar {
  border-top: 2px solid #8b8b38;
  padding-top: 12px;
}

.cfc-evangelical-pillar p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.75;
}

.cfc-evangelical-pillar-label {
  margin: 0 0 8px !important;
  color: #8b8b38 !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 1.8px;
  font-size: 0.7rem !important;
  font-weight: 800;
}

.cfc-who-we-are-closing {
  background: #f2ebdd;
  padding: 28px 0 92px;
}

.cfc-who-we-are-dots {
  margin: 0;
  text-align: center;
  color: #8b8b38;
  font-size: 2rem;
  letter-spacing: 8px;
  line-height: 1;
}

.cfc-who-we-are-closing-text {
  margin: 10px auto 0;
  max-width: 800px;
  text-align: center;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.1rem;
  font-style: italic;
  line-height: 1.8;
  color: #7a8450;
}

.cfc-who-we-are-cta-row {
  margin-top: 28px;
  display: flex;
  justify-content: center;
  gap: 14px;
}

.cfc-who-we-are-cta-row .cfc-btn {
  background: #d4956a !important;
  border-color: #d4956a !important;
  color: #ffffff !important;
  border-radius: 4px !important;
  min-width: 180px;
  text-align: center;
}

.cfc-who-we-are-cta-row .cfc-btn:hover,
.cfc-who-we-are-cta-row .cfc-btn:focus {
  background: #c07e52 !important;
  border-color: #c07e52 !important;
  color: #ffffff !important;
}

@media (max-width: 1300px) {
  .cfc-sidebar-tracker {
    display: none;
  }
}

@media (max-width: 980px) {
  .cfc-evangelical-pillars {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

@media (max-width: 768px) {
  .cfc-who-we-are-container {
    width: min(100%, calc(100% - 30px));
  }

  .cfc-who-we-are-hero {
    min-height: 48vh;
    padding: clamp(80px, 12vw, 112px) 0;
  }

  .cfc-who-we-are-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-who-we-are-hero-title {
    font-size: 2.2rem;
  }

  .cfc-who-we-are-hero-intro {
    font-size: 1.02rem;
    line-height: 1.8;
  }

  .cfc-identity-section {
    padding: 60px 0;
  }

  .cfc-identity-section-inner {
    padding-top: 38px;
  }

  .cfc-identity-number {
    top: 0;
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    font-size: 5rem;
    opacity: 0.08;
  }

  .cfc-identity-heading h2 {
    font-size: 2.2rem;
  }

  .cfc-identity-body p {
    font-size: 1rem;
    line-height: 1.85;
  }

  .cfc-solas-block {
    margin: 28px 0;
    padding-left: 18px;
  }

  .cfc-solas-keyword {
    font-size: 1.08rem;
  }

  .cfc-who-we-are-closing {
    padding: 18px 0 72px;
  }

  .cfc-who-we-are-closing-text {
    text-align: left;
  }

  .cfc-who-we-are-cta-row {
    flex-direction: column;
    align-items: stretch;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .cfc-who-we-are-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-sidebar-tracker,
  .cfc-sidebar-link,
  .cfc-sidebar-link::before,
  .cfc-identity-section,
  .cfc-identity-heading,
  .cfc-identity-rule,
  .cfc-identity-body,
  .cfc-solas-line {
    transition: none !important;
  }

  .cfc-identity-section,
  .cfc-identity-heading,
  .cfc-identity-rule,
  .cfc-identity-body,
  .cfc-solas-line {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Hallmarks Page -- */
.cfc-hallmarks {
  position: relative;
  background: #f2ebdd;
  color: #232616;
  overflow: hidden;
}

.cfc-hallmarks h1,
.cfc-hallmarks h2,
.cfc-hallmarks h3 {
  font-family: "Alegreya", Georgia, serif !important;
  letter-spacing: normal;
  text-transform: none;
}

.cfc-hallmarks-container {
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
  position: relative;
}

.cfc-hallmarks-hero {
  position: relative;
  min-height: 55vh;
  background: #232616;
  color: #f2ebdd;
  padding: clamp(96px, 12vw, 152px) 0 0;
  overflow: hidden;
}

.cfc-hallmarks-hero.has-image {
  background-image: var(--cfc-hallmarks-hero-image);
  background-size: cover;
  background-position: center 80%;
  background-attachment: fixed;
}

.cfc-hallmarks-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 38, 22, 0.86);
}

.cfc-hallmarks-hero .cfc-hallmarks-container,
.cfc-hallmarks-hero .cfc-sola-nav {
  position: relative;
  z-index: 1;
}

.cfc-hallmarks-hero-main {
  max-width: 800px;
  padding-bottom: 56px;
}

.cfc-hallmarks-hero-label {
  margin: 0 0 12px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  font-size: 0.75rem;
  color: #a8b88c;
}

.cfc-hallmarks-hero-title {
  margin: 0;
  font-size: clamp(2.5rem, 5.5vw, 3.5rem);
  line-height: 1.1;
  color: #f2ebdd !important;
}

.cfc-hallmarks-hero-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 24px 0 30px;
  background: #8b8b38;
}

.cfc-hallmarks-hero-intro {
  margin: 0;
  max-width: 650px;
  font-size: 1.15rem;
  line-height: 1.9;
  color: rgba(242, 235, 221, 0.86);
}

.cfc-hallmarks-hero-v {
  position: absolute;
  right: -40px;
  top: 50%;
  transform: translateY(-50%);
  font-family: "Alegreya", Georgia, serif;
  font-weight: 800;
  font-size: clamp(12rem, 27vw, 20rem);
  line-height: 0.8;
  color: rgba(242, 235, 221, 0.03);
  pointer-events: none;
  user-select: none;
}

.cfc-sola-nav {
  width: min(900px, calc(100% - 80px));
  margin: 0 auto;
  padding: 0 0 60px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 14px;
}

.cfc-sola-nav-item {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
  min-width: 96px;
  color: inherit;
  text-decoration: none;
}

.cfc-sola-nav-number {
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.2rem;
  font-weight: 800;
  color: #c8a456;
  line-height: 1;
}

.cfc-sola-nav-name {
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 0.6rem;
  color: rgba(242, 235, 221, 0.55);
  line-height: 1.2;
}

.cfc-sola-nav-item::after {
  content: "";
  width: 0;
  height: 1px;
  background: #c8a456;
  margin-top: 6px;
  transition: width 0.3s ease;
}

.cfc-sola-nav-item:hover::after,
.cfc-sola-nav-item:focus-visible::after {
  width: 100%;
}

.cfc-sola-nav-item:hover,
.cfc-sola-nav-item:focus-visible {
  text-decoration: none;
}

.cfc-sola-nav-item:focus-visible {
  outline: 1px solid #c8a456;
  outline-offset: 6px;
}

.cfc-sola-section {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
}

.cfc-sola-section--vanilla {
  background: #f2ebdd;
}

.cfc-sola-section--white {
  background: #ffffff;
}

.cfc-sola-section--dark {
  background: #232616;
}

.cfc-sola-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  padding: 100px 40px 130px;
}

.cfc-sola-monument {
  position: relative;
  padding-left: 34px;
}

.cfc-sola-monument::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  width: 2px;
  height: 120px;
  background: rgba(200, 164, 86, 0.4);
}

.cfc-sola-watermark {
  position: absolute;
  top: -58px;
  left: 8px;
  font-family: "Alegreya", Georgia, serif;
  font-size: clamp(6.3rem, 11vw, 8rem);
  line-height: 1;
  font-weight: 800;
  pointer-events: none;
  user-select: none;
}

.cfc-sola-latin {
  margin: 0;
  font-size: clamp(2.6rem, 5vw, 3.5rem);
  line-height: 1.15;
  position: relative;
  z-index: 1;
}

.cfc-sola-word {
  display: block;
}

.cfc-sola-word.is-keyword {
  color: #c8a456 !important;
}

.cfc-sola-translation {
  margin: 26px 0 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.85rem;
}

.cfc-sola-content {
  position: relative;
  z-index: 1;
}

.cfc-sola-content-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 0 0 24px;
  background: #8b8b38;
}

.cfc-sola-content p {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.9;
  text-wrap: pretty;
}

.cfc-sola-pullquote {
  position: relative;
  grid-column: 1 / -1;
  justify-self: center;
  margin: 0;
  margin-top: 34px;
  max-width: 520px;
  text-align: center;
  font-family: "Alegreya", Georgia, serif;
  font-style: italic;
  font-size: 1.4rem;
  line-height: 1.45;
  color: #c8a456;
  z-index: 2;
}

.cfc-sola-section--vanilla .cfc-sola-watermark,
.cfc-sola-section--white .cfc-sola-watermark {
  color: rgba(35, 38, 22, 0.06);
}

.cfc-sola-section--vanilla .cfc-sola-word,
.cfc-sola-section--white .cfc-sola-word {
  color: #232616;
}

.cfc-sola-section--vanilla .cfc-sola-translation,
.cfc-sola-section--white .cfc-sola-translation {
  color: #7a8450;
}

.cfc-sola-section--vanilla .cfc-sola-content p,
.cfc-sola-section--white .cfc-sola-content p {
  color: rgba(35, 38, 22, 0.85);
}

.cfc-sola-section--dark .cfc-sola-watermark {
  color: rgba(242, 235, 221, 0.06);
}

.cfc-sola-section--dark .cfc-sola-word {
  color: #f2ebdd;
}

.cfc-sola-section--dark .cfc-sola-translation {
  color: #a8b88c;
}

.cfc-sola-section--dark .cfc-sola-content p {
  color: rgba(242, 235, 221, 0.85);
}

.cfc-hallmarks-closing {
  background: #232616;
  padding: 80px 0;
}

.cfc-hallmarks-closing-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-hallmarks-dots {
  display: inline-flex;
  align-items: center;
  gap: 16px;
}

.cfc-hallmarks-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #8b8b38;
}

.cfc-hallmarks-closing-text {
  margin: 30px 0 40px;
  font-family: "Alegreya", Georgia, serif;
  font-style: italic;
  font-size: 1.15rem;
  line-height: 1.9;
  color: rgba(242, 235, 221, 0.82);
}

.cfc-hallmarks-cta-row {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.cfc-hallmarks-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  border: 1px solid transparent;
  border-radius: 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease;
}

.cfc-hallmarks-btn--primary {
  background: #d4956a;
  border-color: #d4956a;
  color: #ffffff;
}

.cfc-hallmarks-btn--primary:hover,
.cfc-hallmarks-btn--primary:focus-visible {
  background: #c07e52;
  border-color: #c07e52;
  color: #ffffff;
  text-decoration: none;
}

.cfc-hallmarks-btn--ghost {
  background: transparent;
  border-color: rgba(242, 235, 221, 0.9);
  color: #f2ebdd;
}

.cfc-hallmarks-btn--ghost:hover,
.cfc-hallmarks-btn--ghost:focus-visible {
  background: #f2ebdd;
  border-color: #f2ebdd;
  color: #232616;
  text-decoration: none;
}

.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-watermark,
.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-word,
.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-translation,
.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-content-rule,
.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-content p,
.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-pullquote {
  opacity: 0;
}

.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-watermark,
.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-word,
.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-translation {
  transform: translateY(30px);
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
}

.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-content-rule,
.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-content p {
  transform: translateX(20px);
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
}

.cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-pullquote {
  transform: translateY(20px);
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-watermark,
.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-word,
.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-translation,
.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-content-rule,
.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-content
  p {
  opacity: 1;
  transform: translate(0, 0);
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-pullquote {
  opacity: 1;
  transform: translateY(0);
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-word:nth-child(1) {
  transition-delay: 0.05s;
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-word:nth-child(2) {
  transition-delay: 0.15s;
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-word:nth-child(3) {
  transition-delay: 0.25s;
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-translation {
  transition-delay: 0.3s;
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-content-rule {
  transition-delay: 0.3s;
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-content
  p {
  transition-delay: 0.4s;
}

.cfc-hallmarks.cfc-hallmarks--animated
  .cfc-sola-section.cfc-visible
  .cfc-sola-pullquote {
  transition-delay: 0.48s;
}

@media (max-width: 1024px) {
  .cfc-hallmarks-container {
    width: min(1100px, calc(100% - 48px));
  }

  .cfc-sola-grid {
    gap: 40px;
    padding: 88px 0;
  }

  .cfc-sola-latin {
    font-size: clamp(2.2rem, 4.5vw, 2.8rem);
  }

  .cfc-sola-pullquote {
    margin-top: 30px;
    max-width: 560px;
  }

  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-pullquote {
    transform: translateY(20px);
  }

  .cfc-hallmarks.cfc-hallmarks--animated
    .cfc-sola-section.cfc-visible
    .cfc-sola-pullquote {
    transform: none;
  }
}

@media (max-width: 768px) {
  .cfc-hallmarks-container {
    width: min(100%, calc(100% - 32px));
  }

  .cfc-hallmarks-hero {
    min-height: auto;
    padding-top: clamp(86px, 20vw, 112px);
  }

  .cfc-hallmarks-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-hallmarks-hero-main {
    padding-bottom: 42px;
  }

  .cfc-hallmarks-hero-title {
    font-size: clamp(2rem, 9vw, 2.5rem);
  }

  .cfc-hallmarks-hero-intro {
    font-size: 1.04rem;
    line-height: 1.8;
  }

  .cfc-hallmarks-hero-v,
  .cfc-sola-nav {
    display: none;
  }

  .cfc-sola-section {
    min-height: 0;
  }

  .cfc-sola-grid {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 60px 0;
  }

  .cfc-sola-monument {
    padding-left: 0;
    order: 1;
  }

  .cfc-sola-monument::before {
    display: none;
  }

  .cfc-sola-watermark {
    position: relative;
    top: auto;
    left: auto;
    display: block;
    margin-bottom: 6px;
    font-size: clamp(3.8rem, 18vw, 5rem);
  }

  .cfc-sola-latin {
    font-size: 2.5rem;
  }

  .cfc-sola-translation {
    margin-top: 20px;
  }

  .cfc-sola-pullquote {
    order: 2;
    margin: 24px auto;
    max-width: 100%;
    text-align: center;
    font-size: 1.2rem;
  }

  .cfc-sola-content {
    order: 3;
  }

  .cfc-sola-content p {
    font-size: 1.02rem;
  }

  .cfc-hallmarks-closing {
    padding: 62px 0;
  }

  .cfc-hallmarks-closing-text {
    font-size: 1.04rem;
    margin: 24px 0 30px;
  }

  .cfc-hallmarks-cta-row {
    flex-direction: column;
    align-items: stretch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-hallmarks-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-watermark,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-word,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-translation,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-content-rule,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-content p,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-pullquote,
  .cfc-sola-nav-item::after {
    transition: none !important;
  }

  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-watermark,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-word,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-translation,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-content-rule,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-content p,
  .cfc-hallmarks.cfc-hallmarks--animated .cfc-sola-pullquote {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Issues for Clarification Page -- */
.cfc-issues {
  background: #f2ebdd;
  color: #232616;
}

.cfc-issues h1,
.cfc-issues h2,
.cfc-issues h3 {
  font-family: "Alegreya", Georgia, serif !important;
  letter-spacing: normal;
  text-transform: none;
}

.cfc-issues-container {
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
}

.cfc-issues-hero {
  position: relative;
  min-height: 50vh;
  background: #232616;
  padding: clamp(92px, 12vw, 148px) 0 clamp(56px, 8vw, 80px);
  display: flex;
  align-items: center;
  overflow: hidden;
}

.cfc-issues-hero.has-image {
  background-image: var(--cfc-issues-hero-image);
  background-size: cover;
  background-position: center 42%;
  background-attachment: fixed;
}

.cfc-issues-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 38, 22, 0.78);
}

.cfc-issues-hero .cfc-issues-container {
  position: relative;
  z-index: 1;
}

.cfc-issues-hero-label {
  margin: 0 0 12px;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.75rem;
  font-weight: 800;
}

.cfc-issues-hero-title {
  margin: 0;
  color: #f2ebdd !important;
  font-size: clamp(2.3rem, 5vw, 3.2rem);
  line-height: 1.1;
}

.cfc-issues-hero-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 24px 0 30px;
  background: #8b8b38;
}

.cfc-issues-hero-intro {
  margin: 0;
  max-width: 660px;
  color: rgba(242, 235, 221, 0.82);
  font-size: 1.1rem;
  line-height: 1.9;
}

.cfc-issue-nav-strip {
  background: #7a8450;
  padding: 18px 0;
  border-top: 1px solid rgba(242, 235, 221, 0.18);
  border-bottom: 1px solid rgba(35, 38, 22, 0.16);
}

.cfc-issue-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  flex-wrap: wrap;
}

.cfc-issue-nav-link {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  color: rgba(242, 235, 221, 0.74);
  text-decoration: none;
  line-height: 1.25;
  padding-bottom: 6px;
}

.cfc-issue-nav-number {
  color: #f2ebdd;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.85rem;
  font-weight: 800;
}

.cfc-issue-nav-title {
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 0.75rem;
  color: inherit;
}

.cfc-issue-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: #8b8b38;
  transition: width 0.3s ease;
}

.cfc-issue-nav-link:hover,
.cfc-issue-nav-link:focus-visible,
.cfc-issue-nav-link.active {
  color: #f2ebdd;
  text-decoration: none;
}

.cfc-issue-nav-link:hover::after,
.cfc-issue-nav-link:focus-visible::after,
.cfc-issue-nav-link.active::after {
  width: 100%;
}

.cfc-issue-nav-link:focus-visible {
  outline: 1px solid #8b8b38;
  outline-offset: 4px;
}

.cfc-issues-body {
  background: #f2ebdd;
  padding: 10px 0 18px;
}

.cfc-issue-section {
  padding: 80px 0;
}

.cfc-issue-section-inner {
  width: min(900px, calc(100% - 80px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 50px;
  align-items: start;
}

.cfc-issue-sidebar-inner {
  position: sticky;
  top: 120px;
  border-right: 1px solid rgba(35, 38, 22, 0.08);
  padding-right: 30px;
}

.cfc-issue-number {
  margin: 0 0 20px;
  font-family: "Alegreya", Georgia, serif;
  font-size: 3rem;
  line-height: 1;
  font-weight: 800;
  color: rgba(139, 139, 56, 0.3);
}

.cfc-issue-mobile-toggle {
  display: none;
}

.cfc-issue-scriptures {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 6px;
}

.cfc-issue-scriptures li {
  position: relative;
  padding-left: 14px;
  color: #7a8450;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.8rem;
  font-style: italic;
  line-height: 1.6;
}

.cfc-issue-scriptures li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #8b8b38;
}

.cfc-issue-content h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.5rem, 3vw, 1.8rem);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.cfc-issue-content,
.cfc-issue-header,
.cfc-issue-body-text {
  min-width: 0;
}

.cfc-issue-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 14px 0 28px;
  background: #8b8b38;
}

.cfc-issue-body-text p {
  margin: 0 0 20px;
  color: rgba(35, 38, 22, 0.87);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.95;
  text-wrap: pretty;
}

.cfc-issue-body-text p:last-child {
  margin-bottom: 0;
}

.cfc-assertion {
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 800;
  color: #232616;
}

.cfc-inline-scripture {
  margin-left: 2px;
  font-family: "Alegreya", Georgia, serif;
  font-style: italic;
  font-size: 0.85rem;
  color: #7a8450;
  vertical-align: super;
  line-height: 0;
  white-space: nowrap;
}

.cfc-three-cautions {
  margin: 30px 0 0;
}

.cfc-three-cautions-heading {
  margin: 0 0 20px !important;
  font-size: 1rem !important;
  line-height: 1.8 !important;
  color: rgba(35, 38, 22, 0.9) !important;
}

.cfc-three-cautions-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 24px;
}

.cfc-three-cautions-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.cfc-three-cautions-number {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #8b8b38;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1;
}

.cfc-three-cautions-text {
  border-left: 2px solid rgba(139, 139, 56, 0.15);
  padding-left: 20px;
}

.cfc-three-cautions-text p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.85;
  color: rgba(35, 38, 22, 0.87);
}

.cfc-issue-divider {
  width: min(900px, calc(100% - 80px));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.cfc-issue-divider-line {
  width: min(200px, 30vw);
  height: 1px;
  background: rgba(35, 38, 22, 0.12);
}

.cfc-issue-divider-diamond {
  color: #8b8b38;
  font-size: 0.5rem;
  line-height: 1;
}

.cfc-issues-closing {
  background: #232616;
  padding: 70px 0;
}

.cfc-issues-closing-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-issues-closing-text {
  margin: 0 auto;
  color: rgba(242, 235, 221, 0.72);
  font-family: "Alegreya", Georgia, serif;
  font-style: italic;
  font-size: 1rem;
  line-height: 1.8;
}

.cfc-issues-closing-text span {
  color: #8b8b38;
  margin: 0 8px;
}

.cfc-issues-btn {
  margin-top: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 28px;
  border: 1px solid #d4956a;
  background: #d4956a;
  color: #ffffff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease;
}

.cfc-issues-btn:hover,
.cfc-issues-btn:focus-visible {
  background: #c07e52;
  border-color: #c07e52;
  color: #ffffff;
  text-decoration: none;
}

.cfc-issues.cfc-issues--animated .cfc-issue-header,
.cfc-issues.cfc-issues--animated .cfc-issue-sidebar-inner,
.cfc-issues.cfc-issues--animated .cfc-issue-body-text {
  opacity: 0;
}

.cfc-issues.cfc-issues--animated .cfc-issue-header {
  transform: translateY(15px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s ease-out;
}

.cfc-issues.cfc-issues--animated .cfc-issue-sidebar-inner {
  transform: translateY(15px);
  transition:
    opacity 0.5s ease-out 0.2s,
    transform 0.5s ease-out 0.2s;
}

.cfc-issues.cfc-issues--animated .cfc-issue-body-text {
  transform: translateY(15px);
  transition:
    opacity 0.5s ease-out 0.3s,
    transform 0.5s ease-out 0.3s;
}

.cfc-issues.cfc-issues--animated
  .cfc-issue-section.cfc-visible
  .cfc-issue-header,
.cfc-issues.cfc-issues--animated
  .cfc-issue-section.cfc-visible
  .cfc-issue-sidebar-inner,
.cfc-issues.cfc-issues--animated
  .cfc-issue-section.cfc-visible
  .cfc-issue-body-text {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1024px) and (min-width: 769px) {
  .cfc-issues-container {
    width: min(1100px, calc(100% - 56px));
  }

  .cfc-issue-section-inner {
    width: min(900px, calc(100% - 56px));
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 30px;
  }

  .cfc-issue-sidebar-inner {
    padding-right: 20px;
  }

  .cfc-issue-scriptures li {
    font-size: 0.75rem;
  }
}

@media (max-width: 768px) {
  .cfc-issues-container,
  .cfc-issue-section-inner,
  .cfc-issue-divider {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-issues-hero {
    min-height: auto;
    padding: clamp(84px, 20vw, 112px) 0 42px;
  }

  .cfc-issues-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-issues-hero-title {
    font-size: 2rem;
  }

  .cfc-issues-hero-intro {
    font-size: 1rem;
  }

  .cfc-issue-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .cfc-issue-nav-link {
    justify-content: center;
    align-items: center;
    padding-bottom: 5px;
  }

  .cfc-issue-nav-title {
    font-size: 0.65rem;
  }

  .cfc-issue-section {
    padding: 50px 0;
  }

  .cfc-issue-section-inner {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .cfc-issue-sidebar {
    order: 2;
  }

  .cfc-issue-content {
    order: 1;
  }

  .cfc-issue-sidebar-inner {
    position: static;
    border-right: 0;
    border-top: 1px solid rgba(35, 38, 22, 0.08);
    padding: 16px 0 0;
  }

  .cfc-issue-number {
    margin-bottom: 12px;
    font-size: 2.1rem;
  }

  .cfc-issue-mobile-toggle {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 0;
    background: transparent;
    padding: 0;
    font-family: "Alegreya Sans", "Montserrat", sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #7a8450;
    cursor: pointer;
    text-align: left;
  }

  .cfc-issue-mobile-toggle-symbol {
    color: #8b8b38;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
  }

  .cfc-issues.cfc-issues--mobile-accordion-ready .cfc-issue-scriptures {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    margin-top: 0;
    pointer-events: none;
    transition:
      max-height 0.3s ease,
      opacity 0.3s ease,
      margin-top 0.3s ease;
  }

  .cfc-issues.cfc-issues--mobile-accordion-ready
    .cfc-issue-sidebar.is-open
    .cfc-issue-scriptures {
    max-height: 520px;
    opacity: 1;
    margin-top: 12px;
    pointer-events: auto;
  }

  .cfc-issue-content h2 {
    font-size: 1.5rem;
  }

  .cfc-issue-body-text p {
    font-size: 1rem;
    line-height: 1.85;
    overflow-wrap: anywhere;
  }

  .cfc-three-cautions-text p {
    overflow-wrap: anywhere;
  }

  .cfc-inline-scripture {
    display: inline;
    margin-left: 4px;
    font-size: 0.82rem;
    line-height: inherit;
    vertical-align: baseline;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .cfc-three-cautions-item {
    gap: 12px;
  }

  .cfc-three-cautions-text {
    padding-left: 16px;
  }

  .cfc-issue-divider-line {
    width: min(120px, 32vw);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-issues-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-issue-nav-link::after,
  .cfc-issues.cfc-issues--animated .cfc-issue-header,
  .cfc-issues.cfc-issues--animated .cfc-issue-sidebar-inner,
  .cfc-issues.cfc-issues--animated .cfc-issue-body-text,
  .cfc-issues.cfc-issues--mobile-accordion-ready .cfc-issue-scriptures {
    transition: none !important;
  }

  .cfc-issues.cfc-issues--animated .cfc-issue-header,
  .cfc-issues.cfc-issues--animated .cfc-issue-sidebar-inner,
  .cfc-issues.cfc-issues--animated .cfc-issue-body-text {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Baby Bank Page -- */
.cfc-baby-bank {
  background: #f2ebdd;
  color: #232616;
}

.cfc-baby-bank h1,
.cfc-baby-bank h2,
.cfc-baby-bank h3 {
  font-family: "Alegreya", Georgia, serif !important;
  letter-spacing: normal;
  text-transform: none;
}

.cfc-bb-container {
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
}

.cfc-bb-hero {
  min-height: 65vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #232616;
}

.cfc-bb-hero-media {
  min-height: 65vh;
  background-color: #dfd5c8;
  background-size: cover;
  background-position: center;
}

.cfc-bb-hero-media.no-image {
  display: flex;
}

.cfc-bb-hero-placeholder {
  width: 100%;
  margin: 24px;
  border-radius: 8px;
}

.cfc-bb-hero-panel {
  display: flex;
  align-items: center;
  padding: 60px 60px 60px 80px;
  background: #232616;
}

.cfc-bb-hero-content {
  max-width: 460px;
}

.cfc-bb-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-bb-hero h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.9rem, 5vw, 3.5rem);
  line-height: 1.05;
}

.cfc-bb-hero-leader {
  margin: 12px 0 0;
  color: rgba(242, 235, 221, 0.5);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
}

.cfc-bb-hero-open {
  margin: 24px 0 0;
  color: rgba(242, 235, 221, 0.82);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-bb-hero-badges {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cfc-bb-hero-badge {
  margin: 0;
  width: fit-content;
  display: inline-block;
  border-radius: 3px;
  padding: 8px 18px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.cfc-bb-hero-badge--sat {
  background: #8b8b38;
  color: #232616;
}

.cfc-bb-hero-badge--thu {
  background: #d4956a;
  color: #ffffff;
}

.cfc-bb-mission {
  background: #f2ebdd;
  padding: 80px 0;
}

.cfc-bb-mission-inner {
  max-width: 750px;
}

.cfc-bb-mission-frame {
  position: relative;
  border: 1px solid rgba(139, 139, 56, 0.2);
  border-radius: 8px;
  padding: 44px 50px;
  text-align: center;
}

.cfc-bb-mission-corner {
  position: absolute;
  color: rgba(139, 139, 56, 0.4);
  background: #f2ebdd;
  padding: 0 4px;
  line-height: 1;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
}

.cfc-bb-mission-corner--tl {
  top: -8px;
  left: -8px;
}

.cfc-bb-mission-corner--tr {
  top: -8px;
  right: -8px;
}

.cfc-bb-mission-corner--bl {
  bottom: -8px;
  left: -8px;
}

.cfc-bb-mission-corner--br {
  right: -8px;
  bottom: -8px;
}

.cfc-bb-mission-fleuron {
  margin: 0 0 16px;
  color: #d4956a;
  font-size: 1.2rem;
  line-height: 1;
}

.cfc-bb-mission-text {
  margin: 0;
  color: #232616;
  font-size: 1.2rem;
  line-height: 2;
}

.cfc-bb-mission-strong {
  font-family: "Alegreya", Georgia, serif;
  font-weight: 800;
}

.cfc-bb-mission-emphasis {
  color: #d4956a;
  font-family: "Alegreya", Georgia, serif;
  font-style: italic;
  font-weight: 800;
}

.cfc-bb-audiences {
  background: #ffffff;
  padding: 70px 0;
}

.cfc-bb-audiences-inner {
  max-width: 900px;
}

.cfc-bb-audiences-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.cfc-bb-mothers-card,
.cfc-bb-volunteer-card {
  border-radius: 8px;
  padding: 40px 36px;
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease,
    border-color 0.4s ease;
}

.cfc-bb-mothers-card {
  background: #f2ebdd;
}

.cfc-bb-volunteer-card {
  background: #232616;
  border: 1px solid transparent;
}

.cfc-bb-mothers-card:hover,
.cfc-bb-mothers-card:focus-within {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(35, 38, 22, 0.08);
}

.cfc-bb-volunteer-card:hover,
.cfc-bb-volunteer-card:focus-within {
  border-color: rgba(139, 139, 56, 0.3);
}

.cfc-bb-audience-label {
  margin: 0 0 16px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-bb-audience-label--mothers {
  color: #d4956a;
}

.cfc-bb-audience-label--volunteers {
  color: #8b8b38;
}

.cfc-bb-mothers-card h2,
.cfc-bb-volunteer-card h2 {
  margin: 0;
  font-size: 1.6rem;
}

.cfc-bb-mothers-card h2 {
  color: #232616 !important;
}

.cfc-bb-volunteer-card h2 {
  color: #f2ebdd !important;
}

.cfc-bb-audience-rule {
  display: block;
  width: 30px;
  height: 2px;
  margin: 12px 0 20px;
}

.cfc-bb-audience-rule--apricot {
  background: #d4956a;
}

.cfc-bb-audience-rule--citron {
  background: #8b8b38;
}

.cfc-bb-audience-copy,
.cfc-bb-audience-support {
  margin: 0;
  font-size: 1rem;
  line-height: 1.9;
}

.cfc-bb-mothers-card .cfc-bb-audience-copy {
  color: rgba(35, 38, 22, 0.85);
}

.cfc-bb-volunteer-card .cfc-bb-audience-copy {
  color: rgba(242, 235, 221, 0.8);
}

.cfc-bb-audience-support {
  margin-top: 16px;
  font-size: 0.9rem;
  line-height: 1.8;
}

.cfc-bb-mothers-card .cfc-bb-audience-support {
  color: rgba(35, 38, 22, 0.7);
}

.cfc-bb-audience-link {
  margin: 20px 0 0;
}

.cfc-bb-audience-link a {
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  text-decoration: none;
}

.cfc-bb-audience-link a span {
  display: inline-block;
  transition: transform 0.25s ease;
}

.cfc-bb-audience-link a:hover,
.cfc-bb-audience-link a:focus-visible {
  color: #b87333;
  text-decoration: none;
}

.cfc-bb-audience-link a:hover span,
.cfc-bb-audience-link a:focus-visible span {
  transform: translateX(4px);
}

.cfc-bb-volunteer-form-wrap {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(242, 235, 221, 0.14);
}

.cfc-bb-volunteer-card .cfc-contact-form-row--two {
  grid-template-columns: 1fr;
}

.cfc-bb-volunteer-card .cfc-form-field {
  margin-bottom: 14px;
}

.cfc-bb-volunteer-card .cfc-form-label {
  color: rgba(242, 235, 221, 0.62);
  letter-spacing: 1.4px;
}

.cfc-bb-volunteer-card .cfc-form-input,
.cfc-bb-volunteer-card .cfc-form-textarea {
  border-color: rgba(242, 235, 221, 0.22);
  background: rgba(242, 235, 221, 0.96);
}

.cfc-bb-volunteer-card .cfc-form-input:focus,
.cfc-bb-volunteer-card .cfc-form-textarea:focus {
  border-color: #8b8b38;
  box-shadow: 0 0 0 3px rgba(139, 139, 56, 0.18);
  background: #ffffff;
}

.cfc-bb-volunteer-card .cfc-form-textarea {
  min-height: 112px;
}

.cfc-bb-volunteer-card .cfc-contact-error {
  margin-bottom: 14px;
  border-left-color: rgba(212, 149, 106, 0.8);
  background: rgba(212, 149, 106, 0.14);
  color: rgba(242, 235, 221, 0.92);
}

.cfc-bb-volunteer-card .cfc-contact-success {
  text-align: left;
  padding: 0;
}

.cfc-bb-volunteer-card .cfc-contact-success-check {
  margin: 0 0 14px;
  width: 40px;
  height: 40px;
  font-size: 1.2rem;
  background: #8b8b38;
}

.cfc-bb-volunteer-card .cfc-contact-success h2 {
  color: #f2ebdd !important;
  font-size: 1.3rem;
}

.cfc-bb-volunteer-card .cfc-contact-success p {
  color: rgba(242, 235, 221, 0.78);
}

.cfc-bb-volunteer-card .cfc-contact-success a {
  color: #d4956a;
}

.cfc-bb-volunteer-card .cfc-contact-success a:hover,
.cfc-bb-volunteer-card .cfc-contact-success a:focus-visible {
  color: #c47f54;
}

.cfc-bb-volunteer-form-fallback {
  margin: 12px 0 0;
  color: rgba(242, 235, 221, 0.55);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.82rem;
  line-height: 1.6;
}

.cfc-bb-volunteer-form-fallback a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-bb-volunteer-form-fallback a:hover,
.cfc-bb-volunteer-form-fallback a:focus-visible {
  color: #c47f54;
}

.cfc-bb-audience-hours {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid rgba(35, 38, 22, 0.1);
}

.cfc-bb-audience-hours-label {
  margin: 0;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-bb-audience-hours-line {
  margin: 8px 0 0;
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 800;
}

.cfc-bb-partners {
  background: #f2ebdd;
  padding: 60px 0;
}

.cfc-bb-partners-inner {
  max-width: 800px;
  text-align: center;
}

.cfc-bb-partners h2 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.6rem;
}

.cfc-bb-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px auto 24px;
  background: #8b8b38;
}

.cfc-bb-partners-copy {
  margin: 0 auto;
  max-width: 650px;
  color: rgba(35, 38, 22, 0.85);
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-bb-partners-copy a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-bb-partners-copy a:hover,
.cfc-bb-partners-copy a:focus-visible {
  color: #b87333;
  text-decoration: none;
}

.cfc-bb-partner-grid {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.cfc-bb-partner-card {
  background: #ffffff;
  border: 1px solid rgba(35, 38, 22, 0.06);
  border-radius: 8px;
  padding: 32px;
  text-align: center;
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}

.cfc-bb-partner-card:hover,
.cfc-bb-partner-card:focus-within {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(35, 38, 22, 0.08);
}

.cfc-bb-partner-card h3 {
  margin: 0;
  color: #232616 !important;
  font-size: 1.2rem;
}

.cfc-bb-partner-rule {
  display: block;
  width: 25px;
  height: 2px;
  margin: 10px auto 14px;
  background: #8b8b38;
}

.cfc-bb-partner-location {
  margin: 0 0 10px;
  color: rgba(35, 38, 22, 0.5);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
}

.cfc-bb-partner-link {
  margin: 0;
}

.cfc-bb-partner-link a {
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  text-decoration: none;
}

.cfc-bb-partner-link a span {
  display: inline-block;
  transition: transform 0.25s ease;
}

.cfc-bb-partner-link a:hover,
.cfc-bb-partner-link a:focus-visible {
  color: #b87333;
  text-decoration: none;
}

.cfc-bb-partner-link a:hover span,
.cfc-bb-partner-link a:focus-visible span {
  transform: translateX(4px);
}

.cfc-bb-closing {
  background: #232616;
  padding: 70px 0;
}

.cfc-bb-closing-inner {
  max-width: 650px;
  text-align: center;
}

.cfc-bb-closing-verse {
  margin: 0;
  color: rgba(242, 235, 221, 0.8);
  font-size: 1.15rem;
  font-style: italic;
  line-height: 2;
}

.cfc-bb-closing-reference {
  margin: 14px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-bb-closing-dots {
  margin: 30px 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.cfc-bb-closing-dots span {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #d4956a;
}

.cfc-bb-closing-cta {
  margin: 0;
}

.cfc-bb-closing-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 8px;
  border: 1px solid #d4956a;
  background: #d4956a;
  color: #ffffff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    background-color 0.25s ease,
    border-color 0.25s ease;
}

.cfc-bb-closing-cta a:hover,
.cfc-bb-closing-cta a:focus-visible {
  background: #c07e52;
  border-color: #c07e52;
  text-decoration: none;
}

.cfc-bb-closing-links {
  margin-top: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}

.cfc-bb-closing-links a {
  color: rgba(242, 235, 221, 0.5);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.88rem;
  text-decoration: none;
  transition: color 0.25s ease;
}

.cfc-bb-closing-links a:hover,
.cfc-bb-closing-links a:focus-visible {
  color: rgba(242, 235, 221, 0.95);
  text-decoration: none;
}

.cfc-baby-bank.cfc-baby-bank--animated [data-bb-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s ease-out;
  transition-delay: var(--cfc-bb-delay, 0s);
}

.cfc-baby-bank.cfc-baby-bank--animated [data-bb-reveal="mission"] {
  transition-duration: 0.7s;
}

.cfc-baby-bank.cfc-baby-bank--animated [data-bb-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 1024px) {
  .cfc-bb-container {
    width: min(1100px, calc(100% - 56px));
  }

  .cfc-bb-hero-panel {
    padding: 46px 40px 46px 48px;
  }

  .cfc-bb-audiences-grid,
  .cfc-bb-partner-grid {
    gap: 24px;
  }
}

@media (max-width: 768px) {
  .cfc-bb-container {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-bb-hero {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .cfc-bb-hero-media {
    min-height: 45vh;
  }

  .cfc-bb-hero-panel {
    padding: 40px 24px;
  }

  .cfc-bb-hero h1 {
    font-size: 2.5rem;
  }

  .cfc-bb-hero-badge {
    width: 100%;
    text-align: center;
  }

  .cfc-bb-mission,
  .cfc-bb-audiences,
  .cfc-bb-partners,
  .cfc-bb-closing {
    padding: 50px 0;
  }

  .cfc-bb-mission-frame {
    padding: 28px 24px;
  }

  .cfc-bb-mission-corner {
    font-size: 0.7rem;
  }

  .cfc-bb-mission-text {
    font-size: 1.02rem;
    line-height: 1.9;
  }

  .cfc-bb-audiences-grid,
  .cfc-bb-partner-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .cfc-bb-closing-links {
    flex-direction: column;
    gap: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-bb-mothers-card,
  .cfc-bb-volunteer-card,
  .cfc-bb-partner-card,
  .cfc-bb-audience-link a span,
  .cfc-bb-partner-link a span,
  .cfc-baby-bank.cfc-baby-bank--animated [data-bb-reveal] {
    transition: none !important;
  }

  .cfc-baby-bank.cfc-baby-bank--animated [data-bb-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}
/* -- Young Adults Page -- */
.cfc-young-adults {
  background: #f2ebdd;
  color: #232616;
}

.cfc-young-adults h1,
.cfc-young-adults h2,
.cfc-young-adults h3 {
  font-family: "Alegreya", Georgia, serif !important;
  letter-spacing: normal;
  text-transform: none;
}

.cfc-ya-container {
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
}

.cfc-ya-hero {
  position: relative;
  min-height: 65vh;
  background: #232616;
  color: #f2ebdd;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.cfc-ya-hero.has-image {
  background-image: var(--cfc-ya-hero-image);
  background-size: cover;
  background-position: center 30%;
  background-attachment: fixed;
}

.cfc-ya-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.9) 0%,
    rgba(35, 38, 22, 0.55) 50%,
    rgba(35, 38, 22, 0.4) 100%
  );
}

.cfc-ya-hero-inner {
  position: relative;
  z-index: 1;
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
  padding: clamp(108px, 12vw, 166px) 0 60px;
}

.cfc-ya-hero-copy {
  max-width: 650px;
}

.cfc-ya-hero-label {
  margin: 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.75rem;
  font-weight: 800;
  color: #a8b88c;
}

.cfc-ya-hero-title {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(3rem, 6vw, 3.8rem);
  line-height: 1.03;
}

.cfc-ya-hero-tagline {
  margin: 8px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 1px;
}

.cfc-ya-hero-badges {
  margin-top: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.cfc-ya-hero-badge {
  margin: 0;
  border-radius: 999px;
  padding: 9px 16px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  line-height: 1.2;
}

.cfc-ya-hero-badge--when {
  background: #8b8b38;
  color: #232616;
}

.cfc-ya-hero-badge--who {
  background: #d4956a;
  color: #ffffff;
}

.cfc-ya-hero-placeholder {
  margin-top: 24px;
}

.cfc-ya-vibe {
  background: #f2ebdd;
  padding: 80px 0;
}

.cfc-ya-vibe-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 60px;
  align-items: start;
}

.cfc-ya-section-label {
  margin: 0 0 12px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.7rem;
  font-weight: 800;
}

.cfc-ya-section-label--center {
  letter-spacing: 4px;
  text-align: center;
  margin-bottom: 8px;
}

.cfc-ya-vibe-content h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.9rem, 3vw, 2.2rem);
  line-height: 1.25;
}

.cfc-ya-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px 0 24px;
  background: #8b8b38;
}

.cfc-ya-rule--center {
  margin: 16px auto 50px;
}

.cfc-ya-vibe-copy {
  margin: 0;
  color: rgba(35, 38, 22, 0.85);
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-ya-expect-list {
  margin-top: 2px;
}

.cfc-ya-expect-item {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 18px;
}

.cfc-ya-expect-marker {
  width: 6px;
  height: 6px;
  background: #8b8b38;
  margin-top: 6px;
  flex: 0 0 6px;
}

.cfc-ya-expect-item p {
  margin: 0;
  color: rgba(35, 38, 22, 0.8);
  font-size: 0.95rem;
  line-height: 1.85;
}

.cfc-ya-vibe-cta {
  margin: 28px 0 0;
  color: rgba(35, 38, 22, 0.82);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
}

.cfc-ya-vibe-cta a {
  color: #d4956a;
  text-decoration: none;
}

.cfc-ya-vibe-cta a span {
  display: inline-block;
  transition: transform 0.25s ease;
}

.cfc-ya-vibe-cta a:hover,
.cfc-ya-vibe-cta a:focus-visible {
  color: #c07e52;
  text-decoration: none;
}

.cfc-ya-vibe-cta a:hover span,
.cfc-ya-vibe-cta a:focus-visible span {
  transform: translateX(4px);
}

.cfc-ya-collage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 200px 200px;
  gap: 6px;
}

.cfc-ya-collage-item {
  margin: 0;
  border-radius: 4px;
  overflow: hidden;
  background: rgba(35, 38, 22, 0.08);
}

.cfc-ya-collage-item--grill {
  grid-column: 1;
  grid-row: 1 / 3;
}

.cfc-ya-collage-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cfc-ya-collage-placeholder {
  height: 100%;
  min-height: 100%;
  border-radius: 0;
  padding: 18px;
}

.cfc-ya-collage-placeholder p {
  margin: 0;
}

.cfc-ya-gallery {
  background: #ffffff;
  padding: 70px 0;
}

.cfc-ya-gallery-intro {
  text-align: center;
}

.cfc-ya-gallery-intro h2 {
  margin: 0;
  color: #232616 !important;
  font-size: clamp(1.55rem, 2.5vw, 1.8rem);
}

.cfc-ya-gallery-grid {
  column-count: 3;
  column-gap: 12px;
}

.cfc-ya-gallery-item {
  break-inside: avoid;
  margin: 0 0 12px;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  background: rgba(35, 38, 22, 0.08);
}

.cfc-ya-gallery-item img {
  width: 100%;
  display: block;
  object-fit: cover;
  transform: scale(1);
  transition: transform 0.5s ease;
}

.cfc-ya-gallery-item--tall img {
  aspect-ratio: 3 / 4;
}

.cfc-ya-gallery-item--wide img {
  aspect-ratio: 3 / 2;
}

.cfc-ya-gallery-item:hover img,
.cfc-ya-gallery-item:focus-within img {
  transform: scale(1.03);
}

.cfc-ya-gallery-placeholder {
  min-height: 180px;
  border-radius: 0;
  padding: 18px;
}

.cfc-ya-gallery-item--tall .cfc-ya-gallery-placeholder {
  min-height: 320px;
}

.cfc-ya-gallery-cta {
  background: #232616;
  color: #f2ebdd;
  padding: 40px 28px;
  text-align: center;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.cfc-ya-gallery-cta-star {
  margin: 0;
  color: #8b8b38;
  font-size: 1.2rem;
  line-height: 1;
}

.cfc-ya-gallery-cta-title {
  margin: 12px 0 0;
  color: #f2ebdd;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.3rem;
  font-weight: 800;
  font-style: italic;
  line-height: 1.3;
}

.cfc-ya-gallery-cta-meta {
  margin: 14px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-ya-gallery-cta-link {
  margin: 16px 0 0;
}

.cfc-ya-gallery-cta-link a {
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.92rem;
  text-decoration: none;
}

.cfc-ya-gallery-cta-link a span {
  display: inline-block;
  transition: transform 0.25s ease;
}

.cfc-ya-gallery-cta-link a:hover,
.cfc-ya-gallery-cta-link a:focus-visible {
  color: #f2ebdd;
  text-decoration: none;
}

.cfc-ya-gallery-cta-link a:hover span,
.cfc-ya-gallery-cta-link a:focus-visible span {
  transform: translateX(4px);
}

.cfc-ya-values {
  background: #f2ebdd;
  padding: 70px 0;
}

.cfc-ya-values-inner {
  max-width: 900px;
}

.cfc-ya-values-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
}

.cfc-ya-value-block {
  text-align: center;
}

.cfc-ya-value-block h3 {
  margin: 0 0 8px;
  color: #232616 !important;
  font-size: 1.8rem;
  line-height: 1.1;
}

.cfc-ya-value-rule {
  display: block;
  width: 20px;
  height: 2px;
  margin: 0 auto 14px;
}

.cfc-ya-value-rule--citron {
  background: #8b8b38;
}

.cfc-ya-value-rule--apricot {
  background: #d4956a;
}

.cfc-ya-value-rule--springwater {
  background: #a8b88c;
}

.cfc-ya-value-block p {
  margin: 0;
  color: rgba(35, 38, 22, 0.8);
  font-size: 0.9rem;
  line-height: 1.75;
}

.cfc-ya-connect {
  background: #232616;
  padding: 70px 0;
}

.cfc-ya-connect-inner {
  max-width: 700px;
  text-align: center;
}

.cfc-ya-connect-dots {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.cfc-ya-connect-dots span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #8b8b38;
  display: block;
}

.cfc-ya-connect h2 {
  margin: 18px 0 0;
  color: #f2ebdd !important;
  font-size: 2rem;
}

.cfc-ya-connect-copy {
  margin: 0;
  color: rgba(242, 235, 221, 0.8);
  font-size: 1.05rem;
  line-height: 1.9;
}

.cfc-ya-contact-card {
  margin-top: 30px;
  display: inline-flex;
  align-items: center;
  gap: 20px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(139, 139, 56, 0.15);
  border-radius: 4px;
  padding: 20px 32px;
}

.cfc-ya-contact-kicker {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.cfc-ya-contact-name {
  margin: 6px 0 0;
  color: #f2ebdd;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.1;
}

.cfc-ya-contact-email {
  margin: 0;
}

.cfc-ya-contact-email a {
  color: #d4956a;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  text-decoration: none;
}

.cfc-ya-contact-email a span {
  display: inline-block;
  transition: transform 0.25s ease;
}

.cfc-ya-contact-email a:hover,
.cfc-ya-contact-email a:focus-visible {
  color: #f2ebdd;
  text-decoration: none;
}

.cfc-ya-contact-email a:hover span,
.cfc-ya-contact-email a:focus-visible span {
  transform: translateX(4px);
}

.cfc-ya-connect-links {
  margin-top: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.cfc-ya-connect-links a {
  color: rgba(242, 235, 221, 0.6);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.88rem;
  text-decoration: none;
  transition: color 0.25s ease;
}

.cfc-ya-connect-links a:hover,
.cfc-ya-connect-links a:focus-visible {
  color: rgba(242, 235, 221, 0.95);
  text-decoration: none;
}

.cfc-young-adults.cfc-young-adults--animated [data-ya-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s ease-out;
  transition-delay: var(--cfc-ya-delay, 0s);
}

.cfc-young-adults.cfc-young-adults--animated [data-ya-reveal="hero"] {
  transform: translateY(16px);
}

.cfc-young-adults.cfc-young-adults--animated [data-ya-reveal="vibe-left"] {
  transform: translateX(-24px);
}

.cfc-young-adults.cfc-young-adults--animated [data-ya-reveal="vibe-right"] {
  transform: translateX(24px);
}

.cfc-young-adults.cfc-young-adults--animated [data-ya-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (max-width: 1024px) {
  .cfc-ya-container,
  .cfc-ya-hero-inner {
    width: min(1100px, calc(100% - 56px));
  }

  .cfc-ya-vibe-grid {
    gap: 36px;
  }

  .cfc-ya-gallery-grid {
    column-count: 2;
  }

  .cfc-ya-values-grid {
    gap: 30px;
  }
}

@media (max-width: 768px) {
  .cfc-ya-container,
  .cfc-ya-hero-inner {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-ya-hero {
    min-height: 50vh;
  }

  .cfc-ya-hero::before {
    background: rgba(35, 38, 22, 0.75);
  }

  .cfc-ya-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-ya-hero-inner {
    padding: clamp(92px, 20vw, 122px) 0 42px;
  }

  .cfc-ya-hero-title {
    font-size: 2.8rem;
  }

  .cfc-ya-hero-tagline {
    font-size: 0.92rem;
  }

  .cfc-ya-hero-badges {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .cfc-ya-vibe,
  .cfc-ya-gallery,
  .cfc-ya-values,
  .cfc-ya-connect {
    padding: 50px 0;
  }

  .cfc-ya-vibe-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .cfc-ya-collage {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 180px;
    gap: 8px;
  }

  .cfc-ya-collage-item--grill {
    grid-column: auto;
    grid-row: auto;
  }

  .cfc-ya-gallery-grid {
    column-count: 2;
    column-gap: 8px;
  }

  .cfc-ya-gallery-item {
    margin-bottom: 8px;
  }

  .cfc-ya-gallery-cta {
    min-height: 220px;
    padding: 32px 20px;
  }

  .cfc-ya-values-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .cfc-ya-contact-card {
    width: 100%;
    margin-top: 24px;
    justify-content: flex-start;
    text-align: left;
    padding: 18px 20px;
  }

  .cfc-ya-connect-links {
    flex-direction: column;
    gap: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-ya-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-ya-gallery-item img,
  .cfc-ya-vibe-cta a span,
  .cfc-ya-gallery-cta-link a span,
  .cfc-ya-contact-email a span,
  .cfc-young-adults.cfc-young-adults--animated [data-ya-reveal] {
    transition: none !important;
  }

  .cfc-young-adults.cfc-young-adults--animated [data-ya-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* -- Worship Service Page -- */
.cfc-worship-service {
  position: relative;
  min-height: 45vh;
  display: flex;
  align-items: center;
  background: #232616;
  background-image: url("assets/images/hero/hero-fellowship-1.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: clamp(92px, 11vw, 148px) 0 clamp(64px, 9vw, 108px);
  overflow: hidden;
}

.cfc-worship-service::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 38, 22, 0.85);
  z-index: 0;
}

.cfc-worship-service-inner {
  position: relative;
  z-index: 1;
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
  text-align: left;
}

.cfc-worship-service-label {
  margin: 0 0 12px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.75rem;
  color: #a8b88c;
}

.cfc-worship-service-title {
  margin: 0;
  color: #ffffff !important;
  font-size: clamp(2.2rem, 4.8vw, 3.5rem);
  line-height: 1.05;
}

.cfc-worship-service-subline {
  margin: 16px 0 0;
  color: rgba(242, 235, 221, 0.82);
  font-size: 1rem;
  line-height: 1.7;
}

.cfc-worship-service-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin-top: 24px;
  background: #8b8b38;
}

.cfc-announcements-strip {
  background: linear-gradient(90deg, #6f794a 0%, #7a8450 45%, #6f794a 100%);
  padding: 16px 0 18px;
  border-top: 1px solid rgba(242, 235, 221, 0.22);
  border-bottom: 1px solid rgba(35, 38, 22, 0.2);
}

.cfc-announcements-strip-inner {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-announcements-strip-label {
  margin: 0 0 11px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 0.7rem;
  color: #f2ebdd;
  opacity: 0.95;
}

.cfc-announcements-strip-track {
  overflow: visible;
  padding: 0;
}

.cfc-announcements-strip-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.cfc-announcements-strip-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 9px 12px;
  background: rgba(35, 38, 22, 0.22);
  border: 1px solid rgba(242, 235, 221, 0.28);
  border-left: 2px solid #c8a456;
  color: #f2ebdd;
  font-size: 0.94rem;
  line-height: 1.45;
  white-space: normal;
  min-width: 0;
  transition:
    background-color 0.25s ease,
    border-color 0.25s ease;
}

.cfc-announcement-date {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin-top: 1px;
  padding: 2px 7px;
  background: rgba(200, 164, 86, 0.18);
  border: 1px solid rgba(200, 164, 86, 0.55);
  color: #f2ebdd;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.9px;
  white-space: nowrap;
}

.cfc-announcement-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.cfc-announcement-title {
  display: block;
  color: #f2ebdd;
  font-weight: 600;
  text-wrap: pretty;
}

.cfc-announcement-time {
  display: block;
  color: #e7d1a0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.77rem;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.cfc-announcement-time::before {
  content: "• ";
  color: #c8a456;
}

.cfc-announcements-strip-item:hover {
  background: rgba(35, 38, 22, 0.3);
  border-color: rgba(242, 235, 221, 0.42);
}

.cfc-order-of-service {
  background: #f2ebdd;
  padding: clamp(58px, 8vw, 92px) 0;
}

.cfc-order-of-service-inner {
  width: min(800px, calc(100% - 40px));
  margin: 0 auto;
  text-align: center;
}

.cfc-order-date {
  margin: 0 0 10px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #7a8450;
}

.cfc-order-heading {
  margin: 0;
  font-size: 2rem;
  color: #232616;
}

.cfc-order-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 16px auto 0;
  background: #8b8b38;
}

.cfc-order-list {
  list-style: none;
  margin: 34px 0 0;
  padding: 0;
  text-align: center;
}

.cfc-order-item {
  margin: 0 0 20px;
  padding: 0 0 20px;
  border-bottom: 1px dotted rgba(35, 38, 22, 0.1);
}

.cfc-order-item:last-child {
  margin-bottom: 0;
}

.cfc-order-label {
  margin: 0 0 6px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 0.7rem;
  color: #7a8450;
}

.cfc-order-detail {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.6;
  color: #232616;
}

.cfc-order-song {
  margin: 0;
  text-align: center;
  font-style: italic;
  font-size: 1.1rem;
  line-height: 1.6;
  color: #232616;
}

.cfc-order-item--sermon {
  margin: 30px 0;
  padding: 22px 0;
  border-top: 1px solid #8b8b38;
  border-bottom: 1px dotted rgba(35, 38, 22, 0.18);
}

.cfc-order-sermon-title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  color: #232616;
  line-height: 1.5;
}

.cfc-order-sermon-meta {
  margin: 8px 0 0;
  color: #7a8450;
  font-size: 0.9rem;
  line-height: 1.5;
}

.cfc-reminders {
  background: #232616;
  padding: clamp(60px, 8vw, 90px) 0;
}

.cfc-reminders-inner {
  width: min(900px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(42px, 6vw, 60px) clamp(24px, 4vw, 40px);
  border: 1px solid rgba(242, 235, 221, 0.12);
  background: linear-gradient(
    165deg,
    rgba(237, 232, 223, 0.04) 0%,
    rgba(237, 232, 223, 0.01) 60%,
    rgba(200, 164, 86, 0.06) 100%
  );
}

.cfc-reminders-label {
  margin: 0 0 16px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.8rem;
  color: #a8b88c;
}

.cfc-reminders-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.cfc-reminders-item {
  margin: 0;
  padding: 15px 16px;
  border: 1px solid rgba(242, 235, 221, 0.22);
  border-left: 3px solid #c8a456;
  background: rgba(16, 17, 11, 0.32);
  backdrop-filter: blur(1px);
}

.cfc-reminders-item-label {
  margin: 0 0 8px;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

.cfc-reminders-item-text {
  color: #f2ebdd;
  font-size: clamp(1.03rem, 1.6vw, 1.12rem);
  line-height: 1.72;
  text-wrap: pretty;
}

.cfc-reminders-item-text p {
  margin: 0;
}

.cfc-reminders-item-text a {
  color: #d4956a;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}

.cfc-reminders-item-text a:hover,
.cfc-reminders-item-text a:focus {
  color: #f2ebdd;
}

@media (max-width: 900px) {
  .cfc-reminders-list {
    grid-template-columns: 1fr;
  }
}

.cfc-worship-spotlight {
  background: #f2ebdd;
  padding: clamp(60px, 8vw, 96px) 0;
}

.cfc-worship-spotlight-inner {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

.cfc-worship-spotlight-heading {
  margin: 0;
  text-align: center;
  font-size: clamp(1.9rem, 3vw, 2.2rem);
  color: #232616;
}

.cfc-worship-spotlight-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 16px auto 0;
  background: #8b8b38;
}

.cfc-worship-spotlight-grid {
  margin-top: 38px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 320px 380px 440px;
  gap: 12px;
}

.cfc-worship-spotlight-card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: block;
  background-color: #232616;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  color: #f2ebdd;
  min-height: 0;
  height: 100%;
  border: 1px solid rgba(200, 164, 86, 0.34);
  border-radius: 0;
  box-shadow: 0 10px 24px rgba(35, 38, 22, 0.14);
  transition:
    transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    box-shadow 0.45s ease,
    border-color 0.4s ease;
}

.cfc-worship-spotlight-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(35, 38, 22, 0.4) 0%,
    rgba(35, 38, 22, 0.68) 68%,
    rgba(35, 38, 22, 0.84) 100%
  );
  transition: background-color 0.45s ease;
}

.cfc-worship-spotlight-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 68px;
  height: 3px;
  background: #c8a456;
  z-index: 1;
  transition: width 0.4s ease;
}

.cfc-worship-spotlight-card-content {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 20px 20px 18px;
}

.cfc-worship-spotlight-card h3 {
  margin: 0;
  font-size: clamp(1.22rem, 2vw, 1.85rem);
  color: #ffffff !important;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.65px;
  transition: transform 0.4s ease;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}

.cfc-worship-spotlight-summary {
  margin: 10px 0 0;
  color: rgba(255, 255, 255, 0.94);
  font-family: "Alegreya", Georgia, serif;
  font-style: italic;
  font-size: 0.91rem;
  line-height: 1.45;
  letter-spacing: 0.1px;
  max-width: 58ch;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
}

.cfc-worship-spotlight-details {
  margin-top: 14px;
  flex: 1 1 auto;
  min-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(10px);
  pointer-events: none;
  will-change: opacity, transform;
  transition:
    opacity 0.32s ease,
    transform 0.32s ease;
}

.cfc-worship-spotlight-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(200, 164, 86, 0.5);
  border-radius: 0;
  list-style: none;
  display: grid;
  gap: 6px;
}

.cfc-worship-spotlight-list li {
  position: relative;
  margin: 0;
  padding: 9px 10px;
  background: linear-gradient(
    90deg,
    rgba(17, 18, 12, 0.78) 0%,
    rgba(17, 18, 12, 0.58) 100%
  );
  border-left: 2px solid rgba(200, 164, 86, 0.72);
  color: rgba(242, 235, 221, 0.98);
  line-height: 1.3;
  font-size: 0.86rem;
  text-wrap: pretty;
}

.cfc-worship-spotlight-list li::before {
  content: none;
}

.cfc-worship-spotlight-item-text {
  display: block;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  text-wrap: pretty;
}

.cfc-worship-spotlight-item-ref {
  display: block;
  margin-top: 3px;
  color: #e7d1a0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.42px;
  text-transform: uppercase;
  opacity: 0.98;
}

.cfc-worship-spotlight-list-item:not(.has-reference)
  .cfc-worship-spotlight-item-text {
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.94rem;
}

.cfc-worship-spotlight-card:hover {
  transform: none;
  box-shadow: 0 16px 38px rgba(35, 38, 22, 0.26);
  border-color: rgba(200, 164, 86, 0.62);
}

.cfc-worship-spotlight-card:hover::before {
  background: linear-gradient(
    180deg,
    rgba(35, 38, 22, 0.27) 0%,
    rgba(35, 38, 22, 0.52) 64%,
    rgba(35, 38, 22, 0.78) 100%
  );
}

.cfc-worship-spotlight-card:hover::after {
  width: 100px;
}

.cfc-worship-spotlight-card:hover h3 {
  transform: none;
}

.cfc-worship-spotlight-card:hover .cfc-worship-spotlight-details {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.cfc-worship-spotlight-card--singing {
  grid-column: 1;
  grid-row: 3;
  background-image: url("assets/images/worship-spotlight/hymnal.jpg");
  background-position: center 28%;
}

.cfc-worship-spotlight-card--preaching {
  grid-column: 1 / -1;
  grid-row: 1;
  background-image: url("assets/images/worship-spotlight/preaching.jpg");
  background-size: cover;
  background-position: center 30%;
}

.cfc-worship-spotlight-card--communion {
  grid-column: 1;
  grid-row: 2;
  background-image: url("assets/images/worship-spotlight/communion.jpg");
  background-position: center 24%;
}

.cfc-worship-spotlight-card--confession {
  grid-column: 2;
  grid-row: 2;
  background-image: url("assets/images/worship-spotlight/confession.jpg");
  background-position: center 26%;
}

.cfc-worship-spotlight-card--offering {
  grid-column: 2;
  grid-row: 3;
  background-image: url("assets/images/worship-spotlight/offering.jpg");
  background-position: center 30%;
}

.cfc-worship-spotlight-card--preaching .cfc-worship-spotlight-summary {
  max-width: 76ch;
}

.cfc-worship-spotlight-card--preaching .cfc-worship-spotlight-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 6px;
  row-gap: 6px;
}

.cfc-worship-spotlight-card--preaching .cfc-worship-spotlight-list li {
  padding: 9px 9px;
}

.cfc-worship-spotlight-card--preaching .cfc-worship-spotlight-item-text {
  font-size: 0.8rem;
  line-height: 1.25;
}

.cfc-worship-spotlight-card--preaching .cfc-worship-spotlight-item-ref {
  font-size: 0.66rem;
  letter-spacing: 0.3px;
}

.cfc-worship-serve {
  background: #f2ebdd;
  padding: clamp(56px, 8vw, 84px) 0;
}

.cfc-worship-serve-inner {
  width: min(1000px, calc(100% - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: start;
}

.cfc-worship-serve-label {
  margin: 0 0 10px;
  color: #7a8450;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 2.6px;
  text-transform: uppercase;
}

.cfc-worship-serve-copy h2 {
  margin: 0;
  color: #232616;
  font-size: clamp(1.9rem, 4vw, 2.45rem);
  line-height: 1.12;
}

.cfc-worship-serve-rule {
  display: block;
  width: 46px;
  height: 2px;
  margin: 14px 0 16px;
  background: #8b8b38;
}

.cfc-worship-serve-copy p {
  margin: 0;
  color: rgba(35, 38, 22, 0.78);
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  line-height: 1.8;
}

.cfc-worship-serve-form-card {
  background: #ffffff;
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 8px;
  padding: 24px 22px;
}

.cfc-worship-serve-form-card .cfc-contact-form-row {
  gap: 12px;
}

.cfc-worship-serve-form-card .cfc-form-field {
  margin-bottom: 14px;
}

.cfc-worship-serve-roles {
  margin: 4px 0 16px;
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 6px;
  padding: 12px 14px 14px;
}

.cfc-worship-serve-roles-grid {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 10px;
}

.cfc-worship-serve-role {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: rgba(35, 38, 22, 0.82);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  line-height: 1.4;
}

.cfc-worship-serve-role input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: #8b8b38;
}

@media (max-width: 1100px) {
  .cfc-worship-spotlight-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: 280px 340px 390px;
  }

  .cfc-worship-spotlight-card--preaching {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .cfc-worship-spotlight-card--communion {
    grid-column: 1;
    grid-row: 2;
  }

  .cfc-worship-spotlight-card--confession {
    grid-column: 2;
    grid-row: 2;
  }

  .cfc-worship-spotlight-card--singing {
    grid-column: 1;
    grid-row: 3;
  }

  .cfc-worship-spotlight-card--offering {
    grid-column: 2;
    grid-row: 3;
    background-position: center;
  }

  .cfc-worship-spotlight-card--preaching .cfc-worship-spotlight-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .cfc-worship-service-inner,
  .cfc-announcements-strip-inner,
  .cfc-order-of-service-inner,
  .cfc-reminders-inner,
  .cfc-worship-spotlight-inner,
  .cfc-worship-serve-inner {
    width: min(100%, calc(100% - 30px));
  }

  .cfc-announcements-strip-track {
    overflow: visible;
    padding: 0;
  }

  .cfc-announcements-strip-items {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
    gap: 8px;
  }

  .cfc-announcements-strip-item {
    margin: 0;
  }

  .cfc-announcements-strip-track::before,
  .cfc-announcements-strip-track::after {
    content: none;
  }

  .cfc-order-of-service-inner {
    text-align: center;
  }

  .cfc-order-list {
    margin-top: 28px;
  }

  .cfc-reminders-inner {
    text-align: left;
  }

  .cfc-worship-spotlight-grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: 10px;
  }

  .cfc-worship-spotlight-card,
  .cfc-worship-spotlight-card--singing,
  .cfc-worship-spotlight-card--preaching,
  .cfc-worship-spotlight-card--communion,
  .cfc-worship-spotlight-card--confession,
  .cfc-worship-spotlight-card--offering {
    grid-column: auto;
    grid-row: auto;
    min-height: 0;
    height: auto;
    border-radius: 0;
  }

  .cfc-worship-spotlight-details {
    max-height: none;
    opacity: 1;
    transform: none;
    overflow: visible;
    pointer-events: auto;
  }

  .cfc-worship-spotlight-summary {
    max-width: none;
  }

  .cfc-worship-spotlight-card--preaching .cfc-worship-spotlight-list {
    grid-template-columns: 1fr;
  }

  .cfc-worship-spotlight-card:hover {
    transform: none;
    box-shadow: none;
  }

  .cfc-worship-spotlight-card:hover h3 {
    transform: none;
  }

  .cfc-worship-spotlight-card:hover .cfc-worship-spotlight-details {
    opacity: 1;
    transform: none;
  }

  .cfc-worship-serve-inner {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .cfc-worship-serve-form-card {
    padding: 20px 18px;
  }

  .cfc-worship-serve-roles-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-announcements-strip-item,
  .cfc-worship-spotlight-card,
  .cfc-worship-spotlight-card::before,
  .cfc-worship-spotlight-card h3,
  .cfc-worship-spotlight-details {
    transition: none;
  }
}

/* -- Sermons Archive/Single -- */
.cfc-sermon-archive,
.cfc-single-sermon,
.cfc-giving-page,
.cfc-page-layout {
  padding: 72px 0;
}

.cfc-sermon-intro {
  margin-bottom: 24px;
}

.cfc-sermon-filters {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 30px;
  background: var(--cfc-white);
  border: 1px solid #dadac8;
  border: 1px solid
    color-mix(in srgb, var(--cfc-secondary) 25%, var(--cfc-light-bg) 75%);
  border-radius: 10px;
  padding: 18px;
}

@media (max-width: 1024px) {
  .cfc-sermon-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .cfc-sermon-filters {
    grid-template-columns: 1fr;
  }
}

.cfc-sermon-filters label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

.cfc-sermon-filters input,
.cfc-sermon-filters select {
  width: 100%;
  border: 1px solid #d4d6c2;
  border: 1px solid
    color-mix(in srgb, var(--cfc-secondary) 30%, var(--cfc-light-bg) 70%);
  border-radius: 4px;
  background: var(--cfc-white);
  padding: 10px 12px;
  color: var(--cfc-dark-text);
}

.cfc-sermon-filter-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}

.cfc-sermon-card {
  margin-bottom: 22px;
}

.cfc-sermon-meta {
  font-size: 0.95rem;
  color: #3c3e37;
  color: color-mix(in srgb, var(--cfc-dark-text) 84%, var(--cfc-secondary) 16%);
  margin-bottom: 14px;
}

.cfc-sermon-meta span {
  display: inline-block;
  margin-right: 10px;
}

.cfc-audio {
  width: 100%;
  margin-top: 12px;
}

.cfc-audio::-webkit-media-controls-panel {
  background-color: #f7f2ec;
  background-color: color-mix(
    in srgb,
    var(--cfc-light-bg) 84%,
    var(--cfc-white) 16%
  );
}

.cfc-sermon-thumbnail {
  margin-top: 2rem;
}

.cfc-back-link {
  margin-top: 32px;
}

/* -- Confession Of Faith -- */
.cfc-confession {
  position: relative;
  background: #f2ebdd;
  color: var(--cfc-primary);
}

.cfc-confession-container {
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto;
}

.cfc-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  z-index: 1000;
  pointer-events: none;
}

.cfc-progress-bar-fill {
  display: block;
  width: 0;
  height: 100%;
  background: #8b8b38;
  transition: width 0.2s linear;
}

.cfc-confession-hero {
  position: relative;
  background: #232616;
  min-height: 50vh;
  display: flex;
  align-items: center;
  padding: 80px 0;
  overflow: hidden;
}

.cfc-confession-hero.has-image {
  background-image: var(--cfc-confession-hero-image);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.cfc-confession-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 38, 22, 0.9);
}

.cfc-confession-hero .cfc-confession-container {
  position: relative;
  z-index: 1;
}

.cfc-confession-hero-label {
  margin: 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  letter-spacing: 3px;
  font-size: 0.75rem;
  font-weight: 800;
  color: #a8b88c;
  text-transform: uppercase;
}

.cfc-confession-hero-title {
  margin: 14px 0 0;
  font-family: "Alegreya", Georgia, serif !important;
  font-weight: 800;
  font-size: clamp(2.3rem, 5.2vw, 3.5rem);
  line-height: 1.1;
  color: #f2ebdd !important;
}

.cfc-confession-hero-subtitle {
  margin: 10px 0 0;
  font-family: "Alegreya", Georgia, serif;
  font-style: italic;
  font-size: clamp(1.1rem, 2.4vw, 1.3rem);
  color: #8b8b38;
}

.cfc-confession-hero-rule {
  display: block;
  width: 60px;
  height: 2px;
  background: #8b8b38;
  margin: 24px 0 30px;
}

.cfc-confession-hero-intro {
  max-width: 700px;
  margin: 0 0 18px;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.9;
  color: rgba(242, 235, 221, 0.86);
}

.cfc-confession-hero-source {
  margin: 26px 0 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.85rem;
  color: rgba(242, 235, 221, 0.62);
}

.cfc-confession-hero-source a {
  color: #d4956a;
}

.cfc-confession-hero-source a:hover,
.cfc-confession-hero-source a:focus {
  color: #f2ebdd;
}

.cfc-chapter-index {
  background: #f2ebdd;
  padding: 80px 0;
}

.cfc-chapter-index .cfc-confession-container {
  max-width: 900px;
}

.cfc-chapter-index-title {
  margin: 0;
  text-align: center;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1.8rem, 3vw, 2rem);
  font-weight: 800;
  color: #232616 !important;
}

.cfc-chapter-index-rule {
  display: block;
  width: 60px;
  height: 2px;
  margin: 14px auto 34px;
  background: #8b8b38;
}

.cfc-chapter-index-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.cfc-chapter-index-card {
  display: block;
  background: #ffffff;
  border: 1px solid rgba(35, 38, 22, 0.08);
  padding: 20px 16px;
  text-align: center;
  text-decoration: none;
  transform: translateY(0);
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease;
}

.cfc-chapter-index-number {
  display: block;
  margin-bottom: 8px;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: #8b8b38;
  line-height: 1;
}

.cfc-chapter-index-name {
  display: block;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  letter-spacing: 1px;
  font-weight: 700;
  text-transform: uppercase;
  color: #232616;
}

.cfc-chapter-index-card:hover,
.cfc-chapter-index-card:focus {
  background: #232616;
  transform: translateY(-2px);
  text-decoration: none;
}

.cfc-chapter-index-card:hover .cfc-chapter-index-number,
.cfc-chapter-index-card:focus .cfc-chapter-index-number {
  color: #8b8b38;
}

.cfc-chapter-index-card:hover .cfc-chapter-index-name,
.cfc-chapter-index-card:focus .cfc-chapter-index-name {
  color: #f2ebdd;
}

.cfc-sticky-chapter-nav {
  position: fixed;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  max-height: 80vh;
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.cfc-sticky-chapter-nav.visible {
  opacity: 1;
  pointer-events: auto;
}

.cfc-sticky-chapter-nav ul {
  list-style: none;
  margin: 0;
  padding: 4px 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  max-height: 80vh;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.cfc-sticky-chapter-nav ul::-webkit-scrollbar {
  display: none;
}

.cfc-sticky-chapter-link {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid rgba(35, 38, 22, 0.15);
  color: #232616;
  background: transparent;
  text-decoration: none;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition:
    transform 0.3s ease,
    border-color 0.3s ease,
    color 0.3s ease,
    background-color 0.3s ease;
}

.cfc-sticky-tooltip {
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%) translateX(6px);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  line-height: 1.2;
  color: #f2ebdd;
  background: #232616;
  padding: 4px 10px;
  border-radius: 3px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

.cfc-sticky-chapter-link:hover .cfc-sticky-tooltip,
.cfc-sticky-chapter-link:focus .cfc-sticky-tooltip {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

.cfc-sticky-chapter-link:hover,
.cfc-sticky-chapter-link:focus {
  border-color: #8b8b38;
  color: #8b8b38;
  text-decoration: none;
}

.cfc-sticky-chapter-link.active {
  background: #8b8b38;
  border-color: #8b8b38;
  color: #ffffff;
  transform: scale(1.15);
}

.cfc-confession-chapter {
  padding: 80px 0;
}

.cfc-confession-chapter--odd {
  background: #f2ebdd;
}

.cfc-confession-chapter--even {
  background: #ffffff;
}

.cfc-confession.cfc-confession--animated .cfc-chapter-header {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s ease-out;
}

.cfc-confession.cfc-confession--animated .cfc-chapter-header.cfc-visible {
  opacity: 1;
  transform: translateY(0);
}

.cfc-chapter-label {
  margin: 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  letter-spacing: 3px;
  font-size: 0.75rem;
  text-transform: uppercase;
  color: #7a8450;
}

.cfc-chapter-title {
  margin: 10px 0 0;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1.9rem, 3.2vw, 2.2rem);
  font-weight: 800;
  color: #232616 !important;
}

.cfc-chapter-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px 0 30px;
  background: #8b8b38;
}

.cfc-chapter-body {
  max-width: 800px;
}

.cfc-paragraph {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 28px;
}

.cfc-para-num {
  width: 22px;
  min-width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #8b8b38;
  color: #ffffff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 22px;
  text-align: center;
  margin-top: 4px;
}

.cfc-para-content {
  flex: 1;
  min-width: 0;
}

.cfc-para-text,
.cfc-para-extra {
  margin: 0 0 14px;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.95;
  color: rgba(35, 38, 22, 0.87);
}

.cfc-book-list {
  margin: 0 0 12px;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem;
  line-height: 1.8;
  color: rgba(35, 38, 22, 0.9);
}

.cfc-book-list-label {
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 2px;
  font-weight: 800;
  text-transform: uppercase;
  color: #8b8b38;
}

.cfc-glossary-inline {
  color: #6b5b3e;
  font-style: italic;
  font-size: 0.9rem;
  white-space: normal;
}

.cfc-editorial-target {
  font-style: italic;
  color: rgba(35, 38, 22, 0.9);
}

.cfc-editorial-marker {
  display: inline-block;
  margin-left: 1px;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-style: normal;
  font-weight: 800;
  font-size: 0.72em;
  line-height: 1;
  vertical-align: super;
}

.cfc-para-text sup,
.cfc-para-extra sup,
.cfc-footnotes sup {
  color: #8b8b38;
  font-size: 0.75rem;
  font-weight: 700;
  vertical-align: super;
  line-height: 0;
}

.cfc-footnotes {
  margin-top: 8px;
  padding-top: 8px;
  padding-left: 36px;
  border-top: 1px solid rgba(35, 38, 22, 0.06);
}

.cfc-footnotes p {
  margin: 0 0 8px;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.8rem;
  line-height: 1.6;
  font-style: italic;
  color: #7a8450;
}

.cfc-footnotes p:last-child {
  margin-bottom: 0;
}

.cfc-editorial-note {
  background: rgba(139, 139, 56, 0.07);
  border-left: 3px solid #8b8b38;
  border-radius: 0 4px 4px 0;
  margin: 20px 0 28px 36px;
  padding: 20px 24px;
}

.cfc-editorial-note-label {
  margin: 0 0 8px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.65rem;
  letter-spacing: 2px;
  font-weight: 800;
  text-transform: uppercase;
  color: #8b8b38;
}

.cfc-editorial-note-marker {
  letter-spacing: 0;
  font-size: 0.86em;
  color: #232616;
}

.cfc-editorial-note p {
  margin: 0;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.9rem;
  line-height: 1.8;
  font-style: italic;
  color: rgba(35, 38, 22, 0.75);
}

.cfc-back-to-top,
[class*="back-to-top"],
.scroll-to-top,
#scroll-top,
#ast-scroll-top {
  position: fixed;
  right: 30px;
  bottom: 30px;
  width: 36px !important;
  height: 36px !important;
  border-radius: 8px !important;
  border: 1px solid rgba(35, 38, 22, 0.1) !important;
  background: rgba(35, 38, 22, 0.06) !important;
  color: rgba(35, 38, 22, 0.35) !important;
  font-size: 0.95rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none !important;
  opacity: 0;
  pointer-events: none;
  transform: translateY(6px);
  transition:
    opacity 0.3s ease,
    transform 0.3s ease,
    background-color 0.3s ease,
    border-color 0.3s ease;
  z-index: 998;
}

.cfc-back-to-top span,
[class*="back-to-top"] span,
.scroll-to-top span,
#scroll-top span,
#ast-scroll-top span,
.cfc-back-to-top svg,
[class*="back-to-top"] svg,
.scroll-to-top svg,
#scroll-top svg,
#ast-scroll-top svg {
  color: inherit !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

.cfc-back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.cfc-back-to-top:hover,
.cfc-back-to-top:focus,
[class*="back-to-top"]:hover,
[class*="back-to-top"]:focus,
.scroll-to-top:hover,
.scroll-to-top:focus,
#scroll-top:hover,
#scroll-top:focus,
#ast-scroll-top:hover,
#ast-scroll-top:focus {
  background: rgba(35, 38, 22, 0.1) !important;
  border-color: rgba(35, 38, 22, 0.18) !important;
  color: rgba(35, 38, 22, 0.55) !important;
  box-shadow: none !important;
}

@media (max-width: 1200px) {
  .cfc-sticky-chapter-nav {
    display: none;
  }
}

@media (min-width: 1201px) {
  .cfc-back-to-top {
    right: 80px;
  }
}

@media (max-width: 1024px) {
  .cfc-chapter-index-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .cfc-confession-container {
    width: min(1100px, calc(100% - 40px));
  }

  .cfc-confession-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-chapter-index-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cfc-confession-chapter {
    padding: 50px 0;
  }

  .cfc-chapter-title {
    font-size: 1.8rem;
  }

  .cfc-para-text,
  .cfc-para-extra {
    font-size: 1rem;
  }

  .cfc-footnotes {
    padding-left: 20px;
  }

  .cfc-footnotes p {
    font-size: 0.78rem;
  }

  .cfc-editorial-note {
    margin-left: 0;
    padding: 18px 18px;
  }

  .cfc-back-to-top {
    right: 20px;
    bottom: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-confession-hero.has-image {
    background-attachment: scroll;
  }

  .cfc-progress-bar-fill,
  .cfc-chapter-header,
  .cfc-back-to-top,
  .cfc-chapter-index-card,
  .cfc-sticky-chapter-link,
  .cfc-sticky-tooltip {
    transition: none !important;
  }

  .cfc-chapter-header {
    opacity: 1 !important;
    transform: none !important;
  }

  .cfc-back-to-top {
    transform: none !important;
  }
}

/* -- Footer -- */
.site-footer:not(.cfc-site-footer),
.site-primary-footer-wrap,
.site-below-footer-wrap,
.ast-small-footer-wrap,
.ast-footer-overlay,
.hfe-before-footer-wrap,
.hfe-after-footer-wrap,
.hfe-header-wrap,
.hfe-footer-wrap {
  display: none !important;
}

.cfc-site-footer {
  background: var(--cfc-primary);
  color: var(--cfc-light-text);
}

.cfc-site-footer {
  padding: 64px 0 30px;
}

.cfc-footer-grid {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 24px;
}

@media (max-width: 921px) {
  .cfc-footer-grid {
    grid-template-columns: 1fr;
  }
}

.cfc-site-footer h3 {
  margin-top: 0;
  margin-bottom: 10px;
  color: var(--cfc-accent) !important;
  font-size: 1.1rem;
}

.cfc-site-footer p,
.cfc-site-footer li,
.cfc-site-footer a {
  color: var(--cfc-light-text);
}

.cfc-site-footer a {
  color: var(--cfc-accent);
}

.cfc-site-footer a:hover,
.cfc-site-footer a:focus {
  color: var(--cfc-light-text);
}

.cfc-footer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cfc-footer-list li {
  margin-bottom: 8px;
}

.cfc-footer-meta {
  border-top: 1px solid rgba(237, 232, 223, 0.22);
  border-top: 1px solid
    color-mix(in srgb, var(--cfc-light-text) 22%, transparent 78%);
  margin-top: 24px;
  padding-top: 18px;
  font-size: 0.9rem;
  color: #dedcce;
  color: color-mix(
    in srgb,
    var(--cfc-light-text) 85%,
    var(--cfc-secondary) 15%
  );
}

.cfc-esv-license {
  margin-top: 10px;
  font-size: 0.76rem;
  line-height: 1.55;
  color: rgba(237, 232, 223, 0.8);
}

/* =============================================================================
   Sermons System (cfc_sermon)
   ============================================================================= */
.cfc-sermons,
.cfc-sermon-single {
  background: #f2ebdd;
  color: #232616;
  font-family: "Alegreya", Georgia, serif;
}

.cfc-sermons-shell,
.cfc-sermon-shell {
  width: min(1100px, calc(100% - 64px));
  margin: 0 auto;
}

.cfc-sermon-shell--narrow {
  width: min(700px, calc(100% - 64px));
}

.cfc-sermons-hero {
  min-height: 40vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background:
    linear-gradient(
      180deg,
      rgba(35, 38, 22, 0.82) 0%,
      rgba(35, 38, 22, 0.72) 45%,
      rgba(35, 38, 22, 0.84) 100%
    ),
    var(--cfc-sermons-hero-image, none), #232616;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  padding: clamp(84px, 9vw, 118px) 0 44px;
}

.cfc-sermons-hero-label {
  margin: 0;
  color: #a8b88c;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-sermons-hero h1 {
  margin: 10px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  line-height: 1.05;
}

.cfc-sermons-hero-rule {
  display: block;
  width: 50px;
  height: 2px;
  margin: 24px auto 28px;
  background: #8b8b38;
}

.cfc-sermon-search {
  max-width: 600px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(242, 235, 221, 0.15);
  border-radius: 8px;
  padding: 4px 5px 4px 14px;
  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(2px);
  transition:
    border-color 0.3s ease,
    background-color 0.3s ease,
    box-shadow 0.3s ease;
}

.cfc-sermon-search:focus-within {
  border-color: rgba(139, 139, 56, 0.55);
  background: rgba(35, 38, 22, 0.58);
  box-shadow: 0 0 0 4px rgba(139, 139, 56, 0.08);
}

.cfc-sermon-search-icon {
  width: 18px;
  height: 18px;
  color: #d6d1c5;
  opacity: 0.3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: opacity 0.25s ease;
}

.cfc-sermon-search-icon .fas {
  width: 18px;
  height: 18px;
  display: block;
  font-size: 1rem;
  line-height: 1;
}

.cfc-sermon-search:focus-within .cfc-sermon-search-icon {
  opacity: 0.48;
}

.cfc-sermon-search input {
  flex: 1;
  background: transparent;
  background-color: transparent !important;
  border: 0;
  outline: 0;
  appearance: none;
  -webkit-appearance: none;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1rem;
  color: rgba(242, 235, 221, 0.78) !important;
  -webkit-text-fill-color: rgba(242, 235, 221, 0.78) !important;
  caret-color: rgba(242, 235, 221, 0.68);
  padding: 14px 12px;
  min-width: 0;
}

.cfc-sermon-search input:focus {
  background: transparent !important;
}

.cfc-sermon-search input[type="search"]::-webkit-search-decoration,
.cfc-sermon-search input[type="search"]::-webkit-search-cancel-button,
.cfc-sermon-search input[type="search"]::-webkit-search-results-button,
.cfc-sermon-search input[type="search"]::-webkit-search-results-decoration {
  -webkit-appearance: none;
}

.cfc-sermon-search input::placeholder {
  color: rgba(242, 235, 221, 0.44) !important;
}

.cfc-sermon-search button {
  border: 0 !important;
  border-radius: 6px;
  background: #8b8b38 !important;
  color: #fff;
  width: 40px;
  height: 40px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  line-height: 1 !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08) !important;
  transition:
    background-color 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.cfc-sermon-search-submit-icon {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 14px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  line-height: 1;
  transform: none;
  opacity: 0.82;
}

.cfc-sermon-search-submit-icon::before {
  transform: translate(1px, 1px);
}

.cfc-sermon-search button:hover {
  background: #6b6b28 !important;
  transform: translateY(-1px);
}

.cfc-sermon-search button:focus,
.cfc-sermon-search button:focus-visible {
  outline: none !important;
  border: 0 !important;
  box-shadow:
    0 0 0 3px rgba(139, 139, 56, 0.2),
    inset 0 0 0 1px rgba(255, 255, 255, 0.14) !important;
}

.cfc-sermon-search button::-moz-focus-inner {
  border: 0;
}

.cfc-sermon-search input:focus,
.cfc-sermon-search input:focus-visible {
  outline: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: rgba(242, 235, 221, 0.78) !important;
  -webkit-text-fill-color: rgba(242, 235, 221, 0.78) !important;
  caret-color: rgba(242, 235, 221, 0.68);
}

.post-type-archive-cfc_sermon .cfc-sermon-search input:-webkit-autofill,
.post-type-archive-cfc_sermon .cfc-sermon-search input:-webkit-autofill:hover,
.post-type-archive-cfc_sermon .cfc-sermon-search input:-webkit-autofill:focus {
  -webkit-text-fill-color: rgba(242, 235, 221, 0.78) !important;
  caret-color: rgba(242, 235, 221, 0.68);
  box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0) inset !important;
  transition: background-color 9999s ease-in-out 0s;
}

.cfc-sermons-filters-wrap {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #f2ebdd;
  border-bottom: 1px solid rgba(35, 38, 22, 0.06);
}

/* Keep primary header dropdowns above the sticky sermons filter bar. */
.post-type-archive-cfc_sermon #masthead.site-header,
.post-type-archive-cfc_sermon #masthead .main-header-bar,
.post-type-archive-cfc_sermon #masthead .site-primary-header-wrap {
  position: relative;
  z-index: 1200;
}

.post-type-archive-cfc_sermon .ast-builder-menu-1 .sub-menu {
  z-index: 1201;
}

.cfc-sermons-filters {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 20px 0;
}

.cfc-sermons-filters-left,
.cfc-sermons-filters-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.cfc-sermon-dropdown {
  position: relative;
}

.cfc-sermon-dropdown-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff !important;
  border: 1px solid rgba(35, 38, 22, 0.1) !important;
  border-radius: 6px;
  padding: 8px 14px !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: #232616 !important;
  cursor: pointer;
  line-height: 1.2;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-color 0.2s ease;
}

.cfc-sermon-dropdown-trigger:hover {
  background: #fff !important;
  border-color: rgba(35, 38, 22, 0.2) !important;
  color: #232616 !important;
  box-shadow: 0 1px 4px rgba(35, 38, 22, 0.06);
}

.cfc-sermon-dropdown-trigger:focus,
.cfc-sermon-dropdown-trigger:active,
.cfc-sermon-dropdown-trigger:focus-visible {
  background: #fff !important;
  color: #232616 !important;
}

.cfc-sermon-dropdown.is-open .cfc-sermon-dropdown-trigger {
  background: #fff !important;
  border-color: #8b8b38 !important;
  color: #232616 !important;
  box-shadow: 0 0 0 3px rgba(139, 139, 56, 0.08);
}

.cfc-sermon-dropdown.is-active .cfc-sermon-dropdown-trigger {
  background: rgba(139, 139, 56, 0.05) !important;
  border-color: #8b8b38 !important;
  color: #232616 !important;
}

.cfc-sermon-dropdown-chevron {
  width: 12px;
  height: 12px;
  display: block;
  font-size: 0.65rem;
  line-height: 1;
  transition: transform 0.25s ease;
  opacity: 0.45;
  color: #8b8b38;
}

.cfc-sermon-dropdown.is-open .cfc-sermon-dropdown-chevron {
  transform: rotate(180deg);
}

.cfc-sermon-dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 100%;
  max-width: 280px;
  max-height: 260px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 8px;
  padding: 6px;
  box-shadow: 0 8px 30px rgba(35, 38, 22, 0.12);
  z-index: 150;
}

.cfc-sermon-dropdown.is-open .cfc-sermon-dropdown-menu {
  display: block;
  animation: cfcDropdownIn 0.2s ease;
}

@keyframes cfcDropdownIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.cfc-sermon-dropdown-option {
  display: block;
  width: 100%;
  border: 0 !important;
  background: transparent !important;
  text-align: left;
  padding: 9px 12px !important;
  border-radius: 5px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: #232616 !important;
  cursor: pointer;
  line-height: 1.3;
  transition: background 0.15s ease;
  text-transform: none;
}

.cfc-sermon-dropdown-option:hover {
  background: rgba(35, 38, 22, 0.04) !important;
  color: #232616 !important;
}

.cfc-sermon-dropdown-option:focus,
.cfc-sermon-dropdown-option:active,
.cfc-sermon-dropdown-option:focus-visible {
  background: rgba(35, 38, 22, 0.04) !important;
  color: #232616 !important;
}

.cfc-sermon-dropdown-option.is-selected {
  color: #8b8b38 !important;
  font-weight: 800;
  background: rgba(139, 139, 56, 0.06) !important;
}

.cfc-sermon-dropdown-option.is-selected:hover,
.cfc-sermon-dropdown-option.is-selected:focus,
.cfc-sermon-dropdown-option.is-selected:active,
.cfc-sermon-dropdown-option.is-selected:focus-visible {
  color: #8b8b38 !important;
  background: rgba(139, 139, 56, 0.08) !important;
}

.cfc-sermon-dropdown-option[data-value=""] {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: rgba(35, 38, 22, 0.45);
  border-bottom: 1px solid rgba(35, 38, 22, 0.05);
  margin-bottom: 4px;
  padding-bottom: 10px;
  border-radius: 5px 5px 0 0;
}

.cfc-sermon-dropdown-group-label {
  display: block;
  padding: 10px 12px 4px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(35, 38, 22, 0.3);
  pointer-events: none;
}

.cfc-sermon-dropdown-menu::-webkit-scrollbar {
  width: 4px;
}

.cfc-sermon-dropdown-menu::-webkit-scrollbar-track {
  background: transparent;
}

.cfc-sermon-dropdown-menu::-webkit-scrollbar-thumb {
  background: rgba(35, 38, 22, 0.1);
  border-radius: 2px;
}

.cfc-sermon-filter {
  appearance: none;
  -webkit-appearance: none;
  background: #fff;
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 6px;
  padding: 8px 32px 8px 14px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #232616;
  cursor: pointer;
}

.cfc-sermon-sort-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.cfc-sermon-sort-chevron {
  width: 12px;
  height: 12px;
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  color: #8b8b38;
  font-size: 0.65rem;
  line-height: 1;
  pointer-events: none;
}

.cfc-sermon-filter:focus {
  outline: none;
  border-color: #8b8b38;
  box-shadow: 0 0 0 3px rgba(139, 139, 56, 0.08);
}

.cfc-sermon-filter.is-active {
  border-color: #8b8b38;
  background-color: rgba(139, 139, 56, 0.04);
}

.cfc-sermon-filter option,
.cfc-sermon-filter optgroup {
  text-transform: none;
  font-weight: normal;
  font-size: 0.85rem;
  letter-spacing: 0;
}

.cfc-sermon-filter option {
  color: #232616;
  background-color: #fff;
}

.cfc-sermon-filter option:checked {
  color: #232616;
  background: #f2ebdd linear-gradient(0deg, #f2ebdd, #f2ebdd);
}

.cfc-sermons-result-count {
  margin: 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.2px;
  color: rgba(35, 38, 22, 0.5);
}

.cfc-sermons-active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-bottom: 14px;
}

.cfc-sermons-active-filters:empty {
  display: none;
}

.cfc-sermon-active-pill {
  border: 0;
  border-radius: 3px;
  background: rgba(139, 139, 56, 0.1);
  color: #232616;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 4px 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.cfc-sermon-active-pill:hover {
  background: rgba(139, 139, 56, 0.18);
}

.cfc-sermons-list-wrap {
  padding: 30px 0 80px;
}

.cfc-sermon-row {
  display: grid;
  grid-template-columns: 34px 1fr auto;
  gap: 12px;
  align-items: center;
  background: rgba(255, 255, 255, 0.55);
  border-radius: 4px;
  padding: 12px 18px;
  margin-bottom: 2px;
  text-decoration: none;
  color: inherit;
  border-left: 3px solid transparent;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-left-color 0.2s ease;
}

.cfc-sermon-row:hover {
  transform: translateX(1px);
  background: #fff;
  box-shadow: 0 1px 8px rgba(35, 38, 22, 0.04);
  border-left-color: #8b8b38;
}

.cfc-sermon-row-speaker {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  overflow: hidden;
  background: #8b8b38;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.6rem;
  font-weight: 800;
}

.cfc-sermon-row-speaker img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cfc-sermon-row-main h3 {
  margin: 0;
  font-family: "Alegreya", Georgia, serif;
  font-size: 0.95rem !important;
  line-height: 1.25;
  font-weight: 700;
  color: #232616;
}

.cfc-sermon-row-main p {
  margin: 2px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: baseline;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.73rem !important;
  color: rgba(35, 38, 22, 0.45);
}

.cfc-sermon-row-scripture {
  color: #8b8b38;
  font-weight: 700;
  font-size: 0.73rem !important;
}

.cfc-sermon-dot {
  color: rgba(35, 38, 22, 0.3);
}

.cfc-sermon-row-side {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  color: rgba(35, 38, 22, 0.3);
  white-space: nowrap;
}

.cfc-sermon-row-plays {
  color: rgba(35, 38, 22, 0.3);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.cfc-sermon-row-plays .fas {
  width: 9px;
  height: 9px;
  display: block;
  font-size: 0.55rem;
  line-height: 1;
}

.cfc-sermon-empty {
  text-align: center;
  padding: 28px 0;
}

.cfc-sermon-empty-icon {
  width: 40px;
  height: 40px;
  margin: 0 auto 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(35, 38, 22, 0.35);
}

.cfc-sermon-empty-icon .fas {
  width: 40px;
  height: 40px;
  display: block;
  font-size: 2rem;
  line-height: 1;
}

.cfc-sermon-empty p {
  margin: 0;
  color: rgba(35, 38, 22, 0.5);
  font-size: 1rem;
}

.cfc-sermon-clear-btn,
.cfc-sermon-load-more {
  margin-top: 12px;
  border: 1px solid rgba(35, 38, 22, 0.15) !important;
  border-radius: 6px !important;
  background: transparent !important;
  color: rgba(35, 38, 22, 0.55) !important;
  padding: 10px 24px !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: none !important;
  transition:
    border-color 0.2s ease,
    color 0.2s ease,
    background 0.2s ease;
}

.cfc-sermon-clear-btn:hover,
.cfc-sermon-load-more:hover {
  border-color: rgba(35, 38, 22, 0.3) !important;
  color: rgba(35, 38, 22, 0.8) !important;
  background: rgba(35, 38, 22, 0.03) !important;
}

.cfc-sermon-load-more-wrap {
  text-align: center;
}

.cfc-sermon-load-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.cfc-sermon-load-more[hidden] {
  display: none !important;
}

.cfc-sermon-load-more .fas {
  width: 14px;
  height: 14px;
  display: block;
  font-size: 0.8rem;
  line-height: 1;
}

/* Sermon Audio embed */
.cfc-sermons-audio-embed {
  padding: 56px 0 72px;
  background: #f7f5f0;
  border-top: 1px solid rgba(35, 38, 22, 0.08);
}

.cfc-sermons-audio-embed-title {
  font-family: "Alegreya", Georgia, serif;
  font-size: clamp(1.6rem, 3vw, 2rem);
  font-weight: 700;
  color: #232616;
  text-align: center;
  margin: 0 0 10px;
}

.cfc-sermons-audio-embed-rule {
  display: block;
  width: 56px;
  height: 2px;
  background: #8b8b38;
  margin: 0 auto 32px;
  border-radius: 1px;
}

.cfc-sermons-audio-embed-frame {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(35, 38, 22, 0.08);
}

.cfc-sermons-audio-embed-frame iframe {
  display: block;
  border: none;
}

/* Single sermon */
.cfc-sermon-read-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 3px;
  background: linear-gradient(90deg, #8b8b38, #a8b88c);
  z-index: 2200;
  border-radius: 0 2px 2px 0;
  opacity: 0;
  pointer-events: none;
  transition:
    width 0.1s linear,
    opacity 0.25s ease;
}

.cfc-sermon-read-progress.is-visible {
  opacity: 1;
}

.cfc-sermon-hero {
  position: relative;
  min-height: 50vh;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 60px 40px 50px;
  background: #232616;
}

.cfc-sermon-hero-video,
.cfc-sermon-hero-fallback {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 100%;
  min-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 8%;
  z-index: 0;
}

.cfc-sermon-hero-fallback {
  background-size: cover;
  background-position: center 8%;
}

.cfc-sermon-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.97) 0%,
    rgba(35, 38, 22, 0.75) 35%,
    rgba(35, 38, 22, 0.35) 65%,
    rgba(35, 38, 22, 0.25) 100%
  );
  z-index: 1;
}

.cfc-sermon-hero-content {
  position: relative;
  z-index: 2;
  max-width: 800px;
}

.cfc-sermon-hero-series {
  margin: 0 0 4px;
  display: inline-block;
  padding: 4px 12px;
  border-radius: 3px;
  background: rgba(139, 139, 56, 0.15);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #8b8b38;
  text-decoration: none;
  font-weight: 800;
  transition: background 0.2s ease;
}

.cfc-sermon-hero-series:hover {
  background: rgba(139, 139, 56, 0.25);
}

.cfc-sermon-hero h1 {
  margin: 8px 0 0;
  color: #f2ebdd !important;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1.2;
}

.cfc-sermon-hero-scripture {
  margin: 8px 0 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 1rem;
  font-weight: 800;
}

.cfc-sermon-hero-scripture a,
.cfc-sermon-hero-scripture {
  color: #8b8b38;
  text-decoration: none;
}

.cfc-sermon-hero-meta {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  color: rgba(242, 235, 221, 0.8);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.9rem;
}

.cfc-sermon-hero-speaker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.cfc-sermon-hero-speaker img,
.cfc-sermon-hero-speaker-fallback {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid rgba(242, 235, 221, 0.3);
}

.cfc-sermon-hero-speaker img {
  object-fit: cover;
}

.cfc-sermon-hero-speaker-fallback {
  background: #8b8b38;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
}

.cfc-sermon-hero-speaker-text {
  display: inline-flex;
  flex-direction: column;
}

.cfc-sermon-hero-speaker-text strong {
  line-height: 1.1;
}

.cfc-sermon-hero-speaker small {
  font-size: 0.72rem;
  color: rgba(242, 235, 221, 0.7);
}

.cfc-sermon-hero-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.cfc-sermon-hero-meta-item .fas {
  width: 15px;
  height: 15px;
  display: block;
  font-size: 0.9rem;
  line-height: 1;
  opacity: 0.5;
}

.cfc-sermon-hero-unmute {
  position: absolute;
  right: 20px;
  bottom: 20px;
  z-index: 3;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(242, 235, 221, 0.24);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.25);
  color: #f2ebdd;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
  cursor: pointer;
}

.cfc-sermon-hero-unmute .fas {
  width: 18px;
  height: 18px;
  display: block;
  font-size: 1rem;
  line-height: 1;
}

.cfc-sermon-hero-unmute .cfc-icon-unmuted {
  display: none;
}

.cfc-sermon-hero-unmute .cfc-icon-muted {
  display: inline-flex;
}

.cfc-sermon-hero-unmute[data-state="unmuted"] .cfc-icon-muted {
  display: none;
}

.cfc-sermon-hero-unmute[data-state="unmuted"] .cfc-icon-unmuted {
  display: inline-flex;
}

.cfc-sermon-media-section {
  padding: 40px 0;
}

.cfc-sermon-media-section .cfc-sermon-shell {
  max-width: 800px;
}

.cfc-sermon-mode-toggle {
  display: inline-flex;
  align-items: stretch;
  justify-content: flex-start;
  background: #fff;
  border: 1px solid rgba(35, 38, 22, 0.12);
  border-radius: 10px;
  padding: 5px;
  gap: 4px;
  box-shadow: 0 2px 12px rgba(35, 38, 22, 0.06);
  margin: 0 auto 24px;
}

.cfc-sermon-mode-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0 !important;
  background: transparent !important;
  border-radius: 8px;
  padding: 10px 24px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: rgba(35, 38, 22, 0.4) !important;
  cursor: pointer;
  line-height: 1;
  transition:
    background-color 0.22s ease,
    color 0.22s ease;
  min-height: 40px;
}

.cfc-sermon-mode-btn.active {
  background: #232616 !important;
  color: #f2ebdd !important;
  border-radius: 7px;
  box-shadow: 0 2px 8px rgba(35, 38, 22, 0.15);
}

.cfc-sermon-mode-btn:not(.active) {
  background: transparent !important;
  color: rgba(35, 38, 22, 0.4) !important;
  border-radius: 7px;
}

.cfc-sermon-mode-btn:not(.active):hover {
  color: rgba(35, 38, 22, 0.65) !important;
  background: rgba(35, 38, 22, 0.03) !important;
}

.cfc-sermon-mode-btn:not(.active):focus,
.cfc-sermon-mode-btn:not(.active):active,
.cfc-sermon-mode-btn:not(.active):focus-visible {
  background: rgba(35, 38, 22, 0.03) !important;
  color: rgba(35, 38, 22, 0.65) !important;
}

.cfc-sermon-mode-btn.active:focus,
.cfc-sermon-mode-btn.active:active,
.cfc-sermon-mode-btn.active:focus-visible {
  background: #232616 !important;
  color: #f2ebdd !important;
}

.cfc-sermon-mode-btn:focus-visible {
  outline: 2px solid #8b8b38;
  outline-offset: 2px;
}

.cfc-sermon-mode-btn .fas {
  width: 16px;
  height: 16px;
  display: block;
  font-size: 0.95rem;
  line-height: 1;
}

.cfc-sermon-media-panel {
  display: none;
}

.cfc-sermon-media-panel.is-active {
  display: block;
  animation: cfcFadeIn 0.35s ease;
}

@keyframes cfcFadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.cfc-sermon-play-btn {
  position: relative;
  width: 42px;
  height: 42px;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 50% !important;
  background: #d4956a !important;
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  line-height: 1;
  flex-shrink: 0;
  transition:
    background 0.2s ease,
    transform 0.15s ease;
}

.cfc-sermon-play-btn .fas {
  width: 18px;
  height: 18px;
  display: block;
  font-size: 1rem;
  line-height: 1;
}

.cfc-sermon-play-btn .cfc-icon-play,
.cfc-sermon-play-btn .cfc-icon-pause {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cfc-sermon-play-btn .cfc-icon-play .fas,
.cfc-sermon-play-btn .cfc-icon-pause .fas {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.cfc-sermon-play-btn .cfc-icon-pause {
  display: none;
}

.cfc-sermon-play-btn .cfc-icon-play {
  display: inline-flex;
}

.cfc-sermon-play-btn.is-playing .cfc-icon-play {
  display: none;
}

.cfc-sermon-play-btn.is-playing .cfc-icon-pause {
  display: inline-flex;
}

.cfc-sermon-audio-player {
  background: #232616;
  border-radius: 12px;
  padding: 16px 22px;
  box-shadow: 0 4px 20px rgba(35, 38, 22, 0.12);
  border: 1px solid rgba(242, 235, 221, 0.03);
}

.cfc-sermon-audio-controls {
  display: flex;
  align-items: center;
  gap: 14px;
}

.cfc-sermon-audio-play {
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  background: #d4956a !important;
  color: #fff !important;
  border: 0 !important;
  flex-shrink: 0;
}

.cfc-sermon-audio-play:hover {
  background: #c47f54;
  transform: scale(1.05);
}

.cfc-sermon-audio-play:active {
  transform: scale(0.97);
}

.cfc-sermon-progress-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}

.cfc-sermon-time-current,
.cfc-sermon-time-duration {
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  color: rgba(242, 235, 221, 0.4);
  min-width: 34px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.cfc-sermon-audio-track {
  position: relative;
  flex: 1;
  height: 36px;
  border-radius: 4px;
  background: rgba(242, 235, 221, 0.05);
  cursor: pointer;
  touch-action: none;
  overflow: visible;
}

.cfc-sermon-audio-track:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(139, 139, 56, 0.16);
}

.cfc-sermon-audio-buffered,
.cfc-sermon-audio-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 0;
  transform: none;
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}

.cfc-sermon-audio-buffered {
  background: rgba(242, 235, 221, 0.1);
}

.cfc-sermon-audio-fill {
  background: #8b8b38;
  z-index: 1;
}

.cfc-sermon-waveform {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  pointer-events: none;
  z-index: 2;
}

.cfc-sermon-audio-handle {
  position: absolute;
  top: 50%;
  left: 0;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  margin-left: -7px;
  border-radius: 50%;
  background: #f2ebdd;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.3);
  opacity: 0;
  transform: scale(0.6);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
  pointer-events: none;
  z-index: 3;
}

.cfc-sermon-audio-track:hover .cfc-sermon-audio-handle,
.cfc-sermon-audio-track.is-dragging .cfc-sermon-audio-handle,
.cfc-sermon-audio-track:focus-visible .cfc-sermon-audio-handle {
  opacity: 1;
  transform: scale(1);
}

.cfc-sermon-audio-track.is-loading {
  background: linear-gradient(
    90deg,
    rgba(242, 235, 221, 0.04) 25%,
    rgba(242, 235, 221, 0.08) 50%,
    rgba(242, 235, 221, 0.04) 75%
  );
  background-size: 200% 100%;
  animation: cfcWaveShimmer 1.5s linear infinite;
}

@keyframes cfcWaveShimmer {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
}

.cfc-sermon-audio-secondary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.cfc-sermon-audio-speed,
.cfc-sermon-speed-btn {
  border: 1px solid rgba(242, 235, 221, 0.15) !important;
  border-radius: 5px !important;
  background: transparent !important;
  color: rgba(242, 235, 221, 0.4) !important;
  padding: 4px 10px !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  box-shadow: none !important;
  transition:
    border-color 0.2s ease,
    color 0.2s ease,
    background-color 0.2s ease;
}

.cfc-sermon-audio-speed:hover,
.cfc-sermon-speed-btn:hover {
  border-color: rgba(242, 235, 221, 0.3) !important;
  color: rgba(242, 235, 221, 0.75) !important;
}

.cfc-sermon-audio-speed.is-nondefault,
.cfc-sermon-audio-speed.is-changed,
.cfc-sermon-speed-btn.is-nondefault,
.cfc-sermon-speed-btn.is-changed {
  color: #8b8b38 !important;
  border-color: rgba(139, 139, 56, 0.4) !important;
}

.cfc-sermon-audio-download,
.cfc-sermon-dl-btn {
  width: 32px;
  height: 32px;
  border-radius: 5px;
  border: 0;
  color: rgba(242, 235, 221, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.cfc-sermon-audio-download:hover,
.cfc-sermon-dl-btn:hover {
  color: rgba(242, 235, 221, 0.7);
  background: rgba(242, 235, 221, 0.06);
}

.cfc-sermon-audio-download .fas,
.cfc-sermon-dl-btn .fas {
  width: 15px;
  height: 15px;
  display: block;
  font-size: 0.9rem;
  line-height: 1;
}

.cfc-sermon-video-player {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(35, 38, 22, 0.1);
  background: #232616;
}

.cfc-sermon-video-player video,
.cfc-sermon-video-player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.cfc-sermon-bar {
  margin-top: 24px;
  padding-top: 20px;
}

.cfc-sermon-details-bar {
  border-top: 1px solid rgba(35, 38, 22, 0.06);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.cfc-sermon-details-left {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
}

.cfc-sermon-detail-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border-radius: 5px;
  background: rgba(35, 38, 22, 0.04);
  color: #232616;
  text-decoration: none;
}

.cfc-sermon-detail-chip .fas {
  width: 14px;
  height: 14px;
  display: block;
  font-size: 0.85rem;
  line-height: 1;
}

.cfc-sermon-detail-chip.is-scripture {
  background: rgba(139, 139, 56, 0.06);
  color: #8b8b38;
}

.cfc-sermon-details-right {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.cfc-sermon-detail-action,
.cfc-sermon-details-right .cfc-sermon-share-trigger {
  border: 1px solid rgba(35, 38, 22, 0.12) !important;
  border-radius: 5px;
  background: transparent !important;
  color: rgba(35, 38, 22, 0.55) !important;
  padding: 7px 12px !important;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition:
    color 0.2s ease,
    border-color 0.2s ease,
    background-color 0.2s ease;
}

.cfc-sermon-detail-action:hover,
.cfc-sermon-details-right .cfc-sermon-share-trigger:hover {
  color: rgba(35, 38, 22, 0.8) !important;
  border-color: rgba(35, 38, 22, 0.3) !important;
  background: rgba(35, 38, 22, 0.03) !important;
}

.cfc-sermon-details-right .cfc-sermon-share-trigger svg,
.cfc-sermon-details-right .cfc-sermon-share-trigger .fas {
  width: 14px;
  height: 14px;
  display: block;
  font-size: 14px;
  line-height: 1;
}

.cfc-sermon-share-msg {
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #8b8b38;
  min-width: 48px;
}

.cfc-sermon-share-msg.is-error {
  color: #b24e4e;
}

.cfc-sermon-closing-inner .cfc-sermon-share-msg {
  order: 3;
  flex-basis: 100%;
  width: 100%;
  margin-top: -8px;
  text-align: center;
  color: rgba(242, 235, 221, 0.78);
  min-width: 0;
}

.cfc-sermon-closing-inner .cfc-sermon-share-msg:empty {
  display: none;
}

.cfc-sermon-closing-inner .cfc-sermon-share-msg.is-error {
  color: #f3b2b2;
}

.cfc-sermon-series-nav {
  background: #fff;
  padding: 50px 0;
}

.cfc-sermon-series-head {
  margin-bottom: 4px;
}

.cfc-sermon-series-kicker {
  margin: 0;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(35, 38, 22, 0.35);
}

.cfc-sermon-series-head h2 {
  margin: 6px 0 0;
  font-size: 1.2rem;
}

.cfc-sermon-series-head h2 a {
  color: #232616;
  text-decoration: none;
}

.cfc-sermon-series-grid {
  margin-top: 16px;
}

.cfc-sermon-series-all-link {
  margin: 20px 0 0;
  text-align: center;
}

.cfc-sermon-series-scroll {
  margin-top: 16px;
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding: 4px 0 14px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.cfc-sermon-series-scroll::-webkit-scrollbar {
  height: 4px;
}

.cfc-sermon-series-scroll::-webkit-scrollbar-track {
  background: rgba(35, 38, 22, 0.04);
  border-radius: 2px;
}

.cfc-sermon-series-scroll::-webkit-scrollbar-thumb {
  background: rgba(35, 38, 22, 0.12);
  border-radius: 2px;
}

.cfc-sermon-series-card {
  min-width: 280px;
  max-width: 300px;
  scroll-snap-align: start;
  background: #f2ebdd;
  border-radius: 6px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-decoration: none;
  color: #232616;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.cfc-sermon-series-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 18px rgba(35, 38, 22, 0.08);
}

.cfc-sermon-series-scripture {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
}

.cfc-sermon-series-card h3 {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.4;
}

.cfc-sermon-series-meta {
  margin: auto 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.75rem;
  color: rgba(35, 38, 22, 0.5);
}

.cfc-sermon-closing {
  background: #232616;
  padding: 50px 0;
}

.cfc-sermon-closing-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.cfc-sermon-closing-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 16px !important;
  border-radius: 6px;
  text-decoration: none;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: rgba(242, 235, 221, 0.6) !important;
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    color 0.2s ease;
}

.cfc-sermon-closing-btn svg,
.cfc-sermon-closing-btn .fas {
  width: 14px;
  height: 14px;
  display: block;
  font-size: 14px;
  line-height: 1;
}

.cfc-sermon-closing-btn--ghost {
  border-color: rgba(242, 235, 221, 0.22);
  color: #f2ebdd !important;
}

.cfc-sermon-closing-btn--ghost:hover {
  background: rgba(242, 235, 221, 0.08);
}

.cfc-sermon-closing-btn--outline {
  border-color: rgba(242, 235, 221, 0.15) !important;
  color: rgba(242, 235, 221, 0.6) !important;
}

.cfc-sermon-closing-btn--outline:hover {
  color: #f2ebdd !important;
  border-color: rgba(242, 235, 221, 0.3) !important;
  background: rgba(242, 235, 221, 0.06) !important;
}

.cfc-sermon-subscribe {
  margin-top: 14px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.76rem;
  color: rgba(242, 235, 221, 0.7);
  text-transform: uppercase;
  letter-spacing: 1.2px;
}

.cfc-sermon-subscribe a {
  color: rgba(242, 235, 221, 0.65);
  text-decoration: none;
}

.cfc-sermon-subscribe a:hover {
  color: #f2ebdd;
}

.cfc-sermon-mini-player {
  position: fixed;
  left: 50%;
  top: 80px;
  width: min(480px, calc(100% - 32px));
  z-index: 2400;
  background: #232616;
  border-radius: 12px;
  border: 1px solid rgba(242, 235, 221, 0.12);
  padding: 10px 14px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
  display: flex;
  align-items: center;
  gap: 12px;
  transform: translate(-50%, -140%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: auto;
}

.cfc-sermon-mini-player.visible {
  transform: translate(-50%, 0);
}

.cfc-sermon-mini-play {
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  background: #d4956a !important;
  color: #fff !important;
  border: 0 !important;
  flex-shrink: 0;
}

.cfc-sermon-mini-meta {
  flex: 1;
  min-width: 0;
}

.cfc-sermon-mini-title {
  margin: 0;
  color: #f2ebdd;
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.78rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cfc-sermon-mini-progress-track {
  margin-top: 5px;
  width: 100%;
  height: 3px;
  border-radius: 3px;
  background: rgba(242, 235, 221, 0.2);
  overflow: hidden;
  cursor: pointer;
}

.cfc-sermon-mini-fill {
  display: block;
  width: 0;
  height: 100%;
  background: #8b8b38;
  transition: width 0.1s linear;
}

.cfc-sermon-mini-time {
  color: rgba(242, 235, 221, 0.75);
  font-family: "Alegreya Sans", "Montserrat", sans-serif;
  font-size: 0.72rem;
}

@media (max-width: 1024px) {
  .cfc-sermons-shell,
  .cfc-sermon-shell,
  .cfc-sermon-shell--narrow {
    width: min(100%, calc(100% - 48px));
  }

  .cfc-sermon-row {
    grid-template-columns: 34px 1fr;
  }

  .cfc-sermon-row-side {
    grid-column: 2;
    justify-self: start;
    gap: 10px;
    margin-top: 1px;
  }

  .cfc-sermon-hero {
    min-height: 42vh;
    padding: 50px 26px 40px;
  }

  .cfc-sermon-mode-btn {
    padding-inline: 14px;
  }
}

@media (max-width: 768px) {
  .cfc-sermons-shell,
  .cfc-sermon-shell,
  .cfc-sermon-shell--narrow {
    width: min(100%, calc(100% - 40px));
  }

  .cfc-sermons-hero {
    min-height: 36vh;
    padding: clamp(80px, 12vw, 100px) 0 32px;
  }

  .cfc-sermons-hero h1 {
    font-size: 2.5rem;
  }

  .cfc-sermon-search {
    padding-left: 14px;
  }

  .cfc-sermon-search button {
    width: 38px;
    height: 38px;
  }

  .cfc-sermons-filters {
    gap: 10px;
  }

  .cfc-sermons-filters-left {
    flex-wrap: wrap;
    overflow: visible;
    width: 100%;
    padding-bottom: 0;
  }

  .cfc-sermons-filters-right {
    width: 100%;
    justify-content: space-between;
  }

  .cfc-sermon-filter {
    white-space: nowrap;
  }

  .cfc-sermon-dropdown-trigger {
    white-space: nowrap;
  }

  .cfc-sermon-row {
    grid-template-columns: 30px 1fr;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 4px;
  }

  .cfc-sermon-row-speaker {
    width: 30px;
    height: 30px;
  }

  .cfc-sermon-row-main h3 {
    font-size: 0.88rem;
  }

  .cfc-sermon-row-main p {
    font-size: 0.75rem;
  }

  .cfc-sermon-row-side {
    grid-column: 2;
    justify-self: start;
    margin-top: 1px;
  }

  .cfc-sermon-hero {
    min-height: 35vh;
    padding: 40px 20px 34px;
  }

  .cfc-sermon-hero h1 {
    font-size: 1.8rem;
  }

  .cfc-sermon-hero-meta {
    gap: 10px;
    font-size: 0.82rem;
  }

  .cfc-sermon-mode-toggle {
    width: 100%;
    justify-content: stretch;
    margin-bottom: 18px;
  }

  .cfc-sermon-mode-btn {
    flex: 1;
    padding: 9px 10px;
  }

  .cfc-sermon-audio-player {
    padding: 16px;
  }

  .cfc-sermon-audio-controls {
    flex-wrap: wrap;
    gap: 10px 12px;
  }

  .cfc-sermon-audio-play {
    order: 1;
  }

  .cfc-sermon-audio-secondary {
    order: 2;
    margin-left: auto;
  }

  .cfc-sermon-progress-wrap {
    order: 3;
    width: 100%;
    flex: 0 0 100%;
  }

  .cfc-sermon-audio-track {
    height: 36px;
  }

  .cfc-sermon-details-bar {
    flex-direction: column;
    align-items: flex-start;
  }

  .cfc-sermon-details-right {
    margin-left: 0;
    width: 100%;
    flex-wrap: wrap;
  }

  .cfc-sermon-series-card {
    min-width: 250px;
  }

  .cfc-sermon-closing-inner {
    flex-direction: column;
    gap: 12px;
  }

  .cfc-sermon-mini-player {
    left: 50%;
    width: min(480px, calc(100% - 20px));
    padding: 8px 10px;
    gap: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-sermon-row,
  .cfc-sermon-search,
  .cfc-sermon-mini-player {
    transition: none !important;
  }
}

/* -- Front Page Redesign (Phase 4) -- */
.cfc-front-page {
  background: #fff;
  color: #232616;
  width: 100%;
  height: auto;
  overflow: visible;
}

body.home {
  --cfc-home-rail-max: 1180px;
  --cfc-home-rail-gutter: 26px;
}

.cfc-front-shell {
  width: min(
    var(--cfc-home-rail-max),
    calc(100% - (var(--cfc-home-rail-gutter) * 2))
  );
  margin: 0 auto;
}

.cfc-front-narrow {
  max-width: 820px;
}

.cfc-front-page [data-front-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.65s ease,
    transform 0.65s ease;
}

.cfc-front-page [data-front-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.cfc-front-kicker {
  margin: 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cfc-front-rule {
  display: block;
  width: 42px;
  height: 1px;
  margin: 20px auto 0;
  background: #8b8b38;
}

.cfc-front-section-title {
  margin: 14px 0 0;
  color: #232616 !important;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1.9rem, 3.8vw, 2.25rem) !important;
  font-weight: 800 !important;
  line-height: 1.16;
  text-wrap: balance;
}

.cfc-front-section-title--light {
  color: #f2ebdd !important;
}

.cfc-front-section-title--left {
  text-align: left;
}

.cfc-front-heading-wrap {
  text-align: center;
  margin-bottom: clamp(24px, 4vw, 38px);
}

.cfc-front-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 2px;
  border: 1px solid transparent;
  padding: 12px 28px;
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  line-height: 1.1;
  text-decoration: none !important;
  transition:
    background-color 0.22s ease,
    border-color 0.22s ease,
    color 0.22s ease,
    transform 0.16s ease;
}

.cfc-front-btn:hover,
.cfc-front-btn:focus-visible {
  text-decoration: none !important;
  transform: translateY(-1px);
}

.cfc-front-btn--primary {
  background: #d4956a;
  border-color: #d4956a;
  color: #fff !important;
}

.cfc-front-btn--primary:hover,
.cfc-front-btn--primary:focus-visible {
  background: #c4854e;
  border-color: #c4854e;
  color: #fff !important;
}

.cfc-front-btn--ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff !important;
}

.cfc-front-btn--ghost:hover,
.cfc-front-btn--ghost:focus-visible {
  border-color: rgba(255, 255, 255, 0.82);
  color: #fff !important;
}

.cfc-front-btn--outline {
  background: transparent;
  border-color: rgba(139, 139, 56, 0.48);
  color: #8b8b38 !important;
}

.cfc-front-btn--outline:hover,
.cfc-front-btn--outline:focus-visible {
  background: rgba(139, 139, 56, 0.06);
  border-color: #8b8b38;
  color: #8b8b38 !important;
}

.cfc-front-quiet-link {
  color: #8b8b38 !important;
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.45px;
  text-decoration: none !important;
}

.cfc-front-quiet-link:hover,
.cfc-front-quiet-link:focus-visible {
  color: #6f6f2d !important;
  text-decoration: none !important;
}

.cfc-front-quiet-link--apricot {
  color: #d4956a !important;
}

.cfc-front-quiet-link--apricot:hover,
.cfc-front-quiet-link--apricot:focus-visible {
  color: #c4854e !important;
}

.cfc-front-hero {
  position: relative;
  min-height: 90vh;
  min-height: 90svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  background-color: #232616;
  background-image: var(--cfc-front-hero-image);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: clamp(130px, 18vh, 184px) 0 clamp(82px, 12vh, 124px);
}

.cfc-front-hero.has-slideshow {
  background-image: none;
}

.cfc-front-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #232616;
}

.cfc-front-hero-slide {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  opacity: 0;
  transform: scale(1.02);
  transition:
    opacity 1.4s ease,
    transform 6.5s ease;
  will-change: opacity, transform;
  pointer-events: none;
}

.cfc-front-hero-slide.is-active {
  z-index: 1;
  opacity: 1;
  transform: scale(1);
}

.cfc-front-hero-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.cfc-front-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(
      circle at top right,
      rgba(35, 38, 22, 0.04) 0%,
      rgba(35, 38, 22, 0.2) 45%,
      rgba(35, 38, 22, 0.38) 100%
    ),
    linear-gradient(
      140deg,
      rgba(35, 38, 22, 0.08) 8%,
      rgba(35, 38, 22, 0.36) 52%,
      rgba(35, 38, 22, 0.78) 92%
    );
  pointer-events: none;
}

.cfc-front-hero-inner {
  position: relative;
  z-index: 2;
}

.cfc-front-hero-content {
  max-width: min(760px, 100%);
}

.cfc-front-hero-title {
  margin: 14px 0 0;
  color: #fff !important;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(2.8rem, 5.5vw, 4.5rem) !important;
  font-weight: 800 !important;
  line-height: 1.02;
  letter-spacing: -0.01em;
  text-wrap: balance;
  text-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
}

.cfc-front-hero-subtitle {
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.75);
  font-family: "Alegreya", Georgia, serif !important;
  font-size: 1.03rem;
  line-height: 1.6;
}

.cfc-front-hero-actions {
  margin-top: 32px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.cfc-front-scroll-indicator {
  position: absolute;
  left: 50%;
  bottom: 22px;
  z-index: 3;
  width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.36);
  cursor: pointer;
  animation: cfcFrontChevronBounce 1.9s ease-in-out infinite;
  transition: opacity 0.2s ease;
}

.cfc-front-scroll-indicator.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.cfc-front-scroll-indicator:hover,
.cfc-front-scroll-indicator:focus-visible {
  color: rgba(255, 255, 255, 0.62);
}

.cfc-front-scroll-indicator .fas {
  width: 18px;
  height: 18px;
  display: block;
  font-size: 0.95rem;
  line-height: 1;
}

@keyframes cfcFrontChevronBounce {
  0%,
  20%,
  50%,
  80%,
  100% {
    transform: translateX(-50%) translateY(0);
  }

  40% {
    transform: translateX(-50%) translateY(4px);
  }

  60% {
    transform: translateX(-50%) translateY(2px);
  }
}

.cfc-front-identity {
  background: #fff;
  position: relative;
  overflow: hidden;
}

.cfc-front-identity-media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 38%;
  z-index: 2;
  overflow: hidden;
  background: #232616;
}

.cfc-front-identity-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.82) 0%,
    rgba(35, 38, 22, 0.52) 34%,
    rgba(35, 38, 22, 0.14) 66%,
    rgba(35, 38, 22, 0) 100%
  );
}

.cfc-front-identity-play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 5;
  width: 72px;
  height: 72px;
  border: 1px solid rgba(242, 235, 221, 0.78) !important;
  border-radius: 999px;
  background: rgba(35, 38, 22, 0.58) !important;
  color: #f2ebdd !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition:
    opacity 0.22s ease,
    transform 0.22s ease,
    background-color 0.22s ease,
    border-color 0.22s ease;
}

.cfc-front-identity-play:hover,
.cfc-front-identity-play:focus-visible {
  background: rgba(35, 38, 22, 0.72) !important;
  border-color: rgba(242, 235, 221, 0.95) !important;
}

.cfc-front-identity-play-icon {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  line-height: 1;
  flex-shrink: 0;
}

.cfc-front-identity-media.is-playing .cfc-front-identity-play {
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.9);
}

.cfc-front-identity-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
}

.cfc-front-identity-photo--fallback {
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.25s ease,
    visibility 0.25s ease;
}

.cfc-front-identity-video {
  object-position: 60% center;
}

.cfc-front-identity-media.is-fallback-media .cfc-front-identity-video {
  opacity: 0;
  visibility: hidden;
}

.cfc-front-identity-media.is-fallback-media
  .cfc-front-identity-photo--fallback {
  opacity: 1;
  visibility: visible;
}

.cfc-front-identity-media.is-fallback-media [data-identity-video-ui] {
  display: none !important;
}

.cfc-front-identity .cfc-front-shell {
  position: relative;
  z-index: 1;
}

.cfc-front-identity-sermon {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  padding: clamp(16px, 2.1vw, 24px);
  display: grid;
  gap: 8px;
}

.cfc-front-identity-sermon-series {
  margin: 0;
  color: rgba(242, 235, 221, 0.78);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}

.cfc-front-identity-sermon h3 {
  margin: 0;
  color: #fff !important;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1rem, 1.55vw, 1.28rem) !important;
  font-weight: 800 !important;
  line-height: 1.25;
}

.cfc-front-identity-sermon h3,
.cfc-front-identity-sermon h3 * {
  color: #fff !important;
}

.cfc-front-identity-sermon-meta {
  margin: 0;
  color: rgba(242, 235, 221, 0.7);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.55;
}

.cfc-front-identity-sermon-meta span {
  margin: 0 5px;
  color: rgba(242, 235, 221, 0.48);
}

.cfc-front-identity-sermon-actions {
  margin-top: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.cfc-front-identity-sermon-controls {
  position: absolute;
  top: clamp(12px, 1.5vw, 18px);
  left: clamp(12px, 1.5vw, 18px);
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(35, 38, 22, 0.56);
  border: 0;
}

.cfc-front-identity-unmute {
  position: relative;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(242, 235, 221, 0.54);
  border-radius: 999px;
  background: rgba(35, 38, 22, 0.52);
  color: rgba(242, 235, 221, 0.95);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease;
}

.cfc-front-identity-unmute:hover,
.cfc-front-identity-unmute:focus-visible {
  background: rgba(35, 38, 22, 0.7);
  border-color: rgba(242, 235, 221, 0.78);
}

.cfc-front-identity-unmute-icon {
  position: absolute;
  inset: 0;
  margin: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  font-size: 0.82rem;
  line-height: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.cfc-front-identity-unmute[data-state="muted"]
  .cfc-front-identity-unmute-icon--muted,
.cfc-front-identity-unmute[data-state="unmuted"]
  .cfc-front-identity-unmute-icon--unmuted {
  opacity: 1;
  visibility: visible;
}

.cfc-front-identity-volume {
  display: inline-flex;
  align-items: center;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition:
    max-width 0.2s ease,
    opacity 0.2s ease;
}

.cfc-front-identity-unmute[data-state="unmuted"] + .cfc-front-identity-volume {
  max-width: 124px;
  opacity: 1;
  pointer-events: auto;
}

.cfc-front-identity-volume input[type="range"] {
  width: clamp(72px, 7.2vw, 112px);
  height: 4px;
  min-height: 4px;
  border-radius: 2px;
  -webkit-appearance: none;
  appearance: none;
  background: rgba(255, 255, 255, 0.3) !important;
  background-image: none;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  margin: 0 !important;
  vertical-align: middle;
  display: block;
  overflow: hidden;
  cursor: pointer;
}

.cfc-front-identity-volume input[type="range"]::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  height: 4px;
  background: transparent !important;
  border-radius: 2px;
  border: none;
  box-shadow: none;
}

.cfc-front-identity-volume input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 12px;
  background: #fff;
  border-radius: 50%;
  border: none;
  margin-top: -4px;
  cursor: pointer;
}

.cfc-front-identity-volume input[type="range"]::-moz-range-track {
  height: 4px;
  background: transparent !important;
  border-radius: 2px;
  border: none;
  box-shadow: none;
}

.cfc-front-identity-volume input[type="range"]::-moz-range-progress {
  height: 4px;
  background: transparent !important;
  border-radius: 2px;
  border: none;
  box-shadow: none;
}

.cfc-front-identity-volume input[type="range"]::-moz-range-thumb {
  width: 12px;
  height: 12px;
  background: #fff;
  border-radius: 50%;
  border: none;
  cursor: pointer;
}

.cfc-front-identity-volume input[type="range"]::-moz-focus-outer {
  border: 0;
}

.cfc-front-identity-keep-listening {
  color: #d4956a !important;
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.75px;
  text-transform: uppercase;
  text-decoration: none !important;
}

.cfc-front-identity-keep-listening:hover,
.cfc-front-identity-keep-listening:focus-visible {
  color: #c4854e !important;
  text-decoration: none !important;
}

.cfc-front-identity-text {
  position: relative;
  width: 55%;
  padding: 4rem 0;
  padding-right: clamp(24px, 3vw, 42px);
}

.cfc-front-identity-manifesto {
  max-width: 100%;
  margin-left: 0;
  text-align: left;
}

.cfc-front-identity-kicker {
  font-size: 0.65rem;
  letter-spacing: 2px;
  margin: 0;
}

.cfc-front-identity-lead,
.cfc-front-identity-purpose {
  color: rgba(35, 38, 22, 0.75);
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1.02rem, 1.9vw, 1.08rem);
  font-style: italic;
  line-height: 1.8;
  max-width: 620px;
}

.cfc-front-identity-lead {
  margin: 12px 0 0;
}

.cfc-front-identity-core {
  position: relative;
  margin: 40px 0 0;
  padding-left: 34px;
  max-width: 680px;
}

.cfc-front-identity-core::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 0;
  width: 3px;
  height: 60px;
  background: #8b8b38;
}

.cfc-front-identity-core-text {
  margin: 0;
  color: #232616;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1.68rem, 4.1vw, 2rem) !important;
  font-weight: 800 !important;
  line-height: 1.22;
}

.cfc-front-identity-purpose {
  margin: 40px 0 0;
}

.cfc-front-identity-anchors {
  margin: 32px 0 0;
  color: #8b8b38;
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.cfc-front-identity-link-wrap {
  margin: 16px 0 0;
}

.cfc-front-gospel {
  background: #232616;
  position: relative;
  padding: clamp(78px, 9.5vw, 102px) 0;
  text-align: center;
}

.cfc-front-gospel-sticky {
  position: relative;
}

.cfc-front-gospel-header {
  width: min(
    var(--cfc-home-rail-max),
    calc(100% - (var(--cfc-home-rail-gutter) * 2))
  );
  margin-left: auto;
  margin-right: auto;
  margin-bottom: clamp(36px, 5vw, 48px);
  transition:
    opacity 0.45s ease,
    transform 0.45s ease;
}

.cfc-front-gospel-shell {
  position: relative;
}

.cfc-front-gospel-body {
  max-width: 760px;
  margin: 0 auto;
}

.cfc-front-gospel-body p {
  margin: 0;
  color: rgba(242, 235, 221, 0.9);
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1.1rem, 2.1vw, 1.28rem);
  font-weight: 500;
  line-height: 1.8;
}

.cfc-front-gospel-statements {
  display: grid;
  gap: clamp(44px, 5.4vw, 56px);
}

.cfc-front-gospel-statement {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 18px;
  margin: 0;
  opacity: 1;
  transform: none;
  transition:
    opacity 0.45s ease,
    transform 0.45s ease;
}

.cfc-front-gospel-statement p {
  margin: 0;
  color: #f2ebdd;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.45;
}

.cfc-front-gospel-statement-rule {
  width: 40px;
  height: 1px;
  background: rgba(139, 139, 56, 0.64);
}

.cfc-front-gospel-links {
  margin-top: 30px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 18px 32px;
}

.cfc-front-gospel-footer {
  margin-top: 30px;
}

.cfc-front-gospel-trail {
  display: none;
}

.cfc-front-gospel-progress {
  display: none;
}

@media (min-width: 768px) {
  html.cfc-js .cfc-front-gospel[data-gospel-cinematic].is-cinematic {
    height: 380vh;
    padding: 0;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 0 clamp(20px, 4vw, 44px);
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-header {
    position: absolute;
    top: clamp(82px, 12vh, 126px);
    left: 50%;
    transform: translateX(-50%);
    width: min(800px, calc(100% - 48px));
    margin: 0;
    z-index: 4;
    pointer-events: none;
    transition: none;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-shell {
    max-width: 100%;
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-statements {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 100%;
    display: block;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-statement {
    position: absolute;
    left: 50%;
    top: 58%;
    width: min(820px, calc(100% - 48px));
    max-width: 820px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    text-align: center;
    opacity: 0;
    transform: translate(-50%, -50%) translate3d(0, 40px, 0) scale(1);
    pointer-events: none;
    will-change: transform, opacity;
    transition: none;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-statement.in-trail {
    text-align: center;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-statement--climax
    p {
    color: #8b8b38;
    font-size: 1.6rem;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-links {
    position: absolute;
    left: 50%;
    bottom: clamp(76px, 11vh, 128px);
    width: min(900px, calc(100% - 120px));
    margin-top: 0;
    opacity: 0;
    transform: translateX(-50%) translateY(14px);
    pointer-events: none;
    transition: none;
    z-index: 5;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-progress {
    position: absolute;
    top: 50%;
    right: clamp(22px, 3vw, 48px);
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 22px;
    height: min(40vh, 420px);
    z-index: 4;
    pointer-events: none;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-progress::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 3px;
    transform: translateX(-50%);
    background: rgba(242, 235, 221, 0.24);
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-progress-fill {
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 3px;
    height: 0%;
    transform: translateX(-50%);
    background: #8b8b38;
    box-shadow: 0 0 10px rgba(139, 139, 56, 0.45);
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-trail {
    position: absolute;
    left: 50%;
    top: clamp(190px, 25vh, 260px);
    width: min(900px, calc(100% - 120px));
    transform: translateX(-50%);
    z-index: 3;
    display: grid;
    gap: 8px;
    pointer-events: none;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-trail-line {
    margin: 0;
    color: rgba(242, 235, 221, 0.66);
    font-family: "Alegreya", Georgia, serif !important;
    font-size: 1.08rem;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: 0.08px;
    text-align: center;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    opacity: 0;
    transform: translateY(6px);
    transition: none;
  }

  html.cfc-js
    .cfc-front-gospel[data-gospel-cinematic].is-cinematic
    .cfc-front-gospel-trail-line.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
}

.cfc-front-gospel-dot {
  --fill: 0;
  width: 8px;
  height: 8px;
  position: relative;
  overflow: hidden;
  z-index: 2;
  border-radius: 50%;
  background: rgba(242, 235, 221, 0.08);
  border: 1px solid rgba(242, 235, 221, 0.3);
  transition: none;
}

.cfc-front-gospel-dot::after {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: 50%;
  background: #8b8b38;
  transform: scale(var(--fill));
  transform-origin: center;
  transition: none;
}

.cfc-front-gospel-dot.is-active {
  border-color: #8b8b38;
  transform: scale(1.08);
}

.cfc-front-explore {
  background: #f5f0e8;
  padding: clamp(76px, 9vw, 98px) 0;
}

.cfc-front-explore-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-template-areas:
    "visit visit visit sermons sermons"
    "serve serve involved involved involved";
  gap: 10px;
}

.cfc-front-explore-card {
  position: relative;
  display: block;
  min-height: 280px;
  border-radius: 2px;
  overflow: hidden;
  text-decoration: none !important;
  color: #fff !important;
  isolation: isolate;
}

.cfc-front-explore-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: var(--cfc-front-explore-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  transform: scale(1);
  transition: transform 0.4s ease;
}

.cfc-front-explore-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.4) 34%,
    rgba(0, 0, 0, 0.11) 62%,
    rgba(0, 0, 0, 0.03) 100%
  );
  transition: background 0.35s ease;
}

.cfc-front-explore-content {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 24px;
}

.cfc-front-explore-content h3 {
  margin: 0;
  color: #fff !important;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1.28rem, 1.9vw, 1.5rem) !important;
  font-weight: 800 !important;
  line-height: 1.18;
}

.cfc-front-explore-content p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.74);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.81rem;
  font-weight: 500;
  line-height: 1.45;
}

.cfc-front-explore-card--involved {
  grid-area: involved;
  --cfc-front-explore-image: url("assets/images/growth-groups/img_1457.jpg");
}

.cfc-front-explore-card--sermons {
  grid-area: sermons;
  --cfc-front-explore-image: url("assets/images/explore/preaching.jpg");
}

.cfc-front-explore-card--serve {
  grid-area: serve;
  --cfc-front-explore-image: url("assets/images/explore/serving.jpg");
}

.cfc-front-explore-card--visit {
  grid-area: visit;
  --cfc-front-explore-image: url("assets/images/contact/oliviatinaanna.jpg");
}

.cfc-front-explore-card:hover::before,
.cfc-front-explore-card:focus-visible::before {
  transform: scale(1.03);
}

.cfc-front-explore-card:hover::after,
.cfc-front-explore-card:focus-visible::after {
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.68) 0%,
    rgba(0, 0, 0, 0.34) 34%,
    rgba(0, 0, 0, 0.08) 62%,
    rgba(0, 0, 0, 0.02) 100%
  );
}

.cfc-front-latest {
  background: #fff;
  padding: clamp(76px, 9vw, 98px) 0;
}

.cfc-front-latest-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: clamp(24px, 4vw, 44px);
  align-items: stretch;
}

.cfc-front-latest-media {
  position: relative;
  min-height: 360px;
  border-radius: 2px;
  overflow: hidden;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.cfc-front-latest-media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(35, 38, 22, 0.24) 0%,
    rgba(35, 38, 22, 0.72) 100%
  );
}

.cfc-front-latest-media.is-fallback {
  background: #232616;
}

.cfc-front-latest-media.is-fallback::before {
  background: linear-gradient(
    160deg,
    rgba(35, 38, 22, 0.84) 0%,
    rgba(35, 38, 22, 0.94) 100%
  );
}

.cfc-front-latest-media-overlay {
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  padding: 24px;
}

.cfc-front-latest-media-label {
  margin: 0;
  color: rgba(242, 235, 221, 0.72);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.68rem;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  font-weight: 700;
}

.cfc-front-latest-media-overlay h3 {
  margin: 9px 0 0;
  color: #f2ebdd !important;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: clamp(1.5rem, 2vw, 2rem) !important;
  font-weight: 800 !important;
  line-height: 1.14;
}

.cfc-front-latest-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cfc-front-latest-meta {
  margin: 14px 0 0;
  color: rgba(35, 38, 22, 0.52);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.3px;
}

.cfc-front-latest-summary {
  margin: 16px 0 0;
  color: rgba(35, 38, 22, 0.8);
  font-family: "Alegreya", Georgia, serif !important;
  font-size: 0.98rem;
  line-height: 1.75;
}

.cfc-front-latest-actions {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.cfc-front-week {
  background: #f5f0e8;
  padding: clamp(76px, 9vw, 98px) 0;
}

.cfc-front-week-shell .cfc-front-rule {
  margin-left: auto;
  margin-right: auto;
}

.cfc-front-week-shell .cfc-front-kicker,
.cfc-front-week-shell .cfc-front-section-title--left {
  text-align: center;
}

.cfc-front-week-list {
  margin-top: 26px;
  max-width: 1020px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  gap: 8px;
}

.cfc-front-week-row {
  display: grid;
  grid-template-columns: 112px 1fr auto;
  gap: 18px;
  align-items: center;
  background: #fff;
  border: 1px solid rgba(35, 38, 22, 0.06);
  border-left: 3px solid transparent;
  border-radius: 2px;
  padding: 15px 18px;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    transform 0.2s ease;
}

.cfc-front-week-row:hover {
  border-left-color: #8b8b38;
  background: rgba(255, 255, 255, 0.92);
  transform: translateX(1px);
}

.cfc-front-week-date {
  display: grid;
  gap: 4px;
  justify-items: start;
}

.cfc-front-week-day {
  color: #8b8b38;
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}

.cfc-front-week-monthday {
  color: #232616;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: 0.9rem;
  font-weight: 700;
}

.cfc-front-week-main h3 {
  margin: 0;
  color: #232616 !important;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: 1.03rem !important;
  font-weight: 800 !important;
  line-height: 1.25;
}

.cfc-front-week-main p {
  margin: 4px 0 0;
  color: rgba(35, 38, 22, 0.52);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.81rem;
  font-weight: 600;
}

.cfc-front-week-time {
  color: rgba(35, 38, 22, 0.64);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.4px;
  white-space: nowrap;
}

.cfc-front-week-link-wrap {
  margin: 22px 0 0;
  max-width: 1020px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.cfc-front-visit {
  background: #fff;
  padding: clamp(76px, 9vw, 98px) 0;
}

.cfc-front-visit-grid {
  display: grid;
  grid-template-columns: minmax(0, 9fr) minmax(0, 11fr);
  gap: clamp(24px, 4vw, 54px);
  align-items: center;
}

.cfc-front-visit-content .cfc-front-rule {
  margin-left: 0;
}

.cfc-front-visit-address {
  margin: 20px 0 0;
  color: rgba(35, 38, 22, 0.82);
  font-family: "Alegreya", Georgia, serif !important;
  font-size: 1rem;
  line-height: 1.75;
}

.cfc-front-visit-meta {
  margin: 16px 0 0;
  color: rgba(35, 38, 22, 0.58);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.84rem;
  font-weight: 600;
  letter-spacing: 0.4px;
  line-height: 1.9;
}

.cfc-front-visit-actions {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.cfc-front-visit-map-wrap {
  border-radius: 2px;
  overflow: hidden;
  min-height: 360px;
}

.cfc-front-visit-map-wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  border: 0;
}

@media (max-width: 1120px) {
  .cfc-front-hero-title {
    font-size: clamp(2.45rem, 6.4vw, 4rem) !important;
  }

  .cfc-front-latest-grid,
  .cfc-front-visit-grid {
    gap: 26px;
  }
}

@media (max-width: 921px) {
  body.home {
    --cfc-home-rail-gutter: 17px;
  }

  .cfc-front-hero {
    min-height: 84vh;
    min-height: 84svh;
    padding: 126px 0 72px;
  }

  .cfc-front-explore-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "visit visit"
      "sermons serve"
      "involved involved";
  }

  .cfc-front-explore-card {
    min-height: 240px;
  }

  .cfc-front-identity-manifesto {
    max-width: 100%;
    margin-left: 0;
  }

  .cfc-front-identity-media {
    display: none;
  }

  .cfc-front-identity-text {
    width: 100%;
    padding-right: 0;
  }

  .cfc-front-identity-core {
    margin: 36px 0 0;
    padding-left: 24px;
  }

  .cfc-front-identity-core::before {
    height: 56px;
  }

  .cfc-front-identity-purpose {
    margin-top: 36px;
  }

  .cfc-front-gospel-shell {
    max-width: 100%;
  }

  .cfc-front-gospel-body p {
    font-size: clamp(1rem, 4.1vw, 1.14rem);
    line-height: 1.72;
  }

  .cfc-front-latest-grid,
  .cfc-front-visit-grid {
    grid-template-columns: 1fr;
  }

  .cfc-front-latest-media,
  .cfc-front-visit-map-wrap,
  .cfc-front-visit-map-wrap iframe {
    min-height: 300px;
  }

  .cfc-front-week-row {
    grid-template-columns: 92px 1fr;
    gap: 12px 14px;
  }

  .cfc-front-week-time {
    grid-column: 2;
  }
}

@media (max-width: 640px) {
  .cfc-front-hero-actions,
  .cfc-front-latest-actions,
  .cfc-front-visit-actions {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
  }

  .cfc-front-btn {
    width: 100%;
  }

  .cfc-front-gospel-links {
    justify-content: center;
    gap: 14px 18px;
  }

  .cfc-front-explore-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "visit"
      "sermons"
      "serve"
      "involved";
  }

  .cfc-front-explore-card {
    min-height: 220px;
  }

  .cfc-front-week-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .cfc-front-week-date {
    display: flex;
    align-items: baseline;
    gap: 8px;
  }

  .cfc-front-week-time {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cfc-front-page [data-front-reveal],
  .cfc-front-explore-card::before,
  .cfc-front-scroll-indicator,
  .cfc-front-hero-slide {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .cfc-front-page [data-front-reveal] {
    opacity: 1 !important;
  }
}

/* -- Front Page UX Fixes (Hero + Sermon Cards) -- */
body.home .site-content > .ast-container {
  display: block !important;
  max-width: 100% !important;
  padding: 0 !important;
}

body.home,
body.home .site,
body.home .site-content,
body.home .site-main,
body.home .ast-container {
  scroll-snap-type: none !important;
}

body.home .cfc-front-page,
body.home .cfc-front-page section {
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}

.cfc-front-kicker {
  font-size: 0.65rem;
}

.cfc-front-hero {
  position: relative;
  min-height: 90vh;
  min-height: 90svh;
  height: auto;
  overflow: hidden;
  padding: clamp(120px, 16vh, 170px) 0 0;
}

.cfc-front-hero-inner {
  padding-bottom: clamp(3rem, 6vh, 5rem);
}

.cfc-front-hero-title {
  font-size: clamp(2.2rem, 4.5vw, 3.5rem) !important;
}

.cfc-front-sermons {
  background: #fff;
  padding: clamp(76px, 9vw, 98px) 0;
}

.cfc-front-sermons-shell .cfc-front-rule {
  margin-left: 0;
}

.cfc-front-sermons-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.cfc-front-sermon-card {
  background: #fff;
  border: 1px solid rgba(35, 38, 22, 0.08);
  border-radius: 2px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition:
    border-color 0.22s ease,
    transform 0.2s ease;
}

.cfc-front-sermon-card:hover,
.cfc-front-sermon-card:focus-within {
  border-color: rgba(35, 38, 22, 0.2);
  transform: translateY(-2px);
}

.cfc-front-sermon-media {
  position: relative;
  min-height: 210px;
  background: #232616;
  overflow: hidden;
}

.cfc-front-sermon-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(35, 38, 22, 0.72) 0%,
    rgba(35, 38, 22, 0.36) 42%,
    rgba(35, 38, 22, 0.05) 78%,
    rgba(35, 38, 22, 0) 100%
  );
}

.cfc-front-sermon-media.is-fallback {
  background: linear-gradient(
    145deg,
    rgba(35, 38, 22, 0.96) 0%,
    rgba(35, 38, 22, 0.86) 100%
  );
}

.cfc-front-sermon-video {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 210px;
  object-fit: cover;
  object-position: center;
  background: #232616;
}

.cfc-front-sermon-series {
  position: absolute;
  left: 14px;
  bottom: 13px;
  z-index: 2;
  margin: 0;
  color: rgba(242, 235, 221, 0.92);
  font-family: "Alegreya", Georgia, serif !important;
  font-size: 1.08rem;
  font-weight: 800;
  line-height: 1.2;
  text-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
}

.cfc-front-sermon-unmute {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 3;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(242, 235, 221, 0.5);
  border-radius: 999px;
  background: rgba(35, 38, 22, 0.5);
  color: rgba(242, 235, 221, 0.96);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease;
}

.cfc-front-sermon-unmute:hover,
.cfc-front-sermon-unmute:focus-visible {
  background: rgba(35, 38, 22, 0.72);
  border-color: rgba(242, 235, 221, 0.76);
}

.cfc-front-sermon-unmute-icon {
  position: absolute;
  inset: 0;
  margin: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  font-size: 0.82rem;
  line-height: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* Keep font icons optically centered inside the fixed icon slots that were originally designed for SVGs. */
.cfc-visit-guide-icon .fas,
.cfc-give-mail-icon .fas,
.cfc-give-fund-chevron,
.cfc-give-legacy-chevron,
.cfc-sermon-search-icon .fas,
.cfc-sermon-search-submit-icon,
.cfc-sermon-dropdown-chevron,
.cfc-sermon-sort-chevron,
.cfc-sermon-row-plays .fas,
.cfc-sermon-empty-icon .fas,
.cfc-sermon-load-more .fas,
.cfc-sermon-hero-meta-item .fas,
.cfc-sermon-hero-unmute .fas,
.cfc-sermon-mode-btn .fas,
.cfc-sermon-play-btn .fas,
.cfc-sermon-audio-download .fas,
.cfc-sermon-dl-btn .fas,
.cfc-sermon-detail-chip .fas,
.cfc-sermon-details-right .cfc-sermon-share-trigger .fas,
.cfc-sermon-closing-btn .fas,
.cfc-front-scroll-indicator .fas,
.cfc-front-identity-play-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-align: center;
  vertical-align: middle;
  transform-origin: center center;
}

.cfc-front-identity-unmute-icon,
.cfc-front-sermon-unmute-icon {
  text-align: center;
  vertical-align: middle;
  transform-origin: center center;
}

.cfc-visit-guide-icon .fas::before,
.cfc-give-mail-icon .fas::before,
.cfc-give-fund-chevron::before,
.cfc-give-legacy-chevron::before,
.cfc-sermon-search-icon .fas::before,
.cfc-sermon-search-submit-icon::before,
.cfc-sermon-dropdown-chevron::before,
.cfc-sermon-sort-chevron::before,
.cfc-sermon-row-plays .fas::before,
.cfc-sermon-empty-icon .fas::before,
.cfc-sermon-load-more .fas::before,
.cfc-sermon-hero-meta-item .fas::before,
.cfc-sermon-hero-unmute .fas::before,
.cfc-sermon-mode-btn .fas::before,
.cfc-sermon-play-btn .fas::before,
.cfc-sermon-audio-download .fas::before,
.cfc-sermon-dl-btn .fas::before,
.cfc-sermon-detail-chip .fas::before,
.cfc-sermon-details-right .cfc-sermon-share-trigger .fas::before,
.cfc-sermon-closing-btn .fas::before,
.cfc-front-scroll-indicator .fas::before,
.cfc-front-identity-play-icon::before,
.cfc-front-identity-unmute-icon::before,
.cfc-front-sermon-unmute-icon::before {
  display: block;
  line-height: 1;
}

.cfc-sermon-play-btn .cfc-icon-play .fas::before {
  transform: translateX(2px);
}

.cfc-sermon-row-plays .fa-play::before,
.cfc-front-identity-play-icon::before {
  transform: translateX(1px);
}

.cfc-front-sermon-unmute[data-state="muted"]
  .cfc-front-sermon-unmute-icon--muted,
.cfc-front-sermon-unmute[data-state="unmuted"]
  .cfc-front-sermon-unmute-icon--unmuted {
  opacity: 1;
  visibility: visible;
}

.cfc-front-sermon-body {
  padding: 16px 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.cfc-front-sermon-body h3 {
  margin: 0;
}

.cfc-front-sermon-body h3 a {
  color: #232616 !important;
  font-family: "Alegreya", Georgia, serif !important;
  font-size: 1.08rem !important;
  font-weight: 800 !important;
  line-height: 1.32;
  text-decoration: none !important;
}

.cfc-front-sermon-body h3 a:hover,
.cfc-front-sermon-body h3 a:focus-visible {
  color: #232616 !important;
  text-decoration: none !important;
}

.cfc-front-sermon-meta {
  margin: 0;
  color: rgba(35, 38, 22, 0.56);
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.79rem;
  font-weight: 600;
  line-height: 1.6;
}

.cfc-front-sermon-meta span {
  margin: 0 5px;
  color: rgba(35, 38, 22, 0.38);
}

.cfc-front-sermon-listen-wrap {
  margin: auto 0 0;
}

.cfc-front-sermon-listen {
  color: #d4956a !important;
  font-family: "Alegreya Sans", sans-serif !important;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.7px;
  text-transform: uppercase;
  text-decoration: none !important;
}

.cfc-front-sermon-listen:hover,
.cfc-front-sermon-listen:focus-visible {
  color: #c4854e !important;
  text-decoration: none !important;
}

.cfc-front-sermons-all-link {
  margin: 24px 0 0;
  text-align: center;
}

@media (max-width: 1120px) {
  .cfc-front-sermons-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 921px) {
  .cfc-front-hero {
    min-height: 90vh;
    min-height: 90svh;
    padding-top: clamp(106px, 14vh, 148px);
  }

  .cfc-front-hero-inner {
    padding-bottom: clamp(2.4rem, 5.5vh, 3.8rem);
  }
}

@media (max-width: 768px) {
  .cfc-front-sermons-grid {
    grid-template-columns: 1fr;
  }

  .cfc-front-sermon-media,
  .cfc-front-sermon-video {
    min-height: 200px;
  }
}

/* -- Front Page Scroll Stability (logged-in/admin helper overlays) -- */
body.home,
body.home #page,
body.home #content,
body.home .site-content,
body.home .site-content > .ast-container,
body.home .site-main,
body.home .cfc-front-page {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

body.home #content,
body.home .site-content,
body.home .site-content > .ast-container,
body.home .site-main,
body.home .cfc-front-page {
  overflow: visible !important;
}

body.home.dialog-body,
body.home.dialog-buttons-body,
body.home.dialog-container,
body.home.dialog-buttons-container {
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

body.home .cfc-front-hero {
  position: relative !important;
  min-height: 90vh !important;
  min-height: 90svh !important;
  height: auto !important;
  overflow: hidden !important;
}
