.od-portal-page .services-copy h3 {
  line-height: 24px;
}

/* Public interaction states. */
.events-empty {
    margin:24px 0;
    padding:28px;
    text-align:center;
}

.events-empty p {
    margin:0 0 16px;
    font-size:16px;
}

.portal-modal :focus-visible,
.modal-backdrop :focus-visible {
    outline:3px solid #4dbde4;
    outline-offset:3px;
}

/* 0.14.19: the Projects archive follows the measured mobile catalogue rhythm
   used by Services: 40px from navigation to breadcrumbs and 23px from the
   breadcrumb line to the H1 panel. Keep this last so legacy project-specific
   compatibility rules cannot collapse these gaps back to 20px. */
@media (max-width:723px) {
    body.post-type-archive-od_project .projects-catalog-page .compact-hero > .container > .od-auto-breadcrumbs {
        margin-top:40px!important;
        margin-bottom:23px!important;
    }
}

/*
 * 0.15.3 public layout contract.
 *
 * Older compatibility layers contain page-specific mobile exceptions. This
 * final block is the single source of truth for the shared header, catalogue
 * heading, breadcrumbs and collapsed-filter geometry. Keep it last.
 */
.site-header .portal-nav > a::after {
    content:none!important;
}

@media (max-width:1000px) {
    .site-header .portal-nav {
        scrollbar-width:none!important;
    }

    .site-header .portal-nav::-webkit-scrollbar {
        display:none!important;
    }
}

@media (max-width:723px) {
    /* Header: the complete logo, labelled project action and account actions
       remain visible at 360px without using unreadable 8–11px text. */
    .site-header,
    .site-header .header-primary {
        height:82px!important;
    }

    .site-header .header-primary {
        grid-template-columns:52px 112px minmax(132px,1fr) 64px!important;
        width:100%!important;
        max-width:none!important;
        padding:0!important;
    }

    .site-header .menu-square {
        width:52px!important;
        height:82px!important;
    }

    .site-header .brand {
        width:112px!important;
        height:82px!important;
        padding:5px 2px!important;
    }

    .site-header .brand-mobile-logo,
    .site-header .brand-mobile-copy {
        width:108px!important;
        min-width:108px!important;
    }

    .site-header .brand-mobile-copy {
        font-size:12px!important;
        line-height:1!important;
        letter-spacing:-.04em!important;
    }

    .site-header .brand-mobile-copy span:last-child {
        white-space:nowrap!important;
    }

    .site-header .add-project-link {
        justify-content:flex-start!important;
        gap:4px!important;
        width:auto!important;
        min-width:0!important;
        height:82px!important;
        padding:0 3px!important;
        font-size:12px!important;
        line-height:1.15!important;
        white-space:normal!important;
    }

    .site-header .add-project-link img {
        flex:0 0 22px!important;
        width:22px!important;
        height:22px!important;
    }

    .site-header .account-link {
        width:64px!important;
        height:82px!important;
        padding:0 3px!important;
    }

    .site-header .account-action {
        min-width:24px!important;
        padding:0 2px!important;
    }

    .site-header .nav-strip,
    .site-header .portal-nav {
        background:#bd0061 none!important;
    }

    .site-header .nav-strip {
        height:50px!important;
    }

    .site-header .portal-nav {
        height:50px!important;
    }

    .site-header .portal-nav > a {
        color:#fff!important;
        min-height:50px!important;
        font-size:12px!important;
        text-decoration:none!important;
    }

    .site-header .portal-nav > a span {
        border-bottom:2px solid transparent!important;
        text-decoration:none!important;
    }

    .site-header .portal-nav > a:hover span,
    .site-header .portal-nav > a:focus-visible span,
    .site-header .portal-nav > a[aria-current="page"] span {
        border-bottom-color:#fff!important;
    }

    .site-header .quick-menu-panel {
        top:82px!important;
    }

    /* One measurable breadcrumb rhythm: 20px above and below, full wrapping,
       and the same 16px page edge as headings, filters and cards. */
    .od-portal-page main .od-auto-breadcrumbs,
    .od-portal-page main .breadcrumbs.od-auto-breadcrumbs,
    body.post-type-archive-od_project .projects-catalog-page .compact-hero > .container > .od-auto-breadcrumbs {
        box-sizing:border-box!important;
        width:calc(100% - 32px)!important;
        max-width:calc(100% - 32px)!important;
        min-height:0!important;
        margin:20px auto!important;
        padding:0!important;
        line-height:1.55!important;
    }

    .od-portal-page main .container > .od-auto-breadcrumbs,
    .od-portal-page main .container > .breadcrumbs.od-auto-breadcrumbs,
    body.post-type-archive-od_project .projects-catalog-page .compact-hero > .container > .od-auto-breadcrumbs {
        width:100%!important;
        max-width:100%!important;
        margin:20px 0!important;
    }

    .od-auto-breadcrumbs > * {
        display:inline!important;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
    }

    /* Shared archive H1 token. The visual class belongs to the wrapper; the
       clean H1 only inherits the token. */
    .compact-hero .portal-title,
    .compact-hero .title-row,
    .legacy-inner-page > .container > .portal-title {
        box-sizing:border-box!important;
        width:100%!important;
        min-height:0!important;
        font:700 25px/1.12 "Roboto Slab",Georgia,serif!important;
        letter-spacing:.025em!important;
    }

    .compact-hero .portal-title > h1,
    .compact-hero .title-row > h1,
    .legacy-inner-page > .container > .portal-title > h1 {
        box-sizing:border-box!important;
        width:100%!important;
        min-height:0!important;
        margin:0!important;
        padding:12px 14px 10px!important;
        font:inherit!important;
        letter-spacing:inherit!important;
        overflow-wrap:anywhere!important;
    }

    /* Every catalogue uses the approved white bar with one magenta side and
       one cyan lower edge, both collapsed and expanded. */
    .mobile-filter-toggle,
    .projects-catalog-page .project-filter-toggle {
        box-sizing:border-box!important;
        display:flex!important;
        align-items:center!important;
        justify-content:space-between!important;
        width:100%!important;
        min-height:54px!important;
        margin:0!important;
        border:0!important;
        border-left:6px solid #a8005c!important;
        border-bottom:4px solid #4dbde4!important;
        background:#fff!important;
        color:#a8005c!important;
        padding:0 18px 0 14px!important;
        font:800 12px/1.2 Arial,sans-serif!important;
        letter-spacing:.16em!important;
        text-transform:uppercase!important;
        box-shadow:none!important;
    }

    .mobile-filter-toggle i,
    .projects-catalog-page .project-filter-toggle i {
        flex:0 0 10px!important;
        width:10px!important;
        height:10px!important;
        margin-left:14px!important;
        border:0!important;
        border-right:2px solid currentColor!important;
        border-bottom:2px solid currentColor!important;
        transform:rotate(45deg) translateY(-3px)!important;
    }

    .mobile-filter-toggle[aria-expanded="true"] i,
    .projects-catalog-page .project-filter-toggle[aria-expanded="true"] i {
        transform:rotate(225deg) translate(-2px,-1px)!important;
    }

    .projects-catalog-page .exchange-filter.mobile-filter-collapsible.is-collapsed {
        padding:0!important;
        border:0!important;
        background:transparent!important;
        box-shadow:none!important;
    }

    .projects-catalog-page .exchange-filter:not(.is-collapsed) .project-filter-toggle {
        width:calc(100% + 28px)!important;
        margin:-14px -14px 14px!important;
    }
}

