/* Ministries: a navy introduction and compact, consistently framed photography. */
.story-page--ministries .s-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(155deg, var(--ink) 18%, #102d46 55%, #0a2237);
  color: var(--cream-on-dark);
}
.story-page--ministries .s-hero > .section__inner { position: relative; z-index: 1; }
/* A static dot field and two drifting light washes sit below all content. */
.ministry-hero-atmosphere { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ministry-hero-atmosphere::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle, rgba(176,209,232,.19) .75px, transparent 1px) 0 0 / 14px 14px;
  -webkit-mask-image: linear-gradient(90deg, transparent 10%, rgba(0,0,0,.25) 40%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 10%, rgba(0,0,0,.25) 40%, #000 100%);
}
.ministry-hero-atmosphere i {
  position: absolute;
  display: block;
  width: clamp(30rem, 65vw, 65rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(76,160,217,.19), rgba(76,160,217,.065) 38%, transparent 70%);
  left: 34%;
  top: -35%;
  animation: ministry-hero-drift 22s ease-in-out -6s infinite alternate;
  animation-play-state: paused;
}
.ministry-hero-atmosphere i:nth-child(2) {
  width: clamp(25rem, 52vw, 54rem);
  background: radial-gradient(ellipse, rgba(198,160,98,.12), rgba(198,160,98,.035) 40%, transparent 70%);
  left: 48%;
  top: 8%;
  animation-duration: 28s;
  animation-delay: -15s;
  animation-direction: alternate-reverse;
}
.s-hero.is-atmosphere-active .ministry-hero-atmosphere i { animation-play-state: running; }
@keyframes ministry-hero-drift {
  0% { transform: translate3d(-16%, -8%, 0) scale(.94); }
  50% { transform: translate3d(7%, 15%, 0) scale(1.08); }
  100% { transform: translate3d(-8%, 35%, 0) scale(.98); }
}
.story-page--ministries .header.on-dark,
.story-page--ministries .header.on-dark.is-scrolled {
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.story-page--ministries .header.menu-open { background: transparent; }
.story-page--ministries .s-hero h1 em,
.story-page--ministries .s-hero .s-icon { color: #93c9ed; }
.story-page--ministries .s-hero__lede,
.story-page--ministries .s-photo figcaption { color: #d2deE8; }
.story-page--ministries .s-hero__button { background: var(--paper); color: var(--ink); }
.story-page--ministries .s-hero__button:hover { background: #93c9ed; color: var(--ink); }
.story-page--ministries .s-index { border-color: var(--line-light); }
.story-page--ministries .s-index a:hover { color: #93c9ed; }
/* Geometry comes from the same shared hero styles as Weekly, Events and Team. */
.story-page--ministries .s-photo::before { border-color: rgba(255,255,255,.75); pointer-events: none; }
.story-page--ministries .s-photo__ornament { color: #93c9ed; }
.story-page--ministries .s-photo img { display: block; }
/* Landscape photo in the tall arch: keep the Above & Beyond shirt, the raised hand and the band in frame. */
.story-page--ministries .s-photo--hero img { object-position: 18% center; }
.story-page--ministries .min-item__media img,
.story-page--ministries .min-item:nth-child(even) .min-item__media img {
  display: block;
  height: auto;
  max-height: 25rem;
  aspect-ratio: 3 / 2;
  border-radius: 1.4rem;
}
.story-page--ministries #prayer .min-item__media img { object-position: 58% 48%; }
/* Portrait source: crop to the shared frame, keeping the screen title and the family on stage. */
.story-page--ministries #dedications .min-item__media img { object-position: center 52%; }
.story-page--ministries #bible-study .min-item__media img { object-position: center 32%; }
.story-page--ministries .min-item__body .btn { margin-right: .3rem; }
@media (min-width: 861px) {
  .story-page--ministries .min-item { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Move individual strokes; the icon itself stays anchored throughout each loop. */
.story-page--ministries .min-item .s-accent.is-animating > .s-icon,
.story-page--ministries .s-index .s-accent.is-animating > .s-icon { animation: none; }
.story-page--ministries #celebrate-recovery .s-accent.is-animating > .s-icon,
.story-page--ministries .s-index a[href="#celebrate-recovery"].is-animating > .s-icon { animation: ministry-heart 1.8s ease-in-out; }
.story-page--ministries .is-animating .ministry-wave { animation: ministry-wave 1.8s ease-in-out; }
.story-page--ministries .is-animating .ministry-wave--back { animation-direction: reverse; }
.ministry-meridians { transform-origin: 32px 32px; }
.story-page--ministries .is-animating .ministry-meridians { animation: ministry-globe 1.8s ease-in-out; }
@keyframes ministry-heart { 0%, 100% { transform: scale(1); } 35% { transform: scale(1.1); } 65% { transform: scale(1.035); } }
@keyframes ministry-wave { from { transform: translateX(0); } to { transform: translateX(-28px); } }
@keyframes ministry-globe { from { transform: rotateY(0deg); } to { transform: rotateY(360deg); } }
/* One-time entrances finish at the natural layout, leaving hover effects free. */
.ministries-motion .ministry-enter:not(.is-entered) { opacity: 0; transform: translate3d(0, var(--reveal-dist), 0); }
.ministries-motion .ministry-enter.is-entered {
  animation: ministry-enter var(--reveal-dur) var(--ease-out) var(--entrance-delay, 0ms) backwards;
}
.ministries-motion .s-photo.ministry-enter.is-entered { animation-name: ministry-photo-enter; animation-duration: 1.1s; }
.ministries-motion .s-photo.is-entered::before {
  animation: ministry-outline-enter 1s var(--ease-out) calc(var(--entrance-delay) + 220ms) backwards;
}
.ministries-motion .s-photo.is-entered figcaption {
  animation: ministry-enter .8s var(--ease-out) calc(var(--entrance-delay) + 340ms) backwards;
}
.ministries-motion .ministry-enter:focus-within { opacity: 1; transform: none; animation: none; }
@keyframes ministry-enter {
  from { opacity: 0; transform: translate3d(0, var(--reveal-dist), 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes ministry-photo-enter {
  from { opacity: 0; transform: translate3d(0, 26px, 0) scale(.98); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes ministry-outline-enter {
  from { opacity: 0; transform: translate3d(-.6rem, .6rem, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@media (max-width: 860px) {
  .story-page--ministries .min-item__media img { max-height: 22rem; }
}
/* The capped height makes a wider frame here; lift the focus so the screen title clears the top. */
@media (min-width: 701px) and (max-width: 860px) {
  .story-page--ministries #dedications .min-item__media img { object-position: center 47%; }
}
@media (max-width: 700px) {
  .ministry-hero-atmosphere i { left: -30%; top: 5%; }
  .ministry-hero-atmosphere i:nth-child(2) { left: -5%; top: 42%; }
  .ministry-hero-atmosphere::after { opacity: .7; }
  .story-page--ministries .min-item { gap: 1.7rem; }
  .story-page--ministries .min-item__media img,
  .story-page--ministries .min-item:nth-child(even) .min-item__media img { border-radius: 1.1rem; }
}
@media (max-width: 640px) {
  /* Release the old staggered ministry links into the shared three-column grid. */
  .story-page--ministries .s-index a:nth-child(n) { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .ministries-motion .ministry-enter,
  .ministries-motion .ministry-enter:not(.is-entered),
  .ministries-motion .ministry-enter.is-entered,
  .ministries-motion .s-photo.ministry-enter.is-entered,
  .ministries-motion .s-photo.is-entered::before,
  .ministries-motion .s-photo.is-entered figcaption { animation: none; opacity: 1; transform: none; }
  .ministry-hero-atmosphere i { animation: none; }
  .story-page--ministries .is-animating .ministry-wave,
  .story-page--ministries .is-animating .ministry-meridians,
  .story-page--ministries .s-index a[href="#celebrate-recovery"].is-animating > .s-icon,
  .story-page--ministries #celebrate-recovery .s-accent.is-animating > .s-icon { animation: none; }
}
