.sr-only{
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

p a.button {
    margin-bottom: 0;
}

/* .layout h2 {
    font-size: 2rem;
    font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, color-emoji;
    font-weight: 600;
    line-height: 1.2;
    margin: 25px 0 10px;
}

.layout figcaption.wp-element-caption {
    color: var(--color-text-dimmed);
    font-size: .875rem;
    line-height: 1.42;
    padding-left: 54px;
    position: relative;
}

.layout figcaption.wp-element-caption:before {
    background: var(--color-blue-100);
    border-radius: 4px;
    bottom: 0;
    content: "";
    display: block;
    height: 100%;
    left: 30px;
    margin: auto;
    position: absolute;
    right: auto;
    top: 0;
    width: 4px;
}

.layout figure img {
    border-radius: 16px;
    display: block;
    margin-bottom: 10px;
    width: 100%;
} */

.layout a {
    cursor: pointer;
}

:is(ol,ul):not([class],[id]) {
    margin: 0 0 20px 0px;
}

/*
p:has(+ :is(ul:not([class]), ol:not([class]))) {
    margin-bottom: 5px;
}
*/

.address-window {
    position: relative !important;
    top: 0 !important;
    right: 0 !important;
}

#map img {
    background: none;
}

/* Margin Top */
.mt0  { margin-top:  0px; }
.mt10 { margin-top: 10px; }
.mt20 { margin-top: 20px; }
.mt30 { margin-top: 30px; }
.mt40 { margin-top: 40px; }
.mt50 { margin-top: 50px; }

/* Margin Bottom */
.mb0  { margin-bottom:  0px; }
.mb10 { margin-bottom: 10px; }
.mb20 { margin-bottom: 20px; }
.mb30 { margin-bottom: 30px; }
.mb40 { margin-bottom: 40px; }
.mb50 { margin-bottom: 50px; }

/* Margin Left */
.ml0  { margin-left:  0px; }
.ml10 { margin-left: 10px; }
.ml20 { margin-left: 20px; }
.ml30 { margin-left: 30px; }
.ml40 { margin-left: 40px; }
.ml50 { margin-left: 50px; }

/* Margin Right */
.mr0  { margin-right:  0px; }
.mr10 { margin-right: 10px; }
.mr20 { margin-right: 20px; }
.mr30 { margin-right: 30px; }
.mr40 { margin-right: 40px; }
.mr50 { margin-right: 50px; }

/* Padding Top */
.pt0  { padding-top:  0px; }
.pt10 { padding-top: 10px; }
.pt20 { padding-top: 20px; }
.pt30 { padding-top: 30px; }
.pt40 { padding-top: 40px; }
.pt50 { padding-top: 50px; }

/* Padding Bottom */
.pb0  { padding-bottom:  0px !important; }
.pb10 { padding-bottom: 10px; }
.pb20 { padding-bottom: 20px; }
.pb30 { padding-bottom: 30px; }
.pb40 { padding-bottom: 40px; }
.pb50 { padding-bottom: 50px; }

/* Padding Left */
.pl0  { padding-left:  0px; }
.pl10 { padding-left: 10px; }
.pl20 { padding-left: 20px; }
.pl30 { padding-left: 30px; }
.pl40 { padding-left: 40px; }
.pl50 { padding-left: 50px; }

/* Padding Right */
.pr0  { padding-right:  0px; }
.pr10 { padding-right: 10px; }
.pr20 { padding-right: 20px; }
.pr30 { padding-right: 30px; }
.pr40 { padding-right: 40px; }
.pr50 { padding-right: 50px; }

.wp-block-tco-blocks-image-with-text-block .column-box__image {
    aspect-ratio: 0;
}

.slideshow__item {
    width:auto;
}

figure.wp-block-post-featured-image img,
div.top-image img {
    border-radius: 0;
}

figure.wp-block-post-featured-image {
    margin-top: 0;
}

@media (min-width: 1000px) {
    .nav-box:lang(fr) {
        column-gap: 16px;
    }
}

.wp-block-tco-blocks-info-box-block.desc-box .desc-box__text p:last-child {
    margin-bottom: 0;
}

.desc-box--full-width {
    border-radius: 0;
}

.header__social-list img, .footer__social-list img {
    border-radius: 0;
    background: none;
}

@media (any-hover: hover) {
    .footer__social-link:hover img {
    filter: brightness(0) invert(1);
    }
}

