:root {
  /* Strict 5-color palette — ColorPalletteUpdate.png */
  --cl: #F56D49;   /* coral   — primary CTA / accent */
  --g:  #6C9E88;   /* sage    — secondary accent */
  --cr: #FFF8E6;   /* cream   — page background / light text on dark */
  --md: #6F564C;   /* brown   — body / secondary text (darkened to ~6:1 on cream for AA) */
  --dp: #576661;   /* slate   — dark text / dark sections */

  /* Alpha-only derivations (no new hues) */
  --br: rgba(137,111,104,0.22);  /* --md @ 22% — borders */
  --sf: rgba(137,111,104,0.08);  /* --md @ 8%  — warm cream tint for alt sections */

  /* Legacy aliases retained for compatibility, remapped into the 5 */
  --gl: var(--cr);   /* light accent on dark → cream */
  --tr: var(--md);   /* secondary warm accent → brown */

  /* ── 6-STEP TYPE SCALE ── every heading + body maps to one of these; sizes
     must not spread outside the six. Display headings use h1–h3, names/labels
     h4–h5, paragraphs p. Overridden smaller on mobile (see @media 900px). */
  --fs-h1: 42px;   /* page/hero & section titles */
  --fs-h2: 30px;   /* featured numbers & pull-quote */
  --fs-h3: 24px;   /* card / sub-section titles */
  --fs-h4: 20px;   /* leader names, emphasised labels */
  --fs-h5: 14px;   /* eyebrows, uppercase labels, captions */
  --fs-p:  17px;   /* body copy */
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Jost', sans-serif; background: var(--cr); color: var(--dp); font-size: var(--fs-p); line-height: 1.7; }
a { color: var(--cl); text-decoration-color: rgba(245,109,73,0.5); text-underline-offset: 2px; }
a:hover { text-decoration-color: var(--cl); }

/* ── PHOTO SYSTEM ── */
/* All photo slots use <div class="photo px-KEYWORD"> */
/* Each keyword maps to a Unsplash source image via CSS background */
.photo {
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}
/* Stock photo sources , all free Unsplash images */
.px-service    { background-image: url('https://images.unsplash.com/photo-1529156069898-49953e39b3ac?w=1200&q=70'); }
.px-family     { background-image: url('https://images.unsplash.com/photo-1511895426328-dc8714191011?w=800&q=70'); }
.px-children   { background-image: url('https://images.unsplash.com/photo-1472162072942-cd5147eb3902?w=800&q=70'); }
.px-meal       { background-image: url('https://images.unsplash.com/photo-1543269865-cbf427effbad?w=800&q=70'); }
.px-arizona    { background-image: url('https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=800&q=70'); }
.px-worship    { background-image: url('https://images.unsplash.com/photo-1500048993953-d23a436266cf?w=800&q=70'); }
.px-fellowship { background-image: url('https://images.unsplash.com/photo-1517245386807-bb43f82c33c4?w=800&q=70'); }
.px-study      { background-image: url('https://images.unsplash.com/photo-1519389950473-47ba0277781c?w=800&q=70'); }
.px-outdoors   { background-image: url('https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=800&q=70'); }
.px-campus     { background-image: url('https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=1200&q=70'); }
.px-group      { background-image: url('https://images.unsplash.com/photo-1529156069898-49953e39b3ac?w=1200&q=70'); }
.px-elders     { background-image: url('https://images.unsplash.com/photo-1504593811423-6dd665756598?w=800&q=70'); }
.px-welcome    { background-image: url('https://images.unsplash.com/photo-1521737604893-d14cc237f11d?w=800&q=70'); }
.px-diverse    { background-image: url('https://images.unsplash.com/photo-1529156069898-49953e39b3ac?w=800&q=70'); }

.px-sedona     { background-image: url('https://images.unsplash.com/photo-1474044159687-1ee9f3a51722?w=800&q=70'); }
.px-tucson     { background-image: url('https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=800&q=70'); }
.px-arrive     { background-image: url('https://images.unsplash.com/photo-1521737604893-d14cc237f11d?w=800&q=70'); }
.px-teaching   { background-image: url('/view/images/pages/vanetics/1.jpg'); }
.px-music      { background-image: url('/view/images/pages/vanetics/2.jpg'); }
.px-hospice    { background-image: url('https://images.unsplash.com/photo-1576765608535-5f04d1e3f289?w=800&q=70'); }
.px-farm       { background-image: url('https://images.unsplash.com/photo-1500651230702-0e2d8a49d4ad?w=800&q=70'); }
.px-rehab      { background-image: url('https://images.unsplash.com/photo-1529156069898-49953e39b3ac?w=800&q=70'); }
.px-portrait1  { background-image: url('https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=400&q=70'); }
.px-portrait2  { background-image: url('https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=400&q=70'); }


/* Per-page owned photography */
.px-vanetics      { background-image: url('/view/images/hero/1776909537/vanetics.jpg'); }


.px-home-1  { background-image: url('/view/images/pages/home/1778551366/1.jpg'); }
.px-home-2  { background-image: url('/view/images/pages/home/1776908053/2.jpg'); }
.px-home-3  { background-image: url('/view/images/pages/home/1776908053/3.jpg'); }
.px-home-4  { background-image: url('/view/images/pages/home/1776908053/4.jpg'); }
.px-home-5  { background-image: url('/view/images/pages/home/1776908053/5.jpg'); }
.px-home-6  { background-image: url('/view/images/pages/home/1776908053/6.jpg'); }
.px-home-7  { background-image: url('/view/images/pages/home/1776908053/7.jpg'); }
.px-home-8  { background-image: url('/view/images/pages/home/1776908053/8.jpg'); }
.px-home-9  { background-image: url('/view/images/pages/home/1776908053/9.jpg'); }
.px-home-10 { background-image: url('/view/images/pages/home/1776908052/10.jpg'); }
.px-home-11 { background-image: url('/view/images/pages/home/1776909447/11.jpg'); }
.px-home-12 { background-image: url('/view/images/pages/home/1776908053/12.jpg'); }

.px-about-1 { background-image: url('/view/images/pages/about/1776908053/1.jpg'); }
.px-about-2 { background-image: url('/view/images/pages/about/1778551494/2.jpg'); }
.px-about-3 { background-image: url('/view/images/pages/about/1776908053/3.jpg'); }
.px-about-4 { background-image: url('/view/images/pages/about/1776908053/4.jpg'); }
.px-about-5 { background-image: url('/view/images/pages/about/1776908053/5.jpg'); }
.px-about-6 { background-image: url('/view/images/pages/about/1776908053/6.jpg'); }
.px-about-7 { background-image: url('/view/images/pages/about/1776908053/7.jpg'); }
.px-about-8 { background-image: url('/view/images/pages/about/1776908433/8.jpg'); }

.px-community-1  { background-image: url('/view/images/pages/community/1778274526/1.jpg'); }
.px-community-2  { background-image: url('/view/images/pages/community/1776908053/2.jpg'); }
.px-community-3  { background-image: url('/view/images/pages/community/1776908053/3.jpg'); }
.px-community-4  { background-image: url('/view/images/pages/community/1776908053/4.jpg'); }
.px-community-5  { background-image: url('/view/images/pages/community/1776908053/5.jpg'); }
.px-community-6  { background-image: url('/view/images/pages/community/1776908053/6.jpg'); }
.px-community-7  { background-image: url('/view/images/pages/community/1776908053/7.jpg'); }
.px-community-8  { background-image: url('/view/images/pages/community/1776908053/8.jpg'); }
.px-community-9  { background-image: url('/view/images/pages/community/1776908585/9.jpg'); }
.px-community-10 { background-image: url('/view/images/pages/community/1776908053/10.jpg'); }
.px-community-11 { background-image: url('/view/images/pages/community/1776908687/11.jpg'); }

.px-faith-1 { background-image: url('/view/images/pages/faith/1776908053/1.jpg'); }

.px-faq-1 { background-image: url('/view/images/pages/faq/1776909036/1.jpg'); }
.px-faq-2 { background-image: url('/view/images/pages/faq/1776908054/2.jpg'); }
.px-faq-3 { background-image: url('/view/images/pages/faq/1776908054/3.jpg'); }

.px-visit-1 { background-image: url('/view/images/pages/visit/1776908054/1.jpg'); }
.px-visit-2 { background-image: url('/view/images/pages/visit/1776908054/2.jpg'); }
.px-visit-3 { background-image: url('/view/images/pages/visit/1776908054/3.jpg'); }
.px-visit-4 { background-image: url('/view/images/pages/visit/1776908054/4.jpg'); }
.px-visit-5 { background-image: url('/view/images/pages/visit/1776908054/5.jpg'); }
.px-visit-6 { background-image: url('/view/images/pages/visit/1776909093/6.jpg'); }
.px-visit-7 { background-image: url('/view/images/pages/visit/1776909126/7.jpg'); }
.px-visit-8 { background-image: url('/view/images/pages/visit/1776908054/8.jpg'); }

/* Soft overlay so text on photos is readable */
.photo-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(87, 102, 97, 0.85) 0%, rgba(87, 102, 97, 0.25) 40%, transparent 70%);
}
/* Swap note tag */
.swap-tag {
  position: absolute;
  top: 0.6rem; right: 0.6rem;
  background: rgba(255,248,230,0.9);
  color: var(--dp);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  font-family: 'Jost', sans-serif;
  font-weight: 500;
  border-radius: 2px;
}

