/*
Theme Name: OFI Venezia Padova Rovigo — Gutenberg
Description: Componenti a blocchi per il futuro sito e l'area soci, conservati in Site Beta Lab.
Version: 0.7.0
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: ofi-vpr-blocks
*/

/* WordPress puts the content padding inside the full-width backgrounds. */
.wp-site-blocks > header,
.wp-site-blocks > footer { margin-block: 0; }
.ofi-header, .ofi-footer { box-sizing: border-box; }
.ofi-header {
    position: relative;
    z-index: 20;
    border-bottom: 1px solid rgb(255 255 255 / 20%);
}
.ofi-header__inner > * { margin-block: 0; }
.ofi-header__brand {
    min-height: 100px;
    padding-block: 10px;
    box-sizing: border-box;
}
.ofi-header__logo { margin: 0; line-height: 0; }
.ofi-header__logo img { display: block; max-width: 100%; height: auto; }
.ofi-header__navigation { gap: 1.5rem; min-height: 54px; }
/* Text-only enlargement can outgrow the desktop menu before its width breakpoint. */
.ofi-header .ofi-header__navigation { flex-wrap: wrap; }
.ofi-header .ofi-primary-nav { min-width: 0; max-width: 100%; }
.ofi-header .ofi-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { flex-wrap: wrap; }
.ofi-header__social,
.ofi-footer .wp-block-social-links { gap: .5rem; margin: 0; }
.ofi-header .wp-block-social-link a,
.ofi-footer .wp-block-social-link a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
}
.ofi-header .wp-block-social-link svg,
.ofi-footer .wp-block-social-link svg { width: 26px; height: 26px; }
.ofi-primary-nav { line-height: 1.35; }
.ofi-primary-nav .wp-block-navigation-item__content {
    padding: 1rem .7rem;
    text-decoration: none;
    text-underline-offset: .3em;
}
.ofi-primary-nav .wp-block-navigation-submenu__toggle {
    min-height: 44px;
    padding-inline: .7rem;
}
.ofi-primary-nav .wp-block-navigation__container > .wp-block-navigation-item {
    border-inline-start: 1px solid rgb(255 255 255 / 22%);
}
/* Keep the label, arrow and click target inside the same desktop menu cell. */
.ofi-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    min-height: 54px;
    padding: 1rem .7rem;
}
.ofi-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .has-child > .wp-block-navigation-submenu__toggle {
    width: 100%;
    padding-inline-end: calc(.7rem + .6em + .4rem);
}
.ofi-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon {
    position: absolute;
    inset-inline-end: .7rem;
    inset-block-start: 50%;
    margin: 0;
    transform: translateY(-50%);
    pointer-events: none;
}
.ofi-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon svg {
    display: block;
    margin: 0;
}
.ofi-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item:is(:hover, :focus-within, .current-menu-item) {
    box-shadow: inset 0 -3px var(--wp--preset--color--highlight);
    background-color: rgb(255 255 255 / 7%);
}
.ofi-primary-nav .is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] {
    box-shadow: inset 0 -3px var(--wp--preset--color--highlight);
}
.ofi-primary-nav .wp-block-navigation__submenu-icon { margin-inline: -.25rem .7rem; }
.ofi-header .ofi-primary-nav .wp-block-navigation__submenu-container {
    min-width: 260px !important;
    padding: .4rem;
    border: 1px solid #dce5e9;
    border-radius: 0 0 6px 6px;
    background-color: var(--wp--preset--color--base);
    color: var(--wp--preset--color--accent);
    box-shadow: 0 12px 28px rgb(7 55 94 / 14%);
}
.ofi-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    box-sizing: border-box;
    width: 100%;
    padding: .8rem .9rem;
    white-space: normal;
}
.ofi-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
    background-color: var(--wp--preset--color--surface);
    color: var(--wp--preset--color--accent);
}
.ofi-primary-nav .wp-block-navigation__responsive-container-open,
.ofi-primary-nav .wp-block-navigation__responsive-container-close {
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgb(255 255 255 / 55%);
    border-radius: 4px;
}
.ofi-primary-nav .is-menu-open .wp-block-navigation__responsive-container-close {
    display: flex;
    line-height: 1;
}
.ofi-primary-nav .wp-block-navigation__responsive-container-open svg,
.ofi-primary-nav .wp-block-navigation__responsive-container-close svg {
    display: block;
    flex: none;
    width: 24px;
    height: 24px;
    margin: 0;
}
.ofi-header :where(a, button):focus-visible,
.ofi-footer :where(a, button):focus-visible {
    outline: 3px solid var(--wp--preset--color--highlight);
    outline-offset: 3px;
}
.ofi-footer {
    margin-block-start: 3rem;
    border-top: 1px solid #dce5e9;
    font-size: .925rem;
    line-height: 1.6;
}
.ofi-footer__content { padding-block: 2.75rem; }
.ofi-footer__columns {
    gap: clamp(1.5rem, 3vw, 3rem);
    margin-top: 1.75rem;
    margin-bottom: 0;
}
.ofi-footer h3 { color: var(--wp--preset--color--accent); font-size: 1rem; }
.ofi-footer .wp-block-column > * { margin-block: 0 1rem; }
.ofi-footer a {
    overflow-wrap: anywhere;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em;
}
.ofi-footer a:hover { text-decoration-thickness: 2px; }
.ofi-footer :where(a, button):focus-visible { outline-color: var(--wp--preset--color--accent); }
.ofi-footer__bottom :where(a, button):focus-visible { outline-color: var(--wp--preset--color--highlight); }
.ofi-footer__bottom { margin-block-start: 0; padding-block: .75rem; font-size: .8125rem; }
.ofi-footer__bottom p { margin: 0; }