.subscribe-popup .custom_form_container input[type="email"] {
  border: .5px solid var(--color-neutral-200);
  border-radius: 100px;
  color: var(--color-text-primary);
  background: transparent;
  height: 45px;
  font-size: 1rem;
}

form.cf_form input::placeholder {
  font-size: 1rem;
  color: var(--color-text-dimmed);
}

.slide-box__text-above-links {
    padding-left: 24px;
    padding-right: 24px;
    font-size:18px;
    line-height:1.5em;
}


div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input+label, div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input+label, div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input+label, div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input+label, div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input+label {
    padding-inline-start: 30px !important;
}

.page-menu-a__menu-list, .page-menu-b__menu-list,.page-menu-c__menu-list {
    width: 300px;
}

img[src$=".svg"] {
    border-radius: initial;
    background: initial;
}

figure img[src$=".svg"] {
    margin-bottom: 0;
}

.wp-block-tco-blocks-section-block.has-white-bg .preview__inner {
  background: var(--color-neutral-50);
}

.wp-block-tco-blocks-section-block.has-white-bg .preview__inner:hover {
  background: var(--color-blue-10);
}

.field-wrap input[type="checkbox"]:checked + label::before {
    background: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%229%22%20viewBox%3D%220%200%2012%209%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.128%200.956146C11.194%201.02194%2011.2463%201.10011%2011.2821%201.18617C11.3178%201.27222%2011.3361%201.36448%2011.3361%201.45765C11.3361%201.55082%2011.3178%201.64307%2011.2821%201.72913C11.2463%201.81518%2011.194%201.89335%2011.128%201.95915L4.75305%208.33415C4.68725%208.40011%204.60908%208.45245%204.52303%208.48815C4.43697%208.52386%204.34472%208.54225%204.25155%208.54225C4.15838%208.54225%204.06612%208.52386%203.98006%208.48815C3.89401%208.45245%203.81584%208.40011%203.75005%208.33415L0.916712%205.50081C0.783706%205.36781%200.708984%205.18741%200.708984%204.99931C0.708984%204.81121%200.783706%204.63082%200.916712%204.49781C1.04972%204.36481%201.23011%204.29008%201.41821%204.29008C1.60631%204.29008%201.78671%204.36481%201.91971%204.49781L4.25155%206.83106L10.125%200.956146C10.1908%200.890182%2010.269%200.837846%2010.3551%200.802137C10.4411%200.766428%2010.5334%200.748047%2010.6265%200.748047C10.7197%200.748047%2010.812%200.766428%2010.898%200.802137C10.9841%200.837846%2011.0622%200.890182%2011.128%200.956146Z%22%20fill%3D%22%233573b9%22%2F%3E%3C%2Fsvg%3E);
    background-repeat: no-repeat;
    background-position: 50% 50%;
}

.select2-container--open {
    width: 290px;
}

.menu-button__list {
    min-width: 250px;
}

.gsc-option-menu-container.gsc-inline-block {
    min-width: 120px;
}

.footer__funder-heading {
    margin-bottom: 16px;
}

.module-box .title-box p {
    color: #000000;
}

.header-d__control-divider {
    display: none !important;
}

@media (min-width: 1200px) {
    .header-d__nav-container {
        width: 1228px;
    }
}

.header-d__nav-container {
    padding: 16px 32px;
}

.column-box {
    /*align-items: center;*/
}

.desc-box__button {
    margin: 16px auto 0;
}

.desc-box__title {
    margin: 0 0 16px;
}

.text-box.theme-bg-primary {
    background-color: #fff7d4;
}

.video-container {
  position: relative;
  padding-bottom: 56.25%;
  margin-bottom: 30px;
}
.video-container:last-child {
    margin-bottom: 0;
}

.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.wp-block-ub-content-toggle-accordion {
    border-top: none!important;
    border-left: none!important;
    border-right: none!important;
}
.wp-block-ub-content-toggle-accordion-title-wrap {
    background: none!important;
}

.wp-block-ub-content-toggle-accordion-content-wrap {
    padding-left: 25px;
    background: var(--text-box-secondary-bg-color);
    border-radius: var(--border-radius-large);
}

.wp-block-ub-content-toggle-accordion-content-wrap > :last-child {
    margin-bottom: 10px;
}

.wp-block-group__inner-container > :first-child {
    margin-top: 0;
}