/* NAV */
.nav { display:flex; align-items:center; justify-content:space-between; padding:1.25rem 2.5rem; border-bottom:0.5px solid var(--br); background:var(--cr); position:sticky; top:0; z-index:100; }
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:500; letter-spacing:0.05em; color:var(--dp); cursor:pointer; text-decoration:none; }
.nav-logo span { display:block; font-size:12px; font-family:'Jost',sans-serif; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--g); margin-top:3px; }
.nav-links { display:flex; gap:2rem; list-style:none; align-items:center; }
.nav-links a { font-size:14px; font-weight:400; letter-spacing:0.12em; text-transform:uppercase; color:var(--md); text-decoration:none; cursor:pointer; transition:color 0.2s; }
.nav-links a:hover, .nav-links a.active { color:var(--g); }
.nav-cta { font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; padding:0.55rem 1.25rem; border:1px solid var(--dp); color:var(--dp); background:transparent; cursor:pointer; font-family:'Jost',sans-serif; transition:all 0.2s; text-decoration:none; display:inline-block; }
.nav-cta:hover { background:var(--dp); color:var(--cr); border-color:var(--dp); }

/* ── MOBILE DRAWER TRIGGER ── */
.nav-toggle {
  display: none;
  align-items: center;
  gap: 0.7rem;
  background: transparent;
  border: 0;
  padding: 0.4rem 0.2rem 0.4rem 0.6rem;
  cursor: pointer;
  font-family: 'Jost', sans-serif;
  color: var(--dp);
}
.nav-toggle-word {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--md);
  transition: color 0.25s ease;
}
.nav-toggle:hover .nav-toggle-word,
.nav-toggle.is-open .nav-toggle-word { color: var(--g); }
.nav-toggle-icon {
  position: relative;
  display: inline-block;
  width: 26px;
  height: 14px;
}
.nav-toggle-icon span {
  position: absolute;
  left: 0;
  height: 1px;
  background: var(--dp);
  transition: transform 0.4s cubic-bezier(.6,.05,.2,1),
              width 0.4s cubic-bezier(.6,.05,.2,1),
              top 0.4s cubic-bezier(.6,.05,.2,1),
              left 0.4s cubic-bezier(.6,.05,.2,1),
              background 0.2s;
}
.nav-toggle-icon span:nth-child(1) { top: 3px; width: 100%; }
.nav-toggle-icon span:nth-child(2) { top: 10px; width: 60%; left: 40%; }
.nav-toggle:hover .nav-toggle-icon span { background: var(--g); }
.nav-toggle.is-open .nav-toggle-icon span { background: var(--g); width: 100%; left: 0; }
.nav-toggle.is-open .nav-toggle-icon span:nth-child(1) { top: 6px; transform: rotate(45deg); }
.nav-toggle.is-open .nav-toggle-icon span:nth-child(2) { top: 6px; transform: rotate(-45deg); }

