/* =========================================================================
   LEADERSHIP PAGES — modern styles
   Used by: Presiding-Member.php, Assembly-Members.php

   HOW THIS FILE IS SCOPED
   ------------------------
   Every rule below starts with ".lead-modern" so these styles can only ever
   apply inside an element that has class="lead-modern" on it. That means
   this file is 100% safe to include on any page — it will never change the
   look of header.php, footer.php, or any other part of the site.

   If you want to reuse this design on a new page, just:
   1. Link this CSS file in the page's <head>.
   2. Wrap your page content in <div class="lead-modern"> ... </div>.
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Public+Sans:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@500;600&display=swap');

/* -------------------------------------------------------------------------
   1. DESIGN TOKENS
   These CSS variables are the "settings" for the whole design: colours,
   fonts, spacing. Change a value here and it updates everywhere it's used.
   ------------------------------------------------------------------------- */
.lead-modern{
  --lm-paper:        #F1F3EC; /* page background */
  --lm-paper-raised: #FFFFFF; /* card background */
  --lm-ink:          #16231C; /* main text colour */
  --lm-ink-soft:     #4C5A50; /* secondary/muted text */
  --lm-line:         #DCE1D3; /* borders */

  --lm-forest:       #1B4332; /* primary brand colour */
  --lm-forest-deep:  #0F2C20;
  --lm-forest-tint:  #E4EEE7;

  --lm-gold:         #C8952E; /* accent colour */
  --lm-gold-deep:    #A87420;
  --lm-gold-tint:    #FBF1DC;

  --lm-font-display: "Fraunces", "Iowan Old Style", serif;   /* headings */
  --lm-font-body:    "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; /* body text */
  --lm-font-mono:    "IBM Plex Mono", ui-monospace, monospace; /* labels/eyebrows */

  --lm-radius-sm: 6px;
  --lm-radius-md: 10px;
  --lm-radius-lg: 16px;
  --lm-shadow: 0 1px 2px rgba(22,35,28,.06), 0 8px 24px -12px rgba(22,35,28,.14);
  --lm-ease: cubic-bezier(.22,.61,.36,1); /* smooth easing curve for transitions */

  font-family: var(--lm-font-body);
  color: var(--lm-ink);
  background: var(--lm-paper);
}

/* Respect users who have asked their OS to reduce motion/animations */
@media (prefers-reduced-motion: reduce){
  .lead-modern *{ animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

.lead-modern *, .lead-modern *::before, .lead-modern *::after{ box-sizing: border-box; }
.lead-modern a{ color: var(--lm-forest); text-decoration: none; }
.lead-modern :focus-visible{ outline: 3px solid var(--lm-gold); outline-offset: 2px; border-radius: 4px; }

/* -------------------------------------------------------------------------
   2. HERO / PAGE BANNER
   The dark green band at the top of the page with the breadcrumb + title.
   ------------------------------------------------------------------------- */
.lead-modern__hero{
  position: relative;
  background: linear-gradient(155deg, var(--lm-forest-deep) 0%, var(--lm-forest) 62%, #245842 100%);
  color: #fff;
  padding: 56px 0 44px;
  overflow: hidden;
}
.lead-modern__hero::before{
  /* Subtle diagonal-line texture, purely decorative */
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(115deg, rgba(200,149,46,.10) 0 2px, transparent 2px 34px);
  pointer-events: none;
}
.lead-modern__breadcrumb{
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  padding: 0;
  font-family: var(--lm-font-mono);
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65);
}
.lead-modern__breadcrumb a{ color: inherit; transition: color .2s var(--lm-ease); }
.lead-modern__breadcrumb a:hover{ color: var(--lm-gold); }
.lead-modern__breadcrumb .is-current{ color: #fff; font-weight: 600; }
.lead-modern__breadcrumb .sep{ opacity: .5; }

.lead-modern__hero h1{
  font-family: var(--lm-font-display);
  font-weight: 600;
  font-size: clamp(28px, 4.4vw, 44px);
  line-height: 1.12;
  margin: 0;
}

/* -------------------------------------------------------------------------
   3. PROFILE SPOTLIGHT
   Big photo + intro text, used for the Presiding Member's own profile.
   ------------------------------------------------------------------------- */
.lead-modern__spotlight{
  padding: 56px 0;
}
.lead-modern__spotlight-grid{
  display: grid;
  grid-template-columns: 42% 1fr;
  gap: 40px;
  align-items: center;
}
.lead-modern__photo-card{
  position: relative;
  border-radius: var(--lm-radius-lg);
  overflow: hidden;
  box-shadow: var(--lm-shadow);
  background: var(--lm-forest-tint);
}
.lead-modern__photo-card img{
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  transition: transform .5s var(--lm-ease);
}
.lead-modern__photo-card:hover img{ transform: scale(1.04); }
.lead-modern__photo-overlay{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 22px 24px;
  background: linear-gradient(0deg, rgba(15,44,32,.92) 0%, rgba(15,44,32,0) 100%);
  color: #fff;
}
.lead-modern__photo-overlay h3{
  font-family: var(--lm-font-display);
  font-weight: 600;
  font-size: 21px;
  margin: 0 0 2px;
  color: #fff;
}
.lead-modern__photo-overlay span{
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--lm-gold);
  font-weight: 600;
}

.lead-modern__badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  background: var(--lm-gold-tint);
  color: var(--lm-gold-deep);
  font-family: var(--lm-font-mono);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 14px;
}
.lead-modern__content h2{
  font-family: var(--lm-font-display);
  font-weight: 600;
  font-size: clamp(22px, 3vw, 30px);
  color: var(--lm-forest-deep);
  margin: 0 0 16px;
}
.lead-modern__content > p{
  font-size: 16.5px;
  color: var(--lm-ink-soft);
  margin: 0 0 24px;
  line-height: 1.65;
}

.lead-modern__box{
  background: var(--lm-paper-raised);
  border: 1px solid var(--lm-line);
  border-left: 3px solid var(--lm-gold);
  border-radius: var(--lm-radius-md);
  padding: 18px 20px;
  margin-bottom: 14px;
  box-shadow: var(--lm-shadow);
}
.lead-modern__box:last-child{ margin-bottom: 0; }
.lead-modern__box h4{
  font-family: var(--lm-font-display);
  font-weight: 600;
  font-size: 15.5px;
  color: var(--lm-forest-deep);
  margin: 0 0 6px;
}
.lead-modern__box p{
  font-size: 14.5px;
  color: var(--lm-ink);
  margin: 0;
  line-height: 1.6;
}

/* -------------------------------------------------------------------------
   4. SECTION TITLE (used above the card grids)
   ------------------------------------------------------------------------- */
.lead-modern__section{ padding: 8px 0 64px; }
.lead-modern__section-title{
  text-align: center;
  max-width: 560px;
  margin: 0 auto 40px;
}
.lead-modern__section-title h2{
  font-family: var(--lm-font-display);
  font-weight: 600;
  font-size: clamp(22px, 3vw, 28px);
  color: var(--lm-forest-deep);
  margin: 0 0 8px;
}
.lead-modern__section-title p{
  font-size: 15px;
  color: var(--lm-ink-soft);
  margin: 0;
}

/* -------------------------------------------------------------------------
   5. CARD GRID
   Used for both "Past Presiding Members" and "Assembly Members".
   ------------------------------------------------------------------------- */
.lead-modern__grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 22px;
}
.lead-modern__card{
  background: var(--lm-paper-raised);
  border: 1px solid var(--lm-line);
  border-radius: var(--lm-radius-lg);
  overflow: hidden;
  box-shadow: var(--lm-shadow);
  transition: transform .25s var(--lm-ease), box-shadow .25s var(--lm-ease);
}
.lead-modern__card:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 32px -16px rgba(15,44,32,.28);
}
.lead-modern__card-img{
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  background: var(--lm-forest-tint);
  transition: transform .4s var(--lm-ease);
}
.lead-modern__card:hover .lead-modern__card-img{ transform: scale(1.05); }
.lead-modern__card-body{ padding: 16px 18px; }
.lead-modern__card-body h3,
.lead-modern__card-body h4{
  font-family: var(--lm-font-display);
  font-weight: 600;
  font-size: 16px;
  color: var(--lm-forest-deep);
  margin: 0 0 4px;
}
.lead-modern__card-body small{
  display: block;
  font-size: 13px;
  color: var(--lm-ink-soft);
}

