/*
 * enc-blocks site stylesheet. Loaded on block pages only (legacy pages keep their captured CSS).
 * Every size here was measured on eaglesnestmn.org (enc-faithful 0.5.1) at 1920, 1440, 1280, 1024, 768, 390 and 360px.
 *
 * Sections: 1 tokens · 2 base (incl. keyboard focus) · 3 header · 4 mobile menu · 5 buttons · 6 hero
 *           7 sections and bands · 8 label + content · 9 media · 10 footer
 *           11 inner pages (type scale, text block enc-sq, layout grid enc-fe, patterns) · 12 components (platform links)
 *           13 utilities
 * Page-specific rules go in assets/pages/<slug>.css. Anything two pages share belongs here.
 */

/* 1. Tokens ------------------------------------------------------------------------------------------- */
:root {
  --enc-navy: #1a2b38;
  --enc-button: #28415b;
  --enc-warm: #f8f6f2;
  --enc-ink: #202944;
  --enc-mist: #dce1e6;
  /* The original site's base type: 16px + 0.12vw, capped at 17.6px. Phones in portrait scale with the viewport height. */
  --enc-fs: min(calc(16px + 0.12vw), 17.6px);
  --enc-page-pad: 4vw;
  --enc-container: min(1020px, 92vw);
  /* Section bands */
  --enc-gutter: 4vw;
  --enc-section-space: 56px;
  --enc-section-fs: clamp(16.8px, calc(16.1px + 0.1vw), 17.6px);
  --enc-h2: clamp(30.2px, calc(18.64px + 1.817vw), 44.8px);
  --enc-h3: clamp(25.5px, calc(17.76px + 1.211vw), 35.2px);
}
@media screen and (max-width: 767px) and (orientation: portrait) {
  :root { --enc-fs: calc(16px + 0.0012 * min(100vh, 900px)); }
}
@media (max-width: 767px) {
  :root { --enc-gutter: 24px; --enc-section-space: 48px; }
}

/* 2. Base ------------------------------------------------------------------------------------------------ */
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #fff;
  color: var(--enc-navy);
  font-family: Inter, Arial, sans-serif;
  font-size: var(--enc-fs);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-wrap: break-word;
}
body.enc-menu-open { overflow: hidden; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block: 0; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { text-wrap: balance; letter-spacing: normal; }
.screen-reader-text, .enc-visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
  clip: auto; width: auto; height: auto; margin: 0; padding: 20.8px 33.6px; top: 24px; left: 24px; z-index: 100000;
  background: var(--enc-button); color: #fff; border-radius: 300px; font: 500 16px/normal Inter, Arial, sans-serif; text-decoration: none;
  outline: 3px solid var(--enc-button); outline-offset: 5px;
}
/*
 * Keyboard focus, as on the original site (a mouse click shows no ring):
 *  - page content: 2px navy ring 4px away, square on links (the original site's default);
 *  - Bible references (RefTagger): 3px ink ring 3px away;
 *  - header, mobile menu and burger: 3px button-blue ring 5px away, 2px corners (pill buttons keep their shape);
 *  - footer links: 2px white ring 4px away (the footer's link colour on the original site);
 *  - homepage sections: their own ring in the text colour, 3px away (section 7).
 * Components with their own ring (platform links, sermon series, contact form, newsletter, social icons) set it themselves.
 */
.enc-main :focus-visible { outline: 2px solid var(--enc-navy); outline-offset: 4px; }
:where(.enc-main) a:focus-visible { border-radius: 0; }
.enc-main a.rtBibleRef:focus-visible { outline: 3px solid var(--enc-ink); outline-offset: 3px; }
.enc-site-header :is(a, button):focus-visible { outline: 3px solid var(--enc-button) !important; outline-offset: 5px; }
:where(.enc-site-header) :is(a, button):focus-visible { border-radius: 2px; }
.enc-site-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 0; }

/* 3. Header -------------------------------------------------------------------------------------------- */
.enc-site-header {
  position: relative;
  z-index: 10;
  background: #fff;
  color: var(--enc-navy);
  font-size: var(--enc-fs);
  line-height: 1;
}
/* The original header casts a soft shadow onto the page (navy, 0 12px 12px, 15% opacity), hidden while the menu is open. */
.enc-site-header::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  box-shadow: var(--enc-navy) 0 12px 12px 0;
  opacity: 0.15;
  pointer-events: none;
}
.enc-menu-open .enc-site-header::after { visibility: hidden; }
.enc-header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  padding: 0.3vw var(--enc-page-pad);
  margin: 0;
}
.enc-header > * { margin: 0; }
.enc-logo { flex: 0 0 auto; margin: 0; line-height: 0; }
.enc-logo a { display: inline-block; }
.enc-logo img { display: block; width: auto; max-width: 100%; height: auto; max-height: 48px; }

