/*
   ZION LUTHERAN CHURCH - JOOMLA 6
   MASTER USER.CSS
   Updated: 2026-09-16
   Current repairs consolidated: closing CTAs, Blanket Ministry,
   Worship & Music, Bulletin/study-guide alignment, Announcements hero.
*/

/* =========================================================
   ZION LUTHERAN CHURCH - JOOMLA 6
   CLEAN USER.CSS
   ========================================================= */


/* =========================================================
   1. DESIGN TOKENS / GLOBAL
   ========================================================= */

:root {
  --zion-burgundy: #6f2033;
  --zion-burgundy-dark: #4f1725;
  --zion-gold: #b9975b;
  --zion-ivory: #f7f3ec;
  --zion-charcoal: #2e2e2e;
  --zion-muted: #6b6b6b;
  --zion-white: #ffffff;

  --zion-content-width: 1400px;
  --zion-radius: 10px;
  --zion-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--zion-charcoal);
  background: var(--zion-white);
}

a {
  color: var(--zion-burgundy);
}

a:hover,
a:focus {
  color: var(--zion-burgundy-dark);
}

.zion-eyebrow,
.zion-home-hero-eyebrow {
  margin: 0 0 0.7rem;
  color: var(--zion-gold);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.zion-text-link,
.zion-pathway-link,
.zion-resource-link,
.zion-secondary-link,
.zion-coming-up-calendar-link {
  color: var(--zion-burgundy);
  font-weight: 700;
  text-decoration: none;
}

.zion-text-link:hover,
.zion-text-link:focus,
.zion-pathway-link:hover,
.zion-pathway-link:focus,
.zion-resource-link:hover,
.zion-resource-link:focus,
.zion-secondary-link:hover,
.zion-secondary-link:focus,
.zion-coming-up-calendar-link:hover,
.zion-coming-up-calendar-link:focus {
  color: var(--zion-burgundy-dark);
}


/* =========================================================
   2. UTILITY BAR
   ========================================================= */

.zion-utility-bar {
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zion-utility-inner {
  display: flex;
  justify-content: flex-end;
  gap: 1.5rem;
  max-width: var(--zion-content-width);
  margin: 0 auto;
  padding: 0.55rem 1.25rem;
}

.zion-utility-bar a {
  color: var(--zion-white);
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
}

.zion-utility-bar a:hover,
.zion-utility-bar a:focus {
  color: var(--zion-white);
  text-decoration: underline;
}


/* =========================================================
   3. OPTIONAL ALERT BAR
   ========================================================= */

.zion-alert {
  background: #8b1e2d;
  color: var(--zion-white);
}

.zion-alert-inner {
  max-width: var(--zion-content-width);
  margin: 0 auto;
  padding: 0.7rem 1.25rem;
  text-align: center;
  font-weight: 600;
}

.zion-alert strong {
  margin-right: 0.35rem;
}


/* =========================================================
   4. MAIN HEADER / NAVIGATION
   ========================================================= */

.container-header {
  position: relative;
  z-index: 100;
  background: var(--zion-white);
  background-image: none;
  color: var(--zion-charcoal);
  box-shadow: 0 3px 18px rgba(0, 0, 0, 0.07);
}

.container-header .container-nav {
  max-width: var(--zion-content-width);
  margin: 0 auto;
  padding: 0 1.25rem;
}

.container-header .navbar-brand {
  padding-top: 1.15rem;
  padding-bottom: 1rem;
}

.container-header .navbar-brand a {
  color: var(--zion-burgundy);
  text-decoration: none;
}

.container-header .site-description {
  color: var(--zion-muted);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}

.container-header .mod-menu {
  align-items: center;
}

.container-header .mod-menu > li > a,
.container-header .mod-menu > li > span {
  padding: 1rem 0.8rem;
  color: var(--zion-charcoal);
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li > a:focus,
.container-header .mod-menu > li.active > a {
  color: var(--zion-burgundy);
}

.container-header .mod-menu > li.active > a {
  position: relative;
}

.container-header .mod-menu > li.active > a::after {
  content: "";
  position: absolute;
  left: 0.8rem;
  right: 0.8rem;
  bottom: 0.45rem;
  height: 2px;
  background: var(--zion-gold);
}

/* =========================================================
   4A. MAIN MENU DROPDOWNS
   Desktop only — preserve Cassiopeia mobile navigation
   ========================================================= */

@media (min-width: 992px) {

  /* Parent menu item anchors the dropdown */
  .container-header .mod-menu > .deeper.parent {
    position: relative;
  }


  /* ---------------------------------------------------------
     DROPDOWN PANEL
     --------------------------------------------------------- */

  .container-header .mod-menu > .deeper.parent > .mm-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;

    min-width: 220px;
    margin: 0;
    padding: 0.45rem 0;

    background: var(--zion-white);
    border-top: 3px solid var(--zion-gold);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);

    list-style: none;

    display: none;
    height: auto !important;
  }


  /* Show dropdown on hover or keyboard focus */
  .container-header .mod-menu > .deeper.parent:hover > .mm-collapse,
  .container-header .mod-menu > .deeper.parent:focus-within > .mm-collapse {
    display: block;
  }


  /* ---------------------------------------------------------
     DROPDOWN LINKS
     --------------------------------------------------------- */

  .container-header .mod-menu .mm-collapse .metismenu-item {
    display: block;
    width: 100%;
    margin: 0;
  }

  .container-header .mod-menu .mm-collapse .metismenu-item > a {
    display: block;
    width: 100%;
    padding: 0.75rem 1.1rem;

    color: var(--zion-charcoal);
    font-size: 0.93rem;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;

    white-space: nowrap;

    transition:
      background-color 0.2s ease,
      color 0.2s ease;
  }

  .container-header .mod-menu .mm-collapse .metismenu-item > a:hover,
  .container-header .mod-menu .mm-collapse .metismenu-item > a:focus {
    background: var(--zion-ivory);
    color: var(--zion-burgundy);
  }


  /* ---------------------------------------------------------
     DESKTOP DROPDOWN TOGGLER
     Submenus open on hover/focus, so no visual indicator is needed.
     Keep the control in the document flow without displaying a symbol.
     --------------------------------------------------------- */

  .container-header .mod-menu > .deeper.parent > .mm-toggler {
    width: 0;
    min-width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: transparent;
    overflow: hidden;
  }

  .container-header .mod-menu > .deeper.parent > .mm-toggler::after {
    content: none !important;
  }

}

/* =========================================================
   4B. MOBILE HEADER / NAVIGATION
   ========================================================= */

@media (max-width: 991.98px) {

  .container-header .container-nav {
    width: 100%;
    max-width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .container-header .navbar-brand {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 64px);
    padding-right: .75rem;
  }

  .container-header .navbar-brand a,
  .container-header .navbar-brand .site-title,
  .container-header .site-description {
    display: block;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  .container-header .site-description {
    line-height: 1.35;
  }

  .container-header .navbar-toggler {
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    margin-left: auto;
    color: var(--zion-burgundy);
  }

  .container-header .navbar-collapse {
    width: 100%;
  }

  .container-header .mod-menu {
    width: 100%;
    align-items: stretch;
  }

  .container-header .mod-menu > li {
    width: 100%;
  }

  /* Show second-level items beneath their parent on mobile. */
  .container-header .mod-menu > .deeper.parent > .mm-collapse {
    position: static;
    display: block !important;
    height: auto !important;
    visibility: visible !important;
    overflow: visible !important;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
  }

  .container-header .mod-menu .level-2 {
    display: block;
    width: 100%;
  }

  .container-header .mod-menu .level-2 > a {
    display: block;
    padding: .6rem .5rem .6rem 1.5rem;
    color: var(--zion-muted);
    font-size: .9rem;
    font-weight: 600;
  }

  .container-header .mod-menu .level-2 > a::before {
    content: "— ";
    color: var(--zion-gold);
  }
}

/* =========================================================
   5. HOME HERO
   ========================================================= */

.zion-home-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 590px;
  overflow: hidden;
  background: #222;
}

/* Supports the original hero image markup if retained. */
.zion-home-hero-image {
  position: absolute;
  inset: 0;
}

.zion-home-hero-image img,
.zion-home-hero > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.zion-home-hero > img {
  position: absolute;
  inset: 0;
}

.zion-home-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      270deg,
      rgba(20, 18, 18, 0.88) 0%,
      rgba(20, 18, 18, 0.70) 32%,
      rgba(20, 18, 18, 0.22) 60%,
      rgba(20, 18, 18, 0.02) 100%
    );
}

.zion-home-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--zion-content-width);
  margin: 0 auto;
  padding: 5rem 1.5rem 5.5rem;
}

.zion-home-hero-copy {
  max-width: 580px;
  margin-left: auto;
  color: var(--zion-white);
}

.zion-home-hero .zion-home-hero-eyebrow {
  color: #f1d9a6;
}

.zion-home-hero h1 {
  margin: 0 0 1.25rem;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 6vw, 5.2rem);
  font-weight: 500;
  line-height: 0.98;
}

.zion-home-hero-intro {
  max-width: 540px;
  margin: 0 0 1.75rem;
  font-size: 1.15rem;
  line-height: 1.65;
}

.zion-home-hero-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.78rem 1.4rem;
  border: 1px solid var(--zion-gold);
  border-radius: 4px;
  background: var(--zion-burgundy);
  color: var(--zion-white);
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease;
}

.zion-home-hero-button:hover,
.zion-home-hero-button:focus {
  background: var(--zion-burgundy-dark);
  color: var(--zion-white);
  transform: translateY(-2px);
}


/* =========================================================
   6. SUNDAY ESSENTIALS
   ========================================================= */

.zion-home-essentials {
  position: relative;
  z-index: 5;
  background: var(--zion-white);
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.045);
}

.zion-home-essentials-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: var(--zion-content-width);
  margin: 0 auto;
}

.zion-essential-item {
  padding: 1.5rem 1.75rem;
  text-align: center;
  border-right: 1px solid rgba(0, 0, 0, 0.08);
}

.zion-essential-item:last-child {
  border-right: 0;
}

.zion-essential-label {
  display: block;
  margin-bottom: 0.3rem;
  color: var(--zion-gold);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.zion-essential-item strong,
.zion-essential-item a {
  color: var(--zion-charcoal);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
}

.zion-essential-item a:hover,
.zion-essential-item a:focus {
  color: var(--zion-burgundy);
}


/* =========================================================
   7. WELCOME / SANCTUARY
   ========================================================= */

.zion-home-welcome {
  padding: 6rem 1.5rem;
  background: var(--zion-white);
}

.zion-home-welcome-inner {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: 4.5rem;
  max-width: var(--zion-content-width);
  margin: 0 auto;
}

.zion-home-welcome-image {
  position: relative;
  min-height: 430px;
  overflow: hidden;
  border-radius: 6px;
  background-position: center;
  background-size: cover;
  box-shadow: var(--zion-shadow);
}

.zion-home-welcome-image::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 32px;
  left: 0;
  width: 5px;
  height: 90px;
  background: var(--zion-gold);
}

.zion-home-welcome-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 430px;
  object-fit: cover;
}

.zion-home-welcome-copy {
  max-width: 590px;
}

.zion-home-welcome-copy h2 {
  margin: 0 0 1.25rem;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.3rem, 4vw, 3.5rem);
  font-weight: 500;
  line-height: 1.08;
}

.zion-home-welcome-lead {
  margin-bottom: 1rem;
  color: var(--zion-charcoal);
  font-size: 1.15rem;
  line-height: 1.7;
}

.zion-home-welcome-copy p:not(.zion-eyebrow):not(.zion-home-welcome-lead) {
  color: var(--zion-muted);
  font-size: 1rem;
  line-height: 1.7;
}

.zion-home-welcome-copy .zion-text-link {
  display: inline-block;
  margin-top: 0.75rem;
}


/* =========================================================
   8. WORSHIP / LEARN / SERVE
   ========================================================= */

.zion-home-pathways {
  padding: 5.5rem 1.5rem;
  background: var(--zion-ivory);
}

.zion-home-pathways-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.zion-section-heading {
  max-width: 760px;
  margin: 0 auto 3rem;
  text-align: center;
}

.zion-section-heading h2 {
  margin: 0 0 1rem;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 500;
  line-height: 1.1;
}

.zion-section-heading > p:last-child {
  margin: 0;
  color: var(--zion-muted);
  font-size: 1.08rem;
  line-height: 1.7;
}

.zion-pathway-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.zion-pathway-card {
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: var(--zion-white);
  border: 1px solid rgba(0, 0, 0, 0.07);
  border-top: 4px solid var(--zion-burgundy);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.zion-pathway-icon {
  margin-bottom: 0.9rem;
  color: var(--zion-gold);
  font-size: 1.35rem;
}

.zion-pathway-card h3 {
  margin: 0 0 0.9rem;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
}

.zion-pathway-card p {
  flex: 1;
  margin: 0 0 1.4rem;
  color: var(--zion-muted);
  line-height: 1.65;
}

.zion-pathway-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
}

.zion-pathway-link::after {
  content: " →";
  margin-left: 0.35rem;
  transition: transform 0.2s ease;
}

.zion-pathway-link:hover::after,
.zion-pathway-link:focus::after {
  transform: translateX(4px);
}


/* =========================================================
   9. COMING UP
   ========================================================= */

.zion-home-coming-up {
  padding: 5.5rem 1.5rem 6rem;
  background: var(--zion-white);
}

.zion-home-coming-up-inner {
  max-width: var(--zion-content-width);
  margin: 0 auto;
}

.zion-coming-up-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 3rem;
  margin-bottom: 2rem;
}

.zion-coming-up-heading h2 {
  margin: 0;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.3rem, 4vw, 3.4rem);
  font-weight: 500;
  line-height: 1.08;
}

.zion-coming-up-calendar-link {
  flex-shrink: 0;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid var(--zion-gold);
}

.zion-coming-up-intro {
  max-width: 720px;
  margin: 0 0 2.25rem;
  color: var(--zion-muted);
  font-size: 1.05rem;
  line-height: 1.65;
}

.zion-coming-up-module:empty {
  display: none;
}

/* Retains styling if the Coming Up module/article uses the event-card markup
   created earlier in the redesign. */

.zion-home-coming-up .zion-event-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.zion-home-coming-up .zion-event-card {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 1.35rem;
  padding: 1.75rem;
  background: var(--zion-ivory);
  border-top: 4px solid var(--zion-burgundy);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.055);
}

.zion-home-coming-up .zion-event-date {
  text-align: center;
}

.zion-home-coming-up .zion-event-month {
  display: block;
  margin-bottom: 0.15rem;
  color: var(--zion-burgundy);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.zion-home-coming-up .zion-event-day {
  display: block;
  color: var(--zion-charcoal);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.7rem;
  line-height: 1;
}

.zion-home-coming-up .zion-event-content {
  padding-left: 1.25rem;
  border-left: 1px solid #ddd4c7;
}

.zion-home-coming-up .zion-event-type {
  margin: 0 0 0.3rem;
  color: var(--zion-gold);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.zion-home-coming-up .zion-event-content h3 {
  margin: 0 0 0.35rem;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
}

.zion-home-coming-up .zion-event-meta {
  margin: 0 0 0.75rem;
  color: var(--zion-charcoal);
  font-size: 0.85rem;
  font-weight: 700;
}

.zion-home-coming-up .zion-event-content > p:last-child {
  margin: 0;
  color: var(--zion-muted);
  font-size: 0.9rem;
  line-height: 1.55;
}


/* =========================================================
   10. WEEKLY RESOURCES
   ========================================================= */

.zion-home-resources {
  padding: 5.5rem 1.5rem;
  background: var(--zion-ivory);
}

.zion-home-resources-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.zion-resource-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.zion-resource-card {
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: var(--zion-white);
  border: 1px solid rgba(0, 0, 0, 0.07);
  border-radius: 6px;
}

.zion-resource-card h3 {
  margin: 0 0 0.9rem;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.4rem;
}

.zion-resource-card p {
  flex: 1;
  margin: 0 0 1.4rem;
  color: var(--zion-muted);
  line-height: 1.65;
}

.zion-resource-link {
  display: inline-block;
  width: fit-content;
}



/* =========================================================
   10A. HOMEPAGE RESPONSIVE
   ========================================================= */

@media (max-width: 991.98px) {

  .zion-home-welcome-inner {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .zion-pathway-grid,
  .zion-home-coming-up .zion-event-grid,
  .zion-resource-grid {
    grid-template-columns: 1fr;
  }

  .zion-coming-up-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }
}

@media (max-width: 600px) {

  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .zion-home-essentials-inner {
    grid-template-columns: 1fr;
  }

  .zion-essential-item {
    border-right: 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
  }

  .zion-essential-item:last-child {
    border-bottom: 0;
  }

  .zion-home-coming-up .zion-event-card {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: .9rem;
    padding: 1.25rem 1rem;
  }

  .zion-home-coming-up .zion-event-content {
    min-width: 0;
    padding-left: .9rem;
  }
}

/* =========================================================
   NEW HERE / FIRST VISIT
   ========================================================= */

.zion-home-visit {
  background: #fff;
  padding: 90px 24px 100px;
}

.zion-home-visit-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: 80px;
  align-items: center;
}


/* LEFT — INVITATION */

.zion-home-visit-copy {
  max-width: 620px;
}

.zion-home-visit-copy .zion-eyebrow {
  margin-bottom: 14px;
}

.zion-home-visit-copy h2 {
  margin: 0 0 24px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 1.08;
  font-weight: 700;
}

.zion-home-visit-lead {
  margin: 0 0 20px;
  color: var(--zion-charcoal);
  font-size: 1.18rem;
  line-height: 1.75;
}

.zion-home-visit-copy > p:not(.zion-eyebrow):not(.zion-home-visit-lead) {
  margin: 0;
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.8;
}


/* ACTIONS */

.zion-home-visit-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 34px;
}

.zion-primary-button {
  display: inline-block;
  padding: 14px 26px;
  background: var(--zion-burgundy);
  color: #fff !important;
  border: 2px solid var(--zion-burgundy);
  border-radius: 3px;
  font-weight: 700;
  text-decoration: none !important;
  transition:
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.zion-primary-button:hover,
.zion-primary-button:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: #fff !important;
  transform: translateY(-1px);
}

.zion-secondary-link {
  color: var(--zion-burgundy) !important;
  font-weight: 700;
  text-decoration: none !important;
}

.zion-secondary-link:hover,
.zion-secondary-link:focus {
  text-decoration: underline !important;
}


/* RIGHT — YOUR FIRST SUNDAY PANEL */

.zion-first-sunday {
  position: relative;
  margin: 0;
  padding: 42px 44px 36px;
  background: #f7f3ec;
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44, 35, 31, .10);
}

.zion-first-sunday::after {
  content: "";
  position: absolute;
  top: 22px;
  right: 22px;
  width: 44px;
  height: 44px;
  border-top: 1px solid rgba(185, 151, 91, .55);
  border-right: 1px solid rgba(185, 151, 91, .55);
}

.zion-first-sunday-eyebrow {
  margin: 0 0 16px;
  color: var(--zion-burgundy);
  font-size: .78rem;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.zion-first-sunday-item {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 14px;
  padding: 21px 0;
  border-bottom: 1px solid rgba(111, 32, 51, .14);
}

.zion-first-sunday-item:last-child {
  padding-bottom: 4px;
  border-bottom: 0;
}

.zion-first-sunday-symbol {
  padding-top: 1px;
  color: var(--zion-gold);
  font-size: 1.25rem;
  line-height: 1;
}

.zion-first-sunday-item h3 {
  margin: 0 0 5px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.12rem;
  line-height: 1.3;
}

.zion-first-sunday-item p {
  margin: 0;
  color: var(--zion-charcoal);
  font-size: .97rem;
  line-height: 1.55;
}


/* RESPONSIVE */

@media (max-width: 900px) {

  .zion-home-visit {
    padding: 70px 24px 80px;
  }

  .zion-home-visit-inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .zion-home-visit-copy {
    max-width: 700px;
  }

  .zion-first-sunday {
    max-width: 700px;
  }

}

@media (max-width: 600px) {

  .zion-home-visit {
    padding: 58px 20px 65px;
  }

.zion-home-visit-copy h2 {
  font-size: clamp(2.2rem, 3.5vw, 3.05rem);
}
  .zion-home-visit-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
  }

  .zion-first-sunday {
    padding: 34px 26px 30px;
  }

}
/* =========================================================
   SITE FOOTER
   ========================================================= */

.zion-site-footer {
  margin: 0;
  padding: 0;
  background: var(--zion-burgundy) !important;
  color: #f7f3ec;
}