/* ── DRAWER + BACKDROP ── */
.drawer-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(87, 102, 97, 0.42);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 110;
  pointer-events: none;
}
.drawer-backdrop.open { opacity: 1; pointer-events: auto; }

.drawer {
  display: none;
  flex-direction: column;
  position: fixed;
  top: 0;
  left: 0;
  width: min(86vw, 420px);
  height: 100vh;
  height: 100dvh;
  background: var(--cr);
  border-right: 0.5px solid var(--br);
  box-shadow: 40px 0 80px -20px rgba(87, 102, 97, 0.25);
  padding: 1.75rem 2rem 2rem;
  overflow-y: auto;
  z-index: 120;
  transform: translateX(-100%);
  transition: transform 0.5s cubic-bezier(.6,.05,.2,1);
}
.drawer.open { transform: translateX(0); }

.drawer-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.25rem;
  border-bottom: 0.5px solid var(--br);
}
.drawer-mark {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px;
  letter-spacing: 0.05em;
  color: var(--dp);
  text-decoration: none;
  line-height: 1.1;
}
.drawer-mark span {
  display: block;
  margin-top: 4px;
  font-family: 'Jost', sans-serif;
  font-size: 9px;
  font-weight: 300;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--g);
}
.drawer-close {
  position: relative;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  background: transparent;
  border: 0.5px solid var(--br);
  border-radius: 50%;
  cursor: pointer;
  transition: border-color 0.25s, background 0.25s;
}
.drawer-close span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 1px;
  background: var(--md);
  transition: background 0.2s;
}
.drawer-close span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }
.drawer-close span:nth-child(2) { transform: translate(-50%, -50%) rotate(-45deg); }
.drawer-close:hover { border-color: var(--g); background: rgba(108, 158, 136, 0.06); }
.drawer-close:hover span { background: var(--g); }

.drawer-eyebrow {
  margin-top: 1.75rem;
  font-size: 9px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--g);
  font-weight: 400;
}

.drawer-list {
  list-style: none;
  margin: 0.75rem 0 auto;
  padding: 0;
}
.drawer-item {
  position: relative;
  border-bottom: 0.5px solid var(--br);
  opacity: 0;
  transform: translateX(-14px);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(.2,.6,.2,1);
  transition-delay: 0s;
}
.drawer.open .drawer-item {
  opacity: 1;
  transform: translateX(0);
  transition-delay: calc((var(--i, 1) - 1) * 0.06s + 0.12s);
}
.drawer-link {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 0;
  text-decoration: none;
  color: var(--dp);
  position: relative;
  transition: color 0.2s, padding-left 0.3s cubic-bezier(.2,.6,.2,1);
}
.drawer-link::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 0;
  height: 0.5px;
  background: var(--g);
  transform: translateY(-50%);
  transition: width 0.35s cubic-bezier(.2,.6,.2,1);
}
.drawer-link:hover {
  color: var(--g);
  padding-left: 1.5rem;
}
.drawer-link:hover::before { width: 1rem; }
.drawer-item.is-active .drawer-link { color: var(--g); }
.drawer-item.is-active .drawer-link::before { width: 0.75rem; height: 1px; }

.drawer-num {
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--g);
  font-weight: 500;
  min-width: 1.5rem;
  padding-top: 0.7rem;
}
.drawer-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.005em;
  line-height: 1.15;
}

