/* Shared editorial layouts for Rally, Workshops and Internship. */
.ministry-site {
  --paper: var(--cream);
  --ministry-accent-ink: var(--cream);
}
.ministry-page--rally { --ministry-accent: var(--red); }
.ministry-page--workshops { --ministry-accent: var(--blue); }
.ministry-page--internship {
  --ministry-accent: var(--yellow);
  --ministry-accent-ink: var(--black);
}
.ministry-page {
  color: var(--paper);
  background: var(--black);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --ministry-inset: clamp(20px, 5vw, 100px);
}

.ministry-hero,
.ministry-section {
  padding: clamp(48px, 7vw, 100px) var(--ministry-inset);
}

.ministry-hero { padding-top: 140px; }

.ministry-eyebrow {
  margin: 0 0 2rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ministry-hero h1 {
  margin: 0;
  padding-block: 0.08em 0.18em;
  border-block: 1px solid currentColor;
  font-family: "magister", "Iowan Old Style", Baskerville, "Times New Roman", serif;
  font-size: clamp(48px, 13.5vw, 210px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.07em;
}

.ministry-intro,
.ministry-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
}
.ministry-intro { margin-top: clamp(36px, 5vw, 72px); }

.ministry-intro h2,
.ministry-section h2:not(.ministry-eyebrow) {
  margin: 0;
  font-family: "magister", "Iowan Old Style", Baskerville, "Times New Roman", serif;
  font-size: clamp(42px, 5.8vw, 92px);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.06em;
  overflow-wrap: break-word;
}

.ministry-copy {
  max-width: 40rem;
  margin: 0;
  font-size: clamp(18px, 1.7vw, 25px);
  line-height: 1.4;
  letter-spacing: -0.02em;
}
.ministry-copy p { margin: 0 0 1.25em; }
.ministry-copy p:last-child { margin-bottom: 0; }
.ministry-copy h3 {
  margin: 2rem 0 0.75rem;
  font-size: 1em;
  font-weight: 500;
  text-transform: uppercase;
}
.ministry-section > .ministry-copy { margin-top: 2rem; }

.ministry-section--paper {
  background: var(--paper);
  color: var(--black);
}
.ministry-section--accent {
  background: var(--ministry-accent);
  color: var(--ministry-accent-ink);
}
.ministry-page .editorial-link {
  --link-ink: var(--paper);
  --link-paper: var(--black);
}
.ministry-section--paper .editorial-link {
  --link-ink: var(--black);
  --link-paper: var(--paper);
}

.ministry-list {
  margin: 0 0 2rem;
  padding: 0;
  list-style: none;
  border-top: 1px solid currentColor;
}
.ministry-list li {
  padding: 0.65rem 0;
  border-bottom: 1px solid currentColor;
  font-size: clamp(20px, 2.2vw, 34px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.ministry-season {
  margin: 0;
  padding: 0.75rem 0;
  border-bottom: 1px solid currentColor;
  color: inherit;
  font-size: clamp(20px, 3vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.ministry-facts,
.ministry-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: clamp(36px, 5vw, 72px) 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid currentColor;
  border-left: 1px solid currentColor;
}
.ministry-facts li,
.ministry-options li {
  min-width: 0;
  padding: clamp(16px, 2.5vw, 36px);
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  text-transform: uppercase;
}
.ministry-facts li {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 1rem;
}
.ministry-facts strong {
  font-size: clamp(24px, 3.2vw, 48px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.04em;
}
.ministry-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ministry-options--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ministry-options li {
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 5vw, 72px);
  font-size: clamp(24px, 3.2vw, 48px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.04em;
  overflow-wrap: break-word;
}
.ministry-options .ministry-eyebrow { margin: 0; }
.ministry-outro .editorial-link { margin-top: 2rem; }
.ministry-outro h2:not(.ministry-eyebrow) { font-size: clamp(48px, 8vw, 128px); }

@media (max-width: 900px) {
  .ministry-hero { padding-top: 104px; }
  .ministry-intro,
  .ministry-split { grid-template-columns: 1fr; }
  .ministry-copy { max-width: 42rem; }
  .ministry-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .ministry-hero h1 { font-size: clamp(40px, 12.5vw, 80px); }
  .ministry-options,
  .ministry-options--two { grid-template-columns: 1fr; }
  .ministry-options li { gap: 1.5rem; font-size: 32px; }
}

/* Ministry navigation keeps the shared behavior, using only this page's palette. */
.ministry-site .header-nav a.active,
.ministry-site .ministries-links a:hover,
.ministry-site .ministries-links a:focus-visible {
  color: var(--black);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}
.ministry-site .header-nav a:focus-visible,
.ministry-site .ministries-toggle:focus-visible { outline-color: var(--black); }
.ministry-site .mobile-menu-nav a.active {
  color: var(--ministry-accent-ink);
  background: var(--ministry-accent);
}
.ministry-site .mobile-menu-nav a:hover,
.ministry-site .mobile-menu-nav a:active { color: var(--cream); text-decoration: underline; }
.ministry-site .mobile-menu-nav a.active:hover { color: var(--ministry-accent-ink); }
.ministry-site .mobile-menu-button:focus-visible,
.ministry-site .mobile-menu-nav a:focus-visible { outline-color: var(--cream); }

/* Replace .image-placeholder with <img src="…" alt="…"> inside any figure.
   The figure owns the crop; labels and development marks disappear with the div. */
.ministry-image {
  --image-ratio: 16 / 9;
  position: relative;
  min-width: 0;
  margin: 0;
  aspect-ratio: var(--image-ratio);
  overflow: hidden;
  background: var(--ministry-accent);
  color: var(--ministry-accent-ink);
  border: 1px solid currentColor;
}
.ministry-image--portrait { --image-ratio: 4 / 5; }
.ministry-image--square { --image-ratio: 1; }
.ministry-image--cinema { --image-ratio: 21 / 9; }
.ministry-image > img,
.image-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.image-placeholder {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: clamp(14px, 2vw, 28px);
}
.image-placeholder::before {
  content: "";
  position: absolute;
  inset: 18%;
  border: 1px solid currentColor;
  opacity: 0.35;
  pointer-events: none;
}
.image-placeholder__number {
  font-size: clamp(32px, 7vw, 112px);
  font-weight: 500;
  line-height: 0.9;
  letter-spacing: -0.07em;
}
.image-placeholder__label,
.image-placeholder__note {
  position: relative;
  font-size: clamp(10px, 1vw, 14px);
  line-height: 1.3;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  background: inherit;
}
.image-placeholder__label { margin-top: auto; padding-top: 1.5rem; font-weight: 500; }
.image-placeholder__note { margin-top: 0.35rem; }
.ministry-image--hero { margin-top: clamp(32px, 5vw, 72px); }
.ministry-editorial-column { display: grid; gap: 2rem; }
.ministry-editorial-column .ministry-image { width: 75%; }
.ministry-gallery {
  display: grid;
  gap: clamp(16px, 2.5vw, 40px);
  padding: clamp(40px, 6vw, 90px) var(--ministry-inset);
}
.ministry-section--accent .editorial-link,
.ministry-hero .editorial-link {
  --link-ink: var(--ministry-accent-ink);
  --link-paper: var(--ministry-accent);
}

/* RALLY / oversized red opening and staggered live-photography spreads. */
.ministry-page--rally .ministry-hero {
  background: var(--red);
  color: var(--cream);
  padding-bottom: 0;
}
.ministry-page--rally .ministry-hero h1 {
  font-size: clamp(100px, 28vw, 410px);
  line-height: 0.85;
  text-transform: uppercase;
}
.ministry-page--rally .ministry-image--hero {
  background: var(--near-black);
  transform: translateY(2rem);
  margin-top: 1rem;
}
.ministry-page--rally .ministry-hero + .ministry-section { padding-top: clamp(80px, 9vw, 130px); }
.ministry-gallery--rally {
  grid-template-columns: 1.35fr 0.8fr 1fr;
  align-items: start;
  background: var(--near-black);
}
.ministry-gallery--rally .ministry-image:nth-child(2) { margin-top: 20%; }
.ministry-gallery--rally .ministry-image:nth-child(3) { margin-top: 45%; background: var(--cream); color: var(--black); }

/* WORKSHOPS / blue opening, ruled columns and a smaller process study. */
.ministry-page--workshops .ministry-hero { background: var(--blue); color: var(--cream); }
.ministry-page--workshops .ministry-image--hero { width: 75%; margin-left: auto; background: var(--cream); color: var(--blue); }
.ministry-page--workshops .ministry-options { gap: 0; margin-top: 0; }
.ministry-page--workshops .ministry-options li { justify-content: flex-start; }
.ministry-page--workshops .ministry-options li:nth-child(2) { background: var(--blue); color: var(--cream); }
.ministry-page--workshops .ministry-options .ministry-image { width: 100%; }
.ministry-page--workshops .ministry-options li:nth-child(2) .ministry-image { background: var(--near-black); color: var(--cream); margin-top: auto; }
.ministry-gallery--workshops { grid-template-columns: 1fr 2fr; align-items: end; background: var(--cream); color: var(--black); padding-top: 0; }
.ministry-gallery--workshops .ministry-image:first-child { background: var(--near-black); color: var(--cream); }

/* INTERNSHIP / tour poster, oversized facts and asymmetric contact sheet. */
.ministry-page--internship .ministry-hero { background: var(--yellow); color: var(--black); }
.ministry-page--internship .ministry-image--hero { background: var(--near-black); color: var(--yellow); }
.ministry-page--internship .ministry-facts { margin-top: 0; }
.ministry-page--internship .ministry-facts strong { font-size: clamp(28px, 3.6vw, 56px); }
.ministry-page--internship .ministry-options { grid-template-columns: 1fr; border-left: 0; }
.ministry-page--internship .ministry-options li { flex-direction: row; align-items: baseline; gap: 2rem; border-right: 0; padding-inline: 0; font-size: clamp(28px, 5vw, 76px); }
.ministry-page--internship .ministry-options .ministry-eyebrow { flex: 0 0 2rem; }
.ministry-gallery[hidden] { display: none; }
.ministry-gallery--tour { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; background: var(--near-black); }
.ministry-gallery--tour .ministry-image:nth-child(1) { grid-column: span 8; }
.ministry-gallery--tour .ministry-image:nth-child(2) { grid-column: span 4; margin-top: 25%; background: var(--cream); color: var(--black); }
.ministry-gallery--tour .ministry-image:nth-child(3) { grid-column: span 4; }
.ministry-gallery--tour .ministry-image:nth-child(4) { grid-column: span 8; align-self: end; }
.ministry-gallery--tour .ministry-image:nth-child(5) { grid-column: 3 / span 8; background: var(--cream); color: var(--black); }
.ministry-page--internship .ministry-outro h2 { font-size: clamp(44px, 7.5vw, 120px); }

@media (max-width: 900px) {
  .ministry-gallery--rally { grid-template-columns: 1.2fr 1fr; }
  .ministry-gallery--rally .ministry-image:first-child { grid-column: 1 / -1; width: 85%; }
  .ministry-gallery--rally .ministry-image:nth-child(2) { margin-top: 0; }
  .ministry-gallery--rally .ministry-image:nth-child(3) { margin-top: 25%; }
  .ministry-editorial-column { grid-template-columns: 1fr 1fr; align-items: start; }
  .ministry-editorial-column .ministry-image { width: 100%; }
  .ministry-page--workshops .ministry-image--hero { width: 90%; }
}

@media (max-width: 640px) {
  .ministry-image--cinema { --image-ratio: 4 / 3; }
  .ministry-editorial-column { grid-template-columns: 1fr; }
  .ministry-editorial-column .ministry-image { width: 72%; margin-left: auto; }
  .ministry-page--workshops .ministry-image--hero { width: 100%; --image-ratio: 4 / 3; }
  .ministry-page--workshops .ministry-options--two { grid-template-columns: 1fr; }
  .ministry-page--workshops .ministry-options li:first-child .ministry-image { --image-ratio: 4 / 3; }
  .ministry-page--workshops .ministry-options li:nth-child(2) .ministry-image { width: 80%; margin-left: auto; }
  .ministry-gallery--workshops { grid-template-columns: 1fr 1.4fr; align-items: start; gap: 12px; }
  .ministry-gallery--workshops .ministry-image:first-child { --image-ratio: 4 / 5; }
  .ministry-gallery--workshops .ministry-image:last-child { margin-top: 40%; --image-ratio: 4 / 5; }
  .ministry-page--internship .ministry-facts strong { font-size: clamp(24px, 6vw, 38px); }
  .ministry-page--internship .ministry-options li { gap: 0.75rem; }
  .ministry-gallery--tour { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .ministry-gallery--tour .ministry-image:nth-child(1) { grid-column: 1 / -1; }
  .ministry-gallery--tour .ministry-image:nth-child(2),
  .ministry-gallery--tour .ministry-image:nth-child(3) { grid-column: span 1; }
  .ministry-gallery--tour .ministry-image:nth-child(2) { margin-top: 0; }
  .ministry-gallery--tour .ministry-image:nth-child(3) { margin-top: 30%; }
  .ministry-gallery--tour .ministry-image:nth-child(4) { grid-column: 1 / -1; --image-ratio: 16 / 9; }
  .ministry-gallery--tour .ministry-image:nth-child(5) { grid-column: 1 / -1; width: 80%; justify-self: end; }
}