/* Desktop navigation: the core Navigation block, laid out like the original header. */
.enc-nav.wp-block-navigation {
  flex: 1 1 auto;
  justify-content: flex-end;
  padding-left: 3vw;
  font-size: var(--enc-fs);
  line-height: 1.5;
  gap: 0 !important;
}
.enc-nav .wp-block-navigation__container { gap: 0 !important; flex-wrap: nowrap; align-items: center; }
.enc-nav .wp-block-navigation__container > .wp-block-navigation-item { margin: 0 0 0 1.6vw; }
.enc-nav .wp-block-navigation__container > .wp-block-navigation-item:first-child { margin-left: 0; }
.enc-nav .wp-block-navigation-item__content,
.enc-nav .wp-block-navigation-submenu__toggle {
  display: inline-flex;
  align-items: center;
  padding: 0.1em 0;
  margin: 0;
  border: 0;
  background: none;
  color: var(--enc-button);
  font: inherit;
  line-height: 1.5em;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}
.enc-nav .wp-block-navigation-item__content:hover,
.enc-nav .wp-block-navigation-submenu:hover > .wp-block-navigation-submenu__toggle,
.enc-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.enc-nav .wp-block-navigation-submenu { position: relative; }
.enc-nav .wp-block-navigation-submenu__toggle { padding-right: 0 !important; }
.enc-nav .wp-block-navigation__submenu-icon { display: none; }
.enc-nav .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
  position: absolute;
  top: 100%;
  left: auto !important;
  right: -1em !important;
  z-index: 10;
  display: none;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  box-sizing: content-box;
  padding: 0.5em 1em;
  margin: 0;
  border: 0 !important;
  background: #fff !important;
  color: var(--enc-navy);
  text-align: left;
  overflow: visible !important;
  flex-direction: column;
}
/* A folder opens on hover or when its button is pressed (click, Enter, Space); Tab passes a closed folder, as on the original. */
.enc-nav .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
.enc-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { display: block; }
.enc-nav .wp-block-navigation__submenu-container > .wp-block-navigation-item {
  display: block;
  min-width: 200px;
  margin: 0;
  line-height: 1.3em;
}
.enc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  display: inline-flex;
  padding: 0.1em 0 !important;
  line-height: 1.3em;
  text-align: left;
  width: auto !important;
}
.enc-header__cta { flex: 0 0 auto; margin: 0 0 0 3vw !important; gap: 0; }
.enc-header__button .wp-block-button__link {
  display: inline-block;
  box-sizing: border-box;
  padding: 1.3rem 2.1rem;
  border: 0;
  border-radius: 300px;
  background: var(--enc-button);
  color: #fff;
  font: 500 16px/normal Inter, Arial, sans-serif;
  letter-spacing: normal;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.1s linear;
}
.enc-header__button .wp-block-button__link:hover { opacity: 0.8; }

/* Burger (added by site.js) */
.enc-burger {
  display: none;
  position: relative;
  margin: 0 0 0 auto;
  padding: 1px 6px;
  border: 0;
  background: transparent;
  cursor: pointer;
  line-height: normal;
}
.enc-burger__box { position: relative; display: flex; align-items: center; justify-content: center; width: 35px; height: 35px; }
.enc-burger__line {
  position: absolute; top: 0; bottom: 0; left: 0; display: block; width: 100%; height: 1px; margin: auto;
  background: var(--enc-button);
  transition: transform 250ms cubic-bezier(.2,.6,.3,1), width 250ms cubic-bezier(.2,.6,.3,1);
}
.enc-burger__line:first-child { transform: translateY(-5.5px); }
.enc-burger__line:last-child { transform: translateY(5.5px); }
.enc-menu-open .enc-burger__line { background: var(--enc-navy); width: 28px; }
.enc-menu-open .enc-burger__line:first-child { transform: translateX(3.5px) rotate(-135deg); }
.enc-menu-open .enc-burger__line:last-child { transform: translateX(3.5px) rotate(135deg); }

/* Phones, and tablets with touch screens up to 1024px: the original site's mobile header breakpoint. */
@media only screen and (pointer: coarse) and (max-width: 1024px), screen and (max-width: 799px) {
  .enc-header { padding: 6vw; }
  .enc-header .enc-nav, .enc-header .enc-header__cta { display: none; }
  .enc-burger { display: block; }
}