.zion-footer-main {
  width: 100%;
  margin: 0;
  background-color: var(--zion-burgundy) !important;
  background-image: none !important;
  padding: 64px 24px 58px;
}

.zion-footer-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr .9fr .8fr;
  gap: 70px;
}

.zion-footer-column h2,
.zion-footer-column h3 {
  margin-top: 0;
  font-family: Georgia, "Times New Roman", serif;
}

.zion-footer-column h2 {
  margin-bottom: 18px;
  color: #fff;
  font-size: 1.65rem;
  line-height: 1.2;
}

.zion-footer-column h3 {
  margin-bottom: 18px;
  color: var(--zion-gold);
  font-size: 1.08rem;
}

.zion-footer-column p {
  margin: 0 0 16px;
  color: rgba(255,255,255,.84);
  line-height: 1.7;
}

.zion-footer-identity > p:first-of-type {
  max-width: 430px;
  font-size: 1.02rem;
}

.zion-footer-affiliation {
  margin-top: 22px !important;
  color: rgba(255,255,255,.67) !important;
  font-size: .9rem;
}

.zion-footer-column a {
  color: #fff;
  text-decoration: none;
}

.zion-footer-column a:hover,
.zion-footer-column a:focus {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--zion-gold);
  text-underline-offset: 4px;
}

.zion-footer-column ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.zion-footer-column li {
  margin: 0 0 11px;
}

.zion-footer-bottom {
  width: 100%;
  margin: 0;
  background-color: var(--zion-burgundy-dark) !important;
  background-image: none !important;
  padding: 18px 24px;
}

.zion-footer-bottom-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}

.zion-footer-bottom p {
  margin: 0;
  color: rgba(255,255,255,.68);
  font-size: .82rem;
}

.zion-footer-bottom-links {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
}

.zion-footer-bottom-links a {
  color: rgba(255,255,255,.76);
  font-size: .82rem;
  text-decoration: none;
}

.zion-footer-bottom-links a:hover,
.zion-footer-bottom-links a:focus {
  color: #fff;
  text-decoration: underline;
}

@media (max-width: 900px) {

  .zion-footer-inner {
    grid-template-columns: 1fr 1fr;
    gap: 45px;
  }

  .zion-footer-identity {
    grid-column: 1 / -1;
  }

}

@media (max-width: 600px) {

  .zion-footer-main {
    padding: 48px 20px 42px;
  }

  .zion-footer-inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .zion-footer-identity {
    grid-column: auto;
  }

  .zion-footer-bottom-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

}
/* =========================================================
   ABOUT ZION / INTERIOR PAGE
   ========================================================= */

/* ---------------------------------------------------------
   INTERIOR HERO
   --------------------------------------------------------- */

.zion-inner-hero {
  position: relative;
  min-height: 430px;
  display: flex;
  align-items: center;
  padding: 70px 24px;

  background:
    linear-gradient(
      270deg,
      rgba(79, 23, 37, .97) 0%,
      rgba(79, 23, 37, .90) 38%,
      rgba(79, 23, 37, .48) 62%,
      rgba(79, 23, 37, .10) 100%
    ),
    url("/images/about/zion-church-historic.webp")
      left center / cover no-repeat;

  color: #fff;
}

.zion-inner-hero-inner {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

.zion-inner-hero-inner > * {
  max-width: 590px;
  margin-left: auto;
}

.zion-inner-hero .zion-eyebrow {
  margin-bottom: 14px;
  color: var(--zion-gold);
}

.zion-inner-hero h1 {
  margin-top: 0;
  margin-bottom: 22px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.8rem, 5vw, 4.7rem);
  line-height: 1.02;
  font-weight: 700;
}

.zion-inner-hero p:not(.zion-eyebrow) {
  margin-top: 0;
  margin-bottom: 0;
  color: rgba(255,255,255,.91);
  font-size: 1.12rem;
  line-height: 1.75;
}

/* ---------------------------------------------------------
   WHO WE ARE
   --------------------------------------------------------- */

.zion-about-intro {
  background: #fff;
  padding: 90px 24px;
}

.zion-about-intro-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .95fr);
  gap: 80px;
  align-items: center;
}

.zion-about-intro-copy {
  max-width: 650px;
}

.zion-about-intro-copy h2,
.zion-about-history-copy h2,
.zion-about-building-copy h2,
.zion-about-cemetery-copy h2,
.zion-about-closing h2 {
  margin: 0 0 22px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 3.8vw, 3.35rem);
  line-height: 1.08;
  font-weight: 700;
}

.zion-about-intro-copy p,
.zion-about-history-copy > p,
.zion-about-building-copy p,
.zion-about-cemetery-copy p,
.zion-about-closing p {
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.8;
}

.zion-about-intro-copy a,
.zion-about-cemetery-copy a {
  color: var(--zion-burgundy);
  font-weight: 700;
}

.zion-about-lead {
  color: var(--zion-charcoal) !important;
  font-size: 1.18rem !important;
  line-height: 1.7 !important;
}

.zion-about-intro-image {
  position: relative;
}

.zion-about-intro-image::before {
  content: "";
  position: absolute;
  top: -14px;
  left: -14px;
  width: 90px;
  height: 90px;
  border-top: 3px solid var(--zion-gold);
  border-left: 3px solid var(--zion-gold);
  z-index: 0;
}

.zion-about-intro-image img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  min-height: 430px;
  object-fit: cover;
  box-shadow: 0 16px 42px rgba(44,35,31,.13);
}


/* ---------------------------------------------------------
   OUR STORY
   --------------------------------------------------------- */

.zion-about-history {
  background: var(--zion-ivory);
  padding: 96px 24px;
}

.zion-about-history-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(380px, .95fr) minmax(0, 1.05fr);
  gap: 78px;
  align-items: start;
}

.zion-about-history-image {
  position: sticky;
  top: 30px;
}

.zion-about-history-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  box-shadow: 0 14px 38px rgba(44,35,31,.12);
}

.zion-history-timeline {
  position: relative;
  margin-top: 34px;
  padding-left: 34px;
}

.zion-history-timeline::before {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 10px;
  left: 8px;
  width: 2px;
  background: rgba(185,151,91,.45);
}

.zion-history-item {
  position: relative;
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 22px;
  padding: 0 0 34px;
}

.zion-history-item:last-child {
  padding-bottom: 0;
}

.zion-history-item::before {
  content: "";
  position: absolute;
  left: -32px;
  top: 8px;
  width: 10px;
  height: 10px;
  background: var(--zion-gold);
  border-radius: 50%;
  box-shadow: 0 0 0 5px var(--zion-ivory);
}

.zion-history-year {
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.2;
}

.zion-history-text h3 {
  margin: 0 0 7px;
  color: var(--zion-charcoal);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  line-height: 1.3;
}

.zion-history-text p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
  line-height: 1.7;
}


/* ---------------------------------------------------------
   OUR CHURCH HOME
   --------------------------------------------------------- */

.zion-about-building {
  background: #fff;
  padding: 96px 24px;
}

.zion-about-building-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr);
  gap: 80px;
  align-items: start;
}

.zion-about-building-copy {
  max-width: 650px;
}

.zion-about-building-copy .zion-primary-button {
  margin-top: 14px;
}

.zion-about-building-details {
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  padding: 34px 36px 28px;
  box-shadow: 0 14px 36px rgba(44,35,31,.09);
}

.zion-about-building-detail {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 14px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(111,32,51,.13);
}

.zion-about-building-detail:first-child {
  padding-top: 0;
}

.zion-about-building-detail:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.zion-about-building-symbol {
  color: var(--zion-gold);
  font-size: 1.25rem;
  line-height: 1.2;
}

.zion-about-building-detail h3 {
  margin: 0 0 6px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.13rem;
}

.zion-about-building-detail p {
  margin: 0;
  color: var(--zion-charcoal);
  font-size: .96rem;
  line-height: 1.6;
}


/* ---------------------------------------------------------
   CEMETERY
   --------------------------------------------------------- */

.zion-about-cemetery {
  background: var(--zion-ivory);
  padding: 96px 24px;
}

.zion-about-cemetery-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr);
  gap: 80px;
  align-items: center;
}

.zion-about-cemetery-copy {
  max-width: 650px;
}

.zion-about-cemetery-image {
  position: relative;
}

.zion-about-cemetery-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  box-shadow: 0 16px 42px rgba(44,35,31,.13);
}

.zion-about-cemetery-image::after {
  content: "";
  position: absolute;
  right: -14px;
  bottom: -14px;
  width: 90px;
  height: 90px;
  border-right: 3px solid var(--zion-gold);
  border-bottom: 3px solid var(--zion-gold);
}


/* ---------------------------------------------------------
   CLOSING INVITATION
   --------------------------------------------------------- */

.zion-about-closing {
  background: #fff;
  padding: 86px 24px 94px;
  text-align: center;
}

.zion-about-closing-inner {
  max-width: 820px;
  margin: 0 auto;
}

.zion-about-closing .zion-eyebrow {
  margin-bottom: 14px;
}

.zion-about-closing p {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.08rem;
}

.zion-about-closing-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 26px;
  margin-top: 32px;
}


/* ---------------------------------------------------------
   ABOUT PAGE RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 1000px) {

  .zion-about-intro-inner,
  .zion-about-history-inner,
  .zion-about-building-inner,
  .zion-about-cemetery-inner {
    gap: 55px;
  }

  .zion-about-intro-inner,
  .zion-about-cemetery-inner {
    grid-template-columns: 1fr 1fr;
  }

}


@media (max-width: 900px) {

  .zion-inner-hero {
    padding: 64px 24px 68px;
  }

  .zion-about-intro,
  .zion-about-history,
  .zion-about-building,
  .zion-about-cemetery {
    padding: 76px 24px;
  }

  .zion-about-intro-inner,
  .zion-about-history-inner,
  .zion-about-building-inner,
  .zion-about-cemetery-inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .zion-about-intro-copy,
  .zion-about-building-copy,
  .zion-about-cemetery-copy {
    max-width: 720px;
  }

  .zion-about-intro-image,
  .zion-about-history-image,
  .zion-about-cemetery-image {
    max-width: 760px;
  }

  .zion-about-history-image {
    position: static;
  }

  .zion-about-history-image img,
  .zion-about-cemetery-image img {
    aspect-ratio: 16 / 9;
  }

  .zion-about-building-details {
    max-width: 700px;
  }

}


@media (max-width: 600px) {

  .zion-inner-hero {
    min-height: 400px;
    padding: 48px 20px;
    align-items: flex-end;

    background:
      linear-gradient(
        0deg,
        rgba(79, 23, 37, .98) 0%,
        rgba(79, 23, 37, .88) 48%,
        rgba(79, 23, 37, .30) 100%
      ),
      url("/images/about/zion-church-historic.webp")
        35% center / cover no-repeat;
  }

  .zion-inner-hero-inner > * {
    max-width: none;
    margin-left: 0;
  }

  .zion-inner-hero h1 {
    font-size: 2.65rem;
  }

  .zion-inner-hero p:not(.zion-eyebrow) {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zion-about-intro,
  .zion-about-history,
  .zion-about-building,
  .zion-about-cemetery {
    padding: 60px 20px;
  }

  .zion-about-closing {
    padding: 64px 20px 70px;
  }

  .zion-about-intro-copy h2,
  .zion-about-history-copy h2,
  .zion-about-building-copy h2,
  .zion-about-cemetery-copy h2,
  .zion-about-closing h2 {
    font-size: 2.25rem;
  }

  .zion-about-intro-image img {
    min-height: 300px;
  }

  .zion-history-timeline {
    padding-left: 28px;
  }

  .zion-history-item {
    grid-template-columns: 1fr;
    gap: 8px;
    padding-bottom: 30px;
  }

  .zion-history-item::before {
    left: -26px;
  }

  .zion-about-building-details {
    padding: 30px 24px 25px;
  }

  .zion-about-closing-actions {
    flex-direction: column;
    gap: 18px;
  }

}
/* About Zion — final spacing refinement */

.zion-about-intro {
  padding-top: 78px;
  padding-bottom: 78px;
}

.zion-about-history,
.zion-about-building,
.zion-about-cemetery {
  padding-top: 80px;
  padding-bottom: 80px;
}

.zion-about-closing {
  padding-top: 74px;
  padding-bottom: 80px;
}

/* =========================================================
   FACILITY USE
   ========================================================= */

/* ---------------------------------------------------------
   FACILITY HERO
   Reuses the established interior hero system
   --------------------------------------------------------- */

.zion-inner-hero.zion-facility-hero {
  background:
    linear-gradient(
      270deg,
      rgba(79, 23, 37, .96) 0%,
      rgba(79, 23, 37, .88) 36%,
      rgba(79, 23, 37, .45) 62%,
      rgba(79, 23, 37, .08) 100%
    ),
    url("/images/facility-use/facility-use-hero.webp")
      center center / cover no-repeat;
}


/* ---------------------------------------------------------
   INTRO / AVAILABILITY CARD
   --------------------------------------------------------- */

.zion-facility-intro {
  padding: 82px 24px;
  background: #fff;
}

.zion-facility-intro-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr);
  gap: 72px;
  align-items: start;
}

.zion-facility-intro-copy {
  max-width: 680px;
}

.zion-facility-intro-copy h2,
.zion-facility-feature-copy h2,
.zion-facility-process h2,
.zion-facility-cta h2 {
  margin: 0 0 22px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.15rem, 3.8vw, 3.3rem);
  line-height: 1.08;
  font-weight: 700;
}

.zion-facility-intro-copy p,
.zion-facility-feature-copy p,
.zion-facility-process-card p,
.zion-facility-cta p {
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.8;
}

.zion-facility-lead {
  color: var(--zion-charcoal) !important;
  font-size: 1.18rem !important;
  line-height: 1.7 !important;
}

.zion-facility-contact-card {
  padding: 34px 36px 30px;
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 36px rgba(44,35,31,.09);
}

.zion-facility-contact-card h3 {
  margin: 0 0 14px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1.25;
}

.zion-facility-contact-card p {
  margin: 0 0 18px;
  color: var(--zion-charcoal);
  line-height: 1.7;
}

.zion-facility-contact-detail {
  padding-top: 18px;
  border-top: 1px solid rgba(111,32,51,.14);
}


/* ---------------------------------------------------------
   FACILITY FEATURE SECTIONS
   --------------------------------------------------------- */

.zion-facility-feature {
  padding: 82px 24px;
  background: #fff;
}

.zion-facility-feature-light {
  background: var(--zion-ivory);
}

.zion-facility-feature-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(420px, .98fr) minmax(0, 1.02fr);
  gap: 74px;
  align-items: center;
}

.zion-facility-feature-reverse .zion-facility-feature-image {
  order: 2;
}

.zion-facility-feature-reverse .zion-facility-feature-copy {
  order: 1;
}

.zion-facility-feature-copy {
  max-width: 650px;
}

.zion-facility-feature-copy p:last-of-type {
  margin-bottom: 0;
}

.zion-facility-feature-image {
  position: relative;
}

.zion-facility-feature-image::before {
  content: "";
  position: absolute;
  top: -12px;
  left: -12px;
  width: 78px;
  height: 78px;
  border-top: 3px solid var(--zion-gold);
  border-left: 3px solid var(--zion-gold);
  z-index: 0;
}

.zion-facility-feature-reverse .zion-facility-feature-image::before {
  left: auto;
  right: -12px;
  border-left: 0;
  border-right: 3px solid var(--zion-gold);
}

.zion-facility-feature-image img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  box-shadow: 0 16px 42px rgba(44,35,31,.13);
}

.zion-facility-features {
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.zion-facility-features li {
  position: relative;
  margin: 0;
  padding: 11px 0 11px 28px;
  color: var(--zion-charcoal);
  border-bottom: 1px solid rgba(111,32,51,.10);
  line-height: 1.55;
}

.zion-facility-features li:last-child {
  border-bottom: 0;
}

.zion-facility-features li::before {
  content: "•";
  position: absolute;
  left: 5px;
  top: 9px;
  color: var(--zion-gold);
  font-size: 1.35rem;
  line-height: 1;
}


/* ---------------------------------------------------------
   PLANNING PROCESS
   --------------------------------------------------------- */

.zion-facility-process {
  padding: 84px 24px 90px;
  background: #fff;
}

.zion-facility-process-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.zion-facility-process .zion-section-heading {
  margin-bottom: 42px;
}

.zion-facility-process-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.zion-facility-process-card {
  position: relative;
  padding: 34px 30px 30px;
  background: var(--zion-ivory);
  border-top: 4px solid var(--zion-burgundy);
  box-shadow: 0 10px 28px rgba(44,35,31,.06);
}

.zion-facility-process-number {
  display: block;
  margin-bottom: 14px;
  color: var(--zion-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
}

.zion-facility-process-card h3 {
  margin: 0 0 12px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.3rem;
  line-height: 1.3;
}

.zion-facility-process-card p {
  margin: 0;
}


/* ---------------------------------------------------------
   FINAL CTA
   --------------------------------------------------------- */

.zion-facility-cta {
  padding: 72px 24px;
  background: var(--zion-burgundy);
  color: #fff;
}

.zion-facility-cta-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 50px;
  align-items: center;
}

.zion-facility-cta .zion-eyebrow {
  color: #efd7a5;
}

.zion-facility-cta h2 {
  margin-bottom: 14px;
  color: #fff;
}

.zion-facility-cta p {
  max-width: 760px;
  margin: 0;
  color: rgba(255,255,255,.88);
}

.zion-facility-cta .zion-primary-button {
  white-space: nowrap;
  background: #fff;
  border-color: #fff;
  color: var(--zion-burgundy) !important;
}

.zion-facility-cta .zion-primary-button:hover,
.zion-facility-cta .zion-primary-button:focus {
  background: var(--zion-ivory);
  border-color: var(--zion-ivory);
  color: var(--zion-burgundy-dark) !important;
}


/* ---------------------------------------------------------
   FACILITY USE RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {

  .zion-facility-intro,
  .zion-facility-feature,
  .zion-facility-process {
    padding: 70px 24px;
  }

  .zion-facility-intro-inner,
  .zion-facility-feature-inner {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .zion-facility-feature-reverse .zion-facility-feature-image,
  .zion-facility-feature-reverse .zion-facility-feature-copy {
    order: initial;
  }

  .zion-facility-feature-image {
    max-width: 760px;
  }

  .zion-facility-process-grid {
    grid-template-columns: 1fr;
  }

  .zion-facility-cta-inner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

}

@media (max-width: 600px) {

  .zion-inner-hero.zion-facility-hero {
    background:
      linear-gradient(
        0deg,
        rgba(79, 23, 37, .98) 0%,
        rgba(79, 23, 37, .87) 50%,
        rgba(79, 23, 37, .26) 100%
      ),
      url("/images/facility-use/facility-use-hero.webp")
        center center / cover no-repeat;
  }

  .zion-facility-intro,
  .zion-facility-feature,
  .zion-facility-process {
    padding: 58px 20px;
  }

  .zion-facility-contact-card {
    padding: 30px 24px 26px;
  }

  .zion-facility-feature-inner {
    gap: 36px;
  }

  .zion-facility-feature-image img {
    aspect-ratio: 4 / 3;
  }

  .zion-facility-feature-image::before,
  .zion-facility-feature-reverse .zion-facility-feature-image::before {
    top: -9px;
    left: -9px;
    right: auto;
    width: 62px;
    height: 62px;
    border-top: 3px solid var(--zion-gold);
    border-left: 3px solid var(--zion-gold);
    border-right: 0;
  }

  .zion-facility-process-card {
    padding: 28px 24px 25px;
  }

  .zion-facility-cta {
    padding: 58px 20px;
  }

  .zion-facility-cta .zion-primary-button {
    white-space: normal;
  }

}

/* =========================================================
   FACILITY USE AGREEMENT
   ========================================================= */

.zion-facility-agreement {
  padding: 82px 24px;
  background: var(--zion-ivory);
}

.zion-facility-agreement-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr);
  gap: 72px;
  align-items: center;
}

.zion-facility-agreement-copy {
  max-width: 680px;
}

.zion-facility-agreement-copy h2 {
  margin: 0 0 22px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.15rem, 3.8vw, 3.3rem);
  line-height: 1.08;
  font-weight: 700;
}

.zion-facility-agreement-copy p {
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.8;
}

.zion-facility-agreement-lead {
  color: var(--zion-charcoal) !important;
  font-size: 1.18rem !important;
  line-height: 1.7 !important;
}

.zion-facility-agreement-card {
  position: relative;
  padding: 36px 38px 32px;
  background: var(--zion-white);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44,35,31,.10);
}

.zion-facility-agreement-card::after {
  content: "";
  position: absolute;
  top: 22px;
  right: 22px;
  width: 44px;
  height: 44px;
  border-top: 1px solid rgba(185,151,91,.55);
  border-right: 1px solid rgba(185,151,91,.55);
}