/* Role-aware personal cabinet. Heading styles belong to wrappers, never headings. */
.cabinet-page{min-height:0}
.cabinet-section{padding:0 0 64px}.cabinet-title{margin-bottom:22px}.cabinet-title h1{font:700 36px/1.12 Roboto Slab,Georgia,serif}.cabinet-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:26px;display:grid}.cabinet-navigation{background:#30217e;padding:12px;position:sticky;top:18px}.cabinet-navigation a{color:#fff;border-left:4px solid transparent;min-height:44px;padding:11px 13px;font-size:14px;display:flex}.cabinet-navigation a:hover,.cabinet-navigation a:focus-visible,.cabinet-navigation a[aria-current=page]{background:#ffffff18;border-left-color:#d00065;outline:none}.cabinet-navigation .cabinet-logout{border-top:1px solid #ffffff4d;margin-top:10px}.cabinet-main{min-width:0}.cabinet-panel,.cabinet-welcome{padding:28px 30px}.cabinet-panel-title h2,.cabinet-user-name h2{color:#302841;margin:0;font:700 25px/1.18 Roboto Slab,Georgia,serif}.cabinet-panel-title{border-bottom:5px solid #c00060;margin:-4px 0 22px;padding-bottom:12px}.cabinet-welcome{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:24px;display:grid}.cabinet-avatar img{border:4px solid #b50060;border-radius:50%;width:96px;height:96px}.cabinet-user-name{margin:5px 0 8px}.cabinet-welcome p,.cabinet-role-note{color:#625b68;margin:0}.cabinet-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.cabinet-summary article{padding:20px}.cabinet-summary article>span{color:#30217e;font:700 30px/1 Roboto Slab,Georgia,serif}.cabinet-summary p{color:#6a6371;margin:7px 0 0;font-size:12px}.cabinet-profile-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;margin-top:22px;display:grid}.cabinet-profile-form label{gap:7px;display:grid}.cabinet-profile-form label>span{font-weight:700}.cabinet-profile-form input{border:1px solid #cfc8d8;background:#fff;width:100%;min-height:44px;padding:8px 11px}.cabinet-profile-form input:focus{border-color:#30217e;outline:2px solid #30217e26}.cabinet-profile-form small{color:#716a77;font-size:12px}.cabinet-profile-form .button{justify-self:start}.cabinet-notice{border-left:5px solid;padding:12px 15px;margin:18px 0}.cabinet-notice.is-success{color:#155d36;background:#e8f7ef;border-color:#238651}.cabinet-notice.is-error{color:#8a1830;background:#fff0f3;border-color:#c00050}.cabinet-create-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px;display:grid}.cabinet-create-grid a{color:#30217e;border:1px solid #30217e;min-height:60px;padding:10px 12px;font-size:13px;font-weight:700;display:grid}.cabinet-create-grid a:hover,.cabinet-create-grid a:focus-visible{color:#fff;background:#30217e;outline:none}.cabinet-create-grid span{font-size:12px;font-weight:400}.cabinet-empty{color:#6b6472;background:#f5f1f8;padding:20px}.cabinet-empty p{margin:0}.cabinet-publications,.cabinet-application-list{gap:12px;display:grid}.cabinet-publications article,.cabinet-application-list article{border:1px solid #ded8e5;padding:16px}.cabinet-publications article>div:first-child{justify-content:space-between;gap:12px;display:flex}.cabinet-publications article>div:first-child span{color:#a8005c;font-size:12px;font-weight:800}.cabinet-publications article>div:first-child p{color:#6b6472;margin:0;font-size:12px}.cabinet-item-title{margin:8px 0}.cabinet-item-title h3{color:#302841;margin:0;font:700 18px/1.3 Roboto Slab,Georgia,serif}.cabinet-publications article>a{color:#30217e;text-decoration:underline;text-underline-offset:3px;font-weight:700}.cabinet-application-list article>span{color:#a8005c;font-size:12px;font-weight:800}
@media(max-width:940px){.cabinet-layout{grid-template-columns:190px minmax(0,1fr);gap:18px}.cabinet-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cabinet-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:723px){.cabinet-section{padding-bottom:42px}.cabinet-section>.container{width:calc(100% - 24px)}.cabinet-title{margin-bottom:14px}.cabinet-title h1{font-size:25px}.cabinet-layout{grid-template-columns:1fr;gap:14px}.cabinet-navigation{scrollbar-width:none;gap:0;padding:0;position:static;display:flex;overflow-x:auto}.cabinet-navigation::-webkit-scrollbar{display:none}.cabinet-navigation a{border-bottom:4px solid transparent;border-left:0;flex:0 0 auto;min-height:44px;padding:11px 13px}.cabinet-navigation a:hover,.cabinet-navigation a:focus-visible,.cabinet-navigation a[aria-current=page]{border-bottom-color:#d00065;border-left:0}.cabinet-navigation .cabinet-logout{border-top:0;border-left:1px solid #ffffff4d;margin:0}.cabinet-panel,.cabinet-welcome{padding:20px 16px}.cabinet-panel-title h2,.cabinet-user-name h2{font-size:21px}.cabinet-welcome{grid-template-columns:68px minmax(0,1fr);gap:15px}.cabinet-avatar img{width:68px;height:68px}.cabinet-summary{gap:8px;margin-top:10px}.cabinet-summary article{padding:14px}.cabinet-summary article>span{font-size:24px}.cabinet-profile-form,.cabinet-create-grid{grid-template-columns:1fr}.cabinet-profile-form .button{width:100%}}

/* 0.14.25 artifact guard: keep the sidebar CTA heading balanced and never
   allow a Russian word to split at the card edge. */
.legacy-sidebar .sidebar-add h3 {
    display:grid;
    grid-template-columns:minmax(0,190px);
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
    text-wrap:balance;
}

/* 0.14.18: project catalogue uses the same measured mobile breadcrumb rhythm
   as the services catalogue: 40px after navigation and 23px before H1. */
@media (max-width:723px) {
    .od-portal-page .od-auto-breadcrumbs,
    .od-portal-page .breadcrumbs.od-auto-breadcrumbs,
    .od-portal-page main .od-auto-breadcrumbs {
        margin-top:20px!important;
        margin-bottom:20px!important;
    }

    .projects-catalog-page .compact-hero .od-auto-breadcrumbs {
        margin-top:40px!important;
        margin-bottom:23px!important;
    }
}

/* 0.14.9: one mobile heading and filter pattern for all key catalogues. */
@media (max-width:723px) {
    .compact-hero .portal-title,
    .legacy-inner-page > .container > .portal-title {
        padding:0!important;
    }

    /* Every archive title uses the same type scale and the same internal
       14px edge. This also neutralises older page-specific 21/23px rules. */
    .compact-hero h1,
    .projects-catalog-page .compact-hero .title-row h1,
    .specialists-page .compact-hero .title-row h1,
    .services-hero .portal-title h1,
    .blog-page .portal-title h1,
    .events-page .portal-title h1,
    .method-center-page .portal-title h1,
    .legacy-inner-page .portal-title h1 {
        box-sizing:border-box!important;
        width:100%!important;
        min-height:0!important;
        margin:0!important;
        padding:12px 14px 10px!important;
        font:700 25px/1.12 "Roboto Slab",Georgia,serif!important;
        letter-spacing:.025em!important;
        overflow-wrap:anywhere;
    }

    /* Services, specialists and blog previously received a generic outlined
       button, while projects had the approved catalogue bar. Use that same
       bar everywhere, including its cyan lower edge and magenta accent. */
    .mobile-filter-toggle,
    .projects-catalog-page .project-filter-toggle {
        box-sizing:border-box!important;
        display:flex;
        align-items:center;
        justify-content:space-between;
        width:100%!important;
        min-height:54px!important;
        margin-right:auto!important;
        margin-left:auto!important;
        border:0!important;
        border-left:6px solid #a8005c!important;
        border-bottom:4px solid #4dbde4!important;
        background:#fff!important;
        color:#a8005c!important;
        padding:0 18px 0 14px!important;
        font:800 12px/1.2 Arial,sans-serif!important;
        letter-spacing:.16em!important;
        text-transform:uppercase!important;
        box-shadow:none!important;
    }

    .projects-catalog-page .project-filter-toggle {
        width:100%!important;
    }

    .mobile-filter-toggle i,
    .projects-catalog-page .project-filter-toggle i {
        flex:0 0 10px;
        width:10px!important;
        height:10px!important;
        margin-left:14px;
        border:0!important;
        border-right:2px solid currentColor!important;
        border-bottom:2px solid currentColor!important;
        transform:rotate(45deg) translateY(-3px)!important;
        transition:transform .18s;
    }

    .mobile-filter-toggle[aria-expanded="true"] i,
    .projects-catalog-page .project-filter-toggle[aria-expanded="true"] i {
        transform:rotate(225deg) translate(-2px,-1px)!important;
    }

    /* The project toggle is nested inside its filter surface. Other archives
       insert it before the surface; both now keep one standard 16px rhythm. */
    .projects-catalog-page .exchange-filter.mobile-filter-collapsible.is-collapsed {
        border-bottom:0!important;
    }

    .projects-catalog-page .exchange-filter:not(.is-collapsed) .project-filter-toggle {
        width:calc(100% + 28px)!important;
        margin-right:-14px!important;
        margin-bottom:14px!important;
        margin-left:-14px!important;
        border-bottom:4px solid #4dbde4!important;
    }

    /* Expanded forms used to be wider than their toggle and cards. */
    .services-marketplace-filter,
    .specialists-filter,
    .blog-filter {
        box-sizing:border-box!important;
        width:100%!important;
        max-width:100%!important;
        margin-right:auto!important;
        margin-left:auto!important;
    }

    .services-section > .container,
    .specialists-section > .container,
    .blog-page .blog-section > .container,
    .blog-page .section > .container {
        box-sizing:border-box!important;
        width:calc(100% - 32px)!important;
        max-width:calc(100% - 32px)!important;
        margin-right:auto!important;
        margin-left:auto!important;
    }

    .service-listing-grid,
    .specialists-grid,
    .blog-grid {
        width:100%!important;
        max-width:100%!important;
        margin-right:0!important;
        margin-left:0!important;
    }
}

.od-portal-page .footer-heading {
  line-height: 25.5px;
}

/*
 * Semantic heading contract. Presentation lives on the wrapper; headings
 * remain clean structural elements and inherit the established visual token.
 */
.legacy-title > h1,
.legacy-title > h2,
.legacy-title > h3,
.footer-heading > h2,
.footer-heading > h3,
.center-title > h2,
.od-heading > h1,
.od-heading > h2,
.od-heading > h3,
.od-heading > h4,
.od-heading > h5,
.od-heading > h6 {
    color: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    margin: 0;
    padding: 0;
    font: inherit;
    line-height: inherit;
}

.footer-identity > p:last-of-type > a {
    display: block;
}

@media (min-width: 724px) {
  .od-portal-page .services-copy h3 {
    line-height: 30px;
  }
}
/* Unified interaction rules: card copy stays stable; only explicit controls react. */
.audience-card,
.audience-card:hover,
.audience-card:focus-visible,
.audience-card h3,
.audience-card p {
    text-decoration: none !important;
}

.audience-card:hover h3,
.audience-card:focus-visible h3,
.audience-card:hover p,
.audience-card:focus-visible p {
    text-decoration: none !important;
}

.audience-card:hover > span,
.audience-card:focus-visible > span {
    color: #241b7c;
    background: #fff;
    text-decoration: none;
}

.portal-nav > a {
    position: relative;
}

.portal-nav > a::after {
    content: "";
    position: absolute;
    right: 18px;
    bottom: 7px;
    left: 18px;
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .18s ease;
}

.portal-nav > a:hover::after,
.portal-nav > a:focus-visible::after {
    transform: scaleX(1);
}

@media (max-width: 700px) {
    .legacy-home,
    .portal-page,
    .compact-hero,
    .portal-section,
    .events-page,
    .projects-catalog-page {
        width: 100%;
        min-width: 0;
        overflow-x: clip;
    }

    .legacy-home .container,
    .portal-page .container,
    .compact-hero .container,
    .portal-section .container,
    .events-page .container,
    .projects-catalog-page .container {
        width: calc(100% - 16px);
        max-width: none;
        min-width: 0;
    }

    .legacy-home-layout,
    .events-layout,
    .method-center-layout,
    .services-catalog-layout,
    .specialists-layout,
    .project-detail-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100%;
        min-width: 0;
    }

    .legacy-main-column,
    .legacy-sidebar,
    .legacy-picture-grid,
    .audience-grid,
    .article-grid,
    .review-grid,
    .partner-grid {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .legacy-picture-grid,
    .audience-grid,
    .article-grid,
    .review-grid,
    .partner-grid {
        grid-template-columns: 1fr !important;
    }

    .audience-card {
        min-height: 300px;
    }

    .site-footer .audience-links {
        grid-template-columns: 1fr;
        gap: 8px;
        padding-inline: 18px;
    }

    .site-footer .audience-links a {
        justify-content: flex-start;
        min-height: 56px;
        padding: 7px 14px;
    }

    .site-footer .footer-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Final 0.12.0 overrides stay last so exported legacy rules cannot win. */
.projects-catalog-page .funding-project .exchange-project-copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 154px;
    column-gap: 24px;
}

.projects-catalog-page .funding-project .exchange-project-copy > :not(.project-progress):not(.button) {
    grid-column: 1 / -1;
}

.projects-catalog-page .funding-project .project-progress {
    grid-column: 1;
    margin: 10px 0 0;
}

.projects-catalog-page .funding-project .exchange-project-copy > .button {
    grid-column: 2;
    width: 100%;
    min-height: 44px;
    margin: 10px 0 0;
}

.projects-catalog-page .role-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px 24px;
}

.projects-catalog-page .role-list span {
    display: flex;
    align-items: center;
    gap: 8px;
}

.projects-catalog-page .role-list img {
    flex: 0 0 22px;
    width: 22px;
    height: 21px;
    object-fit: contain;
}

@media (max-width: 723px) {
    .projects-catalog-page .funding-project .exchange-project-copy {
        grid-template-columns: 1fr;
        column-gap: 0;
    }

    .projects-catalog-page .funding-project .exchange-project-copy > *,
    .projects-catalog-page .funding-project .project-progress,
    .projects-catalog-page .funding-project .exchange-project-copy > .button {
        grid-column: 1;
    }

    .projects-catalog-page .role-list {
        grid-template-columns: 1fr;
    }
}

/* 0.12.0: catalogue funding, breadcrumbs and mobile landing polish. */
.projects-catalog-page .funding-project .exchange-project-copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 154px;
    column-gap: 24px;
    align-content: start;
}

.projects-catalog-page .funding-project .exchange-project-copy > :not(.project-progress):not(.button) {
    grid-column: 1 / -1;
}

.projects-catalog-page .funding-project .project-progress {
    grid-column: 1;
    align-self: center;
    margin: 10px 0 0;
}

.projects-catalog-page .funding-project .exchange-project-copy > .button {
    grid-column: 2;
    align-self: end;
    width: 100%;
    min-height: 44px;
    margin: 10px 0 0;
}

.projects-catalog-page .role-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px 24px;
}