html {
  scroll-behavior: smooth;
}

.resource-preview__data {
    justify-content: start;
}

/* Header nav alignment (set via admin "Align Menu" option) */
@media (min-width: 1200px) {
    .is-nav-left {
        --header-menu-justify: flex-start;
        --header-b-menu-justify: flex-start;
        --header-c-menu-justify: flex-start;
    }

    .is-nav-center {
        --header-menu-justify: center;
        --header-b-menu-justify: center;
        --header-c-menu-justify: center;
    }

    .is-nav-right {
        --header-menu-justify: flex-end;
        --header-b-menu-justify: flex-end;
        --header-c-menu-justify: flex-end;
    }
}
/* Transparent header color schema — applied via --tc-transparent-color CSS variable */
.js-header.is-transparent {
    --tc-transparent-color: inherit;
}

/* Nav link text */
.js-header.is-transparent .nav-box__button,
.js-header.is-transparent .nav-box-b__heading-link,
.js-header.is-transparent .header__large-button,
.js-header.is-transparent .header-subscribe,
.js-header.is-transparent .header-social-wrapper__label,
.js-header.is-transparent .search-box__action-button {
    color: var(--tc-transparent-color);
}

/* SVG icon paths: nav arrows, search icon */
.js-header.is-transparent .nav-box__button-icon-path,
.js-header.is-transparent .nav-box-b__button-icon-path,
.js-header.is-transparent .nav-menu__button-icon-path,
.js-header.is-transparent .nav-menu-b__button-icon-path,
.js-header.is-transparent .search-box__action-icon-path,
.js-header.is-transparent .search-box__reset-icon-path {
    fill: var(--tc-transparent-color);
    stroke: var(--tc-transparent-color);
}

/* Search input border and text */
.js-header.is-transparent .search-box__input {
    border-color: var(--tc-transparent-color);
    color: var(--tc-transparent-color);
}
.js-header.is-transparent .search-box__input::placeholder {
    color: var(--tc-transparent-color);
    opacity: 0.6;
}

/* Vertical dividers between header control elements */
.js-header.is-transparent .header__control-divider {
    background: var(--tc-transparent-color);
}

/*
.media-box.has-large-height .media-box__media {
    aspect-ratio: initial;
}
*/

/* =========================================================
   Icon menu block — alignment & colour CSS variables
   ========================================================= */

/* Alignment — override compiled fixed widths/auto-margins so justify-content works */
.link-with-icon-list[class*="icon-menu-align-"],
.icon-preview-list[class*="icon-menu-align-"],
.icon-preview-c-list[class*="icon-menu-align-"] {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
}

/* Ensure flex-wrap rows respect the chosen alignment (each row aligns the same way) */
.link-with-icon-list[class*="icon-menu-align-"],
.feature-list[class*="icon-menu-align-"],
.icon-preview-list[class*="icon-menu-align-"],
.icon-preview-c-list[class*="icon-menu-align-"],
.icon-preview-d-box__list[class*="icon-menu-align-"] {
    flex-wrap: wrap;
}

.link-with-icon-list.icon-menu-align-left,
.feature-list.icon-menu-align-left,
.icon-preview-list.icon-menu-align-left,
.icon-preview-c-list.icon-menu-align-left,
.icon-preview-d-box__list.icon-menu-align-left  { justify-content: flex-start; }

.link-with-icon-list.icon-menu-align-center,
.feature-list.icon-menu-align-center,
.icon-preview-list.icon-menu-align-center,
.icon-preview-c-list.icon-menu-align-center,
.icon-preview-d-box__list.icon-menu-align-center { justify-content: center; }

.link-with-icon-list.icon-menu-align-right,
.feature-list.icon-menu-align-right,
.icon-preview-list.icon-menu-align-right,
.icon-preview-c-list.icon-menu-align-right,
.icon-preview-d-box__list.icon-menu-align-right  { justify-content: flex-end; }

/* Icon colour override */
[style*="--icon-menu-icon-color"] .fa-icon,
[style*="--icon-menu-icon-color"] .feature__icon,
[style*="--icon-menu-icon-color"] .link-with-icon__icon,
[style*="--icon-menu-icon-color"] .icon-preview-a__icon,
[style*="--icon-menu-icon-color"] .icon-preview-b__icon,
[style*="--icon-menu-icon-color"] .icon-preview-c__icon,
[style*="--icon-menu-icon-color"] .icon-preview-d-box__icon {
    color: var(--icon-menu-icon-color);
}