.drawer-foot {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 0.5px solid var(--br);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.drawer.open .drawer-foot {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.45s;
}
.drawer-cta {
  display: block;
  text-align: center;
  padding: 0.95rem 1.25rem;
  background: var(--dp);
  color: var(--cr);
  font-family: 'Jost', sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.25s;
}
.drawer-cta:hover { background: var(--g); }
.drawer-sig {
  margin-top: 1rem;
  font-family: 'Jost', sans-serif;
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--md);
  opacity: 0.55;
  text-align: center;
}

body.drawer-lock { overflow: hidden; }

/* PAGES */
.page { display:block; max-width:3480px; margin-inline:auto; }

/* Ultra-wide cap. On viewports wider than 3480px, the page content centers
   and the body's cream background fills the gutters. Nav and footer keep
   their full-bleed colored bands, but their inner padding stretches so the
   logo/links/branding stay visually aligned with the page edges. The max()
   no-ops on viewports ≤3480px wide, so the existing layout is unchanged. */
.nav    { padding-inline: max(2.5rem, calc((100% - 3480px) / 2)); }

/* SHARED */
.pg-hero { background:var(--dp); padding:2rem 4rem 2rem; }
.section { padding:5rem 4rem; }
.section-alt { background:var(--sf); padding:5rem 4rem; }

/* ════════════════════════════════════════════════════════════════════
   TYPE SYSTEM — one site-wide scale. Per-page/component rules below set
   ONLY layout (margin, max-width, padding) and context color overrides
   (e.g. cream text on dark sections). They must NOT re-declare
   font-family / size / weight / line-height — that lives here so every
   page stays consistent.  Display: 'Cormorant Garamond' · Body: 'Jost'.
   ════════════════════════════════════════════════════════════════════ */

/* Display family — every Cormorant heading, declared once */
.pg-title, .hero-headline, .sec-title, .life-text h3, .pillar h3, .pillar-n,
.bitem h4, .ubox h3, .affil-card h4, .rlink h4, .etitle, .eday, .loc-name,
.press-box h3, .visit-info h3, .faq-q, .expect-strip h3, .estep-n, .stat-n,
.lname { font-family:'Cormorant Garamond',serif; font-weight:400; }

/* h5 — eyebrows / section labels (Jost, uppercase) */
.eyebrow { font-size:var(--fs-h5); letter-spacing:0.22em; text-transform:uppercase; color:var(--gl); opacity:0.9; margin-bottom:1rem; font-weight:500; }
.sec-label { font-size:var(--fs-h5); letter-spacing:0.22em; text-transform:uppercase; color:var(--g); font-weight:500; margin-bottom:1rem; }

/* h1 — page/hero titles AND section titles (one display size site-wide) */
.pg-title { font-size:var(--fs-h1); color:var(--cr); max-width:100%; line-height:1.15; }
.sec-title, .life-text h3 { font-size:var(--fs-h1); color:var(--cl); line-height:1.2; margin-bottom:1.25rem; }
/* h3 — card / sub-section title (slate) */
.ubox h3, .affil-card h4, .rlink h4, .etitle, .loc-name, .press-box h3, .visit-info h3, .faq-q {
  font-size:var(--fs-h3); font-weight:500; color:var(--dp); line-height:1.3;
}
/* h3 — card title (coral accent) */
.pillar h3, .bitem h4 { font-size:var(--fs-h3); font-weight:500; color:var(--cl); line-height:1.25; }

/* p — every reading paragraph, site-wide */
.sec-body, .hero-body, .pillar p, .bitem p, .ubox p, .life-text p, .faq-ai,
.visit-info p, .press-box p, .rlink p, .emeta, .affil-card p, .loc-detail, .estep-b {
  font-size:var(--fs-p); font-weight:400; color:var(--md); line-height:1.75;
}
.sec-body { max-width:680px; }
.sec-body + .sec-body, .pillar p + p, .ubox p + p, .life-text p + p, .visit-info p + p, .faq-ai p + p { margin-top:0.85rem; }

/* h4 — leader names / emphasised labels (e.g. stat captions) */
.stat-l { font-size:var(--fs-h4); font-weight:400; color:var(--md); line-height:1.5; letter-spacing:0.02em; }
.btn-p { display:inline-block; padding:0.95rem 2.4rem; background:var(--cl); color:var(--cr); font-family:'Jost',sans-serif; font-size:14px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; border:none; cursor:pointer; transition:background 0.2s; text-decoration:none; }
.btn-p:hover { background:var(--dp); color:var(--cr); }
.btn-g { display:inline-block; padding:0.95rem 2.4rem; background:transparent; color:var(--dp); font-family:'Jost',sans-serif; font-size:14px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; border:1px solid var(--g); cursor:pointer; transition:all 0.2s; text-decoration:none; }
.btn-g:hover { border-color:var(--g); color:var(--g); }

