/* =========================================================
   PEOPLE CARDS — CONSOLIDATED (clean + deduped, latest values kept)
   ========================================================= */


/* =========================
   GRID (vertical)
   ========================= */

/* Vars & wrapper */
.fl-person-cards-wrap{
  --gap: 10px;
  --inner-pad-x: 10px;

  --name-size:   clamp(0.9rem, 0.75vw, 1.05rem);
  --title-size:  clamp(0.78rem, 0.62vw, 0.90rem);
  --school-size: clamp(0.70rem, 0.55vw, 0.80rem);
  --meta-size:   clamp(0.72rem, 0.60vw, 0.82rem);
  --btn-size:    clamp(0.72rem, 0.60vw, 0.78rem);
}

/* Row: flex + centered partial rows */
.fl-person-cards-group{
  display:flex; flex-wrap:wrap; gap: var(--gap);
  justify-content:flex-start; align-items:stretch;
}

/* Columns in grid */
/* ≥992px: 6 across */
.fts-person-cards-person{
  box-sizing:border-box;
  flex: 0 1 calc((100% - 5 * var(--gap)) / 6);
  max-width: calc((100% - 5 * var(--gap)) / 6);
  width: calc((100% - 5 * var(--gap)) / 6);
}
/* 576–991px: 3 across */
@media (max-width: 991px) and (min-width: 576px){
  .fts-person-cards-person{
    flex: 0 1 calc((100% - 2 * var(--gap)) / 3);
    max-width: calc((100% - 2 * var(--gap)) / 3);
    width: calc((100% - 2 * var(--gap)) / 3);
  }
}
/* ≤575.98px: 1 across */
@media (max-width: 575.98px){
  .fts-person-cards-person{ flex: 0 1 100%; max-width:100%; width:100%; }
}

/* Equal-height 3-row card shell */
.fl-person-cards-group > .fts-person-cards-person{
  display:grid;
  grid-template-rows: auto 1fr auto;
  background:#fff;
  padding: 4px var(--inner-pad-x) 8px var(--inner-pad-x);
  text-align:center;
}
.fts-person-top{ grid-row:1; }
.fts-person-bottom{ grid-row:3; margin-top:8px !important; }

/* Top stack */
.fts-person-top{ display:flex; flex-direction:column; align-items:center; }

/* Image (square) */
.fl-builder-content .fts-person-img{
  width:100%; aspect-ratio:1/1; overflow:hidden;
  margin-bottom:8px !important; margin-top:2px !important; background:#fff;
}
.fts-person-img img.fts-person-photo{
  display:block; width:100%; height:100%;
  object-fit:cover; image-rendering:auto; object-position:50% 0 !important;
}

/* Text */
.fts-person-name, .fts-person-title, .fts-person-school{
  margin:0 !important; padding:0 !important; line-height:1.2 !important;
}
.fts-person-name{
  color:#101820; font-weight:600 !important; text-transform:uppercase;
  font-size:var(--name-size) !important; transition:color .2s ease;
}
.fts-person-title{
  margin-top:4px !important; letter-spacing:.015em; font-size:var(--title-size) !important;
}
.fts-person-school{
  margin-top:6px !important; color:#101820; font-weight:500 !important; font-style:italic;
  letter-spacing:.015em; font-size:var(--school-size) !important;
}

/* Bottom stack */
.fts-person-bottom{
  display:flex; flex-direction:column; align-items:stretch;
  gap:.25rem; padding:0 var(--inner-pad-x); padding-top:4px;
}

/* Hide empty rows */
.fts-person-cards-person.no-meta .fts-person-bottom{ display:none !important; }
.fts-person-bottom > .fts-person-email:empty,
.fts-person-bottom > .fts-person-calendar:empty,
.fts-person-bottom > .fts-person-phone:empty{ display:none !important; }
.fts-person-bottom > .fts-person-email:not(:has(a)),
.fts-person-bottom > .fts-person-calendar:not(:has(a)),
.fts-person-bottom > .fts-person-phone:not(:has(a)){ display:none !important; }