/* 4. Mobile menu (built by site.js from the Navigation block) ------------------------------------------ */
.enc-menu {
  position: fixed;
  inset: 0;
  z-index: 1;
  display: none;
  flex-direction: column;
  box-sizing: border-box;
  padding-top: var(--enc-header-height, 95px);
  font-size: 1.2em;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  user-select: none;
  transition: visibility 600ms cubic-bezier(.4,0,.2,1), opacity 400ms cubic-bezier(.4,0,.2,1);
}
@media only screen and (pointer: coarse) and (max-width: 1024px), screen and (max-width: 799px) {
  .enc-menu { display: flex; }
}
.enc-menu-open .enc-menu { opacity: 1; visibility: visible; }
.enc-menu__bg { position: absolute; inset: 0; background: #fff; }
.enc-menu__nav { position: relative; display: flex; flex: 1 1 auto; overflow: hidden; overflow: clip; }
.enc-menu__panel {
  position: absolute; top: 0; left: 0; display: flex; flex-direction: column; width: 100%; min-height: 100%; max-height: 100%;
  overflow-x: hidden; overflow-y: auto; transform: translateX(100%);
  transition: transform 600ms cubic-bezier(.4,0,.2,1);
}
.enc-menu__panel.is-active, .enc-menu__panel[data-panel="root"] { transform: translateX(0); }
.enc-menu__panel[data-panel="root"].is-behind { transform: translateX(-100%); }
.enc-menu__content { position: relative; display: flex; flex: 1 0 auto; flex-direction: column; justify-content: center; width: 100%; }
.enc-menu__item {
  position: relative; box-sizing: border-box; width: 100%; padding: 0 var(--enc-page-pad);
  font-weight: 400; line-height: 1; text-align: left;
}
.enc-menu__item a {
  position: relative; display: inline-flex; align-items: center; margin: 3vw 5vw;
  color: var(--enc-navy); font-size: 8.5vmin; text-decoration: none; text-align: left;
}
@media (min-width: 768px) { .enc-menu__item a { font-size: 6vmin; } }
.enc-menu__icon { display: flex; align-items: center; width: 1em; height: 1em; }
.enc-menu__icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 0.5px; stroke-linecap: square; }
.enc-menu__item--folder .enc-menu__icon { margin-left: 0.15em; }
.enc-menu__item--folder .enc-menu__icon svg { transform: rotate(-90deg); }
.enc-menu__back { padding-bottom: 10px; font-size: 0.85em; opacity: 0.5; }
.enc-menu__back a { padding: 0 10px; }
.enc-menu__back .enc-menu__icon { margin-right: 0.15em; }
.enc-menu__back .enc-menu__icon svg { transform: rotate(90deg); }
.enc-menu__cta { transform: translateY(100%); transition: transform 600ms cubic-bezier(.4,0,.2,1); }
.enc-menu-open .enc-menu__cta { transform: translateY(0); }
.enc-menu__cta a {
  display: inline-block; box-sizing: border-box; min-width: 210px; margin: 4vw 6vw 6vw; padding: 1.3rem 2.1rem;
  border-radius: 300px; background: var(--enc-button); color: #fff;
  font: 500 1.2rem/normal Inter, Arial, sans-serif; text-align: center; text-decoration: none;
  transition: opacity 0.1s linear;
}
.enc-menu__cta a:hover { opacity: 0.8; }
/* While the Email/Call/Map bar is showing (phones, top of the page), the open menu ends above it, so the bar never covers "Plan your visit". */
body:has(.sqs-mobile-info-bar:not([hidden]):not(.sqs-mobile-info-bar-hide)) .enc-menu { padding-bottom: 64px; }