.zion-facility-agreement-card h3 {
  margin: 0 0 14px;
  padding-right: 50px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.5rem;
  line-height: 1.25;
}

.zion-facility-agreement-card > p:not(.zion-eyebrow):not(.zion-facility-agreement-note) {
  margin: 0 0 24px;
  color: var(--zion-charcoal);
  line-height: 1.7;
}

.zion-facility-agreement-card .zion-primary-button {
  display: inline-block;
  margin-top: 2px;
}

.zion-facility-agreement-note {
  margin: 16px 0 0;
  color: var(--zion-muted);
  font-size: .88rem;
  line-height: 1.5;
}


/* ---------------------------------------------------------
   FACILITY USE AGREEMENT RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {

  .zion-facility-agreement {
    padding: 70px 24px;
  }

  .zion-facility-agreement-inner {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .zion-facility-agreement-copy,
  .zion-facility-agreement-card {
    max-width: 720px;
  }

}

@media (max-width: 600px) {

  .zion-facility-agreement {
    padding: 58px 20px;
  }

  .zion-facility-agreement-inner {
    gap: 36px;
  }

  .zion-facility-agreement-card {
    padding: 30px 24px 26px;
  }

  .zion-facility-agreement-card::after {
    top: 18px;
    right: 18px;
    width: 34px;
    height: 34px;
  }

  .zion-facility-agreement-card h3 {
    padding-right: 40px;
    font-size: 1.35rem;
  }

  .zion-facility-agreement-card .zion-primary-button {
    width: 100%;
    text-align: center;
  }

}

/* =========================================================
   OUR STORY / HISTORY LANDING PAGE
   ========================================================= */

/* ---------------------------------------------------------
   HISTORY HERO
   Reuses established interior hero structure
   --------------------------------------------------------- */

.zion-inner-hero.zion-history-hero {
  background:
    linear-gradient(
      270deg,
      rgba(24, 16, 14, .95) 0%,
      rgba(24, 16, 14, .88) 34%,
      rgba(24, 16, 14, .44) 60%,
      rgba(24, 16, 14, .08) 100%
    ),
    url("/images/history/our-story-hero.webp")
      center center / cover no-repeat;
}

.zion-history-hero .zion-inner-hero-inner > * {
  max-width: 640px;
}

.zion-history-hero h1 {
  max-width: 640px;
}

/* ---------------------------------------------------------
   OPENING STORY
   --------------------------------------------------------- */

.zion-history-intro {
  padding: 86px 24px;
  background: var(--zion-white);
}

.zion-history-intro-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: 76px;
  align-items: center;
}

.zion-history-intro-copy {
  max-width: 680px;
}

.zion-history-intro-copy h2,
.zion-history-change-copy h2,
.zion-history-portal-copy h2,
.zion-history-closing h2 {
  margin: 0 0 22px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 3.8vw, 3.4rem);
  line-height: 1.08;
  font-weight: 700;
}

.zion-history-intro-copy p,
.zion-history-change-copy p,
.zion-history-portal-copy p,
.zion-history-closing p {
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.8;
}

.zion-history-lead {
  color: var(--zion-charcoal) !important;
  font-size: 1.17rem !important;
  line-height: 1.72 !important;
}

.zion-history-featured-artifact {
  margin: 0;
  background: var(--zion-ivory);
  box-shadow: 0 16px 42px rgba(44, 35, 31, .12);
}

.zion-history-featured-artifact img {
  display: block;
  width: 100%;
  height: auto;
}

.zion-history-featured-artifact figcaption {
  padding: 24px 26px 26px;
  border-top: 4px solid var(--zion-gold);
}

.zion-history-artifact-label {
  display: block;
  margin-bottom: 8px;
  color: var(--zion-gold);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.zion-history-featured-artifact strong {
  display: block;
  margin-bottom: 7px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  line-height: 1.3;
}

.zion-history-featured-artifact figcaption > span:last-child {
  display: block;
  color: var(--zion-muted);
  font-size: .93rem;
  line-height: 1.6;
}

/* ---------------------------------------------------------
   FAITH LIVED TOGETHER
   --------------------------------------------------------- */

.zion-history-community {
  padding: 84px 24px 92px;
  background: var(--zion-ivory);
}

.zion-history-community-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.zion-history-community-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.zion-history-community-card {
  overflow: hidden;
  background: var(--zion-white);
  box-shadow: 0 12px 34px rgba(44, 35, 31, .08);
}

.zion-history-community-image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #ddd6ca;
}

.zion-history-community-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zion-history-community-copy {
  padding: 28px 30px 30px;
}

.zion-history-community-copy h3,
.zion-history-hidden-copy h3,
.zion-history-portal-note h3 {
  margin: 0 0 12px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
  line-height: 1.25;
}

.zion-history-community-copy p,
.zion-history-hidden-copy p,
.zion-history-portal-note p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
  line-height: 1.7;
}

/* ---------------------------------------------------------
   THROUGH TIMES OF CHANGE
   --------------------------------------------------------- */

.zion-history-change {
  padding: 92px 24px;
  background: var(--zion-white);
}

.zion-history-change-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(420px, 1fr) minmax(0, .95fr);
  gap: 76px;
  align-items: center;
}

.zion-history-change-image {
  position: relative;
}

.zion-history-change-image::before {
  content: "";
  position: absolute;
  top: -14px;
  left: -14px;
  width: 86px;
  height: 86px;
  border-top: 3px solid var(--zion-gold);
  border-left: 3px solid var(--zion-gold);
  z-index: 0;
}

.zion-history-change-image img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  box-shadow: 0 16px 42px rgba(44, 35, 31, .13);
}

.zion-history-change-copy {
  max-width: 610px;
}

/* ---------------------------------------------------------
   HIDDEN ZION
   --------------------------------------------------------- */

.zion-history-hidden {
  padding: 88px 24px 96px;
  background: #2a211e;
}

.zion-history-hidden .zion-section-heading h2 {
  color: var(--zion-white);
}

.zion-history-hidden .zion-section-heading > p:last-child {
  color: rgba(255, 255, 255, .72);
}

.zion-history-hidden-grid {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.zion-history-hidden-card {
  overflow: hidden;
  background: #352926;
  border-top: 4px solid var(--zion-gold);
  box-shadow: 0 12px 32px rgba(0, 0, 0, .18);
}

.zion-history-hidden-image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #1f1917;
}

.zion-history-hidden-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zion-history-hidden-copy {
  padding: 26px 26px 28px;
}

.zion-history-hidden-copy h3 {
  color: #f1dfb8;
}

.zion-history-hidden-copy p {
  color: rgba(255, 255, 255, .76);
}

/* ---------------------------------------------------------
   FUTURE HISTORY PORTAL
   --------------------------------------------------------- */

.zion-history-portal {
  padding: 88px 24px;
  background: var(--zion-ivory);
}

.zion-history-portal-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  gap: 72px;
  align-items: start;
}

.zion-history-portal-copy {
  max-width: 680px;
}

.zion-history-portal-note {
  position: relative;
  padding: 34px 36px 32px;
  background: var(--zion-white);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44, 35, 31, .10);
}

.zion-history-portal-note::after {
  content: "";
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  border-top: 1px solid rgba(185, 151, 91, .55);
  border-right: 1px solid rgba(185, 151, 91, .55);
}

.zion-history-portal-note h3 {
  padding-right: 48px;
}

/* ---------------------------------------------------------
   CLOSING
   --------------------------------------------------------- */

.zion-history-closing {
  padding: 78px 24px 84px;
  background: var(--zion-white);
  text-align: center;
}

.zion-history-closing-inner {
  max-width: 820px;
  margin: 0 auto;
}

.zion-history-closing p {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.08rem;
}

/* ---------------------------------------------------------
   HISTORY PAGE RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 1000px) {

  .zion-history-intro-inner,
  .zion-history-change-inner,
  .zion-history-portal-inner {
    gap: 52px;
  }

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

}

@media (max-width: 900px) {

  .zion-history-intro,
  .zion-history-community,
  .zion-history-change,
  .zion-history-hidden,
  .zion-history-portal {
    padding-left: 24px;
    padding-right: 24px;
  }

  .zion-history-intro-inner,
  .zion-history-change-inner,
  .zion-history-portal-inner {
    grid-template-columns: 1fr;
  }

  .zion-history-intro-copy,
  .zion-history-change-copy,
  .zion-history-portal-copy,
  .zion-history-featured-artifact,
  .zion-history-portal-note {
    max-width: 760px;
  }

  .zion-history-change-image {
    max-width: 760px;
  }

}

@media (max-width: 700px) {

  .zion-history-community-grid,
  .zion-history-hidden-grid {
    grid-template-columns: 1fr;
  }

  .zion-history-community-card,
  .zion-history-hidden-card {
    max-width: 720px;
  }

}

@media (max-width: 600px) {

  .zion-inner-hero.zion-history-hero {
    min-height: 440px;
    align-items: flex-end;
    background:
      linear-gradient(
        0deg,
        rgba(24, 16, 14, .98) 0%,
        rgba(24, 16, 14, .88) 46%,
        rgba(24, 16, 14, .34) 100%
      ),
      url("/images/history/our-story-hero.webp")
        37% center / cover no-repeat;
  }

  .zion-history-intro {
    padding: 60px 20px;
  }

  .zion-history-community {
    padding: 60px 20px 66px;
  }

  .zion-history-change {
    padding: 64px 20px;
  }

  .zion-history-hidden {
    padding: 64px 20px 70px;
  }

  .zion-history-portal {
    padding: 62px 20px;
  }

  .zion-history-closing {
    padding: 62px 20px 68px;
  }

  .zion-history-intro-inner,
  .zion-history-change-inner,
  .zion-history-portal-inner {
    gap: 38px;
  }

  .zion-history-intro-copy h2,
  .zion-history-change-copy h2,
  .zion-history-portal-copy h2,
  .zion-history-closing h2 {
    font-size: 2.2rem;
  }

  .zion-history-featured-artifact figcaption,
  .zion-history-community-copy,
  .zion-history-hidden-copy,
  .zion-history-portal-note {
    padding-left: 22px;
    padding-right: 22px;
  }

  .zion-history-change-image::before {
    top: -10px;
    left: -10px;
    width: 62px;
    height: 62px;
  }

  .zion-history-portal-note::after {
    top: 16px;
    right: 16px;
    width: 32px;
    height: 32px;
  }

}
/* =========================================================
   ZION LUTHERAN CEMETERY
   ========================================================= */


/* ---------------------------------------------------------
   CEMETERY HERO
   --------------------------------------------------------- */

.zion-inner-hero.zion-cemetery-hero {
  background:
    linear-gradient(
      270deg,
      rgba(79, 23, 37, .96) 0%,
      rgba(79, 23, 37, .86) 35%,
      rgba(79, 23, 37, .42) 61%,
      rgba(79, 23, 37, .06) 100%
    ),
    url("/images/cemetery/cemetery-hero.webp")
      center center / cover no-repeat;
}

.zion-cemetery-hero .zion-inner-hero-inner > * {
  max-width: 650px;
}

.zion-cemetery-hero h1 {
  max-width: 650px;
}


/* ---------------------------------------------------------
   CEMETERY INTRO
   --------------------------------------------------------- */

.zion-cemetery-intro {
  padding: 88px 24px;
  background: #fff;
}

.zion-cemetery-intro-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 78px;
  align-items: center;
}

.zion-cemetery-intro-copy {
  max-width: 690px;
}

.zion-cemetery-intro-copy h2,
.zion-cemetery-veterans-copy h2,
.zion-cemetery-information-copy h2,
.zion-cemetery-closing h2 {
  margin: 0 0 22px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 3.8vw, 3.4rem);
  line-height: 1.08;
  font-weight: 700;
}

.zion-cemetery-intro-copy p,
.zion-cemetery-veterans-copy p,
.zion-cemetery-information-copy p,
.zion-cemetery-closing p {
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.8;
}

.zion-cemetery-lead {
  color: var(--zion-charcoal) !important;
  font-size: 1.17rem !important;
  line-height: 1.72 !important;
}


/* ---------------------------------------------------------
   CEMETERY FACTS
   --------------------------------------------------------- */

.zion-cemetery-facts {
  padding: 36px 38px 38px;
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44, 35, 31, .10);
}

.zion-cemetery-facts h3 {
  margin: 0 0 27px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.65rem;
  line-height: 1.25;
}

.zion-cemetery-stat {
  display: grid;
  grid-template-columns: 115px 1fr;
  gap: 18px;
  align-items: center;
  padding: 18px 0;
  border-top: 1px solid rgba(111, 98, 93, .20);
}

.zion-cemetery-stat:last-child {
  padding-bottom: 0;
}

.zion-cemetery-stat strong {
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  line-height: 1;
}

.zion-cemetery-stat span {
  color: var(--zion-muted);
  font-size: .96rem;
  line-height: 1.45;
}


/* ---------------------------------------------------------
   STORIES AMONG THE STONES
   --------------------------------------------------------- */

.zion-cemetery-stories {
  padding: 86px 24px 94px;
  background: var(--zion-ivory);
}

.zion-cemetery-stories-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.zion-cemetery-story-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  margin-top: 48px;
}

.zion-cemetery-story-card {
  position: relative;
  display: block;
  padding: 38px 36px;
  background: #fff;
  border-top: 4px solid var(--zion-gold);
  box-shadow: 0 12px 34px rgba(44, 35, 31, .08);
}

.zion-cemetery-story-copy {
  width: 100%;
  max-width: none;
}

.zion-cemetery-story-copy h3 {
  margin: 0 0 16px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1.25;
}

.zion-cemetery-story-copy p {
  margin: 0 0 15px;
  color: var(--zion-muted);
  font-size: .98rem;
  line-height: 1.72;
}

.zion-cemetery-story-copy p:last-child {
  margin-bottom: 0;
}


/* ---------------------------------------------------------
   VETERANS
   --------------------------------------------------------- */

.zion-cemetery-veterans {
  padding: 88px 24px;
  background: #fff;
}

.zion-cemetery-veterans-inner {
  max-width: 1050px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 70px;
  align-items: center;
}

.zion-cemetery-veterans-mark {
  width: 220px;
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--zion-gold);
  border-radius: 50%;
  position: relative;
}

.zion-cemetery-veterans-mark::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(199, 161, 90, .42);
  border-radius: 50%;
}

.zion-cemetery-veterans-mark span {
  position: relative;
  z-index: 1;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 4rem;
  font-weight: 700;
  line-height: 1;
}

.zion-cemetery-veterans-copy {
  max-width: 690px;
}


/* ---------------------------------------------------------
   CEMETERY INFORMATION
   --------------------------------------------------------- */

.zion-cemetery-information {
  padding: 90px 24px;
  background: var(--zion-ivory);
}

.zion-cemetery-information-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  gap: 76px;
  align-items: center;
}

.zion-cemetery-information-copy {
  max-width: 680px;
}

.zion-cemetery-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 25px;
  margin-top: 30px;
}

.zion-cemetery-phone {
  color: var(--zion-burgundy);
  font-size: 1.12rem;
  font-weight: 700;
  text-decoration: none;
}

.zion-cemetery-phone:hover,
.zion-cemetery-phone:focus {
  color: var(--zion-burgundy-dark);
  text-decoration: underline;
}


/* ---------------------------------------------------------
   FAMILY HISTORY / RESEARCH CARD
   --------------------------------------------------------- */

.zion-cemetery-research {
  position: relative;
  padding: 38px 40px 40px;
  background: #fff;
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44, 35, 31, .10);
}

.zion-cemetery-research::after {
  content: "";
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  border-top: 1px solid rgba(199, 161, 90, .55);
  border-right: 1px solid rgba(199, 161, 90, .55);
}

.zion-cemetery-research h3 {
  margin: 0 0 18px;
  padding-right: 45px;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1.25;
}

.zion-cemetery-research p {
  color: var(--zion-muted);
  font-size: .98rem;
  line-height: 1.72;
}

.zion-cemetery-research a {
  display: inline-block;
  margin-top: 8px;
  color: var(--zion-burgundy);
  font-weight: 700;
  text-decoration: none;
}

.zion-cemetery-research a:hover,
.zion-cemetery-research a:focus {
  color: var(--zion-burgundy-dark);
  text-decoration: underline;
}


/* ---------------------------------------------------------
   CLOSING
   --------------------------------------------------------- */

.zion-cemetery-closing {
  padding: 78px 24px 84px;
  background: #fff;
  text-align: center;
}

.zion-cemetery-closing-inner {
  max-width: 820px;
  margin: 0 auto;
}

.zion-cemetery-closing p {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.08rem;
}


/* ---------------------------------------------------------
   CEMETERY RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {

  .zion-cemetery-intro-inner,
  .zion-cemetery-information-inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .zion-cemetery-intro-copy,
  .zion-cemetery-facts,
  .zion-cemetery-information-copy,
  .zion-cemetery-research {
    max-width: 760px;
  }

  .zion-cemetery-veterans-inner {
    grid-template-columns: 180px 1fr;
    gap: 45px;
  }

  .zion-cemetery-veterans-mark {
    width: 175px;
    height: 175px;
  }

  .zion-cemetery-veterans-mark span {
    font-size: 3.25rem;
  }

}

@media (max-width: 700px) {

  .zion-cemetery-story-grid {
    grid-template-columns: 1fr;
  }

  .zion-cemetery-veterans-inner {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .zion-cemetery-veterans-mark {
    width: 155px;
    height: 155px;
  }

  .zion-cemetery-veterans-mark span {
    font-size: 3rem;
  }

}

@media (max-width: 600px) {

  .zion-inner-hero.zion-cemetery-hero {
    min-height: 440px;
    align-items: flex-end;
    background:
      linear-gradient(
        0deg,
        rgba(79, 23, 37, .98) 0%,
        rgba(79, 23, 37, .86) 47%,
        rgba(79, 23, 37, .25) 100%
      ),
      url("/images/cemetery/cemetery-hero.webp")
        center center / cover no-repeat;
  }

  .zion-cemetery-intro {
    padding: 60px 20px;
  }

  .zion-cemetery-stories {
    padding: 62px 20px 68px;
  }

  .zion-cemetery-veterans {
    padding: 62px 20px;
  }

  .zion-cemetery-information {
    padding: 62px 20px;
  }

  .zion-cemetery-closing {
    padding: 60px 20px 68px;
  }

  .zion-cemetery-intro-copy h2,
  .zion-cemetery-veterans-copy h2,
  .zion-cemetery-information-copy h2,
  .zion-cemetery-closing h2 {
    font-size: 2.2rem;
  }

  .zion-cemetery-facts,
  .zion-cemetery-research {
    padding: 30px 24px;
  }

  .zion-cemetery-stat {
    grid-template-columns: 95px 1fr;
  }

  .zion-cemetery-stat strong {
    font-size: 1.65rem;
  }

  .zion-cemetery-story-card {
    padding: 30px 24px;
  }

  .zion-cemetery-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
  }

}
/* =========================================================
   CEMETERY CONTACT BUTTONS
   ========================================================= */

.zion-cemetery-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 30px;
}

.zion-cemetery-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  border-radius: 3px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease;
}

/* Contact Zion — primary burgundy button */

.zion-cemetery-actions .zion-btn-primary {
  background: var(--zion-burgundy);
  border: 2px solid var(--zion-burgundy);
  color: #fff !important;
}

.zion-cemetery-actions .zion-btn-primary:hover,
.zion-cemetery-actions .zion-btn-primary:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: #fff !important;
  transform: translateY(-1px);
}

/* Phone — secondary outlined button */

.zion-cemetery-actions .zion-cemetery-phone {
  background: #fff;
  border: 2px solid var(--zion-burgundy);
  color: var(--zion-burgundy) !important;
}

.zion-cemetery-actions .zion-cemetery-phone:hover,
.zion-cemetery-actions .zion-cemetery-phone:focus {
  background: var(--zion-burgundy);
  border-color: var(--zion-burgundy);
  color: #fff !important;
  text-decoration: none !important;
  transform: translateY(-1px);
}

@media (max-width: 600px) {

  .zion-cemetery-actions {
    align-items: stretch;
  }

  .zion-cemetery-actions a {
    width: 100%;
  }

}

/* =========================================================
   SITEWIDE FOOTER BACKGROUND FIX
   ========================================================= */

/*
   Cassiopeia can place the footer module inside a constrained grid-child.
   Rather than trying to make the child itself viewport-width, these
   backgrounds are painted beyond the constrained wrapper.
*/

.container-footer {
  margin: 0 !important;
  padding: 0 !important;
  background: var(--zion-burgundy) !important;
  background-image: none !important;
  color: #fff;
  overflow: visible !important;
}

