.ipf-directory { --directory-ink: #002355; --directory-line: #d7e0e9; --directory-muted: #4b5b70; }
.ipf-directory h1 { max-width: 1100px; }
.ipf-directory a { text-underline-offset: .18em; }
.ipf-directory-intro { background: linear-gradient(115deg,#eef3f8,#fff); border-bottom: 1px solid var(--directory-line); }
.ipf-directory-snapshot { display: block; padding: 14px 18px; border-left: 4px solid #bf9a52; color: #263d59; background: #fff; font-weight: 600; }
.ipf-directory-families { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0; }
.ipf-directory-families a { display: inline-flex; align-items: center; gap: 10px; padding: 11px 15px; border: 1px solid #bfcddd; border-radius: 8px; background: #fff; color: var(--directory-ink); text-decoration: none; font-weight: 600; line-height: 1.4; }
.ipf-directory-families a span { background: #e9eff5; color: #263d59; padding: 2px 7px; border-radius: 4px; font-size: .85em; }
.ipf-directory-families a[aria-current],.ipf-directory-families a:hover { background: var(--directory-ink); color: #fff; border-color: var(--directory-ink); }
.ipf-directory-filters { display: grid; grid-template-columns: minmax(200px,1.25fr) minmax(170px,1fr) minmax(210px,1.3fr) minmax(140px,.7fr); gap: 20px; padding: 28px; border: 1px solid var(--directory-line); border-radius: 14px; background: #f5f7fa; }
.ipf-directory-filters label,.ipf-poll-scenario-form label { display: block; font-weight: 700; color: var(--directory-ink); margin-bottom: 8px; }
.ipf-directory-filters input[type=search],.ipf-directory-filters select,.ipf-poll-scenario-form select { display: block; width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #8396ae; border-radius: 6px; background: #fff; color: #1c304b; font: inherit; }
.ipf-directory-filters > div,.ipf-person-card,.ipf-person-card-body { min-width: 0; }
.ipf-directory-filters .ipf-directory-checkbox { display: flex; align-items: center; gap: 10px; margin: 0; grid-column: 1/3; font-weight: 500; }
.ipf-directory-checkbox input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: #002355; }
.ipf-directory-filter-actions { display: flex; gap: 20px; align-items: center; grid-column: 3/-1; }
.ipf-directory-result-heading { margin: 35px 0 24px; }
.ipf-directory-result-heading h2 { margin-bottom: 8px; }
.ipf-directory-result-heading p { color: var(--directory-muted); }
.ipf-person-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.ipf-person-card { border: 1px solid var(--directory-line); border-radius: 12px; overflow: hidden; background: #fff; display: flex; flex-direction: column; box-shadow: 0 5px 18px #00235509; }
.ipf-person-card figure { margin: 0; background: #e9eef3; }
.ipf-person-card figure > a { display: block; height: 265px; }
.ipf-person-card figure img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ipf-person-card figcaption { padding: 10px 14px; background: #f5f7fa; border-top: 1px solid var(--directory-line); }
.ipf-person-credit { display: block; font-size: 12px; color: #40546c; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
.ipf-person-credit a { color: #174d7c; }
.ipf-person-card-body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.ipf-person-card h2 { font-size: 23px; line-height: 1.25; margin: 7px 0 14px; overflow-wrap: anywhere; }
.ipf-person-card h2 a { color: #002355; text-decoration: none; }
.ipf-person-card h2 a:hover { text-decoration: underline; }
.ipf-person-card .ipf-eyebrow { font-size: 11px; letter-spacing: .08em; margin: 0; }
.ipf-person-role { font-weight: 600; color: #263d59; }
.ipf-person-card p { line-height: 1.55; margin-bottom: 12px; }
.ipf-person-card p.ipf-person-date { margin-top: auto; padding-top: 15px; border-top: 1px solid #e3e9f0; font-size: 12px; color: #52647b; }
.ipf-person-group { font-size: 13px; padding: 8px 10px; border-radius: 5px; background: #edf2f7; color: #183c62; }
.ipf-person-card-text { border-top: 5px solid #bf9a52; }
.ipf-person-text-heading { margin-top: 32px; font-size: 25px; }
.ipf-person-text-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.ipf-person-text-list .ipf-person-card-body { padding: 20px 24px; }
.ipf-directory-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 30px; padding: 20px; background: #eef3f8; border-radius: 10px; }
.ipf-directory-pagination p { margin: 0 12px 0 0; }
.ipf-directory-pagination a { padding: 10px 14px; background: #fff; border: 1px solid #aabbce; border-radius: 6px; color: #002355; }
.ipf-directory-explainer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin: 24px 0; }
.ipf-directory-explainer-grid article { padding: 26px; background: #fff; border: 1px solid var(--directory-line); border-radius: 12px; }
.ipf-directory-explainer-grid h3 { margin: 0 0 15px; font-size: 24px; }
.ipf-directory-explainer-grid article > :last-child { margin-bottom: 0; }
.ipf-directory-notice { margin: 24px 0; padding: 22px 26px; background: #fff8e9; border: 1px solid #d4bd8c; border-left: 5px solid #a17a2f; border-radius: 8px; color: #493d29; }
.ipf-directory-notice p { margin: 0; }
.ipf-person-profile { display: grid; grid-template-columns: minmax(240px,360px) minmax(0,1fr); gap: 50px; align-items: start; }
.ipf-person-profile:not(:has(.ipf-person-portrait)) { grid-template-columns: 1fr; }
.ipf-person-portrait { margin: 0; border: 1px solid var(--directory-line); border-radius: 12px; overflow: hidden; background: #eef2f6; }
.ipf-person-portrait img { display: block; width: 100%; height: auto; max-height: 540px; object-fit: contain; }
.ipf-person-portrait figcaption { padding: 16px; background: #fff; }
.ipf-person-portrait figcaption > span + span { margin-top: 10px; }
.ipf-person-profile-intro { padding-top: 16px; min-width: 0; }
.ipf-person-profile-intro h1 { margin-bottom: 20px; overflow-wrap: anywhere; }
.ipf-person-roles { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,430px),1fr)); gap: 24px; margin-top: 26px; }
.ipf-person-role-panel { padding: 28px; border: 1px solid var(--directory-line); border-radius: 12px; background: #fff; min-width: 0; }
.ipf-person-role-panel h3 { font-size: 26px; line-height: 1.35; margin: 8px 0 20px; }
.ipf-person-role-panel dl { margin: 0 0 24px; }
.ipf-person-role-panel dl > div { border-top: 1px solid #dfe6ee; padding: 14px 0; }
.ipf-person-role-panel dt { color: #4b5b70; font-size: 13px; margin-bottom: 5px; }
.ipf-person-role-panel dd { margin: 0; font-weight: 600; color: #203b5b; overflow-wrap: anywhere; }
.ipf-poll-enquiries { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 25px; }
.ipf-poll-enquiries > a { display: flex; flex-direction: column; gap: 12px; padding: 25px; color: #233c5a; border: 1px solid #b5c5d8; border-radius: 12px; text-decoration: none; background: #fff; }
.ipf-poll-enquiries strong { font-size: 23px; line-height: 1.3; }
.ipf-poll-enquiries span { font-size: 14px; }
.ipf-poll-enquiries [aria-current] { background: #002355; color: #fff; border-color: #002355; }
.ipf-poll-scenario-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px 20px; padding: 24px; margin: 25px 0; background: #fff; border: 1px solid var(--directory-line); border-radius: 10px; }
.ipf-poll-scenario-form label { grid-column: 1/-1; margin: 0; }
.ipf-poll-scenario-form select { min-width: 0; text-overflow: ellipsis; }
.ipf-poll-scenario-title { font-size: 25px; line-height: 1.4; }
.ipf-poll-keyfacts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--directory-line); border-radius: 10px; background: #fff; margin: 24px 0; overflow: hidden; }
.ipf-poll-keyfacts p { padding: 20px; margin: 0; }
.ipf-poll-keyfacts p + p { border-left: 1px solid var(--directory-line); }
.ipf-poll-keyfacts strong,.ipf-poll-keyfacts span { display: block; }
.ipf-poll-keyfacts strong { color: #002355; margin-bottom: 10px; }
.ipf-poll-table-wrap { overflow-x: auto; border: 1px solid var(--directory-line); border-radius: 12px; margin: 25px 0; background: #fff; }
.ipf-poll-table { width: 100%; border-collapse: collapse; color: #223e5d; margin: 0; }
.ipf-poll-table caption { text-align: left; padding: 20px; font-weight: 700; background: #fff; color: #002355; caption-side: top; }
.ipf-poll-table thead { background: #002355; color: #fff; }
.ipf-poll-table th,.ipf-poll-table td { padding: 16px 22px; text-align: left; border-bottom: 1px solid var(--directory-line); vertical-align: middle; }
.ipf-poll-table tbody th { width: 52%; font-size: 17px; }
.ipf-poll-table tbody tr:last-child > * { border-bottom: 0; }
.ipf-poll-person { display: flex; gap: 18px; align-items: center; }
.ipf-poll-person img { flex: 0 0 64px; width: 64px; height: 85px; object-fit: contain; background: #e8edf3; border-radius: 4px; }
.ipf-poll-person .ipf-person-credit { margin-top: 7px; font-size: 11px; }
.ipf-poll-table td > strong { font-size: 25px; color: #002355; white-space: nowrap; }
.ipf-poll-table meter { display: block; width: 100%; min-width: 130px; height: 14px; margin-top: 8px; accent-color: #174e7c; }
.ipf-poll-table meter::-webkit-meter-bar { background: #e1e8f0; border: 0; border-radius: 3px; }
.ipf-poll-table meter::-webkit-meter-optimum-value { background: #174e7c; border-radius: 3px; }
.ipf-poll-table meter::-moz-meter-bar { background: #174e7c; }
.ipf-poll-source { padding: 18px 22px; background: #fff; border: 1px solid var(--directory-line); border-radius: 8px; }
.ipf-directory :is(a,button,input,select,[tabindex]):focus-visible { outline: 3px solid #b17c1e; outline-offset: 4px; }
@media(min-width:1700px) { .ipf-person-grid { grid-template-columns: repeat(5,minmax(0,1fr)); } }
@media(max-width:1150px) { .ipf-person-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .ipf-directory-filters { grid-template-columns: repeat(2,minmax(0,1fr)); } .ipf-directory-filter-actions { grid-column: 2; } .ipf-directory-filters .ipf-directory-checkbox { grid-column: 1; } }
@media(max-width:850px) { .ipf-person-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .ipf-poll-enquiries { grid-template-columns: 1fr; } .ipf-person-profile { grid-template-columns: minmax(200px,280px) minmax(0,1fr); gap: 25px; } .ipf-person-profile-intro h1 { font-size: 36px; } .ipf-poll-keyfacts { grid-template-columns: 1fr; } .ipf-poll-keyfacts p + p { border-left: 0; border-top: 1px solid var(--directory-line); } }
@media(max-width:600px) { .ipf-person-grid,.ipf-person-text-list,.ipf-directory-explainer-grid,.ipf-directory-filters,.ipf-person-profile { grid-template-columns: 1fr; } .ipf-directory-filters { padding: 20px; gap: 18px; } .ipf-directory-filters .ipf-directory-checkbox,.ipf-directory-filter-actions { grid-column: 1; } .ipf-directory-filter-actions { flex-wrap: wrap; } .ipf-person-card figure > a { height: 300px; } .ipf-person-card h2 { font-size: 25px; } .ipf-person-portrait { max-width: 360px; width: 100%; } .ipf-person-profile-intro { padding-top: 0; } .ipf-person-role-panel,.ipf-directory-explainer-grid article { padding: 22px; } .ipf-poll-scenario-form { grid-template-columns: 1fr; padding: 18px; } .ipf-poll-table { min-width: 480px; } .ipf-poll-table th,.ipf-poll-table td { padding: 14px; } .ipf-poll-person { gap: 12px; } .ipf-directory-notice { padding: 18px; } }