/* Hover colour override (feature + link-with-icon) */
[style*="--icon-menu-hover-color"] .feature:hover .feature__icon,
[style*="--icon-menu-hover-color"] .feature:focus .feature__icon,
[style*="--icon-menu-hover-color"] .link-with-icon__inner:hover .link-with-icon__icon,
[style*="--icon-menu-hover-color"] .link-with-icon__inner:focus .link-with-icon__icon {
    color: var(--icon-menu-hover-color);
}

/* Background colour override */
[style*="--icon-menu-bg-color"] .icon-preview-c,
[style*="--icon-menu-bg-color"] .icon-preview-d-box__item:nth-child(odd) {
    background-color: var(--icon-menu-bg-color);
}
[style*="--icon-menu-bg-color-alt"] .icon-preview-d-box__item:nth-child(even) {
    background-color: var(--icon-menu-bg-color-alt);
}

/* =========================================================
   Hero media block — new CSS classes
   ========================================================= */

/* Full-height variant (100vh) */
.media-box.is-full-height {
    min-height: 100svh;
}
.media-box.is-full-height .media-box__media {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.media-box.is-full-height .media-box__inner {
    position: relative;
    min-height: 100svh;
}
.media-box.is-full-height .media-box__media-wrapper {
    position: absolute;
    inset: 0;
    z-index: 1;
}

/*
 * Sub-pixel rendering fix: at certain viewport widths the browser rounds the
 * ::before overlay dimensions, leaving a hairline gap. Extending by 2px on
 * every side (clipped by the wrapper's existing overflow:hidden) eliminates
 * this for all gradient alignments.
 */
@media (min-width: 1000px) {
    .media-box.is-wide.has-gradient .media-box__media-wrapper {
        overflow: hidden;
    }
    .media-box.is-wide.has-gradient .media-box__media-wrapper::before {
        top:    -2px !important;
        left:   -2px !important;
        width:  calc(100% + 4px) !important;
        height: calc(100% + 4px) !important;
    }
}

/*
 * Gradient overrides — all variants start from 0% (no flat "transparent 14%"
 * hard stop). A hard percentage stop causes a 1-2px sub-pixel banding artifact
 * at widths like 1520-2080px where 14% falls on a fractional pixel boundary.
 * Starting smoothly from 0% eliminates the artifact on all alignments.
 */
@media (min-width: 1000px) {
    /* Default / left: right → left — override new-styles.min.css base gradient */
    .media-box.is-wide.has-gradient .media-box__media-wrapper::before {
        background: linear-gradient(270deg,
            rgba(0, 0, 0, 0) 0%,
            rgba(0, 0, 0, .4) 50%,
            rgba(0, 0, 0, .9) 100%);
    }
    .media-box.is-wide.has-gradient[style*="--hero-gradient-color"] .media-box__media-wrapper::before {
        background: linear-gradient(270deg,
            transparent 0%,
            color-mix(in srgb, var(--hero-gradient-color) 40%, transparent) 50%,
            color-mix(in srgb, var(--hero-gradient-color) 90%, transparent) 100%);
    }

    /* Right: left → right */
    .media-box.is-wide.has-gradient.has-content-right .media-box__media-wrapper::before {
        background: linear-gradient(90deg,
            rgba(0, 0, 0, 0) 0%,
            rgba(0, 0, 0, .4) 50%,
            rgba(0, 0, 0, .9) 100%);
    }
    .media-box.is-wide.has-gradient.has-content-right[style*="--hero-gradient-color"] .media-box__media-wrapper::before {
        background: linear-gradient(90deg,
            transparent 0%,
            color-mix(in srgb, var(--hero-gradient-color) 40%, transparent) 50%,
            color-mix(in srgb, var(--hero-gradient-color) 90%, transparent) 100%);
    }

    /* Center: transparent both sides, darkest at centre */
    .media-box.is-wide.has-gradient.has-content-center .media-box__media-wrapper::before {
        background: linear-gradient(90deg,
            rgba(0, 0, 0, 0) 0%,
            rgba(0, 0, 0, .4) 25%,
            rgba(0, 0, 0, .9) 50%,
            rgba(0, 0, 0, .4) 75%,
            rgba(0, 0, 0, 0) 100%);
    }
    .media-box.is-wide.has-gradient.has-content-center[style*="--hero-gradient-color"] .media-box__media-wrapper::before {
        background: linear-gradient(90deg,
            transparent 0%,
            color-mix(in srgb, var(--hero-gradient-color) 40%, transparent) 25%,
            color-mix(in srgb, var(--hero-gradient-color) 90%, transparent) 50%,
            color-mix(in srgb, var(--hero-gradient-color) 40%, transparent) 75%,
            transparent 100%);
    }
}

/* Banner: optional colour mask */
.media-box.has-mask .media-box__media-wrapper::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--hero-bg-mask, rgb(0 0 0 / 20%));
    z-index: 2;
    pointer-events: none;
}