/* The complete menu needs more room than the core mobile breakpoint allows. */
@media (max-width: 1099px) {
    .ofi-header__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 1rem;
        align-items: center;
        min-height: 96px;
    }
    .ofi-header .ofi-header__brand { justify-content: flex-start; min-height: 0; padding-block: 14px; }
    .ofi-header__logo img { width: min(300px, 100%) !important; }
    .ofi-header__navigation { min-height: 0; }
    .ofi-header .ofi-header__social { display: none; }
    .ofi-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
    .ofi-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
}
.ofi-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
    box-sizing: border-box;
    padding: clamp(1.25rem, 4vw, 3rem);
    --navigation-layout-justification-setting: stretch;
    text-align: left;
}
.ofi-header .ofi-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content {
    align-items: stretch;
    padding-top: 4rem;
}
.ofi-header .ofi-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
    align-items: stretch;
    width: 100%;
    gap: .25rem;
}
.ofi-header .ofi-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item { align-items: stretch; border-inline: 0; }
.ofi-header .ofi-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
    box-sizing: border-box;
    min-width: 0 !important;
    width: 100%;
    padding: .3rem .75rem;
    border: 0;
    border-inline-start: 1px solid rgb(255 255 255 / 25%);
    border-radius: 0;
    box-shadow: none;
}
.ofi-header .ofi-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
    padding: .75rem .6rem;
    box-sizing: border-box;
    min-height: 44px;
}
.ofi-primary-nav .is-menu-open .wp-block-navigation-submenu__toggle { text-align: left; }
@media (max-width: 781px) {
    .ofi-footer__columns { gap: 1.25rem; }
    .ofi-footer__columns > .wp-block-column + .wp-block-column { padding-top: 1.25rem; border-top: 1px solid #dce5e9; }
}

/* Article: the original ruled layout, with a calmer image stage and reading width. */
.wp-site-blocks > .ofi-single-main { margin-block-start: 0; }
.ofi-single-main { padding-block: 0; }
.ofi-single-main .ofi-article-layout {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) 310px;
    gap: 0;
    align-items: stretch;
    border-inline: 1px solid #dce5eb;
}
.ofi-article-layout > * { min-width: 0; margin-block: 0; }
.ofi-article-rail { border-inline-end: 1px solid #dce5eb; }
.ofi-article-rail .wp-block-post-terms {
    writing-mode: vertical-rl;
    padding-top: 2.25rem;
    margin-inline: auto;
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ofi-article-rail a { text-decoration: none; }
.ofi-article { border-inline-end: 1px solid #dce5eb; }
.ofi-article > * { margin-block: 0; }
.ofi-article-hero {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 280px;
    padding: clamp(1rem, 3vw, 2.25rem);
    box-sizing: border-box;
    background: linear-gradient(135deg, #edf4f6, #e2edf2);
    border-block-end: 1px solid #dce5eb;
}
.ofi-article-hero:not(:has(img)) { display: none; }
.ofi-article-hero .wp-block-post-featured-image { width: 100%; margin: 0; }
.ofi-article-hero .wp-block-post-featured-image img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 420px;
    object-fit: contain;
}
.ofi-article-taxonomy {
    min-height: 40px;
    box-sizing: border-box;
    padding: .5rem 1.25rem;
    font-size: .8125rem;
    background: #fff;
}
.ofi-article-taxonomy a { text-decoration: none; }
.ofi-article-taxonomy a:hover { text-decoration: underline; }
.ofi-page-context--section a { text-decoration: underline; text-underline-offset: .2em; }
.ofi-article .ofi-article-meta {
    gap: .4rem;
    padding: .75rem 1.25rem;
    min-height: 48px;
    box-sizing: border-box;
    font-size: .875rem;
}
.ofi-article-meta > * { margin: 0; }
.ofi-article-meta time { font-weight: 600; }
.ofi-article-reading { padding: clamp(1.25rem, 3.5vw, 3rem); }
.ofi-article-breadcrumbs { margin: 0 0 1.5rem; font-size: .8125rem; color: #526473; }
.ofi-article-breadcrumbs span { padding-inline: .4rem; color: #8ba0ae; }
.ofi-article-breadcrumbs a { color: inherit; text-underline-offset: .2em; }
.ofi-article .ofi-article-title {
    margin-block: 0 1.75rem;
    color: var(--wp--preset--color--accent);
    font-size: clamp(1.75rem, 2.6vw, 2.5rem);
    font-weight: 600;
    line-height: 1.2;
    text-wrap: pretty;
    overflow-wrap: anywhere;
}
.ofi-article-body {
    max-width: 72ch;
    font-size: 1.0625rem;
    line-height: 1.85;
    overflow-wrap: anywhere;
}
.ofi-article-body > :first-child { margin-block-start: 0; }
.ofi-article-body > * + * { margin-block-start: 1.25rem; }
.ofi-article-body a,
.ofi-article-media a { text-underline-offset: .2em; text-decoration-thickness: 1px; }
.ofi-article-body a:hover,
.ofi-article-media a:hover { text-decoration-thickness: 2px; }
.ofi-article-body img,
.ofi-article-media img { max-width: 100%; height: auto; }
.ofi-article-body :where(iframe, video),
.ofi-article-media :where(iframe, video) { max-width: 100%; }
.ofi-article-media {
    clear: both;
    margin: 0;
    border-block: 1px solid #dce5eb;
    background: var(--wp--preset--color--surface);
}
.ofi-article-media__heading { padding: 1.25rem clamp(1.25rem, 3.5vw, 3rem); border-bottom: 1px solid #dce5eb; }
.ofi-article-media__heading h2 {
    margin: 0;
    border-inline-start: 3px solid var(--wp--preset--color--highlight);
    padding-inline-start: .75rem;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--wp--preset--color--accent);
}
.ofi-article-media__content { padding: clamp(1.25rem, 3.5vw, 3rem); }
.ofi-article-media__content > :first-child { margin-block-start: 0; }
.ofi-article-media__content > :last-child { margin-block-end: 0; }
.ofi-article-media__content :where(.wp-block-embed, .wp-video) { width: 100%; margin-inline: 0; }
.ofi-article-media__content :where(video, .is-type-video iframe, iframe[src*="youtube"], iframe[src*="vimeo.com"]) { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; }
.ofi-article-media__content audio { width: 100%; }
.ofi-article-media__content .wp-block-gallery { gap: .75rem; }
.ofi-article-media-editor { padding: 1.25rem; border: 1px dashed #8ba0ae; background: #f0f8f8; }
.ofi-article-sidebar-content { padding: 2rem 1.5rem; }
.ofi-article-sidebar-content > * + * { margin-block-start: 2.5rem; }
.ofi-sidebar-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0 0 1.25rem;
    color: var(--wp--preset--color--accent);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
}
.ofi-sidebar-heading::after { content: ""; flex: 1; height: 1px; background: #cbdce4; }
.ofi-related-query { margin: 0; }
.ofi-related-list { padding: 0; margin: 0; list-style: none; }
.ofi-related-list > li { margin: 0; padding-block: 1rem; border-bottom: 1px solid #e1e9ed; }
.ofi-related-list > li:first-child { padding-block-start: 0; }
.ofi-related-date { margin: 0 0 .35rem; color: #526473; font-size: .75rem; letter-spacing: .025em; }
.ofi-related-list .ofi-related-title { margin: 0; font-size: .875rem; font-weight: 600; line-height: 1.55; }
.ofi-related-title a { text-decoration: none; text-underline-offset: .2em; }
.ofi-related-title a:hover { text-decoration: underline; }
.ofi-article-join { padding: 1.25rem; background: #f0f6f8; border: 1px solid #dce5eb; }
.ofi-article-join .ofi-sidebar-heading { display: block; margin-block-end: .75rem; }
.ofi-article-join > p { margin: 0; font-size: .8125rem; color: #526473; line-height: 1.65; }
.ofi-article-join .ofi-join-qr { margin: 1rem auto; text-align: center; }
.ofi-join-qr img { display: block; max-width: 100%; height: auto; margin-inline: auto; }
.ofi-article-join .wp-block-buttons { margin-block-start: .75rem; }
.ofi-join-button,
.ofi-join-button .wp-block-button__link { width: 100%; }
.ofi-join-button .wp-block-button__link { box-sizing: border-box; border-radius: 3px; padding: .8rem .7rem; font-size: .8125rem; font-weight: 600; line-height: 1.5; }
.ofi-article-sidebar-extra img { display: block; width: 100%; height: auto; }
.ofi-single-main :where(a, button):focus-visible { outline: 3px solid #b68a00; outline-offset: 3px; }
.ofi-single-main + footer .ofi-footer { margin-block-start: 0; }
@media (max-width: 1099px) {
    .ofi-single-main .ofi-article-layout { grid-template-columns: minmax(0, 1fr) 270px; }
    .ofi-article-rail { display: none; }
    .ofi-article-sidebar-content { padding-inline: 1.25rem; }
}
@media (max-width: 781px) {
    .ofi-single-main .ofi-article-layout { grid-template-columns: minmax(0, 1fr); border-inline: 0; }
    .ofi-article { border-inline-end: 0; }
    .ofi-article-hero { min-height: 0; padding: 1rem; }
    .ofi-article-hero .wp-block-post-featured-image img { max-height: 340px; }
    .ofi-article-taxonomy { justify-content: flex-start; padding-inline: 1.25rem; }
    .ofi-article-sidebar { border-top: 1px solid #dce5eb; }
    .ofi-article-sidebar-content { max-width: 36rem; margin-inline: auto; padding-block: 2rem; }
    .ofi-article-body { font-size: 1rem; line-height: 1.8; }
}

/* Pages share the article frame and use the WordPress parent/child hierarchy. */
.ofi-article-rail .ofi-page-context--rail {
    writing-mode: vertical-rl;
    padding-top: 2.25rem;
    margin-inline: auto;
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ofi-page-context--breadcrumbs { line-height: 1.7; overflow-wrap: anywhere; }
.ofi-page-context--breadcrumbs [aria-current="page"] { padding: 0; color: var(--wp--preset--color--contrast); }
.ofi-page-navigation .ofi-sidebar-heading a { text-decoration: none; }
.ofi-page-navigation .ofi-sidebar-heading a:hover { text-decoration: underline; }
.ofi-page-sibling-list { list-style: none; margin: 0; padding: 0; }
.ofi-page-sibling-list > li { margin: 0; border-bottom: 1px solid #e1e9ed; }
.ofi-page-sibling-list a {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 44px;
    box-sizing: border-box;
    padding-block: .8rem;
    font-size: .925rem;
    font-weight: 600;
    line-height: 1.55;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.ofi-page-sibling-list a::after { content: "→"; flex: none; margin-inline-start: auto; opacity: .6; }
.ofi-page-sibling-list a:hover { text-decoration: underline; text-underline-offset: .2em; }
.ofi-page-body li + li { margin-block-start: .45rem; }
.ofi-page-body .wp-block-table { max-width: 100%; overflow-x: auto; }
.ofi-page-body a:is([href$=".pdf" i], [href*=".pdf?" i])::after {
    content: " PDF";
    display: inline;
    white-space: nowrap;
    margin-inline-start: .35rem;
    padding: .05rem .3rem;
    border: 1px solid #dce5eb;
    border-radius: 2px;
    color: #526473;
    font-size: .625em;
    line-height: 1.5;
    font-weight: 600;
    vertical-align: .12em;
}
.ofi-page-layout:not(:has(> .ofi-page-sidebar .ofi-page-navigation)) { grid-template-columns: 52px minmax(0, 1fr); }
.ofi-page-layout:not(:has(> .ofi-page-sidebar .ofi-page-navigation)) > .ofi-page-sidebar { display: none; }
.ofi-page-layout:not(:has(> .ofi-page-sidebar .ofi-page-navigation)) > .ofi-article { border-inline-end: 0; }
.ofi-page-context-editor { padding: 1rem; border: 1px dashed #8ba0ae; background: #f0f8f8; }
@media (max-width: 1099px) {
    .ofi-page-layout:not(:has(> .ofi-page-sidebar .ofi-page-navigation)) { grid-template-columns: minmax(0, 1fr); }
}

/* Archive, search and recovery pages. Core queries preserve the main URL/query. */
.ofi-listing-main { margin-block: 0; background:var(--wp--preset--color--base); }
.ofi-listing-main > .alignwide { max-width: var(--wp--style--global--wide-size); }
.ofi-listing-intro { margin-block: 0; padding: clamp(1.5rem,4vw,3rem); border-inline: 1px solid #dce5eb; border-bottom: 1px solid #dce5eb; background: linear-gradient(120deg,#edf4f6,#f7fafb); }
.ofi-listing-breadcrumbs { margin: 0 0 1.5rem; font-size: .8125rem; }
.ofi-listing-breadcrumbs span { padding-inline: .4rem; color:#526473; }
.ofi-kicker { margin: 0 0 .65rem; color:var(--wp--preset--color--accent); text-transform:uppercase; letter-spacing:.09em; font-size:.75rem; font-weight:700; }
.ofi-listing-main h1 { max-width: 28ch; margin:0 0 1rem; font-size:clamp(1.8rem,4vw,2.75rem); line-height:1.2; color:var(--wp--preset--color--accent); overflow-wrap:anywhere; }
.ofi-listing-intro > p:not(.ofi-kicker,.ofi-listing-breadcrumbs), .ofi-listing-intro .wp-block-term-description { max-width:70ch; color:#526473; }
.ofi-site-search { max-width:42rem; margin-block:1.5rem 0; }
.ofi-site-search label { display:block; margin-bottom:.5rem; color:var(--wp--preset--color--accent); font-weight:600; font-size:.875rem; }
.ofi-site-search .wp-block-search__inside-wrapper { gap:.5rem; }
.ofi-site-search input { min-width:0; min-height:48px; border:1px solid #657d8c; border-radius:3px; background:white; color:#172033; padding:.65rem .8rem; font:inherit; }
.ofi-site-search button { min-height:48px; border:1px solid var(--wp--preset--color--accent); border-radius:3px; background:var(--wp--preset--color--accent); color:white; padding:.65rem 1.25rem; font:inherit; font-weight:600; cursor:pointer; }
.ofi-listing-layout { display:grid; grid-template-columns:minmax(0,1fr) 270px; border-inline:1px solid #dce5eb; margin-block:0; }
.ofi-listing-query { min-width:0; padding:clamp(1.25rem,3vw,2.5rem); border-inline-end:1px solid #dce5eb; }
.ofi-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin:0; padding:0; }
.ofi-card-grid > li { min-width:0; margin:0; height:100%; }
.ofi-card { height:100%; box-sizing:border-box; border:1px solid #dce5eb; border-radius:3px; overflow:hidden; background:white; }
.ofi-card .wp-block-post-featured-image { margin:0; background:#edf4f6; }
.ofi-card .wp-block-post-featured-image img { display:block; }
.ofi-card-body { padding:1.25rem; }
.ofi-card .wp-block-post-date { margin-bottom:.75rem; color:#526473; font-size:.75rem; }
.ofi-card .wp-block-post-title { font-size:1.125rem; line-height:1.45; margin:0 0 .85rem; overflow-wrap:anywhere; }
.ofi-card .wp-block-post-title a { text-decoration:none; }
.ofi-card .wp-block-post-title a:hover { text-decoration:underline; text-underline-offset:.2em; }
.ofi-card .wp-block-post-excerpt { color:#526473; font-size:.875rem; line-height:1.7; margin:0 0 1rem; }
.ofi-card .wp-block-post-excerpt__excerpt { margin:0; }
.ofi-card-read-more { display:inline-flex; align-items:center; min-height:44px; font-size:.8125rem; font-weight:600; text-underline-offset:.25em; }
.ofi-card-read-more::after { content:'→'; margin-inline-start:.5rem; }
.ofi-pagination { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:2rem; }
.ofi-pagination a, .ofi-pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; box-sizing:border-box; padding:.4rem .75rem; margin:0; border:1px solid #dce5eb; border-radius:3px; text-decoration:none; }
.ofi-pagination .page-numbers.current { background:var(--wp--preset--color--accent); color:white; border-color:var(--wp--preset--color--accent); }
.ofi-pagination .wp-block-query-pagination-numbers { display:flex; flex-wrap:wrap; gap:.4rem; margin:0; }
.ofi-listing-sidebar { padding:2rem 1.5rem; }
.ofi-listing-sidebar h2 { font-size:1rem; margin:0 0 1.25rem; color:var(--wp--preset--color--accent); }
.ofi-category-list { padding:0; list-style:none; margin:0 0 2rem; font-size:.8125rem; color:#526473; }
.ofi-category-list li { border-bottom:1px solid #e1e9ed; }
.ofi-category-list a { display:inline-flex; min-height:44px; align-items:center; font-size:.875rem; font-weight:600; text-decoration:none; }
.ofi-category-list a:hover { text-decoration:underline; }
.ofi-listing-sidebar p { font-size:.875rem; }
.ofi-empty-state { padding:2rem; border:1px dashed #b8cbd5; background:#f5f9fa; }
.ofi-empty-state h2 { margin-top:0; color:var(--wp--preset--color--accent); font-size:1.25rem; }
.ofi-not-found { max-width:var(--wp--style--global--wide-size); margin-block:0; padding:clamp(2rem,7vw,6rem) clamp(1.25rem,6vw,5rem); background:linear-gradient(120deg,#edf4f6,#fff); border-inline:1px solid #dce5eb; border-bottom:1px solid #dce5eb; }
.ofi-not-found .ofi-kicker { display:inline-block; padding:.35rem .65rem; border-inline-start:3px solid #f7c931; background:white; margin-bottom:1.5rem; }
.ofi-not-found > p { max-width:60ch; }
.ofi-not-found .wp-block-buttons { margin-top:2rem; gap:.75rem; }
.ofi-not-found .wp-block-button__link { min-height:44px; border-radius:3px; font-size:.875rem; }
.ofi-listing-main :where(a,button,input):focus-visible, .ofi-video-card a:focus-visible { outline:3px solid #a57800; outline-offset:3px; }
.ofi-listing-main + footer .ofi-footer { margin-block-start:0; }
.ofi-media-images { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr)); gap:1rem; align-items:start; }
.ofi-media-images > .wp-block-image { margin:0; padding:1rem; text-align:center; border:1px solid #dce5eb; background:white; }
.ofi-media-images img { display:inline-block; max-width:100%; height:auto; object-fit:contain; }
.ofi-video-card { margin:0; border:1px solid #dce5eb; background:white; }
.ofi-video-card a { display:block; color:var(--wp--preset--color--accent); text-decoration:none; }
.ofi-video-card__poster { display:block; position:relative; background:#edf4f6; aspect-ratio:16/9; }
.ofi-video-card__poster img { display:block; width:100%; height:100%; object-fit:contain; }
.ofi-video-card__play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:64px; height:64px; border-radius:50%; background:#07375e; color:white; font-size:1.5rem; box-shadow:0 0 0 5px rgb(255 255 255 / 65%); }
.ofi-video-card__label { display:block; padding:1rem 1.25rem .2rem; font-weight:600; }
.ofi-video-card__note { display:block; padding:0 1.25rem 1rem; font-size:.8125rem; color:#526473; }
.ofi-video-card a:hover .ofi-video-card__label { text-decoration:underline; text-underline-offset:.2em; }
.editor-styles-wrapper .is-style-ofi-media { outline:1px dashed #8ba0ae; outline-offset:5px; }
.ofi-icon-heading { display:flex; align-items:center; gap:.6rem; }
.ofi-icon-heading::before { content:''; display:inline-block; flex:none; width:1.25rem; height:1.25rem; background:currentColor; mask:var(--ofi-icon) center/contain no-repeat; }
@media(max-width:1099px) { .ofi-listing-layout { grid-template-columns:minmax(0,1fr) 230px; } }
@media(max-width:781px) {
 .ofi-listing-layout { grid-template-columns:minmax(0,1fr); }
 .ofi-listing-query { border-inline-end:0; }
 .ofi-listing-sidebar { border-top:1px solid #dce5eb; }
 .ofi-card-grid { grid-template-columns:minmax(0,1fr); }
 .ofi-listing-intro { padding:1.5rem 1.25rem; }
 .ofi-empty-state { padding:1.25rem; }
 .ofi-site-search button { padding-inline:.9rem; }
 .ofi-pagination { justify-content:flex-start; }
}

.ofi-icon-location { --ofi-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2010c0%206-8%2012-8%2012S4%2016%204%2010a8%208%200%201%201%2016%200Z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E"); }

.ofi-icon-mail { --ofi-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m2%205%2010%208L22%205%22%2F%3E%3C%2Fsvg%3E"); }

.ofi-icon-links { --ofi-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22m16%208-3%205-5%203%203-5%205-3Z%22%2F%3E%3C%2Fsvg%3E"); }

.ofi-home-intro h1 { max-width:34ch; }
.ofi-home-quick { padding:2rem clamp(1.25rem,3vw,2.5rem); margin-block:0; border-inline:1px solid #dce5eb; border-bottom:1px solid #dce5eb; }
.ofi-home-quick > h2, .ofi-home-news > h2 { margin:0 0 1.5rem; font-size:1.25rem; color:var(--wp--preset--color--accent); }
.ofi-quick-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.ofi-quick-card { border-inline-start:3px solid #f7c931; padding:1rem; background:#f0f8f8; }
.ofi-quick-card h3 { margin:0 0 .35rem; font-size:1rem; line-height:1.4; }
.ofi-quick-card h3 a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
.ofi-quick-card h3 a:hover { text-decoration:underline; }
.ofi-quick-card p { margin:0; font-size:.8125rem; color:#526473; }
.ofi-home-news { padding-top:2rem; min-width:0; }
.ofi-home-news > h2, .ofi-home-all-news { margin-inline:clamp(1.25rem,3vw,2.5rem); }
.ofi-home-news .ofi-listing-query { padding-top:0; }
.ofi-home-all-news { padding-block:.5rem 1.5rem; }
.ofi-home-sidebar { border-inline-start:1px solid #dce5eb; }
.ofi-home-news .ofi-listing-query { border-inline-end:0; }
.ofi-jobs-list { list-style:none; margin:0; padding:0; }
.ofi-jobs-list li { padding-block:1rem; border-bottom:1px solid #dce5eb; }
.ofi-jobs-list li:first-child { padding-top:0; }
.ofi-jobs-list .wp-block-post-date { font-size:.75rem; color:#526473; margin-bottom:.5rem; }
.ofi-jobs-list h3 { margin:0; font-size:.875rem; line-height:1.6; }
.ofi-jobs-list h3 a { text-decoration:none; }
.ofi-jobs-list h3 a:hover { text-decoration:underline; }
.ofi-home-whistleblowing { padding:1.25rem; border:1px solid #dce5eb; margin-top:2.5rem; background:#f0f8f8; }
.ofi-home-whistleblowing h3 { margin-top:0; font-size:1rem; color:var(--wp--preset--color--accent); }
@media(max-width:1099px) { .ofi-quick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:781px) { .ofi-home-sidebar { border-inline-start:0; } }
@media(max-width:479px) { .ofi-quick-grid { grid-template-columns:minmax(0,1fr); } }
/* Grid tracks own their spacing; override the core flow margin on siblings. */
.ofi-listing-layout > *, .ofi-quick-grid > *, .ofi-media-images > * { margin-block:0; }
.ofi-quick-card h3 a { gap:.4rem; }
.ofi-listing-main .wp-block-button__link { background:var(--wp--preset--color--accent); color:white; }
.ofi-listing-main .is-style-outline .wp-block-button__link { background:transparent; color:var(--wp--preset--color--accent); border-color:currentColor; }

/* Isolate the native shell from the still-active public Elementor kit. */
.wp-site-blocks { background:var(--wp--preset--color--base); color:var(--wp--preset--color--contrast); font-family:var(--wp--preset--font-family--system); }

/* Cookie information stays in the footer, with a dedicated native policy page. */
.ofi-cookie-notice { margin-block:2rem 0; padding-top:1.25rem; border-top:1px solid #cbdce4; font-size:.875rem; }
.ofi-policy-content { margin-block:0; padding:clamp(1.25rem,4vw,3rem); border-inline:1px solid #dce5eb; line-height:1.8; overflow-wrap:anywhere; }
.ofi-policy-content h2 { color:var(--wp--preset--color--accent); font-size:1.35rem; margin-top:2rem; }
.ofi-policy-content h3 { color:var(--wp--preset--color--accent); font-size:1.1rem; }
.ofi-policy-content :where(a,button):focus-visible { outline:3px solid #a57800; outline-offset:3px; }

/* Opaque breadcrumb colors, including separators, on the native light surface. */
.ofi-article-breadcrumbs, .ofi-article-breadcrumbs a, .ofi-article-breadcrumbs span, .ofi-page-context--breadcrumbs, .ofi-page-context--breadcrumbs a, .ofi-page-context--breadcrumbs span, .ofi-listing-breadcrumbs, .ofi-listing-breadcrumbs a, .ofi-listing-breadcrumbs span { color:#526473; opacity:1; }

.ofi-primary-nav .ofi-nav-members>.wp-block-navigation-item__content{background:#f7c931;color:#07375e}
.ofi-member-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:0;margin-block:0;border-inline:1px solid #dce5eb}.ofi-member-nav{background:#f0f8f8;padding:2rem 1.25rem;border-right:1px solid #dce5eb}.ofi-member-nav h2{font-size:1.25rem}.ofi-member-nav a{display:block;min-height:44px;padding:.7rem 0;border-bottom:1px solid #dce5eb;text-underline-offset:.2em}.ofi-member-content{min-width:0}.ofi-member-content>section{padding:clamp(1.25rem,3vw,2.5rem);border-bottom:1px solid #dce5eb;scroll-margin-top:2rem}.ofi-member-content>section:first-child{background:linear-gradient(135deg,#edf4f6,#fff)}.ofi-member-content h2{font-size:1.4rem;color:#07375e}.ofi-member-content dl{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #dce5eb}.ofi-member-content dl>div{padding:1rem}.ofi-member-content dl>div+div{border-left:1px solid #dce5eb}.ofi-member-content dt,.ofi-resource-kind{font-size:.8125rem;color:#526473}.ofi-member-content dd{margin:.3rem 0;font-weight:600}.ofi-member-demo{padding:1rem;background:#f0f8f8;border-left:4px solid #07375e}.ofi-member-content .ofi-resource{padding:1.5rem 0;border-top:1px solid #dce5eb}.ofi-resource h3{font-size:1.125rem}.ofi-resource-link{display:inline-block;min-height:44px;padding-block:.6rem;text-underline-offset:.2em}.ofi-member-content a,.ofi-member-content p{overflow-wrap:anywhere}.ofi-member-content .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:781px){.ofi-member-layout{grid-template-columns:1fr}.ofi-member-nav{border-right:0;border-bottom:1px solid #dce5eb}.ofi-member-content dl{grid-template-columns:1fr}.ofi-member-content dl>div+div{border-left:0;border-top:1px solid #dce5eb}}
