/*
Theme Name: CENZ
Theme URI: https://christembassy.nz
Author: Christ Embassy New Zealand
Description: Foundation theme for christembassy.nz — carries the approved Radiant Nations
  palette and type stack, the decided transparent-over-hero header behaviour, and the
  Rev34 homepage section library. Beaver Builder composes pages on top of this; the
  sections themselves live here as CSS + shortcodes so they survive a rebuild.
Version: 1.4.46
Requires at least: 6.0
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: cenz
*/


/* ══ Fonts — self-hosted ═════════════════════════════════════════════════
   Served from this server, not Google's CDN.

   This is a privacy decision before it is a performance one. Loading fonts from
   fonts.googleapis.com sends every visitor's IP address to Google before the
   site's regional consent decision. Self-hosting removes
   the third party from the page entirely.

   Files are the official @fontsource builds (SIL Open Font License; licences in
   assets/fonts/). Latin subset only — 140KB for all six weights.

   To add a weight: copy the woff2 from the fontsource package into
   assets/fonts/ and add a block below. Do NOT re-add the CDN link.

   NOTE: the Rev7 mockup HTML *does* link Google Fonts. That is a property of the
   mockup file only. Do not carry it across when porting a future revision.      */

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/hanken-grotesk-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/hanken-grotesk-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("assets/fonts/hanken-grotesk-latin-800-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/inter-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/inter-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/inter-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ══ Design tokens ══════════════════════════════════════════════════════════
   Straight from the Content Package via website-context.md § Brand & Design
   Direction. Change them HERE and nowhere else — every rule below reads these,
   and so should every Beaver Builder global setting.

   The six core brand colours and optional teal highlight are also seeded into Beaver Builder's Global Styles by
   bin/setup.sh. Two sources of truth is the failure mode: change one, change the
   other in the same sitting.                                                    */

:root {
  /* Palette */
  --cenz-navy:        #0A1F3D;  /* primary — headers, nav, hero, footer        */
  --cenz-royal:       #1B3F91;  /* secondary — gradient accents                */
  --cenz-gold:        #C5A36C;  /* accent ONLY — rules, borders, badges, CTAs   */
  --cenz-gold-text:   #85662B;  /* accessible text/focus gold on light or navy */
  --cenz-white:       #FFFFFF;
  --cenz-ivory:       #FAF3E7;  /* light-mode page background                  */
  --cenz-silver:      #A0A0A0;  /* secondary copy and subdued interface detail */
  --cenz-teal:        #2CA9A1;  /* optional highlight; keep below 5%           */

  /* Compatibility aliases retained for Rev7-era selectors and saved modules.
     They now resolve to the canonical navy and gold rather than introducing
     duplicate brand colours. Rich Gold passes contrast on Deep Navy. */
  --cenz-navy-deep:   var(--cenz-navy);
  --cenz-gold-light:  var(--cenz-gold);

  --cenz-ink:         #1A1A1A;  /* body text on light backgrounds              */
  --cenz-ink-muted:   #5A5F6B;
  --cenz-ink-soft:    #4a5675;  /* section intro copy on ivory                 */
  --cenz-hairline:    rgba(10, 31, 61, 0.12);
  --cenz-hairline-warm: #eadfc9; /* card borders on ivory                      */

  /* Type — the decided direction, self-hosted (see @font-face above) */
  --cenz-font-heading: "Hanken Grotesk", system-ui, -apple-system, sans-serif;
  --cenz-font-body:    "Inter", system-ui, -apple-system, sans-serif;

  /* Rhythm */
  --cenz-measure:     73.75rem;  /* 1180px — matches the Rev7 .wrap            */
  --cenz-gutter:      clamp(1.25rem, 4vw, 1.75rem);
  --cenz-header-h:    4.125rem;  /* 66px — the Rev7 nav row height             */
  --cenz-section-y:   clamp(3rem, 5vw, 4.5rem);

  --cenz-ease:        cubic-bezier(0.16, 1, 0.3, 1);
  --cenz-radius:      14px;
}

/* ══ Reset ═══════════════════════════════════════════════════════════════ */

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

body {
  margin: 0;
  font-family: var(--cenz-font-body);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--cenz-ink);
  background: var(--cenz-ivory);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--cenz-font-heading);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.015em;
  margin: 0 0 0.5em;
  color: var(--cenz-navy);
}

h1 { font-size: clamp(2.25rem, 5.4vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3.4vw, 2.125rem); }
h3 { font-size: clamp(1.25rem, 2.4vw, 1.5rem); }

a { color: var(--cenz-royal); }
a:hover { color: var(--cenz-gold-text); }

img { max-width: 100%; height: auto; display: block; }

/* Visible focus. Do not remove — it is the difference between a site a
   keyboard user can navigate and one they cannot. */
:focus-visible {
  outline: 3px solid var(--cenz-gold-text);
  outline-offset: 2px;
}

.cenz-skip-link {
  position: absolute; left: -9999px;
  background: var(--cenz-navy); color: var(--cenz-white);
  padding: 0.75rem 1.25rem; z-index: 999;
}
.cenz-skip-link:focus { left: 1rem; top: 1rem; }

.cenz-container {
  max-width: var(--cenz-measure);
  margin-inline: auto;
  padding-inline: var(--cenz-gutter);
}

/* Screen-reader-only text. Used for the section landmarks the mockup omits. */
.cenz-sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.cenz-eyebrow {
  font-family: var(--cenz-font-heading);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--cenz-gold-text);
  margin-bottom: 0.5rem;
}

/* ══ Buttons ═════════════════════════════════════════════════════════════
   Rev7 moved to a pill. The square-ish 2px radius of v0.3 is gone — if a
   Beaver Builder button module looks wrong next to these, set the module's
   radius to 32px rather than adding a second button style here.              */

.cenz-btn {
  display: inline-block;
  font-family: var(--cenz-font-heading);
  font-weight: 700;
  font-size: 0.9375rem;
  letter-spacing: 0.01em;
  padding: 0.9375rem 1.875rem;
  border: 0;
  border-radius: 32px;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.15s var(--cenz-ease), box-shadow 0.15s, background-color 0.15s;
}
.cenz-btn:hover { transform: translateY(-2px); }

.cenz-btn--gold  { background: var(--cenz-gold); color: var(--cenz-navy); }
.cenz-btn--gold:hover  { color: var(--cenz-navy); box-shadow: 0 10px 24px rgba(197, 163, 108, 0.35); }

.cenz-btn--outline { border: 1.5px solid rgba(255, 255, 255, 0.65); color: var(--cenz-white); background: transparent; }
.cenz-btn--outline:hover { background: rgba(255, 255, 255, 0.12); color: var(--cenz-white); }

/* Same outline button, on a light background. */
.cenz-btn--outline-navy { border: 1.5px solid var(--cenz-navy); color: var(--cenz-navy); background: transparent; }
.cenz-btn--outline-navy:hover { background: rgba(10, 31, 61, 0.06); color: var(--cenz-navy); }

.cenz-btn--block { display: block; width: 100%; text-align: center; }

/* Kept as an alias so any Rev5/Rev6-era markup or saved BB module still renders. */
.cenz-btn--ghost { border: 1.5px solid rgba(255, 255, 255, 0.65); color: var(--cenz-white); background: transparent; }

/* ══ Utility bar ═════════════════════════════════════════════════════════
   Above the header, scrolls away with the page. Carries the single highest-
   intent action on the site for a first-time visitor: when is the next service
   and how do I watch it.                                                      */

.cenz-utility {
  background: var(--cenz-navy-deep);
  color: #cfd7e8;
  font-size: 0.8125rem;
  padding: 0.4375rem 0;
}
.cenz-utility__inner {
  display: flex; justify-content: space-between; align-items: center;
  gap: 1rem; flex-wrap: wrap;
}
.cenz-utility__dot {
  display: inline-block; width: 7px; height: 7px;
  border-radius: 50%; background: #4ade80;
  margin-right: 0.4375rem;
  box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.2);
}
.cenz-utility a { color: var(--cenz-gold-light); font-weight: 600; text-decoration: none; }
.cenz-utility a:hover { color: var(--cenz-white); }

@media (max-width: 560px) {
  .cenz-utility { font-size: 0.75rem; }
  .cenz-utility__inner { justify-content: center; text-align: center; }
}

/* ══ Header ══════════════════════════════════════════════════════════════
   DECIDED (Rev5/Rev6, Aug 10 2026; carried into Rev7): over the hero the header
   has no background of its own — the photo shows straight through. Past the hero
   it gains solid navy so it stays legible over the lighter sections.

   Sticky, not fixed. Sticky lets the utility bar scroll away naturally; fixed
   would have required a body offset that fights the hero's negative margin.
   The hero is pulled up UNDER the header rather than the header being pulled
   down over the hero — negative-margining a sticky element glitches the moment
   it flips from static to stuck.                                               */

.cenz-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: transparent;
  transition: background-color 0.25s var(--cenz-ease), backdrop-filter 0.25s;
}
.cenz-header.is-scrolled,
.cenz-header.is-solid {
  background: rgba(10, 31, 61, 0.97);
  backdrop-filter: blur(6px);
}

.cenz-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: var(--cenz-header-h);
  padding-block: 0.625rem;
}

.cenz-logo { display: flex; align-items: center; text-decoration: none; }
.cenz-logo img { height: 46px; width: auto; }

/* The "Menu" label + toggle switch, mirroring the decided CE Love pattern. The
   visible link row is deliberately gone — everything lives in the overlay. */
.cenz-menu-toggle {
  display: flex; align-items: center; gap: 0.625rem;
  background: none; border: 0; cursor: pointer;
  font-family: var(--cenz-font-heading);
  font-size: 0.9rem; font-weight: 700; letter-spacing: 0.02em;
  color: var(--cenz-white);
  padding: 0.5rem 0.25rem;
}
.cenz-menu-toggle:hover { color: var(--cenz-gold-light); }
.cenz-menu-toggle__switch {
  width: 38px; height: 20px; border-radius: 20px;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.3);
  position: relative;
  transition: background-color 0.2s;
}
.cenz-menu-toggle__switch::after {
  content: ""; position: absolute; top: 2px; left: 2px;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--cenz-white);
  transition: transform 0.2s var(--cenz-ease);
}
.cenz-menu-toggle:hover .cenz-menu-toggle__switch { background: rgba(240, 200, 120, 0.28); }
.cenz-menu-toggle[aria-expanded="true"] .cenz-menu-toggle__switch::after { transform: translateX(18px); }

/* ══ Overlay menu ════════════════════════════════════════════════════════
   Photo panel + flat link list. The photo is decoration only and is hidden
   below 760px, where it would squeeze the links to nothing.                   */

.cenz-overlay {
  position: fixed; inset: 0; z-index: 100;
  display: flex; overflow: hidden;
  opacity: 0; visibility: hidden;
  transition: opacity 0.35s var(--cenz-ease), visibility 0.35s;
}
.cenz-overlay.is-open { opacity: 1; visibility: visible; }

.cenz-overlay__photo {
  flex: 0 0 42%;
  background-size: cover; background-position: center;
  position: relative; display: none;
}
.cenz-overlay__photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 60%, var(--cenz-navy-deep) 100%);
}
@media (min-width: 760px) { .cenz-overlay__photo { display: block; } }