/* ══ HOME ══ */
.hero { min-height:88vh; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; max-width:2800px; margin-inline:auto; }
.hero-text { padding:5rem 3rem 5rem 4rem; display:flex; flex-direction:column; justify-content:center; background:var(--cr); }
.hero-headline { font-size:var(--fs-h1); line-height:1.12; color:var(--dp); margin-bottom:1.75rem; }
.hero-headline em { font-style:italic; color:var(--cl); }
.hero-body { max-width:460px; margin-bottom:2.5rem; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-photo { min-height:88vh; position:relative; }

.mosaic { display:grid; grid-template-columns:repeat(4,1fr); max-width:2400px; margin-inline:auto; }
.mosaic .photo { height:300px; position:relative; }

.quote-band { background:var(--dp); padding:4rem 2rem; text-align:center; }
.quote-band blockquote { font-family:'Cormorant Garamond',serif; font-size:var(--fs-h2); font-style:italic; color:rgba(255, 248, 230, 0.92); line-height:1.55; max-width:48rem; margin-inline:auto; }
.quote-band cite { display:block; font-size:var(--fs-h5); font-weight:600; font-family:'Jost',sans-serif; font-style:normal; letter-spacing:0.12em; color:rgba(255, 248, 230, 0.95); margin-top:1.5rem; text-transform:uppercase; }
.quote-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; max-width:1800px; margin-inline:auto; }
.quote-grid .photo { height:175px; position:relative; }

.pillars { display:grid; grid-template-columns:repeat(3,1fr); border-top:0.5px solid var(--br); max-width:2100px; margin-inline:auto; }
.pillar { padding:0; border-right:0.5px solid var(--br); overflow:hidden; }
.pillar:last-child { border-right:none; }
.pillar .photo { height:200px; position:relative; }
.pillar-body { padding:2.25rem; }
.pillar-n { font-size:var(--fs-h1); color:var(--tr); opacity:0.4; line-height:1; margin-bottom:0.85rem; }
.pillar h3 { margin-bottom:0.65rem; }

.home-cta { text-align:center; padding:5rem 4rem; background:var(--sf); }
.home-cta .sec-body { margin:0 auto 2.25rem; }
.btn-row { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ══ ABOUT ══ */
.photo-banner { height:575px; width:100%; max-width:3200px; margin-inline:auto; position:relative; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; padding:5rem 4rem; }
.stat-row { display:grid; grid-template-columns:repeat(2,1fr); border-top:0.5px solid var(--br); border-left:0.5px solid var(--br); margin-top:2.5rem; }
.stat-box { padding:1.5rem; border-right:0.5px solid var(--br); border-bottom:0.5px solid var(--br); }
.stat-n { font-size:var(--fs-h2); font-weight:500; color:var(--g); margin-bottom:0.25rem; }
.stat-l { letter-spacing:0.06em; }

.photo-trio { display:grid; grid-template-columns:2fr 1fr; gap:0.6rem; margin-top:2rem; max-width:1800px; margin-inline:auto; }
.photo-trio .photo-main { height:410px; position:relative; }
.photo-trio-stack { display:grid; grid-template-rows:1fr 1fr; gap:0.6rem; }
.photo-trio-stack .photo { height:200px; position:relative; }

.leader-strip { background:var(--dp); padding:4rem; }
.leader-strip .sec-title { color:var(--cr); margin-bottom:1.75rem; }
.leaders { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; max-width:1920px; margin-inline:auto; }
.lcard { border:0.5px solid rgba(255, 248, 230, 0.28); overflow:hidden; }
.lcard .photo { height:260px; position:relative; }
.lcard-body { padding:1.25rem; }
.lname { font-size:var(--fs-h4); color:var(--cr); margin-bottom:0.25rem; }
.ltitle { font-size:var(--fs-h5); letter-spacing:0.08em; color:rgba(255, 248, 230, 0.6); text-transform:uppercase; line-height:1.5; }

.transp-row { display:flex; gap:0.85rem; margin-top:2rem; flex-wrap:wrap; }
.transp-tag { padding:0.85rem 1.25rem; border:0.5px solid var(--br); font-size:var(--fs-h5); color:var(--md); font-weight:400; }
.transp-tag.link { color:var(--g); border-color:rgba(108, 158, 136,0.35); cursor:pointer; }

/* ══ FAITH ══ */
.faith-split { display:block; max-width:2800px; margin-inline:auto; }
.faith-split .photo { width:100%; aspect-ratio:5/2; height:auto; position:relative; }
.faith-split-text { padding:4rem; display:flex; flex-direction:column; justify-content:center; background:var(--dp); }
.faith-split-text .sec-label { color:var(--gl); opacity:0.6; }
.faith-split-text .sec-title { color:var(--cr); }
.faith-split-text .sec-body { color:rgba(255, 248, 230, 0.72); max-width:100%; }

.belief-grid { display:grid; grid-template-columns:1fr 1fr; border:0.5px solid var(--br); margin-top:2.5rem; }
.bitem { padding:2.25rem; border-right:0.5px solid var(--br); border-bottom:0.5px solid var(--br); display:flex; gap:1.1rem; align-items:flex-start; }
.bitem:nth-child(even) { border-right:none; }
.bicon { color:var(--g); font-size:14px; margin-top:4px; flex-shrink:0; }
.bitem h4 { margin-bottom:0.5rem; }

.ubox { margin-top:3.5rem; padding:3rem; background:var(--sf); border-left:2px solid var(--g); }
.ubox h3 { margin-bottom:1rem; }
.ubox p { max-width:700px; }

/* ══ COMMUNITY ══ */
.community-hero { height:560px; width:100%; max-width:3200px; margin-inline:auto; position:relative; }
.photo-wall { display:grid; grid-template-columns:repeat(5,1fr); max-width:2400px; margin-inline:auto; }
.photo-wall .photo { height:210px; position:relative; }

.comm-grid { display:grid; grid-template-columns:3fr 2fr; gap:3.5rem; margin-top:2.5rem; align-items:stretch; }
.comm-grid > * { display:flex; flex-direction:column; }
.event-list, .res-list { display:flex; flex-direction:column; gap:0.85rem; flex:1 1 auto; }
.eitem { display:flex; gap:1.5rem; align-items:center; padding:1.5rem 1.75rem; background:var(--sf); border:0.5px solid var(--br); flex:1 1 auto; }
.edate { flex-shrink:0; text-align:center; width:44px; }
.emon { font-size:9px; letter-spacing:0.12em; text-transform:uppercase; color:var(--g); }
.eday { font-size:var(--fs-h2); color:var(--dp); line-height:1.1; }
.etitle { margin-bottom:0.35rem; }

.res-sidebar { display:flex; flex-direction:column; }
.rlink { display:flex; flex-direction:column; justify-content:center; padding:1.5rem 1.75rem; background:var(--sf); border:0.5px solid var(--br); cursor:pointer; transition:border-color 0.2s, background-color 0.2s; flex:1 1 auto; }
.rlink:hover { border-color:var(--g); background:var(--cr); }
.rlink h4 { margin-bottom:0.35rem; }

.life-row { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; max-width:2800px; margin-inline:auto; }
.life-row.flip { direction:rtl; }
.life-row.flip > * { direction:ltr; }
.life-row .photo { height:600px; position:relative; }
.life-text { padding:4rem; display:flex; flex-direction:column; justify-content:center; }

.affil-row { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2.5rem; max-width:1800px; margin-inline:auto; }
.affil-row.cols-2 { grid-template-columns:repeat(2,1fr); }
.affil-card { border:0.5px solid var(--br); overflow:hidden; }
.affil-card .photo { height:180px; position:relative; }
.affil-body { padding:1.5rem; }
.affil-card h4 { margin-bottom:0.4rem; }
.affil-card p { margin-bottom:0.85rem; }
.affil-link { font-size:var(--fs-h5); letter-spacing:0.12em; text-transform:uppercase; color:var(--cl); text-decoration:none; }

/* ══ FAQ ══ */
.faq-band { display:grid; grid-template-columns:repeat(3,1fr); max-width:2100px; margin-inline:auto; }
.faq-band .photo { height:325px; position:relative; }
.faq-list { max-width:780px; margin-top:2.5rem; }
.faq-item { border-bottom:0.5px solid var(--br); }
.faq-q { padding:1.5rem 2.25rem 1.5rem 0; position:relative; cursor:pointer; }
.faq-q:hover { color:var(--g); }
.faq-tog { position:absolute; right:0; top:50%; transform:translateY(-50%); font-size:22px; color:var(--g); font-family:'Jost',sans-serif; font-weight:300; user-select:none; }
.faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s ease; }
.faq-a.open { max-height:2000px; }
.faq-ai { padding-bottom:1.5rem; }
.press-box { margin-top:4rem; padding:2.5rem; border:0.5px solid var(--br); max-width:540px; }
.press-box h3 { margin-bottom:0.5rem; }