.container-footer .grid-child {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible !important;
}

.container-footer .zion-site-footer,
.zion-site-footer {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  background: var(--zion-burgundy) !important;
  box-shadow: 0 0 0 100vmax var(--zion-burgundy);
  clip-path: inset(0 -100vmax);
}

.zion-footer-main {
  width: 100%;
  margin: 0;
  background: var(--zion-burgundy) !important;
  background-image: none !important;
}

.zion-footer-bottom {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 18px 24px;
  background: var(--zion-burgundy-dark) !important;
  background-image: none !important;
  box-shadow: 0 0 0 100vmax var(--zion-burgundy-dark);
  clip-path: inset(0 -100vmax);
}

.zion-footer-bottom-inner {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

/* =========================================================
   WORSHIP PAGE
   ========================================================= */

.zion-worship-page {
  width: 100%;
  overflow: hidden;
  background: #fff;
}

.zion-worship-page *,
.zion-worship-page *::before,
.zion-worship-page *::after {
  box-sizing: border-box;
}

.zion-worship-content {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}

.zion-worship-page h2,
.zion-worship-page h3 {
  font-family: Georgia, "Times New Roman", serif;
}

.zion-worship-page h2 {
  margin: 0 0 22px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2.2rem, 3.7vw, 3.25rem);
  line-height: 1.08;
  font-weight: 500;
}

.zion-worship-page p {
  line-height: 1.72;
}


/* HERO */

.zion-worship-hero {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  background: #231b1d;
}

.zion-worship-hero-image,
.zion-worship-hero-overlay {
  position: absolute;
  inset: 0;
}

.zion-worship-hero-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 72%;
}

.zion-worship-hero-overlay {
  z-index: 1;
  background:
    linear-gradient(
      90deg,
      rgba(34,20,24,.91) 0%,
      rgba(34,20,24,.78) 34%,
      rgba(34,20,24,.38) 61%,
      rgba(34,20,24,.08) 100%
    );
}

.zion-worship-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1180px;
  min-height: 560px;
  margin: 0 auto;
  padding: 74px 58px 80px;
  display: flex;
  align-items: center;
}

.zion-worship-hero-copy {
  max-width: 590px;
  color: #fff;
}

.zion-worship-hero .zion-eyebrow {
  margin-bottom: 14px;
  color: #f1d9a6;
}

.zion-worship-hero h1 {
  margin: 0 0 24px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 5.8vw, 5rem);
  line-height: .99;
  font-weight: 500;
}

.zion-worship-hero-copy > p:not(.zion-eyebrow) {
  margin: 0;
  max-width: 540px;
  color: rgba(255,255,255,.95);
  font-size: 1.1rem;
}

.zion-worship-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
}

.zion-worship-secondary-button {
  display: inline-block;
  padding: 14px 26px;
  border: 2px solid rgba(255,255,255,.88);
  border-radius: 3px;
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.zion-worship-secondary-button:hover,
.zion-worship-secondary-button:focus {
  background: #fff;
  color: var(--zion-burgundy-dark) !important;
  transform: translateY(-1px);
}


/* QUICK INFO */

.zion-worship-quick {
  background: #fff;
  box-shadow: 0 7px 22px rgba(0,0,0,.05);
}

.zion-worship-quick-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.zion-worship-quick-item {
  padding: 23px 20px 21px;
  text-align: center;
  border-right: 1px solid rgba(111,32,51,.13);
}

.zion-worship-quick-item:last-child {
  border-right: 0;
}

.zion-worship-quick-item span {
  display: block;
  margin-bottom: 4px;
  color: var(--zion-gold);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.zion-worship-quick-item strong {
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
}


/* COME AS YOU ARE */

.zion-worship-welcome {
  padding: 70px 0 76px;
  background: #fff;
}

.zion-worship-welcome-copy {
  max-width: 850px;
  margin: 0 auto 36px;
}

.zion-worship-welcome-copy p:not(.zion-eyebrow) {
  margin: 0 0 17px;
  color: var(--zion-muted);
  font-size: 1.02rem;
}

.zion-worship-welcome-copy p:last-child {
  margin-bottom: 0;
}

.zion-worship-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.zion-worship-card {
  padding: 27px 25px 25px;
  background: var(--zion-ivory);
  border-top: 4px solid var(--zion-burgundy);
}

.zion-worship-card h3 {
  margin: 0 0 10px;
  color: var(--zion-burgundy-dark);
  font-size: 1.3rem;
}

.zion-worship-card p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .96rem;
}


/* FIRST SUNDAY */

.zion-worship-first-sunday {
  padding: 72px 0;
  background: var(--zion-ivory);
}

.zion-worship-first-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(430px, 1.05fr);
  gap: 62px;
  align-items: start;
}

.zion-worship-first-copy {
  max-width: 560px;
}

.zion-worship-first-copy p:not(.zion-eyebrow) {
  margin: 0 0 17px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-worship-first-copy strong {
  color: var(--zion-charcoal);
}

.zion-worship-first-guide {
  padding: 30px 32px 26px;
  background: #fff;
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 12px 34px rgba(44,35,31,.09);
}

.zion-worship-first-guide h3 {
  margin: 0 0 18px;
  color: var(--zion-burgundy);
  font-size: 1.5rem;
}

.zion-worship-guide-row {
  display: grid;
  grid-template-columns: 155px minmax(0, 1fr);
  gap: 18px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(111,32,51,.12);
}

.zion-worship-guide-row:last-child {
  border-bottom: 0;
}

.zion-worship-guide-row strong {
  color: var(--zion-burgundy);
}

.zion-worship-guide-row span {
  color: var(--zion-charcoal);
  line-height: 1.45;
}


/* CHILDREN + COMMUNION */

.zion-worship-family-table {
  padding: 72px 0 76px;
  background: #fff;
}

.zion-worship-family-table-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: stretch;
}

.zion-worship-family-card,
.zion-worship-communion-card {
  background: var(--zion-ivory);
  border: 1px solid rgba(0,0,0,.06);
}

.zion-worship-family-card {
  padding: 34px 34px 30px;
}

.zion-worship-family-card p:not(.zion-eyebrow),
.zion-worship-communion-copy p:not(.zion-eyebrow) {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: .99rem;
}

.zion-worship-note {
  margin-top: 25px;
  padding: 20px 21px;
  background: #fff;
  border-left: 4px solid var(--zion-gold);
  color: var(--zion-charcoal);
  line-height: 1.6;
}

.zion-worship-communion-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.zion-worship-communion-image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.zion-worship-communion-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.zion-worship-communion-copy {
  padding: 30px 32px 28px;
}

.zion-worship-communion-lead {
  color: var(--zion-charcoal) !important;
  font-size: 1.08rem !important;
}


/* WORSHIP ONLINE */

.zion-worship-online {
  padding: 70px 0 72px;
  background: var(--zion-ivory);
}

.zion-worship-online-heading {
  max-width: 790px;
  margin: 0 auto 34px;
  text-align: center;
}

.zion-worship-online-heading p:not(.zion-eyebrow) {
  margin: 0;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-worship-online-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.zion-worship-online-card {
  display: flex;
  flex-direction: column;
  min-height: 135px;
  padding: 24px 24px 22px;
  background: #fff;
  border-top: 4px solid var(--zion-burgundy);
  box-shadow: 0 8px 22px rgba(44,35,31,.05);
  text-decoration: none !important;
  transition: transform .2s ease, box-shadow .2s ease;
}

.zion-worship-online-card:hover,
.zion-worship-online-card:focus {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(44,35,31,.1);
}

.zion-worship-online-card strong {
  margin-bottom: 8px;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.28rem;
}

.zion-worship-online-card span {
  color: var(--zion-muted);
  line-height: 1.55;
}

.zion-worship-previous-bulletins {
  margin: 22px 0 0 !important;
  text-align: center;
}

.zion-worship-previous-bulletins a {
  color: var(--zion-burgundy);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid var(--zion-gold);
  padding-bottom: 3px;
}


/* CLOSING */

.zion-worship-closing {
  padding: 58px 24px 62px;
  background: #fff;
  text-align: center;
}

.zion-worship-closing-inner {
  max-width: 720px;
  margin: 0 auto;
}

.zion-worship-closing p:not(.zion-eyebrow):not(.zion-worship-closing-time) {
  max-width: 650px;
  margin: 0 auto 24px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-worship-closing .zion-primary-button {
  margin-top: 2px;
}

.zion-worship-closing-time {
  margin: 24px 0 0;
  color: var(--zion-burgundy);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}


/* RESPONSIVE */

@media (max-width: 900px) {

  .zion-worship-hero-inner {
    padding-left: 36px;
    padding-right: 36px;
  }

  .zion-worship-first-grid,
  .zion-worship-family-table-grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .zion-worship-first-copy {
    max-width: 720px;
  }

  .zion-worship-card-grid {
    grid-template-columns: 1fr;
  }

  .zion-worship-online-grid {
    grid-template-columns: 1fr;
    max-width: 720px;
    margin: 0 auto;
  }

}

@media (max-width: 600px) {

  .zion-worship-content {
    padding-left: 20px;
    padding-right: 20px;
  }

  .zion-worship-hero {
    min-height: 610px;
  }

  .zion-worship-hero-image img {
    object-position: 58% 70%;
  }

  .zion-worship-hero-overlay {
    background:
      linear-gradient(
        0deg,
        rgba(34,20,24,.97) 0%,
        rgba(34,20,24,.90) 50%,
        rgba(34,20,24,.44) 78%,
        rgba(34,20,24,.10) 100%
      );
  }

  .zion-worship-hero-inner {
    min-height: 610px;
    align-items: flex-end;
    padding: 165px 22px 42px;
  }

  .zion-worship-hero h1 {
    font-size: 2.8rem;
  }

  .zion-worship-hero-copy > p:not(.zion-eyebrow) {
    font-size: 1rem;
  }

  .zion-worship-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .zion-worship-hero-actions a {
    text-align: center;
  }

  .zion-worship-quick-inner {
    grid-template-columns: 1fr;
  }

  .zion-worship-quick-item {
    padding: 17px 20px;
    border-right: 0;
    border-bottom: 1px solid rgba(111,32,51,.12);
  }

  .zion-worship-quick-item:last-child {
    border-bottom: 0;
  }

  .zion-worship-welcome,
  .zion-worship-first-sunday,
  .zion-worship-family-table,
  .zion-worship-online {
    padding-top: 56px;
    padding-bottom: 58px;
  }

  .zion-worship-page h2 {
    font-size: 2.15rem;
  }

  .zion-worship-first-guide {
    padding: 27px 23px 22px;
  }

  .zion-worship-guide-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .zion-worship-family-card,
  .zion-worship-communion-copy {
    padding: 27px 23px 24px;
  }

  .zion-worship-closing {
    padding: 52px 20px 56px;
  }

}

/* =========================================================
   MINISTRIES LANDING PAGE
   ========================================================= */

.zl-ministry-hero,
.zl-ministry-intro,
.zl-ministry-list,
.zl-ministry-invitation {
  box-sizing: border-box;
}

.zl-ministry-hero *,
.zl-ministry-intro *,
.zl-ministry-list *,
.zl-ministry-invitation * {
  box-sizing: border-box;
}

.zl-wrap {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}


/* ---------------------------------------------------------
   HERO
   --------------------------------------------------------- */

.zl-ministry-hero {
  position: relative;
  min-height: 540px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: #2a211e;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

.zl-ministry-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      90deg,
      rgba(34, 20, 24, .91) 0%,
      rgba(34, 20, 24, .78) 34%,
      rgba(34, 20, 24, .38) 62%,
      rgba(34, 20, 24, .08) 100%
    );
}

.zl-ministry-hero-content {
  position: relative;
  z-index: 2;
  padding-top: 78px;
  padding-bottom: 84px;
  color: var(--zion-white);
}

.zl-ministry-hero-content > * {
  max-width: 610px;
}

.zl-ministry-eyebrow,
.zl-ministry-section-label {
  margin: 0 0 14px;
  color: var(--zion-gold);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.zl-ministry-hero h1 {
  margin: 0 0 24px;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 5.8vw, 5rem);
  font-weight: 500;
  line-height: 1;
}

.zl-ministry-hero-intro {
  margin: 0;
  color: rgba(255,255,255,.95);
  font-size: 1.12rem;
  line-height: 1.72;
}


/* ---------------------------------------------------------
   INTRODUCTION
   --------------------------------------------------------- */

.zl-ministry-intro {
  padding: 78px 0 82px;
  background: var(--zion-white);
}

.zl-ministry-intro-inner {
  max-width: 900px;
  text-align: center;
}

.zl-ministry-intro h2,
.zl-ministry-heading h2,
.zl-ministry-invitation h2 {
  margin: 0 0 22px;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 3.8vw, 3.35rem);
  font-weight: 500;
  line-height: 1.08;
}

.zl-ministry-intro p:not(.zl-ministry-section-label) {
  max-width: 790px;
  margin: 0 auto 17px;
  color: var(--zion-muted);
  font-size: 1.04rem;
  line-height: 1.78;
}

.zl-ministry-intro p:last-child {
  margin-bottom: 0;
}


/* ---------------------------------------------------------
   MINISTRY CARDS
   --------------------------------------------------------- */

.zl-ministry-list {
  padding: 80px 0 88px;
  background: var(--zion-ivory);
}

.zl-ministry-heading {
  max-width: 790px;
  margin: 0 auto 44px;
  text-align: center;
}

.zl-ministry-heading h2 {
  margin-bottom: 0;
}

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

.zl-ministry-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: var(--zion-white);
  border-top: 4px solid var(--zion-burgundy);
  box-shadow: 0 12px 34px rgba(44, 35, 31, .08);
}

.zl-ministry-card-image {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #ddd6ca;
}

.zl-ministry-card-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: transform .3s ease;
}

.zl-ministry-card-image:hover img,
.zl-ministry-card-image:focus img {
  transform: scale(1.025);
}

.zl-ministry-card-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 30px 30px 31px;
}

.zl-ministry-card h3 {
  margin: 0 0 14px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1.25;
}

.zl-ministry-card h3 a {
  color: var(--zion-burgundy-dark);
  text-decoration: none;
}

.zl-ministry-card h3 a:hover,
.zl-ministry-card h3 a:focus {
  color: var(--zion-burgundy);
}

.zl-ministry-card p {
  flex: 1;
  margin: 0 0 24px;
  color: var(--zion-muted);
  font-size: .99rem;
  line-height: 1.72;
}

.zl-ministry-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  color: var(--zion-burgundy);
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
}

.zl-ministry-link span {
  display: inline-block;
  margin-left: .4rem;
  transition: transform .2s ease;
}

.zl-ministry-link:hover,
.zl-ministry-link:focus {
  color: var(--zion-burgundy-dark);
}

.zl-ministry-link:hover span,
.zl-ministry-link:focus span {
  transform: translateX(4px);
}


/* ---------------------------------------------------------
   CLOSING INVITATION
   --------------------------------------------------------- */

.zl-ministry-invitation {
  padding: 72px 0 76px;
  background: var(--zion-white);
}

.zl-ministry-invitation-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 60px;
  align-items: center;
}

.zl-ministry-invitation-inner > div:first-child {
  max-width: 760px;
}

.zl-ministry-invitation h2 {
  margin-bottom: 16px;
}

.zl-ministry-invitation p:not(.zl-ministry-section-label) {
  margin: 0;
  color: var(--zion-muted);
  font-size: 1.03rem;
  line-height: 1.75;
}

.zl-ministry-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 13px 27px;
  border: 2px solid var(--zion-burgundy);
  border-radius: 3px;
  background: var(--zion-burgundy);
  color: var(--zion-white) !important;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
  white-space: nowrap;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.zl-ministry-button:hover,
.zl-ministry-button:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: var(--zion-white) !important;
  transform: translateY(-1px);
}


/* ---------------------------------------------------------
   MINISTRIES RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {

  .zl-ministry-hero {
    min-height: 500px;
  }

  .zl-ministry-intro {
    padding-top: 68px;
    padding-bottom: 70px;
  }

  .zl-ministry-list {
    padding-top: 68px;
    padding-bottom: 74px;
  }

  .zl-ministry-grid {
    gap: 24px;
  }

  .zl-ministry-invitation-inner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .zl-ministry-invitation-action {
    justify-self: start;
  }

}

@media (max-width: 700px) {

  .zl-ministry-grid {
    grid-template-columns: 1fr;
  }

  .zl-ministry-card {
    max-width: 720px;
  }

}

@media (max-width: 600px) {

  .zl-wrap {
    padding-left: 20px;
    padding-right: 20px;
  }

  .zl-ministry-hero {
    min-height: 570px;
    align-items: flex-end;
    background-position: center center;
  }

  .zl-ministry-hero-overlay {
    background:
      linear-gradient(
        0deg,
        rgba(34, 20, 24, .97) 0%,
        rgba(34, 20, 24, .88) 49%,
        rgba(34, 20, 24, .42) 78%,
        rgba(34, 20, 24, .10) 100%
      );
  }

  .zl-ministry-hero-content {
    padding-top: 180px;
    padding-bottom: 46px;
  }

  .zl-ministry-hero h1 {
    font-size: 2.8rem;
  }

  .zl-ministry-hero-intro {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zl-ministry-intro {
    padding-top: 58px;
    padding-bottom: 60px;
  }

  .zl-ministry-list {
    padding-top: 58px;
    padding-bottom: 64px;
  }

  .zl-ministry-heading {
    margin-bottom: 34px;
  }

  .zl-ministry-intro h2,
  .zl-ministry-heading h2,
  .zl-ministry-invitation h2 {
    font-size: 2.15rem;
  }

  .zl-ministry-card-image {
    aspect-ratio: 4 / 3;
  }

  .zl-ministry-card-content {
    padding: 26px 23px 27px;
  }

  .zl-ministry-card h3 {
    font-size: 1.4rem;
  }

  .zl-ministry-invitation {
    padding-top: 58px;
    padding-bottom: 62px;
  }

  .zl-ministry-button {
    width: 100%;
    white-space: normal;
    text-align: center;
  }

}

/* =========================================================
   CHRISTIAN EDUCATION
   Individual Ministry Page
   ========================================================= */

.zion-ministry-page {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

.zion-ministry-page *,
.zion-ministry-page *::before,
.zion-ministry-page *::after {
  box-sizing: border-box;
}

.zion-wrap {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}

.zion-ministry-page h2,
.zion-ministry-page h3 {
  font-family: Georgia, "Times New Roman", serif;
}

.zion-ministry-page h2 {
  margin: 0 0 22px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2.2rem, 3.8vw, 3.35rem);
  font-weight: 500;
  line-height: 1.08;
}

.zion-ministry-page p {
  line-height: 1.75;
}

/* HERO */

.zion-christian-education .zion-ministry-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(
      90deg,
      rgba(34,20,24,.94) 0%,
      rgba(34,20,24,.82) 36%,
      rgba(34,20,24,.42) 64%,
      rgba(34,20,24,.10) 100%
    ),
    url("/images/hero/ce-hero.webp")
      center center / cover no-repeat;
  color: var(--zion-white);
}

.zion-christian-education .zion-ministry-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 82px;
  padding-bottom: 88px;
}

.zion-christian-education .zion-ministry-hero-inner > * {
  max-width: 650px;
}

.zion-christian-education .zion-ministry-hero .zion-eyebrow {
  margin-bottom: 14px;
  color: #f1d9a6;
}

.zion-christian-education .zion-ministry-hero h1 {
  margin: 0 0 24px;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 5.8vw, 5rem);
  font-weight: 500;
  line-height: 1;
}

.zion-christian-education .zion-ministry-hero-intro {
  margin: 0;
  max-width: 630px;
  color: rgba(255,255,255,.95);
  font-size: 1.12rem;
  line-height: 1.72;
}

/* GENERAL SECTIONS */

.zion-christian-education .zion-section {
  padding: 80px 0 86px;
  background: var(--zion-white);
}

.zion-christian-education .zion-section-soft {
  background: var(--zion-ivory);
}

.zion-christian-education .zion-section-heading {
  max-width: 820px;
  margin: 0 auto 44px;
  text-align: center;
}

.zion-christian-education .zion-section-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-christian-education .zion-section-heading h2 {
  margin-bottom: 18px;
}

.zion-christian-education .zion-section-heading > p:last-child {
  max-width: 780px;
  margin: 0 auto;
  color: var(--zion-muted);
  font-size: 1.04rem;
  line-height: 1.78;
}

/* LEARNING CARDS */

.zion-ministry-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.zion-ministry-feature {
  position: relative;
  padding: 32px 30px 30px;
  background: var(--zion-ivory);
  border-top: 4px solid var(--zion-burgundy);
  box-shadow: 0 10px 28px rgba(44,35,31,.06);
}