/* Links in bottom */
.fts-person-email, .fts-person-calendar, .fts-person-phone{
  display:flex; align-items:center; justify-content:center;
  text-transform:uppercase; margin:0 !important; padding:0 !important; line-height:1.2 !important;
}
.fts-person-email a, .fts-person-calendar a, .fts-person-phone a{
  display:inline-flex; align-items:center; gap:.375em;
  color:#007FA3; font-weight:700; letter-spacing:.05em;
  font-size:var(--meta-size) !important; line-height:1.2 !important;
  text-decoration:none; transition:color .25s ease;
}
.fts-person-email a:hover, .fts-person-calendar a:hover, .fts-person-phone a:hover{ color:#00AEC7; text-decoration:none; }
.fts-person-email svg, .fts-person-calendar svg, .fts-person-phone svg{ width:1em; height:1em; flex-shrink:0; }
.fts-person-email a:hover svg path, .fts-person-calendar a:hover svg path, .fts-person-phone a:hover svg path{ fill:#00AEC7 !important; }

/* View Bio button */
.fts-person-bottom .fts-view-bio-btn{
  align-self:stretch; margin-top:.5rem !important;
  margin-right:calc(var(--inner-pad-x) * -1); margin-left:calc(var(--inner-pad-x) * -1);
  width:calc(100% + (var(--inner-pad-x) * 2)); box-sizing:border-box;
  font-size:var(--btn-size) !important;
}
.fts-view-bio-btn, .fts-view-bio-btn:link, .fts-view-bio-btn:visited{
  display:block; text-decoration:none; text-transform:uppercase; letter-spacing:.075em;
  background:#007FA3; color:#fff !important; text-align:center; font-weight:700; line-height:1.1;
  padding:.5rem 1rem; border:0; border-radius:0; cursor:pointer; transition:background-color .2s ease, color .2s ease;
}
.fts-view-bio-btn:hover, .fts-view-bio-btn:active{ background:#00AEC7; color:#fff; }
.fts-view-bio-btn:focus-visible{ outline:2px solid #00AEC7; outline-offset:-2px; }

/* Optional border */
.fl-person-cards-wrap.card-border .fts-person-cards-person{
  --fts-card-border-color: rgba(214,210,196,.35);
  --fts-card-border-hover: rgba(214,210,196,.65);
  box-shadow: inset 0 0 0 1px var(--fts-card-border-color);
}
.fl-person-cards-wrap.card-border .fts-person-cards-person:hover{
  box-shadow: inset 0 0 0 1px var(--fts-card-border-hover), 0 2px 8px rgba(16,24,32,.06);
}
.fl-person-cards-wrap.card-border.is-very-light .fts-person-cards-person{
  --fts-card-border-color: rgba(214,210,196,.5);
  --fts-card-border-hover: rgba(214,210,196,.75);
}

/* Beaver margin guard */
.fl-module-content .fts-person-bottom > * + *{ margin-top: .25rem !important; }

/* Whole-card link affordance + hover color sync */
.fts-person-card.is-card-link{ cursor:pointer; position:relative; }
.fts-person-card.is-card-link a,
.fts-person-card.is-card-link button,
.fts-person-card.is-card-link [role="button"]{ position:relative; z-index:2; }
.fts-person-card.is-card-link:focus-visible{ outline:2px solid #00AEC7; outline-offset:2px; }
.fts-person-name a{ color:inherit; text-decoration:none; }
.fts-person-name a:hover{ color:#00AEC7 !important; }
.fts-person-cards-person:hover .fts-person-name{ color:#00AEC7 !important; }


/* =========================================================
   HZ (Columns & List)
   ========================================================= */

/* Global spacing var for HZ */
:root{ --stack-gap-hz: 12px; }

/* HZ card wrapper + type sizes (latest, smaller) */
.fl-person-card-single-hz{
  --gap: 12px;
  --inner-pad-x: 10px;

  --name-size:   clamp(0.90rem, 0.75vw, 1.05rem);
  --title-size:  clamp(0.74rem, 0.58vw, 0.86rem);
  --school-size: clamp(0.68rem, 0.50vw, 0.78rem);
  --meta-size:   clamp(0.62rem, 0.48vw, 0.74rem);
  --btn-size:    clamp(0.78rem, 0.62vw, 0.90rem);

  background:#fff; width:100%; display:block; box-sizing:border-box; margin:0;
}

/* Inner row: image | body */
.fl-person-card-single-hz .fts-person-cards-person-hz{
  display:flex; align-items:stretch; gap: var(--gap);
  background:transparent; padding:10px var(--inner-pad-x);
  text-align:left; box-sizing:border-box; overflow:hidden; position:relative; width:100%; min-width:0;
}

/* Image column — start ~150, square to 200, then height grows (width ≤200) */
.fl-person-card-single-hz .fts-person-img-hz{
  position:relative; flex:0 0 auto !important; width:auto !important; inline-size:auto !important;
  height:auto !important; align-self:stretch !important;
  min-height:130px !important; min-width:130px !important;  /* latest override to kill old 180s */
  max-width:200px !important; aspect-ratio:1 / 1 !important;
  overflow:hidden !important; margin:0 !important; background:#fff;
}

/* IMG/link always fill the box */
.fl-person-card-single-hz .fts-person-img-hz > a.fts-person-img-link-hz,
.fl-person-card-single-hz .fts-person-img-hz > img.fts-person-photo-hz{
  position:absolute; inset:0; width:100% !important; height:100% !important;
  object-fit:cover !important; object-position:50% 0 !important;
}

/* Body column */
.fl-person-card-single-hz .fts-person-body-hz{
  flex:1 1 auto; display:flex; flex-direction:column; gap:0; min-width:0; min-height:0 !important;
}

/* Text stack */
.fl-person-card-single-hz .fts-person-name-hz,
.fl-person-card-single-hz .fts-person-title-hz,
.fl-person-card-single-hz .fts-person-school-hz{
  margin:0 !important; padding:0 !important; line-height:1.2 !important;
}
.fl-person-card-single-hz .fts-person-name-hz{
  color:#101820; font-weight:600 !important; text-transform:uppercase;
  font-size:var(--name-size) !important; transition:color .2s ease;
}
.fl-person-card-single-hz .fts-person-title-hz{ margin-top:4px !important; letter-spacing:.015em; font-size:var(--title-size) !important; }
.fl-person-card-single-hz .fts-person-school-hz{ margin-top:6px !important; color:#101820; font-weight:500 !important; font-style:italic; letter-spacing:.015em; font-size:var(--school-size) !important; }

/* Hover: name color */
.fl-person-card-single-hz .fts-person-name-hz a{ color:inherit; text-decoration:none; }
.fl-person-card-single-hz .fts-person-name-hz a:hover{ color:#00AEC7 !important; }
.fl-person-card-single-hz .fts-person-img-hz:hover ~ .fts-person-body-hz .fts-person-name-hz,
.fl-person-card-single-hz:hover .fts-person-name-hz{ color:#00AEC7 !important; }

/* ---------- INLINE META (LIST only) ---------- */
.fts-inline-meta-hz{
  display:flex; flex-wrap:wrap; align-items:center;
  gap: 8px 18px; margin-top:auto !important; padding-top:12px;
  font-weight:700; text-transform:uppercase; letter-spacing:.06em; line-height:1.1;
  /* font-size: var(--meta-size); */
  font-size: clamp(0.58rem, 0.46vw, 0.70rem) !important;
  color:#007FA3;
}
.fts-inline-meta-hz a{
  display:inline-flex; align-items:center; gap:6px; text-decoration:none; color:#007FA3; transition:color .2s ease; white-space:nowrap;
}
.fts-inline-meta-hz a:hover{ color:#00AEC7; }
.fts-inline-meta-hz svg{ width:1em; height:1em; flex:0 0 1em; }
.fts-inline-meta-hz a:hover svg path{ fill:#00AEC7 !important; }

/* Extras */
.fl-person-card-single-hz .fts-person-extras-hz{ display:flex; flex-direction:column; gap:.5rem; margin-top:1rem; min-width:0; }
.fl-person-card-single-hz .fts-person-section-hz{ min-width:0; }
.fl-person-card-single-hz .fts-section-title-hz{ margin:0 0 .25rem 0; font-weight:600; letter-spacing:.075em; font-size: var(--title-size); color:#005776; }
.fl-person-card-single-hz .fts-list-wrap-hz ul,
.fl-person-card-single-hz .fts-list-wrap-hz ol,
.fl-person-card-single-hz .fts-list-hz{ margin:0; padding-left:1.1rem; }
.fl-person-card-single-hz .fts-list-wrap-hz li,
.fl-person-card-single-hz .fts-list-hz li{ margin:.125rem 0; line-height:1.25; word-break:break-word; font-size: var(--school-size); }
.fl-person-card-single-hz .fts-list-wrap-hz a,
.fl-person-card-single-hz .fts-list-hz a{ color:#007FA3; text-decoration:none; font-weight:700; letter-spacing:.02em; }
.fl-person-card-single-hz .fts-list-wrap-hz a:hover,
.fl-person-card-single-hz .fts-list-hz a:hover{ color:#00AEC7; text-decoration:underline; }

/* Border variant */
.fl-person-cards-wrap-hz.card-border-hz .fts-person-cards-person-hz{
  --fts-card-border-color: rgba(214,210,196,.35);
  --fts-card-border-hover: rgba(214,210,196,.65);
  box-shadow: inset 0 0 0 1px var(--fts-card-border-color);
}
.fl-person-cards-wrap-hz.card-border-hz .fts-person-cards-person-hz:hover{
  box-shadow: inset 0 0 0 1px var(--fts-card-border-hover), 0 2px 8px rgba(16,24,32,.06);
}
.fl-person-cards-wrap-hz.card-border-hz.is-very-light-hz .fts-person-cards-person-hz{
  --fts-card-border-color: rgba(214,210,196,.5);
  --fts-card-border-hover: rgba(214,210,196,.75);
}


/* =========================
   COLUMNS view (HZ)
   ========================= */

/* Group: 1-up -> 2-up ≥992px */
.fl-person-cards-wrap-hz.display-columns-hz .fl-person-cards-group-hz{
  display:grid; gap: var(--stack-gap-hz, 12px);
  grid-template-columns: 1fr;
  grid-auto-rows: minmax(0, 1fr);     /* equal-height cells per row without inflating */
  align-items: stretch !important;    /* each grid item fills row height */
}
@media (min-width: 992px){
  .fl-person-cards-wrap-hz.display-columns-hz .fl-person-cards-group-hz{
    grid-template-columns: 1fr 1fr !important;
    justify-items: stretch !important; align-items: stretch !important;
  }
}

/* Stacked meta (not inline) + pin to bottom */
.fl-person-cards-wrap-hz.display-columns-hz .fts-person-bottom-hz{
  display:flex !important; flex-direction:column !important;
  align-items:flex-start !important; gap:.25rem !important;
  margin-top:auto !important; padding-top:12px !important;
}

/* Ensure card + inner row fill grid cell */
.fl-person-cards-wrap-hz.display-columns-hz .fl-person-card-single-hz{ height:100% !important; }
.fl-person-cards-wrap-hz.display-columns-hz .fl-person-card-single-hz .fts-person-cards-person-hz{
  height:100% !important; min-height:130px !important; align-items:stretch !important; min-width:0 !important;
}

/* Hide bottom meta wrapper if truly empty (prevents phantom height) */
.fl-person-cards-wrap-hz.display-columns-hz .fts-person-bottom-hz:not(:has(.fts-person-email a, .fts-person-calendar a, .fts-person-phone a, .fts-view-bio-btn)){
  display:none !important; margin:0 !important; padding:0 !important;
}


/* =========================
   LIST view (HZ) — always 1-up
   ========================= */

.fl-person-cards-wrap-hz.display-list-hz .fl-person-cards-group-hz{
  display:grid; gap: var(--stack-gap-hz, 12px);
  grid-template-columns: 1fr !important;
}

/* Hide stacked bottom meta in List (use inline bar) */
.fl-person-cards-wrap-hz.display-list-hz .fts-person-bottom{ display:none !important; }


/* =========================
   RESPONSIVE (HZ)
   ========================= */

/* MD (576–991.98px) */
@media (max-width: 991.98px) and (min-width: 576px){
  /* smaller meta var already set globally; reinforce usage */
  .fl-person-cards-wrap-hz .fts-inline-meta-hz,
  .fl-person-cards-wrap-hz .fts-inline-meta-hz a{ font-size: var(--meta-size) !important; }

  /* Columns: 2-up grid, guts stacked in each card */
  .fl-person-cards-wrap-hz.display-columns-hz .fl-person-cards-group-hz{
    grid-template-columns: 1fr 1fr !important;
  }
  .fl-person-cards-wrap-hz.display-columns-hz .fl-person-card-single-hz .fts-person-cards-person-hz{
    display:flex !important; flex-direction:column !important; gap:10px !important;
  }
  .fl-person-cards-wrap-hz.display-columns-hz .fl-person-card-single-hz .fts-person-img-hz{
    flex:0 0 auto !important; width:100% !important; max-width:100% !important;
    height:auto !important; min-height:0 !important; aspect-ratio:1 / 1 !important; align-self:auto !important;
  }
  .fl-person-cards-wrap-hz.display-columns-hz .fl-person-card-single-hz .fts-person-body-hz{
    flex:1 1 auto !important; min-width:0 !important;
  }

  /* List: side-by-side; image 120px wide, 100% card height */
  .fl-person-cards-wrap-hz.display-list-hz .fl-person-card-single-hz .fts-person-cards-person-hz{
    display:flex !important; flex-direction:row !important; align-items:stretch !important; gap:12px !important;
  }
  .fl-person-cards-wrap-hz.display-list-hz .fl-person-card-single-hz .fts-person-img-hz{
    flex:0 0 120px !important; width:120px !important; max-width:120px !important;
    height:100% !important; min-height:150px !important; aspect-ratio:auto !important; align-self:stretch !important; overflow:hidden !important;
  }
  .fl-person-cards-wrap-hz.display-list-hz .fl-person-card-single-hz .fts-person-body-hz{
    flex:1 1 auto !important; min-width:0 !important;
  }
}

/* SM (≤575.98px): both stack; left-align body; square image */
@media (max-width: 575.98px){
  .fl-person-cards-wrap-hz.display-columns-hz .fl-person-cards-group-hz,
  .fl-person-cards-wrap-hz.display-list-hz    .fl-person-cards-group-hz{
    grid-template-columns: 1fr !important;
  }
  .fl-person-card-single-hz .fts-person-cards-person-hz{
    flex-direction:column !important; gap:10px !important; text-align:left !important;
  }
  .fl-person-card-single-hz .fts-person-img-hz{
    flex:0 0 auto !important; width:100% !important; max-width:100% !important;
    height:auto !important; min-height:0 !important; aspect-ratio:1 / 1 !important; align-self:auto !important;
  }
  .fl-person-card-single-hz .fts-person-body-hz{
    align-items:flex-start !important; min-width:0 !important;
  }
}


/* =========================
   Collapse “empty” Extras & Meta fully (HZ)
   ========================= */

.fl-person-card-single-hz .fts-person-extras-hz:empty,
.fl-person-card-single-hz .fts-person-extras-hz:not(:has(.fts-person-section-hz)){ display:none !important; margin:0 !important; padding:0 !important; }

.fl-person-card-single-hz .fts-person-section-hz:has(> br:only-child),
.fl-person-card-single-hz .fts-person-section-hz:has(> p:only-child:empty),
.fl-person-card-single-hz .fts-person-section-hz:has(> span:only-child:empty),
.fl-person-card-single-hz .fts-person-section-hz:not(:has(li, p:not(:empty), span:not(:empty), a, img, svg)){ display:none !important; }

.fl-person-card-single-hz .fts-list-wrap-hz:not(:has(li)),
.fl-person-card-single-hz .fts-list-hz:not(:has(li)){ display:none !important; }


/* =========================
   Columns sync (equal height + image behavior)
   ========================= */

/* (Already handled above; these reinforce final image/row behavior) */
.fl-person-card-single-hz .fts-person-cards-person-hz{ height:100% !important; align-items:stretch !important; min-height:0 !important; }
.fl-person-card-single-hz .fts-person-img-hz{ position:relative; } /* for absolute child fit */


/* =========================
   Content tweaks (HZ)
   ========================= */

/* Major Publications: label NOT italic; items ARE italic */
.fl-person-card-single-hz .fts-section-publications-hz .fts-section-title-hz,
.fl-person-card-single-hz .fts-section-title-hz.major-publication{
  font-style: normal !important;
}
.fl-person-card-single-hz .fts-section-publications-hz .fts-list-hz li,
.fl-person-card-single-hz .fts-section-publications-hz .fts-list-wrap-hz li{
  font-style: italic !important;
}

/* Ensure all meta bars use the (smaller) var */
.fl-person-card-single-hz .fts-inline-meta-hz,
.fl-person-card-single-hz .fts-inline-meta-hz a,
.fl-person-card-single-hz .fts-person-bottom-hz a{
  font-size: var(--meta-size) !important;
}