/* Large-beside: overlay textbox on image */
@container wrapper (min-width: 1200px) {
    /* Placeholder stays in its own column, becomes a positioning context */
    .media-box-b.is-wide.has-overlay-textbox .media-box-b__placeholder {
        grid-row: 1;
        position: relative;
    }
    /* Content box is absolutely positioned within the placeholder column:
       - left: 50px  → 50px gap from the far (non-image) edge
       - right: -50px → extends 50px past the column boundary into the image
       This works for any container width without fixed pixel widths.           */
    .media-box-b.is-wide.has-overlay-textbox .media-box-b__content {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 50px;
        right: -50px;
        width: auto;
        margin: 0;
        z-index: 2;
    }
    /* image-left (image on left, text on right): mirror the offsets */
    .media-box-b.is-wide.image-left.has-overlay-textbox .media-box-b__content {
        left: -50px;
        right: 50px;
    }
}

/* image-left: image in column 1 (left), text in column 2 (right).
   Default layout (no class) is text LEFT, image RIGHT.
   Old saved blocks may have class image-right — with no CSS for it they fall
   back to the default (image RIGHT), which is correct for "right" alignment. */
@container wrapper (min-width: 1200px) {
    .media-box-b.image-left .media-box-b__media {
        grid-column: 1;
        grid-row: 1;
    }
    .media-box-b.image-left .media-box-b__placeholder {
        grid-column: 2;
        justify-content: flex-start;
    }
}

/* Medium-beside (is-short): flat style — text on block background, no white card */
@container wrapper (min-width: 1200px) {
    .media-box-b.is-short .media-box-b__placeholder {
        justify-content: flex-start;
        padding: 50px;
    }
    .media-box-b.is-short .media-box-b__content {
        background: transparent;
        border-radius: 0;
        margin-right: 0;
        padding: 0;
        width: auto;
        max-width: 514px;
    }
}

/* Large-beside (is-wide) without overlay: same beside layout as is-short, taller image */
@container wrapper (min-width: 1200px) {
    .media-box-b.is-wide:not(.has-overlay-textbox) .media-box-b__placeholder {
        justify-content: flex-start;
        padding: 50px;
    }
    .media-box-b.is-wide:not(.has-overlay-textbox) .media-box-b__content {
        background: transparent;
        border-radius: 0;
        margin-right: 0;
        padding: 0;
        width: auto;
        max-width: 514px;
    }
    /* Default / Medium height (~375px at typical column widths) */
    .media-box-b.is-wide .media-box-b__media {
        aspect-ratio: 1.6;
    }
    /* Small height (~280px at typical column widths) */
    .media-box-b.is-wide.has-height-small .media-box-b__media {
        aspect-ratio: 2.2;
    }
    /* Tall height (~545px at typical column widths) */
    .media-box-b.is-wide.has-height-tall .media-box-b__media {
        aspect-ratio: 1.1;
    }
}

@media (min-width: 1200px) {
    .layout__container .media-box.is-wide .media-box__container {
        padding-left: 30px;
        padding-right: 30px;
        position: absolute;
    }
}

/* Header divider — border-bottom already exists in compiled CSS on .header-b__nav-container;
   only suppress it when the admin explicitly disables the setting. */
@media (min-width: 1200px) {
    .header-b.no-bottom-divider .header-b__nav-container {
        border-bottom: none;
    }
}


.footer-e, .footer-d  {
    color : var(--footer-text-color);
}

.media-box__gradient-content>:is(p,ul,ol) {
    max-width: 100%;
}

.text-box.theme-bg-secondary {
    background: #7f3f970f;
    border-color: #7f3f970f;
}