/* ══ VISIT ══ */
.visit-hero { height:420px; width:100%; max-width:3200px; margin-inline:auto; position:relative; }
.visit-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; margin-top:2.5rem; }
.visit-info h3 { margin-bottom:0.75rem; margin-top:2.25rem; }
.visit-info h3:first-child { margin-top:0; }
.visit-info .visit-meta { margin-top:1rem; }
.visit-info .visit-meta p + p { margin-top:0.25rem; }
.visit-info strong { font-weight:500; }

.loc-card { border:0.5px solid var(--br); overflow:hidden; margin-bottom:0.85rem; background:var(--sf); max-width:1200px; }
.loc-card .photo { height:340px; position:relative; }
.loc-body { padding:1.25rem; }
.loc-name { margin-bottom:0.5rem; }

.visit-strip { display:grid; grid-template-columns:repeat(4,1fr); max-width:2400px; margin-inline:auto; }
.visit-strip .photo { height:200px; position:relative; }

.expect-strip { padding:4rem; background:var(--dp); }
.expect-strip h3 { font-size:var(--fs-h1); color:var(--cr); margin-bottom:2rem; }
.expect-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; }
.estep { border-top:0.5px solid rgba(255, 248, 230, 0.35); padding-top:1.25rem; }
.estep-n { font-size:var(--fs-h2); color:rgba(245, 109, 73, 0.5); margin-bottom:0.5rem; }
.estep-t { font-size:var(--fs-h5); font-weight:500; color:var(--gl); margin-bottom:0.5rem; text-transform:uppercase; letter-spacing:0.1em; }
.estep-b { color:rgba(255, 248, 230, 0.62); }