.zion-section-soft .zion-ministry-feature {
  background: var(--zion-white);
}

.zion-ministry-feature h3 {
  margin: 0 0 14px;
  color: var(--zion-burgundy-dark);
  font-size: 1.42rem;
  line-height: 1.28;
}

.zion-ministry-feature p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
}

/* STUDY CARDS */

.zion-ministry-story-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.zion-ministry-story-card {
  position: relative;
  display: flex;
  min-width: 0;
  background: var(--zion-white);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 36px rgba(44,35,31,.09);
}

.zion-ministry-story-content {
  padding: 36px 36px 34px;
}

.zion-ministry-story-content .zion-eyebrow {
  margin-bottom: 12px;
}

.zion-ministry-story-content h3 {
  margin: 0 0 18px;
  color: var(--zion-burgundy);
  font-size: 1.65rem;
  line-height: 1.25;
}

.zion-ministry-story-content p:not(.zion-eyebrow) {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: .99rem;
}

.zion-ministry-story-content p:last-child {
  margin-bottom: 0;
}

/* RESOURCE PROMPT */

.zion-ministry-resource-link {
  max-width: 900px;
  margin: 34px auto 0;
  padding: 28px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 34px;
  background: var(--zion-burgundy-dark);
  box-shadow: 0 10px 28px rgba(44,35,31,.10);
}

.zion-ministry-resource-link p {
  margin: 0;
  max-width: 610px;
  color: rgba(255,255,255,.90);
  font-size: 1rem;
}

.zion-ministry-resource-link .zion-btn {
  flex: 0 0 auto;
}

/* SPLIT CONTENT / CALLOUTS */

.zion-ministry-split {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  gap: 72px;
  align-items: center;
}

.zion-ministry-split-content {
  max-width: 680px;
}

.zion-ministry-split-content .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-ministry-split-content h2 {
  margin-bottom: 20px;
}

.zion-ministry-split-content p:not(.zion-eyebrow) {
  margin: 0 0 17px;
  color: var(--zion-muted);
  font-size: 1.02rem;
}

.zion-ministry-split-content p:last-of-type {
  margin-bottom: 0;
}

.zion-ministry-split-content .zion-btn {
  margin-top: 14px;
}

.zion-ministry-callout {
  position: relative;
  padding: 36px 38px 34px;
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44,35,31,.09);
}

.zion-section-soft .zion-ministry-callout {
  background: var(--zion-white);
}

.zion-ministry-callout::after {
  content: "";
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  border-top: 1px solid rgba(185,151,91,.55);
  border-right: 1px solid rgba(185,151,91,.55);
}

.zion-ministry-callout .zion-eyebrow {
  margin-bottom: 13px;
  padding-right: 48px;
}

.zion-ministry-callout h3 {
  margin: 0 0 15px;
  padding-right: 42px;
  color: var(--zion-burgundy);
  font-size: 1.5rem;
  line-height: 1.28;
}

.zion-ministry-callout p:not(.zion-eyebrow) {
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
}

/* BUTTONS */

.zion-ministry-page .zion-btn,
.zion-io-invitation .zion-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  border: 2px solid transparent;
  border-radius: 3px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease;
}

.zion-ministry-page .zion-btn-primary {
  background: var(--zion-burgundy);
  border-color: var(--zion-burgundy);
  color: var(--zion-white) !important;
}

.zion-ministry-page .zion-btn-primary:hover,
.zion-ministry-page .zion-btn-primary:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: var(--zion-white) !important;
  transform: translateY(-1px);
}

.zion-ministry-resource-link .zion-btn-primary {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy-dark) !important;
}

.zion-ministry-resource-link .zion-btn-primary:hover,
.zion-ministry-resource-link .zion-btn-primary:focus {
  background: var(--zion-ivory);
  border-color: var(--zion-ivory);
  color: var(--zion-burgundy-dark) !important;
}

/* CLOSING INVITATION */

.zion-christian-education .zion-ministry-invitation {
  padding: 74px 0 78px;
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zion-christian-education .zion-ministry-invitation-inner {
  display: block;
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

.zion-christian-education .zion-ministry-invitation .zion-eyebrow {
  margin-bottom: 13px;
  color: #efd7a5;
}

.zion-christian-education .zion-ministry-invitation h2 {
  margin: 0 0 18px;
  color: var(--zion-white);
}

.zion-christian-education .zion-ministry-invitation p:not(.zion-eyebrow) {
  max-width: 730px;
  margin: 0 auto;
  color: rgba(255,255,255,.88);
  font-size: 1.04rem;
  line-height: 1.75;
}

.zion-ministry-invitation-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.zion-christian-education .zion-ministry-invitation .zion-btn-primary {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy) !important;
}

.zion-christian-education .zion-ministry-invitation .zion-btn-primary:hover,
.zion-christian-education .zion-ministry-invitation .zion-btn-primary:focus {
  background: var(--zion-ivory);
  border-color: var(--zion-ivory);
  color: var(--zion-burgundy-dark) !important;
}

.zion-ministry-page .zion-btn-light {
  background: transparent;
  border-color: rgba(255,255,255,.82);
  color: var(--zion-white) !important;
}

.zion-ministry-page .zion-btn-light:hover,
.zion-ministry-page .zion-btn-light:focus {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy-dark) !important;
  transform: translateY(-1px);
}

/* RESPONSIVE */

@media (max-width: 900px) {

  .zion-ministry-feature-grid,
  .zion-ministry-story-grid {
    grid-template-columns: 1fr;
  }

  .zion-ministry-story-card {
    max-width: 760px;
  }

  .zion-ministry-split {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .zion-ministry-split-content,
  .zion-ministry-callout {
    max-width: 760px;
  }

  .zion-ministry-resource-link {
    align-items: flex-start;
    flex-direction: column;
    gap: 22px;
  }
}

@media (max-width: 600px) {

  .zion-wrap {
    padding-left: 20px;
    padding-right: 20px;
  }

  .zion-christian-education .zion-ministry-hero {
    min-height: 570px;
    align-items: flex-end;
    background:
      linear-gradient(
        0deg,
        rgba(34,20,24,.97) 0%,
        rgba(34,20,24,.89) 49%,
        rgba(34,20,24,.44) 78%,
        rgba(34,20,24,.10) 100%
      ),
      url("/images/ministries/christian-education-hero.webp")
        center center / cover no-repeat;
  }

  .zion-christian-education .zion-ministry-hero-inner {
    padding-top: 180px;
    padding-bottom: 48px;
  }

  .zion-christian-education .zion-ministry-hero h1 {
    font-size: 2.8rem;
  }

  .zion-christian-education .zion-ministry-hero-intro {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zion-christian-education .zion-section {
    padding-top: 58px;
    padding-bottom: 62px;
  }

  .zion-christian-education .zion-section-heading {
    margin-bottom: 34px;
  }

  .zion-ministry-page h2 {
    font-size: 2.15rem;
  }

  .zion-ministry-feature {
    padding: 28px 24px 26px;
  }

  .zion-ministry-story-content {
    padding: 29px 24px 27px;
  }

  .zion-ministry-resource-link {
    margin-top: 28px;
    padding: 26px 24px;
  }

  .zion-ministry-resource-link .zion-btn {
    width: 100%;
  }

  .zion-ministry-callout {
    padding: 30px 24px 28px;
  }

  .zion-ministry-callout::after {
    top: 17px;
    right: 17px;
    width: 34px;
    height: 34px;
  }

  .zion-christian-education .zion-ministry-invitation {
    padding: 60px 0 64px;
  }

  .zion-ministry-invitation-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .zion-ministry-invitation-actions .zion-btn {
    width: 100%;
  }
}

/* =========================================================
   INREACH & OUTREACH
   ========================================================= */

.zion-io-page {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

.zion-io-page *,
.zion-io-page *::before,
.zion-io-page *::after {
  box-sizing: border-box;
}

.zion-io-page h2,
.zion-io-page h3 {
  font-family: Georgia, "Times New Roman", serif;
}

.zion-io-page h2 {
  margin: 0 0 20px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2.2rem, 3.8vw, 3.35rem);
  font-weight: 500;
  line-height: 1.08;
}

.zion-io-page p {
  line-height: 1.75;
}

/* HERO */

.zion-io-hero {
  position: relative;
  min-height: 540px;
  display: flex;
  align-items: center;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--zion-white);
}

.zion-io-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(34,20,24,.94) 0%,
    rgba(34,20,24,.82) 38%,
    rgba(34,20,24,.42) 67%,
    rgba(34,20,24,.12) 100%
  );
}

.zion-io-hero-content {
  position: relative;
  z-index: 2;
  padding-top: 82px;
  padding-bottom: 88px;
}

.zion-io-hero-content > * {
  max-width: 700px;
}

.zion-io-hero .zion-eyebrow {
  margin-bottom: 14px;
  color: #f1d9a6;
}

.zion-io-hero h1 {
  margin: 0 0 24px;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 5.5vw, 4.8rem);
  font-weight: 500;
  line-height: 1.03;
}

.zion-io-hero-intro {
  margin: 0;
  max-width: 690px;
  color: rgba(255,255,255,.95);
  font-size: 1.1rem;
  line-height: 1.72;
}

/* SECTIONS */

.zion-io-page .zion-section {
  padding: 80px 0 86px;
}

.zion-io-page .zion-section-soft {
  background: var(--zion-ivory);
}

.zion-io-page .zion-section-heading {
  max-width: 850px;
  margin: 0 auto 44px;
  text-align: center;
}

.zion-io-page .zion-section-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-io-page .zion-section-heading h2 {
  margin-bottom: 18px;
}

.zion-io-page .zion-section-heading > p {
  max-width: 800px;
  margin: 0 auto 14px;
  color: var(--zion-muted);
  font-size: 1.03rem;
}

.zion-io-page .zion-section-heading > p:last-child {
  margin-bottom: 0;
}

/* PRACTICAL NEEDS */

.zion-io-needs-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.zion-io-need-card {
  min-width: 0;
  padding: 30px 26px 28px;
  background: var(--zion-white);
  border-top: 4px solid var(--zion-burgundy);
  box-shadow: 0 10px 28px rgba(44,35,31,.07);
}

.zion-io-card-icon {
  margin-bottom: 17px;
  font-size: 2rem;
  line-height: 1;
}

.zion-io-need-card h3 {
  margin: 0 0 13px;
  color: var(--zion-burgundy-dark);
  font-size: 1.35rem;
  line-height: 1.25;
}

.zion-io-need-card p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .97rem;
}

.zion-io-need-card-wide {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  gap: 24px;
  max-width: 820px;
  margin: 8px auto 0;
  padding: 28px 32px;
}

.zion-io-need-card-wide .zion-io-card-icon {
  flex: 0 0 auto;
  margin: 2px 0 0;
}

/* FEATURE SECTIONS */

.zion-io-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 72px;
  align-items: center;
}

.zion-io-feature-reverse {
  grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr);
}

.zion-io-feature-copy {
  max-width: 680px;
}

.zion-io-feature-copy .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-io-feature-copy h2 {
  margin-bottom: 18px;
}

.zion-io-feature-copy p:not(.zion-eyebrow) {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-io-feature-copy p:last-child {
  margin-bottom: 0;
}

.zion-io-feature-lead {
  color: var(--zion-charcoal) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.3rem !important;
  line-height: 1.55 !important;
}

.zion-io-feature-card {
  position: relative;
  padding: 38px 38px 36px;
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44,35,31,.09);
}

.zion-section-soft .zion-io-feature-card {
  background: var(--zion-white);
}

.zion-io-feature-card::after {
  content: "";
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  border-top: 1px solid rgba(185,151,91,.55);
  border-right: 1px solid rgba(185,151,91,.55);
}

.zion-io-feature-card .zion-eyebrow {
  margin-bottom: 13px;
  padding-right: 50px;
}

.zion-io-feature-card h3 {
  margin: 0 0 16px;
  padding-right: 42px;
  color: var(--zion-burgundy);
  font-size: 1.55rem;
  line-height: 1.25;
}

.zion-io-feature-card p:not(.zion-eyebrow) {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: .98rem;
}

.zion-io-feature-card p:last-child {
  margin-bottom: 0;
}

.zion-io-feature-note {
  padding-top: 16px;
  border-top: 1px solid rgba(111,32,51,.14);
  font-size: .9rem !important;
  font-weight: 700;
}

.zion-io-trivia-card {
  background: var(--zion-white);
}

/* YEAR-ROUND RHYTHM */

.zion-section-heading-centered {
  text-align: center;
}

.zion-io-rhythm-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.zion-io-rhythm-item {
  padding: 31px 30px 29px;
  background: var(--zion-ivory);
  border-bottom: 4px solid var(--zion-gold);
}

.zion-io-rhythm-label {
  display: inline-block;
  margin-bottom: 12px;
  color: var(--zion-burgundy);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.zion-io-rhythm-item h3 {
  margin: 0 0 12px;
  color: var(--zion-burgundy-dark);
  font-size: 1.4rem;
}

.zion-io-rhythm-item p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .97rem;
}

/* INVITATION */

.zion-io-invitation {
  padding: 74px 0 78px;
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zion-io-invitation-inner {
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

.zion-io-invitation .zion-eyebrow {
  margin-bottom: 13px;
  color: #efd7a5;
}

.zion-io-invitation h2 {
  margin: 0 0 18px;
  color: var(--zion-white);
}

.zion-io-invitation p:not(.zion-eyebrow) {
  max-width: 740px;
  margin: 0 auto;
  color: rgba(255,255,255,.9);
  font-size: 1.04rem;
}

.zion-io-invitation-actions {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.zion-io-invitation .zion-btn-primary {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy) !important;
}

.zion-io-invitation .zion-btn-primary:hover,
.zion-io-invitation .zion-btn-primary:focus {
  background: var(--zion-ivory);
  border-color: var(--zion-ivory);
  color: var(--zion-burgundy-dark) !important;
}

/* RESPONSIVE */

@media (max-width: 1000px) {
  .zion-io-needs-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .zion-io-feature,
  .zion-io-feature-reverse {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .zion-io-feature-reverse .zion-io-feature-card {
    order: 2;
  }

  .zion-io-feature-reverse .zion-io-feature-copy {
    order: 1;
  }
}

@media (max-width: 760px) {
  .zion-io-rhythm-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .zion-io-hero {
    min-height: 600px;
    align-items: flex-end;
    background-position: center;
  }

  .zion-io-hero-overlay {
    background: linear-gradient(
      0deg,
      rgba(34,20,24,.97) 0%,
      rgba(34,20,24,.9) 52%,
      rgba(34,20,24,.45) 80%,
      rgba(34,20,24,.12) 100%
    );
  }

  .zion-io-hero-content {
    padding-top: 180px;
    padding-bottom: 48px;
  }

  .zion-io-hero h1 {
    font-size: 2.7rem;
  }

  .zion-io-hero-intro {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zion-io-page .zion-section {
    padding-top: 58px;
    padding-bottom: 62px;
  }

  .zion-io-page .zion-section-heading {
    margin-bottom: 34px;
  }

  .zion-io-page h2 {
    font-size: 2.15rem;
  }

  .zion-io-needs-grid {
    grid-template-columns: 1fr;
  }

  .zion-io-need-card {
    padding: 27px 24px 25px;
  }

  .zion-io-need-card-wide {
    grid-column: auto;
    display: block;
    margin-top: 0;
    padding: 27px 24px 25px;
  }

  .zion-io-need-card-wide .zion-io-card-icon {
    margin-bottom: 17px;
  }

  .zion-io-feature-card {
    padding: 30px 24px 28px;
  }

  .zion-io-feature-card::after {
    top: 17px;
    right: 17px;
    width: 34px;
    height: 34px;
  }

  .zion-io-rhythm-item {
    padding: 27px 24px 25px;
  }

  .zion-io-invitation {
    padding: 60px 0 64px;
  }

  .zion-io-invitation-actions .zion-btn {
    width: 100%;
  }
}

/* =========================================================
   WORSHIP & MUSIC
   ========================================================= */

.zion-wm-page {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

.zion-wm-page *,
.zion-wm-page *::before,
.zion-wm-page *::after {
  box-sizing: border-box;
}

.zion-wm-page h2,
.zion-wm-page h3 {
  font-family: Georgia, "Times New Roman", serif;
}

.zion-wm-page h2 {
  margin: 0 0 20px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2.2rem, 3.8vw, 3.35rem);
  font-weight: 500;
  line-height: 1.08;
}

.zion-wm-page p {
  line-height: 1.75;
}

/* HERO */

.zion-wm-hero {
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(
      90deg,
      rgba(34,20,24,.95) 0%,
      rgba(34,20,24,.86) 42%,
      rgba(79,23,37,.78) 72%,
      rgba(111,32,51,.68) 100%
    );
  color: var(--zion-white);
}

.zion-wm-hero::after {
  content: "♪";
  position: absolute;
  right: 8%;
  top: 50%;
  transform: translateY(-52%);
  color: rgba(255,255,255,.08);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(15rem, 30vw, 28rem);
  line-height: 1;
  pointer-events: none;
}

.zion-wm-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 84px;
  padding-bottom: 88px;
}

.zion-wm-hero-inner > * {
  max-width: 720px;
}

.zion-wm-hero .zion-eyebrow {
  margin-bottom: 14px;
  color: #f1d9a6;
}

.zion-wm-hero h1 {
  margin: 0 0 24px;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 5.5vw, 4.8rem);
  font-weight: 500;
  line-height: 1.03;
}

.zion-wm-hero-intro {
  margin: 0;
  max-width: 680px;
  color: rgba(255,255,255,.94);
  font-size: 1.1rem;
  line-height: 1.72;
}

/* GENERAL SECTIONS */

.zion-wm-page .zion-section {
  padding: 80px 0 86px;
}

.zion-wm-page .zion-section-soft {
  background: var(--zion-ivory);
}

.zion-wm-page .zion-section-heading {
  max-width: 850px;
  margin: 0 auto 44px;
  text-align: center;
}

.zion-wm-page .zion-section-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-wm-page .zion-section-heading h2 {
  margin-bottom: 18px;
}

.zion-wm-page .zion-section-heading > p:last-child {
  max-width: 790px;
  margin: 0 auto;
  color: var(--zion-muted);
  font-size: 1.03rem;
}

/* INTRO */

.zion-wm-intro-grid {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  gap: 76px;
  align-items: start;
}

.zion-wm-intro-heading .zion-eyebrow,
.zion-wm-intro-copy .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-wm-intro-heading h2 {
  margin-bottom: 0;
}

.zion-wm-intro-copy {
  max-width: 700px;
}

.zion-wm-intro-copy p {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-wm-intro-copy p:last-child {
  margin-bottom: 0;
}

.zion-wm-lead {
  color: var(--zion-charcoal) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.28rem !important;
  line-height: 1.55 !important;
}

/* SERVICE CARDS */

.zion-wm-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.zion-wm-service-card {
  min-width: 0;
  padding: 32px 30px 30px;
  background: var(--zion-white);
  border-top: 4px solid var(--zion-burgundy);
  box-shadow: 0 10px 28px rgba(44,35,31,.07);
}

.zion-wm-card-icon {
  width: 38px;
  height: 38px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--zion-gold);
  font-size: 1.5rem;
}

.zion-wm-service-card h3 {
  margin: 0 0 14px;
  color: var(--zion-burgundy-dark);
  font-size: 1.4rem;
  line-height: 1.25;
}

.zion-wm-service-card p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
}

/* MUSIC */

.zion-wm-music-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 72px;
  align-items: center;
}

.zion-wm-music-copy {
  max-width: 690px;
}

.zion-wm-music-copy .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-wm-music-copy p:not(.zion-eyebrow) {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-wm-music-copy p:last-child {
  margin-bottom: 0;
}

.zion-wm-music-feature {
  position: relative;
  padding: 38px 38px 36px;
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44,35,31,.09);
}

.zion-wm-music-feature::after {
  content: "♪";
  position: absolute;
  right: 24px;
  bottom: 10px;
  color: rgba(111,32,51,.08);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 6.5rem;
  line-height: 1;
}

.zion-wm-music-feature .zion-eyebrow {
  position: relative;
  z-index: 1;
  margin-bottom: 13px;
}

.zion-wm-music-feature h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 15px;
  color: var(--zion-burgundy);
  font-size: 1.55rem;
  line-height: 1.28;
}

.zion-wm-music-feature p:not(.zion-eyebrow) {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
}

/* CHOIR */

.zion-wm-choir-grid {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  gap: 76px;
  align-items: start;
}

.zion-wm-choir-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-wm-choir-heading h2 {
  margin-bottom: 0;
}

