/* Shared readable layout across editorial and territorial templates. */
:root { --ipf-content-width:1240px; --ipf-space:clamp(32px,4vw,56px); }
body.ipf-page,body.ipf-page.fdnl-body { font-size:16px; line-height:1.65; }
body.ipf-page .ipf-shell,body.ipf-page .row,body.ipf-page .fdnl-section,body.ipf-page .fdnl-hero>div,body.ipf-page .fdnl-breadcrumbs,body.ipf-page .ipf-footer-shell { width:min(var(--ipf-content-width),calc(100% - 48px)); margin-inline:auto; }
body.ipf-page .ipf-header-shell { width:min(1440px,calc(100% - 48px)); }
.ipf-shell>*,.ipf-resource-grid>*,.ipf-editorial-split>*,.fdnl-two-columns>* { min-width:0; }
body.ipf-page .ipf-topic-links { justify-content:flex-start; gap:20px; padding-block:8px; }
body.ipf-page .ipf-topic-links>span { flex:0 0 auto; white-space:nowrap; }
body.ipf-page .fdnl-hero h1 { font-size:clamp(1.9rem,3.25vw,3rem); line-height:1.15; text-transform:none; margin-bottom:20px; }
body.ipf-page .fdnl-heading h2,body.ipf-page .fdnl-two-columns h2 { font-size:clamp(1.45rem,2.25vw,2rem); line-height:1.25; text-transform:none; margin-bottom:16px; }
body.ipf-page main h1 { font-size:clamp(1.9rem,3.25vw,3rem); line-height:1.15; letter-spacing:-.02em; text-transform:none; margin-bottom:20px; }
body.ipf-page main h2 { font-size:clamp(1.45rem,2.25vw,2rem); line-height:1.25; letter-spacing:-.01em; text-transform:none; margin-bottom:16px; }
body.ipf-page main h3 { font-size:1.18rem; line-height:1.35; text-transform:none; }
body.ipf-page main p,body.ipf-page main li { overflow-wrap:break-word; }
body.ipf-page .ipf-section,body.ipf-page .fdnl-section { padding-block:var(--ipf-space); }
body.ipf-page .ipf-section-heading { margin-bottom:28px; max-width:900px; }
body.ipf-page .ipf-lead { font-size:1.08rem; line-height:1.65; max-width:75ch; }
body.ipf-page .ipf-page-hero,body.ipf-page .ipf-page-hero-deep { min-height:0; padding:48px 0 52px; }
body.ipf-page .ipf-page-hero-content { max-width:900px; }
body.ipf-page .ipf-page-hero p { font-size:1.06rem; line-height:1.65; max-width:75ch; }
body.ipf-page .ipf-hero { min-height:0; padding:48px 0; }
body.ipf-page .ipf-hero-layout { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:32px; }
body.ipf-page .ipf-hero h2 { font-size:1.22rem; line-height:1.5; }
body.ipf-page .ipf-hero-visual { min-height:0; align-self:center; }
body.ipf-page .ipf-hero-visual-image img { height:auto; max-height:280px; aspect-ratio:auto; object-fit:contain; }
body.ipf-page .ipf-hero-visual-card { width:100%; margin:0; padding:18px; box-shadow:none; }
body.ipf-page .ipf-hero-visual-card p { font-size:.95rem; }
body.ipf-page .ipf-hero-panel { margin-top:24px; }
body.ipf-page .hero_rule { width:min(320px,65%); margin:20px 0; }
body.ipf-page .ipf-kpi-grid>* { min-height:0; padding:22px 20px; }
body.ipf-page .ipf-kpi-grid strong { font-size:1.45rem; line-height:1.25; }
body.ipf-page .ipf-kpi-grid span { font-size:.92rem; line-height:1.5; }
body.ipf-page .ipf-editorial-split { gap:32px; align-items:start; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
body.ipf-page .ipf-resource-grid,body.ipf-page .ipf-guide-directory-grid { gap:24px; }
body.ipf-page .ipf-guide-directory-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
body.ipf-page .ipf-guide-directory-card { min-height:0; padding:22px; }
body.ipf-page .ipf-guide-directory-card h2 { font-size:1.35rem; }
body.ipf-page .ipf-hero-visual .ipf-documentary-credit { padding:10px 14px; color:white; background:#001128; margin:0; }
body.ipf-page .ipf-hero-visual .ipf-documentary-credit a { color:inherit; text-decoration:underline; }
body.ipf-page .ipf-portal-hero { isolation:isolate; }
body.ipf-page .ipf-guide-directory-card>img,body.ipf-page .ipf-card-media { height:auto; max-height:230px; aspect-ratio:16/9; object-fit:cover; }
body.ipf-page .ipf-card,body.ipf-page .ipf-resource-card { padding:24px; }
body.ipf-page .ipf-card p,body.ipf-page .ipf-resource-card p { font-size:1rem; line-height:1.65; }
body.ipf-page .ipf-breadcrumb ol,body.ipf-page .fdnl-breadcrumbs,body.ipf-page .ipf-editorial-note .ipf-shell { font-size:.85rem; }
body.ipf-page .ipf-page-index .ipf-shell { flex-wrap:wrap; gap:8px 20px; padding-block:14px; }
body.ipf-page .ipf-page-index a { font-size:.9rem; white-space:normal; }
body.ipf-page .fdnl-hero { min-height:0; padding:42px 0; }
body.ipf-page .fdnl-section-muted { width:100%; padding-inline:max(24px,calc((100% - var(--ipf-content-width))/2)); }
body.ipf-page .fdnl-two-columns { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:32px; }
body.ipf-page .fdnl-facts { padding:24px; }
body.ipf-page .fdnl-facts h2 { font-size:1.35rem; }
body.ipf-page .fdnl-facts dl div { display:grid; grid-template-columns:minmax(90px,.7fr) minmax(0,1.3fr); gap:12px; }
body.ipf-page .fdnl-facts dd { overflow-wrap:anywhere; }
.ipf-documentary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.ipf-documentary-grid figure { margin:0; background:white; border:1px solid var(--ipf-line); border-radius:6px; overflow:hidden; }
.ipf-documentary-grid img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.ipf-documentary-grid figcaption { padding:18px; font-size:.95rem; }
.ipf-documentary-grid figcaption strong { display:block; margin-bottom:8px; }
.ipf-documentary-credit { display:block; margin-top:10px; font-size:.85rem; }
@media(max-width:1100px) { body.ipf-page .ipf-guide-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:980px) {
 body.ipf-page .ipf-hero-layout,body.ipf-page .ipf-editorial-split,body.ipf-page .fdnl-two-columns { grid-template-columns:1fr; gap:24px; }
 body.ipf-page .ipf-hero-visual { max-width:580px; }
 .ipf-documentary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:680px) {
 body.ipf-page .ipf-shell,body.ipf-page .row,body.ipf-page .ipf-header-shell,body.ipf-page .ipf-footer-shell,body.ipf-page .fdnl-section,body.ipf-page .fdnl-hero>div,body.ipf-page .fdnl-breadcrumbs { width:calc(100% - 32px); }
 body.ipf-page .ipf-hero,body.ipf-page .ipf-page-hero,body.ipf-page .fdnl-hero { padding-block:32px; }
 body.ipf-page .ipf-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.ipf-page .ipf-kpi-grid>* { padding:18px 12px; }
 body.ipf-page .ipf-kpi-grid strong { font-size:1.2rem; }
 body.ipf-page .ipf-kpi-grid span { font-size:.9rem; }
 body.ipf-page .ipf-guide-directory-grid,.ipf-documentary-grid { grid-template-columns:1fr; }
 body.ipf-page .ipf-card,body.ipf-page .ipf-resource-card,body.ipf-page .ipf-guide-directory-card { padding:20px; }
 body.ipf-page .fdnl-section-muted { width:100%; padding-inline:16px; }
 body.ipf-page .ipf-hero-disclosure { position:relative; display:block; bottom:auto; right:auto; margin:12px 16px 0; max-width:none; font-size:.8rem; }
 body.ipf-page .ipf-page-hero:has(.ipf-hero-disclosure) { display:flex; flex-direction:column; }
 body.ipf-page .ipf-page-hero:has(.ipf-hero-disclosure)>.ipf-shell { order:-1; }
}
@media print { body.ipf-page .ipf-shell,body.ipf-page .fdnl-section { width:100%; } body.ipf-page .ipf-section,body.ipf-page .ipf-page-hero { padding:1rem 0; } .ipf-documentary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* Directory cards must remain readable when their content grows. */
body.ipf-page .ipf-formations-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr)); gap:20px; }
body.ipf-page .ipf-formation-card { padding:20px; min-height:0; }
body.ipf-page .ipf-formation-card strong { font-size:1.05rem; line-height:1.4; }
body.ipf-page .ipf-formation-card small,body.ipf-page .ipf-formation-link { font-size:.88rem; line-height:1.5; }
body.ipf-page .ipf-directory-note { font-size:.95rem; }
body.ipf-page .ipf-media-library-card h2 { font-size:1.3rem; }
body.ipf-page .ipf-media-library-card small { font-size:.88rem; line-height:1.5; }
body.ipf-page .ipf-media-library-card figure img { max-height:240px; object-fit:contain; background:#f1f4f8; }
body.ipf-page .ipf-visual-atlas-grid img,body.ipf-page .ipf-showcase-grid img,body.ipf-page .ipf-gallery-card img { max-height:260px; object-fit:cover; }
body.ipf-page .ipf-editorial-photo img { max-height:340px; object-fit:cover; }
body.ipf-page .ipf-documentary-grid .ipf-card-media { height:220px; aspect-ratio:auto; margin:0; object-fit:contain; background:#f1f4f8; border-radius:0; }
body.ipf-page .ipf-documentary-grid p { font-size:1rem; line-height:1.65; }
body.ipf-page input,body.ipf-page select,body.ipf-page textarea { font-size:1rem; }
@media(max-width:680px) { body.ipf-page .ipf-hero-content>p:not(.ipf-eyebrow) { display:block; font-size:1rem; } body.ipf-page .ipf-hero .ipf-actions .ipf-button:nth-child(3) { display:inline-flex; } }
body.ipf-page .ipf-directory-tools { grid-template-columns:minmax(0,1fr) auto; }
body.ipf-page .ipf-directory-tools input,body.ipf-page .ipf-directory-tools select { min-width:0; max-width:100%; width:100%; }
body.ipf-page .ipf-portal-hero .ipf-page-hero-media { z-index:0; }
body.ipf-page .ipf-portal-hero::before { z-index:1; }
body.ipf-page .ipf-portal-hero>.ipf-shell { position:relative; z-index:2; }
body.ipf-page .ipf-hero-visual-image img { aspect-ratio:auto; object-fit:contain; }
body.ipf-page .ipf-portal-hero .ipf-hero-panel { display:none; }
@media(min-width:981px) { body.ipf-page .ipf-hero-layout { grid-template-columns:minmax(0,1.9fr) minmax(0,1fr); } }
@media(max-width:680px) { body.ipf-page .ipf-directory-tools { grid-template-columns:minmax(0,1fr); } }

body.ipf-page .ipf-guide-directory-card>img { object-fit:contain; background:#f1f4f8; }
@media(max-width:680px) {
 body.ipf-page .ipf-portal-hero { display:flex; flex-direction:column; align-items:stretch; }
 body.ipf-page .ipf-portal-hero>.ipf-shell { order:-1; }
 body.ipf-page .ipf-portal-hero>.ipf-hero-disclosure { align-self:flex-start; }
}