/* FOOTER */
.footer { background:var(--dp); padding-block:4rem; padding-inline:max(4rem, calc((100% - 3480px) / 2)); display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:3rem; border-top:0.5px solid rgba(255, 248, 230,0.1); }
.flogo { font-family:'Cormorant Garamond',serif; font-size:var(--fs-h4); color:var(--cr); margin-bottom:0.5rem; }
.ftagline { font-size:var(--fs-p); font-weight:400; color:rgba(255, 248, 230, 0.75); letter-spacing:0.05em; white-space:nowrap; }
.fein { margin-top:0.75rem; font-size:var(--fs-p); font-weight:400; color:rgba(255, 248, 230, 0.85); line-height:1.8; }
.footer h4 { font-size:var(--fs-h5); letter-spacing:0.18em; text-transform:uppercase; color:var(--gl); opacity:0.9; margin-bottom:1rem; }
.footer ul { list-style:none; display:flex; flex-direction:column; gap:0.5rem; }
.footer ul li { white-space:nowrap; }
.footer ul a { font-size:var(--fs-p); font-weight:400; color:rgba(255, 248, 230, 0.85); text-decoration:none; cursor:pointer; transition:color 0.2s; }
.footer ul a:hover { color:var(--gl); opacity:1; }
.footer ul a.fb-link { display:inline-flex; align-items:center; gap:0.45em; }
.fb-ico { width:1em; height:1em; flex-shrink:0; }
.fcontact { color:var(--cl) !important; font-weight:500 !important; }
.fcontact:hover { opacity:1 !important; color:var(--cr) !important; }

/* Inline CTA link that opens the contact form (use with data-contact-open) */
.contact-link { color:var(--cl); text-decoration:none; font-weight:500; cursor:pointer; border-bottom:1px solid transparent; transition:border-color 0.2s; }
.contact-link:hover { border-bottom-color:var(--cl); }

/* Contact form modal */
.lc-modal { position:fixed; inset:0; background:rgba(28,26,22,0.7); display:none; align-items:center; justify-content:center; z-index:1000; padding:2rem; }
.lc-modal.open { display:flex; }
.lc-modal-content { position:relative; background:var(--cr); width:100%; max-width:640px; max-height:90vh; border-radius:8px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 20px 60px rgba(0,0,0,0.4); }
.lc-modal-content iframe { display:block; width:100%; height:620px; max-height:90vh; border:none; background:var(--cr); }
.lc-modal-close { position:absolute; top:0.5rem; right:0.75rem; background:transparent; border:none; font-size:32px; line-height:1; color:var(--dp); cursor:pointer; padding:0.25rem 0.6rem; z-index:2; font-family:'Jost',sans-serif; }
.lc-modal-close:hover { color:var(--cl); }

.fbot { background:var(--dp); padding-block:1.25rem; padding-inline:max(4rem, calc((100% - 3480px) / 2)); border-top:0.5px solid rgba(255, 248, 230, 0.12); display:flex; justify-content:space-between; align-items:center; }
.fbot p { font-size:var(--fs-h5); font-weight:400; color:rgba(255, 248, 230, 0.35); }

/* ---------- /blog page (Instagram feed + manually-curated news) ---------- */
.blog-grid { display:grid; grid-template-columns:3fr 1fr; gap:2.5rem; max-width:1280px; margin:4rem auto; padding:0 1.5rem; }
.blog-instagram, .blog-news { min-width:0; }
.blog-ig-heading, .blog-news-heading { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:500; color:var(--dp); margin:0 0 1.25rem; letter-spacing:0.01em; }
.blog-ig-heading a { color:var(--g); text-decoration:none; }
.blog-ig-heading a:hover { text-decoration:underline; }
.blog-instagram iframe { width:100%; min-height:720px; border:0; background:var(--sf); }
.blog-ig-fallback { padding:2rem; background:var(--sf); border:0.5px solid var(--br); text-align:center; }
.blog-ig-fallback p { margin:0 0 1rem; color:var(--md); }

/* Self-hosted IG grid (replaces the iframe). */
.ig-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.5rem; }
.ig-tile { position:relative; display:block; aspect-ratio:4/5; overflow:hidden; background:var(--sf); border:0.5px solid var(--br); transition:transform 0.2s, opacity 0.2s; }
.ig-tile img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease; }
.ig-tile:hover img { transform:scale(1.04); }
.ig-tile:hover { opacity:0.92; }
.ig-tile-badge { position:absolute; top:0.5rem; right:0.5rem; width:1.5rem; height:1.5rem; display:flex; align-items:center; justify-content:center; background:rgba(28,26,22,0.55); color:#fff; font-size:0.7rem; line-height:1; border-radius:50%; pointer-events:none; }
.ig-grid-actions { display:flex; justify-content:center; margin-top:1.5rem; gap:1rem; }
.ig-load-more { font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; padding:0.7rem 1.5rem; border:0.5px solid var(--g); color:var(--g); background:transparent; cursor:pointer; transition:all 0.2s; }
.ig-load-more:hover { background:var(--g); color:var(--cr); }
.ig-load-more:disabled { opacity:0.6; cursor:wait; }
.ig-see-more { font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; padding:0.7rem 1.5rem; border:0.5px solid var(--g); color:var(--cr); background:var(--g); text-decoration:none; transition:all 0.2s; }
.ig-see-more:hover { background:var(--dp); border-color:var(--dp); color:var(--cr); }
.ig-see-more[hidden] { display:none; }

.blog-news { display:flex; flex-direction:column; }
.blog-news-empty { color:var(--md); font-style:italic; }
.news-card { background:var(--cr); border:0.5px solid var(--br); padding:1.25rem; margin-bottom:1.5rem; }
.news-card img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; margin-bottom:0.85rem; }
.news-card .news-date { font-size:11px; color:var(--md); text-transform:uppercase; letter-spacing:0.12em; margin-bottom:0.35rem; }
.news-card h3 { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:500; color:var(--dp); margin:0 0 0.5rem; line-height:1.25; }
.news-card .news-body { font-size:0.95rem; line-height:1.6; color:var(--md); }
.news-card .news-body p { margin:0 0 0.75rem; }
.news-card .news-body p:last-child { margin-bottom:0; }
.news-card-cta { display:inline-block; margin-top:0.85rem; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; padding:0.5rem 1.1rem; border:0.5px solid var(--g); color:var(--g); text-decoration:none; transition:all 0.2s; }
.news-card-cta:hover { background:var(--g); color:var(--cr); }