.zion-wm-choir-copy {
  max-width: 700px;
}

.zion-wm-choir-copy p {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-wm-choir-copy p:last-child {
  margin-bottom: 0;
}

/* SPECIAL MUSIC */

.zion-wm-special-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  gap: 70px;
  align-items: center;
}

.zion-wm-special-copy {
  max-width: 680px;
}

.zion-wm-special-copy .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-wm-special-copy p:not(.zion-eyebrow) {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-wm-special-copy p:last-child {
  margin-bottom: 0;
}

.zion-wm-special-note {
  position: relative;
  padding: 34px 34px 32px;
  background: var(--zion-burgundy-dark);
  color: var(--zion-white);
  box-shadow: 0 14px 38px rgba(44,35,31,.10);
}

.zion-wm-special-mark {
  display: block;
  margin-bottom: 12px;
  color: #efd7a5;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 3.5rem;
  line-height: 1;
}

.zion-wm-special-note p {
  margin: 0;
  color: rgba(255,255,255,.92);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.14rem;
  line-height: 1.6;
}

/* TRADITION */

.zion-wm-tradition-inner {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
  gap: 76px;
  align-items: start;
}

.zion-wm-tradition-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-wm-tradition-heading h2 {
  margin-bottom: 0;
}

.zion-wm-tradition-copy {
  max-width: 710px;
}

.zion-wm-tradition-copy p {
  margin: 0 0 17px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-wm-tradition-copy p:last-child {
  margin-bottom: 0;
}

.zion-wm-tradition-copy strong {
  color: var(--zion-burgundy-dark);
}

/* INVITATION */

.zion-wm-invitation-inner {
  display: grid;
  grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr);
  gap: 76px;
  align-items: start;
}

.zion-wm-invitation-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-wm-invitation-heading h2 {
  margin-bottom: 0;
}

.zion-wm-invitation-copy {
  max-width: 700px;
}

.zion-wm-invitation-copy p {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-wm-invitation-copy p:last-child {
  margin-bottom: 0;
}

.zion-wm-invitation-lead {
  color: var(--zion-charcoal) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem !important;
}

.zion-wm-invitation-emphasis {
  margin-top: 24px !important;
  padding-left: 20px;
  border-left: 4px solid var(--zion-gold);
  color: var(--zion-burgundy-dark) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem !important;
  font-weight: 700;
}

/* CTA */

.zion-wm-cta {
  padding: 74px 0 78px;
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zion-wm-cta-inner {
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
}

.zion-wm-cta .zion-eyebrow {
  margin-bottom: 13px;
  color: #efd7a5;
}

.zion-wm-cta h2 {
  margin: 0 0 18px;
  color: var(--zion-white);
}

.zion-wm-cta p:not(.zion-eyebrow) {
  max-width: 750px;
  margin: 0 auto;
  color: rgba(255,255,255,.9);
  font-size: 1.04rem;
}

.zion-wm-cta-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.zion-wm-cta .zion-btn-primary {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy) !important;
}

.zion-wm-cta .zion-btn-primary:hover,
.zion-wm-cta .zion-btn-primary:focus {
  background: var(--zion-ivory);
  border-color: var(--zion-ivory);
  color: var(--zion-burgundy-dark) !important;
}

.zion-wm-cta .zion-btn-secondary {
  background: transparent;
  border-color: rgba(255,255,255,.82);
  color: var(--zion-white) !important;
}

.zion-wm-cta .zion-btn-secondary:hover,
.zion-wm-cta .zion-btn-secondary:focus {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy-dark) !important;
}

/* RESPONSIVE */

@media (max-width: 900px) {
  .zion-wm-intro-grid,
  .zion-wm-music-grid,
  .zion-wm-choir-grid,
  .zion-wm-special-inner,
  .zion-wm-tradition-inner,
  .zion-wm-invitation-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .zion-wm-service-grid {
    grid-template-columns: 1fr;
  }

  .zion-wm-service-card {
    max-width: 760px;
  }
}

@media (max-width: 600px) {
  .zion-wm-hero {
    min-height: 560px;
    align-items: flex-end;
  }

  .zion-wm-hero::after {
    right: -10%;
    top: 35%;
    font-size: 16rem;
  }

  .zion-wm-hero-inner {
    padding-top: 180px;
    padding-bottom: 48px;
  }

  .zion-wm-hero h1 {
    font-size: 2.7rem;
  }

  .zion-wm-hero-intro {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zion-wm-page .zion-section {
    padding-top: 58px;
    padding-bottom: 62px;
  }

  .zion-wm-page .zion-section-heading {
    margin-bottom: 34px;
  }

  .zion-wm-page h2 {
    font-size: 2.15rem;
  }

  .zion-wm-service-card {
    padding: 28px 24px 26px;
  }

  .zion-wm-music-feature {
    padding: 30px 24px 28px;
  }

  .zion-wm-special-note {
    padding: 28px 24px 27px;
  }

  .zion-wm-invitation-emphasis {
    padding-left: 16px;
  }

  .zion-wm-cta {
    padding: 60px 0 64px;
  }

  .zion-wm-cta-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .zion-wm-cta-actions .zion-btn {
    width: 100%;
  }
}

/* =========================================================
   BLANKET MINISTRY
   ========================================================= */

.zion-blanket-page {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

.zion-blanket-page *,
.zion-blanket-page *::before,
.zion-blanket-page *::after {
  box-sizing: border-box;
}

.zion-blanket-page h2,
.zion-blanket-page h3 {
  font-family: Georgia, "Times New Roman", serif;
}

.zion-blanket-page h2 {
  margin: 0 0 20px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2.2rem, 3.8vw, 3.35rem);
  font-weight: 500;
  line-height: 1.08;
}

.zion-blanket-page p {
  line-height: 1.75;
}

/* HERO */

.zion-blanket-hero {
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(
      90deg,
      rgba(34,20,24,.96) 0%,
      rgba(79,23,37,.91) 48%,
      rgba(111,32,51,.78) 100%
    ),
    url("/images/hero/blanket-ministry-hero.webp")
      center center / cover no-repeat;
  color: var(--zion-white);
}

.zion-blanket-hero::after {
  content: "";
  position: absolute;
  right: -5%;
  top: -35%;
  width: 58%;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.08);
  transform: rotate(45deg);
  box-shadow:
    0 0 0 80px rgba(255,255,255,.025),
    0 0 0 160px rgba(255,255,255,.018);
}

.zion-blanket-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 84px;
  padding-bottom: 88px;
}

.zion-blanket-hero-inner > * {
  max-width: 720px;
}

.zion-blanket-hero .zion-eyebrow {
  margin-bottom: 14px;
  color: #f1d9a6;
}

.zion-blanket-hero h1 {
  margin: 0 0 24px;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.2rem, 6vw, 5rem);
  font-weight: 500;
  line-height: 1;
}

.zion-blanket-hero-intro {
  margin: 0;
  max-width: 680px;
  color: rgba(255,255,255,.94);
  font-size: 1.1rem;
  line-height: 1.72;
}

/* GENERAL SECTIONS */

.zion-blanket-page .zion-section {
  padding: 80px 0 86px;
}

.zion-blanket-page .zion-section-soft {
  background: var(--zion-ivory);
}

.zion-blanket-page .zion-section-heading {
  max-width: 850px;
  margin: 0 auto 44px;
  text-align: center;
}

.zion-blanket-page .zion-section-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-blanket-page .zion-section-heading h2 {
  margin-bottom: 18px;
}

.zion-blanket-page .zion-section-heading > p:last-child {
  max-width: 790px;
  margin: 0 auto;
  color: var(--zion-muted);
  font-size: 1.03rem;
}

/* INTRO / NUMBER */

.zion-blanket-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
  gap: 72px;
  align-items: center;
}

.zion-blanket-intro-copy {
  max-width: 700px;
}

.zion-blanket-intro-copy .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-blanket-intro-copy p:not(.zion-eyebrow) {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-blanket-intro-copy p:last-child {
  margin-bottom: 0;
}

.zion-blanket-lead {
  color: var(--zion-charcoal) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.28rem !important;
  line-height: 1.55 !important;
}

.zion-blanket-number {
  padding: 38px 36px 34px;
  background: var(--zion-burgundy-dark);
  color: var(--zion-white);
  box-shadow: 0 14px 38px rgba(44,35,31,.10);
}

.zion-blanket-number-big {
  display: block;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 5vw, 4.5rem);
  line-height: 1;
}

.zion-blanket-number-label {
  display: block;
  margin: 8px 0 22px;
  color: #efd7a5;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.zion-blanket-number p {
  margin: 0;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.88);
  font-size: .95rem;
}

/* HISTORY */

.zion-blanket-history-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.zion-blanket-history-card {
  padding: 32px 30px 30px;
  background: var(--zion-white);
  border-top: 4px solid var(--zion-gold);
  box-shadow: 0 10px 28px rgba(44,35,31,.07);
}

.zion-blanket-history-card h3 {
  margin: 0 0 14px;
  color: var(--zion-burgundy-dark);
  font-size: 1.4rem;
  line-height: 1.25;
}

.zion-blanket-history-card p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
}

/* FABRIC STORY */

.zion-blanket-story {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 72px;
  align-items: center;
}

.zion-blanket-story-copy {
  max-width: 690px;
}

.zion-blanket-story-copy .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-blanket-story-copy p:not(.zion-eyebrow) {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-blanket-story-copy p:last-child {
  margin-bottom: 0;
}

.zion-blanket-quote {
  position: relative;
  padding: 38px 38px 36px;
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 14px 38px rgba(44,35,31,.09);
}

.zion-blanket-quote::after {
  content: "";
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  border-top: 1px solid rgba(185,151,91,.55);
  border-right: 1px solid rgba(185,151,91,.55);
}

.zion-blanket-quote .zion-eyebrow {
  margin-bottom: 13px;
  padding-right: 48px;
}

.zion-blanket-quote h3 {
  margin: 0 0 15px;
  padding-right: 42px;
  color: var(--zion-burgundy);
  font-size: 1.55rem;
  line-height: 1.28;
}

.zion-blanket-quote p:not(.zion-eyebrow) {
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
}

/* TODAY */

.zion-blanket-today-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.zion-blanket-today-item {
  padding: 32px 30px 30px;
  background: var(--zion-white);
  border-bottom: 4px solid var(--zion-burgundy);
  text-align: center;
  box-shadow: 0 10px 28px rgba(44,35,31,.06);
}

.zion-blanket-symbol {
  display: flex;
  width: 54px;
  height: 54px;
  margin: 0 auto 18px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(111,32,51,.18);
  border-radius: 50%;
  color: var(--zion-burgundy);
  font-size: 1.55rem;
}

.zion-blanket-today-item h3 {
  margin: 0 0 12px;
  color: var(--zion-burgundy-dark);
  font-size: 1.4rem;
}

.zion-blanket-today-item p {
  margin: 0;
  color: var(--zion-muted);
  font-size: .97rem;
}

/* WELCOME */

.zion-blanket-welcome-inner {
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
  gap: 76px;
  align-items: start;
}

.zion-blanket-welcome-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-blanket-welcome-heading h2 {
  margin-bottom: 0;
}

.zion-blanket-welcome-copy {
  max-width: 700px;
}

.zion-blanket-welcome-copy p {
  margin: 0 0 16px;
  color: var(--zion-muted);
  font-size: 1.01rem;
}

.zion-blanket-welcome-copy p:last-child {
  margin-bottom: 0;
}

.zion-blanket-welcome-lead {
  color: var(--zion-charcoal) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem !important;
  line-height: 1.55 !important;
}

.zion-blanket-welcome-emphasis {
  margin-top: 24px !important;
  padding-left: 20px;
  border-left: 4px solid var(--zion-gold);
  color: var(--zion-burgundy-dark) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.16rem !important;
  font-weight: 700;
}

/* INVITATION */

.zion-blanket-invitation {
  padding: 74px 0 78px;
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zion-blanket-invitation-inner {
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

.zion-blanket-invitation .zion-eyebrow {
  margin-bottom: 13px;
  color: #efd7a5;
}

.zion-blanket-invitation h2 {
  margin: 0 0 18px;
  color: var(--zion-white);
}

.zion-blanket-invitation p:not(.zion-eyebrow) {
  max-width: 740px;
  margin: 0 auto 14px;
  color: rgba(255,255,255,.9);
  font-size: 1.04rem;
}

.zion-blanket-invitation-emphasis {
  color: #f3dcae !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.2rem !important;
  font-weight: 700;
}

.zion-blanket-invitation-actions {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

/* Blanket Ministry button base styling */

.zion-blanket-page .zion-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  border: 2px solid transparent;
  border-radius: 3px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease;
}

.zion-blanket-invitation .zion-btn-primary {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy) !important;
}

.zion-blanket-invitation .zion-btn-primary:hover,
.zion-blanket-invitation .zion-btn-primary:focus {
  background: var(--zion-ivory);
  border-color: var(--zion-ivory);
  color: var(--zion-burgundy-dark) !important;
}

/* RESPONSIVE */

@media (max-width: 900px) {
  .zion-blanket-intro-grid,
  .zion-blanket-story,
  .zion-blanket-welcome-inner {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .zion-blanket-history-grid,
  .zion-blanket-today-grid {
    grid-template-columns: 1fr;
  }

  .zion-blanket-number,
  .zion-blanket-quote {
    max-width: 760px;
  }
}

@media (max-width: 600px) {
  .zion-blanket-hero {
    min-height: 560px;
    align-items: flex-end;
  }

  .zion-blanket-hero::after {
    right: -45%;
    top: -5%;
    width: 100%;
  }

  .zion-blanket-hero-inner {
    padding-top: 180px;
    padding-bottom: 48px;
  }

  .zion-blanket-hero h1 {
    font-size: 2.8rem;
  }

  .zion-blanket-hero-intro {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zion-blanket-page .zion-section {
    padding-top: 58px;
    padding-bottom: 62px;
  }

  .zion-blanket-page .zion-section-heading {
    margin-bottom: 34px;
  }

  .zion-blanket-page h2 {
    font-size: 2.15rem;
  }

  .zion-blanket-number {
    padding: 31px 24px 29px;
  }

  .zion-blanket-history-card,
  .zion-blanket-today-item {
    padding: 28px 24px 26px;
  }

  .zion-blanket-quote {
    padding: 30px 24px 28px;
  }

  .zion-blanket-quote::after {
    top: 17px;
    right: 17px;
    width: 34px;
    height: 34px;
  }

  .zion-blanket-welcome-emphasis {
    padding-left: 16px;
  }

  .zion-blanket-invitation {
    padding: 60px 0 64px;
  }

  .zion-blanket-invitation-actions .zion-btn {
    width: 100%;
  }
}

/* =========================================================
   RESOURCES LANDING PAGE
   ========================================================= */

.zl-resources-page {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

.zl-resources-page *,
.zl-resources-page *::before,
.zl-resources-page *::after {
  box-sizing: border-box;
}

.zl-resources-page h1,
.zl-resources-page h2,
.zl-resources-page h3 {
  font-family: Georgia, "Times New Roman", serif;
}

.zl-wrap {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* HERO */

.zl-resources-hero {
  position: relative;
  min-height: 440px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(
      105deg,
      rgba(34,20,24,.97) 0%,
      rgba(79,23,37,.92) 48%,
      rgba(111,32,51,.78) 100%
    );
  color: var(--zion-white);
}

.zl-resources-hero::after {
  content: "";
  position: absolute;
  right: -7%;
  top: -42%;
  width: 56%;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 50%;
  box-shadow:
    0 0 0 80px rgba(255,255,255,.022),
    0 0 0 160px rgba(255,255,255,.014);
}

.zl-resources-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 76px;
  padding-bottom: 80px;
}

.zl-resources-hero-inner > * {
  max-width: 720px;
}

.zl-resources-eyebrow,
.zl-resources-section-label,
.zl-resources-card-label {
  margin: 0 0 12px;
  color: var(--zion-burgundy);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
}

.zl-resources-hero .zl-resources-eyebrow {
  color: #f1d9a6;
}

.zl-resources-hero h1 {
  margin: 0 0 22px;
  color: var(--zion-white);
  font-size: clamp(3rem, 5.5vw, 4.8rem);
  font-weight: 500;
  line-height: 1.03;
}

.zl-resources-hero-intro {
  margin: 0;
  max-width: 670px;
  color: rgba(255,255,255,.94);
  font-size: 1.12rem;
  line-height: 1.72;
}

/* QUICK LINKS */

.zl-resources-quick {
  position: relative;
  z-index: 3;
  margin-top: -34px;
}

.zl-resources-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: var(--zion-white);
  box-shadow: 0 14px 38px rgba(44,35,31,.13);
}

.zl-resources-quick-link {
  position: relative;
  display: block;
  min-width: 0;
  padding: 25px 25px 24px;
  color: var(--zion-charcoal) !important;
  text-decoration: none !important;
  border-right: 1px solid rgba(111,32,51,.12);
  transition: background-color .2s ease, transform .2s ease;
}

.zl-resources-quick-link:last-child {
  border-right: 0;
}

.zl-resources-quick-link:hover,
.zl-resources-quick-link:focus {
  background: var(--zion-ivory);
}

.zl-resources-quick-title {
  display: block;
  margin-bottom: 6px;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.25;
}

.zl-resources-quick-text {
  display: block;
  color: var(--zion-muted);
  font-size: .9rem;
  line-height: 1.45;
}

/* MAIN */

.zl-resources-main {
  padding: 90px 0 92px;
  background: var(--zion-white);
}

.zl-resources-heading {
  max-width: 820px;
  margin: 0 auto 46px;
  text-align: center;
}

.zl-resources-heading h2 {
  margin: 0 0 18px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2.25rem, 3.8vw, 3.35rem);
  font-weight: 500;
  line-height: 1.08;
}

.zl-resources-heading > p:last-child {
  max-width: 760px;
  margin: 0 auto;
  color: var(--zion-muted);
  font-size: 1.03rem;
  line-height: 1.75;
}

.zl-resources-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.zl-resources-card {
  min-width: 0;
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 10px 30px rgba(44,35,31,.07);
}

.zl-resources-card-content {
  padding: 34px 34px 32px;
}

.zl-resources-card-label {
  margin-bottom: 11px;
}

.zl-resources-card h3 {
  margin: 0 0 15px;
  color: var(--zion-burgundy-dark);
  font-size: 1.55rem;
  line-height: 1.25;
}

.zl-resources-card-content > p:not(.zl-resources-card-label) {
  margin: 0;
  color: var(--zion-muted);
  font-size: .98rem;
  line-height: 1.72;
}

.zl-resources-links {
  margin-top: 25px;
  border-top: 1px solid rgba(111,32,51,.13);
}

.zl-resources-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 2px;
  color: var(--zion-burgundy) !important;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(111,32,51,.10);
}

.zl-resources-links a:hover,
.zl-resources-links a:focus {
  color: var(--zion-burgundy-dark) !important;
}

.zl-resources-links a span {
  flex: 0 0 auto;
  color: var(--zion-gold);
  font-size: 1.2rem;
}

/* HELP NOTE */

.zl-resources-note {
  padding: 68px 0 72px;
  background: var(--zion-ivory);
}

.zl-resources-note-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 60px;
  align-items: center;
}

.zl-resources-note-inner > div:first-child {
  max-width: 720px;
}

.zl-resources-note h2 {
  margin: 0 0 14px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2rem, 3.4vw, 2.9rem);
  font-weight: 500;
  line-height: 1.1;
}

.zl-resources-note-inner p:not(.zl-resources-section-label) {
  margin: 0;
  color: var(--zion-muted);
  font-size: 1rem;
  line-height: 1.7;
}

.zl-resources-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 27px;
  background: var(--zion-burgundy);
  border: 2px solid var(--zion-burgundy);
  border-radius: 3px;
  color: var(--zion-white) !important;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.zl-resources-button:hover,
.zl-resources-button:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: var(--zion-white) !important;
  transform: translateY(-1px);
}

/* RESPONSIVE */