/* 5. Buttons ------------------------------------------------------------------------------------------- */
.enc-main .wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.enc-main .wp-block-button { margin: 0; }
.enc-main .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 44px;
  padding: 16px 30px;
  border: 0;
  border-radius: 300px;
  background: var(--enc-button);
  color: #fff;
  font-family: Inter, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: normal;
  text-decoration: none;
  vertical-align: middle;
}
.enc-main .wp-block-button__link:hover { filter: brightness(1.12); }
.enc-main .is-style-light .wp-block-button__link { background: #fff; color: var(--enc-navy); }
.enc-main .is-style-light .wp-block-button__link:hover { filter: none; background: #eef1f4; }
.enc-main .is-style-light .wp-block-button__link:focus-visible { outline-color: #fff; }

/* 6. Hero (Cover block with class enc-hero) ---------------------------------------------------------- */
.enc-hero.wp-block-cover {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  min-height: 0;
  height: max(clamp(236.992px, 31.82464vw, 490.912px), 29vw);
  padding: 0;
  margin: 0;
  overflow: hidden;
  background-color: var(--enc-navy);
  color: #fff;
}
.enc-hero .wp-block-cover__image-background {
  position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; max-width: none; max-height: none;
  object-fit: cover; object-position: 50% 22%;
}
.enc-hero .wp-block-cover__background {
  position: absolute; inset: 0; z-index: 1;
  opacity: 1 !important;
  background-color: transparent !important;
  background-image: linear-gradient(90deg, rgba(26,43,56,.6) 0%, rgba(26,43,56,.52) 36%, rgba(26,43,56,.12) 62%, rgba(26,43,56,0) 80%);
}
.enc-hero .wp-block-cover__inner-container {
  position: relative; z-index: 2;
  /* 9.6vw on normal screens; on very wide screens the text moves in, but stays clear of the island. */
  flex: 0 0 42%; width: 42%; margin: 0 0 0 max(9.6vw, calc(50vw - 880px));
  color: #fff;
  font-size: var(--enc-fs);
  line-height: 1.5;
}
.enc-hero .wp-block-cover__inner-container > * { margin-block: 0; }
.enc-hero h1 {
  margin: 0 0 32px !important;
  color: #fff;
  font-family: Inter, Arial, sans-serif;
  font-size: clamp(44px, 4.85vw, 72px);
  font-weight: 500;
  line-height: 1.056;
  letter-spacing: normal;
  text-align: left;
  white-space: nowrap;
}
.enc-hero p { margin: 16px 0 !important; color: #fff; font-size: var(--enc-fs); line-height: 1.5em; }
.enc-hero h1 + p { margin-top: 32px !important; }
.enc-hero .wp-block-buttons { margin: 22px 0 0 !important; gap: 12px 20px; }
.enc-hero__sub .enc-hero-time, .enc-hero__sub .enc-hero-location { display: inline-block; white-space: nowrap; }
.enc-hero__sub.enc-hero-stacked .enc-hero-separator { display: none; }
.enc-hero__sub.enc-hero-stacked .enc-hero-location { display: block; }
@media (min-width: 768px) and (max-width: 1000px) {
  .enc-hero .wp-block-cover__inner-container { flex-basis: 56%; width: 56%; margin-left: 4vw; }
  .enc-hero h1 { font-size: clamp(38px, 4.5vw, 48px); line-height: 1.08; }
}
@media (max-width: 767px) {
  .enc-hero.wp-block-cover {
    align-items: flex-start;
    height: 264.0768px;
    background-image: var(--enc-hero-image);
    background-size: 300% auto;
    background-position: center top;
    background-repeat: no-repeat;
  }
  .enc-hero .wp-block-cover__image-background {
    object-position: 90% 0%;
    transform: translateY(64px);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 16px);
    mask-image: linear-gradient(to bottom, transparent 0, #000 16px);
  }
  .enc-hero .wp-block-cover__background {
    background-image: linear-gradient(90deg, rgba(26,43,56,.6) 0%, rgba(26,43,56,.38) 66%, rgba(26,43,56,0) 100%);
  }
  .enc-hero .wp-block-cover__inner-container { flex: 0 0 88%; width: 88%; margin: 16px auto 0; }
  .enc-hero h1 { font-size: clamp(26px, 9vw, 38px); margin: 0 !important; }
  .enc-hero p { width: 260px; max-width: 100%; margin: 12px 0 0 !important; font-size: 14px; line-height: 1.5; white-space: normal; }
  .enc-hero h1 + p { margin-top: 12px !important; }
  .enc-hero .wp-block-buttons { margin-top: 12px !important; }
  .enc-hero__sub .enc-hero-separator { display: none; }
  .enc-hero__sub .enc-hero-location { display: block; white-space: nowrap; }
}
/*
 * Phones turned sideways: at the top of the page the Email/Call/Map bar covers the bottom 64px of a short screen.
 * A slimmer header and a hero with its text at the top keep "Plan your visit" above the bar.
 * Portrait phones and desktops are unchanged.
 */
@media (pointer: coarse) and (orientation: landscape) and (max-height: 500px) and (max-width: 1024px) {
  .enc-header { padding-top: 16px; padding-bottom: 16px; }
  .enc-hero.wp-block-cover { align-items: flex-start; }
  .enc-hero .wp-block-cover__inner-container { margin-top: 16px; }
  .enc-hero h1 { margin-bottom: 0 !important; font-size: clamp(26px, 4.2vw, 38px); }
  .enc-hero h1 + p { margin-top: 12px !important; }
  .enc-hero p { width: auto; margin-top: 12px !important; }
  .enc-hero__sub .enc-hero-separator, .enc-hero__sub.enc-hero-stacked .enc-hero-separator { display: inline; }
  .enc-hero__sub .enc-hero-location, .enc-hero__sub.enc-hero-stacked .enc-hero-location { display: inline-block; }
  .enc-hero .wp-block-buttons { margin-top: 12px !important; }
}

/* 7. Sections and bands ---------------------------------------------------------------------------- */
.enc-section {
  box-sizing: border-box;
  margin: 0;
  padding: var(--enc-section-space) var(--enc-gutter);
  background: #fff;
  color: var(--enc-navy);
  font-family: Inter, sans-serif;
  font-size: var(--enc-section-fs);
  line-height: 1.5;
}
.enc-section.is-style-warm, .wp-block-group.is-style-warm { background: var(--enc-warm); }
.enc-section.is-style-navy, .wp-block-group.is-style-navy { background: var(--enc-navy); color: #fff; }
.enc-section > * { max-width: 1020px; margin-left: auto !important; margin-right: auto !important; }
.enc-section p { margin: 0 0 16px; font-size: inherit; line-height: inherit; color: inherit; white-space: normal; }
.enc-section p:last-child { margin-bottom: 0; }
.enc-section a { color: var(--enc-button); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.is-style-navy a { color: #fff; }
.enc-section .wp-block-button__link { text-decoration: none; }
.enc-section h2, .enc-h2 {
  margin: 0 0 16px;
  color: inherit;
  font-family: Inter, Arial, sans-serif;
  font-size: var(--enc-h2);
  font-weight: 500;
  line-height: 1.114;
  letter-spacing: normal;
}
.enc-section h3, .enc-h3 {
  max-width: 22em;
  margin: 0 0 32px;
  color: inherit;
  font-family: Inter, Arial, sans-serif;
  font-size: var(--enc-h3);
  font-weight: 600;
  line-height: 1.142;
  letter-spacing: normal;
}
.enc-section .wp-block-buttons { margin: 24px 0 16px; }
.enc-section .wp-block-buttons:last-child { margin-bottom: 0; }
.enc-section .is-style-links { margin-bottom: 10px; }
.enc-section .is-style-links:last-child { margin-bottom: 0; }
/* Keyboard focus on the homepage: a ring in the text colour, 3px away (the original homepage's own style). */
.home .enc-main :focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
:where(.home .enc-main) a:focus-visible { border-radius: 2px; }

/* Centered section (Join us) */
.enc-center { text-align: center; }
.enc-center h2 { text-align: center; }
.enc-center p { max-width: 510px; margin-left: auto; margin-right: auto; }

/* 8. Label + content ------------------------------------------------------------------------------ */
.enc-split { display: grid; grid-template-columns: 16.9% minmax(0, 1fr); }
.enc-split > * { margin: 0; }
.enc-split > .is-style-label, .is-style-label {
  margin: 0 !important;
  padding-right: 16px;
  font-size: 18px !important;
  font-weight: 500;
  line-height: 27px !important;
}
.enc-split__body > :last-child { margin-bottom: 0; }
.enc-split__body h3 { text-align: left; }
@media (max-width: 767px) {
  .enc-split { display: block; }
  .enc-split > .is-style-label { margin-bottom: 11px !important; padding-right: 0; }
}

/* 9. Media ---------------------------------------------------------------------------------------- */
.enc-section .wp-block-image { margin: 0 0 24px; }
.enc-section .wp-block-image img { display: block; width: 100%; height: auto; }
.enc-video.wp-block-embed { margin: 0 0 24px; }
.enc-video .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; background: #000; }
.enc-video .wp-block-embed__wrapper::before { display: none !important; }
.enc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.enc-video + .wp-block-buttons { margin-top: 0; }
.enc-section .enc-events { margin-bottom: 24px; }
.is-style-navy .enc-progress__track { background: rgba(255, 255, 255, 0.25); }
.is-style-navy .enc-progress__track span { background: #fff; }

/* 10. Footer -------------------------------------------------------------------------------------- */
.enc-site-footer {
  --enc-row: calc(var(--enc-container) * 0.0215);
  position: relative;
  z-index: 0;
  border-top: 16px solid #fff;
  color: var(--enc-ink);
  font-size: var(--enc-fs);
  line-height: 1.5;
}
@media (max-width: 767px) { .enc-site-footer { --enc-row: 24px; } }
.enc-site-footer > * { margin: 0; }
.enc-footer__news-band, .enc-footer__info-band { margin: 0; padding: 40px 0 0; background: var(--enc-mist); color: var(--enc-ink); }
.enc-footer__news {
  box-sizing: border-box;
  width: min(900px, 88vw);
  margin: 0 auto;
  padding: 24px 36px 32px;
  border-radius: 6px;
  background: #fff;
  color: var(--enc-ink);
  font-family: Inter, Arial, sans-serif;
}
.enc-footer__news * { box-sizing: border-box; }
.enc-footer__news > * { margin-top: 0; margin-bottom: 0; }
.enc-footer__news-title.wp-block-heading {
  margin: 0 0 12px;
  color: var(--enc-ink);
  font-family: Inter, Arial, sans-serif;
  font-size: clamp(26px, 2.7vw, 32px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: normal;
  text-align: center;
  text-wrap: balance;
}
.enc-footer__news-intro { margin: 0 0 24px !important; font-size: 16px; line-height: 1.6; text-align: center; }
.enc-news-form { margin: 0; }
.enc-news-form .enc-fields { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 768px) { .enc-news-form .enc-fields { grid-template-columns: 1.4fr 1fr 1fr; gap: 18px; } }
.enc-news-form label { display: block; margin-bottom: 8px; font-size: 15px; font-weight: 600; line-height: 1.4; }
.enc-news-form input[type=email], .enc-news-form input[type=text] {
  display: inline-block; width: 100%; min-height: 48px; margin: 0; padding: 12px;
  border: 1px solid #737b87; border-radius: 3px; background: #fff; color: var(--enc-ink);
  font: 16px Inter, Arial, sans-serif;
}
.enc-news-form input:focus-visible, .enc-news-form button:focus-visible { outline: 3px solid #697dab; outline-offset: 3px; }
.enc-news-form .enc-bot { position: absolute; left: -5000px; }
.enc-news-form button {
  display: block; min-height: 48px; margin: 24px auto 0; padding: 14px 22px;
  border: 0; border-radius: 3px; background: var(--enc-ink); color: #fff;
  font: 600 16px Inter, Arial, sans-serif; cursor: pointer;
}
.enc-news-form button:hover { background: #354367; }
.enc-news-form .enc-reassurance { margin: 16px 0 0; font-size: 14px; line-height: 1.6; text-align: center; }
@media (max-width: 600px) {
  .enc-footer__news { padding: 24px; }
  .enc-news-form button { width: 100%; }
}
.enc-footer__info { box-sizing: border-box; width: var(--enc-container); margin: 0 auto; }
@media (max-width: 767px) { .enc-footer__info { width: 88vw; } }
.enc-footer__info p { margin: 16px 0; color: var(--enc-ink); font-size: var(--enc-fs); line-height: 1.5em; }
.enc-footer__info > :first-child, .enc-footer__info > :first-child > p:first-child { margin-top: 0; }
.enc-footer__info > :last-child { margin-bottom: 0; }
.enc-church-details { margin: 0; }
.enc-site-footer a {
  display: inline-block;
  color: var(--enc-ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
.enc-social.wp-block-social-links {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  gap: 12px !important;
  box-sizing: content-box;
  width: var(--enc-container);
  min-height: calc(2 * var(--enc-row) + 11px);
  margin: calc(22px + var(--enc-row)) auto 0 !important;
  padding: 0 0 calc(11px + var(--enc-row));
  list-style: none;
  font-size: 0;
}
@media (max-width: 767px) { .enc-social.wp-block-social-links { width: 88vw; } }
.enc-social .wp-social-link { margin: 0 !important; padding: 0; background: none !important; border-radius: 0; color: var(--enc-ink) !important; }
.enc-social .wp-social-link a, .enc-social .wp-block-social-link-anchor {
  display: block; width: 44px; height: 44px; padding: 0 !important; color: var(--enc-ink); text-decoration: none; line-height: 0;
}
.enc-social svg.enc-social-icon { display: block; width: 44px; height: 44px; fill: var(--enc-ink) !important; }
.enc-social .wp-social-link:hover { transform: none; }

/* Footer social icons: hover, focus and the Pocket Casts headphones, as on the original site. */
.enc-social .wp-social-link a:hover { opacity: .78; }
.enc-social .wp-social-link a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 15%; }
.enc-social a[href^="https://pca.st/"] { position: relative !important; }
.enc-social a[href^="https://pca.st/"] svg { visibility: hidden; }
.enc-social a[href^="https://pca.st/"]::before{content:"";position:absolute;top:10px;left:10px;width:24px;height:24px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%3E%3Cpath%20d%3D%22M4%2014v-3a8%208%200%200%201%2016%200v3%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2212%22%20width%3D%224%22%20height%3D%228%22%20rx%3D%222%22%2F%3E%3Crect%20x%3D%2217%22%20y%3D%2212%22%20width%3D%224%22%20height%3D%228%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E") no-repeat center / 24px 24px;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%3E%3Cpath%20d%3D%22M4%2014v-3a8%208%200%200%201%2016%200v3%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2212%22%20width%3D%224%22%20height%3D%228%22%20rx%3D%222%22%2F%3E%3Crect%20x%3D%2217%22%20y%3D%2212%22%20width%3D%224%22%20height%3D%228%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E") no-repeat center / 24px 24px}

/* 11. Inner pages: the original site's type scale, text blocks and layout grid ------------------------- */
/*
 * Every page except the homepage was a Squarespace page: body text 17.6px, large text 22.4px, h1 64px, h2 44.8px,
 * h3 35.2px, all shrinking with the viewport (with the viewport height on phones in portrait). Line heights are in
 * em, as on the original site; em line heights round exactly like the original, unitless ones can be 1/64px off.
 */
:root {
  --enc-page-h1: min(calc(3.6vw + 16px), 64px);
  --enc-page-h2: min(calc(2.16vw + 16px), 44.8px);
  --enc-page-h3: min(calc(1.44vw + 16px), 35.2px);
  --enc-page-large: min(calc(0.48vw + 16px), 22.4px);
}
@media screen and (max-width: 767px) and (orientation: portrait) {
  :root {
    --enc-page-h1: calc(0.036 * min(100vh, 900px) + 16px);
    --enc-page-h2: calc(0.0216 * min(100vh, 900px) + 16px);
    --enc-page-h3: calc(0.0144 * min(100vh, 900px) + 16px);
    --enc-page-large: calc(0.0048 * min(100vh, 900px) + 16px);
  }
}
/* Defaults for inner pages (lowest specificity, so a page or pattern rule always wins). */
:where(body:not(.home)) .enc-main { line-height: 1.5em; }
:where(body:not(.home) .enc-main) :is(h1, h2, h3) { color: inherit; font-family: Inter, Arial, sans-serif; letter-spacing: normal; }
:where(body:not(.home) .enc-main) h1 { font-size: var(--enc-page-h1); font-weight: 500; line-height: 1.056em; }
:where(body:not(.home) .enc-main) h2 { font-size: var(--enc-page-h2); font-weight: 600; line-height: 1.1136em; }
:where(body:not(.home) .enc-main) h3 { font-size: var(--enc-page-h3); font-weight: 600; line-height: 1.1424em; }

/*
 * Text block (class enc-sq on a Group): the original page text, 16px between paragraphs, 32px around headings,
 * bulleted lists with the bullet hanging in a 40px indent. Add enc-sq-large for the large text size.
 */
.enc-sq { color: var(--enc-navy); font-family: Inter, Arial, sans-serif; font-size: var(--enc-fs); line-height: 1.5em; }
.enc-sq > * { margin-top: 0; margin-bottom: 0; }
.enc-sq p { margin: 16px 0; color: var(--enc-navy); font-size: var(--enc-fs); line-height: 1.5em; white-space: pre-wrap; }
.enc-sq-large p { font-size: var(--enc-page-large); }
.enc-sq h1, .enc-fe__title { margin: 32px 0; color: var(--enc-navy); font-family: Inter, Arial, sans-serif; font-size: var(--enc-page-h1); font-weight: 500; line-height: 1.056em; letter-spacing: normal; white-space: pre-wrap; }
.enc-sq h2 { margin: 32px 0; color: var(--enc-navy); font-family: Inter, Arial, sans-serif; font-size: var(--enc-page-h2); font-weight: 600; line-height: 1.1136em; letter-spacing: normal; text-align: left; white-space: pre-wrap; }
.enc-sq h3 { margin: 32px 0; color: var(--enc-navy); font-family: Inter, Arial, sans-serif; font-size: var(--enc-page-h3); font-weight: 600; line-height: 1.1424em; letter-spacing: normal; text-align: left; white-space: pre-wrap; }
.enc-sq .has-text-align-center { text-align: center; }
.enc-sq > :first-child { margin-top: 0; }
.enc-sq > :last-child { margin-bottom: 0; }
.enc-sq strong { font-weight: 700; }
.enc-sq a { color: var(--enc-button); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; text-decoration-skip-ink: auto; }
.enc-sq ul { margin: 1em 0; padding: 0 0 0 40px; list-style: none; }
.enc-sq li { margin: 0.5em 0; padding: 0; font-size: var(--enc-fs); line-height: 1.5em; white-space: pre-wrap; list-style: none; }
.enc-sq li::before { content: "\2022"; display: inline-block; box-sizing: border-box; min-width: 40px; margin-left: -40px; padding-right: 10px; text-align: right; }

/*
 * Layout grid (class enc-fe on a Group): the original pages' "fluid engine" grid. From 768px: 24 columns inside
 * min(1020px, 92vw) with rows 2.15% of that width; on phones: 8 columns and 24px rows. Rows are 11px apart; columns
 * 11px apart, or 14px on the pages that had wider gaps (--enc-fe-gap). Rows grow with their content.
 * The page stylesheet sets the number of rows (--enc-fe-rows, --enc-fe-rows-phone) and places each block with grid-area.
 */
.wp-block-group.enc-fe {
  --enc-fe-gap: 11px;
  --enc-fe-rows: 1;
  --enc-fe-rows-phone: 1;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(calc(6vw - var(--enc-fe-gap)), 1fr) repeat(8, minmax(0, calc((1020px - 7 * var(--enc-fe-gap)) / 8))) minmax(calc(6vw - var(--enc-fe-gap)), 1fr);
  grid-template-rows: repeat(var(--enc-fe-rows-phone), minmax(24px, auto));
  row-gap: 11px;
  column-gap: var(--enc-fe-gap);
  margin: 0;
  overflow-x: clip;
}
@media (min-width: 768px) {
  .wp-block-group.enc-fe {
    grid-template-columns: minmax(calc(4vw - var(--enc-fe-gap)), 1fr) repeat(24, minmax(0, calc((1020px - 23 * var(--enc-fe-gap)) / 24))) minmax(calc(4vw - var(--enc-fe-gap)), 1fr);
    grid-template-rows: repeat(var(--enc-fe-rows), minmax(calc(min(1020px, 92vw) * 0.0215), auto));
  }
}
.wp-block-group.enc-fe > * { position: relative; min-width: 0; margin: 0; }
/* A photo fills its grid area, letterboxed. */
.enc-fe .enc-fe__media { margin: 0; }
.enc-fe .enc-fe__media a { display: block; position: absolute; inset: 0; }
.enc-fe .enc-fe__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: contain; object-position: 50% 50%; }

/* Patterns */
.enc-page-header { text-align: center; }
.enc-page-header h1 { margin: 0 0 16px; }
.enc-page-header p { max-width: 640px; margin-left: auto; margin-right: auto; }

.enc-text-image { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 6%; align-items: center; }
.enc-text-image > * { margin: 0 !important; }
.enc-text-image__text > :last-child { margin-bottom: 0; }
@media (max-width: 767px) {
  .enc-text-image { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .enc-text-image > .wp-block-image { order: -1; }
}

.enc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.enc-card { margin: 0; }
.enc-card .wp-block-image { margin: 0 0 12px; }
.enc-card h3 { max-width: none; margin: 0; font-size: 20px; font-weight: 600; line-height: 1.3; }
.enc-card h3 a { color: inherit; text-decoration: none; }
.enc-card h3 a:hover { text-decoration: underline; }
@media (max-width: 1023px) { .enc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .enc-cards { grid-template-columns: minmax(0, 1fr); } }

.enc-document { display: block; }
.enc-toc { margin: 0 auto 40px !important; padding: 0 0 24px; border-bottom: 1px solid #c6cbd0; }
.enc-toc ol { margin: 8px 0 0; padding-left: 1.4em; columns: 2 280px; column-gap: 40px; }
.enc-toc li { margin: 0 0 6px; break-inside: avoid; }
.enc-document__body h2 { margin: 48px 0 16px; font-size: var(--enc-page-h2); font-weight: 600; line-height: 1.1136em; scroll-margin-top: 24px; }
.enc-document__body h2:first-child { margin-top: 0; }
@media (min-width: 1100px) {
  .enc-document { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 0 48px; align-items: start; max-width: 1020px; margin: 0 auto; }
  .enc-document > * { max-width: none; margin: 0 !important; }
  .enc-toc { position: sticky; top: 24px; border-bottom: 0; padding: 0; }
  .enc-toc ol { columns: auto; }
}

.enc-video figcaption, .enc-section .wp-element-caption { margin: 8px 0 0; font-size: 15px; line-height: 1.5; text-align: left; color: inherit; }
.enc-section ul, .enc-section ol { margin: 0 0 16px; padding-left: 1.4em; }
.enc-section li { margin: 0 0 6px; }
.enc-section .wp-block-buttons.is-content-justification-center { justify-content: center; }

/* 12. Components ---------------------------------------------------------------------------------- */
/*
 * Platform links (Buttons block style "Platform links", is-style-platforms): outlined links, each with the
 * service's icon, chosen from the link address (Apple Podcasts, Spotify, Pocket Casts, YouTube, Facebook).
 * One column on phones. Used under "Listen and subscribe" on /sermons, /marriage-conference and /sermon-pride.
 */
.wp-block-buttons.is-style-platforms { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin: 0; }
.is-style-platforms .wp-block-button { margin: 0; }
.is-style-platforms .wp-block-button__link {
  box-sizing: border-box; display: inline-flex; align-items: center; justify-content: flex-start; gap: 10px;
  min-height: 48px; padding: 11px 16px; border: 1px solid #cbd5d8; border-radius: 4px;
  background: transparent; color: var(--enc-navy); filter: none;
  font: 500 16px/1.5 Inter, Arial, sans-serif; letter-spacing: normal;
  text-align: left; text-decoration: none; white-space: normal; transition: none;
}
.is-style-platforms .wp-block-button__link::before { content: ""; flex: 0 0 24px; width: 24px; height: 24px; background: no-repeat center / 24px 24px; }
.is-style-platforms .wp-block-button__link:hover { filter: none; background: #eef2f1; border-color: #6d8791; color: var(--enc-navy); }
.is-style-platforms .wp-block-button__link:focus-visible { outline: 3px solid var(--enc-button); outline-offset: 4px; }
.is-style-platforms a[href*="podcasts.apple.com"]::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231a2b38'%3E%3Cpath d='M6.8 17a8.5 8.5 0 1 1 10.4 0M8.6 14a5.5 5.5 0 1 1 6.8 0' fill='none' stroke='%231a2b38' stroke-width='1.7' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3Cpath d='M9 15c0-2.2 6-2.2 6 0l-1 6c-.3 1.3-3.7 1.3-4 0z'/%3E%3C/svg%3E"); }
.is-style-platforms a[href*="open.spotify.com"]::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231a2b38'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M6.5 8.8c3.6-1 7.9-.6 11 1.1M7.2 12c3-1 6.8-.5 9.6.9M8 15.2c2.6-.7 5.4-.3 7.7.8' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); }
.is-style-platforms a[href*="pca.st"]::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a2b38' stroke-width='1.8'%3E%3Cpath d='M4 14v-3a8 8 0 0 1 16 0v3'/%3E%3Crect x='3' y='12' width='4' height='8' rx='2'/%3E%3Crect x='17' y='12' width='4' height='8' rx='2'/%3E%3C/svg%3E"); }
.is-style-platforms a[href*="youtube.com"]::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231a2b38'%3E%3Crect x='2' y='5' width='20' height='14' rx='4'/%3E%3Cpath d='M10 8.5l6 3.5-6 3.5z' fill='white'/%3E%3C/svg%3E"); }
.is-style-platforms a[href*="facebook.com"]::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231a2b38'%3E%3Cpath d='M14.5 22v-9h3l.5-4h-3.5V6.5c0-1.2.4-2 2-2H18V1.2c-.5-.1-1.7-.2-3-.2-3 0-5 1.8-5 5V9H7v4h3v9z'/%3E%3C/svg%3E"); }
@media (max-width: 767px) {
  .wp-block-buttons.is-style-platforms { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .is-style-platforms .wp-block-button__link { width: 100%; }
}

/* 13. Utilities ----------------------------------------------------------------------------------- */
.enc-narrow { max-width: 510px; margin-left: auto !important; margin-right: auto !important; }
.enc-info-bar-part { margin: 0; }