.cenz-overlay__panel {
  flex: 1; background: var(--cenz-navy-deep);
  overflow-y: auto; position: relative;
}
.cenz-overlay__top {
  display: flex; justify-content: space-between; align-items: center;
  padding: 1.375rem 2rem;
}
.cenz-overlay__top img { height: 36px; width: auto; }
.cenz-overlay__close {
  background: transparent; border: 1px solid rgba(255, 255, 255, 0.3);
  color: var(--cenz-white); width: 40px; height: 40px;
  border-radius: 50%; cursor: pointer; font-size: 1.125rem;
  line-height: 1; flex-shrink: 0;
}
.cenz-overlay__close:hover { border-color: var(--cenz-gold-light); color: var(--cenz-gold-light); }

.cenz-overlay__nav { padding: 1.25rem 2rem 2.5rem; }
.cenz-overlay__nav ul { list-style: none; margin: 0; padding: 0; }
.cenz-overlay__nav a {
  display: block;
  color: #e9ecf5;
  font-family: var(--cenz-font-heading);
  font-weight: 700; font-size: 1.875rem;
  padding: 0.75rem 0; text-decoration: none;
  transition: color 0.15s, padding-left 0.15s var(--cenz-ease);
}
.cenz-overlay__nav a:hover,
.cenz-overlay__nav a:focus-visible { color: var(--cenz-gold-light); padding-left: 8px; }

.cenz-overlay__social {
  padding: 0.625rem 2rem 2.5rem;
  display: flex; gap: 1.375rem; flex-wrap: wrap;
  font-size: 0.85rem;
}
.cenz-overlay__social a { color: #8b96b8; text-decoration: none; }
.cenz-overlay__social a:hover { color: var(--cenz-gold-light); }

@media (max-width: 560px) {
  .cenz-overlay__nav a { font-size: 1.5rem; }
  .cenz-overlay__top, .cenz-overlay__nav, .cenz-overlay__social {
    padding-left: 1.375rem; padding-right: 1.375rem;
  }
}

/* ══ Hero ════════════════════════════════════════════════════════════════
   Pulled up under the sticky header by exactly the header height, then padded
   back down by the same amount so the headline never slides beneath the logo.
   Change --cenz-header-h and both follow.                                     */

.cenz-hero {
  position: relative;
  min-height: 92vh;
  margin-top: calc(-1 * var(--cenz-header-h));
  padding-top: var(--cenz-header-h);
  display: flex; align-items: flex-end;
  background-color: var(--cenz-navy-deep);
  overflow: hidden;
}
/* REVISED 11 Sep 2026 — Rev33's video-first, folder-verified carousel. */
.cenz-hero__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.cenz-hero__slide {
  position: absolute; inset: 0;
  opacity: 0; visibility: hidden;
  transition: opacity 1.15s ease;
  transform: translateZ(0);
}
.cenz-hero__slide.is-active { opacity: 1; visibility: visible; }
.cenz-hero__slide--image { background-size: cover; background-position: center 42%; background-repeat: no-repeat; }
.cenz-hero__slide video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 42%; pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
	.cenz-hero__slide { transition: none; }
}
.cenz-hero::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg,
    rgba(13, 28, 58, 0.35) 0%,
    rgba(13, 28, 58, 0.55) 55%,
    rgba(13, 28, 58, 0.94) 100%);
}
.cenz-hero__content {
  position: relative; z-index: 2;
  max-width: var(--cenz-measure);
  margin-inline: auto;
  padding: 0 var(--cenz-gutter) 4.75rem;
  color: var(--cenz-white);
  width: 100%;
}
.cenz-hero__content .cenz-eyebrow { color: var(--cenz-gold-light); }
.cenz-hero h1 { color: var(--cenz-white); margin: 0.875rem 0 1rem; max-width: 51.25rem; }
.cenz-hero h1 em { color: var(--cenz-gold-light); font-style: normal; }
.cenz-hero p { font-size: 1.125rem; color: #e6eaf3; max-width: 35rem; margin: 0 0 2rem; }
.cenz-hero__ctas { display: flex; gap: 1rem; flex-wrap: wrap; }
.cenz-hero__play {
  display: none; margin-top: 1rem; padding: .65rem 1rem;
  border: 1px solid rgba(255,255,255,.72); border-radius: 999px;
  background: rgba(10,31,61,.58); color: var(--cenz-white);
  font: 700 .875rem/1 var(--cenz-font-heading); cursor: pointer;
}
.cenz-hero__bg.video-needs-play + .cenz-hero__content .cenz-hero__play { display: inline-flex; }
.cenz-hero__play:focus-visible { outline: 3px solid var(--cenz-gold-light); outline-offset: 3px; }
.cenz-hero__scroll {
  position: absolute; z-index: 3; left: 50%; bottom: 1.35rem;
  width: 3rem; height: 3rem; display: grid; place-items: center;
  color: var(--cenz-white); transform: translateX(-50%);
  border: 1px solid rgba(255,255,255,.52); border-radius: 50%;
  background: rgba(10,31,61,.28); text-decoration: none;
  transition: color .2s, border-color .2s, background .2s;
  animation: cenz-scroll-cue 2.2s ease-in-out infinite;
}
.cenz-hero__scroll svg { width: 1.35rem; height: auto; }
.cenz-hero__scroll:hover { color: var(--cenz-gold-light); border-color: var(--cenz-gold-light); background: rgba(10,31,61,.72); }
.cenz-hero__scroll:focus-visible { outline: 3px solid var(--cenz-gold-light); outline-offset: 4px; }
@keyframes cenz-scroll-cue {
  0%, 100% { transform: translate(-50%, 0); }
  50% { transform: translate(-50%, .42rem); }
}

@media (max-width: 640px) {
  .cenz-hero { min-height: 82vh; }
  .cenz-hero__content { padding-bottom: 4.75rem; }
}
@media (prefers-reduced-motion: reduce) { .cenz-hero__scroll { animation: none; } }

/* ══ Section scaffolding ═════════════════════════════════════════════════ */

.cenz-section { padding-block: var(--cenz-section-y); }
.cenz-section--ivory { background: var(--cenz-ivory); }
.cenz-section--white { background: var(--cenz-white); }

.cenz-section-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 1.5rem; flex-wrap: wrap; gap: 0.875rem;
}
.cenz-section-head h2 { margin: 0; }
.cenz-section-head__intro {
  color: var(--cenz-ink-soft);
  max-width: 30rem;
  font-size: 0.9375rem;
  margin: 0;
}

/* ══ Locations ═══════════════════════════════════════════════════════════
   Eight cards: seven physical campuses plus the online campus, which is
   deliberately styled inverted so it reads as an equal option rather than an
   afterthought. Data comes from inc/locations.php — do not hardcode addresses
   into a Beaver Builder module.                                               */

.cenz-loc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
@media (max-width: 980px) { .cenz-loc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .cenz-loc-grid { grid-template-columns: 1fr; } }

.cenz-loc-card {
  background: var(--cenz-white);
  border: 1px solid var(--cenz-hairline-warm);
  border-radius: var(--cenz-radius);
  padding: 1.375rem;
  display: flex; flex-direction: column;
  transition: box-shadow 0.15s, transform 0.15s var(--cenz-ease);
}
.cenz-loc-card:hover { box-shadow: 0 14px 30px rgba(10, 31, 61, 0.1); transform: translateY(-3px); }

.cenz-loc-card__name {
  font-family: var(--cenz-font-heading);
  font-weight: 800; font-size: 1.125rem;
  margin: 0 0 0.375rem; color: var(--cenz-navy);
}
.cenz-loc-card__addr {
  font-size: 0.84rem; color: #5b6685;
  margin: 0 0 0.625rem; min-height: 2.375rem;
}
.cenz-loc-card__time {
  font-size: 0.8125rem; font-weight: 600;
  color: var(--cenz-royal); margin: 0 0 0.875rem;
}
.cenz-loc-card__link {
  margin-top: auto;
  font-weight: 700; font-size: 0.84rem;
  color: var(--cenz-royal); text-decoration: none;
}
.cenz-loc-card__link:hover { color: var(--cenz-gold-text); }

.cenz-loc-card--online { background: var(--cenz-navy); border-color: var(--cenz-navy); }
.cenz-loc-card--online .cenz-loc-card__name,
.cenz-loc-card--online .cenz-loc-card__addr,
.cenz-loc-card--online .cenz-loc-card__time { color: var(--cenz-white); }
.cenz-loc-card--online .cenz-loc-card__link { color: var(--cenz-gold-light); }

/* ══ Scripture band ══════════════════════════════════════════════════════ */

.cenz-scripture {
  background: var(--cenz-navy); color: var(--cenz-white);
  padding-block: clamp(3rem, 5vw, 4.5rem);
  text-align: center; position: relative; overflow: hidden;
}
/* The oversized quotation mark is decoration. aria-hidden isn't possible on a
   pseudo-element, but ::before content is not exposed to modern screen readers
   when the element carries a role — the <blockquote> below supplies the meaning. */
.cenz-scripture::before {
  content: "\201C";
  position: absolute; top: -40px; left: 50%;
  transform: translateX(-50%);
  font-size: 21rem; line-height: 1;
  color: rgba(255, 255, 255, 0.04);
  font-family: Georgia, "Times New Roman", serif;
  pointer-events: none;
}
.cenz-scripture__inner { position: relative; z-index: 2; max-width: 47.5rem; }
.cenz-scripture blockquote { margin: 0; }
.cenz-scripture p {
  font-size: clamp(1.25rem, 3vw, 1.6875rem);
  font-family: var(--cenz-font-heading);
  font-weight: 600; line-height: 1.45;
  color: #f3f0e6; margin: 0;
}
.cenz-scripture cite {
  display: block; margin-top: 1.375rem;
  color: var(--cenz-gold-light); font-style: normal;
  font-weight: 700; letter-spacing: 0.06em;
  font-size: 0.8125rem; text-transform: uppercase;
}

/* ══ Life Together gallery ═══════════════════════════════════════════════ */

/* REVISED 27 Aug 2026 — uniform 4-column grid, replacing the 2-column/first-
   child-spans-both layout above (which existed only to fill 3 photos evenly).
   With 8 real photos from testPhotos/fellowshiptogether/ now in place, a plain
   repeat(4, 1fr) grid with a fixed aspect-ratio per figure keeps every photo
   the same size regardless of its original orientation — matches
   mockups/CENZ_Homepage_Mockup_Rev9.html exactly. */
.cenz-life-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.875rem;
  margin-top: 0;
}
.cenz-life { padding-block: clamp(3rem, 5vw, 4rem) clamp(2.5rem, 4vw, 3.25rem); }
.cenz-life .cenz-section-head { margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem); }
.cenz-life-grid figure {
  position: relative; margin: 0;
  border-radius: 16px; overflow: hidden;
  aspect-ratio: 4 / 5;
}
/* <picture> is inline by default, so a percentage height on the <img> inside
   resolves against the <figure> only by accident of CSS's containing-block
   rules. Making it a block is explicit and survives someone adding padding. */
.cenz-life-grid picture { display: block; width: 100%; height: 100%; }
.cenz-life-grid img { width: 100%; height: 100%; object-fit: cover; }
.cenz-life-grid figcaption {
  position: absolute; inset: auto 0 0 0;
  padding: 1.125rem;
  background: linear-gradient(180deg, transparent, rgba(13, 28, 58, 0.85));
  color: var(--cenz-white);
  font-family: var(--cenz-font-heading);
  font-weight: 700; font-size: 0.9rem;
}

@media (max-width: 900px) {
  .cenz-life-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .cenz-life-grid { grid-template-columns: 1fr; gap: 0.75rem; }
}

/* ══ Mission & Vision ════════════════════════════════════════════════════ */