/* Style used when an entry is missing information (a friendly placeholder
   instead of a silently-blank, broken-looking card). See the PHP file for
   how this class gets added automatically. */
.lead-modern__card--todo .lead-modern__card-body small,
.lead-modern__card--todo .lead-modern__card-body h3,
.lead-modern__card--todo .lead-modern__card-body h4{
  color: var(--lm-gold-deep);
  font-style: italic;
}
.lead-modern__card--todo{ border-style: dashed; }

/* -------------------------------------------------------------------------
   6. MOTION
   Simple fade + slide up, triggered by leadership-modern.js when an
   element scrolls into view. Also used for the hero on page load.
   ------------------------------------------------------------------------- */
.lead-modern .reveal-up{
  opacity: 0;
  transform: translateY(14px);
  animation: leadRevealUp .6s var(--lm-ease) forwards;
}
.lead-modern .reveal-up.d1{ animation-delay: .08s; }
.lead-modern .reveal-up.d2{ animation-delay: .16s; }
@keyframes leadRevealUp{ to{ opacity: 1; transform: translateY(0); } }

.lead-modern .scroll-reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s var(--lm-ease), transform .6s var(--lm-ease);
}
.lead-modern .scroll-reveal.is-visible{ opacity: 1; transform: translateY(0); }

/* Cards inside a grid reveal with a slight stagger for a nicer effect */
.lead-modern__grid .lead-modern__card{
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .5s var(--lm-ease), transform .5s var(--lm-ease), box-shadow .25s var(--lm-ease);
}
.lead-modern__grid.is-visible .lead-modern__card{ opacity: 1; transform: translateY(0); }
.lead-modern__grid.is-visible .lead-modern__card:nth-child(1){ transition-delay: .02s; }
.lead-modern__grid.is-visible .lead-modern__card:nth-child(2){ transition-delay: .06s; }
.lead-modern__grid.is-visible .lead-modern__card:nth-child(3){ transition-delay: .10s; }
.lead-modern__grid.is-visible .lead-modern__card:nth-child(4){ transition-delay: .14s; }
.lead-modern__grid.is-visible .lead-modern__card:nth-child(5){ transition-delay: .18s; }
.lead-modern__grid.is-visible .lead-modern__card:nth-child(6){ transition-delay: .22s; }

/* -------------------------------------------------------------------------
   7. RESPONSIVE
   ------------------------------------------------------------------------- */
@media (max-width: 991px){
  .lead-modern__spotlight-grid{ grid-template-columns: 1fr; }
  .lead-modern__photo-card{ max-width: 360px; margin: 0 auto; }
}
@media (max-width: 640px){
  .lead-modern__hero{ padding: 40px 0 30px; }
  .lead-modern__spotlight{ padding: 40px 0; }
  .lead-modern__section{ padding: 8px 0 48px; }
  .lead-modern__grid{ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
}