@media (max-width: 900px) {
  .zl-resources-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .zl-resources-quick-link:nth-child(2) {
    border-right: 0;
  }

  .zl-resources-quick-link:nth-child(-n+2) {
    border-bottom: 1px solid rgba(111,32,51,.12);
  }

  .zl-resources-grid {
    grid-template-columns: 1fr;
  }

  .zl-resources-note-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

@media (max-width: 600px) {
  .zl-wrap {
    padding-left: 20px;
    padding-right: 20px;
  }

  .zl-resources-hero {
    min-height: 470px;
    align-items: flex-end;
  }

  .zl-resources-hero::after {
    right: -55%;
    top: -5%;
    width: 110%;
  }

  .zl-resources-hero-inner {
    padding-top: 150px;
    padding-bottom: 62px;
  }

  .zl-resources-hero h1 {
    font-size: 2.75rem;
  }

  .zl-resources-hero-intro {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zl-resources-quick {
    margin-top: 0;
  }

  .zl-resources-quick .zl-wrap {
    padding-left: 0;
    padding-right: 0;
  }

  .zl-resources-quick-grid {
    grid-template-columns: 1fr;
    box-shadow: none;
  }

  .zl-resources-quick-link,
  .zl-resources-quick-link:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid rgba(111,32,51,.12);
    padding: 21px 20px;
  }

  .zl-resources-quick-link:last-child {
    border-bottom: 0;
  }

  .zl-resources-main {
    padding-top: 62px;
    padding-bottom: 64px;
  }

  .zl-resources-heading {
    margin-bottom: 34px;
  }

  .zl-resources-heading h2 {
    font-size: 2.15rem;
  }

  .zl-resources-card-content {
    padding: 29px 24px 27px;
  }

  .zl-resources-note {
    padding-top: 56px;
    padding-bottom: 60px;
  }

  .zl-resources-note h2 {
    font-size: 2.1rem;
  }

  .zl-resources-note-action .zl-resources-button {
    width: 100%;
  }
}

/* =========================================================
   BULLETIN ARCHIVE
   ========================================================= */

.zl-bulletin-page {
  width: 100%;
  padding: 82px 0 90px;
  overflow: hidden;
  background: var(--zion-white);
}

.zl-bulletin-page *,
.zl-bulletin-page *::before,
.zl-bulletin-page *::after {
  box-sizing: border-box;
}

.zl-bulletin-heading {
  max-width: 820px;
  margin: 0 auto 48px;
  text-align: center;
}

.zl-bulletin-heading .zl-resources-section-label {
  margin-bottom: 12px;
}

.zl-bulletin-heading h1 {
  margin: 0 0 18px;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.8rem, 5vw, 4.25rem);
  font-weight: 500;
  line-height: 1.05;
}

.zl-bulletin-heading > p:last-child {
  max-width: 700px;
  margin: 0 auto;
  color: var(--zion-muted);
  font-size: 1.04rem;
  line-height: 1.72;
}

.zl-bulletin-module {
  max-width: 920px;
  margin: 0 auto;
  padding: 34px 38px;
  background: var(--zion-ivory);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 10px 30px rgba(44,35,31,.07);
}

.zl-bulletin-module ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.zl-bulletin-module li {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(111,32,51,.12);
}

.zl-bulletin-module li:last-child {
  border-bottom: 0;
}

.zl-bulletin-module a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 4px;
  color: var(--zion-burgundy) !important;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none !important;
}

.zl-bulletin-module a::after {
  content: "→";
  flex: 0 0 auto;
  color: var(--zion-gold);
  font-size: 1.15rem;
}

.zl-bulletin-module a:hover,
.zl-bulletin-module a:focus {
  color: var(--zion-burgundy-dark) !important;
}

.zl-bulletin-module p {
  color: var(--zion-muted);
  line-height: 1.7;
}

@media (max-width: 600px) {
  .zl-bulletin-page {
    padding-top: 58px;
    padding-bottom: 64px;
  }

  .zl-bulletin-heading {
    margin-bottom: 34px;
  }

  .zl-bulletin-heading h1 {
    font-size: 2.6rem;
  }

  .zl-bulletin-module {
    padding: 24px 20px;
  }

  .zl-bulletin-module a {
    padding-top: 14px;
    padding-bottom: 14px;
  }
}

/* =========================================================
   FAITH & LEARNING
   ========================================================= */

.zl-learning-page {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

.zl-learning-page *,
.zl-learning-page *::before,
.zl-learning-page *::after {
  box-sizing: border-box;
}

.zl-learning-page h1,
.zl-learning-page h2,
.zl-learning-page h3 {
  font-family: Georgia, "Times New Roman", serif;
}

.zl-learning-eyebrow,
.zl-learning-section-label {
  margin: 0 0 12px;
  color: var(--zion-burgundy);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
}

/* HERO */

.zl-learning-hero {
  position: relative;
  min-height: 440px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(
      105deg,
      rgba(34,20,24,.97) 0%,
      rgba(79,23,37,.92) 50%,
      rgba(111,32,51,.78) 100%
    );
  color: var(--zion-white);
}

.zl-learning-hero::after {
  content: "";
  position: absolute;
  right: -6%;
  top: -38%;
  width: 55%;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.07);
  transform: rotate(45deg);
  box-shadow:
    0 0 0 75px rgba(255,255,255,.02),
    0 0 0 150px rgba(255,255,255,.013);
}

.zl-learning-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 760px;
  padding-top: 76px;
  padding-bottom: 80px;
}

.zl-learning-hero .zl-learning-eyebrow {
  color: #f1d9a6;
}

.zl-learning-hero h1 {
  margin: 0 0 22px;
  color: var(--zion-white);
  font-size: clamp(3rem, 5.5vw, 4.8rem);
  font-weight: 500;
  line-height: 1.03;
}

.zl-learning-hero-inner > p:last-child {
  max-width: 700px;
  margin: 0;
  color: rgba(255,255,255,.94);
  font-size: 1.1rem;
  line-height: 1.72;
}

/* FEATURE SECTIONS */

.zl-learning-feature {
  padding: 82px 0 88px;
  background: var(--zion-white);
}

.zl-learning-feature:nth-of-type(3) {
  background: var(--zion-ivory);
}

.zl-learning-intro {
  max-width: 850px;
  margin: 0 auto;
}

.zl-learning-intro h2,
.zl-learning-closing h2 {
  margin: 0 0 20px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2.25rem, 3.8vw, 3.35rem);
  font-weight: 500;
  line-height: 1.08;
}

.zl-learning-intro > p:not(.zl-learning-section-label) {
  margin: 0 0 17px;
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.75;
}

.zl-learning-intro > p:last-of-type {
  margin-bottom: 0;
}

.zl-learning-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
}

.zl-learning-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 27px;
  background: var(--zion-burgundy);
  border: 2px solid var(--zion-burgundy);
  border-radius: 3px;
  color: var(--zion-white) !important;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.zl-learning-btn:hover,
.zl-learning-btn:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: var(--zion-white) !important;
  transform: translateY(-1px);
}

.zl-learning-note {
  margin-top: 28px;
  padding: 20px 22px;
  background: rgba(185,151,91,.12);
  border-left: 4px solid var(--zion-gold);
  color: var(--zion-charcoal);
  font-size: .97rem;
  line-height: 1.7;
}

/* CHOSEN STUDY GUIDE MODULE */

.zl-chosen-module {
  max-width: 920px;
  margin: 44px auto 0;
}

.zl-chosen-module .card,
.zl-chosen-module .accordion-item {
  margin-bottom: 14px;
  overflow: hidden;
  background: var(--zion-white);
  border: 1px solid rgba(111,32,51,.13);
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(44,35,31,.045);
}

.zl-chosen-module .card-header,
.zl-chosen-module .accordion-header {
  margin: 0;
  background: var(--zion-white);
}

.zl-chosen-module .card-header button,
.zl-chosen-module .accordion-button {
  width: 100%;
  padding: 18px 22px;
  background: var(--zion-white);
  border: 0;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: left;
  box-shadow: none;
}

.zl-chosen-module .accordion-button:not(.collapsed),
.zl-chosen-module .card-header button[aria-expanded="true"] {
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zl-chosen-module .card-body,
.zl-chosen-module .accordion-body {
  padding: 8px 22px 20px;
  background: var(--zion-white);
}

.zl-chosen-module ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.zl-chosen-module li {
  margin: 0;
  border-bottom: 1px solid rgba(111,32,51,.11);
}

.zl-chosen-module li:last-child {
  border-bottom: 0;
}

.zl-chosen-module li a,
.zl-chosen-module .card-body a,
.zl-chosen-module .accordion-body a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 2px;
  color: var(--zion-burgundy) !important;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none !important;
}

.zl-chosen-module li a::after {
  content: "→";
  flex: 0 0 auto;
  color: var(--zion-gold);
  font-size: 1.15rem;
}

.zl-chosen-module a:hover,
.zl-chosen-module a:focus {
  color: var(--zion-burgundy-dark) !important;
}

/* GENERIC MODULE FALLBACK */

.zl-chosen-module > ul {
  padding: 28px 32px;
  background: var(--zion-white);
  border-top: 5px solid var(--zion-gold);
  box-shadow: 0 10px 30px rgba(44,35,31,.07);
}

.zl-chosen-module > ul > li {
  border-bottom: 1px solid rgba(111,32,51,.11);
}

.zl-chosen-module > ul > li:last-child {
  border-bottom: 0;
}

/* CLOSING */

.zl-learning-closing {
  padding: 76px 0 80px;
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zl-learning-closing-inner {
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

.zl-learning-closing .zl-learning-section-label {
  color: #f1d9a6;
}

.zl-learning-closing h2 {
  color: var(--zion-white);
}

.zl-learning-closing-inner > p:not(.zl-learning-section-label) {
  max-width: 760px;
  margin: 0 auto 16px;
  color: rgba(255,255,255,.9);
  font-size: 1.02rem;
  line-height: 1.72;
}

.zl-learning-closing .zl-learning-actions {
  justify-content: center;
  margin-top: 29px;
}

.zl-learning-closing .zl-learning-btn {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy) !important;
}

.zl-learning-closing .zl-learning-btn:hover,
.zl-learning-closing .zl-learning-btn:focus {
  background: var(--zion-ivory);
  border-color: var(--zion-ivory);
  color: var(--zion-burgundy-dark) !important;
}

/* RESPONSIVE */

@media (max-width: 600px) {
  .zl-learning-hero {
    min-height: 470px;
    align-items: flex-end;
  }

  .zl-learning-hero::after {
    right: -55%;
    top: -2%;
    width: 110%;
  }

  .zl-learning-hero-inner {
    padding-top: 150px;
    padding-bottom: 62px;
  }

  .zl-learning-hero h1 {
    font-size: 2.75rem;
  }

  .zl-learning-hero-inner > p:last-child {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zl-learning-feature {
    padding-top: 60px;
    padding-bottom: 64px;
  }

  .zl-learning-intro h2,
  .zl-learning-closing h2 {
    font-size: 2.15rem;
  }

  .zl-learning-actions {
    align-items: stretch;
  }

  .zl-learning-actions .zl-learning-btn {
    width: 100%;
  }

  .zl-learning-note {
    padding: 18px;
  }

  .zl-chosen-module {
    margin-top: 34px;
  }

  .zl-chosen-module .card-header button,
  .zl-chosen-module .accordion-button {
    padding: 16px 18px;
    font-size: 1.08rem;
  }

  .zl-chosen-module .card-body,
  .zl-chosen-module .accordion-body {
    padding-left: 18px;
    padding-right: 18px;
  }

  .zl-chosen-module > ul {
    padding: 20px 18px;
  }

  .zl-learning-closing {
    padding-top: 60px;
    padding-bottom: 64px;
  }
}

/* =========================================================
   CONTACT PAGE
   ========================================================= */

.zion-contact-page {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

.zion-contact-page *,
.zion-contact-page *::before,
.zion-contact-page *::after {
  box-sizing: border-box;
}

.zion-contact-page h1,
.zion-contact-page h2,
.zion-contact-page h3 {
  font-family: Georgia, "Times New Roman", serif;
}

/* HERO */

.zion-contact-hero {
  position: relative;
  min-height: 500px;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--zion-white);
}

.zion-contact-hero-overlay {
  min-height: 500px;
  display: flex;
  align-items: center;
  background: linear-gradient(
    90deg,
    rgba(34,20,24,.94) 0%,
    rgba(34,20,24,.80) 42%,
    rgba(34,20,24,.40) 70%,
    rgba(34,20,24,.12) 100%
  );
}

.zion-contact-hero-content {
  max-width: 700px;
  padding-top: 82px;
  padding-bottom: 88px;
}

.zion-contact-hero .zion-eyebrow {
  margin-bottom: 14px;
  color: #f1d9a6;
}

.zion-contact-hero h1 {
  margin: 0 0 23px;
  color: var(--zion-white);
  font-size: clamp(3rem, 5.5vw, 4.8rem);
  font-weight: 500;
  line-height: 1.03;
}

.zion-contact-hero-content > p:last-child {
  margin: 0;
  max-width: 650px;
  color: rgba(255,255,255,.94);
  font-size: 1.1rem;
  line-height: 1.72;
}

/* MAIN CONTACT */

.zion-contact-main {
  padding: 82px 0 88px;
  background: var(--zion-white);
}

.zion-contact-intro {
  max-width: 850px;
  margin: 0 auto 46px;
  text-align: center;
}

.zion-contact-intro .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-contact-intro h2,
.zion-contact-split-content h2,
.zion-contact-care h2,
.zion-contact-map-heading h2 {
  margin: 0 0 18px;
  color: var(--zion-burgundy-dark);
  font-size: clamp(2.2rem, 3.8vw, 3.35rem);
  font-weight: 500;
  line-height: 1.08;
}

.zion-contact-intro > p:last-child {
  max-width: 790px;
  margin: 0 auto;
  color: var(--zion-muted);
  font-size: 1.03rem;
  line-height: 1.75;
}

.zion-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.zion-contact-card {
  min-width: 0;
  padding: 32px 30px 30px;
  background: var(--zion-ivory);
  border-top: 4px solid var(--zion-gold);
  box-shadow: 0 10px 28px rgba(44,35,31,.07);
}

.zion-contact-card h3 {
  margin: 0 0 18px;
  color: var(--zion-burgundy-dark);
  font-size: 1.45rem;
  line-height: 1.25;
}

.zion-contact-card p {
  margin: 0 0 17px;
  color: var(--zion-muted);
  font-size: .98rem;
  line-height: 1.7;
}

.zion-contact-card strong {
  color: var(--zion-charcoal);
}

.zion-contact-card a:not(.zion-btn) {
  color: var(--zion-burgundy);
  font-weight: 700;
  text-decoration: none;
}

.zion-contact-card a:not(.zion-btn):hover,
.zion-contact-card a:not(.zion-btn):focus {
  color: var(--zion-burgundy-dark);
  text-decoration: underline;
}

.zion-contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.zion-contact-note {
  margin-top: 22px !important;
  padding-top: 17px;
  border-top: 1px solid rgba(111,32,51,.13);
  font-size: .9rem !important;
  font-style: italic;
}

/* VISIT */

.zion-contact-visit {
  padding: 82px 0 86px;
  background: var(--zion-ivory);
}

.zion-contact-split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 72px;
  align-items: center;
}

.zion-contact-split-content {
  max-width: 680px;
}

.zion-contact-split-content .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-contact-split-content p:not(.zion-eyebrow) {
  margin: 0 0 24px;
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.75;
}

.zion-contact-quick {
  padding: 34px 34px 30px;
  background: var(--zion-white);
  border-top: 5px solid var(--zion-burgundy);
  box-shadow: 0 12px 34px rgba(44,35,31,.08);
}

.zion-contact-quick h3 {
  margin: 0 0 19px;
  color: var(--zion-burgundy-dark);
  font-size: 1.5rem;
}

.zion-contact-quick-item {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 18px;
  padding: 14px 0;
  border-top: 1px solid rgba(111,32,51,.11);
}

.zion-contact-quick-item strong {
  color: var(--zion-charcoal);
}

.zion-contact-quick-item span {
  color: var(--zion-muted);
  line-height: 1.5;
}

/* PASTORAL CARE */

.zion-contact-care {
  padding: 68px 0 72px;
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zion-contact-care-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 60px;
  align-items: center;
}

.zion-contact-care-inner > div:first-child {
  max-width: 760px;
}

.zion-contact-care .zion-eyebrow {
  margin-bottom: 13px;
  color: #efd7a5;
}

.zion-contact-care h2 {
  color: var(--zion-white);
}

.zion-contact-care p:not(.zion-eyebrow) {
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: 1.02rem;
  line-height: 1.72;
}

.zion-contact-care .zion-btn-primary {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy) !important;
}

.zion-contact-care .zion-btn-primary:hover,
.zion-contact-care .zion-btn-primary:focus {
  background: var(--zion-ivory);
  border-color: var(--zion-ivory);
  color: var(--zion-burgundy-dark) !important;
}

/* MAP */

.zion-contact-map {
  padding: 82px 0 90px;
  background: var(--zion-white);
}

.zion-contact-map-heading {
  max-width: 780px;
  margin: 0 auto 38px;
  text-align: center;
}

.zion-contact-map-heading .zion-eyebrow {
  margin-bottom: 13px;
}

.zion-contact-map-heading > p:last-child {
  margin: 0;
  color: var(--zion-muted);
  font-size: 1.02rem;
  line-height: 1.7;
}

.zion-contact-map-frame {
  overflow: hidden;
  border: 1px solid rgba(111,32,51,.13);
  box-shadow: 0 12px 34px rgba(44,35,31,.08);
}

.zion-contact-map-frame iframe {
  display: block;
  width: 100%;
  min-height: 450px;
}

/* CONTACT BUTTONS */

.zion-contact-page .zion-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  border: 2px solid var(--zion-burgundy);
  border-radius: 3px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease;
}

.zion-contact-page .zion-btn-primary {
  background: var(--zion-burgundy);
  color: var(--zion-white) !important;
}

.zion-contact-page .zion-btn-primary:hover,
.zion-contact-page .zion-btn-primary:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: var(--zion-white) !important;
  transform: translateY(-1px);
}

.zion-contact-page .zion-btn-secondary {
  background: transparent;
  color: var(--zion-burgundy) !important;
}

.zion-contact-page .zion-btn-secondary:hover,
.zion-contact-page .zion-btn-secondary:focus {
  background: var(--zion-burgundy);
  border-color: var(--zion-burgundy);
  color: var(--zion-white) !important;
}

/* RESPONSIVE */