.projects-catalog-page .role-list span {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: #312b3a;
}

.projects-catalog-page .role-list img {
    flex: 0 0 22px;
    width: 22px;
    height: 21px;
    object-fit: contain;
}

/* A linked editorial card must not underline its metadata and description. */
.blog-featured,
.blog-featured:hover,
.blog-featured:focus-visible,
.blog-featured p,
.blog-featured small,
.blog-card,
.blog-card p,
.blog-card small {
    text-decoration: none !important;
}

.blog-featured:hover h2,
.blog-featured:focus-visible h2,
.blog-card h2 a:hover,
.blog-card h2 a:focus-visible {
    text-decoration: underline !important;
    text-underline-offset: 4px;
}

@media (max-width: 723px) {
    .od-auto-breadcrumbs,
    .breadcrumbs.od-auto-breadcrumbs {
        display: block;
        width: calc(100% - 24px);
        min-height: 0;
        margin: 14px auto 14px;
        line-height: 1.55;
    }

    .od-auto-breadcrumbs > * {
        display: inline;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .od-auto-breadcrumbs > * + *::before {
        display: inline;
        margin: 0 8px;
    }

    .projects-catalog-page .compact-hero .od-auto-breadcrumbs {
        width: calc(100% - 24px);
        margin: 14px auto;
    }

    .projects-catalog-page .compact-hero .title-row,
    .specialists-page .compact-hero .title-row {
        width: calc(100% - 24px);
    }

    .projects-catalog-page .funding-project .exchange-project-copy {
        grid-template-columns: 1fr;
        column-gap: 0;
    }

    .projects-catalog-page .funding-project .exchange-project-copy > *,
    .projects-catalog-page .funding-project .project-progress,
    .projects-catalog-page .funding-project .exchange-project-copy > .button {
        grid-column: 1;
    }

    .projects-catalog-page .funding-project .exchange-project-copy > .button {
        width: 100%;
    }

    .projects-catalog-page .role-list {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .site-header .add-project-link {
        gap: 5px !important;
        padding-inline: 3px !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }

    .site-header .add-project-link img {
        width: 22px !important;
        height: 22px !important;
    }

    .gutenberg-landing .seo-hero {
        padding-top: 10px;
    }

    .gutenberg-landing .seo-hero-image {
        min-height: 210px;
        height: 210px;
        margin-top: 10px;
    }

    .gutenberg-landing .seo-hero-copy {
        padding: 22px 18px 24px;
    }

    .gutenberg-landing .seo-hero-copy h1 {
        margin: 9px 0 14px;
        font-size: 27px;
        line-height: 1.12;
    }

    .gutenberg-landing .section,
    .gutenberg-landing .seo-steps-section {
        margin-top: 16px;
        padding-top: 30px;
        padding-bottom: 34px;
    }

    .gutenberg-landing .seo-steps {
        margin-top: 16px;
    }

    .gutenberg-landing .seo-steps article {
        position: relative;
        padding: 20px 18px 20px 70px;
    }

    .gutenberg-landing .seo-steps article > p:first-child {
        position: absolute;
        top: 20px;
        left: 18px;
        margin: 0;
    }

    .gutenberg-landing .seo-steps article > p:first-child span {
        display: grid;
        place-items: center;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        background: #a8005c;
        color: #fff;
        font-weight: 800;
    }

    .gutenberg-landing .seo-faq {
        margin-top: 0;
    }

    .site-footer .footer-identity {
        border: 0 !important;
        padding: 0 !important;
    }
}

/* 0.7.7: the expanded menu uses an unambiguous close icon. */
.site-header .menu-square[aria-expanded="true"] i:nth-child(1) {
    transform: translateY(11px) rotate(45deg) !important;
}

.site-header .menu-square[aria-expanded="true"] i:nth-child(2) {
    opacity: 0 !important;
}

.site-header .menu-square[aria-expanded="true"] i:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg) !important;
}