.cenz-mv {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(32rem, 42vw, 36rem);
  display: flex;
  align-items: center;
  background: var(--cenz-navy-deep);
  color: var(--cenz-white);
  padding-block: clamp(3rem, 5vw, 4.5rem);
}
.cenz-mv::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url("assets/img/radiant-nations-aotearoa-1600.webp");
  background-size: cover;
  background-position: center;
  transform: scale(1.015);
}
.cenz-mv::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(7,22,45,.97) 0%, rgba(7,22,45,.91) 38%, rgba(7,22,45,.62) 64%, rgba(7,22,45,.28) 100%),
    linear-gradient(180deg, rgba(10,31,61,.16), rgba(7,17,38,.62));
}
.cenz-mv__inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2.75rem, 7vw, 5.75rem); align-items: center; }
.cenz-mv h2 { color: var(--cenz-white); margin-bottom: 1rem; font-size: clamp(2.375rem, 5vw, 3.875rem); line-height: 1.02; letter-spacing: -.04em; max-width: 10ch; }
.cenz-mv__lede { color: #dbe1f0; font-size: 1.0625rem; line-height: 1.75; margin: 0; max-width: 33rem; }
.cenz-mv .cenz-eyebrow { color: var(--cenz-gold-light); }

.cenz-mv__card {
  background: rgba(7, 22, 45, 0.62);
  border: 1px solid rgba(224, 196, 135, 0.32);
  border-radius: 16px;
  padding: 1.875rem;
  box-shadow: 0 22px 70px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(12px);
}
.cenz-mv__card:first-child { border-top: 3px solid var(--cenz-gold); }
.cenz-mv__card + .cenz-mv__card { margin-top: 1rem; }
.cenz-mv__card h3 {
  color: var(--cenz-gold-light);
  font-family: var(--cenz-font-heading);
  font-size: 0.8125rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  margin: 0 0 0.625rem;
}
.cenz-mv__card p { color: #eef1f8; font-size: 0.9375rem; margin: 0; }
.cenz-mv__card p + p { margin-top: 0.875rem; }
.cenz-mv__links a { color: var(--cenz-gold-light); font-weight: 700; }
.cenz-mv__links strong { color: var(--cenz-white); }

@media (max-width: 860px) {
  .cenz-mv { min-height: 0; }
  .cenz-mv::before { background-image: url("assets/img/radiant-nations-aotearoa-960.webp"); background-position: 68% center; }
  .cenz-mv::after { background: linear-gradient(180deg, rgba(7,22,45,.9), rgba(7,22,45,.84)); }
  .cenz-mv__inner { grid-template-columns: 1fr; gap: 2.25rem; }
  .cenz-mv h2 { max-width: 13ch; }
}
@media (prefers-reduced-motion: reduce) { .cenz-mv::before { transform: none; } }

/* ══ Pastor teaser ═══════════════════════════════════════════════════════ */

.cenz-pastor { background: var(--cenz-white); padding-block: clamp(3rem, 5vw, 4.5rem); }
.cenz-pastor__inner { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 3.5rem; align-items: center; }
.cenz-pastor picture { display: block; }
.cenz-pastor img {
  border-radius: 20px; width: 100%;
  aspect-ratio: 4 / 5; object-fit: cover; object-position: center 12%;
  box-shadow: 0 24px 50px rgba(10, 31, 61, 0.18);
}
.cenz-pastor h2 { margin: 0.625rem 0 1rem; }
.cenz-pastor p { color: var(--cenz-ink-soft); font-size: 0.97rem; margin: 0 0 1.375rem; }
.cenz-pastor__tag {
  display: inline-block;
  background: #fdf3e0; color: #a5730f;
  font-weight: 700; font-size: 0.75rem;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 0.375rem 0.875rem; border-radius: 20px;
}
@media (max-width: 860px) { .cenz-pastor__inner { grid-template-columns: 1fr; gap: 2rem; } }

/* ══ Salvation moment ════════════════════════════════════════════════════ */

.cenz-salvation { background: var(--cenz-ivory); text-align: center; padding-block: clamp(3rem, 5vw, 4.5rem); }
.cenz-salvation__inner { max-width: 40rem; }
.cenz-salvation p { color: var(--cenz-ink-soft); font-size: 1rem; margin: 0 0 1.875rem; }

/* ══ Footer ══════════════════════════════════════════════════════════════ */

.cenz-footer {
  background: var(--cenz-navy-deep);
  color: #c7cfe2;
  padding: clamp(3.25rem, 5vw, 3.875rem) 0 1.75rem;
}
.cenz-footer__grid {
  display: grid; grid-template-columns: 1.3fr 1fr 1fr;
  gap: 3.125rem;
  padding-bottom: 2.875rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.cenz-footer__logo img { height: 96px; width: auto; margin-bottom: 1rem; }
.cenz-footer__blurb { max-width: 17.5rem; font-size: 0.875rem; margin: 0; }
.cenz-footer h2 {
  color: var(--cenz-white);
  font-family: var(--cenz-font-heading);
  font-size: 0.8125rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  margin: 0 0 1rem;
}
.cenz-footer ul { list-style: none; margin: 0; padding: 0; }
.cenz-footer a { display: block; color: #aab4cc; font-size: 0.875rem; margin-bottom: 0.625rem; text-decoration: none; }
.cenz-footer a:hover { color: var(--cenz-gold-light); }
.cenz-footer__bottom {
  display: flex; justify-content: space-between;
  padding-top: 1.625rem;
  font-size: 0.78rem; color: #7c88a8;
  flex-wrap: wrap; gap: 0.625rem;
}
.cenz-footer__bottom a { display: inline; color: #7c88a8; margin: 0; }
@media (max-width: 800px) { .cenz-footer__grid { grid-template-columns: 1fr; gap: 2.25rem; } }

/* ══ Start Here panel ════════════════════════════════════════════════════
   The persistent tab down the right edge. It exists because a first-time
   visitor's questions — who leads this church, what's on, how do I say hello,
   can someone pray with me — are otherwise scattered across four pages.

   Hidden below 560px on purpose: on a phone the tab overlaps the content and
   the same four actions are already one tap away in the overlay menu.         */

.cenz-start-tab {
  position: fixed; right: 0; top: 52%;
  transform: translateY(-50%) rotate(180deg);
  writing-mode: vertical-rl;
  background: var(--cenz-gold); color: var(--cenz-navy);
  font-family: var(--cenz-font-heading);
  font-weight: 800; font-size: 0.875rem; letter-spacing: 0.08em;
  padding: 1.125rem 0.625rem;
  border: 0; border-radius: 10px 0 0 10px;
  cursor: pointer; z-index: 55;
  box-shadow: -4px 0 18px rgba(0, 0, 0, 0.15);
}
.cenz-start-tab:hover { background: var(--cenz-gold-light); }
@media (max-width: 560px) { .cenz-start-tab { display: none; } }

.cenz-start-panel {
  position: fixed; inset: 0 0 0 auto;
  width: 380px; max-width: 88vw;
  background: var(--cenz-white);
  z-index: 110;
  box-shadow: -20px 0 50px rgba(0, 0, 0, 0.25);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.35s var(--cenz-ease), visibility 0.35s;
  overflow-y: auto;
}
.cenz-start-panel.is-open { transform: translateX(0); visibility: visible; }

.cenz-start-panel__head {
  background: var(--cenz-navy); color: var(--cenz-white);
  padding: 1.5rem 1.625rem;
  display: flex; justify-content: space-between; align-items: center;
  position: sticky; top: 0; z-index: 2;
}
.cenz-start-panel__head h2 { color: var(--cenz-white); font-size: 1.1875rem; margin: 0; }
.cenz-start-panel__close {
  background: transparent; border: 0; color: var(--cenz-white);
  font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 0 0.25rem;
}
.cenz-start-panel__close:hover { color: var(--cenz-gold-light); }
.cenz-start-panel__body { padding: 1.625rem; }

.cenz-start-block { margin-bottom: 1.625rem; padding-bottom: 1.625rem; border-bottom: 1px solid #eee; }
.cenz-start-block:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.cenz-start-block h3 {
  font-family: var(--cenz-font-heading);
  font-size: 0.78rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--cenz-gold-text); margin: 0 0 0.625rem;
}
.cenz-start-block p { font-size: 0.9rem; color: var(--cenz-ink-soft); margin: 0 0 0.625rem; }
.cenz-start-block picture { display: block; }
.cenz-start-block img { border-radius: 12px; margin-bottom: 0.75rem; width: 100%; }
.cenz-start-video { position: relative; aspect-ratio: 1 / 1; overflow: hidden; margin-bottom: 0.75rem; border-radius: 16px; background: var(--cenz-navy); box-shadow: 0 12px 28px rgba(10,31,61,.18); }
.cenz-start-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cenz-start-announcement__title { color: var(--cenz-navy) !important; font-size: 1rem !important; margin-bottom: 0.35rem !important; }
.cenz-start-announcement__content { color: var(--cenz-ink-soft); font-size: 0.9rem; }
.cenz-start-announcement__content ol,
.cenz-start-announcement__content ul { margin: 0.45rem 0 0.75rem; padding-left: 1.25rem; }
.cenz-start-announcement__content li { margin-bottom: 0.55rem; padding-left: 0.15rem; }
.cenz-start-announcement__content li:last-child { margin-bottom: 0; }

.cenz-scrim {
  position: fixed; inset: 0;
  background: rgba(13, 28, 58, 0.5);
  z-index: 105;
  opacity: 0; visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  border: 0; padding: 0; cursor: pointer;
}
.cenz-scrim.is-open { opacity: 1; visibility: visible; }

/* ══ Content ═════════════════════════════════════════════════════════════ */

.cenz-main { min-height: 50vh; }
.cenz-entry { padding-block: 3rem; }
.cenz-entry--about { padding-top: 0; }
.cenz-entry--contact { padding-top: 0; }
.cenz-entry--salvation { padding: 0; background: linear-gradient(180deg, #f4efe4 0, var(--cenz-ivory) 28rem, #fff 100%); }

/* Salvation page — a quiet, reverent path from prayer to a relational next step. */
.cenz-salvation-page-hero {
  position: relative;
  isolation: isolate;
  min-height: clamp(16rem, 27vw, 23rem);
  overflow: hidden;
  display: flex;
  align-items: end;
  color: var(--cenz-white);
  background: var(--cenz-navy-deep);
}
.cenz-salvation-page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: url("assets/img/life-worship-1100.webp") center 48% / cover no-repeat;
  filter: saturate(.78);
  transform: scale(1.02);
}
.cenz-salvation-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(5,15,34,.96), rgba(8,26,56,.82) 52%, rgba(8,26,56,.46)), linear-gradient(0deg, rgba(5,15,34,.85), transparent 70%);
}
.cenz-salvation-page-hero__inner { width: 100%; padding-block: clamp(2rem, 5vw, 3.5rem); }
.cenz-salvation-page-hero .cenz-section-kicker { color: var(--cenz-gold-light); }
.cenz-salvation-page-hero h1 { margin: .55rem 0 .8rem; color: var(--cenz-white); font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: .98; letter-spacing: -.045em; }
.cenz-salvation-page-hero p:last-child { max-width: 35rem; margin: 0; color: #edf0f7; font-size: clamp(1rem, 2vw, 1.22rem); }
.cenz-salvation-page__body { padding-block: clamp(2.25rem, 5vw, 4.5rem); }
.cenz-salvation-prayer {
  position: relative;
  isolation: isolate;
  max-width: 54rem;
  margin: 0 auto;
  padding: clamp(2.2rem, 6vw, 4.25rem);
  overflow: hidden;
  border: 1px solid rgba(212,184,115,.5);
  border-radius: calc(var(--cenz-radius) * 1.2);
  background: radial-gradient(circle at 50% 0, rgba(212,184,115,.17), transparent 35%), linear-gradient(145deg, #07162d, #0d2852 62%, #081a38);
  box-shadow: 0 28px 70px rgba(7,22,45,.24);
}
.cenz-salvation-prayer::before,
.cenz-salvation-prayer::after { content: ""; position: absolute; z-index: -1; background: rgba(212,184,115,.09); }
.cenz-salvation-prayer::before { width: 1px; height: 75%; top: 8%; left: 50%; }
.cenz-salvation-prayer::after { width: 22%; height: 1px; top: 29%; left: 39%; }
.cenz-salvation-prayer__words { max-width: 41rem; margin: 0 auto; text-align: center; }
.cenz-salvation-prayer__words p { margin: 0; color: #f7f2e8; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.08rem, 2.1vw, 1.32rem); line-height: 1.78; }
.cenz-salvation-prayer__words p + p { margin-top: 1.25rem; }
.cenz-salvation-prayer__words strong { color: var(--cenz-gold-light); font-weight: 700; }
.cenz-salvation-next { max-width: 62rem; margin: clamp(2rem, 5vw, 4rem) auto 0; display: grid; grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr); gap: clamp(1rem, 3vw, 2rem); align-items: stretch; }
.cenz-salvation-next > div { padding: clamp(1.5rem, 4vw, 2.4rem); border: 1px solid var(--cenz-hairline-warm); border-radius: var(--cenz-radius); background: rgba(255,255,255,.92); box-shadow: 0 14px 38px rgba(10,31,61,.06); }
.cenz-salvation-next h2 { margin: .45rem 0 .75rem; font-size: clamp(1.8rem, 3.5vw, 2.65rem); }
.cenz-salvation-next h3 { margin: 0 0 .7rem; color: var(--cenz-navy); font-size: clamp(1.4rem, 2.6vw, 1.85rem); }
.cenz-salvation-next p { margin-bottom: 0; color: var(--cenz-ink-soft); line-height: 1.7; }
.cenz-salvation-book { border-top: 4px solid var(--cenz-gold) !important; }
.cenz-salvation-actions { margin-top: 1.4rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.cenz-salvation-actions .cenz-btn { justify-content: center; }
@media (max-width: 720px) {
  .cenz-salvation-page-hero { min-height: 18rem; }
  .cenz-salvation-page-hero::before { background-image: url("assets/img/life-worship-700.webp"); background-position: 46% 42%; }
  .cenz-salvation-page-hero::after { background: rgba(5,15,34,.74); }
  .cenz-salvation-next { grid-template-columns: 1fr; }
  .cenz-salvation-prayer { padding-inline: 1.4rem; }
}

/* Beaver Builder rows manage their own width — let them go full-bleed. */
.fl-builder .cenz-entry { padding-block: 0; }

/* Contain floated children (see .cenz-inline-photo below) so a portrait that
   floats past the end of the copy doesn't bleed into whatever follows. */
.cenz-entry::after { content: ""; display: table; clear: both; }

/* ══ Inline photo (bio pages) ═════════════════════════════════════════════
   Used by the [cenz_photo] shortcode on Our Pastor / Our Founder — floats the
   portrait so the surrounding write-up wraps around it, magazine-style, in
   whichever paragraphs follow it in the page content.

   Unfloats below 560px: a floated ~360-560px portrait squeezed next to
   wrapped text is cramped on a phone, so it stacks full-width there instead —
   same breakpoint the Start Here tab already uses for the same reason.        */

.cenz-inline-photo {
  float: left;
  margin: 0.25rem 2rem 1.25rem 0;
}
.cenz-inline-photo picture,
.cenz-inline-photo img { display: block; border-radius: 12px; }

.cenz-inline-photo--right { float: right; margin: 0.25rem 0 1.25rem 2rem; }
.cenz-inline-photo--static { float: none; margin: 0 0 1.5rem; }

@media (max-width: 560px) {
  .cenz-inline-photo,
  .cenz-inline-photo--right {
    float: none; max-width: none !important; margin: 0 0 1.5rem;
  }
}

/* ══ Jump links (About page) ══════════════════════════════════════════════
   Added 2026-09-05 when About was rebuilt as one scrolling page (Our Pastor,
   Our Founder, Statement of Faith merged in as anchor sections, mirroring
   cityimpactchurch.com/about-us/'s single-page + anchor-menu pattern). A
   plain card of #anchor links near the top of the page content, styled with
   the same tokens as the rest of the theme rather than left as a bare <ul>.  */

.cenz-jump-links {
  list-style: none;
  margin: 1.75rem 0 2.5rem;
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.75rem;
  background: var(--cenz-ivory);
  border: 1px solid var(--cenz-hairline-warm);
  border-radius: var(--cenz-radius);
}
.cenz-jump-links li { margin: 0; }
.cenz-jump-links a {
  font-family: var(--cenz-font-heading);
  font-weight: 600;
  color: var(--cenz-navy);
  text-decoration: none;
  border-bottom: 2px solid var(--cenz-gold);
}
.cenz-jump-links a:hover,
.cenz-jump-links a:focus-visible { color: var(--cenz-royal); }

/* ══ Rev20 inner-page patterns ════════════════════════════════════════════ */

.cenz-lede { font-size: clamp(1.1rem, 2vw, 1.3rem); line-height: 1.6; color: var(--cenz-navy); }
.cenz-about-intro { max-width: 52rem; }
.cenz-about-nav {
  list-style: none; margin: 2.5rem 0 3.5rem; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.875rem;
}
.cenz-about-nav li { margin: 0; }
.cenz-about-nav a {
  display: flex; flex-direction: column; gap: 0.25rem; min-height: 100%;
  padding: 1.25rem; text-decoration: none; background: var(--cenz-ivory);
  border: 1px solid var(--cenz-hairline-warm); border-radius: var(--cenz-radius);
  transition: transform 0.2s var(--cenz-ease), border-color 0.2s var(--cenz-ease);
}
.cenz-about-nav a:hover,
.cenz-about-nav a:focus-visible { transform: translateY(-2px); border-color: var(--cenz-gold); }
.cenz-about-nav span,
.cenz-section-kicker {
  color: var(--cenz-royal); font: 700 0.75rem/1.2 var(--cenz-font-heading);
  letter-spacing: 0.1em; text-transform: uppercase;
}
.cenz-about-nav strong { color: var(--cenz-navy); font: 700 1.05rem/1.3 var(--cenz-font-heading); }
.cenz-about-section { clear: both; padding: 3.5rem 0; border-top: 1px solid var(--cenz-hairline-warm); }
.cenz-about-section--vision {
  padding: 2.25rem; margin-bottom: 1rem; border: 0; border-radius: var(--cenz-radius);
  background: var(--cenz-navy); color: var(--cenz-white);
}
.cenz-about-section--vision h2 { color: var(--cenz-white); }
.cenz-about-section--vision .cenz-section-kicker { color: var(--cenz-gold-light); }
.cenz-vision-statement { color: var(--cenz-white); font-size: clamp(1.2rem, 2.4vw, 1.6rem); max-width: 48rem; }
.cenz-section-name { color: var(--cenz-royal); margin-top: -0.4rem; }
.cenz-disclosure,
.cenz-beliefs details {
  clear: both; margin: 1rem 0; border: 1px solid var(--cenz-hairline-warm);
  border-radius: var(--cenz-radius); background: var(--cenz-white); overflow: hidden;
}
.cenz-disclosure summary,
.cenz-beliefs summary {
  cursor: pointer; padding: 1rem 1.125rem; color: var(--cenz-navy);
  font-family: var(--cenz-font-heading); font-weight: 700;
}
.cenz-disclosure[open] summary,
.cenz-beliefs details[open] summary { border-bottom: 1px solid var(--cenz-hairline-warm); }
.cenz-disclosure > div,
.cenz-beliefs details > div { padding: 1rem 1.125rem; }
.cenz-video { position: relative; aspect-ratio: 16 / 9; max-width: 50rem; margin-top: 2rem; }
.cenz-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cenz-about-next { display: flex; gap: 0.875rem; flex-wrap: wrap; margin-top: 2rem; }

.cenz-partner-intro { max-width: 48rem; margin-bottom: 2.25rem; }
.cenz-partner-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.cenz-partner-card {
  padding: clamp(1.5rem, 4vw, 2.25rem); background: var(--cenz-white);
  border: 1px solid var(--cenz-hairline-warm); border-radius: var(--cenz-radius);
  box-shadow: 0 12px 34px rgba(10, 31, 61, 0.07);
}
.cenz-partner-card h2 { margin-top: 0.5rem; }
.cenz-bank-details { margin: 1.5rem 0; border-top: 1px solid var(--cenz-hairline-warm); }
.cenz-bank-details div { padding: 0.875rem 0; border-bottom: 1px solid var(--cenz-hairline-warm); }
.cenz-bank-details dt { color: var(--cenz-ink-soft); font-size: 0.8125rem; font-weight: 600; }
.cenz-bank-details dd { margin: 0.15rem 0 0; color: var(--cenz-navy); font-weight: 700; }
.cenz-partner-registration { color: var(--cenz-ink-soft); font-size: 0.875rem; }

/* Partner With Us page — compact scripture-led global partnership treatment. */
.cenz-entry--partner { padding: 0; }
.cenz-partner-page-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(15rem, 21.1vw, 16rem);
  display: flex;
  align-items: center;
  color: var(--cenz-white);
  background: #07162d;
}
.cenz-partner-page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-color: #07162d;
  background-image: url("assets/img/partner/partner-global-nigeria-south-africa-asia-aotearoa-1600.jpg");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 100%;
}
.cenz-partner-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(7,22,45,.99) 0%, rgba(7,22,45,.96) 34%, rgba(7,22,45,.7) 54%, rgba(7,22,45,.08) 82%);
}
.cenz-partner-page-hero__inner { width: 100%; padding-block: 1.5rem; }
.cenz-partner-page-hero .cenz-section-kicker { color: var(--cenz-gold-light); }
.cenz-partner-page-hero h1 {
  width: fit-content;
  max-width: 100%;
  margin: .55rem 0 .9rem;
  color: var(--cenz-white);
  font-size: clamp(2.25rem, 4.5vw, 3.25rem);
  line-height: 1;
  letter-spacing: -.04em;
}
.cenz-partner-page-hero__scriptures { display: flex; margin: 0; flex-wrap: wrap; gap: .35rem .65rem; color: var(--cenz-gold-light); font-size: .78rem; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.cenz-partner-page-hero__scriptures a { color: inherit; text-decoration-color: rgba(212,184,115,.48); text-underline-offset: .2em; }
.cenz-entry--partner > .cenz-container { padding-block: 1rem; }
.cenz-entry--partner .cenz-partner-options { gap: 1rem; }
.cenz-entry--partner .cenz-partner-card {
  min-height: 15rem;
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  border-left: 4px solid var(--cenz-gold);
}
.cenz-entry--partner .cenz-partner-card h2 { margin: .25rem 0 .35rem; font-size: clamp(1.55rem, 2.6vw, 2rem); }
.cenz-entry--partner .cenz-partner-card__title { display: flex; align-items: center; gap: .65rem; }
.cenz-paypal-icon {
  width: 1.75rem;
  height: 1.75rem;
  flex: 0 0 1.75rem;
  display: inline-grid;
  place-items: center;
  border-radius: .48rem;
  background: linear-gradient(145deg, #003087 0 52%, #009cde 52% 100%);
  color: #fff;
  font: 800 1.08rem/1 Arial, sans-serif;
  letter-spacing: -.08em;
  box-shadow: 0 4px 12px rgba(0,48,135,.18);
}
.cenz-entry--partner .cenz-partner-card .cenz-section-kicker { margin-bottom: .25rem; }
.cenz-entry--partner .cenz-partner-card > p { margin-top: 0; }
.cenz-entry--partner .cenz-partner-card > p:not(:last-child) { margin-bottom: .5rem; }
.cenz-entry--partner .cenz-partner-card > p:last-child { margin-top: auto; margin-bottom: 0; }
.cenz-entry--partner .cenz-bank-details { margin: .25rem 0; }
.cenz-entry--partner .cenz-bank-details div { display: grid; grid-template-columns: minmax(7.5rem, .45fr) minmax(0, 1fr); gap: 1rem; padding: .3rem 0; align-items: center; }
.cenz-entry--partner .cenz-bank-details dd { margin: 0; }
@media (max-width: 760px) {
  .cenz-partner-page-hero { min-height: 15rem; }
  .cenz-partner-page-hero::before { background-image: url("assets/img/partner/partner-global-nigeria-south-africa-asia-aotearoa-960.jpg"); background-position: 70% center; }
  .cenz-partner-page-hero::after { background: linear-gradient(90deg, rgba(7,22,45,.98), rgba(7,22,45,.9) 58%, rgba(7,22,45,.42)); }
}
@media (max-width: 480px) {
  .cenz-partner-page-hero::before { opacity: .72; background-position: 65% center; }
  .cenz-partner-page-hero::after { background: rgba(7,22,45,.76); }
  .cenz-entry--partner .cenz-bank-details div { grid-template-columns: 1fr; gap: .1rem; }
}

@media (max-width: 680px) {
  .cenz-about-nav,
  .cenz-partner-options { grid-template-columns: 1fr; }
}

/* ══ Regional analytics preferences ═════════════════════════════════════
   Deliberately a bar, not a modal. It opens automatically only where prior
   consent is required, and remains available to everyone from the footer. */

.cenz-consent {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 200;
  background: var(--cenz-navy);
  color: var(--cenz-white);
  padding: 1.25rem var(--cenz-gutter);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.25);
  transform: translateY(100%);
  transition: transform 0.4s var(--cenz-ease);
}
.cenz-consent.is-visible { transform: translateY(0); }

.cenz-consent__inner {
  max-width: var(--cenz-measure);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.cenz-consent__title {
  font-family: var(--cenz-font-heading);
  font-weight: 700;
  font-size: 1.05rem;
  margin: 0 0 0.25rem;
}

.cenz-consent__body {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  opacity: 0.9;
  max-width: 46rem;
}
.cenz-consent__body a { color: var(--cenz-gold); }

.cenz-consent__actions {
  display: flex;
  gap: 0.75rem;
  flex-shrink: 0;
}
.cenz-consent__actions .cenz-btn { padding: 0.7rem 1.5rem; cursor: pointer; }

@media (max-width: 640px) {
  .cenz-consent__inner { flex-direction: column; align-items: stretch; }
  .cenz-consent__actions { justify-content: stretch; }
  .cenz-consent__actions .cenz-btn { flex: 1; text-align: center; }
}

/* ══ Motion ══════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

html { scroll-behavior: smooth; }

/* Anchor targets sit under the sticky header without this. */
[id] { scroll-margin-top: calc(var(--cenz-header-h) + 1rem); }


/* ══ Forms ═══════════════════════════════════════════════════════════════
   Front ends for the live intake handler (inc/forms.php). Tokens only — no
   raw hexes — so the palette stays in one place. */

.cenz-form-wrap { max-width: 44rem; }
.cenz-form__title { margin: 0 0 .5rem; }
.cenz-form__intro { color: var(--cenz-ink); opacity: .8; margin: 0 0 2rem; max-width: 34rem; }

.cenz-form { display: grid; gap: 1.5rem; }
.cenz-field { display: grid; gap: .4rem; }
.cenz-field-row { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .cenz-field-row { grid-template-columns: 1fr 1fr; } }

.cenz-form label,
.cenz-form legend { font-weight: 600; font-size: .9375rem; color: var(--cenz-navy); }
.cenz-req { color: var(--cenz-royal); }
.cenz-optional { font-weight: 400; opacity: .6; font-size: .875rem; }

.cenz-form input[type="text"],
.cenz-form input[type="email"],
.cenz-form textarea,
.cenz-form select {
  font: inherit; color: var(--cenz-ink);
  background: var(--cenz-white);
  border: 1px solid rgba(10, 31, 61, .22);
  border-radius: .5rem;
  padding: .75rem .875rem;
  width: 100%;
}
.cenz-form textarea { resize: vertical; min-height: 8rem; }

/* A visible focus ring is not decoration — it is how a keyboard user knows
   where they are. Never trade it for a cleaner look. */
.cenz-form :is(input, textarea, select, button):focus-visible {
  outline: 3px solid var(--cenz-gold-text);
  outline-offset: 2px;
}

.cenz-field--urgency { border: 0; padding: 0; margin: 0; }
.cenz-radio, .cenz-check { display: flex; gap: .625rem; align-items: flex-start; font-weight: 400; }
.cenz-field--urgency .cenz-radio { display: inline-flex; margin-right: 1.5rem; }
.cenz-check input { margin-top: .2rem; }

.cenz-help { font-size: .875rem; opacity: .72; margin: 0; }
.cenz-help--warn { opacity: 1; color: #8a5a00; font-weight: 500; }

/* The honeypot must be reachable by a bot filling every input, and invisible
   and unreachable to a person. display:none would let some bots skip it. */
.cenz-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.cenz-turnstile { min-height: 65px; }
.cenz-form__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.cenz-form button[disabled] { opacity: .55; cursor: default; }

.cenz-form__status:empty { display: none; }
.cenz-form__status {
  display: grid; gap: .35rem;
  padding: 1rem 1.125rem; border-radius: .5rem;
  border-left: 4px solid transparent;
  font-size: .9375rem;
}
.cenz-form__status.is-pending { background: rgba(10, 31, 61, .06); border-left-color: rgba(10, 31, 61, .3); }
.cenz-form__status.is-ok      { background: rgba(27, 63, 145, .08); border-left-color: var(--cenz-royal); }
.cenz-form__status.is-error   { background: rgba(160, 40, 40, .07); border-left-color: #a02828; }
.cenz-ref {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700; color: var(--cenz-navy);
  letter-spacing: .02em;
}

.cenz-form__privacy { font-size: .8125rem; opacity: .7; margin: 0; }
/* ══ About Us nav accordion ══════════════════════════════════════════════
   Added 2026-09-05, alongside the /about/ page merge (see the Jump links
   section above and cenz_redirect_retired_about_subpages() in
   functions.php): a chevron next to "About Us" in the overlay nav expands
   a shortcut list to the anchor sections now living on that merged page
   (Our Pastor, Our Founder, Statement of Faith), so a visitor does not
   have to open About and scroll to find them. The three markup pieces
   (.cenz-about-accordion-head wrapper, .cenz-about-chevron button,
   .cenz-about-submenu list) are injected by assets/js/nav.js, not by the
   WP menu system -- the primary menu itself stays a flat single-level
   list, unchanged. Colours/sizes match .cenz-overlay__nav a exactly. */

.cenz-about-accordion-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.625rem;
}
.cenz-about-chevron {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #e9ecf5;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: 50%;
  font-size: 0.875rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  transition: transform 0.25s var(--cenz-ease), color 0.15s, border-color 0.15s;
}
.cenz-about-chevron:hover,
.cenz-about-chevron:focus-visible { color: var(--cenz-gold-light); border-color: var(--cenz-gold-light); }
.cenz-about-chevron.is-open { transform: rotate(180deg); }

.cenz-about-submenu {
  display: flex;
  flex-direction: column;
  padding: 0 0 0.625rem 0.25rem;
  margin: 0 0 0.25rem;
  border-left: 2px solid rgba(255, 255, 255, 0.15);
}
.cenz-about-submenu[hidden] { display: none; }
.cenz-overlay__nav .cenz-about-submenu a {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  padding: 0.5625rem 0 0.5625rem 1.125rem;
  font-size: 1rem;
  font-weight: 700;
}
.cenz-about-submenu .cenz-about-sub-desc {
  color: #8b96b8;
  font-family: var(--cenz-font-body);
  font-size: 0.78rem;
  font-weight: 400;
}

@media (max-width: 560px) {
  .cenz-about-chevron { width: 1.875rem; height: 1.875rem; }
}

/* ══ Rev30 application ══════════════════════════════════════════════════
   Uses only the established brand tokens and type families above. */
.cenz-about-hero { width: 100%; overflow: hidden; background: var(--cenz-navy); }
.cenz-about-hero picture,
.cenz-about-hero img { display: block; width: 100%; }
.cenz-about-hero img { height: auto; object-fit: cover; }
.cenz-icon { width: 1.2em; height: 1.2em; flex: 0 0 auto; }
.cenz-icon-link { display: inline-flex !important; align-items: center; gap: .65rem; }

.cenz-overlay__panel { order: 1; display: grid; grid-template-rows: auto 1fr auto; }
.cenz-overlay__photo { order: 2; flex-basis: 42%; background-position: center center; }
.cenz-overlay__photo::after { background: linear-gradient(90deg, var(--cenz-navy-deep), transparent 42%, rgba(10,31,61,.35)); }
.cenz-overlay__photo-note { position: absolute; z-index: 1; left: 2rem; bottom: 2rem; color: var(--cenz-white); display: grid; gap: .2rem; }
.cenz-overlay__photo-note strong { font: 800 1.35rem/1.1 var(--cenz-font-heading); }
.cenz-overlay__photo-note span { color: var(--cenz-gold-light); font-size: .88rem; }
.cenz-overlay__nav { align-self: center; padding-top: 1rem; padding-bottom: 1rem; }
.cenz-overlay__nav a { font-size: clamp(2.125rem, 3.2vw, 3.25rem); line-height: 1; padding: .45rem 0; }
.cenz-overlay__social { border-top: 1px solid rgba(255,255,255,.12); padding-top: 1.25rem; }
.cenz-overlay__social a { display: inline-flex; align-items: center; gap: .45rem; }
.cenz-overlay__nav .cenz-about-submenu a { font-size: .9375rem; line-height: 1.25; }
@media (max-width: 980px) and (min-width: 561px) { .cenz-overlay__nav a { font-size: clamp(2.0625rem, 4.2vw, 2.875rem); } }
@media (max-width: 759px) {
  .cenz-overlay__panel {
    display: flex;
    flex-direction: column;
    overscroll-behavior: contain;
  }
  .cenz-overlay__top {
    position: sticky;
    top: 0;
    z-index: 3;
    flex: 0 0 auto;
    padding: .75rem 1.25rem;
    background: rgba(7, 22, 45, .97);
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
  .cenz-overlay__top img { height: 32px; }
  .cenz-overlay__close {
    width: 2.75rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
  }
  .cenz-overlay__nav {
    align-self: stretch;
    flex: 0 0 auto;
    padding: .75rem 1.375rem 1rem;
  }
  .cenz-overlay__nav a {
    font-size: clamp(1.5rem, 6.4vw, 1.875rem);
    line-height: 1.08;
    padding: .42rem 0;
  }
  .cenz-about-chevron {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1rem;
  }
  .cenz-about-submenu {
    padding-bottom: .35rem;
    margin-bottom: .15rem;
  }
  .cenz-overlay__nav .cenz-about-submenu a {
    padding: .42rem 0 .42rem .875rem;
    font-size: .875rem;
    line-height: 1.2;
  }
  .cenz-about-submenu .cenz-about-sub-desc { font-size: .72rem; }
  .cenz-overlay__social {
    flex: 0 0 auto;
    margin-top: auto;
    padding: .875rem 1.375rem 1rem;
  }
  .cenz-overlay__social a {
    min-width: 2.75rem;
    min-height: 2.75rem;
    justify-content: center;
  }
  .cenz-overlay__social span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
}

/* Width-only breakpoints misclassify phones and small tablets in landscape.
   Compact the navigation by available height as well, and remove the decorative
   photo so the menu remains the only scrolling surface. */
@media (max-width: 1024px) and (max-height: 700px) {
  .cenz-overlay__photo { display: none; }
  .cenz-overlay__panel {
    display: flex;
    flex-direction: column;
    overscroll-behavior: contain;
  }
  .cenz-overlay__top {
    position: sticky;
    top: 0;
    z-index: 3;
    flex: 0 0 auto;
    padding-top: .6rem;
    padding-bottom: .6rem;
    background: rgba(7, 22, 45, .97);
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
  .cenz-overlay__close,
  .cenz-about-chevron { width: 2.75rem; height: 2.75rem; }
  .cenz-overlay__nav {
    align-self: stretch;
    flex: 0 0 auto;
    padding-top: .55rem;
    padding-bottom: .75rem;
  }
  .cenz-overlay__nav a {
    font-size: 1.35rem;
    line-height: 1.05;
    padding: .25rem 0;
  }
  .cenz-overlay__nav .cenz-about-submenu a {
    padding-top: .35rem;
    padding-bottom: .35rem;
    font-size: .825rem;
  }
  .cenz-overlay__social {
    flex: 0 0 auto;
    margin-top: auto;
    padding-top: .35rem;
    padding-bottom: .45rem;
  }
  .cenz-overlay__social a {
    min-width: 2.75rem;
    min-height: 2.75rem;
    justify-content: center;
  }
  .cenz-overlay__social span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
}

.cenz-hero__bg { inset: -5%; transform: translate3d(0, var(--cenz-hero-shift, 0), 0) scale(1.04); will-change: transform; }
@media (max-width: 760px), (prefers-reduced-motion: reduce) { .cenz-hero__bg { inset: 0; transform: none; } }

.cenz-loc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cenz-loc-card { min-height: 12.625rem; border-top: 4px solid var(--cenz-gold); padding: 1.5rem; }
.cenz-loc-card--online { grid-column: 1 / -1; min-height: 0; display: grid; grid-template-columns: 1fr 1.3fr auto; align-items: center; gap: 1rem; background: linear-gradient(120deg, var(--cenz-navy), var(--cenz-royal)); border-color: var(--cenz-navy); }
.cenz-loc-card--online p { margin: 0; min-height: 0; }
.cenz-loc-card--online .cenz-loc-card__link { margin: 0; padding: .75rem 1.1rem; border: 1px solid var(--cenz-gold-light); border-radius: 999px; white-space: nowrap; }
.cenz-loc-schedule { margin-top: 1rem; background: var(--cenz-navy); color: var(--cenz-white); padding: 1.1rem 1.5rem; display: flex; align-items: center; justify-content: center; gap: 1.5rem 2.5rem; flex-wrap: wrap; border-radius: var(--cenz-radius); }
.cenz-loc-schedule strong { color: var(--cenz-gold-light); font-family: var(--cenz-font-heading); }
@media (max-width: 980px) { .cenz-loc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .cenz-loc-grid { grid-template-columns: 1fr; } .cenz-loc-card--online { grid-template-columns: 1fr; } .cenz-loc-schedule { justify-content: flex-start; gap: .6rem; } .cenz-loc-schedule > * { width: 100%; } }

/* Homepage locations — image-led cards inspired by clear campus directories. */
.home #locations { padding-block: clamp(2.25rem, 4vw, 3.5rem); scroll-margin-top: var(--cenz-header-h); }
.home #locations .cenz-section-head { margin-bottom: 1.15rem; }
.home #locations .cenz-section-head > div { width: 100%; }
.home #locations .cenz-eyebrow { margin: 0; }
.home #locations .cenz-loc-grid--visual {
  display: grid; grid-auto-flow: column;
  grid-auto-columns: calc((100% - 2rem) / 3);
  grid-template-columns: none; gap: 1rem;
  padding: .2rem .15rem 1rem; overflow-x: auto;
  scroll-snap-type: x mandatory; overscroll-behavior-inline: contain;
  scrollbar-color: var(--cenz-gold) rgba(10,31,61,.1); scrollbar-width: thin;
}
.home #locations .cenz-loc-card--visual {
  min-height: 23rem; padding: 0; overflow: hidden; scroll-snap-align: start;
  border: 0; border-radius: .5rem; background: #eef0f3;
}
.home #locations .cenz-loc-card__media { height: 13.25rem; overflow: hidden; background: var(--cenz-navy); }
.home #locations .cenz-loc-card__media picture,
.home #locations .cenz-loc-card__media img { display: block; width: 100%; height: 100%; }
.home #locations .cenz-loc-card__media img { object-fit: cover; transition: transform .45s var(--cenz-ease); }
.home #locations .cenz-loc-card--visual:hover .cenz-loc-card__media img { transform: scale(1.035); }
.home #locations .cenz-loc-card__body {
  min-height: 10.75rem; display: grid;
  grid-template-rows: auto minmax(3.55rem, auto) auto 2.5rem;
  align-content: start; padding: 1.15rem 1.2rem 1rem;
}
.home #locations .cenz-loc-card--visual .cenz-loc-card__name { min-height: 1.6rem; margin: 0 0 .4rem; font-size: 1.25rem; line-height: 1.25; }
.home #locations .cenz-loc-card--visual .cenz-loc-card__addr {
  min-height: 0; display: grid; grid-template-columns: .65rem minmax(0, 1fr);
  align-items: start; gap: .28rem; margin: 0 0 .5rem;
  font-size: .8rem; line-height: 1.45;
}
.home #locations .cenz-loc-card--visual .cenz-loc-card__pin { display: block; padding-top: .32rem; color: var(--cenz-gold-text); font-size: .58rem; line-height: 1; }
.home #locations .cenz-loc-card--visual .cenz-loc-card__time { align-self: start; margin: 0 0 .65rem; font-size: .78rem; line-height: 1.35; }
.home #locations .cenz-loc-card__link { position: relative; align-self: end; justify-self: end; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; overflow: hidden; color: var(--cenz-white); background: var(--cenz-navy); border-radius: 50%; font-size: 0; line-height: 1; }
.home #locations .cenz-loc-card__link::after { content: "\2192"; font-size: 1.15rem; }
.home #locations .cenz-loc-card__link:hover { color: var(--cenz-navy); background: var(--cenz-gold-light); }
.home #locations .cenz-loc-card--online { margin-top: .2rem; padding: .85rem 1.1rem; grid-template-columns: minmax(7rem,.6fr) minmax(13rem,1.35fr) auto auto; gap: .75rem 1rem; }
.home #locations .cenz-loc-card--online .cenz-loc-card__link { width: auto; height: auto; display: block; overflow: visible; padding: .58rem .95rem; border-radius: 999px; background: transparent; color: var(--cenz-gold-light); font-size: .78rem; }
.home #locations .cenz-loc-card--online .cenz-loc-card__link::after { content: none; }
@media (max-width: 980px) {
  .home #locations .cenz-loc-grid--visual { grid-auto-columns: minmax(17rem, 44vw); }
}
@media (max-width: 620px) {
  .home #locations .cenz-loc-grid--visual { grid-auto-columns: 84vw; }
  .home #locations .cenz-loc-card--online { grid-template-columns: 1fr; }
}

/* Service Times & Locations page — compact connected-Aotearoa presentation. */
.cenz-entry--locations { padding: 0; }
.cenz-locations-page-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(15rem, 21.1vw, 19rem);
  display: flex;
  align-items: center;
  color: var(--cenz-white);
  background: #07162d;
}
.cenz-locations-page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-color: #07162d;
  background-image: url("assets/img/locations/locations-aotearoa-connected-1600.jpg");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 100%;
}
.cenz-locations-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(7,22,45,.99) 0%, rgba(7,22,45,.96) 35%, rgba(7,22,45,.72) 55%, rgba(7,22,45,.08) 82%);
}
.cenz-locations-page-hero__inner { width: 100%; padding-block: clamp(2rem, 4vw, 3rem); }
.cenz-locations-page-hero .cenz-section-kicker { color: var(--cenz-gold-light); }
.cenz-locations-page-hero h1 {
  max-width: 12ch;
  margin-bottom: .75rem;
  color: var(--cenz-white);
  font-size: clamp(2.25rem, 4.5vw, 3.5rem);
  line-height: 1;
  letter-spacing: -.04em;
}
.cenz-locations-page-hero__cities {
  display: flex;
  max-width: 42rem;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
  gap: .35rem .8rem;
  list-style: none;
  color: #d4b873;
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.cenz-locations-page-hero__cities li { position: relative; }
.cenz-locations-page-hero__cities li:not(:last-child)::after { content: "·"; position: absolute; right: -.52rem; color: rgba(255,255,255,.5); }
.cenz-entry--locations .cenz-section { padding-block: clamp(1.5rem, 2.5vw, 2rem) clamp(2.75rem, 5vw, 4rem); }
.cenz-entry--locations .cenz-section-head { align-items: center; margin-bottom: .75rem; }
.cenz-entry--locations .cenz-section-head > div:has(.cenz-eyebrow:only-child) { align-self: center; }
.cenz-entry--locations .cenz-section-head .cenz-eyebrow:only-child { margin: 0; }
.cenz-entry--locations .cenz-section-head h2 { font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.035em; }
.cenz-entry--locations .cenz-section-head__intro { max-width: 34rem; line-height: 1.65; }
.cenz-entry--locations .cenz-loc-grid { gap: .875rem; }
.cenz-entry--locations .cenz-loc-card:not(.cenz-loc-card--online) {
  height: 10.25rem;
  min-height: 0;
  padding: 1.15rem 1.25rem;
  border-top: 1px solid var(--cenz-hairline-warm);
  border-left: 4px solid var(--cenz-gold);
  box-shadow: 0 10px 28px rgba(10,31,61,.045);
}
.cenz-entry--locations .cenz-loc-card__name { font-size: 1.18rem; }
.cenz-entry--locations .cenz-loc-card__addr { min-height: 0; margin-bottom: .45rem; font-size: .82rem; line-height: 1.45; }
.cenz-entry--locations .cenz-loc-card__link { line-height: 1.3; }
.cenz-entry--locations .cenz-loc-card--online { padding: 1.25rem 1.5rem; }
.cenz-entry--locations .cenz-loc-schedule { margin-top: .875rem; padding: .95rem 1.25rem; }
@media (max-width: 760px) {
  .cenz-locations-page-hero { min-height: 17rem; }
  .cenz-locations-page-hero::before {
    background-image: url("assets/img/locations/locations-aotearoa-connected-960.jpg");
    background-position: 72% center;
  }
  .cenz-locations-page-hero::after { background: linear-gradient(90deg, rgba(7,22,45,.98), rgba(7,22,45,.9) 58%, rgba(7,22,45,.42)); }
  .cenz-locations-page-hero__inner { padding-right: 20%; }
  .cenz-locations-page-hero__cities { font-size: .7rem; gap: .28rem .7rem; }
}
@media (max-width: 480px) {
  .cenz-locations-page-hero__inner { padding-right: 1.25rem; }
  .cenz-locations-page-hero::before { opacity: .72; background-position: 64% center; }
  .cenz-locations-page-hero::after { background: rgba(7,22,45,.77); }
}
@media (min-width: 1100px) {
  .cenz-locations-page-hero { min-height: 16rem; }
  .cenz-locations-page-hero__inner { padding-block: 1.25rem; }
  .cenz-locations-page-hero h1 { font-size: 3rem; }
  .cenz-entry--locations .cenz-section { padding-block: 1rem; }
  .cenz-entry--locations .cenz-section-head { margin-bottom: .5rem; }
  .cenz-entry--locations .cenz-loc-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .625rem; }
  .cenz-entry--locations .cenz-loc-card:not(.cenz-loc-card--online) { height: 10.25rem; padding: 1rem; }
  .cenz-entry--locations .cenz-loc-card__name { font-size: 1rem; }
  .cenz-entry--locations .cenz-loc-card__addr { font-size: .75rem; line-height: 1.4; }
  .cenz-entry--locations .cenz-loc-card__link { font-size: .78rem; }
  .cenz-entry--locations .cenz-loc-card--online {
    min-height: 4.5rem;
    padding: .75rem 1.25rem;
    grid-template-columns: minmax(8rem, .6fr) minmax(15rem, 1.35fr) auto auto;
    gap: .75rem 1rem;
  }
  .cenz-entry--locations .cenz-loc-card--online .cenz-loc-card__link { padding: .55rem .9rem; }
}