@media (max-width: 950px) {
  .zion-contact-grid {
    grid-template-columns: 1fr;
  }

  .zion-contact-split {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .zion-contact-care-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

@media (max-width: 600px) {
  .zion-contact-hero,
  .zion-contact-hero-overlay {
    min-height: 570px;
  }

  .zion-contact-hero {
    background-position: center;
  }

  .zion-contact-hero-overlay {
    align-items: flex-end;
    background: linear-gradient(
      0deg,
      rgba(34,20,24,.97) 0%,
      rgba(34,20,24,.88) 52%,
      rgba(34,20,24,.42) 82%,
      rgba(34,20,24,.12) 100%
    );
  }

  .zion-contact-hero-content {
    padding-top: 180px;
    padding-bottom: 50px;
  }

  .zion-contact-hero h1 {
    font-size: 2.75rem;
  }

  .zion-contact-hero-content > p:last-child {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zion-contact-main,
  .zion-contact-visit,
  .zion-contact-map {
    padding-top: 60px;
    padding-bottom: 64px;
  }

  .zion-contact-intro {
    margin-bottom: 34px;
  }

  .zion-contact-intro h2,
  .zion-contact-split-content h2,
  .zion-contact-care h2,
  .zion-contact-map-heading h2 {
    font-size: 2.15rem;
  }

  .zion-contact-card,
  .zion-contact-quick {
    padding: 28px 24px 26px;
  }

  .zion-contact-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .zion-contact-actions .zion-btn {
    width: 100%;
  }

  .zion-contact-quick-item {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .zion-contact-care {
    padding-top: 58px;
    padding-bottom: 62px;
  }

  .zion-contact-care-action .zion-btn {
    width: 100%;
  }

  .zion-contact-map-frame iframe {
    min-height: 360px;
    height: 360px;
  }
}

/* =========================================================
   ANNOUNCEMENTS
   ========================================================= */

.zl-announcements {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

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

.zl-announcements h1,
.zl-announcements h2 {
  font-family: Georgia, "Times New Roman", serif;
}

/* HERO */

.zl-announcements-hero {
  position: relative;
  min-height: 390px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(
      105deg,
      rgba(34,20,24,.97) 0%,
      rgba(79,23,37,.92) 50%,
      rgba(111,32,51,.78) 100%
    );
  color: var(--zion-white);
}

.zl-announcements-hero::after {
  content: "";
  position: absolute;
  right: -8%;
  top: -50%;
  width: 54%;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 50%;
  box-shadow:
    0 0 0 75px rgba(255,255,255,.02),
    0 0 0 150px rgba(255,255,255,.013);
}

.zl-announcements-hero-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
  padding-top: 72px;
  padding-bottom: 76px;
}

.zl-announcements-label {
  margin: 0 0 12px;
  color: #f1d9a6;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
}

.zl-announcements-hero h1 {
  margin: 0 0 20px;
  color: var(--zion-white);
  font-size: clamp(3rem, 5.5vw, 4.8rem);
  font-weight: 500;
  line-height: 1.03;
}

.zl-announcements-hero-content > p:last-child {
  max-width: 680px;
  margin: 0;
  color: rgba(255,255,255,.94);
  font-size: 1.1rem;
  line-height: 1.72;
}

/* BODY */

.zl-announcements-body {
  padding: 74px 0 88px;
  background: var(--zion-white);
}

.zl-announcements-header {
  max-width: 900px;
  margin: 0 auto 34px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(111,32,51,.16);
}

.zl-announcements-date {
  margin: 0;
  color: var(--zion-burgundy);
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.5;
  text-transform: uppercase;
}

.zl-announcements-content {
  max-width: 900px;
  margin: 0 auto;
}

.zl-announcement-group {
  margin-bottom: 24px;
  padding: 30px 32px 28px;
  background: var(--zion-ivory);
  border-left: 4px solid var(--zion-gold);
}

.zl-announcement-group h2 {
  margin: 0 0 15px;
  color: var(--zion-burgundy-dark);
  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1.2;
}

.zl-announcement-group p {
  margin: 0 0 14px;
  color: var(--zion-muted);
  font-size: 1rem;
  line-height: 1.72;
}

.zl-announcement-group p:last-child {
  margin-bottom: 0;
}

.zl-announcement-group strong {
  color: var(--zion-charcoal);
}

.zl-announcement-group a {
  color: var(--zion-burgundy);
  font-weight: 700;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.zl-announcement-group a:hover,
.zl-announcement-group a:focus {
  color: var(--zion-burgundy-dark);
  text-decoration: underline;
}

/* MORE LINKS */

.zl-announcements-more {
  margin-top: 42px;
  padding: 36px 38px 34px;
  background: var(--zion-burgundy-dark);
  color: var(--zion-white);
  box-shadow: 0 12px 34px rgba(44,35,31,.10);
}

.zl-announcements-more h2 {
  margin: 0 0 13px;
  color: var(--zion-white);
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.2;
}

.zl-announcements-more > p {
  max-width: 700px;
  margin: 0;
  color: rgba(255,255,255,.88);
  font-size: .98rem;
  line-height: 1.7;
}

.zl-announcements-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 25px;
}

.zl-announcements-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 11px 20px;
  background: transparent;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 3px;
  color: var(--zion-white) !important;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease;
}

.zl-announcements-links a:hover,
.zl-announcements-links a:focus {
  background: var(--zion-white);
  border-color: var(--zion-white);
  color: var(--zion-burgundy-dark) !important;
}

/* RESPONSIVE */

@media (max-width: 600px) {
  .zl-announcements-hero {
    min-height: 430px;
    align-items: flex-end;
  }

  .zl-announcements-hero::after {
    right: -60%;
    top: -4%;
    width: 115%;
  }

  .zl-announcements-hero-content {
    padding-top: 145px;
    padding-bottom: 58px;
  }

  .zl-announcements-hero h1 {
    font-size: 2.75rem;
  }

  .zl-announcements-hero-content > p:last-child {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zl-announcements-body {
    padding-top: 56px;
    padding-bottom: 64px;
  }

  .zl-announcements-header {
    margin-bottom: 26px;
  }

  .zl-announcement-group {
    margin-bottom: 18px;
    padding: 25px 21px 23px;
  }

  .zl-announcement-group h2 {
    font-size: 1.4rem;
  }

  .zl-announcements-more {
    margin-top: 32px;
    padding: 29px 23px 27px;
  }

  .zl-announcements-links {
    flex-direction: column;
    align-items: stretch;
  }

  .zl-announcements-links a {
    width: 100%;
  }
}

/* =========================================================
   2026-09-16 AUDIT REPAIRS
   ========================================================= */

/* ---------------------------------------------------------
   STANDARD LIGHT CLOSING CTA
   Matches the established About Zion closing treatment.
   Applies only to the four audited pages.
   --------------------------------------------------------- */

.zion-christian-education .zion-ministry-invitation,
.zion-io-invitation,
.zion-blanket-invitation,
.zl-learning-closing {
  padding-top: 74px;
  padding-bottom: 80px;
  background: var(--zion-white);
  color: var(--zion-charcoal);
  text-align: center;
}

.zion-christian-education .zion-ministry-invitation .zion-eyebrow,
.zion-io-invitation .zion-eyebrow,
.zion-blanket-invitation .zion-eyebrow,
.zl-learning-closing .zl-learning-section-label {
  color: var(--zion-muted);
}

.zion-christian-education .zion-ministry-invitation h2,
.zion-io-invitation h2,
.zion-blanket-invitation h2,
.zl-learning-closing h2 {
  color: var(--zion-burgundy-dark);
}

.zion-christian-education .zion-ministry-invitation p:not(.zion-eyebrow),
.zion-io-invitation p:not(.zion-eyebrow),
.zion-blanket-invitation p:not(.zion-eyebrow),
.zl-learning-closing-inner > p:not(.zl-learning-section-label) {
  color: var(--zion-muted);
}

.zion-blanket-invitation-emphasis {
  color: var(--zion-burgundy-dark) !important;
}

.zion-christian-education .zion-ministry-invitation .zion-btn-primary,
.zion-io-invitation .zion-btn-primary,
.zion-blanket-invitation .zion-btn-primary,
.zl-learning-closing .zl-learning-btn {
  background: var(--zion-burgundy);
  border-color: var(--zion-burgundy);
  color: var(--zion-white) !important;
}

.zion-christian-education .zion-ministry-invitation .zion-btn-primary:hover,
.zion-christian-education .zion-ministry-invitation .zion-btn-primary:focus,
.zion-io-invitation .zion-btn-primary:hover,
.zion-io-invitation .zion-btn-primary:focus,
.zion-blanket-invitation .zion-btn-primary:hover,
.zion-blanket-invitation .zion-btn-primary:focus,
.zl-learning-closing .zl-learning-btn:hover,
.zl-learning-closing .zl-learning-btn:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: var(--zion-white) !important;
}

/* ---------------------------------------------------------
   STUDY GUIDE / PDF LABEL ALIGNMENT
   Keeps the right-hand document label in a consistent column.
   --------------------------------------------------------- */

.zl-chosen-module li a > span:last-child,
.zl-chosen-module .card-body a > span:last-child,
.zl-chosen-module .accordion-body a > span:last-child,
.zl-bulletin-module a > span:last-child {
  flex: 0 0 150px;
  margin-left: auto;
  text-align: right;
}

/* ---------------------------------------------------------
   MOBILE REFINEMENTS FOR AUDITED FIXES
   --------------------------------------------------------- */

@media (max-width: 600px) {
  .zion-christian-education .zion-ministry-invitation,
  .zion-io-invitation,
  .zion-blanket-invitation,
  .zl-learning-closing {
    padding-top: 60px;
    padding-bottom: 64px;
  }

  .zl-chosen-module li a,
  .zl-chosen-module .card-body a,
  .zl-chosen-module .accordion-body a,
  .zl-bulletin-module a {
    align-items: flex-start;
  }

  .zl-chosen-module li a > span:last-child,
  .zl-chosen-module .card-body a > span:last-child,
  .zl-chosen-module .accordion-body a > span:last-child,
  .zl-bulletin-module a > span:last-child {
    flex-basis: auto;
    min-width: 0;
    text-align: right;
  }
}

/* =========================================================
   CURRENT PAGE REPAIRS — CONSOLIDATED 2026-09-16
   ========================================================= */

/* ---------------------------------------------------------
   WORSHIP & MUSIC — LIGHT CLOSING CTA
   --------------------------------------------------------- */

.zion-wm-cta {
  background: var(--zion-white);
  color: var(--zion-charcoal);
}

.zion-wm-cta .zion-eyebrow {
  color: var(--zion-muted);
}

.zion-wm-cta h2 {
  color: var(--zion-burgundy-dark);
}

.zion-wm-cta p:not(.zion-eyebrow) {
  color: var(--zion-muted);
}

.zion-wm-cta .zion-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  border: 2px solid transparent;
  border-radius: 3px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease;
}

.zion-wm-cta .zion-btn-primary {
  background: var(--zion-burgundy);
  border-color: var(--zion-burgundy);
  color: var(--zion-white) !important;
}

.zion-wm-cta .zion-btn-primary:hover,
.zion-wm-cta .zion-btn-primary:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: var(--zion-white) !important;
  transform: translateY(-1px);
}

.zion-wm-cta .zion-btn-secondary {
  background: var(--zion-white);
  border-color: var(--zion-burgundy);
  color: var(--zion-burgundy) !important;
}

.zion-wm-cta .zion-btn-secondary:hover,
.zion-wm-cta .zion-btn-secondary:focus {
  background: var(--zion-burgundy);
  border-color: var(--zion-burgundy);
  color: var(--zion-white) !important;
  transform: translateY(-1px);
}

/* ---------------------------------------------------------
   WORSHIP & MUSIC — HERO
   --------------------------------------------------------- */

.zion-wm-hero {
  background:
    linear-gradient(
      90deg,
      rgba(34, 20, 24, .82) 0%,
      rgba(55, 27, 34, .62) 46%,
      rgba(55, 27, 34, .24) 100%
    ),
    url("/images/hero/worship-music-hero.webp")
      center center / cover no-repeat;
}

/* ---------------------------------------------------------
   ANNOUNCEMENTS — HERO
   --------------------------------------------------------- */

.zl-announcements-hero {
  background:
    linear-gradient(
      90deg,
      rgba(34, 20, 24, .84) 0%,
      rgba(55, 27, 34, .64) 48%,
      rgba(55, 27, 34, .28) 100%
    ),
    url("/images/hero/announcements-hero.webp")
      center center / cover no-repeat;
}

/* =========================================================
   RESOURCES — HERO IMAGE
   ========================================================= */

.zl-resources-hero {
  background:
    linear-gradient(
      90deg,
      rgba(34, 20, 24, .82) 0%,
      rgba(55, 27, 34, .60) 46%,
      rgba(55, 27, 34, .22) 100%
    ),
    url("/images/hero/resources-hero.webp")
      center center / cover no-repeat;
}
/* =========================================================
   FAITH & LEARNING — HERO IMAGE
   ========================================================= */

.zl-learning-hero {
  background:
    linear-gradient(
      90deg,
      rgba(34, 20, 24, .84) 0%,
      rgba(55, 27, 34, .60) 46%,
      rgba(55, 27, 34, .20) 100%
    ),
    url("/images/hero/faith-learning-hero.webp")
      center center / cover no-repeat;
}
/* =========================================================
   BLANKET MINISTRY — HERO LIGHTENING FIX
   ========================================================= */

.zion-blanket-hero {
  background:
    linear-gradient(
      90deg,
      rgba(34,20,24,.88) 0%,
      rgba(65,22,34,.66) 38%,
      rgba(111,32,51,.30) 68%,
      rgba(111,32,51,.12) 100%
    ),
    url("/images/hero/blanket-ministry-hero.webp")
      center center / cover no-repeat;
}

/* =========================================================
   EVENTS PAGE - ADDED 2026-10-05
   Matches current zl-events-* article markup
   ========================================================= */

.zl-events-page {
  width: 100%;
  overflow: hidden;
  background: var(--zion-white);
}

.zl-events-page *,
.zl-events-page *::before,
.zl-events-page *::after {
  box-sizing: border-box;
}

.zl-events-page .zl-wrap {
  width: min(100% - 3rem, var(--zion-content-width));
  margin-inline: auto;
}

/* HERO */
.zl-events-hero {
  position: relative;
  padding: 76px 0 80px;
  overflow: hidden;
  background: var(--zion-burgundy);
  color: var(--zion-white);
}

.zl-events-hero::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -110px;
  top: -180px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 50%;
}

.zl-events-hero-content {
  position: relative;
  z-index: 1;
  max-width: 820px;
}

.zl-events-eyebrow,
.zl-events-page .zl-section-kicker {
  margin: 0 0 10px;
  color: var(--zion-gold);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.zl-events-hero .zl-events-eyebrow {
  color: #efd7a5;
}

.zl-events-hero h1 {
  margin: 0 0 18px;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 500;
  line-height: 1.02;
}

.zl-events-hero-lead {
  max-width: 760px;
  margin: 0;
  color: rgba(255,255,255,.92);
  font-size: 1.1rem;
  line-height: 1.75;
}

/* INTRO */
.zl-events-intro {
  padding: 66px 0 52px;
  background: var(--zion-white);
}

.zl-events-intro-inner {
  max-width: 800px;
}

.zl-events-intro h2,
.zl-event-feature-content h2,
.zl-events-calendar h2 {
  margin: 0;
  color: var(--zion-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  line-height: 1.1;
}

.zl-events-intro h2 {
  margin-bottom: 14px;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
}

.zl-events-intro-inner > p:last-child {
  max-width: 700px;
  margin: 0;
  color: var(--zion-muted);
  font-size: 1.04rem;
  line-height: 1.7;
}

/* EVENT ROWS */
.zl-event-feature {
  padding: 68px 0;
  background: var(--zion-ivory);
  border-top: 1px solid rgba(111,32,51,.08);
}

.zl-event-feature-alt {
  background: var(--zion-white);
}

.zl-event-feature-grid {
  display: grid;
  grid-template-columns: minmax(300px, 480px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(44px, 6vw, 88px);
}

.zl-event-feature-content {
  max-width: 700px;
}

.zl-event-feature-content h2 {
  margin-bottom: 12px;
  font-size: clamp(2rem, 3.5vw, 3rem);
}

.zl-event-feature-content > p:not(.zl-section-kicker) {
  color: var(--zion-muted);
  font-size: 1rem;
  line-height: 1.72;
}

.zl-event-time {
  margin: 0 0 22px;
  padding-bottom: 16px;
  color: var(--zion-burgundy-dark) !important;
  border-bottom: 1px solid rgba(111,32,51,.16);
  font-weight: 700;
}

.zl-event-location {
  margin-top: 24px;
  color: var(--zion-charcoal) !important;
}

.zl-event-location strong {
  color: var(--zion-burgundy-dark);
}

/* FLYERS */
.zl-event-feature-visual {
  display: flex;
  justify-content: center;
  min-width: 0;
}

.zl-event-flyer-visual a {
  display: block;
  width: 100%;
  max-width: 430px;
  text-decoration: none;
}

.zl-event-flyer-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 650px;
  object-fit: contain;
  background: var(--zion-white);
  border: 1px solid rgba(111,32,51,.10);
  border-radius: 6px;
  box-shadow: 0 16px 38px rgba(0,0,0,.12);
  transition: transform .2s ease, box-shadow .2s ease;
}

.zl-event-flyer-visual a:hover .zl-event-flyer-image,
.zl-event-flyer-visual a:focus .zl-event-flyer-image {
  transform: translateY(-3px);
  box-shadow: 0 20px 44px rgba(0,0,0,.16);
}

/* BUTTONS */
.zl-event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.zl-events-page .zl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  border: 2px solid transparent;
  border-radius: 3px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.zl-events-page .zl-btn-primary {
  background: var(--zion-burgundy);
  border-color: var(--zion-burgundy);
  color: var(--zion-white) !important;
}

.zl-events-page .zl-btn-primary:hover,
.zl-events-page .zl-btn-primary:focus {
  background: var(--zion-burgundy-dark);
  border-color: var(--zion-burgundy-dark);
  color: var(--zion-white) !important;
  transform: translateY(-1px);
}

/* CALENDAR CTA */
.zl-events-calendar {
  padding: 64px 0 70px;
  background: var(--zion-white);
  border-top: 1px solid rgba(111,32,51,.08);
}

.zl-events-calendar-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 48px;
  padding: 38px 42px;
  background: var(--zion-ivory);
  border-left: 5px solid var(--zion-gold);
}

.zl-events-calendar-content {
  max-width: 760px;
}

.zl-events-calendar h2 {
  margin-bottom: 12px;
  font-size: clamp(1.9rem, 3vw, 2.65rem);
}

.zl-events-calendar-content > p:last-child {
  margin: 0;
  color: var(--zion-muted);
  line-height: 1.7;
}

.zl-events-page .zl-btn-secondary {
  background: transparent;
  border-color: var(--zion-burgundy);
  color: var(--zion-burgundy) !important;
}

.zl-events-page .zl-btn-secondary:hover,
.zl-events-page .zl-btn-secondary:focus {
  background: var(--zion-burgundy);
  color: var(--zion-white) !important;
}

/* TABLET */
@media (max-width: 900px) {
  .zl-event-feature-grid {
    grid-template-columns: minmax(240px, 360px) minmax(0, 1fr);
    gap: 38px;
  }

  .zl-events-calendar-inner {
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .zl-events-calendar-action {
    justify-self: start;
  }
}

/* MOBILE */
@media (max-width: 700px) {
  .zl-events-page .zl-wrap {
    width: min(100% - 2.25rem, var(--zion-content-width));
  }

  .zl-events-hero {
    padding: 60px 0 62px;
  }

  .zl-events-hero h1 {
    font-size: 2.75rem;
  }

  .zl-events-hero-lead {
    font-size: 1rem;
    line-height: 1.65;
  }

  .zl-events-intro {
    padding: 50px 0 38px;
  }

  .zl-event-feature {
    padding: 52px 0 56px;
  }

  .zl-event-feature-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .zl-event-feature-alt .zl-event-feature-content {
    order: 2;
  }

  .zl-event-feature-alt .zl-event-feature-visual {
    order: 1;
  }

  .zl-event-flyer-visual a {
    max-width: 390px;
  }

  .zl-event-flyer-image {
    max-height: none;
  }

  .zl-event-actions .zl-btn {
    width: 100%;
  }

  .zl-events-calendar {
    padding: 48px 0 56px;
  }

  .zl-events-calendar-inner {
    padding: 30px 24px;
  }

  .zl-events-calendar-action,
  .zl-events-calendar-action .zl-btn {
    width: 100%;
  }
}
/* =========================================================
   EVENTS — HERO IMAGE
   ========================================================= */

.zl-events-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 430px;
  background:
    linear-gradient(
      90deg,
      rgba(42, 20, 26, 0.84) 0%,
      rgba(67, 29, 39, 0.66) 42%,
      rgba(67, 29, 39, 0.25) 72%,
      rgba(67, 29, 39, 0.08) 100%
    ),
    url("/images/hero/events-hero.webp") center center / cover no-repeat;
  color: var(--zion-white);
}

.zl-events-hero-content {
  position: relative;
  z-index: 2;
  max-width: 720px;
  padding-top: 82px;
  padding-bottom: 86px;
}

.zl-events-hero .zl-events-eyebrow {
  margin: 0 0 12px;
  color: #efd7a5;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.zl-events-hero h1 {
  margin: 0 0 18px;
  color: var(--zion-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 500;
  line-height: 1;
}

.zl-events-hero .zl-events-hero-lead {
  max-width: 650px;
  margin: 0;
  color: rgba(255, 255, 255, 0.94);
  font-size: 1.12rem;
  line-height: 1.7;
}

@media (max-width: 700px) {
  .zl-events-hero {
    min-height: 390px;
    background:
      linear-gradient(
        90deg,
        rgba(42, 20, 26, 0.88) 0%,
        rgba(55, 24, 33, 0.72) 62%,
        rgba(55, 24, 33, 0.38) 100%
      ),
      url("/images/hero/events-hero.webp") center center / cover no-repeat;
  }

  .zl-events-hero-content {
    max-width: 100%;
    padding-top: 68px;
    padding-bottom: 70px;
  }

  .zl-events-hero h1 {
    font-size: 3rem;
  }

  .zl-events-hero .zl-events-hero-lead {
    font-size: 1rem;
    line-height: 1.65;
  }
}
/* =========================================================
   Facility Use — final invitation (post-launch, 2026-10-26)
   ========================================================= */
.zion-facility-final-invite {
  background: #fff;
  text-align: center;
  padding: 72px 24px 80px;
}
.zion-facility-final-invite-inner {
  max-width: 760px;
  margin: 0 auto;
}
.zion-facility-final-invite .zion-eyebrow {
  margin: 0 0 14px;
  color: var(--zion-gold, #b88b46);
  letter-spacing: .13em;
  text-transform: uppercase;
}
.zion-facility-final-invite h2 {
  margin: 0 0 16px;
  color: #222;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.2;
}
.zion-facility-final-invite p:not(.zion-eyebrow) {
  margin: 0 auto 26px;
  max-width: 700px;
  line-height: 1.7;
}
.zion-facility-final-invite .zion-primary-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 54px;
  padding: 14px 28px;
  text-decoration: none;
}
@media (max-width: 600px) {
  .zion-facility-final-invite { padding: 54px 20px 64px; }
}