.site-header .menu-square[aria-expanded="true"] i {
    visibility: hidden !important;
}

.site-header .menu-square[aria-expanded="true"]::before,
.site-header .menu-square[aria-expanded="true"]::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 32px;
    height: 3px;
    z-index: 2;
    background: #fff;
    transform-origin: center;
}

.site-header .menu-square[aria-expanded="true"] {
    z-index: 80;
    background:
        linear-gradient(45deg, transparent calc(50% - 1.5px), #fff calc(50% - 1.5px), #fff calc(50% + 1.5px), transparent calc(50% + 1.5px)),
        linear-gradient(-45deg, transparent calc(50% - 1.5px), #fff calc(50% - 1.5px), #fff calc(50% + 1.5px), transparent calc(50% + 1.5px)),
        #b90063 !important;
    background-size: 30px 30px, 30px 30px, auto !important;
    background-position: center, center, center !important;
    background-repeat: no-repeat !important;
}

.site-header .menu-square[aria-expanded="true"]::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.site-header .menu-square[aria-expanded="true"]::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* 0.6.0: one layout contract for every public route. */
.od-auto-breadcrumbs {
    width: min(1230px, calc(100% - 30px));
    margin: 30px auto 18px;
    padding: 0;
    color: #fff;
    font-size: 12px;
    line-height: 1.45;
}

.od-auto-breadcrumbs > * + *::before {
    content: "/";
    margin: 0 10px 0 2px;
    color: currentColor;
}

.od-auto-breadcrumbs a {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.od-auto-breadcrumbs [aria-current="page"] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Text inside linked cards remains stable. Hover belongs to the actual control. */
.audience-card:hover h3,
.audience-card:hover p,
.audience-card:focus-visible h3,
.audience-card:focus-visible p,
.exchange-project-copy:hover,
.specialist-card:hover,
.specialist-card:hover h3,
.service-listing-card:hover,
.service-listing-card:hover h3 {
    color: inherit;
    text-decoration: none !important;
}

.exchange-project-copy h2 a:hover,
.exchange-project-copy h2 a:focus-visible,
.specialist-card-actions a:hover,
.specialist-card-actions a:focus-visible,
.service-listing-card h3 a:hover,
.service-listing-card h3 a:focus-visible {
    color: #a8005c;
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* Directory cards are containers, not links. Only their real controls may react. */
.specialist-card:hover,
.service-listing-card:hover,
.events-page .event-card:hover,
.blog-card:hover {
    transform: none !important;
    box-shadow: none !important;
}

@media (max-width: 700px) {
    .od-auto-breadcrumbs [aria-current="page"],
    .breadcrumbs > :last-child {
        max-width: 100%;
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

/* Projects use the same compact directory rhythm as specialists. */
.projects-catalog-page .exchange-filter {
    margin-bottom: 22px;
}

.projects-catalog-page .exchange-list {
    gap: 18px;
}

.projects-catalog-page .exchange-project {
    min-height: 0;
    padding: 24px;
}

.projects-catalog-page .education-project-photo {
    align-self: start;
}

.projects-catalog-page .exchange-project-copy h2 {
    margin: 0 0 10px;
    font-size: 21px;
    line-height: 1.25;
}

.projects-catalog-page .exchange-project-copy > p,
.projects-catalog-page .role-list {
    margin-top: 10px;
}

/* Gutenberg landing blocks must not create artificial vertical holes. */
.seo-steps article,
.seo-content-grid > article {
    min-height: 0 !important;
}

.seo-final-cta > .container,
.site-footer .footer-grid,
.site-footer .footer-identity {
    min-width: 0;
}

@media (max-width: 1299px) {
    .od-auto-breadcrumbs {
        width: min(940px, calc(100% - 30px));
    }
}

@media (max-width: 1000px) {
    .od-auto-breadcrumbs {
        width: min(724px, calc(100% - 24px));
        margin-top: 22px;
    }

    .projects-catalog-page .exchange-project {
        grid-template-columns: 150px minmax(0, 1fr);
    }
}

@media (max-width: 723px) {
    html,
    body,
    .od-portal-page,
    .od-portal-page main {
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
    }

    .od-auto-breadcrumbs {
        width: calc(100% - 24px);
        margin: 16px auto 12px;
        font-size: 12px;
    }

    .od-auto-breadcrumbs [aria-current="page"] {
        max-width: 60%;
    }

    .projects-catalog-page .exchange-project {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 16px 12px;
    }

    .projects-catalog-page .education-project-photo,
    .projects-catalog-page .education-project-photo img {
        width: 100%;
        max-width: 100%;
        height: 190px;
        object-fit: cover;
    }

    .projects-catalog-page .exchange-project-copy h2 {
        font-size: 19px;
    }

    .projects-catalog-page .title-row h1 {
        border-bottom-width: 7px;
        padding: 12px 14px 10px;
        font-size: 25px;
        line-height: 1.12;
    }

    .seo-steps {
        gap: 12px;
    }

    .seo-steps article {
        padding: 24px 20px;
    }

    .seo-final-cta {
        padding: 30px 0;
    }

    .seo-final-cta > .container {
        width: calc(100% - 32px);
        padding: 0;
    }

    .seo-final-cta h2 {
        overflow-wrap: anywhere;
        font-size: 25px;
    }

    .site-footer .footer-grid,
    .site-footer .audience-links,
    .site-footer .copyright {
        width: 100%;
        max-width: 100%;
    }

    .site-footer .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 22px 18px;
        padding-inline: 24px;
    }

    .site-footer .footer-identity,
    .site-footer .footer-documents {
        grid-column: 1 / -1 !important;
    }

    .site-footer .footer-grid p,
    .site-footer .footer-grid a,
    .site-footer .copyright {
        font-size: 12px;
        overflow-wrap: anywhere;
    }

    /* Minimum text size is raised only in the adaptive layout. */
    .od-portal-page small,
    .od-portal-page .kicker,
    .od-portal-page .tag,
    .od-portal-page .badge,
    .od-portal-page .card-meta,
    .od-portal-page .specialist-card small,
    .od-portal-page .service-listing-card small,
    .od-portal-page .exchange-project small,
    .od-portal-page .blog-card small {
        font-size: 12px !important;
    }
}

@media (max-width: 400px) {
    .site-footer .audience-links {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        padding-inline: 8px;
    }

    .site-footer .audience-links a {
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        min-height: 82px;
        padding: 8px 3px;
        text-align: center;
    }
}

.portal-cf7-request .wpcf7-form {
    display: grid;
    gap: 14px;
    margin-top: 18px;
}

.portal-cf7-request .wpcf7-form > p {
    margin: 0;
}

.portal-cf7-request label {
    display: grid;
    gap: 6px;
    font-weight: 600;
}

.portal-cf7-request input:not([type="checkbox"]),
.portal-cf7-request textarea {
    width: 100%;
    min-height: 44px;
    border: 1px solid #c9c5dc;
    padding: 10px 12px;
    font: inherit;
}

.portal-cf7-request textarea {
    min-height: 120px;
    resize: vertical;
}

.portal-cf7-request input[type="submit"] {
    width: auto;
    min-width: 190px;
    border: 0;
    background: #2d218a;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.portal-cf7-request input[type="submit"]:hover,
.portal-cf7-request input[type="submit"]:focus-visible {
    background: #a8005c;
}

.portal-cf7-request .wpcf7-response-output {
    margin: 0;
}

/* Compact CF7 request and specialist invitation dialogs. */
.portal-modal:has(.portal-cf7-request) {
    width: min(520px, calc(100% - 24px));
    max-height: calc(100dvh - 24px);
    padding: 24px 26px;
    overflow-y: auto;
}

.portal-cf7-request > .kicker {
    display: block;
    margin: 0 34px 3px 0;
}

.portal-cf7-request > h2 {
    margin: 0 34px 14px 0;
    text-align: left;
    font: 700 22px/1.18 Roboto Slab, Georgia, serif;
}

.portal-cf7-request .wpcf7-form {
    gap: 9px;
    margin-top: 0;
}

.portal-cf7-request .wpcf7-form > p {
    display: grid;
    gap: 9px;
    margin: 0;
}

.portal-cf7-request .wpcf7-form > p > br,
.portal-cf7-request .wpcf7-form > p > input[type="hidden"] {
    display: none;
}

.portal-cf7-request .wpcf7-form > p > label {
    display: grid;
    gap: 4px;
}

.portal-cf7-request label {
    gap: 4px;
    font-size: 13px;
}

.portal-cf7-request input:not([type="checkbox"]),
.portal-cf7-request textarea {
    min-height: 40px;
    padding: 8px 10px;
}

.portal-cf7-request textarea {
    min-height: 92px;
    max-height: 140px;
}

.portal-cf7-request .wpcf7-acceptance .wpcf7-list-item {
    margin: 0;
}

.portal-cf7-request .wpcf7-acceptance label {
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    font-size: 12px;
    line-height: 1.4;
}

.portal-cf7-request input[type="submit"] {
    width: 100%;
    min-height: 42px;
}

.portal-cf7-request .wpcf7-spinner {
    position: absolute;
    right: 12px;
    bottom: 9px;
    margin: 0;
}

.portal-cf7-request .wpcf7-not-valid-tip {
    color: #a8005c;
    margin-top: 3px;
    font-size: 12px;
}

.portal-cf7-request .project-picker-error[hidden] {
    display: none;
}

.portal-cf7-request .wpcf7-not-valid {
    border-color: #a8005c !important;
    box-shadow: 0 0 0 2px rgba(168, 0, 92, .12);
}

.portal-cf7-request .wpcf7-response-output {
    border: 0;
    border-left: 4px solid #a8005c;
    background: #fff1f6;
    padding: 9px 11px;
    font-size: 12px;
}

.portal-cf7-request [data-name="project-search"] {
    position: relative;
    display: block;
}

.project-combobox-status {
    display: block;
    color: #6f6877;
    margin-top: 3px;
    font-size: 12px;
    font-weight: 400;
}

.project-combobox-results {
    z-index: 15;
    position: absolute;
    top: calc(100% - 19px);
    right: 0;
    left: 0;
    background: #fff;
    border: 1px solid #30217e;
    box-shadow: 0 8px 24px rgba(20, 10, 62, .18);
}

.project-combobox-results button,
.project-combobox-empty {
    display: block;
    width: 100%;
    padding: 9px 10px;
    text-align: left;
    font-size: 12px;
}

.project-combobox-results button {
    cursor: pointer;
    border-bottom: 1px solid #e5e0ea;
}

.project-combobox-results button:hover,
.project-combobox-results button:focus-visible {
    color: #fff;
    background: #30217e;
    outline: none;
}

@media (max-width: 520px) {
    .modal-backdrop {
        align-items: start;
        padding: 8px;
    }
    .portal-modal:has(.portal-cf7-request) {
        width: 100%;
        max-height: calc(100dvh - 16px);
        padding: 18px 14px 14px;
    }
    .portal-cf7-request > h2 {
        font-size: 19px;
    }
    .portal-cf7-request .wpcf7-form {
        gap: 7px;
    }
    .portal-cf7-request textarea {
        min-height: 78px;
    }
}

/* Header 0.7: compact actions, scrollable adaptive navigation and clear menu state. */
.account-label {
    display: none;
}

.menu-square {
    position: relative;
}

.menu-square i {
    transition: transform .2s ease, opacity .15s ease, width .2s ease;
    transform-origin: center;
}

.menu-square[aria-expanded="true"] i:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
}

.menu-square[aria-expanded="true"] i:nth-child(2) {
    opacity: 0;
}

.menu-square[aria-expanded="true"] i:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
}

.quick-menu-panel {
    gap: 0 !important;
}

.quick-menu-links {
    display: grid;
}

.quick-menu-panel .quick-menu-links a,
.quick-menu-panel .quick-menu-search {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 46px;
}

.quick-menu-panel img {
    flex: 0 0 26px;
    width: 26px;
    max-height: 25px;
    object-fit: contain;
    filter: brightness(0) saturate(100%) invert(16%) sepia(96%) saturate(4857%) hue-rotate(319deg) brightness(77%) contrast(108%);
}

.quick-menu-panel .quick-menu-search {
    margin: 12px -14px -14px;
    border-top: 3px solid #a8005c;
    background: #f3f1f7;
    color: #241b7c;
    padding: 13px 20px;
    font-weight: 800;
}

.mobile-filter-toggle {
    display: none;
}

@media (max-width: 1000px) {
    .site-header {
        height: 127px !important;
    }

    .site-header .header-primary {
        height: 70px !important;
        grid-template-columns: 70px 245px minmax(175px, 1fr) auto;
    }

    .site-header .add-project-link,
    .site-header .account-link {
        align-self: stretch;
    }

    .site-header .account-link {
        min-width: 185px;
    }

    .site-header .account-action {
        gap: 6px;
    }

    .site-header .account-label {
        display: inline;
        font-size: 12px;
        font-weight: 700;
    }

    .site-header .nav-strip {
        display: block !important;
        background: #bd0061;
    }

    .site-header .portal-nav {
        scrollbar-width: thin;
        scrollbar-color: #fff6 transparent;
        display: flex !important;
        width: 100%;
        max-width: none;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .site-header .portal-nav > a {
        flex: 0 0 auto;
        min-width: max-content;
        padding-inline: 16px;
    }

    .site-header .site-search-control {
        flex: 0 0 62px;
        min-width: 62px;
    }
}

@media (max-width: 723px) {
    .site-header {
        height: 132px !important;
    }

    .site-header .header-primary {
        height: 82px !important;
    }

    .site-header .header-primary {
        display: grid !important;
        grid-template-columns: 52px 104px minmax(115px, 1fr) auto !important;
        align-items: center;
        gap: 0;
        padding: 0 8px 0 0;
    }

    .site-header .menu-square {
        position: static !important;
        width: 52px !important;
        height: 82px !important;
        padding: 0 10px !important;
    }

    .site-header .menu-square i {
        width: 31px !important;
    }

    .site-header .brand {
        position: static !important;
        width: 104px !important;
        height: 82px !important;
        padding: 5px 4px !important;
    }

    .site-header .brand-mobile-logo {
        min-width: 98px !important;
    }

    .site-header .brand-mobile-symbol {
        width: 54px !important;
    }

    .site-header .brand-mobile-copy {
        width: 98px !important;
        font-size: 12px !important;
    }

    .site-header .brand-mobile-copy span:last-child {
        white-space: nowrap;
    }

    .site-header .add-project-link {
        position: static !important;
        justify-content: flex-start !important;
        width: auto !important;
        height: 82px !important;
        margin: 0 !important;
        border: 0 !important;
        padding: 0 7px !important;
        font-size: 12px !important;
    }

    .site-header .add-project-link img {
        width: 24px !important;
        height: 24px !important;
    }

    .site-header .account-link {
        position: static !important;
        width: auto !important;
        min-width: 0 !important;
        height: 82px !important;
        margin: 0 !important;
        border: 0 !important;
        gap: 3px !important;
        padding: 0 !important;
    }

    .site-header .account-action {
        min-width: 30px !important;
        height: 40px !important;
        padding: 0 3px;
    }

    .site-header .account-action img {
        max-width: 20px;
        max-height: 19px;
    }

    .site-header .account-label {
        display: none;
    }

    .site-header .account-divider {
        height: 25px !important;
    }

    .site-header .account-authorized .header-avatar,
    .site-header .account-authorized .header-avatar img {
        width: 42px;
        height: 42px;
    }

    .site-header .nav-strip {
        height: 50px;
    }

    .site-header .portal-nav {
        height: 50px;
        scroll-padding-left: 0;
    }

    .site-header .portal-nav > a {
        min-height: 50px;
        padding: 0 13px;
        font-size: 12px;
    }

    .site-header .portal-nav > a img {
        width: 22px;
        height: 22px;
        filter: brightness(0) invert(1);
    }

    .site-header .site-search-control {
        display: none !important;
    }

    .site-header .quick-menu-panel {
        top: 82px !important;
        width: min(310px, 100%) !important;
        right: auto !important;
        left: 0;
        padding: 14px !important;
    }

    .od-auto-breadcrumbs {
        align-items: flex-start;
        flex-wrap: wrap;
        max-height: none;
        overflow: visible;
        line-height: 1.5;
    }

    .od-auto-breadcrumbs > * {
        flex: 0 0 auto;
        min-width: 0;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .od-auto-breadcrumbs [aria-current="page"] {
        max-width: 100% !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: normal !important;
    }

    .mobile-filter-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: calc(100% - 16px);
        min-height: 46px;
        margin: 12px 8px 0;
        border: 1px solid #2d218a;
        background: #fff;
        color: #2d218a;
        padding: 0 15px;
        font-weight: 800;
    }

    .mobile-filter-toggle i {
        width: 10px;
        height: 10px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg) translateY(-3px);
        transition: transform .18s;
    }

    .mobile-filter-toggle[aria-expanded="true"] i {
        transform: rotate(225deg) translate(-2px, -1px);
    }

    .mobile-filter-collapsible.is-collapsed {
        display: none !important;
    }

    .projects-catalog-page .exchange-filter.mobile-filter-collapsible.is-collapsed {
        display: block !important;
        padding: 0 !important;
        border-bottom: 4px solid #4dbde4;
        box-shadow: none;
    }

    .projects-catalog-page .exchange-filter.is-collapsed > :not(.project-filter-heading),
    .projects-catalog-page .exchange-filter.is-collapsed .project-filter-heading > :not(.project-filter-toggle) {
        display: none !important;
    }

    .projects-catalog-page .project-filter-heading.has-mobile-toggle {
        display: block;
        margin: 0;
    }

    .projects-catalog-page .project-filter-heading.has-mobile-toggle > div > span {
        display: none;
    }

    .projects-catalog-page .project-filter-toggle {
        color: #a8005c;
        letter-spacing: .16em;
        text-transform: uppercase;
        width: 100%;
        min-height: 50px;
        margin: 0;
        border: 0;
        border-left: 6px solid #a8005c;
        padding: 0 18px 0 14px;
        font-size: 12px;
    }

    .projects-catalog-page .exchange-filter:not(.is-collapsed) .project-filter-toggle {
        margin-bottom: 14px;
        border-bottom: 1px solid #ded8e5;
    }

    .project-summary-grid {
        grid-template-columns: 1fr !important;
    }

    .project-overview {
        grid-column: 1;
        grid-row: 2;
        padding: 18px 16px 8px !important;
    }

    .project-funding {
        grid-column: 1;
        grid-row: 3;
        display: grid;
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 10px 14px 16px;
    }

    .project-funding .project-video {
        width: 100% !important;
        min-height: 190px;
    }

    .project-funding .project-video img {
        width: 100%;
        height: 190px;
        object-fit: cover;
    }

    .project-funding .funding-panel {
        width: 100% !important;
        align-self: stretch;
        padding: 12px;
    }

    .project-funding .funding-summary {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
        gap: 6px;
    }

    .project-funding .funding-support {
        min-height: 40px;
        padding-inline: 8px;
        font-size: 12px;
    }

    .project-funding .project-support-count {
        grid-column: 1 / -1;
        margin: 0;
        padding: 6px 0 0;
    }

    .project-author {
        grid-column: 1;
        grid-row: 1;
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr);
        align-items: center;
        gap: 12px;
        padding: 14px !important;
    }

    .project-author .project-author-photo {
        grid-row: 1 / span 2;
        width: 88px !important;
        height: 88px !important;
        object-fit: cover;
    }

    .project-author .author-projects-link {
        width: fit-content;
    }
}

@media (max-width: 380px) {
    .site-header .header-primary {
        grid-template-columns: 50px 92px minmax(112px, 1fr) 66px !important;
    }

    .site-header .brand {
        width: 92px !important;
    }

    .site-header .brand-mobile-logo,
    .site-header .brand-mobile-copy {
        width: 86px !important;
        min-width: 86px !important;
    }

    .site-header .brand-mobile-copy {
        font-size: 12px !important;
    }

    .site-header .add-project-link {
        gap: 5px !important;
        padding-inline: 4px !important;
    }

    .site-header .add-project-link span {
        max-width: 76px;
        line-height: 1.15;
        white-space: normal;
    }
}

/* 0.13.0: one navigation interaction, one breadcrumb rhythm and CPT service details. */
.site-header .portal-nav > a,
.site-header .portal-nav > a:hover,
.site-header .portal-nav > a:focus-visible,
.site-header .portal-nav > a.active { text-decoration:none!important; box-shadow:none!important; }
.site-header .portal-nav > a span { border-bottom:0!important; text-decoration:none!important; }
.site-header .portal-nav > a::after { right:0; bottom:5px; left:0; height:3px; background:#a8005c; }
.site-header .portal-nav > a:nth-child(-n+4)::after { background:#fff; }
.site-header .portal-nav > a:is(:hover,:focus-visible,.active)::after { transform:scaleX(1); }

.od-auto-breadcrumbs,
.compact-hero .od-auto-breadcrumbs,
.projects-catalog-page .compact-hero .od-auto-breadcrumbs {
    width:min(1230px,calc(100% - 30px)); min-height:28px; margin:30px auto 18px; padding:0;
}
.od-auto-breadcrumbs > * + *::before { margin:0 9px; }
.od-auto-breadcrumbs [aria-current="page"] {
    max-width:none; overflow:visible; text-overflow:clip; white-space:normal; overflow-wrap:anywhere;
}

.service-detail-page .legacy-inner-page { padding:0 0 66px; }
.service-detail-card { border-top:6px solid #4dbde4; padding:32px 36px 36px; }
.service-detail-header { border-bottom:1px solid #ded8e5; display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding-bottom:24px; }
.service-detail-header h1 { color:#302841; max-width:780px; margin:8px 0 12px; overflow-wrap:anywhere; font:700 34px/1.15 Roboto Slab,Georgia,serif; }
.service-detail-type { color:#241b7c; border:1px solid #b8afc7; border-radius:16px; display:inline-flex; padding:4px 12px; font-size:12px; }
.service-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:34px; align-items:start; padding-top:28px; }
.service-detail-main,.service-detail-author { min-width:0; }
.service-detail-main > p,.service-detail-main > div > p { color:#514b58; font-size:14px; line-height:1.65; }
.service-detail-lead { color:#302841!important; margin:0 0 20px; font-size:17px!important; font-weight:650; }
.service-detail-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 22px; margin:28px 0; }
.service-detail-facts > div { border-left:5px solid #a8005c; background:#f7f5fa; min-width:0; padding:14px 16px; }
.service-detail-facts dt { color:#766f7c; margin-bottom:5px; font-size:12px; }
.service-detail-facts dd { color:#302841; margin:0; overflow-wrap:anywhere; font-weight:750; }
.service-detail-author { border-left:6px solid #4dbde4; display:grid; grid-template-columns:58px minmax(0,1fr); gap:14px; padding:22px 20px; }
.service-detail-avatar { color:#fff; background:linear-gradient(135deg,#a8005c,#30217e); border-radius:50%; display:grid; place-items:center; width:58px; height:58px; font-weight:800; }
.service-detail-author small { color:#a8005c; font-size:12px; font-weight:800; }
.service-detail-author h2 { color:#302841; margin:4px 0 7px; overflow-wrap:anywhere; font:700 20px/1.25 Roboto Slab,Georgia,serif; }
.service-detail-author p { color:#716a77; margin:0; font-size:12px; line-height:1.5; }

@media (max-width:1299px) {
    .od-auto-breadcrumbs,.compact-hero .od-auto-breadcrumbs,.projects-catalog-page .compact-hero .od-auto-breadcrumbs { width:min(940px,calc(100% - 30px)); }
}
@media (max-width:1000px) {
    .od-auto-breadcrumbs,.compact-hero .od-auto-breadcrumbs,.projects-catalog-page .compact-hero .od-auto-breadcrumbs { width:min(724px,calc(100% - 24px)); margin-top:22px; }
    .service-detail-layout { grid-template-columns:minmax(0,1fr) 250px; gap:22px; }
}
@media (max-width:723px) {
    .site-header .portal-nav > a,.site-header .portal-nav > a:first-child,.site-header .portal-nav > a:nth-child(n) { color:#fff!important; background:transparent!important; }
    .site-header .portal-nav > a::after,.site-header .portal-nav > a:nth-child(n)::after { bottom:2px; background:#fff; }
    .od-auto-breadcrumbs,.compact-hero .od-auto-breadcrumbs,.projects-catalog-page .compact-hero .od-auto-breadcrumbs { width:calc(100% - 24px); min-height:0; margin:16px auto 14px; padding:0; line-height:1.55; }
    .od-auto-breadcrumbs > * { display:inline; }
    .service-detail-page .legacy-inner-page > .container { width:calc(100% - 16px); }
    .service-detail-card { padding:20px 14px 24px; }
    .service-detail-header { display:grid; gap:15px; padding-bottom:18px; }
    .service-detail-header h1 { font-size:27px; }
    .service-detail-header .button,.service-detail-main > .button { width:100%; }
    .service-detail-layout,.service-detail-facts { grid-template-columns:1fr; }
    .service-detail-layout { gap:20px; padding-top:20px; }
    .service-detail-author { grid-row:1; }
}

/* 0.7.0 catalog alignment: projects follow the same responsive rhythm as specialists. */
.projects-catalog-page .compact-hero .title-row {
    margin-bottom: 0;
}

.projects-catalog-page .exchange-section {
    padding-top: 24px;
}

.projects-catalog-page .exchange-project-copy > p {
    line-height: 1.55;
}

.projects-catalog-page .exchange-project-copy .project-progress {
    overflow: hidden;
    height: 13px;
    margin-top: 10px;
    background: #e4dfeb;
}

.projects-catalog-page .exchange-project-copy .project-progress span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 100%;
    background: #c00063;
    color: #fff;
    font-size: 12px;
    line-height: 1;
}

/* Project details: swap funding and author on desktop, keep mobile content readable. */
.project-summary-grid {
    grid-template-columns: 270px minmax(0, 1fr) 187px;
}

.project-funding {
    grid-column: 1;
    grid-row: 1;
}

.project-overview {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.project-author {
    grid-column: 3;
    grid-row: 1;
    min-width: 0;
}

.project-summary-grid h1,
.project-summary-grid p,
.project-summary-grid .location-line,
.project-summary-grid .funding-summary {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.project-role-list span {
    color: #312b3a;
}

/* Exported catalogue markup uses .funding-panel .progress. */
.projects-catalog-page .exchange-project.funding-project .role-list {
    display: grid;
}

.projects-catalog-page .exchange-project .role-list {
    color: #312b3a;
}

.projects-catalog-page .funding-panel .progress {
    overflow: hidden;
    width: 100%;
    height: 13px;
    margin: 10px 0 0;
    border-radius: 8px;
    background: #e4dfeb;
}

.projects-catalog-page .funding-panel .progress span {
    display: block;
    min-width: 0;
    height: 100%;
    border-radius: inherit;
    background: #c00063;
}

@media (max-width: 1000px) {
    .project-summary-grid {
        grid-template-columns: 1fr !important;
    }

    .project-author {
        grid-column: 1;
        grid-row: 1;
    }

    .project-overview {
        grid-column: 1;
        grid-row: 2;
    }

    .project-funding {
        grid-column: 1;
        grid-row: 3;
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 723px) {
    .projects-catalog-page .compact-hero .container {
        width: 100%;
    }

    /* Gutenberg landing pages use nested .container blocks; keep them inside the viewport. */
    .gutenberg-landing,
    .gutenberg-landing > section,
    .gutenberg-landing .seo-hero-grid,
    .gutenberg-landing .seo-content-grid,
    .gutenberg-landing .seo-steps,
    .gutenberg-landing .seo-final-cta > .container {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .gutenberg-landing .container {
        width: calc(100% - 28px);
        min-width: 0;
        max-width: calc(100% - 28px);
    }

    .gutenberg-landing h1,
    .gutenberg-landing h2,
    .gutenberg-landing h3,
    .gutenberg-landing p,
    .course-page dt,
    .course-page dd,
    .course-page .course-teachers > div {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .projects-catalog-page .compact-hero .od-auto-breadcrumbs {
        width: calc(100% - 32px);
        margin: 14px auto 16px;
    }

    .projects-catalog-page .compact-hero .title-row,
    .specialists-page .compact-hero .title-row {
        width: calc(100% - 16px);
        margin-inline: auto;
    }

    .projects-catalog-page .exchange-section {
        padding-top: 12px;
    }

    .projects-catalog-page .mobile-filter-toggle {
        margin-top: 0;
    }

    .projects-catalog-page .exchange-project {
        gap: 12px;
        padding: 12px;
    }

    .projects-catalog-page .education-project-photo,
    .projects-catalog-page .education-project-photo img {
        height: 180px;
    }

    .projects-catalog-page .exchange-project-copy h2 {
        margin-bottom: 8px;
        font-size: 20px;
        line-height: 1.22;
    }

    .projects-catalog-page .exchange-project-copy > p,
    .projects-catalog-page .exchange-project-copy .chip-row {
        margin-top: 8px;
    }

    .projects-catalog-page .exchange-project-copy .button {
        min-height: 44px;
        margin-top: 10px;
    }
}

/* 0.7.6: the full breadcrumb path must remain readable on phones. */
@media (max-width: 700px) {
    .od-auto-breadcrumbs,
    .breadcrumbs {
        align-items: flex-start;
        flex-wrap: wrap;
        max-height: none;
        overflow: visible;
    }

    .od-auto-breadcrumbs [aria-current="page"],
    .breadcrumbs > :last-child {
        flex: 1 1 180px;
        min-width: 0;
        max-width: 100% !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }
}
@media (max-width: 900px) {
    .article-card h3,
    .article-card h3 a {
        max-width: 100%;
        overflow-wrap: anywhere;
    }
}

/* Mobile editorial cards: keep the complete title and remove secondary copy. */
@media (max-width: 723px) {
    .article-card > div > p {
        display: none !important;
    }

    .blog-card .blog-card-copy > p {
        display: none !important;
    }

    .article-card h3,
    .article-card h3 a,
    .blog-card .blog-card-copy h2,
    .blog-card .blog-card-copy h2 a {
        display: block !important;
        min-height: 0 !important;
        max-height: none !important;
        margin-bottom: 12px;
        overflow: visible !important;
        font-size: 18px !important;
        line-height: 1.2 !important;
        text-overflow: clip !important;
        white-space: normal !important;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
        -webkit-line-clamp: unset !important;
        -webkit-box-orient: initial !important;
    }
}
/* Blog article sidebar: titles use normal letter case; the archive link is redundant here. */
.blog-post-aside .blog-related .text-strong {
    text-transform: none !important;
}

.blog-post-aside .blog-catalog-link {
    display: none !important;
}
@media (max-width: 723px) {
    .site-header .add-project-link span {
        max-width: none !important;
        white-space: nowrap !important;
    }

    .site-header .account-link {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 3px !important;
    }

    .site-header .account-link:not(.account-authorized) .account-action {
        flex: 0 0 28px !important;
        width: 28px !important;
        min-width: 28px !important;
        height: 40px !important;
        padding: 0 3px !important;
    }

    .site-header .account-link:not(.account-authorized) .account-divider {
        flex: 0 0 1px !important;
        width: 1px !important;
        height: 24px !important;
        margin: 0 1px !important;
        border: 0 !important;
        background: #27212c !important;
    }
}

@media (max-width: 380px) {
    .site-header .add-project-link span {
        max-width: none !important;
        white-space: nowrap !important;
    }
}

/* 0.13.1: final site-wide navigation and breadcrumb contract. */
.site-header .portal-nav { scrollbar-width:none; }
.site-header .portal-nav::-webkit-scrollbar { width:0; height:0; display:none; }
.site-header .portal-nav > a::after { content:none!important; display:none!important; }
.site-header .portal-nav > a span {
    border-bottom:2px solid transparent!important;
    text-decoration:none!important;
}
.site-header .portal-nav > a:nth-child(-n+4):is(:hover,:focus-visible,.active) span {
    border-bottom-color:#fff!important;
}
.site-header .portal-nav > a:nth-child(n+5):is(:hover,:focus-visible,.active) span {
    border-bottom-color:#a8005c!important;
}

.od-auto-breadcrumbs,
.compact-hero .od-auto-breadcrumbs,
.projects-catalog-page .compact-hero .od-auto-breadcrumbs,
.legacy-inner-page .od-auto-breadcrumbs {
    box-sizing:border-box;
    width:min(1230px,calc(100% - 30px))!important;
    max-width:none!important;
    min-height:28px;
    margin:30px auto 18px!important;
    padding:0!important;
}
.od-auto-breadcrumbs > * { min-width:0; }
.od-auto-breadcrumbs > * + *::before { content:none!important; display:none!important; }
.od-auto-breadcrumbs .breadcrumb-separator { margin:0 9px; color:currentColor; }
.od-auto-breadcrumbs [aria-current="page"] {
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
}

@media (max-width:1000px) {
    .site-header .nav-strip,
    .site-header .portal-nav { background:#bd0061 none!important; }
    .site-header .portal-nav > a { color:#fff!important; }
    .site-header .portal-nav > a:nth-child(n):is(:hover,:focus-visible,.active) span {
        border-bottom-color:#fff!important;
    }
    .od-auto-breadcrumbs,
    .compact-hero .od-auto-breadcrumbs,
    .projects-catalog-page .compact-hero .od-auto-breadcrumbs,
    .legacy-inner-page .od-auto-breadcrumbs {
        width:min(724px,calc(100% - 24px))!important;
        margin:22px auto 18px!important;
    }
}

@media (max-width:723px) {
    .od-auto-breadcrumbs,
    .compact-hero .od-auto-breadcrumbs,
    .projects-catalog-page .compact-hero .od-auto-breadcrumbs,
    .legacy-inner-page .od-auto-breadcrumbs {
        display:block!important;
        width:calc(100% - 24px)!important;
        min-height:0;
        margin:20px auto!important;
        font-size:12px;
        line-height:1.55;
    }
    .od-auto-breadcrumbs > * {
        display:inline!important;
        white-space:normal!important;
        overflow-wrap:anywhere;
    }
    .od-auto-breadcrumbs .breadcrumb-separator { display:inline!important; margin:0 8px; }
}

.managed-detail-image { height:360px; margin:28px 0 0; overflow:hidden; }
.managed-detail-image img { width:100%; height:100%; object-fit:cover; }
.managed-detail-copy { max-width:900px; padding:30px 0 4px; }
.managed-detail-copy > *:first-child { margin-top:0; }

/* 0.13.3: compact mobile rhythm for editable Gutenberg landings. */
.gutenberg-landing .seo-hero-copy > p:first-child {
    margin-top: 0;
    margin-bottom: 0;
}

@media (max-width: 723px) {
    .gutenberg-landing .seo-hero-grid {
        display: flex !important;
        flex-direction: column;
        gap: 0;
    }

    .gutenberg-landing .seo-hero-copy {
        order: -1 !important;
        width: 100%;
        padding-top: 18px;
    }

    .gutenberg-landing .seo-hero-image {
        order: 0 !important;
        width: 100%;
        margin-top: 0;
    }

    .gutenberg-landing .section,
    .gutenberg-landing .seo-steps-section {
        margin-top: 12px;
    }
}
@media (max-width:723px) {
    .managed-detail-image { height:230px; margin-top:20px; }
    .managed-detail-copy { padding-top:22px; }
}

/* 0.14.7: one 16px horizontal rhythm on phone layouts.
   Compatibility rules used to apply an outer 8px gutter and then another
   breadcrumb margin. That made breadcrumbs, headings, filters and cards start
   at different coordinates. Only the phone breakpoint is changed here. */
@media (max-width:723px) {
    :root { --od-mobile-gutter:16px; }

    .legacy-home > .container,
    .compact-hero > .container,
    .portal-section > .container,
    .exchange-section > .container,
    .legacy-inner-page > .container,
    .events-page > .container,
    .gutenberg-landing > section > .container,
    .registration-section > .container {
        box-sizing:border-box;
        width:calc(100% - (var(--od-mobile-gutter) * 2))!important;
        max-width:calc(100% - (var(--od-mobile-gutter) * 2))!important;
        margin-right:auto!important;
        margin-left:auto!important;
    }

    .od-auto-breadcrumbs,
    .breadcrumbs.od-auto-breadcrumbs {
        box-sizing:border-box;
        width:calc(100% - (var(--od-mobile-gutter) * 2))!important;
        max-width:calc(100% - (var(--od-mobile-gutter) * 2))!important;
        margin:14px auto!important;
    }

    .compact-hero > .container > .od-auto-breadcrumbs,
    .legacy-inner-page > .container > .od-auto-breadcrumbs,
    .gutenberg-landing > section > .container > .od-auto-breadcrumbs {
        width:100%!important;
        max-width:100%!important;
        margin:20px 0!important;
    }

    .compact-hero .title-row,
    .compact-hero .portal-title,
    .projects-catalog-page .compact-hero .title-row,
    .specialists-page .compact-hero .title-row,
    .exchange-filter,
    .exchange-list,
    .specialists-filter,
    .services-filter,
    .method-catalog-intro {
        box-sizing:border-box;
        width:100%!important;
        max-width:100%!important;
        margin-right:0!important;
        margin-left:0!important;
    }

    .events-page .event-tags,
    .media-section-intro,
    .media-content-grid,
    .media-item-page .events-layout {
        margin-right:0!important;
        margin-left:0!important;
        padding-right:0!important;
        padding-left:0!important;
    }

    /* These three legacy grids keep an 8px compatibility gutter on their
       section wrapper. Compensate once so their cards share the same 16px
       page edge as breadcrumbs, headings and filters. */
    .specialists-grid,
    .services-listings,
    .blog-grid {
        box-sizing:border-box;
        width:calc(100% - 16px)!important;
        max-width:calc(100% - 16px)!important;
        margin-right:auto!important;
        margin-left:auto!important;
    }
}

/* 0.15.3 final cascade guard. Do not add page-specific rules below it. */
.site-header .portal-nav > a::after{content:none!important}
@media(max-width:1000px){
    .site-header .portal-nav{scrollbar-width:none!important}
    .site-header .portal-nav::-webkit-scrollbar{display:none!important}
}
@media(max-width:723px){
    .site-header{height:132px!important}
    .site-header .header-primary{height:82px!important}
    .site-header .header-primary{grid-template-columns:52px 112px minmax(132px,1fr) 64px!important;width:100%!important;max-width:none!important;padding:0!important}
    .site-header .menu-square{width:52px!important;height:82px!important}
    .site-header .brand{width:112px!important;height:82px!important;padding:5px 2px!important}
    .site-header .brand-mobile-logo,.site-header .brand-mobile-copy{width:108px!important;min-width:108px!important}
    .site-header .brand-mobile-copy{font-size:12px!important;line-height:1!important;letter-spacing:-.04em!important}
    .site-header .brand-mobile-copy span:last-child{white-space:nowrap!important}
    .site-header .add-project-link{justify-content:flex-start!important;gap:4px!important;width:auto!important;min-width:0!important;height:82px!important;padding:0 3px!important;font-size:12px!important;line-height:1.15!important;white-space:normal!important}
    .site-header .add-project-link img{flex:0 0 22px!important;width:22px!important;height:22px!important}
    .site-header .account-link{width:64px!important;height:82px!important;padding:0 3px!important}
    .site-header .account-action{min-width:24px!important;padding:0 2px!important}
    .site-header .nav-strip,.site-header .portal-nav{background:#bd0061 none!important}
    .site-header .nav-strip,.site-header .portal-nav{height:50px!important}
    .site-header .portal-nav>a{color:#fff!important;min-height:50px!important;font-size:12px!important;text-decoration:none!important}
    .site-header .portal-nav>a span{border-bottom:2px solid transparent!important;text-decoration:none!important}
    .site-header .portal-nav>a:hover span,.site-header .portal-nav>a:focus-visible span,.site-header .portal-nav>a[aria-current=page] span{border-bottom-color:#fff!important}
    .site-header .quick-menu-panel{top:82px!important}

    .od-portal-page main .od-auto-breadcrumbs,.od-portal-page main .breadcrumbs.od-auto-breadcrumbs,body.post-type-archive-od_project .projects-catalog-page .compact-hero>.container>.od-auto-breadcrumbs{box-sizing:border-box!important;width:calc(100% - 32px)!important;max-width:calc(100% - 32px)!important;min-height:0!important;margin:20px auto!important;padding:0!important;line-height:1.55!important}
    .od-portal-page main .container>.od-auto-breadcrumbs,.od-portal-page main .container>.breadcrumbs.od-auto-breadcrumbs,body.post-type-archive-od_project .projects-catalog-page .compact-hero>.container>.od-auto-breadcrumbs{width:100%!important;max-width:100%!important;margin:20px 0!important}
    .od-auto-breadcrumbs>*{display:inline!important;white-space:normal!important;overflow-wrap:anywhere!important}

    .compact-hero .portal-title,.compact-hero .title-row,.legacy-inner-page>.container>.portal-title{box-sizing:border-box!important;width:100%!important;min-height:0!important;font:700 25px/1.12 "Roboto Slab",Georgia,serif!important;letter-spacing:.025em!important}
    .compact-hero .portal-title>h1,.compact-hero .title-row>h1,.legacy-inner-page>.container>.portal-title>h1{box-sizing:border-box!important;width:100%!important;min-height:0!important;margin:0!important;padding:12px 14px 10px!important;font:inherit!important;letter-spacing:inherit!important;overflow-wrap:anywhere!important}

    .mobile-filter-toggle,.projects-catalog-page .project-filter-toggle{box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;min-height:54px!important;margin:0!important;border:0!important;border-left:6px solid #a8005c!important;border-bottom:4px solid #4dbde4!important;background:#fff!important;color:#a8005c!important;padding:0 18px 0 14px!important;font:800 12px/1.2 Arial,sans-serif!important;letter-spacing:.16em!important;text-transform:uppercase!important;box-shadow:none!important}
    .mobile-filter-toggle i,.projects-catalog-page .project-filter-toggle i{flex:0 0 10px!important;width:10px!important;height:10px!important;margin-left:14px!important;border:0!important;border-right:2px solid currentColor!important;border-bottom:2px solid currentColor!important;transform:rotate(45deg) translateY(-3px)!important}
    .mobile-filter-toggle[aria-expanded=true] i,.projects-catalog-page .project-filter-toggle[aria-expanded=true] i{transform:rotate(225deg) translate(-2px,-1px)!important}
    .projects-catalog-page .exchange-filter.mobile-filter-collapsible.is-collapsed{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
    .projects-catalog-page .exchange-filter:not(.is-collapsed) .project-filter-toggle{width:calc(100% + 28px)!important;margin:-14px -14px 14px!important}
}