.cenz-about-feature { display: grid; grid-template-columns: minmax(16rem, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.cenz-about-feature--reverse { grid-template-columns: minmax(0, 1.2fr) minmax(16rem, .8fr); }
.cenz-about-feature--reverse .cenz-about-feature__media { order: 2; }
.cenz-about-feature .cenz-inline-photo { max-width: none !important; margin: 0; }
.cenz-about-feature .cenz-inline-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--cenz-radius); }
.cenz-founder-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 1.5rem 0; }
.cenz-founder-facts span { padding: .85rem; background: var(--cenz-ivory); color: var(--cenz-ink-soft); font-size: .78rem; }
.cenz-founder-facts strong { display: block; color: var(--cenz-navy); font: 800 1rem/1.2 var(--cenz-font-heading); }
@media (max-width: 760px) { .cenz-about-feature, .cenz-about-feature--reverse { grid-template-columns: 1fr; } .cenz-about-feature--reverse .cenz-about-feature__media { order: 0; } .cenz-founder-facts { grid-template-columns: 1fr; } }

.cenz-sermon-library { margin: 2.5rem 0 3.5rem; }
.cenz-sermon-library h2 { font-size: clamp(2.2rem, 5vw, 4.25rem); }
.cenz-sermon-showcase { position: relative; aspect-ratio: 16 / 9; margin: 1.25rem 0; background: var(--cenz-navy); }
.cenz-sermon-showcase iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.cenz-events-page-hero { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(15rem, 21.1vw, 19rem); margin-top: -3rem; display: flex; align-items: end; color: var(--cenz-white); background: var(--cenz-navy); }
.cenz-events-page-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: url("assets/img/hero-2-1800.webp") center 42% / cover no-repeat; }
.cenz-events-page-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,17,38,.9), rgba(10,31,61,.48) 60%, rgba(10,31,61,.22)), linear-gradient(0deg, rgba(7,17,38,.84), transparent 62%); }
.cenz-events-page-hero__inner { width: 100%; padding-block: clamp(2rem, 4vw, 3rem); }
.cenz-events-page-hero .cenz-section-kicker { color: var(--cenz-gold-light); }
.cenz-events-page-hero h1 { color: var(--cenz-white); font-size: clamp(2.25rem, 4.5vw, 3.5rem); line-height: 1; letter-spacing: -.04em; max-width: 13ch; }
.cenz-events-page-hero p:last-child { color: #e6eaf3; max-width: 38rem; font-size: clamp(1rem, 2vw, 1.2rem); }
.cenz-events-intro { margin: 0 0 clamp(2rem, 5vw, 3.75rem); padding: clamp(1.5rem, 3.5vw, 2.5rem); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(1.25rem, 4vw, 4rem); background: linear-gradient(120deg, #fff, var(--cenz-ivory)); border: 1px solid var(--cenz-hairline-warm); border-top: 4px solid var(--cenz-gold); border-radius: var(--cenz-radius); box-shadow: 0 14px 38px rgba(10,31,61,.06); }
.cenz-events-intro .cenz-lede { margin: 0; color: var(--cenz-navy); font: 800 clamp(1.45rem, 2.7vw, 2.1rem)/1.15 var(--cenz-font-heading); letter-spacing: -.02em; }
.cenz-events-intro p:last-child { margin: 0; padding-left: clamp(1.25rem, 3vw, 3rem); color: var(--cenz-ink-soft); border-left: 1px solid rgba(197,163,108,.55); }
.cenz-event-feature { margin: 0 0 clamp(3rem, 6vw, 4.5rem); background: linear-gradient(120deg, var(--cenz-navy), var(--cenz-royal)); color: var(--cenz-white); border: 1px solid rgba(197,163,108,.4); border-radius: var(--cenz-radius); box-shadow: 0 24px 60px rgba(7,17,38,.18); overflow: hidden; }
.cenz-event-feature--artwork { display: grid; grid-template-columns: minmax(17rem, .78fr) minmax(0, 1.22fr); align-items: stretch; }
.cenz-event-feature figure { margin: 0; display: grid; place-items: center; background: #07162d; }
.cenz-event-feature figure img { display: block; width: 100%; height: 100%; max-height: 42rem; object-fit: contain; }
.cenz-event-feature__content { align-self: center; padding: clamp(2rem, 5vw, 4rem); }
.cenz-event-feature h2, .cenz-event-feature p { color: var(--cenz-white); }
.cenz-event-feature h2 { max-width: 13ch; font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.02; letter-spacing: -.035em; }
.cenz-event-feature__content > p:not(.cenz-section-kicker) { max-width: 38rem; color: #e6eaf3; }
.cenz-event-meta { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin: 1.5rem 0; }
.cenz-event-meta time, .cenz-event-meta span { color: var(--cenz-gold-light); font-weight: 800; }
.cenz-event-meta span::before { content: "\00b7"; margin-right: 1rem; color: rgba(255,255,255,.55); }
.cenz-events-section { margin: clamp(3rem, 6vw, 4.75rem) 0; }
.cenz-events-section > h2 { margin-bottom: .35rem; color: var(--cenz-navy); font-size: clamp(1.9rem, 3.5vw, 2.8rem); letter-spacing: -.03em; }
.cenz-events-empty { margin: 2.5rem 0 3.5rem; padding: clamp(1.75rem, 4vw, 3rem); display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; background: var(--cenz-white); border: 1px solid var(--cenz-hairline-warm); border-top: 4px solid var(--cenz-gold); border-radius: var(--cenz-radius); box-shadow: 0 16px 42px rgba(10,31,61,.08); }
.cenz-events-empty h2 { margin-bottom: .45rem; }
.cenz-events-empty p { margin: 0; color: var(--cenz-ink-soft); max-width: 42rem; }
.cenz-event-list { border-top: 1px solid var(--cenz-hairline-warm); }
.cenz-event-list > a { display: grid; grid-template-columns: 5rem 1fr auto; align-items: center; gap: 1.25rem; padding: 1.1rem 0; border-bottom: 1px solid var(--cenz-hairline-warm); color: var(--cenz-navy); text-decoration: none; }
.cenz-event-list time { text-align: center; color: var(--cenz-royal); }
.cenz-event-list time strong, .cenz-event-list time span, .cenz-event-list a > span > * { display: block; }
.cenz-event-list time strong { font: 800 1.4rem/1 var(--cenz-font-heading); }
.cenz-event-list small { margin-top: .25rem; color: var(--cenz-ink-soft); }
.cenz-event-card-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: stretch; gap: 1rem; margin-top: 1.5rem; }
.cenz-event-card-grid--single { grid-template-columns: minmax(18rem, 30rem); justify-content: center; }
.cenz-event-card-grid--single-landscape { grid-template-columns: minmax(0, 64rem); justify-content: center; }
.cenz-event-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; background: var(--cenz-white); border: 1px solid var(--cenz-hairline-warm); border-radius: calc(var(--cenz-radius) * .8); box-shadow: 0 12px 30px rgba(10,31,61,.06); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.cenz-event-card:hover { transform: translateY(-3px); border-color: rgba(197,163,108,.7); box-shadow: 0 18px 38px rgba(10,31,61,.11); }
.cenz-event-card figure { margin: 0; aspect-ratio: 4 / 5; display: grid; place-items: center; background: var(--cenz-navy); }
.cenz-event-card figure img { width: 100%; height: 100%; object-fit: contain; }
.cenz-event-card--landscape { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .65fr); }
.cenz-event-card--landscape figure { aspect-ratio: 16 / 9; }
.cenz-event-card--landscape figure img { object-fit: cover; }
.cenz-event-card > div { flex: 1; padding: 1.15rem; display: flex; flex-direction: column; }
.cenz-event-card time { color: var(--cenz-royal); font-size: .78rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.cenz-event-card h3 { margin: .55rem 0 .65rem; color: var(--cenz-navy); font-size: clamp(1rem, 1.45vw, 1.12rem); line-height: 1.2; letter-spacing: -.015em; }
.cenz-event-card p { margin: 0 0 1rem; color: var(--cenz-ink-soft); font-size: .92rem; line-height: 1.55; }
.cenz-event-card a { margin-top: auto; color: var(--cenz-royal); font-size: .9rem; font-weight: 800; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.cenz-event-explorer { margin: clamp(3.5rem, 7vw, 5.5rem) 0; padding: clamp(1.25rem, 3vw, 2.25rem); background: var(--cenz-white); border: 1px solid var(--cenz-hairline-warm); border-top: 4px solid var(--cenz-gold); border-radius: var(--cenz-radius); box-shadow: 0 20px 55px rgba(10,31,61,.09); }
.cenz-event-explorer__heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.cenz-event-explorer__heading h2 { margin-bottom: 0; }
.cenz-calendar-views { display: inline-flex; padding: .25rem; background: var(--cenz-ivory); border: 1px solid var(--cenz-hairline-warm); border-radius: 999px; }
.cenz-calendar-views button, .cenz-calendar-nav button { min-height: 2.75rem; padding: .6rem 1rem; border: 0; border-radius: 999px; background: transparent; color: var(--cenz-navy); font: 800 .875rem/1 var(--cenz-font-heading); cursor: pointer; }
.cenz-calendar-views button.is-active { background: var(--cenz-navy); color: var(--cenz-white); box-shadow: 0 4px 12px rgba(10,31,61,.18); }
.cenz-calendar-toolbar { margin: 1.75rem 0 1rem; padding: .6rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: var(--cenz-ivory); border: 1px solid var(--cenz-hairline-warm); border-radius: 999px; }
.cenz-calendar-search { flex: 1 1 22rem; max-width: none; }
.cenz-calendar-search input { width: 100%; min-height: 3rem; margin: 0; padding: .7rem 1rem; border: 1px solid var(--cenz-hairline-warm); border-radius: 999px; background: var(--cenz-ivory); color: var(--cenz-ink); font: 500 1rem/1.2 var(--cenz-font-body); }
.cenz-calendar-search input:focus, .cenz-calendar-views button:focus-visible, .cenz-calendar-nav button:focus-visible, .cenz-calendar-event:focus-visible, .cenz-calendar-list__event:focus-visible, .cenz-event-dialog__close:focus-visible { outline: 3px solid rgba(197,163,108,.55); outline-offset: 2px; }
.cenz-calendar-nav { display: flex; align-items: center; gap: .2rem; }
.cenz-calendar-nav button { border: 1px solid var(--cenz-hairline-warm); background: var(--cenz-white); white-space: nowrap; }
.cenz-calendar-nav button:hover { border-color: var(--cenz-gold); background: var(--cenz-ivory); }
.cenz-calendar-month { margin: 1.1rem 0 .75rem; color: var(--cenz-navy); font: 800 clamp(1.35rem, 3vw, 2rem)/1.15 var(--cenz-font-heading); }
.cenz-month-calendar { overflow: hidden; border: 1px solid var(--cenz-hairline-warm); border-radius: calc(var(--cenz-radius) * .75); }
.cenz-month-calendar__weekdays, .cenz-month-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cenz-month-calendar__weekdays { background: var(--cenz-navy); color: var(--cenz-white); }
.cenz-month-calendar__weekdays span { padding: .75rem .4rem; text-align: center; font: 800 .75rem/1 var(--cenz-font-heading); letter-spacing: .08em; text-transform: uppercase; }
.cenz-month-calendar__day { min-width: 0; min-height: 10rem; padding: .55rem; border-right: 1px solid var(--cenz-hairline-warm); border-bottom: 1px solid var(--cenz-hairline-warm); background: var(--cenz-white); }
.cenz-month-calendar__day:nth-child(7n) { border-right: 0; }
.cenz-month-calendar__day:nth-last-child(-n+7) { border-bottom: 0; }
.cenz-month-calendar__day > time { width: 1.8rem; height: 1.8rem; margin: 0 0 .35rem auto; display: grid; place-items: center; color: var(--cenz-navy); font: 800 .85rem/1 var(--cenz-font-heading); border-radius: 50%; }
.cenz-month-calendar__day.is-outside { background: #f7f7f3; }
.cenz-month-calendar__day.is-outside > time { color: #8b91a0; }
.cenz-month-calendar__day.is-today > time { background: var(--cenz-gold); color: var(--cenz-navy-deep); }
.cenz-calendar-event { width: 100%; min-height: 3.8rem; margin: 0 0 .35rem; padding: .5rem .55rem; display: block; overflow: hidden; border: 0; border-left: 3px solid var(--cenz-gold); border-radius: .35rem; background: #eef2fa; color: var(--cenz-navy); text-align: left; cursor: pointer; }
.cenz-calendar-event:hover { background: #e1e8f6; }
.cenz-calendar-event span, .cenz-calendar-event strong { display: block; overflow: hidden; }
.cenz-calendar-event span { margin-bottom: .2rem; color: var(--cenz-royal); font-size: .74rem; font-weight: 800; }
.cenz-calendar-event strong { display: -webkit-box; font: 700 .8rem/1.25 var(--cenz-font-heading); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.cenz-calendar-event.is-regular { border-left-color: var(--cenz-gold-light); background: var(--cenz-navy); color: var(--cenz-white); }
.cenz-calendar-event.is-regular:hover { background: var(--cenz-royal); }
.cenz-calendar-event.is-regular span { color: var(--cenz-gold-light); }
.cenz-calendar-list { border-top: 1px solid var(--cenz-hairline-warm); }
.cenz-calendar-list__event { width: 100%; padding: 1rem .35rem; display: grid; grid-template-columns: 3.5rem 1fr auto; align-items: center; gap: 1rem; border: 0; border-bottom: 1px solid var(--cenz-hairline-warm); background: transparent; color: var(--cenz-navy); text-align: left; cursor: pointer; }
.cenz-calendar-list__event:hover { background: var(--cenz-ivory); }
.cenz-calendar-list__event.is-regular { background: #f7f8fb; }
.cenz-calendar-list__event.is-regular:hover { background: #eef1f7; }
.cenz-calendar-list__event time { min-height: 3.5rem; display: grid; place-items: center; align-content: center; background: var(--cenz-navy); color: var(--cenz-white); border-radius: .5rem; }
.cenz-calendar-list__event time strong, .cenz-calendar-list__event time span, .cenz-calendar-list__event > span > strong, .cenz-calendar-list__event small { display: block; }
.cenz-calendar-list__event time strong { color: var(--cenz-gold-light); font: 800 1.2rem/1 var(--cenz-font-heading); }
.cenz-calendar-list__event time span { margin-top: .2rem; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.cenz-calendar-list__event > span > strong { font: 800 1rem/1.25 var(--cenz-font-heading); }
.cenz-calendar-list__event small { margin-top: .25rem; color: var(--cenz-ink-soft); font-size: .86rem; }
.cenz-calendar-list__arrow { color: var(--cenz-gold); font-size: 1.5rem; }
.cenz-calendar-empty { margin: 1.5rem 0 0; padding: 1.25rem; background: var(--cenz-ivory); color: var(--cenz-ink-soft); text-align: center; border-radius: .5rem; }
.cenz-event-dialog { width: min(56rem, calc(100% - 2rem)); max-height: calc(100vh - 2rem); padding: 0; overflow: auto; border: 1px solid rgba(197,163,108,.55); border-radius: var(--cenz-radius); background: var(--cenz-white); color: var(--cenz-ink); box-shadow: 0 30px 90px rgba(5,14,32,.42); }
.cenz-event-dialog[open] { display: grid; grid-template-columns: minmax(16rem, .82fr) minmax(0, 1.18fr); }
.cenz-event-dialog::backdrop { background: rgba(5,14,32,.78); backdrop-filter: blur(4px); }
.cenz-event-dialog figure { margin: 0; background: var(--cenz-navy-deep); }
.cenz-event-dialog figure img { width: 100%; height: 100%; display: block; object-fit: contain; }
.cenz-event-dialog--landscape[open] { grid-template-columns: 1fr; }
.cenz-event-dialog--landscape figure img { aspect-ratio: 16 / 9; object-fit: cover; }
.cenz-event-dialog__content { align-self: center; padding: clamp(1.75rem, 5vw, 3.25rem); }
.cenz-event-dialog__content h3 { color: var(--cenz-navy); font-size: clamp(1.8rem, 4vw, 3rem); }
.cenz-event-dialog__meta { color: var(--cenz-royal); font-weight: 800; }
.cenz-event-dialog__close { position: absolute; top: .75rem; right: .75rem; z-index: 2; width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(7,17,38,.88); color: var(--cenz-white); font-size: 1.7rem; cursor: pointer; }
.cenz-regular > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; background: transparent; }
.cenz-regular > div > p { min-height: 9rem; margin: 0; padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; background: var(--cenz-white); border: 1px solid var(--cenz-hairline-warm); border-top: 3px solid var(--cenz-gold); border-radius: var(--cenz-radius); box-shadow: 0 12px 30px rgba(10,31,61,.06); }
.cenz-regular strong, .cenz-regular span, .cenz-regular a { display: block; }
.cenz-regular strong { font: 800 1.15rem/1.25 var(--cenz-font-heading); color: var(--cenz-navy); }
.cenz-regular span { margin-top: .5rem; color: var(--cenz-royal); font-weight: 700; }
.cenz-calendar-link { text-align: center; }
@media (max-width: 1100px) { .cenz-event-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .cenz-event-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cenz-event-card-grid--single, .cenz-event-card-grid--single-landscape { grid-template-columns: 1fr; } .cenz-event-card--landscape { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .cenz-events-page-hero { min-height: 13rem; } .cenz-events-page-hero::before { background-image: url("assets/img/hero-2-800.webp"); background-position: 58% center; } .cenz-events-page-hero__inner { padding-block: 1.5rem; } .cenz-events-page-hero h1 { font-size: clamp(2rem, 10vw, 2.75rem); } .cenz-events-page-hero p:last-child { max-width: 32rem; font-size: .95rem; line-height: 1.45; } .cenz-events-intro { grid-template-columns: 1fr; } .cenz-events-intro p:last-child { padding: 1rem 0 0; border-top: 1px solid rgba(197,163,108,.55); border-left: 0; } .cenz-event-feature--artwork { grid-template-columns: 1fr; } .cenz-event-feature figure img { height: auto; max-height: none; } .cenz-event-meta { display: grid; gap: .35rem; } .cenz-event-meta span::before { content: none; } .cenz-event-list > a { grid-template-columns: 4rem 1fr auto; } .cenz-events-empty { grid-template-columns: 1fr; } .cenz-events-empty .cenz-btn { justify-self: start; } .cenz-event-explorer { padding: 1rem; } .cenz-event-explorer__heading, .cenz-calendar-toolbar { align-items: stretch; flex-direction: column; } .cenz-calendar-views { align-self: flex-start; } .cenz-calendar-toolbar { border-radius: var(--cenz-radius); } .cenz-calendar-search { max-width: none; flex-basis: auto; } .cenz-calendar-nav { justify-content: space-between; } .cenz-calendar-nav button { flex: 1; } .cenz-month-calendar { overflow-x: auto; } .cenz-month-calendar__weekdays, .cenz-month-calendar__grid { min-width: 52rem; } .cenz-calendar-list__event { grid-template-columns: 3.25rem 1fr auto; gap: .75rem; } .cenz-event-dialog[open] { grid-template-columns: 1fr; } .cenz-event-dialog figure img { max-height: 58vh; } .cenz-event-dialog__close { position: fixed; } .cenz-regular > div { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .cenz-event-card-grid { grid-template-columns: 1fr; } }

.cenz-contact-map { margin: 0 calc(-1 * var(--cenz-gutter)) 0; height: min(46vw, 30rem); min-height: 18rem; }
.cenz-contact-map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(.2); }
.cenz-contact-layout { margin: 0 calc(-1 * var(--cenz-gutter)) calc(-1 * var(--cenz-section-y)); padding: clamp(2rem, 6vw, 5rem) var(--cenz-gutter); display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 6vw, 5rem); background: var(--cenz-navy); color: var(--cenz-white); }
.cenz-contact-layout h2, .cenz-contact-layout p, .cenz-contact-layout label, .cenz-contact-layout legend { color: var(--cenz-white); }
.cenz-contact-layout .cenz-section-kicker { color: var(--cenz-gold-light); }
.cenz-contact-details ul { list-style: none; margin: 2rem 0; padding: 0; display: grid; gap: 1rem; }
.cenz-contact-details a { color: var(--cenz-white); text-decoration: none; }
.cenz-contact-details small, .cenz-contact-details strong { display: block; }
.cenz-contact-details small { color: #aab4cc; }
.cenz-contact-icon { width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border: 1px solid rgba(197,163,108,.65); border-radius: 50%; color: var(--cenz-gold-light); }
.cenz-contact-icon .cenz-icon { width: 1.15rem; height: 1.15rem; }
.cenz-contact-form-panel { padding: clamp(1.5rem, 4vw, 2.5rem); background: var(--cenz-white); color: var(--cenz-ink); border-radius: var(--cenz-radius); }
.cenz-contact-form-panel h2, .cenz-contact-form-panel p, .cenz-contact-form-panel label { color: var(--cenz-navy); }
@media (max-width: 800px) { .cenz-contact-layout { grid-template-columns: 1fr; } }
