/* Flatten only the integration's structural containers; native Elementor widgets retain their own layout. */
.elementor .e-con.pamflet-stack {display:contents}
.elementor-widget[class*="elementor-widget-pamflet-"] {width:100%;margin:0!important;--kit-widget-spacing:0px}
.elementor-widget[class*="elementor-widget-pamflet-"] > .elementor-widget-container {margin:0;padding:0}
.elementor-widget-pamflet-header {display:block;min-height:5.225rem}
.elementor-widget-pamflet-header>.elementor-widget-container {display:contents}
.elementor {--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}

.pamflet-languages {display:inline-flex;align-items:center;gap:2px;white-space:nowrap;font-size:inherit;margin-left:.4rem;padding:3px;border:2px solid var(--color-dark);border-radius:999px;background:var(--color-white);flex-shrink:0}
.nav-links .pamflet-languages a {font-family:var(--font-sans);font-weight:700;font-size:.72em;letter-spacing:.02em;line-height:1;padding:.4rem .6rem;border:0;border-radius:999px;background:none;color:var(--color-dark);opacity:.5}
.nav-links .pamflet-languages a[aria-current="true"] {border-color:transparent;background:var(--color-dark);color:var(--color-white);opacity:1}
/* Keep a continuous hover target while the pointer moves into the submenu. */
.nav-item::after {content:"";position:absolute;z-index:109;top:100%;left:0;right:0;height:.5rem}
.pamflet-consent {display:flex;gap:.5rem;align-items:flex-start;font-size:.85rem;line-height:1.5;grid-column:1/-1}
.pamflet-consent input {flex-shrink:0;margin-top:.25rem}
.footer-newsletter__form {flex-wrap:wrap}
.footer-newsletter__form .pamflet-consent {flex-basis:100%}
.pamflet-honey {position:absolute;left:-10000px}
[hidden] {display:none!important}
:focus-visible {outline:3px solid var(--color-blue-link);outline-offset:4px}
/* Keep the nav pinned independently of Elementor's short header container. */
body .elementor .navbar {position:fixed;top:0;left:0;right:0;width:100%}
body.admin-bar .elementor .navbar {top:32px}
.elementor-editor-active .reveal {opacity:1;transform:none}
.pamflet-map-svg {width:100%;height:100%;min-height:240px}
.pamflet-map-svg path {fill:#5a6065;stroke:#141618;stroke-width:.6}
.pamflet-map-svg .has-program {fill:var(--color-teal);cursor:pointer}
.pamflet-map-svg .has-program:hover,.pamflet-map-svg .has-program:focus {fill:var(--color-orange);outline:none}
.pamflet-map-svg circle {fill:var(--color-orange);stroke:white;stroke-width:1;pointer-events:none}
.pamflet-map-details {color:white;line-height:1.6;margin-top:1rem}
.pamflet-empty {padding:2rem;grid-column:1/-1}
@media(max-width:782px){body.admin-bar .elementor .navbar{top:46px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* SVG map: vertical swipe scrolls the page until zoomed in, then one finger pans */
#impactMap{position:relative}
.pamflet-map-svg{touch-action:pan-y}
.is-zoomed .pamflet-map-svg{touch-action:none}
.impact-map-zoom{position:absolute;left:6px;bottom:6px;display:flex;flex-direction:column;gap:6px}
.impact-map-zoom button{width:42px;height:42px;border:2px solid #00245b;border-radius:10px;background:#fff;color:#00245b;font:700 1.25rem/1 var(--font-sans,sans-serif);cursor:pointer}
.impact-map-zoom button:hover,.impact-map-zoom button:focus-visible{background:#edf6fd}

/* WordPress wraps blockquote text in <p>; keep the blockquote typography from the source design. */
.article-body blockquote p, .elementor .article-body blockquote p { font-size: inherit; line-height: inherit; margin: 0; }
/* Block-editor font-size presets (has-large-font-size etc. are !important) would blow up imported posts; keep the article scale. */
.article-body p[class*="-font-size"] { font-size: var(--text-body) !important; }
.article-body h2[class*="-font-size"] { font-size: clamp(1.8rem, 3.4vw, 2.6rem) !important; }
.article-body :is(ul,ol,li)[class*="-font-size"] { font-size: var(--text-body) !important; }

/* Post comments */
.article-comments { margin-top: 3.5rem; }
.article-comments h2 { margin-bottom: 1.5rem; }
.article-comments__list, .article-comments__list ol { list-style: none; margin: 0 0 2.5rem; padding: 0; }
.article-comments__list .comment-body { padding: 1.25rem 0; border-top: 1px solid rgba(0,0,0,.12); font-family: var(--font-body, inherit); }
.article-comments__list .comment-author { font-weight: 700; }
.article-comments__list .comment-metadata, .article-comments__list .reply { font-size: .875rem; }
.article-comments__list .comment-content p { font-size: 1rem; line-height: 1.6; margin: .5rem 0; font-family: var(--font-body, inherit); }
.article-comments .comment-form label { display: block; font-weight: 600; margin-bottom: .35rem; font-size: .95rem; }
.article-comments .comment-form input[type=text], .article-comments .comment-form input[type=email], .article-comments .comment-form input[type=url], .article-comments .comment-form textarea { width: 100%; padding: .75rem 1rem; border: 2px solid var(--color-blue, #002060); border-radius: .75rem; font: inherit; box-sizing: border-box; }
.article-comments .comment-form p { margin: 0 0 1rem; }
.article-comments .comment-form-cookies-consent { display: flex; gap: .5rem; align-items: center; }
.article-comments .comment-form-cookies-consent label { margin: 0; font-weight: 400; }
