/* Scoped to the imported editorial template. */
.ee-editorial-shell {
    width: 100%;
    max-width: 1200px !important;
    margin: 0 auto !important;
    box-sizing: border-box;
    color: #293f4d;
}
.ee-editorial-shell p { margin-top: 0; }
.ee-editorial-shell a { text-underline-offset: 3px; }
.ee-article-hero { padding: 48px 24px 40px !important; }
.ee-article-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; line-height: 1.7; color: #647887; }
.ee-article-breadcrumbs a { color: #126681; text-decoration: none; }
.ee-hero-columns { display: grid !important; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 48px !important; align-items: center !important; }
.ee-hero-copy, .ee-hero-image, .ee-article-body, .ee-article-sidebar { min-width: 0; width: 100% !important; }
.ee-article-categories { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.ee-article-categories a { font-size: 12px; font-weight: 700; color: #438d3e; text-decoration: none; text-transform: uppercase; letter-spacing: 0.6px; }
.ee-article-title .elementor-heading-title { color: #092b3d; font-size: clamp(30px, 3.5vw, 48px); font-weight: 700; line-height: 1.16; letter-spacing: -1px; text-transform: none; overflow-wrap: break-word; }
.ee-hero-image img { display: block; width: 100%; max-height: 480px; height: auto; object-fit: contain; }
.ee-article-excerpt { color: #405b6b; font-size: 20px; line-height: 1.6; }
.ee-article-byline { font-size: 14px; color: #647887; margin: 0; }
.ee-article-credit { text-align: right; color: #647887; font-size: 12px; line-height: 1.5; margin: 0; }
.ee-article-main { display: grid !important; grid-template-columns: 100px minmax(0, 1fr) 245px; align-items: start !important; gap: 32px !important; padding: 36px 24px 40px !important; border-top: 1px solid #dbe4ea; }
.ee-article-share { width: 100% !important; min-width: 0; padding-right: 16px !important; }
.ee-article-share .elementor-widget-share-buttons .elementor-grid { display: flex !important; flex-direction: column; align-items: flex-start; gap: 12px; }
.ee-article-share .elementor-share-btn { height: auto; min-height: 32px; padding: 7px 9px; border-radius: 4px; }
.ee-article-body { font-size: 18px; line-height: 1.8; }
.ee-article-body .elementor-widget-theme-post-content { color: #293f4d; font-size: 18px; line-height: 1.8; }
.ee-article-body .elementor-widget-theme-post-content p { margin: 0 0 22px; }
.ee-article-body h2, .ee-article-body h3 { color: #092b3d; font-weight: 700; line-height: 1.35; margin: 32px 0 14px; }
.ee-article-body h2 { font-size: 26px; }
.ee-article-body h3 { font-size: 22px; }
.ee-article-body img { max-width: 100%; height: auto; }
.ee-article-body figure { max-width: 100%; margin: 24px 0; }
.ee-article-body iframe { max-width: 100%; }
.ee-article-body a { color: #367d36; }
.ee-article-body blockquote { margin: 28px 0; padding: 16px 24px; border-left: 3px solid #438d3e; background: #f1f7f4; color: #092b3d; }
.ee-article-details { padding: 24px; background: #edf6fa; }
.ee-article-details h2 { font-size: 20px; color: #092b3d; margin: 0 0 20px; padding-bottom: 16px; border-bottom: 1px solid #d3e1e9; }
.ee-article-details dl { margin: 0; }
.ee-detail-row + .ee-detail-row { margin-top: 20px; }
.ee-detail-row dt { color: #092b3d; font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.ee-detail-row dd { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.ee-detail-term { display: inline-block; padding: 5px 9px; background: #d9edf8; color: #126681; border-radius: 4px; font-size: 12px; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; }
.ee-detail-term:hover, .ee-detail-term:focus-visible { background: #c5e4f4; }
.ee-article-video, .ee-article-audio { margin: 24px 0; }
.ee-article-video iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }
.ee-article-audio audio { width: 100%; }
.ee-article-navigation { padding: 0 24px 44px !important; }
.ee-article-navigation .elementor-post-navigation { border: 1px solid #dbe4ea; padding: 22px; }
.ee-article-navigation .post-navigation__prev--label, .ee-article-navigation .post-navigation__next--label { color: #647887; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; }
.ee-article-navigation .post-navigation__prev--title, .ee-article-navigation .post-navigation__next--title { color: #092b3d; font-size: 16px; line-height: 1.5; white-space: normal; }
.ee-related-section { width: 100%; background: #edf6fa; padding: 40px 0 48px !important; }
.ee-related-inner { padding: 0 24px !important; }
.ee-related-heading .elementor-heading-title { color: #092b3d; font-size: 28px; font-weight: 700; line-height: 1.3; }
.ee-related-posts .elementor-post { background: #ffffff; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
.ee-related-posts .elementor-post__text { padding: 22px !important; margin: 0 !important; }
.ee-related-posts .elementor-post__title { font-size: 18px; line-height: 1.4; margin: 0 0 12px; }
.ee-related-posts .elementor-post__title a { color: #092b3d; font-weight: 600; }
.ee-related-posts .elementor-post__excerpt p { color: #536a79; font-size: 14px; line-height: 1.7; }
.ee-related-posts .elementor-post__read-more { color: #126681; font-size: 13px; font-weight: 600; }
.ee-related-posts .elementor-post__badge { background: #438d3e; color: #ffffff; border-radius: 3px; font-size: 11px; }
.ee-related-posts .elementor-post__meta-data { color: #647887; border-color: #e4ebf0; padding: 14px 22px; font-size: 12px; }
@media (max-width: 1024px) {
    .ee-hero-columns { gap: 32px !important; }
    .ee-article-main { grid-template-columns: minmax(0, 1fr) 230px; gap: 28px !important; }
    .ee-article-share { grid-column: 1 / -1; padding: 0 !important; }
    .ee-article-share .elementor-widget-share-buttons .elementor-grid { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 767px) {
    .ee-article-hero { padding: 28px 20px !important; }
    .ee-hero-columns { grid-template-columns: minmax(0, 1fr); gap: 24px !important; }
    .ee-article-title .elementor-heading-title { font-size: 32px; letter-spacing: -0.5px; }
    .ee-article-excerpt { font-size: 18px; }
    .ee-article-main { grid-template-columns: minmax(0, 1fr); padding: 24px 20px 28px !important; gap: 24px !important; }
    .ee-article-share { grid-column: 1; }
    .ee-article-body, .ee-article-body .elementor-widget-theme-post-content { font-size: 17px; line-height: 1.75; }
    .ee-article-navigation { padding: 0 20px 28px !important; }
    .ee-article-navigation .elementor-post-navigation { padding: 16px; }
    .ee-article-navigation .post-navigation__prev--title, .ee-article-navigation .post-navigation__next--title { font-size: 14px; }
    .ee-related-inner { padding: 0 20px !important; }
}

/* Keep the whole details column sticky within the article grid. */
@media (min-width: 768px) and (min-height: 800px) {
    .ee-article-main { overflow: visible !important; }
    .ee-article-sidebar {
        position: sticky !important;
        top: 112px;
        align-self: start !important;
        height: auto;
        overflow: visible;
    }
    body.admin-bar .ee-article-sidebar { top: 144px; }
}
@media (max-width: 767px), (max-height: 799px) {
    .ee-article-sidebar { position: static !important; }
}

/* Native Elementor Share Buttons: retain their existing sharing actions. */
.ee-article-share { padding-right: 0 !important; }
.ee-article-share .elementor-heading-title {
    color: #082133;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
}
.ee-article-share .elementor-widget-share-buttons .elementor-grid { gap: 10px; }
.ee-article-share .elementor-share-btn {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    width: 100%;
    min-height: 44px;
    height: auto;
    padding: 10px 9px;
    border: 1px solid #dce5eb;
    border-radius: 8px;
    background-color: #ffffff !important;
    color: #082133 !important;
    box-shadow: 0 2px 6px #0821330a;
    cursor: pointer;
    transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.ee-article-share .elementor-share-btn .elementor-share-btn__icon,
.ee-article-share .elementor-share-btn .elementor-share-btn__text {
    width: auto;
    height: auto;
    padding: 0;
    background: transparent !important;
    color: inherit !important;
    line-height: 1.3;
}
.ee-article-share .elementor-share-btn .elementor-share-btn__icon { font-size: 16px; }
.ee-article-share .elementor-share-btn .elementor-share-btn__icon svg { fill: currentColor; }
.ee-article-share .elementor-share-btn .elementor-share-btn__text {
    font-size: 11px;
    font-weight: 600;
}
.ee-article-share .elementor-share-btn:hover,
.ee-article-share .elementor-share-btn:focus-visible {
    background-color: #082133 !important;
    border-color: #082133;
    color: #ffffff !important;
}
.ee-article-share .elementor-share-btn:focus-visible {
    outline: 2px solid #126681;
    outline-offset: 3px;
}
@media (max-width: 1024px) {
    .ee-article-share .elementor-share-btn { width: auto; min-width: 104px; padding: 11px 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .ee-article-share .elementor-share-btn { transition: none; }
}
.ee-article-share .elementor-widget-share-buttons .elementor-grid {
    display: flex !important;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
}
.ee-article-share .elementor-grid-item { width: 100%; }
.ee-article-share .elementor-share-btn__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 16px;
}
.ee-article-share .elementor-share-btn__icon svg { width: 16px; height: 16px; }
@media (max-width: 1024px) {
    .ee-article-share .elementor-widget-share-buttons .elementor-grid {
        flex-direction: row;
        flex-wrap: wrap;
    }
    .ee-article-share .elementor-grid-item { width: auto; }
}

/* Inherit Header 106's existing team-page layout; change only the post colour. */
body.single-post .elementor-106 #main-header {
    background-color: #116282 !important;
}
body.single-post .elementor-106 #main-header > .elementor-element-74c790c,
body.single-post .elementor-106 #main-header > .elementor-element-f14af12 {
    background-color: transparent !important;
}


/* Styles scoped to this archive template. */
.ee-archive-width { width:100%; max-width:1280px!important; margin:0 auto!important; box-sizing:border-box; }
.ee-archive-hero { background:#edf6fa; padding:48px 24px!important; }
.ee-archive-eyebrow .elementor-heading-title { color:#438d3e; letter-spacing:1px; }
.ee-archive-title .elementor-heading-title { font-size:44px; line-height:1.15; letter-spacing:-1px; text-transform:none; }
.ee-archive-hero p { margin:0; }
.ee-archive-layout { display:grid!important; grid-template-columns:260px minmax(0,1fr); align-items:start!important; gap:32px!important; padding:40px 24px 64px!important; }
.ee-archive-sidebar { width:100%!important; min-width:0; background:#edf6fa; border-radius:8px; padding:24px 20px!important; gap:20px!important; }
.ee-archive-filter { gap:10px!important; padding-top:18px!important; border-top:1px solid #d3e1e9; }
.ee-archive-filter .elementor-heading-title { color:#082133; font-size:13px; font-weight:600; text-transform:none; }
.ee-archive-filter .facetwp-facet { margin-bottom:0; color:#293f4d; font-size:14px; }
.ee-archive-filter .facetwp-checkbox { line-height:1.6; margin-bottom:9px; }
.ee-archive-filter .facetwp-counter { color:#647887; font-size:12px; }
.ee-archive-filter .facetwp-input-wrap { display:block; width:100%; }
.ee-archive-filter input.facetwp-search,
.ee-archive-filter select.facetwp-dropdown { width:100%; max-width:100%; min-height:44px; padding:10px 32px 10px 12px; border:1px solid #c9d9e3; border-radius:5px; background:#fff; color:#293f4d; font-size:14px; }
.ee-archive-filter input:focus-visible,
.ee-archive-filter select:focus-visible { outline:2px solid #116282; outline-offset:2px; }
.ee-archive-filter .facetwp-icon { right:8px; }
.ee-archive-filter .facetwp-overflow { padding-top:4px; }
.ee-archive-filter .facetwp-toggle { display:inline-block; margin-top:8px; color:#116282; }
.ee-archive-results { min-width:0; width:100%!important; gap:22px!important; }
.ee-archive-posts .elementor-posts-container { align-items:stretch; }
.ee-archive-posts .elementor-post { border:1px solid #dce5eb!important; border-radius:8px!important; background:#fff; box-shadow:none!important; overflow:hidden; }
.ee-archive-posts .elementor-post__card { height:100%; display:flex; flex-direction:column; box-shadow:none!important; background:#fff; }
.ee-archive-posts .elementor-post__thumbnail { background:#edf6fa; }
.ee-archive-posts .elementor-post__text { flex:1; display:flex; flex-direction:column; padding:22px!important; margin:0!important; }
.ee-archive-posts .elementor-post__title { font-size:19px; line-height:1.4; margin:0 0 12px; text-transform:none; }
.ee-archive-posts .elementor-post__title a { color:#082133; font-weight:700; }
.ee-archive-posts .elementor-post__title a:hover { color:#116282; }
.ee-archive-posts .elementor-post__excerpt p { color:#536a79; font-size:14px; line-height:1.7; margin:0 0 18px; }
.ee-archive-posts .elementor-post__read-more { margin-top:auto; color:#367d36; font-size:13px; font-weight:600; }
.ee-archive-posts .elementor-post__badge { background:#116282; color:#fff; border-radius:4px; font-size:11px; padding:5px 9px; }
.ee-archive-posts .elementor-pagination { margin-top:28px; display:flex; justify-content:center; flex-wrap:wrap; gap:8px; }
.ee-archive-posts .elementor-pagination .page-numbers { margin:0!important; min-width:36px; padding:8px 12px; border:1px solid #dce5eb; border-radius:4px; color:#082133; font-size:14px; }
.ee-archive-posts .elementor-pagination .page-numbers.current { color:#fff; background:#438d3e; border-color:#438d3e; }
.ee-archive-posts .elementor-pagination a:hover { background:#edf6fa; }
@media(max-width:1024px) { .ee-archive-layout { grid-template-columns:230px minmax(0,1fr); gap:24px!important; } .ee-archive-title .elementor-heading-title { font-size:36px; } }
@media(max-width:767px) { .ee-archive-hero { padding:32px 20px!important; } .ee-archive-title .elementor-heading-title { font-size:30px; letter-spacing:-.5px; } .ee-archive-layout { grid-template-columns:minmax(0,1fr); padding:28px 20px 44px!important; } .ee-archive-sidebar { padding:22px 18px!important; } }


/* Published posts archive: shared header layout, team-page colour. */
body.blog .elementor-location-header {
    position: relative !important;
    inset: auto !important;
    width: 100%;
    z-index: 100;
    background-color: #116282;
}
body.blog .elementor-106 #main-header {
    position: relative !important;
    inset: auto !important;
    background-color: #116282 !important;
}
body.blog .elementor-106 #main-header > .elementor-element-74c790c,
body.blog .elementor-106 #main-header > .elementor-element-f14af12 {
    background-color: transparent !important;
}


/* Publications page: reuse Header 106's native layout and team colour. */
body.page-id-48 .elementor-location-header {
    position: relative !important;
    inset: auto !important;
    width: 100%;
    z-index: 100;
    background-color: #116282;
}
body.page-id-48 .elementor-106 #main-header {
    position: relative !important;
    inset: auto !important;
    background-color: #116282 !important;
}
body.page-id-48 .elementor-106 #main-header > .elementor-element-74c790c,
body.page-id-48 .elementor-106 #main-header > .elementor-element-f14af12 {
    background-color: transparent !important;
}


/* Case studies page: match the existing team and publications header. */
body.page-id-6495 .elementor-location-header {
    position: relative !important;
    inset: auto !important;
    width: 100%;
    z-index: 100;
    background-color: #116282;
}
body.page-id-6495 .elementor-106 #main-header {
    position: relative !important;
    inset: auto !important;
    background-color: #116282 !important;
}
body.page-id-6495 .elementor-106 #main-header > .elementor-element-74c790c,
body.page-id-6495 .elementor-106 #main-header > .elementor-element-f14af12 {
    background-color: transparent !important;
}

/* Resource pagination: same controls and spacing as the blog archive. */
body.page-id-48 .elementor-widget-posts .elementor-pagination,
body.page-id-6495 .elementor-widget-posts .elementor-pagination {
    display: flex !important;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 28px;
}
body.page-id-48 .elementor-widget-posts .elementor-pagination .page-numbers,
body.page-id-6495 .elementor-widget-posts .elementor-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 36px;
    min-height: 38px;
    margin: 0 !important;
    padding: 8px 12px;
    border: 1px solid #dce5eb;
    border-radius: 4px;
    background-color: #ffffff;
    color: #082133 !important;
    font-size: 14px !important;
    font-weight: 400;
    line-height: 1.5;
    text-decoration: none;
}
body.page-id-48 .elementor-widget-posts .elementor-pagination .page-numbers.current,
body.page-id-6495 .elementor-widget-posts .elementor-pagination .page-numbers.current {
    background-color: #438d3e;
    border-color: #438d3e;
    color: #ffffff !important;
}
body.page-id-48 .elementor-widget-posts .elementor-pagination a.page-numbers:hover,
body.page-id-6495 .elementor-widget-posts .elementor-pagination a.page-numbers:hover {
    background-color: #edf6fa;
}
body.page-id-48 .elementor-widget-posts .elementor-pagination a.page-numbers:focus-visible,
body.page-id-6495 .elementor-widget-posts .elementor-pagination a.page-numbers:focus-visible {
    outline: 2px solid #116282;
    outline-offset: 3px;
}

/* Resource single headers and natural-height heroes. */
body:has(.ee-resource-publication) .elementor-location-header,
body:has(.ee-resource-case) .elementor-location-header,
body:has(.ee-resource-publication) .elementor-106 #main-header,
body:has(.ee-resource-case) .elementor-106 #main-header {
 position: relative !important; inset: auto !important; background-color: #116282 !important;
}
.ee-article-hero.ee-resource-publication, .ee-article-hero.ee-resource-case {
 display:flex !important; flex-direction:column !important; align-items:stretch !important;
 justify-content:flex-start !important; height:auto !important; max-height:none !important; overflow:visible !important;
}
.ee-resource-publication .ee-article-breadcrumbs, .ee-resource-case .ee-article-breadcrumbs { overflow-wrap:anywhere; white-space:normal; }
.ee-resource-publication .ee-article-categories span, .ee-resource-case .ee-article-categories span { color:#438d3e; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.6px; }
.ee-resource-publication .ee-article-details, .ee-related-section.ee-resource-publication { background:#EDF5E8; }
.ee-resource-case .ee-article-details, .ee-related-section.ee-resource-case { background:#E6F3F1; }
.ee-resource-download { display:inline-block; padding:12px 18px; background:#116282; color:#ffffff !important; border-radius:4px; text-decoration:none; }
.ee-resource-download:hover { background:#082133; }

/* Let the hero grow with the breadcrumb and title. */
body.single-post .ee-article-hero {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

body.single-post .ee-article-hero > .elementor-widget-shortcode {
    position: relative !important;
    width: 100%;
    flex-shrink: 0 !important;
}

body.single-post .ee-article-breadcrumbs {
    white-space: normal;
    overflow-wrap: anywhere;
}

body.single-post .ee-hero-columns {
    flex-shrink: 0 !important;
}
body.ee-article-breadcrumbs {
	display: none !important;
}
/* Single blog posts: reserve the header's full height above the hero. */
body.single-post .elementor-location-header,
body.single-post .elementor-106 #main-header {
    position: relative !important;
    inset: auto !important;
    width: 100%;
    background-color: #116282 !important;
}
body.single-post .elementor-location-header {
    margin-bottom: 0 !important;
}
body.single-post .ee-article-hero {
    position: relative !important;
    top: auto !important;
    margin-top: 0 !important;
}