@media (max-width:900px) {
  .blog-grid { grid-template-columns:1fr; gap:2rem; margin:2.5rem auto; padding:0 1rem; }
  .blog-news { order:1; }       /* news first on mobile (user-curated content gets priority) */
  .blog-instagram { order:2; }
  .blog-instagram iframe { min-height:520px; }
}

@media (max-width:600px) {
  .ig-grid { grid-template-columns:1fr; gap:0.75rem; }
}

@media (max-width:900px) {
  .hero, .life-row, .quote-band, .about-grid, .visit-grid { grid-template-columns:1fr; }
  .hero-photo, .community-hero, .visit-hero, .photo-banner { height:260px; }
  .pillars { grid-template-columns:1fr; }
  .pillar { border-right:none; border-bottom:0.5px solid var(--br); }
  .mosaic, .photo-wall { grid-template-columns:repeat(2,1fr); }
  .mosaic .photo { height:160px; }
  .photo-wall .photo { height:140px; }
  .faq-band { grid-template-columns:1fr; }
  .faq-band .photo { height:200px; }
  .visit-strip { grid-template-columns:repeat(2,1fr); }
  .visit-strip .photo { height:140px; }
  .leaders { grid-template-columns:1fr; }
  .belief-grid { grid-template-columns:1fr; }
  .bitem:nth-child(even) { border-right:0.5px solid var(--br); }
  .comm-grid { grid-template-columns:1fr; }
  .affil-row, .affil-row.cols-2 { grid-template-columns:1fr; }
  .expect-steps { grid-template-columns:repeat(2,1fr); }
  .footer { grid-template-columns:1fr; gap:2rem; }
  .ftagline, .footer ul li { white-space:normal; }
  .quote-grid { grid-template-columns:1fr; }
  .photo-trio { grid-template-columns:1fr; }
  .photo-trio .photo-main { height:220px; }
  .life-row .photo { height:240px; }
  .life-text { padding:2.5rem 2rem; }
  .section, .section-alt { padding:3rem 2rem; }
  .leader-strip, .expect-strip, .pg-hero { padding:3rem 2rem; }
  .nav { padding:1rem 1.25rem; }
  .nav-links { display:none; }
  .nav-cta { display:none; }
  .nav-toggle { display:inline-flex; }
  .drawer-backdrop { display:block; }
  .drawer { display:flex; }
  .hero-text { padding:3rem 2rem; }
  /* Shrink the top two display steps on phones; the scale does the rest */
  :root { --fs-h1:32px; --fs-h2:26px; }
  .faith-split-text { padding:2.5rem 2rem; }
  .px-community-6 { display:none; }
}

/* Wide-viewport tier (lg). Grids stop growing once they hit the per-slot
   max-width caps applied above. Photo slot heights bump up one step so the
   tile proportions stay sensible once tiles approach their capped widths.
   No proportional/aspect-ratio scaling — heights are hard pixel values. */
@media (min-width:1600px) {
  .mosaic .photo           { height:380px; }
  .quote-grid .photo       { height:200px; }
  .pillar .photo           { height:280px; }
  .photo-banner            { height:700px; }
  .photo-trio .photo-main  { height:500px; }
  .photo-trio-stack .photo { height:240px; }
  .lcard .photo            { height:320px; }
  .community-hero          { height:700px; }
  .photo-wall .photo       { height:280px; }
  .life-row .photo         { height:460px; }
  .affil-card .photo       { height:240px; }
  .faq-band .photo         { height:380px; }
  .visit-hero              { height:540px; }
  .loc-card .photo         { height:400px; }
  .visit-strip .photo      { height:320px; }
}

/* Narrow-viewport tier (xs). The existing 900px block collapses 4-up grids
   to 2 columns; below 600px those tiles get too narrow, so collapse them
   the rest of the way to a single column and pick photo heights that look
   right on phone widths. */
@media (max-width:600px) {
  .mosaic, .photo-wall, .visit-strip, .leaders { grid-template-columns:1fr; }
  .mosaic .photo           { height:220px; }
  .photo-wall .photo       { height:200px; }
  .visit-strip .photo      { height:200px; }
  .faq-band .photo         { height:200px; }
  .lcard .photo            { height:280px; }
  .hero-photo,
  .community-hero,
  .visit-hero,
  .photo-banner            { height:220px; }
  .life-row .photo         { height:200px; }
  .photo-trio .photo-main  { height:200px; }
  .photo-trio-stack .photo { height:160px; }
  .quote-grid .photo       { height:200px; }
}
