/* 2.4.12 · One public people component. Portrait media is 16:12 (4:3); chosen crop stays exact. */
.nfe-platform-page .nfe-person-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:stretch;
}
.nfe-person-card {
  --person-photo:160px;
  position:relative; display:grid; grid-template-columns:var(--person-photo) minmax(0,1fr);
  grid-template-rows:1fr auto; gap:8px 14px; align-content:center; align-items:center;
  min-width:0; padding:16px; border:1px solid #dce5df; border-radius:20px;
  background:#fff; color:var(--nfp-ink,#17211d); isolation:isolate;
  box-shadow:0 2px 3px rgba(19,47,34,.025),0 8px 24px rgba(19,47,34,.035);
  transition:border-color .18s ease,box-shadow .18s ease;
}
.nfe-person-card:hover {border-color:#9eb7a8;box-shadow:0 5px 10px rgba(19,47,34,.03),0 14px 30px rgba(19,47,34,.07)}
.nfe-person-card:focus-within {outline:3px solid #216347;outline-offset:3px}
.nfe-person-card > .nfe-person-media {grid-column:1;grid-row:1 / span 2;align-self:center}
.nfe-platform-page .nfe-person-media {
  position:relative; display:block; width:100%; height:auto; min-width:0; min-height:0; max-width:none;
  aspect-ratio:4 / 3; padding:0; border:0; border-radius:13px; overflow:hidden; isolation:isolate;
  background:#e8f0e9; flex-shrink:0;
}
/* Absolute media makes Safari independent of replaced-element intrinsic height. */
.nfe-platform-page .nfe-person-media > img {
  position:absolute; inset:0; display:block; width:100%; height:100%; min-height:0; max-width:none;
  margin:0; border:0; border-radius:0; object-fit:cover;
  object-position:var(--nfe-crop-x,50%) var(--nfe-crop-y,0%);
  transform:scale(var(--nfe-crop-z,1)); transform-origin:var(--nfe-crop-x,50%) var(--nfe-crop-y,0%);
  transition:none; z-index:1;
}
.nfe-platform-page .nfe-person-media > img[hidden] {display:none!important}
.nfe-person-monogram {
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; background:linear-gradient(140deg,#eef3e8,#dfeae2); color:#28513b; overflow:hidden;
}
.nfe-person-monogram::before,.nfe-person-monogram::after {
  content:""; position:absolute; width:100px; height:100px; border:1px solid rgba(39,87,59,.15);
  border-radius:50%; transform:rotate(-25deg); pointer-events:none;
}
.nfe-person-monogram::before {left:-42px;top:20px}.nfe-person-monogram::after {right:-38px;bottom:15px;width:125px;height:125px}
.nfe-platform-page .nfe-person-monogram b {width:auto;height:auto;display:block;position:relative;font-size:30px;font-weight:850;letter-spacing:-.07em;line-height:1}
.nfe-platform-page .nfe-person-monogram small {position:relative;font-size:8px;font-weight:750;letter-spacing:.16em;line-height:1.5}
.nfe-person-card__identity {grid-column:2;min-width:0;align-self:end}
.nfe-person-card__role {margin:0 0 6px;color:#31644a;font-size:11px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}
.nfe-person-card h3 {margin:0;max-width:100%;font-size:21px;font-weight:800;letter-spacing:-.025em;line-height:1.18;overflow-wrap:anywhere}
.nfe-platform-page .nfe-person-card__link:focus-visible {outline:none}
.nfe-person-card__link {color:inherit;text-decoration:none;outline-offset:5px}
.nfe-person-card__link::after {content:"";position:absolute;inset:0;z-index:1;border-radius:20px}
.nfe-person-card__focus {margin:8px 0 0;color:#5e6c63;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.nfe-person-card__actions {grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;align-self:start;min-width:0}
.nfe-person-card__hint {display:inline-flex;align-items:center;gap:5px;min-height:40px;color:#216347;font-size:12px;font-weight:800;white-space:nowrap}
.nfe-person-card__hint svg {width:16px;height:16px;flex-shrink:0}
.nfe-person-contact {position:relative;z-index:2;display:inline-flex;align-items:center;gap:5px;min-height:40px;padding:0 3px;color:#40564a;font-size:12px;text-decoration:none;font-weight:650;white-space:nowrap;border-radius:6px}
.nfe-person-contact svg {width:15px;height:15px;flex-shrink:0}
.nfe-person-contact:hover {color:#153e2e;text-decoration:underline;text-underline-offset:3px}
.nfe-person-contact:focus-visible {outline:2px solid #216347;outline-offset:2px}

/* Same shared crop in the homepage finder; scoped to the new media class. */
.nfe-platform-page .nfe-home24-people-list {grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;background:transparent}
.nfe-home24-people-list > a {border:1px solid #dce5df;border-radius:18px;padding:15px;min-width:0;min-height:0;position:relative}
.nfe-platform-page .nfe-home24-people-list > a > .nfe-person-media {width:100%;height:auto;aspect-ratio:4 / 3;border-radius:11px;margin-bottom:12px}
.nfe-home24-people-list > a > strong {font-size:17px;line-height:1.25;letter-spacing:-.02em;overflow-wrap:anywhere}
.nfe-home24-people-list > a > strong > small {font-size:11px;line-height:1.5;margin-top:7px;overflow-wrap:anywhere}
.nfe-home24-people-list > a > i {margin-top:10px}
.nfe-home24-people-list > a:focus-visible {outline:3px solid #216347;outline-offset:3px}

/* One profile sheet on every public page, not a different dialog per origin. */
.nfe-platform-page .nfe-p-profile-dialog {
  width:min(850px,calc(100% - 32px));height:fit-content;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);
  margin:auto;padding:0;border:1px solid #dce5df;border-radius:24px;background:#fff;color:#17211d;
  box-shadow:0 30px 100px rgba(3,24,13,.27);overflow:hidden;
}
.nfe-platform-page .nfe-p-profile-dialog[open] {display:flex;flex-direction:column}
.nfe-platform-page .nfe-p-profile-dialog > header {position:relative;flex:0 0 auto;padding:12px 20px;gap:12px;border-bottom:1px solid #e5ebe6;background:#fbfcf9}
.nfe-platform-page .nfe-p-profile-dialog > header button {min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.nfe-platform-page .nfe-p-profile-dialog > header [data-nfe-profile-close] {width:44px;font-size:25px}
.nfe-platform-page .nfe-p-profile-dialog > [data-nfe-profile-dialog-content] {flex:1 1 auto;min-height:0;overflow:auto;max-height:none;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-block:18px}
.nfe-platform-page .nfe-p-profile-dialog > footer {flex:0 0 auto;max-height:140px;overflow:auto}
.nfe-platform-page .nfe-p-profile-dialog > footer:empty {display:none}
.nfe-profile-sheet {padding:28px;min-width:0}
.nfe-profile-sheet__head {display:grid;grid-template-columns:260px minmax(0,1fr);gap:26px;align-items:center}
.nfe-profile-sheet__head .nfe-person-media {border-radius:16px}
.nfe-profile-sheet__identity {min-width:0}
.nfe-profile-sheet__identity .nfe-p-eyebrow {font-size:10px;letter-spacing:.11em;line-height:1.6;margin:0 0 6px}
.nfe-profile-sheet__identity h2 {font-size:clamp(26px,3.5vw,34px);line-height:1.12;letter-spacing:-.035em;margin:0;overflow-wrap:anywhere}
.nfe-profile-sheet__identity > p {font-size:13px;line-height:1.6;color:#5b6c61;margin:10px 0 0}
.nfe-profile-sheet__social {display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px}
.nfe-profile-sheet__social a {display:inline-flex;align-items:center;min-height:40px;color:#216347;font-size:12px;font-weight:700;text-decoration:none}
.nfe-profile-sheet__intro {margin:24px 0 0;padding:20px 22px;border-radius:16px;background:#f3f7f1;border:1px solid #e0e8dc}
.nfe-profile-sheet__intro h3 {font-size:15px;line-height:1.5;letter-spacing:-.01em;margin:0;color:#244d35}
.nfe-profile-sheet__intro p {font-size:14px;line-height:1.7;overflow-wrap:anywhere;margin:8px 0 0;color:#364b3e}
.nfe-profile-sheet__responsibilities {margin-top:26px;display:grid;gap:22px}
.nfe-profile-sheet__group > h3 {margin:0 0 10px;font-size:11px;letter-spacing:.08em;color:#506b58;line-height:1.5;text-transform:uppercase;font-weight:800}
.nfe-profile-sheet__group > div {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nfe-profile-sheet__group > div > :only-child {grid-column:1 / -1}
.nfe-profile-responsibility {padding:16px 18px;border:1px solid #e0e7e1;border-radius:14px;min-width:0}
.nfe-profile-responsibility h4 {margin:0;font-size:17px;line-height:1.35;overflow-wrap:anywhere}
.nfe-profile-responsibility > strong {display:block;margin:7px 0 0;font-size:12px;line-height:1.5;color:#58705f;font-weight:650}
.nfe-profile-responsibility > p {margin:7px 0 0;font-size:13px;line-height:1.6;color:#57675c;overflow-wrap:anywhere}
.nfe-person-contacts {display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:7px}
.nfe-person-contacts a {display:inline-flex;align-items:center;gap:6px;min-height:40px;text-decoration:none;font-size:12px;font-weight:750;color:#216347}
.nfe-person-contacts a svg {width:16px;height:16px}
.nfe-profile-sheet a:focus-visible,.nfe-p-profile-dialog button:focus-visible {outline:3px solid #216347;outline-offset:3px}

@media(max-width:1279px) {.nfe-platform-page .nfe-person-grid {grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px) {.nfe-platform-page .nfe-home24-people-list {grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:899px) {.nfe-platform-page .nfe-person-grid {grid-template-columns:minmax(0,1fr)}.nfe-person-card {--person-photo:176px}}
@media(max-width:620px) {
 .nfe-profile-sheet {padding:20px}.nfe-profile-sheet__head {grid-template-columns:1fr;gap:18px}
 .nfe-profile-sheet__head > .nfe-person-media {max-width:280px}
 .nfe-profile-sheet__group > div {grid-template-columns:1fr}
 .nfe-platform-page .nfe-p-profile-dialog {width:calc(100% - 20px);max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);border-radius:18px}
 .nfe-platform-page .nfe-p-profile-dialog > header {padding:10px 12px;gap:6px}
 .nfe-platform-page .nfe-p-profile-dialog > header > span {font-size:9px;letter-spacing:.04em}
 .nfe-profile-sheet__intro {padding:17px}
 .nfe-platform-page .nfe-home24-people-list {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:460px) {
 .nfe-person-card {--person-photo:144px;padding:16px;gap:8px 14px}
 .nfe-person-card h3 {font-size:20px}.nfe-person-card__role {font-size:11px}
 .nfe-person-card__actions {grid-column:1 / -1;gap:8px 18px;margin-top:4px}
 .nfe-person-card > .nfe-person-media {grid-row:1}
}
@media(max-width:359px) {
 .nfe-person-card {grid-template-columns:1fr;gap:14px;padding:18px}
 .nfe-person-card > .nfe-person-media {grid-column:1;grid-row:auto;width:176px;max-width:100%;align-self:start}
 .nfe-person-card__identity,.nfe-person-card__actions {grid-column:1}
 .nfe-platform-page .nfe-home24-people-list {grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce) {.nfe-person-card {transition:none}}
