/*
 * New Energy Challenge visual identity
 * Design source: Figma node 3:4, "Elements and Styles".
 * This file deliberately sits after the legacy bundle so the new VI can be
 * rolled out across the existing WordPress templates without duplicating them.
 */

:root {
    --nec-cyan: #73d2ff;
    --nec-cyan-soft: rgba(115, 210, 255, 0.15);
    --nec-dark-blue: #004191;
    --nec-blue: #0083c8;
    --nec-magenta: #e5007d;
    --nec-dark-magenta: #960f64;
    --nec-purple: #6f2da8;
    --nec-black: #000;
    --nec-white: #fff;
    --nec-border: #f3f4f6;
    --nec-radius: 8px;
    --nec-pill: 999px;
    --nec-content: 1152px;

    /* Keep Complianz on the same VI, even when its generated CSS loads later. */
    --cmplz_text_color: #000 !important;
    --cmplz_hyperlink_color: #0083c8 !important;
    --cmplz_button_accept_background_color: #e5007d !important;
    --cmplz_button_accept_border_color: #e5007d !important;
    --cmplz_button_accept_text_color: #fff !important;
    --cmplz_button_deny_background_color: #fff !important;
    --cmplz_button_deny_border_color: #004191 !important;
    --cmplz_button_deny_text_color: #004191 !important;
    --cmplz_button_settings_background_color: #fff !important;
    --cmplz_button_settings_border_color: #0083c8 !important;
    --cmplz_button_settings_text_color: #004191 !important;
    --cmplz_category_header_always_active_color: #0083c8 !important;
    --cmplz_slider_active_color: #0083c8 !important;
    --cmplz_slider_inactive_color: #99a1af !important;
    --cmplz_slider_bullet_color: #fff !important;
}

::selection {
    background: var(--nec-cyan);
    color: var(--nec-dark-blue);
}

html {
    font-size: 10px;
}

body,
body button,
body input,
body select,
body textarea {
    color: var(--nec-black);
    font-family: ShellFont, Arial, sans-serif;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.4;
}

a {
    color: var(--nec-blue);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--nec-dark-blue);
    font-weight: 500;
    line-height: 1.2;
}

h1 {
    font-size: clamp(4rem, 5vw, 7.2rem);
    font-weight: 700;
    letter-spacing: -0.03em;
}

h2 {
    font-size: clamp(3.6rem, 4vw, 4.8rem);
    font-weight: 700;
    letter-spacing: -0.02em;
}

h3 {
    font-size: clamp(2.6rem, 3vw, 3.2rem);
}

h4 {
    font-size: 2.4rem;
    letter-spacing: -0.02em;
}

h5 {
    font-size: 2rem;
}

h6 {
    font-size: 1.6rem;
}

.bold,
.very-bold,
b,
strong {
    font-weight: 700;
}

.component-container {
    max-width: var(--nec-content);
    width: calc(100% - 48px);
}

.component-header {
    margin-bottom: 4.8rem;
    text-transform: none;
}

.component-header h2 {
    color: var(--nec-dark-blue);
    font-size: 2.4rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

/* Buttons */
.button,
.button-base,
.jumbotron .cfs-hyperlink {
    min-width: 0;
    padding: 1.5rem 4rem 1.7rem;
    border: 1px solid var(--nec-magenta);
    border-radius: var(--nec-pill);
    background: var(--nec-magenta);
    color: var(--nec-white);
    font-weight: 700;
    line-height: 1.4;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.button:hover,
.button-base:hover,
.jumbotron .cfs-hyperlink:hover {
    border-color: var(--nec-dark-magenta);
    background: var(--nec-dark-magenta);
    color: var(--nec-white);
    transform: translateY(-1px);
}

.button:focus-visible,
.button-base:focus-visible,
.jumbotron .cfs-hyperlink:focus-visible {
    outline: 3px solid var(--nec-cyan);
    outline-offset: 3px;
    box-shadow: none;
}

.button.button-ghost,
.button.button-white,
.blog-list .component-footer .button {
    border-color: var(--nec-blue);
    background: transparent;
    color: var(--nec-blue);
}

.button.button-ghost:hover,
.button.button-white:hover,
.blog-list .component-footer .button:hover {
    border-color: var(--nec-blue);
    background: var(--nec-blue);
    color: var(--nec-white);
}

.button.button-centered {
    width: max-content;
    max-width: 100%;
}

/* Floating pill navigation */
.main-header {
    height: 174px;
    padding-top: 0;
    z-index: 20;
}

body.home .main-header {
    position: absolute;
}

.main-header .header-headroom {
    padding-top: 25px;
}

.main-header .component-container,
.main-header .header-headroom.headroom--pinned .component-container {
    display: flex;
    align-items: center;
    width: min(1280px, calc(100% - 48px));
    max-width: 1280px;
    height: 124px;
    padding: 0 48px;
    border: 0 !important;
    border-radius: 128px;
    background: rgba(211, 240, 253, 0.82);
    box-shadow: 0 12px 32px rgba(0, 65, 145, 0.08);
    -webkit-backdrop-filter: blur(15px);
    backdrop-filter: blur(15px);
}

.main-header .header-headroom.headroom--pinned {
    padding: 12px 0;
    background: transparent;
}

.main-header .header-headroom.headroom--pinned .component-container::after {
    display: none;
}

.main-logo,
.main-logo h1 {
    margin: 0;
}

.main-logo a,
body.home .main-logo a {
    width: 170px;
    height: 112px;
    background: transparent url(../images/ui/logo-nec-blues.svg) no-repeat left center;
    background-size: contain;
}

.homepage-menu {
    display: none;
}

.homepage-menu ul {
    gap: 2.4rem;
}

.homepage-menu a {
    padding: 0.8rem;
    border-radius: 0;
    color: var(--nec-blue);
    font-size: 1.6rem;
    font-weight: 500;
    text-transform: none;
}

.homepage-menu a:hover,
.homepage-menu .current-menu-item > a {
    background: transparent;
    color: var(--nec-dark-blue);
    box-shadow: inset 0 -1px 0 var(--nec-cyan);
}

.burger-menu-button {
    width: 52px;
    height: 52px;
    margin: 0 -8px 0 auto;
}

.burger-menu-button b::after,
.burger-menu-button b::before,
.burger-menu-button b > span,
body.home .burger-menu-button b::after,
body.home .burger-menu-button b::before,
body.home .burger-menu-button b > span {
    height: 2px;
    background: var(--nec-blue);
}

.burger-menu-button:hover::after {
    background: rgba(115, 210, 255, 0.24);
}

/* Slide-out navigation */
.mainnav {
    background-color: rgba(0, 65, 145, 0.32);
}

.mainnav .component-content {
    background: rgba(255, 255, 255, 0.98);
}

.mainnav li {
    font-size: 2.4rem;
    text-transform: none;
}

.mainnav li > a {
    color: var(--nec-blue);
}

.mainnav li > a:hover,
.mainnav li.current_page_ancestor > a,
.mainnav li.current_page_item > a {
    color: var(--nec-dark-blue);
    background: var(--nec-cyan-soft);
}

.mainnav-close b > span,
.mainnav-close b > span::after {
    background: var(--nec-blue);
}

/* Homepage hero */
.jumbotron {
    color: var(--nec-white);
    background-color: var(--nec-dark-blue);
}

.jumbotron .component-content {
    padding-top: 19rem;
}

.jumbotron .component-content h1,
.jumbotron .component-content h2 {
    color: var(--nec-white);
    font-size: clamp(4rem, 5vw, 7.2rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;
}

.jumbotron .component-content p {
    font-size: 2rem;
    line-height: 1.4;
}

.jumbotron .swiper-pagination-bullet-active {
    background: var(--nec-cyan) !important;
}

/* Intro and editorial content */
.home-intro {
    padding: 4rem 0;
}

.home-intro .component-content h2 {
    color: var(--nec-dark-blue);
    font-weight: 700;
}

.hentry p a:not(.button),
.hentry td a:not(.button),
.home-intro .component-content a:not(.button),
.page p a:not(.button),
.page td a:not(.button) {
    box-shadow: 0 1px 0 var(--nec-cyan);
}

.page-content .hentry h1,
.page-content .page h1 {
    color: var(--nec-dark-blue);
    text-transform: none;
}

.page-content .entry-date::before {
    background: var(--nec-magenta);
}

/* Technology cards */
.motives {
    padding: 8rem 0;
    background: var(--nec-dark-blue);
    color: var(--nec-white);
}

.motives h3 {
    color: var(--nec-cyan);
    font-size: 3.2rem;
    font-weight: 500;
}

.motives-cards {
    margin-top: 4.8rem;
}

.flip-card-front,
.link-card a {
    border: 1px solid var(--nec-border);
    border-radius: var(--nec-radius);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
}

.flip-card-front h4 {
    color: var(--nec-dark-blue);
    font-weight: 700;
}

.flip-card-back {
    border-radius: var(--nec-radius);
    background: var(--nec-cyan);
    color: var(--nec-dark-blue);
}

.link-card a {
    background: var(--nec-magenta);
}

.link-card a:hover {
    background: var(--nec-dark-magenta);
}

.card-close svg path,
.card-close-hitarea svg path,
.card-front-arrow svg path {
    stroke: var(--nec-blue);
}

/* News cards */
.blog-list {
    padding: 8rem 0;
    background: var(--nec-cyan-soft);
}

.blog-list .tiles-container {
    gap: 2.4rem;
    margin-right: 0;
    margin-left: 0;
}

.blog-list .tile,
.blog-list .tile:first-child {
    overflow: visible;
    margin: 0 0 2.4rem;
    background: var(--nec-white);
}

.blog-list .tile > a {
    position: relative;
    display: flex;
    height: 100%;
    flex-direction: column;
}

.blog-list .image-landscape {
    padding-bottom: 54.545%;
    border-radius: 0;
    background: var(--nec-dark-blue);
}

.blog-list .tile-cat {
    position: absolute;
    top: calc(54.545% - 1.2rem);
    left: 2rem;
    z-index: 2;
    margin: 0;
    padding: 0.4rem 1.6rem;
    border-radius: 16px;
    background: var(--nec-cyan);
    color: var(--nec-dark-blue);
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.4;
}

.blog-list .tile-title,
.blog-list .tile:first-child .tile-title {
    flex: 1;
    margin: 0;
    padding: 2.8rem 2rem 2rem;
    border-bottom: 2px solid var(--nec-magenta);
}

.blog-list .tile .tile-title > *,
.blog-list .tile:first-child .tile-title > * {
    margin: 0;
    color: var(--nec-dark-blue);
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.4;
}

.blog-list .component-footer {
    margin-top: 2.4rem;
}

/* Testimonials */
.testimonials {
    padding: 8rem 0;
    background: var(--nec-dark-blue);
}

.testimonials blockquote {
    color: var(--nec-white);
    font-size: 2.4rem;
    line-height: 1.4;
}

.testimonials figcaption {
    color: var(--nec-cyan);
}

/* Partner area and footer artwork */
.partners {
    margin-bottom: 0;
    padding: 6.4rem 0 4rem;
    background: var(--nec-white) url(../images/ui/footer-vi-bg.png) no-repeat center 28%;
    background-size: min(1200px, 100%) auto;
}

.partners .component-header h2 {
    color: var(--nec-dark-blue);
}

.partners-list {
    justify-content: center;
    gap: 2.4rem 5.6rem;
}

.partners-list li,
.partners-list li.logo-rockstart,
.partners-list li.logo-shell,
.partners-list li.logo-unknown,
.partners-list li.logo-yesdelft {
    width: 17rem;
    height: 8rem;
}

.partners-list a {
    width: 100%;
}

.partners-list a img {
    max-width: 100%;
    max-height: 5.4rem;
}

.main-footer {
    min-height: 0;
    padding: 4rem 0;
    background: var(--nec-white) url(../images/ui/footer-vi-bg.png) no-repeat center 73%;
    background-size: min(1200px, 100%) auto;
}

.contact-link,
.social-heading {
    color: var(--nec-dark-blue);
    font-size: 1.6rem;
    font-weight: 500;
    text-transform: none;
}

.contact-link a:hover {
    color: var(--nec-dark-blue);
}

.social-icon > * {
    background-color: var(--nec-blue);
}

.to-top a {
    border-color: var(--nec-blue);
    background-color: var(--nec-white);
    color: var(--nec-blue);
}

/* Remaining recurring accents */
.scheduler-container,
.timeline-balloon [data-name="timeline-content"] {
    background: var(--nec-dark-blue);
}

.scheduler-first-item,
.scheduler-date,
.scheduler-item::after,
.scheduler-upcoming h3 {
    border-color: var(--nec-magenta);
    background-color: var(--nec-magenta);
}

.scheduler-first-item .scheduler-date {
    background: var(--nec-dark-blue);
}

@media (min-width: 768px) {
    .blog-list .component-content {
        align-items: stretch;
    }

    .blog-list .tile,
    .blog-list .tile:first-child {
        width: calc(50% - 1.2rem);
    }
}

@media (min-width: 992px) {
    .blog-list .tile,
    .blog-list .tile:first-child {
        width: calc(33.333333% - 1.6rem);
    }
}

@media (max-width: 991.98px) {
    .main-header {
        height: 120px;
        padding-top: 0;
    }

    .main-header .header-headroom {
        padding-top: 16px;
    }

    .main-header .component-container,
    .main-header .header-headroom.headroom--pinned .component-container {
        width: calc(100% - 32px);
        height: 88px;
        padding: 0 24px;
    }

    .main-logo a,
    body.home .main-logo a {
        width: 112px;
        height: 80px;
    }

    .jumbotron .component-content {
        padding-top: 14rem;
    }
}

@media (max-width: 575.98px) {
    .component-container {
        width: calc(100% - 32px);
        padding-right: 0;
        padding-left: 0;
    }

    .main-header .component-container,
    .main-header .header-headroom.headroom--pinned .component-container {
        padding: 0 18px;
    }

    .main-logo a,
    body.home .main-logo a {
        width: 100px;
    }

    .burger-menu-button {
        margin-left: auto;
    }

    .blog-list,
    .motives,
    .testimonials {
        padding: 6.4rem 0;
    }

    .partners-list li,
    .partners-list li.logo-rockstart,
    .partners-list li.logo-shell,
    .partners-list li.logo-unknown,
    .partners-list li.logo-yesdelft {
        width: calc(50% - 1.2rem);
    }
}

/* ================================================================
 * Figma fidelity pass — nodes 1:2, 1:341 and 1:794
 * ================================================================ */

@media (min-width: 992px) {
    .main-header {
        height: 174px;
        padding-top: 0;
    }

    .main-header .header-headroom {
        height: 174px;
        padding-top: 25px;
    }

    .main-header .component-container,
    .main-header .header-headroom.headroom--pinned .component-container {
        width: min(1280px, calc(100% - 48px));
        max-width: 1280px;
        height: 149px;
        padding: 0 48px;
    }

    .main-logo a,
    body.home .main-logo a {
        width: 205px;
        height: 149px;
    }

    .vi-primary-nav ul {
        display: flex;
        align-items: center;
        gap: 40px;
        margin: 0;
    }

    .vi-primary-nav a {
        padding: 8px;
    }

    .burger-menu-button {
        display: none;
    }
}

/* Exact home hero and event panel */
.jumbotron.vi-home-hero {
    min-height: 700px;
    height: 700px;
    padding-top: 174px;
    overflow: visible;
}

.vi-home-hero .component-content {
    min-height: 526px;
    height: 526px;
    padding: 0;
}

.vi-home-hero-copy {
    padding-left: 0;
}

.vi-home-hero .component-content h2 {
    margin-top: 8px;
    font-size: 72px;
    line-height: 1.2;
    letter-spacing: -2.16px;
    white-space: nowrap;
}

.vi-home-hero .component-content p {
    margin: 0 0 40px;
    font-size: 32px;
    line-height: 1.2;
    white-space: nowrap;
}

.vi-home-hero-art {
    z-index: 2;
}

.vi-home-hero-art img {
    top: 17px;
    left: 137px;
    width: 989px;
    transform: none;
}

.vi-home-event-card {
    position: absolute;
    z-index: 6;
    top: 448px;
    right: 0;
    width: 256px;
    padding-bottom: 50px;
    background: var(--nec-dark-blue);
    color: var(--nec-white);
    box-shadow: 0 20px 25px rgba(0, 0, 0, 0.2);
}

.vi-home-event {
    display: grid;
    grid-template-columns: 32px 1fr 14px;
    align-items: start;
    gap: 12px;
    padding: 16px;
    color: var(--nec-white);
    font-size: 14px;
    line-height: 1.4;
}

.vi-home-event:hover {
    color: var(--nec-white);
}

.vi-home-event-primary {
    background: var(--nec-dark-blue);
}

.vi-home-event time {
    display: flex;
    align-items: center;
    flex-direction: column;
    font-family: Futura, Arial, sans-serif;
    text-transform: uppercase;
}

.vi-home-event time strong {
    color: var(--nec-magenta);
    font-size: 20px;
    line-height: 20px;
}

.vi-home-event time span {
    color: var(--nec-white);
    font-size: 10px;
    letter-spacing: .05em;
    line-height: 15px;
}

.vi-home-event b {
    color: var(--nec-white);
    font-weight: 500;
}

.vi-home-event-edition {
    padding: 8px 16px;
    background: var(--nec-cyan);
    color: var(--nec-white);
    font-size: 20px;
    line-height: 1.2;
    text-transform: uppercase;
}

.vi-home-event-button {
    position: absolute;
    bottom: 9px;
    left: 50%;
    padding: 8px 20px;
    border-radius: 50px;
    background: var(--nec-magenta);
    color: var(--nec-white);
    font-size: 14px;
    font-weight: 700;
    transform: translateX(-50%);
}

/* Figma home intro: two equal 544 px columns */
.home-intro {
    min-height: 664px;
    padding: 80px 0;
}

.home-intro .component-content {
    grid-template-columns: repeat(2, minmax(0, 544px));
    grid-template-rows: 472px;
    gap: 64px;
    max-width: 1152px;
    margin: 0 auto;
}

.home-intro .component-content h2 {
    margin: 0 0 24px;
    font-size: 48px;
    line-height: 1.2;
}

.vi-home-intro-copy p {
    margin: 0 0 18px;
    color: #364153;
    font-size: 16px;
    line-height: 1.4;
}

.vi-home-intro-card {
    align-self: start;
    width: 544px;
    margin-top: 180px;
    padding: 32px;
    background: var(--nec-dark-blue);
}

.vi-home-intro-card h3 {
    margin: 16px 0 0;
    padding-bottom: 16px;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.2;
}

.vi-home-intro-card p {
    font-size: 16px;
    line-height: 1.4;
}

/* About content is supplied by the Figma page, not the legacy 2025 CMS copy. */
.vi-about-content > h1 {
    margin: 0 0 8px;
    font-size: 48px;
    line-height: 1.2;
}

.vi-about-eyebrow {
    margin: 0 0 8px;
    color: var(--nec-magenta) !important;
    font-size: 12px !important;
    letter-spacing: 1.2px;
    line-height: 1.4 !important;
    text-transform: uppercase;
}

.vi-about-lead {
    margin: 0;
    color: var(--nec-blue);
    font-size: 20px;
    line-height: 1.4;
}

.vi-about-introduction {
    padding-top: 32px;
}

.vi-about-introduction p {
    margin: 0 0 20px;
}

.vi-about-section {
    padding-top: 32px;
}

.vi-about-section h2,
.vi-about-winners h2 {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 24px;
    color: var(--nec-dark-blue);
    font-size: 24px;
    font-weight: 500;
    line-height: 1.2;
}

.vi-about-section h2::before {
    width: 4px;
    height: 40px;
    background: var(--nec-blue);
    content: "";
}

.vi-about-winners h2::before {
    height: 32px;
    background: var(--nec-magenta);
}

.vi-about-content p,
.vi-about-content li {
    color: #364153;
    font-size: 14px;
    line-height: 1.4;
}

.vi-about-theme {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--nec-border);
}

.vi-about-theme header {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.vi-about-theme header > span {
    color: var(--nec-magenta);
    font-size: 32px;
    line-height: 1.2;
}

.vi-about-theme h3 {
    margin: 4px 0 0;
    color: var(--nec-dark-blue);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
}

.vi-about-theme-body {
    padding: 16px 0 0 56px;
}

.vi-about-theme-body h4 {
    margin: 20px 0 4px;
    color: #364153;
    font-size: 16px;
    font-weight: 700;
}

.vi-about-theme-body ul {
    margin: 0.8rem 0 2.4rem;
    padding-left: 2.2rem;
}

.vi-about-theme-body > p {
    margin: 0 0 2rem;
}

.vi-about-theme-body li {
    margin: 0 0 0.6rem;
    padding-left: 0.4rem;
}

.vi-about-theme-body li:last-child {
    margin-bottom: 0;
}

.vi-about-content .vi-about-apply {
    margin: 3.2rem 0 0;
}

.vi-about-content .vi-about-apply .button {
    display: inline-flex;
    min-height: 5.2rem;
    padding: 1.4rem 3.2rem;
    align-items: center;
    justify-content: center;
    font-family: ShellFont, Arial, sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
}

.vi-about-theme-body li::marker {
    color: var(--nec-cyan);
}

.vi-about-cta {
    margin-top: 48px;
    min-height: 208px;
    padding: 44px 32px 32px;
    border-radius: 8px;
    background: var(--nec-dark-blue) url(../images/ui/vi-about-cta-bg.png) no-repeat center;
    background-size: cover;
}

.vi-about-cta h3 {
    margin: 0 0 24px;
    color: var(--nec-white);
    font-size: 20px;
    font-weight: 500;
}

.vi-about-cta p {
    max-width: 576px;
    margin: 0;
    color: var(--nec-cyan);
}

.vi-about-winners a {
    color: var(--nec-blue);
    font-size: 14px;
}

/* Partners overview: consistent rhythm between copy, links and sections. */
body.page-id-25 .nec-partner-section {
    margin: 0;
    padding: 4rem 0 0;
}

body.page-id-25 .nec-partner-section + .nec-partner-section {
    margin-top: 5.6rem;
    padding-top: 5.6rem;
    border-top: 1px solid var(--nec-border);
}

body.page-id-25 .nec-partner-section h2 {
    margin: 4.8rem 0 2.4rem;
    scroll-margin-top: 18rem;
}

body.page-id-25 .nec-partner-section h2:first-child,
body.page-id-25 .nec-partner-section .lead + h2 {
    margin-top: 3.2rem;
}

body.page-id-25 .nec-partner-section > p {
    margin: 0 0 2rem;
}

body.page-id-25 .nec-partner-section .nec-partner-link {
    margin: 3.2rem 0 0;
}

body.page-id-25 .nec-partner-section .nec-partner-link + h2 {
    margin-top: 5.6rem;
}

body.page-id-25 .nec-partner-section blockquote {
    margin: 3.2rem 0;
    font-size: inherit;
    line-height: inherit;
}

@media (max-width: 767.98px) {
    body.page-id-25 .nec-partner-section + .nec-partner-section {
        margin-top: 4rem;
        padding-top: 4rem;
    }

    body.page-id-25 .nec-partner-section .nec-partner-link + h2 {
        margin-top: 4.8rem;
    }
}

/* Participants typography from the component spec. */
.participant-name {
    text-transform: uppercase;
}

.participant-winner .participant-location,
.participant-runner-up .participant-location {
    color: var(--nec-white);
}

/* One continuous Figma footer artwork, shared by every public page. */
.vi-site-footer {
    min-height: 683px;
    background: var(--nec-white);
}

.vi-site-footer .partners {
    padding: 64px 0 0;
    background: transparent;
}

.vi-site-footer .partners .component-header {
    margin-bottom: 20px;
    text-align: center;
}

.vi-site-footer .partners .component-header h2 {
    font-size: 24px;
}

.vi-site-footer .partners .component-header.partners-heading {
    margin: 0;
}

.vi-site-footer .partners .partners-heading h2 {
    margin: 0;
    white-space: nowrap;
}

.partners-rows {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-direction: column;
}

.partners-list,
.partners-list-row-1,
.partners-list-row-2 {
    display: flex;
    width: 848px;
    max-width: 100%;
    min-height: 80px;
    margin: 0 auto;
    padding: 0;
    align-items: center;
    justify-content: center;
    gap: 88px;
}

.partners-list-row-1 li,
.partners-list-row-2 li,
.partners-list-row-1 li:nth-child(n),
.partners-list-row-2 li:nth-child(n) {
    width: auto;
    height: 64px;
    margin: 0;
}

.partners-list-row-1 li:nth-child(1) { width: 167px; }
.partners-list-row-1 li:nth-child(2) { width: 212px; }
.partners-list-row-2 li:nth-child(1) { width: 145px; height: 48px; }
.partners-list-row-2 li:nth-child(2) { width: 183px; height: 32px; }
.partners-list-row-2 li:nth-child(3) { width: 185px; height: 25px; }
.partners-list-row-2 li:nth-child(4) { width: 125px; height: 25px; }

.vi-partner-wordmark {
    display: block;
    color: var(--nec-purple);
    font-size: 1.7rem;
    line-height: 1.05;
    text-align: center;
    text-transform: uppercase;
}

.vi-partner-wordmark strong {
    color: var(--nec-dark-blue);
    font-size: 2.1rem;
}

.vi-home-event-edition,
.vi-about-theme:nth-of-type(even) header span {
    color: var(--nec-purple);
}

.motives-card.vi-theme-card:nth-child(even) {
    border-top: 4px solid var(--nec-purple);
}

.partners-list-row-1 img,
.partners-list-row-2 img {
    width: 100%;
    height: 100%;
    max-height: none !important;
    object-fit: contain;
}

.vi-site-footer .main-footer {
    min-height: 176px;
    padding: 40px 0;
    background: transparent;
}

.vi-site-footer .main-footer .component-container {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-direction: column;
}

.vi-site-footer .social-heading {
    margin: 0;
    color: var(--nec-blue);
    font-size: 20px;
    line-height: 1.2;
}

.vi-site-footer .social-icons {
    width: 32px;
    min-width: 32px;
    margin: -40px 0 0 112px;
}

.vi-site-footer .social-icon {
    margin: 0;
}

.vi-back-to-top {
    display: flex;
    width: 32px;
    height: 32px;
    margin-top: 16px;
    border-radius: 50%;
    color: var(--nec-blue);
    align-items: center;
    justify-content: center;
}

@media (max-width: 991.98px) {
    .vi-primary-nav { display: none; }

    .jumbotron.vi-home-hero {
        min-height: 760px;
        height: auto;
        padding-top: 120px;
        overflow: hidden;
    }

    .vi-home-hero .component-content {
        min-height: 640px;
        height: auto;
    }

    .vi-home-hero .component-content h2,
    .vi-home-hero .component-content p {
        white-space: normal;
    }

    .vi-home-event-card { display: none; }

    .home-intro .component-content {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .vi-home-intro-card {
        width: 100%;
        margin-top: 0;
    }
}

@media (max-width: 767.98px) {
    .vi-home-hero .component-content h2 { font-size: 48px; }
    .vi-home-hero .component-content p { margin-bottom: 24px; font-size: 20px; }
    .home-intro { padding: 64px 0; }
    .home-intro .component-content { gap: 32px; }
    .home-intro .component-content h2 { font-size: 36px; }
    .vi-about-theme-body { padding-left: 0; }
    .vi-site-footer { min-height: 600px; background-size: 850px 850px; }
    .partners-list-row-1,
    .partners-list-row-2 { gap: 24px; flex-wrap: wrap; }
    .partners-list-row-1 li:nth-child(n),
    .partners-list-row-2 li:nth-child(n) { width: calc(50% - 20px); height: 48px; }
    .vi-site-footer .social-icons { margin-left: 112px; }
}

/* ================================================================
 * Page compositions from the Figma Home, About and Participants nodes
 * ================================================================ */

.vi-eyebrow {
    color: var(--nec-magenta);
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
}

/* Home: hero */
.jumbotron.vi-home-hero {
    min-height: 900px;
    margin-bottom: 0;
    padding-top: 174px;
    overflow: hidden;
    background: var(--nec-white);
    color: var(--nec-dark-blue);
    text-align: left;
}

.vi-home-hero .component-container {
    overflow: visible;
}

.vi-home-hero .component-content {
    display: grid;
    grid-template-columns: minmax(360px, 0.8fr) minmax(520px, 1.2fr);
    align-items: center;
    gap: 4rem;
    min-height: 720px;
    padding: 3rem 0 5rem;
}

.vi-home-hero-copy {
    position: relative;
    z-index: 2;
    padding-left: 2.4rem;
}

.vi-home-hero .component-content h2 {
    margin: 1rem 0 0;
    color: var(--nec-dark-blue);
    font-size: clamp(4.8rem, 5vw, 7.2rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.08;
}

.vi-home-hero .component-content p {
    margin: 0.8rem 0 2.4rem;
    color: var(--nec-dark-blue);
    font-size: 2rem;
    line-height: 1.4;
}

.vi-home-hero-art {
    position: relative;
    align-self: stretch;
}

.vi-home-hero-art img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(780px, 68vw);
    max-width: none;
    transform: translate(-46%, -50%);
}

/* Home: intro */
.home-intro {
    margin-bottom: 0;
    padding: 8rem 0;
    background: var(--nec-cyan-soft);
}

.home-intro .component-container {
    position: relative;
}

.home-intro .component-content {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
    gap: 6.4rem;
    width: auto;
    padding: 0;
}

.home-intro .component-content h2 {
    width: auto;
    margin-bottom: 3.2rem;
    color: var(--nec-dark-blue);
    font-size: clamp(3.2rem, 4vw, 4.8rem);
    letter-spacing: -0.02em;
}

.vi-home-intro-copy p {
    color: var(--nec-dark-blue);
}

.vi-home-intro-card {
    align-self: end;
    margin-top: 15rem;
    padding: 3.2rem;
    border-radius: var(--nec-radius);
    background: var(--nec-dark-blue) url(../images/ui/vi-about-cta-bg.png) no-repeat center;
    background-size: cover;
    color: var(--nec-cyan);
}

.vi-home-intro-card h3 {
    margin: 1.2rem 0 1.6rem;
    color: var(--nec-white);
    font-size: 2.4rem;
}

.vi-home-intro-card p {
    margin: 0;
    color: var(--nec-cyan);
}

body.home .scheduler {
    z-index: 8;
    right: 1.5rem;
    margin-top: -23rem;
}

.scheduler-container {
    overflow: hidden;
    border-radius: var(--nec-radius);
    background: var(--nec-dark-blue);
    box-shadow: 0 16px 38px rgba(0, 65, 145, 0.22);
}

.scheduler-first-item {
    background: var(--nec-magenta);
}

.scheduler-date {
    background: var(--nec-magenta);
}

.scheduler-first-item .scheduler-date {
    background: var(--nec-dark-blue);
}

.scheduler-upcoming h3 {
    border-color: var(--nec-magenta);
    background: transparent;
}

.scheduler-item::after {
    background: var(--nec-magenta);
}

/* Home: 2026 themes */
.motives.vi-themes {
    min-height: 1052px;
    margin-bottom: 0;
    padding: 10rem 0;
    background: var(--nec-dark-blue) url(../images/ui/vi-home-themes-bg.png) no-repeat center;
    background-size: cover;
}

.vi-themes .component-content {
    max-width: 1116px;
    margin: 0 auto;
}

.vi-themes-intro {
    max-width: 72rem;
    margin-bottom: 3.4rem;
}

.vi-themes-intro .vi-eyebrow {
    color: var(--nec-cyan);
}

.vi-themes .vi-themes-intro h2 {
    margin: 0.8rem 0 1.6rem;
    color: var(--nec-white);
    font-size: 4.8rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.vi-themes-intro > p {
    color: var(--nec-cyan);
}

.motives-cards.vi-theme-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3.2rem 1.8rem;
    width: 100%;
    margin: 0;
}

.motives-card.vi-theme-card {
    position: relative;
    display: flex;
    width: auto;
    min-height: 29rem;
    margin: 0;
    padding: 1.6rem 2.4rem 4.8rem;
    flex-direction: column;
    border: 0;
    border-left: 4px solid var(--nec-magenta);
    border-radius: 0;
    background: var(--nec-white);
    color: var(--nec-dark-blue);
    box-shadow: none;
}

.vi-theme-icon {
    width: 6.4rem;
    height: 6.4rem;
    object-fit: contain;
}

.motives-card.vi-theme-card h3 {
    margin: 1.2rem 0;
    color: var(--nec-dark-blue);
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.4;
}

.motives-card.vi-theme-card p {
    margin: 0;
    color: var(--nec-dark-blue);
    font-size: 1.6rem;
    line-height: 1.4;
}

.vi-card-arrow {
    position: absolute;
    bottom: 1.6rem;
    left: 2.4rem;
    color: var(--nec-blue);
    font-size: 2rem;
}

.motives-card.vi-theme-card-link {
    justify-content: center;
    border-left: 0;
    background: var(--nec-magenta);
    color: var(--nec-white);
}

.vi-theme-card-link strong {
    max-width: 28rem;
    color: var(--nec-white);
    font-size: 1.6rem;
    line-height: 1.4;
}

.vi-theme-card-link .vi-card-arrow {
    color: var(--nec-white);
}

/* Home: testimonials */
.testimonials {
    margin-bottom: 0;
    background: var(--nec-cyan) url(../images/ui/vi-testimonials-bg.png) no-repeat center;
    background-size: cover;
    color: var(--nec-dark-blue);
}

.testimonials blockquote,
.testimonials figcaption {
    color: var(--nec-dark-blue);
}

.testimonials .swiper-button-next,
.testimonials .swiper-button-prev {
    width: 4rem;
    height: 4rem;
    border: 1px solid var(--nec-dark-blue);
    border-radius: 50%;
    background-image: url(../images/ui/arrow.svg);
    background-size: 2rem;
}

/* Shared editorial page frame */
body:not(.home) .top-visual {
    margin-bottom: 0;
}

body:not(.home) .page-content {
    margin-top: 0;
    padding: 8rem 0;
}

body:not(.home) .page-content .component-content {
    display: grid;
    grid-template-columns: 20rem minmax(0, 84.8rem);
    gap: 3.2rem;
    justify-content: center;
}

body:not(.home) .page-content-section-1 {
    width: 20rem;
}

body:not(.home) .page-content-section-2 {
    width: min(84.8rem, 100%);
}

body:not(.home) .page-content-section-3 {
    display: none;
}

body:not(.home) .page-content .hentry,
body:not(.home) .page-content .page {
    margin: 0;
}

body:not(.home) .page-content .hentry::before,
body:not(.home) .page-content .page::before {
    display: none;
}

.subnav {
    border-color: var(--nec-magenta);
}

.subnav li a {
    color: var(--nec-blue);
}

.subnav li a:hover,
.subnav li.current_page_item > a,
.subnav li.current_page_ancestor > a {
    color: var(--nec-dark-blue);
}

.subnav li.current_page_item > a {
    font-weight: 700;
}

/* About page */
body.page-id-14 .main-header {
    position: absolute;
    top: 0;
    left: 0;
}

body.page-id-14 .top-visual .component-container {
    width: 100%;
    max-width: none;
    padding: 0;
}

body.page-id-14 .top-visual figure,
body.page-id-14 .top-visual figure.height-default {
    min-height: 62rem;
    padding-bottom: 34.78%;
    border-radius: 0;
    background: var(--nec-white) url(../images/ui/vi-about-hero-figma.png) no-repeat center;
    background-size: cover;
}

body.page-id-14 .top-visual figure > img {
    opacity: 0;
}

body.page-id-14 .top-visual figure::after {
    position: absolute;
    inset: 0;
    content: "";
    background: transparent;
}

body.page-id-14 .page-content {
    padding-top: 48px;
}

body.page-id-14 .entry-content > h1 {
    margin-bottom: 1.6rem;
    color: var(--nec-dark-blue);
    font-size: 4.8rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: none;
}

body.page-id-14 .entry-content > h1 + p {
    color: var(--nec-blue);
    font-size: 2rem;
    line-height: 1.4;
}

body.page-id-14 .entry-content > .well {
    margin: 3.2rem 0;
    padding: 2.4rem;
    border: 0;
    border-left: 4px solid var(--nec-magenta);
    border-radius: var(--nec-radius);
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
    font-weight: 700;
}

body.page-id-14 .entry-content > h2 {
    position: relative;
    margin: 4.8rem 0 2.4rem;
    padding-left: 2rem;
    border-left: 4px solid var(--nec-magenta);
    color: var(--nec-dark-blue);
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: 0;
}

body.page-id-14 .entry-content > h3 {
    margin: 4rem 0 1.6rem;
    padding-top: 3.2rem;
    border-top: 1px solid var(--nec-border);
    color: var(--nec-dark-blue);
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: 0;
}

body.page-id-14 .entry-content > h3::first-letter {
    color: var(--nec-magenta);
    font-size: 3.2rem;
}

body.page-id-14 .entry-content > ul {
    padding: 0 0 0 2rem;
    color: #364153;
    font-size: 1.4rem;
}

body.page-id-14 .entry-content > h2:nth-of-type(2) {
    margin-bottom: 0;
    padding: 4.4rem 3.2rem 0;
    border: 0;
    border-radius: var(--nec-radius) var(--nec-radius) 0 0;
    background: var(--nec-dark-blue) url(../images/ui/vi-about-cta-bg.png) no-repeat center;
    background-size: cover;
    color: var(--nec-white);
}

body.page-id-14 .entry-content > h2:nth-of-type(2) + p {
    margin-top: 0;
    padding: 1.6rem 3.2rem 4.4rem;
    border-radius: 0 0 var(--nec-radius) var(--nec-radius);
    background: var(--nec-dark-blue) url(../images/ui/vi-about-cta-bg.png) no-repeat center bottom;
    background-size: cover;
    color: var(--nec-cyan);
}

/* Participants and similarly composed list pages */
body.page-id-16 .main-header,
body.page-template-page-no-top-visual:not(.finalist-logged-in) .main-header {
    position: absolute;
    top: 0;
    left: 0;
}

body.page-id-16 #content,
body.page-template-page-no-top-visual:not(.finalist-logged-in) #content {
    position: relative;
    padding-top: 56rem;
}

body.page-id-16 #content::before,
body.page-template-page-no-top-visual:not(.finalist-logged-in) #content::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 62rem;
    content: "";
    background: var(--nec-white) url(../images/ui/vi-participants-hero.png) no-repeat center 45%;
    background-size: min(1500px, 100vw) auto;
    pointer-events: none;
}

body.page-id-16 .page-content,
body.page-template-page-no-top-visual:not(.finalist-logged-in) .page-content {
    position: relative;
    z-index: 1;
    background: var(--nec-white);
}

body.page-id-16 .entry-content > h1 {
    margin-bottom: 1.6rem;
    color: var(--nec-dark-blue);
    font-size: 4.8rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: none;
}

body.page-id-16 .entry-content > h1 + p {
    color: var(--nec-blue);
}

.participants {
    margin-top: 4.8rem;
}

.participants-intro {
    margin: 4.8rem 0 2.4rem;
    padding-left: 1.6rem;
    border-left: 4px solid var(--nec-magenta);
}

.participants-intro h2 {
    margin: 0;
    color: var(--nec-dark-blue);
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: 0;
}

.participants-list {
    display: grid;
    gap: 1.6rem;
    margin: 0 0 4rem;
}

.participant {
    margin: 0;
    padding: 2.4rem;
    border: 1px solid var(--nec-border);
    border-radius: 0;
    background: var(--nec-white);
}

.participant-winner,
.participant-runner-up {
    border-radius: var(--nec-radius);
    background: var(--nec-cyan);
}

.participant-header {
    display: flex;
    min-height: 0;
    align-items: center;
    gap: 1.2rem;
}

.participant-logo {
    width: auto;
    padding: 0;
}

.participant-logo figure {
    width: 4rem;
    height: 4rem;
    margin: 0;
    border-radius: 50%;
    background: rgba(0, 65, 145, 0.1);
    color: var(--nec-dark-blue);
}

.participant-logo figure span {
    font-size: 1.4rem;
    font-weight: 700;
}

.participant-winner .participant-logo figure,
.participant-runner-up .participant-logo figure {
    width: 9.3rem;
    height: 9.3rem;
    background: var(--nec-dark-blue);
    color: var(--nec-cyan);
}

.participant-winner .participant-logo figure::after {
    display: none;
}

.participant-info {
    min-width: 0;
    padding: 0;
    flex: 1;
}

.participant-name,
.participant-country,
.participant-founders {
    width: auto;
    padding: 0;
    text-align: left;
}

.participant-name {
    margin: 0;
    color: var(--nec-dark-blue);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.4;
    text-transform: uppercase;
}

.participant-country {
    color: #99a1af;
    font-size: 1.4rem;
    font-style: normal;
}

.participant-winner .participant-country,
.participant-runner-up .participant-country {
    color: var(--nec-white);
}

.participant-founders:empty {
    display: none;
}

.participant-actions {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    margin-left: auto;
}

.participant-badge {
    color: var(--nec-white);
    font-size: 1.4rem;
    font-weight: 700;
}

.participant-actions .button {
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0.7rem 2rem 0.9rem;
    border-width: 1px;
    font-size: 1.4rem;
}

.participant-winner .participant-actions .button,
.participant-runner-up .participant-actions .button {
    border-color: var(--nec-blue);
    background: var(--nec-blue);
    color: var(--nec-white);
}

.participant-intro {
    padding: 1.6rem 0 0;
}

.participant-intro p {
    margin: 0;
    color: #4a5565;
    font-size: 1.4rem;
    line-height: 1.4;
}

.participant-winner .participant-intro p,
.participant-runner-up .participant-intro p {
    color: var(--nec-dark-blue);
}

/* Partner rows as shown in Figma */
.partners-list {
    max-width: 84.8rem;
    margin: 0 auto;
}

.partners-list li,
.partners-list li.logo-rockstart,
.partners-list li.logo-shell,
.partners-list li.logo-unknown,
.partners-list li.logo-yesdelft {
    width: calc(25% - 4.2rem);
}

.partners-list li:nth-child(1),
.partners-list li:nth-child(2) {
    width: calc(40% - 4.4rem);
}

.partners-list li:nth-child(3) {
    width: 10rem;
}

.partners-list li:nth-child(1) img,
.partners-list li:nth-child(2) img {
    max-height: 6.4rem;
}

@media (max-width: 1179.98px) {
    body:not(.home) .page-content .component-content {
        display: block;
    }

    body:not(.home) .page-content-section-1,
    body:not(.home) .page-content-section-2 {
        width: 100%;
    }

    .subnav-header {
        border-color: var(--nec-magenta);
    }
}

@media (max-width: 991.98px) {
    .jumbotron.vi-home-hero {
        min-height: 760px;
        padding-top: 120px;
    }

    .vi-home-hero .component-content {
        grid-template-columns: minmax(280px, 0.9fr) minmax(360px, 1.1fr);
        min-height: 640px;
    }

    .vi-home-hero-art img {
        width: 620px;
    }

    .home-intro .component-content {
        grid-template-columns: 1fr;
    }

    .vi-home-intro-card {
        margin-top: 2rem;
    }

    body.home .scheduler {
        position: relative;
        top: auto;
        right: auto;
        width: 100%;
        max-width: 37rem;
        margin: -18rem auto 6rem;
        transform: none;
    }

    .motives-cards.vi-theme-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.page-id-14 .top-visual figure,
    body.page-id-14 .top-visual figure.height-default {
        min-height: 42rem;
    }
}

@media (max-width: 767.98px) {
    .jumbotron.vi-home-hero {
        min-height: 880px;
    }

    .vi-home-hero .component-content {
        display: flex;
        min-height: 760px;
        padding-top: 4rem;
        flex-direction: column;
        text-align: center;
    }

    .vi-home-hero-copy {
        padding-left: 0;
    }

    .vi-home-hero-art {
        width: 100%;
        min-height: 44rem;
    }

    .vi-home-hero-art img {
        top: 0;
        width: min(520px, 125vw);
        transform: translate(-50%, 0);
    }

    .motives.vi-themes {
        padding: 8rem 0;
    }

    .vi-themes .vi-themes-intro h2 {
        font-size: 3.6rem;
    }

    .motives-cards.vi-theme-grid {
        grid-template-columns: 1fr;
    }

    .motives-card.vi-theme-card {
        min-height: 24rem;
    }

    body.page-id-16 #content,
    body.page-template-page-no-top-visual:not(.finalist-logged-in) #content {
        padding-top: 34rem;
    }

    body.page-id-16 #content::before,
    body.page-template-page-no-top-visual:not(.finalist-logged-in) #content::before {
        height: 38rem;
        background-size: 70rem auto;
    }

    .participant-header {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .participant-actions {
        width: 100%;
        margin: 1.2rem 0 0;
        justify-content: flex-end;
    }

    .participant-winner .participant-logo figure,
    .participant-runner-up .participant-logo figure {
        width: 6.4rem;
        height: 6.4rem;
    }

    .partners-list li,
    .partners-list li:nth-child(1),
    .partners-list li:nth-child(2),
    .partners-list li:nth-child(3) {
        width: calc(50% - 2.8rem);
    }
}

@media (max-width: 575.98px) {
    .jumbotron.vi-home-hero {
        min-height: 790px;
    }

    .vi-home-hero .component-content {
        min-height: 690px;
    }

    .vi-home-hero .component-content h2 {
        font-size: 4.8rem;
    }

    .vi-home-hero-art {
        min-height: 36rem;
    }

    body.home .scheduler {
        margin-top: -10rem;
    }

    body.page-id-14 .top-visual figure,
    body.page-id-14 .top-visual figure.height-default {
        min-height: 34rem;
        padding-bottom: 78%;
    }

    body.page-id-14 .entry-content > h1,
    body.page-id-16 .entry-content > h1 {
        font-size: 4rem;
    }

    body.page-id-14 .entry-content > h2:nth-of-type(2),
    body.page-id-14 .entry-content > h2:nth-of-type(2) + p {
        padding-right: 2.4rem;
        padding-left: 2.4rem;
    }

    .participant {
        padding: 2rem;
    }
}

/* Figma page locks: exact exported artwork and vertical rhythm. */
@media (min-width: 768px) {
    body.page-id-16 #content {
        padding-top: 498px;
    }

    body.page-id-16 #content::before {
        height: 498px;
        background-image: url(../images/ui/vi-participants-hero-figma.png);
        background-position: center top;
        background-size: cover;
    }
}

body.page-id-16 .entry-content::before {
    display: block;
    margin: 0;
    color: var(--nec-magenta);
    content: "2025 Edition";
    font-family: "ShellHeavy", Arial, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
}

body.page-id-16 .entry-content > h1:first-child {
    margin-top: 8px;
}

body.page-id-16 .participants {
    margin-top: 0;
}

body.page-id-16 .participants-intro {
    margin-top: 40px;
}

/* Final cascade locks: keep the fidelity values after legacy composition rules. */
.jumbotron.vi-home-hero {
    min-height: 700px;
    height: 700px;
    padding-top: 174px;
    overflow: visible;
}

.vi-home-hero .component-content {
    min-height: 526px;
    height: 526px;
    padding: 0;
}

.vi-home-hero-copy {
    z-index: 3;
    padding-left: 0;
}

.vi-home-hero .component-content h2 {
    max-width: 560px;
    margin-top: 8px;
    font-size: clamp(48px, 4.2vw, 72px);
    line-height: 1.2;
    letter-spacing: -2.16px;
}

.vi-home-hero .component-content p {
    margin: 0 0 40px;
    font-size: 32px;
    line-height: 1.2;
}

.vi-home-hero-art img {
    top: 17px;
    left: 137px;
    width: 989px;
    transform: none;
}

@media (min-width: 992px) and (max-width: 1599.98px) {
    .vi-home-hero-art img {
        left: 20px;
        width: min(720px, 58vw);
    }
}

/* Figma fidelity: flat public submenu, without the legacy card treatment. */
body:not(.home):not(.finalist-logged-in) .subnav {
    width: 208px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body:not(.home):not(.finalist-logged-in) .subnav ul,
body:not(.home):not(.finalist-logged-in) .subnav ul.extra-padding {
    display: flex;
    margin: 0;
    padding: 0;
    flex-direction: column;
    gap: 4px;
}

body:not(.home):not(.finalist-logged-in) .subnav li,
body:not(.home):not(.finalist-logged-in) .subnav li + li {
    margin: 0;
    padding: 0;
}

body:not(.home):not(.finalist-logged-in) .subnav li a,
body:not(.home):not(.finalist-logged-in) .subnav li ul li a {
    display: flex;
    min-height: 36px;
    padding: 8px 12px;
    border: 0;
    border-left: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: #99a1af;
    font-family: ShellFont, Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    align-items: center;
}

body:not(.home):not(.finalist-logged-in) .subnav li a:hover,
body:not(.home):not(.finalist-logged-in) .subnav li.current_page_item > a,
body:not(.home):not(.finalist-logged-in) .subnav li.current_page_parent > a,
body:not(.home):not(.finalist-logged-in) .subnav li.current_page_ancestor > a,
body:not(.home):not(.finalist-logged-in) .subnav li ul li.current_page_item > a {
    border-left-color: var(--nec-blue);
    background: transparent;
    color: var(--nec-blue);
}

body:not(.home):not(.finalist-logged-in) .subnav li ul {
    margin: 4px 0 0;
    padding: 0;
    border: 0;
}

/* Figma fidelity: page labels, leads and section subtitles. */
.vi-about-content > .vi-about-eyebrow {
    margin: 0 0 8px;
    color: var(--nec-magenta) !important;
    font-family: ShellFont, Arial, sans-serif;
    font-size: 12px !important;
    font-weight: 500;
    letter-spacing: 1.2px;
    line-height: 1.4 !important;
}

.vi-about-content > h1 {
    margin: 0 0 8px;
    color: var(--nec-dark-blue);
    font-family: ShellFont, Arial, sans-serif;
    font-size: 48px;
    font-weight: 700;
    letter-spacing: -.96px;
    line-height: 1.2;
}

.vi-about-content > .vi-about-lead {
    margin: 0;
    color: var(--nec-blue) !important;
    font-family: ShellFont, Arial, sans-serif;
    font-size: 20px !important;
    font-weight: 500;
    line-height: 1.2 !important;
}

.vi-about-section h2,
.vi-about-winners h2 {
    color: var(--nec-dark-blue);
    font-family: ShellFont, Arial, sans-serif;
    font-size: 24px;
    font-weight: 500;
    letter-spacing: -.48px;
    line-height: 1.2;
}

.vi-about-theme:nth-of-type(3) h3 {
    margin-top: 0;
    font-size: 24px;
    letter-spacing: -.48px;
}

body.page-id-16 .entry-content::before {
    font-family: ShellFont, Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}

body.page-id-16 .entry-content > h1:first-child {
    margin: 8px 0 0;
    color: var(--nec-dark-blue);
    font-family: ShellFont, Arial, sans-serif;
    font-size: 48px;
    font-weight: 700;
    letter-spacing: -.96px;
    line-height: 1.2;
}

body.page-id-16 .entry-content > h1:first-child + p {
    max-width: 672px;
    margin: 16px 0 0;
    color: #4a5565;
    font-family: ShellFont, Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}

body.page-id-16 .entry-content > h1:first-child + p a {
    color: var(--nec-blue);
}

body.page-id-16 .participants-intro {
    display: flex;
    min-height: 32px;
    margin: 48px 0 24px;
    padding-left: 16px;
    border-left: 4px solid var(--nec-blue);
    align-items: center;
}

body.page-id-16 .participants-intro h2 {
    margin: 0;
    color: var(--nec-blue);
    font-family: ShellFont, Arial, sans-serif;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.2;
}

body.page-id-16 .participants > .participants-intro:first-child {
    margin-top: 40px;
    border-left-color: var(--nec-magenta);
}

body.page-id-16 .participants > .participants-intro:first-child h2 {
    color: var(--nec-magenta);
}

/* Remaining shared legacy components ------------------------------------ */
.blog-list .component-header h1,
.blog-list .component-header h2,
.alumni-list .component-header h1,
.text-content .entry-content > h1:first-child {
    margin: 0;
    color: var(--nec-dark-blue) !important;
    font-size: clamp(4rem, 5vw, 6.4rem);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: 1.05;
    text-transform: none;
}

.blog-list .component-header > p {
    margin-bottom: 1.2rem;
    color: var(--nec-blue);
}

body.blog .blog-list,
body.archive .blog-list,
.alumni-list {
    padding: 7.2rem 0 9.6rem;
    background: var(--nec-white);
}

body.blog .blog-list .component-container,
body.archive .blog-list .component-container,
.alumni-list .component-container {
    width: min(1152px, calc(100% - 48px));
    max-width: 1152px;
}

body.blog .blog-list .component-header,
body.archive .blog-list .component-header,
.alumni-list .component-header {
    margin-bottom: 4rem;
}

body.blog .blog-list .tile,
body.archive .blog-list .tile,
.alumni-list .tile {
    overflow: hidden;
    border: 1px solid rgba(0, 131, 200, .1);
    border-radius: 1.6rem;
    background: var(--nec-white);
    box-shadow: 0 12px 30px rgba(0, 65, 145, .08);
}

body.blog .blog-list .tile > a,
body.archive .blog-list .tile > a,
.alumni-list .tile > a {
    height: 100%;
}

body.blog .blog-list .tile-title,
body.archive .blog-list .tile-title,
.alumni-list .tile-title {
    padding-right: 2rem;
    padding-left: 2rem;
}

body.blog .blog-list .tile-title h3,
body.archive .blog-list .tile-title h3,
.alumni-list .tile-title h3 {
    color: var(--nec-dark-blue);
}

body.blog .blog-list .tile-cat,
body.archive .blog-list .tile-cat,
.alumni-list .tile-cat {
    width: max-content;
    margin-left: 2rem;
    padding: .7rem 1.6rem .8rem;
    border-radius: var(--nec-pill);
    background: var(--nec-cyan);
    color: var(--nec-dark-blue);
    font-weight: 700;
}

body.blog .blog-list .tile > a::after,
body.archive .blog-list .tile > a::after,
.alumni-list .tile > a::after {
    right: 2rem;
    bottom: 0;
    left: 2rem;
    height: 2px;
    background: var(--nec-magenta);
}

.alumni-list .tile-small {
    padding-right: 2rem;
    padding-bottom: 2rem;
    padding-left: 2rem;
    color: var(--nec-blue);
}

/* Public page navigation */
body:not(.home):not(.finalist-logged-in) .subnav {
    border: 1px solid rgba(0, 131, 200, .1);
    border-radius: 1.6rem;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 10px 28px rgba(0, 65, 145, .06);
}

body:not(.home):not(.finalist-logged-in) .subnav ul,
body:not(.home):not(.finalist-logged-in) .subnav ul.extra-padding {
    margin: 0;
    padding: 1.4rem;
}

body:not(.home):not(.finalist-logged-in) .subnav li {
    padding: 0;
}

body:not(.home):not(.finalist-logged-in) .subnav li + li {
    margin-top: .3rem;
}

body:not(.home):not(.finalist-logged-in) .subnav li a {
    display: block;
    padding: .9rem 1.1rem;
    border-radius: .9rem;
    color: var(--nec-blue);
    line-height: 1.25;
}

body:not(.home):not(.finalist-logged-in) .subnav li a:hover {
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
}

body:not(.home):not(.finalist-logged-in) .subnav li.current_page_item > a,
body:not(.home):not(.finalist-logged-in) .subnav li.current_page_parent > a,
body:not(.home):not(.finalist-logged-in) .subnav li.current_page_ancestor > a {
    background: var(--nec-dark-blue);
    color: var(--nec-white);
}

body:not(.home):not(.finalist-logged-in) .subnav li ul {
    margin: .4rem 0 .8rem .8rem;
    padding: 0 0 0 .7rem;
    border-left-color: var(--nec-cyan);
}

body:not(.home):not(.finalist-logged-in) .subnav li ul li a,
body:not(.home):not(.finalist-logged-in) .subnav li ul li.current_page_item > a {
    background: transparent;
    color: var(--nec-blue);
}

body.single-post:not(.finalist-logged-in) .subnav,
body.single-alumni:not(.finalist-logged-in) .subnav {
    width: max-content;
    min-width: 14rem;
}

/* Content wells and disclosure controls */
.entry-content .lead {
    color: var(--nec-dark-blue);
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1.4;
}

.entry-content table {
    width: 100%;
    margin: 3.2rem 0;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0;
    overflow: hidden;
    border-radius: 1.2rem;
    box-shadow: 0 0 0 1px rgba(0, 131, 200, .16);
}

.entry-content table caption {
    padding: 1.4rem 1.6rem;
    border-radius: 1.2rem 1.2rem 0 0;
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
    font-size: 2.4rem;
    font-weight: 700;
    text-align: left;
}

.entry-content table th,
.entry-content table td {
    padding: 1.4rem 1.6rem;
    border: 0 !important;
    border-bottom: 1px solid rgba(0, 131, 200, .13) !important;
    background: var(--nec-white) !important;
    color: var(--nec-black);
    text-align: left;
    vertical-align: top;
}

.entry-content table tr:nth-child(even) th,
.entry-content table tr:nth-child(even) td {
    background: rgba(115, 210, 255, .09) !important;
}

.entry-content table tr:last-child th,
.entry-content table tr:last-child td {
    border-bottom: 0 !important;
}

.entry-content > blockquote,
.content-block blockquote {
    margin: 3.2rem 0;
    padding: 2.8rem 3.2rem;
    border: 0;
    border-left: 5px solid var(--nec-magenta);
    border-radius: 0 1.4rem 1.4rem 0;
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
}

.content-block--well,
.well {
    padding: 2.8rem;
    border: 1px solid rgba(0, 131, 200, .14);
    border-left: 5px solid var(--nec-cyan);
    border-radius: 1.4rem;
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
}

.content-block--well.border,
.well.border,
.content-block--well.border-top,
.well.border-top,
.content-block--well.border-right,
.well.border-right,
.content-block--well.border-bottom,
.well.border-bottom,
.content-block--well.border-left,
.well.border-left {
    border-color: rgba(0, 131, 200, .16);
    border-left-color: var(--nec-cyan);
}

.readmore-button {
    top: 0;
    margin-bottom: 3.2rem;
    padding: .8rem 4.2rem 1rem 1.4rem;
    border: 1px solid var(--nec-blue);
    border-radius: var(--nec-pill);
    background: transparent;
    color: var(--nec-blue);
}

.readmore-button > .readmore-button-icon {
    top: 50%;
    right: 1rem;
    background-image: url(../images/ui/caret.svg);
    transform: translateY(-50%);
}

.readmore-button.readmore-open > .readmore-button-icon {
    transform: translateY(-50%) rotate(180deg);
}

.readmore-button:hover,
.readmore-button:focus {
    border-radius: var(--nec-pill);
    background: var(--nec-cyan-soft);
}

/* Timeline */
.timeline {
    border-top: 2px solid var(--nec-dark-blue);
}

.timeline .timeline-item-container,
.timeline .timeline-phase-container {
    border-left-color: var(--nec-dark-blue);
}

.timeline-date span,
.timeline-phase .timeline-date span {
    color: var(--nec-dark-blue);
}

.timeline-item .timeline-date::after {
    border-color: var(--nec-white);
    background: var(--nec-white);
    box-shadow: 0 0 0 2px var(--nec-dark-blue);
    z-index: 3;
}

.timeline-item .timeline-date time {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    padding-right: 3.6rem;
    color: var(--nec-black);
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .timeline .timeline-item,
    .timeline .timeline-phase {
        padding-left: 9.6rem;
    }

    .timeline .timeline-item-container,
    .timeline .timeline-phase .timeline-item-container {
        padding-left: 0;
    }

    .timeline-date {
        width: 9.6rem;
    }

    .timeline-item .timeline-date time {
        padding-right: 2.4rem;
        font-size: 1.1rem;
    }
}

.timeline-phase-heading > * {
    color: var(--nec-blue);
}

.timeline-balloon,
.timeline .timeline-item.current .timeline-balloon {
    border: 1px solid rgba(0, 131, 200, .13);
    border-radius: 1.4rem;
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
    box-shadow: 0 9px 22px rgba(0, 65, 145, .06);
}

.timeline-balloon:hover,
.timeline .timeline-item.current .timeline-balloon:hover {
    background: rgba(115, 210, 255, .24);
}

.timeline-balloon,
.timeline-balloon header > * {
    color: var(--nec-dark-blue);
}

.timeline-balloon header button [data-svg="caret"] path {
    fill: var(--nec-blue);
}

.timeline-balloon header button:focus::after {
    background: var(--nec-blue);
}

.timeline-balloon::before {
    border-color: transparent rgba(115, 210, 255, .15) transparent transparent;
}

.timeline .timeline-item.active .timeline-balloon,
.timeline .timeline-item.init-active .timeline-balloon,
.timeline .timeline-item.current.active .timeline-balloon,
.timeline .timeline-item.current.init-active .timeline-balloon {
    border-color: var(--nec-dark-blue);
    background: var(--nec-dark-blue);
}

.timeline .timeline-item.active .timeline-balloon,
.timeline .timeline-item.active .timeline-balloon header > *,
.timeline .timeline-item.init-active .timeline-balloon,
.timeline .timeline-item.init-active .timeline-balloon header > *,
.timeline .timeline-item.current.active .timeline-balloon,
.timeline .timeline-item.current.active .timeline-balloon header > *,
.timeline .timeline-item.current.init-active .timeline-balloon,
.timeline .timeline-item.current.init-active .timeline-balloon header > * {
    color: var(--nec-white);
}

.timeline .timeline-item.active .timeline-balloon::before,
.timeline .timeline-item.init-active .timeline-balloon::before,
.timeline .timeline-item.current.active .timeline-balloon::before,
.timeline .timeline-item.current.init-active .timeline-balloon::before {
    border-color: transparent var(--nec-dark-blue) transparent transparent;
}

.timeline .timeline-item.current .timeline-date::after {
    background: var(--nec-magenta);
}

.timeline .timeline-item.active .timeline-balloon header button::after,
.timeline .timeline-item.init-active .timeline-balloon header button::after {
    background: var(--nec-blue);
}

/* Alumni */
body.page-template-page-alumni .testimonials {
    border-bottom: 0;
}

body.page-template-page-alumni .alumni-list .component-header h1 {
    color: var(--nec-dark-blue);
}

@media (max-width: 1179.98px) {
    body:not(.home):not(.finalist-logged-in) .subnav {
        border-radius: 0 0 1.4rem 1.4rem;
    }
}

@media (max-width: 767.98px) {
    body.blog .blog-list,
    body.archive .blog-list,
    .alumni-list {
        padding: 5.6rem 0 7.2rem;
    }

    body.blog .blog-list .component-container,
    body.archive .blog-list .component-container,
    .alumni-list .component-container {
        width: calc(100% - 24px);
    }

    .content-block--well,
    .well {
        padding: 2.2rem;
    }

    .entry-content table {
        display: block;
        overflow-x: auto;
    }
}

/* Finalist portal --------------------------------------------------------- */
body.finalist-logged-in {
    background: #f8fcff;
}

body.finalist-logged-in .main-header {
    margin-bottom: 0;
}

body.finalist-logged-in:is(.single-finalistpages, .single-finalsevents, .single-finalistcontacts, .single-jury) .homepage-menu,
body.finalist-logged-in:is(.single-finalistpages, .single-finalsevents, .single-finalistcontacts, .single-jury) .burger-menu-button {
    display: none;
}

body.finalist-logged-in .finalist-header-title {
    position: static;
    display: flex;
    height: auto;
    margin: 0 auto 0 3.2rem;
    align-items: center;
}

body.finalist-logged-in .finalist-header-title a {
    position: relative;
    padding-left: 2.4rem;
    color: var(--nec-dark-blue);
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.finalist-logged-in .finalist-header-title a::before {
    position: absolute;
    top: 50%;
    left: .4rem;
    width: 1.2rem;
    height: 1px;
    background: var(--nec-cyan);
    content: "";
}

body.finalist-logged-in .loggedin-finalist {
    position: static;
    display: flex;
    min-width: 0;
    height: auto;
    margin-left: auto;
    align-items: center;
}

body.finalist-logged-in .loggedin-finalist-icon {
    display: none;
}

body.finalist-logged-in .loggedin-finalist-data {
    position: static;
    display: flex !important;
    width: auto;
    height: auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1 !important;
    align-items: center;
    transform: none !important;
}

body.finalist-logged-in .loggedin-finalist-hi,
body.finalist-logged-in .loggedin-finalist-logout {
    margin: 0;
    padding: 0;
    font-size: 1.5rem;
    line-height: 1.2;
}

body.finalist-logged-in .loggedin-finalist-hi a {
    display: inline-flex;
    min-height: 4rem;
    padding: 0 1.8rem;
    border: 1px solid rgba(0, 65, 145, .12);
    border-radius: var(--nec-pill);
    background: rgba(255, 255, 255, .58);
    color: var(--nec-dark-blue);
    align-items: center;
}

body.finalist-logged-in .loggedin-finalist-logout a {
    display: inline-flex;
    min-height: 4rem;
    padding: 0 1.2rem;
    color: var(--nec-blue);
    align-items: center;
}

body.finalist-logged-in .loggedin-finalist a:hover {
    color: var(--nec-magenta);
}

body.finalist-logged-in .page-content {
    min-height: calc(100vh - 174px);
    margin-top: 0;
    padding: 7.2rem 0 10rem;
    background:
        radial-gradient(circle at 92% 8%, rgba(115, 210, 255, .15), transparent 22rem),
        #f8fcff;
}

body.finalist-logged-in .page-content > .component-container {
    width: min(1280px, calc(100% - 48px));
    max-width: 1280px;
}

body.finalist-logged-in .page-content .component-content {
    display: grid;
    grid-template-columns: 21rem minmax(0, 1fr) 14rem;
    gap: 4rem;
    align-items: start;
}

body.finalist-logged-in .page-content-section-1,
body.finalist-logged-in .page-content-section-2,
body.finalist-logged-in .page-content-section-3 {
    width: auto;
    min-width: 0;
}

body.finalist-logged-in .page-content-section-2 {
    padding: 4.8rem;
    border: 1px solid rgba(0, 131, 200, .09);
    border-radius: 2.4rem;
    background: var(--nec-white);
    box-shadow: 0 18px 50px rgba(0, 65, 145, .08);
}

body.finalist-logged-in .page-content .hentry,
body.finalist-logged-in .page-content .page {
    margin: 0;
}

body.finalist-logged-in .page-content article::before {
    display: none;
}

body.finalist-logged-in .entry-content > h1:first-child,
body.finalist-logged-in .contact-page-details h1 {
    margin: 0 0 3.2rem;
    color: var(--nec-dark-blue);
    font-size: clamp(4.4rem, 5vw, 6.4rem);
    line-height: 1.02;
    text-transform: none;
}

body.finalist-logged-in .entry-content > h2:first-child {
    margin-top: 0;
}

body.finalist-logged-in .entry-content > p:first-of-type {
    font-size: 1.8rem;
}

body.finalist-logged-in article h2,
body.finalist-logged-in article h3,
body.finalist-logged-in article h4 {
    margin-top: 4.8rem;
}

body.finalist-logged-in article h2 {
    font-size: clamp(2.8rem, 3vw, 4rem);
}

body.finalist-logged-in article h3 {
    font-size: clamp(2.2rem, 2.4vw, 3rem);
}

body.finalist-logged-in article blockquote {
    margin: 4rem 0;
    padding: 3.2rem;
    border: 0;
    border-left: 6px solid var(--nec-magenta);
    border-radius: 0 1.6rem 1.6rem 0;
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
    font-size: 2.4rem;
}

/* Portal navigation */
body.finalist-logged-in .subnav-header {
    border-color: var(--nec-cyan);
}

body.finalist-logged-in .subnav {
    border: 1px solid rgba(0, 131, 200, .1);
    border-radius: 1.8rem;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 12px 32px rgba(0, 65, 145, .06);
}

body.finalist-logged-in .subnav ul,
body.finalist-logged-in .subnav ul.extra-padding {
    margin: 0;
    padding: 1.6rem;
}

body.finalist-logged-in .subnav li {
    padding: 0;
    font-size: 1.3rem;
}

body.finalist-logged-in .subnav li + li {
    margin-top: .4rem;
}

body.finalist-logged-in .subnav li a {
    display: block;
    padding: 1rem 1.2rem;
    border-radius: 1rem;
    color: var(--nec-blue);
    line-height: 1.25;
}

body.finalist-logged-in .subnav li a:hover {
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
}

body.finalist-logged-in .subnav li.current_page_item > a,
body.finalist-logged-in .subnav li.current_page_parent > a,
body.finalist-logged-in .subnav li.current_page_ancestor > a {
    background: var(--nec-dark-blue);
    color: var(--nec-white);
}

body.finalist-logged-in .subnav li ul {
    display: none;
    margin: .6rem 0 .8rem .8rem;
    padding: 0 0 0 .8rem;
    border-left: 1px solid var(--nec-cyan);
}

body.finalist-logged-in .subnav li.current_page_item > ul,
body.finalist-logged-in .subnav li.current_page_parent > ul,
body.finalist-logged-in .subnav li.current_page_ancestor > ul {
    display: block;
}

body.finalist-logged-in .subnav li ul li a {
    padding: .8rem 1rem;
    background: transparent;
    color: var(--nec-blue);
    font-size: 1.15rem;
}

body.finalist-logged-in .subnav li ul li.current_page_item > a {
    background: var(--nec-cyan-soft);
    color: var(--nec-dark-blue);
}

body.finalist-logged-in .finalist-dashboard-avatar {
    left: 0;
    width: 12rem;
    height: 12rem;
    margin: 0 auto;
    padding: 0;
    border: 6px solid var(--nec-white);
    box-shadow: 0 10px 32px rgba(0, 65, 145, .14);
}

/* Dashboard cards */
body.finalist-logged-in .finalistpages-dashboard {
    margin-top: 4rem;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widgets-list {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget {
    width: auto;
    margin: 0;
    float: none;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget a {
    position: relative;
    display: flex;
    min-height: 19rem;
    height: 100%;
    padding: 3rem;
    overflow: hidden;
    border: 0;
    border-radius: 1.8rem;
    background-color: var(--nec-dark-blue);
    box-shadow: 0 14px 30px rgba(0, 65, 145, .16);
    flex-direction: column;
    justify-content: flex-end;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n + 2) a {
    background-color: var(--nec-blue);
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n) a {
    background-color: #d9f3ff;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget a::after {
    position: absolute;
    top: -5rem;
    right: -5rem;
    width: 15rem;
    height: 15rem;
    border: 2px solid rgba(115, 210, 255, .42);
    border-radius: 50%;
    content: "";
    transition: transform 180ms ease;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget a:hover {
    background-color: var(--nec-magenta);
    transform: translateY(-3px);
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget a:hover::after {
    transform: scale(1.08);
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget h2 {
    position: relative;
    z-index: 1;
    margin: 0 0 1.2rem;
    padding: 0 0 0 3.6rem;
    color: var(--nec-white);
    font-size: 2.4rem;
    line-height: 1.15;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--nec-white);
    font-size: 1.5rem;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n) h2,
body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n) p {
    color: var(--nec-dark-blue);
}

/* Tables and forms */
body.finalist-logged-in .entry-content table {
    width: 100%;
    margin: 3.2rem 0;
    border: 0;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border-radius: 1.4rem;
    box-shadow: 0 0 0 1px rgba(0, 131, 200, .16);
}

body.finalist-logged-in .entry-content table th,
body.finalist-logged-in .entry-content table td {
    padding: 1.6rem 1.8rem;
    border: 0;
    border-bottom: 1px solid rgba(0, 131, 200, .13);
    text-align: left;
    vertical-align: top;
}

body.finalist-logged-in .entry-content table th,
body.finalist-logged-in .entry-content table tr:first-child td[colspan] {
    background: var(--nec-dark-blue);
    color: var(--nec-white);
}

body.finalist-logged-in .entry-content table tr:nth-child(even) td {
    background: rgba(115, 210, 255, .09);
}

body.finalist-logged-in #upload_pitchdeck label {
    margin: 2.4rem 0 .8rem;
    color: var(--nec-dark-blue);
    font-weight: 700;
}

body.finalist-logged-in #upload_pitchdeck input[type="file"],
body.finalist-logged-in #upload_pitchdeck input[type="text"],
body.finalist-logged-in #upload_pitchdeck textarea {
    min-height: 5.2rem;
    padding: 1.4rem 1.6rem;
    border: 1px solid rgba(0, 131, 200, .35);
    border-radius: 1.2rem;
    background: var(--nec-white);
    color: var(--nec-black);
    font: inherit;
}

body.finalist-logged-in #upload_pitchdeck textarea {
    min-height: 14rem;
}

body.finalist-logged-in #upload_pitchdeck input:focus,
body.finalist-logged-in #upload_pitchdeck textarea:focus {
    border-color: var(--nec-blue);
    box-shadow: 0 0 0 4px rgba(115, 210, 255, .28);
}

/* Documents, pitch decks and event cards */
body.finalist-logged-in .finalist-document,
body.finalist-logged-in .pitchdeck-file,
body.finalist-logged-in .fce-detail-timeslot-block {
    margin: 1.6rem 0;
    padding: 2.2rem 2.4rem;
    border: 1px solid rgba(0, 131, 200, .12);
    border-left: 6px solid var(--nec-cyan);
    border-radius: 1.2rem;
    background: var(--nec-white);
    box-shadow: 0 10px 24px rgba(0, 65, 145, .07);
}

body.finalist-logged-in .finalist-document .uploaddata,
body.finalist-logged-in .pitchdeck-file .uploaddata {
    margin-bottom: .6rem;
    color: var(--nec-dark-blue);
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: .06em;
}

body.finalist-logged-in .finalist-document .document-title,
body.finalist-logged-in .pitchdeck-file .pitchdeck-title {
    margin-bottom: .5rem;
    font-size: 1.8rem;
    font-weight: 700;
}

body.finalist-logged-in .fce-detail-timeslot-block {
    border-top: 1px solid rgba(0, 131, 200, .12);
}

/* Calendar */
body.finalist-logged-in .calendar-download {
    top: -5.2rem;
}

body.finalist-logged-in .calendar-download a {
    display: inline-flex;
    min-height: 4rem;
    padding: 0 1.8rem;
    border: 1px solid var(--nec-blue);
    border-radius: var(--nec-pill);
    align-items: center;
}

body.finalist-logged-in .finalistpages-calendar .fc-week {
    margin-bottom: 1.2rem;
    padding: 2rem 2.2rem;
    border: 1px solid rgba(0, 131, 200, .12);
    border-radius: 1.4rem;
    background: rgba(115, 210, 255, .08);
}

body.finalist-logged-in .finalistpages-calendar .fc-week .fc-week-label {
    color: var(--nec-dark-blue);
    font-weight: 700;
}

body.finalist-logged-in .finalistpages-calendar .fc-week .fc-week-startend {
    border: 0;
    color: var(--nec-blue);
}

body.finalist-logged-in .finalistpages-calendar .fc-week .fc-toggle-week {
    height: 100%;
}

body.finalist-logged-in .finalistpages-calendar .fc-week .fc-toggle-week > span {
    top: 50%;
    right: 2rem;
    margin: 0;
    border-radius: var(--nec-pill);
    background: var(--nec-dark-blue);
    color: var(--nec-white);
    transform: translateY(-50%);
}

body.finalist-logged-in .finalistpages-calendar .fc-event,
body.finalist-logged-in .finalistpages-calendar .fc-no-event {
    border: 1px solid rgba(0, 131, 200, .13);
    border-radius: 1.2rem;
    background: var(--nec-white);
    box-shadow: 0 8px 20px rgba(0, 65, 145, .07);
}

/* Contacts and jury */
body.finalist-logged-in .finalistpages-contacts,
body.finalist-logged-in .finalistpages-jury {
    margin: 4rem 0 0;
}

body.finalist-logged-in .contacts ul,
body.finalist-logged-in .jury ul {
    display: grid;
    width: 100%;
    margin: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.4rem;
}

body.finalist-logged-in .contacts .contact,
body.finalist-logged-in .jury .jury-member {
    width: auto;
    margin: 0;
}

body.finalist-logged-in .contacts .contact > a,
body.finalist-logged-in .jury .jury-member > a {
    height: 100%;
    padding: 1.2rem 1.2rem 2rem;
    border: 1px solid rgba(0, 131, 200, .11);
    border-radius: 1.6rem;
    background: var(--nec-white);
    box-shadow: 0 10px 26px rgba(0, 65, 145, .07);
}

body.finalist-logged-in .contacts .contact-image,
body.finalist-logged-in .jury .jury-member-image {
    padding-bottom: 100%;
    border-radius: 1.2rem;
    transform: none;
}

body.finalist-logged-in .contacts .contact > a:hover .contact-image,
body.finalist-logged-in .jury .jury-member > a:hover .jury-member-image {
    transform: none;
}

body.finalist-logged-in .contacts .contact-data,
body.finalist-logged-in .jury .jury-member-data {
    padding: 1.8rem .8rem 0;
    text-align: left;
}

body.finalist-logged-in .contacts .contact-name,
body.finalist-logged-in .jury .jury-member-name {
    color: var(--nec-dark-blue);
    font-size: 1.7rem;
    font-weight: 700;
}

body.finalist-logged-in .contact-page-details,
body.finalist-logged-in .jury-member-page-details {
    padding: 2.4rem;
    border-radius: 1.8rem;
    background: var(--nec-cyan-soft);
    align-items: center;
}

body.finalist-logged-in .contact-page-details .contact-image,
body.finalist-logged-in .jury-member-page-details .jury-member-image {
    border-radius: 1.4rem;
}

body.finalist-logged-in .contact-page-details h1,
body.finalist-logged-in .jury-member-page-details h1 {
    font-size: clamp(3.6rem, 4vw, 5.6rem);
}

body.finalist-logged-in .vi-finalist-footer {
    margin-top: 0;
}

@media (max-width: 1179.98px) {
    body.finalist-logged-in .page-content {
        padding-top: 4rem;
    }

    body.finalist-logged-in .page-content .component-content {
        display: block;
    }

    body.finalist-logged-in .page-content-section-1 {
        margin-bottom: 2.4rem;
    }

    body.finalist-logged-in .page-content-section-3 {
        display: none;
    }

    body.finalist-logged-in .subnav {
        border-radius: 0 0 1.6rem 1.6rem;
    }
}

@media (max-width: 767.98px) {
    body.finalist-logged-in .main-header {
        height: 116px;
        padding-top: 0;
    }

    body.finalist-logged-in .main-header .header-headroom {
        height: 116px;
        padding-top: 12px;
    }

    body.finalist-logged-in .main-header .component-container,
    body.finalist-logged-in .main-header .header-headroom.headroom--pinned .component-container {
        width: calc(100% - 24px);
        height: 92px;
        padding: 0 2rem;
    }

    body.finalist-logged-in .main-logo a {
        width: 11rem;
        height: 7.4rem;
    }

    body.finalist-logged-in .finalist-header-title {
        margin-left: 1.2rem;
    }

    body.finalist-logged-in .finalist-header-title a {
        padding-left: 0;
        font-size: 1.1rem;
    }

    body.finalist-logged-in .finalist-header-title a::before,
    body.finalist-logged-in .loggedin-finalist-hi {
        display: none;
    }

    body.finalist-logged-in .loggedin-finalist-logout a {
        padding: 0 .4rem;
        font-size: 1.2rem;
    }

    body.finalist-logged-in .page-content {
        min-height: calc(100vh - 116px);
        padding: 2.4rem 0 6.4rem;
    }

    body.finalist-logged-in .page-content > .component-container {
        width: calc(100% - 24px);
    }

    body.finalist-logged-in .page-content-section-2 {
        padding: 2.8rem 2rem;
        border-radius: 1.6rem;
    }

    body.finalist-logged-in .entry-content > h1:first-child,
    body.finalist-logged-in .contact-page-details h1 {
        margin-bottom: 2.4rem;
        font-size: 4rem;
    }

    body.finalist-logged-in .finalistpages-dashboard .dashboard-widgets-list,
    body.finalist-logged-in .contacts ul,
    body.finalist-logged-in .jury ul {
        grid-template-columns: 1fr;
    }

    body.finalist-logged-in .finalistpages-dashboard .dashboard-widget a {
        min-height: 16rem;
        padding: 2.4rem;
    }

    body.finalist-logged-in .entry-content table {
        display: block;
        overflow-x: auto;
        border-radius: 1rem;
    }

    body.finalist-logged-in .finalistpages-calendar .fc-week {
        padding: 1.8rem;
    }

    body.finalist-logged-in .finalistpages-calendar .fc-week .fc-toggle-week > span {
        right: 1.4rem;
    }

    body.finalist-logged-in .calendar-download {
        position: static;
        margin: 0 0 2.4rem;
        text-align: left;
    }

    body.finalist-logged-in .contact-page-details,
    body.finalist-logged-in .jury-member-page-details {
        display: block;
    }

    body.finalist-logged-in .contact-page-details-col-1,
    body.finalist-logged-in .contact-page-details-col-2,
    body.finalist-logged-in .jury-member-page-details-col-1,
    body.finalist-logged-in .jury-member-page-details-col-2 {
        width: 100%;
        padding: 0;
    }

    body.finalist-logged-in .contact-page-details-col-2,
    body.finalist-logged-in .jury-member-page-details-col-2 {
        max-width: 18rem;
        margin-top: 2rem;
    }
}

.home-intro {
    min-height: 664px;
    padding: 80px 0;
}

.home-intro .component-content {
    grid-template-columns: repeat(2, minmax(0, 544px));
    grid-template-rows: 472px;
    gap: 64px;
    max-width: 1152px;
    margin: 0 auto;
}

.home-intro .component-content h2 {
    margin: 0 0 24px;
    font-size: 48px;
}

.vi-home-intro-card {
    align-self: start;
    width: 544px;
    margin-top: 180px;
    padding: 32px;
    background: var(--nec-dark-blue);
}

body.home .scheduler { display: none; }

.vi-site-footer .partners-list-row-1,
.vi-site-footer .partners-list-row-2 {
    display: flex;
    width: 848px;
    max-width: 100%;
    min-height: 80px;
    margin: 0 auto;
    padding: 0;
    align-items: center;
    justify-content: center;
    gap: 88px;
}

@media (max-width: 991.98px) {
    .jumbotron.vi-home-hero {
        min-height: 760px;
        height: auto;
        padding-top: 120px;
        overflow: hidden;
    }
    .vi-home-hero .component-content { min-height: 640px; height: auto; }
    .vi-home-hero-art img {
        top: 50%;
        left: 50%;
        width: 620px;
        transform: translate(-50%, -50%);
    }
    .home-intro .component-content { grid-template-columns: 1fr; grid-template-rows: auto; }
    .vi-home-intro-card { width: 100%; margin-top: 0; }
}

@media (max-width: 767.98px) {
    .jumbotron.vi-home-hero { min-height: 790px; }
    .vi-home-hero .component-content { min-height: 690px; }
    .vi-home-hero .component-content h2 { font-size: 48px; }
    .vi-home-hero .component-content p { margin-bottom: 24px; font-size: 20px; }
    .vi-home-hero-art img {
        top: 0;
        width: min(520px, 125vw);
        transform: translate(-50%, 0);
    }
    .home-intro { min-height: 0; padding: 64px 0; }
    .home-intro .component-content { gap: 32px; }
    .home-intro .component-content h2 { font-size: 36px; }
}

body { overflow-x: hidden; }

.vi-home-intro-card { width: 100%; }

.vi-site-footer .partners-list-row-1 li:nth-child(1) { width: 167px; height: 64px; }
.vi-site-footer .partners-list-row-1 li:nth-child(2) { width: 212px; height: 64px; }
.vi-site-footer .partners-list-row-2 li:nth-child(1) { width: 69px; height: 54px; }
.vi-site-footer .partners-list-row-2 li:nth-child(2) { width: 183px; height: 32px; }
.vi-site-footer .partners-list-row-2 li:nth-child(3) { width: 185px; height: 25px; }
.vi-site-footer .partners-list-row-2 li:nth-child(4) { width: 125px; height: 25px; }

.vi-site-footer .partners-list-row-1 li,
.vi-site-footer .partners-list-row-2 li {
    margin: 0;
    flex: 0 0 auto;
}

.vi-site-footer .partners-list-row-1 img,
.vi-site-footer .partners-list-row-2 img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100% !important;
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .vi-site-footer .partners-list-row-1,
    .vi-site-footer .partners-list-row-2 { gap: 24px; flex-wrap: wrap; }
    .vi-site-footer .partners-list-row-1 li:nth-child(n),
    .vi-site-footer .partners-list-row-2 li:nth-child(n) { width: calc(50% - 20px); height: 48px; }
}

/* Footer geometry copied from Figma component 12:670. */
.vi-site-footer {
    position: relative;
    height: 683px;
    min-height: 683px;
    overflow: hidden;
    background: var(--nec-white);
}

.vi-site-footer::before {
    display: none;
}

.vi-site-footer > * {
    position: relative;
    z-index: 1;
}

.vi-site-footer .partners {
    min-height: 337px;
    padding: 64px 0;
    border-top: 1px solid var(--nec-border);
    background: transparent;
}

.vi-site-footer .partners .component-container {
    width: 896px;
    max-width: calc(100% - 48px);
}

.vi-site-footer .partners .component-header {
    margin: 0 0 20px;
}

.vi-site-footer .partners .component-header h2 {
    font-size: 24px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -.48px;
}

.vi-site-footer .partners-rows {
    gap: 20px;
}

.vi-site-footer .partners-list-row-1,
.vi-site-footer .partners-list-row-2 {
    height: 80px;
    min-height: 80px;
    gap: 88px;
}

.vi-site-footer .partners-list li a,
.vi-site-footer .partners-list li figure {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
}

.vi-site-footer .partners-list-row-1 li:nth-child(1) { width: 167px; height: 64px; }
.vi-site-footer .partners-list-row-1 li:nth-child(2) { width: 212px; height: 64px; }
.vi-site-footer .partners-list-row-2 li:nth-child(1) { width: 69px; height: 54px; }
.vi-site-footer .partners-list-row-2 li:nth-child(2) { width: 183px; height: 32px; }
.vi-site-footer .partners-list-row-2 li:nth-child(3) { width: 180px; height: 24px; }
.vi-site-footer .partners-list-row-2 li:nth-child(4) { width: 149px; height: 30px; }

.vi-site-footer .partners-list-row-1 li:nth-child(1) img {
    position: absolute;
    top: -5.58%;
    left: -7.71%;
    width: 132.54%;
    height: 109.24%;
    max-width: none;
    max-height: none !important;
    object-fit: fill;
}

.vi-site-footer .partners-list-row-1 li:nth-child(2) img,
.vi-site-footer .partners-list-row-2 li img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none !important;
    object-fit: fill;
}

.vi-site-footer .main-footer {
    min-height: 176px;
    padding: 40px 0;
    background: transparent;
}

.vi-site-footer .main-footer .component-container {
    width: 896px;
    max-width: calc(100% - 48px);
    gap: 16px;
}

.social-follow-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.vi-site-footer .social-heading {
    margin: 0;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
}

.vi-site-footer .social-icons {
    display: flex;
    width: 32px;
    height: 32px;
    min-width: 32px;
    margin: 0;
    padding: 0;
}

.vi-site-footer .social-icon,
.vi-site-footer .social-icon > * {
    width: 32px;
    height: 32px;
    margin: 0;
}

.vi-site-footer .vi-back-to-top {
    width: 32px;
    height: 48px;
    margin: 0;
    padding-top: 16px;
    font-size: 0;
}

.vi-site-footer .vi-back-to-top::before {
    display: block;
    width: 12px;
    height: 12px;
    border-top: 1px solid var(--nec-blue);
    border-left: 1px solid var(--nec-blue);
    content: "";
    transform: translateY(3px) rotate(45deg);
}

@media (max-width: 767.98px) {
    .vi-site-footer {
        height: auto;
        min-height: 660px;
    }

    .vi-site-footer::before {
        top: -12rem;
        left: -40rem;
        width: 110rem;
        height: 110rem;
    }

    .vi-site-footer .partners {
        min-height: 440px;
        padding: 64px 0;
    }

    .vi-site-footer .partners-list-row-1,
    .vi-site-footer .partners-list-row-2 {
        height: auto;
        gap: 24px;
        flex-wrap: wrap;
    }

    .vi-site-footer .partners-list-row-1 li:nth-child(n),
    .vi-site-footer .partners-list-row-2 li:nth-child(n) {
        width: calc(50% - 20px);
        height: 48px;
    }

    .vi-site-footer .partners-list-row-1 li:nth-child(1) img {
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .vi-site-footer .partners-list-row-1 li:nth-child(2) img,
    .vi-site-footer .partners-list-row-2 li img {
        object-fit: contain;
    }
}

/* Final polish requested for partner marks, social icon and hero layering. */
.vi-site-footer .partners-list-row-1 li img,
.vi-site-footer .partners-list-row-2 li img,
.vi-site-footer .partners-list-row-1 li:nth-child(1) img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100% !important;
    object-fit: contain;
}

.vi-site-footer .partners-list li a {
    padding: 0;
}

.vi-site-footer .partners-list-row-1 li:nth-child(2) img {
    object-fit: contain;
}

.vi-linkedin-link {
    display: flex;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--nec-blue);
    color: var(--nec-white);
    align-items: center;
    justify-content: center;
    flex: 0 0 32px;
}

.vi-linkedin-link > span[aria-hidden="true"] {
    position: relative;
    top: -1px;
    color: var(--nec-white);
    font-family: Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -1px;
    line-height: 1;
}

.vi-linkedin-link:hover {
    background: var(--nec-dark-blue);
    color: var(--nec-white);
}

@media (min-width: 992px) {
    .jumbotron.vi-home-hero {
        min-height: 874px;
        height: 874px;
        padding-top: 174px;
    }

    .vi-home-hero .component-content {
        min-height: 700px;
        height: 700px;
    }

    .vi-home-hero-copy {
        z-index: 3;
        transform: translateY(-10px);
    }

    .vi-home-hero-art {
        z-index: 1;
    }

    .vi-home-event-card {
        top: 623px;
        right: calc(608px - 50vw);
    }

    .vi-home-intro-card {
        position: relative;
        z-index: 3;
        margin-top: 180px;
    }
}

@media (min-width: 992px) and (max-width: 1599.98px) {
    .vi-home-hero-art img {
        left: 20px;
        width: 989px;
    }

}

/* Keep the Figma public submenu as the final cascade authority. */
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav {
    width: 208px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav ul,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav ul.extra-padding {
    display: flex;
    margin: 0;
    padding: 0;
    flex-direction: column;
    gap: 4px;
}

body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li + li {
    margin: 0;
    padding: 0;
}

body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li a,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li ul li a {
    display: flex;
    min-height: 36px;
    padding: 8px 12px;
    border: 0;
    border-left: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: #99a1af;
    font-family: ShellFont, Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    align-items: center;
}

body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li a:hover,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li.current_page_item > a,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li.current_page_parent > a,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li.current_page_ancestor > a,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li ul li.current_page_item > a {
    border-left-color: var(--nec-blue);
    background: transparent;
    color: var(--nec-blue);
}

body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li ul {
    margin: 4px 0 0;
    padding: 0;
    border: 0;
}

/* Public submenu typography and visible second-level hierarchy. */
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li a {
    font-weight: 500;
    text-transform: none;
}

body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li.page_item_has_children > ul,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li.current_page_item > ul,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li.current_page_parent > ul,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li.current_page_ancestor > ul {
    display: flex;
    margin: 0 0 4px;
    padding: 0 0 0 14px;
    border: 0;
    flex-direction: column;
    gap: 0;
}

body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li ul li a {
    min-height: 32px;
    padding: 6px 12px;
    color: #99a1af;
    font-size: 13px;
    font-weight: 500;
    text-transform: none;
}

body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li ul li.current_page_item > a,
body:not(.home):not(.finalist-logged-in) .page-content-section-1 .subnav li ul li a:hover {
    border-left-color: var(--nec-blue);
    color: var(--nec-blue);
}

/* About and Participants: connect the final News block directly to the footer. */
body.page-id-14 .blog-list,
body.page-id-16 .blog-list {
    margin-bottom: 0;
}

/* Home: make the Headroom reveal state as explicit as on inner pages. */
body.home .main-header .header-headroom {
    position: fixed;
    z-index: 99;
    top: 0;
    right: 0;
    left: 0;
    opacity: 1;
    transform: translateY(0);
    transition: transform .25s ease, opacity .15s ease;
    will-change: transform;
}

body.home .main-header .header-headroom.headroom--pinned {
    position: fixed;
    z-index: 99;
    top: 0;
    right: 0;
    left: 0;
    opacity: 1;
    transform: translateY(0);
}

body.home .main-header .header-headroom.headroom--unpinned {
    opacity: 0;
    transform: translateY(-100%);
}

body.home .main-header .header-headroom.vi-home-header-visible {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto;
    transform: translateY(0) !important;
}

body.home .main-header .header-headroom.vi-home-header-hidden {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none;
    transform: translateY(-100%) !important;
}

/* ================================================================
 * Finalist portal: use the same editorial system as the public pages
 * ================================================================ */

body.finalist-logged-in .page-content {
    min-height: calc(100vh - 174px);
    padding: 8rem 0;
    background: var(--nec-white);
}

body.finalist-logged-in .page-content > .component-container {
    width: calc(100% - 48px);
    max-width: var(--nec-content);
}

body.finalist-logged-in .page-content .component-content {
    display: grid;
    grid-template-columns: 20rem minmax(0, 84.8rem);
    gap: 3.2rem;
    justify-content: center;
}

body.finalist-logged-in .page-content-section-1 {
    width: 20rem;
}

body.finalist-logged-in .page-content-section-2 {
    width: min(84.8rem, 100%);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.finalist-logged-in .page-content-section-3 {
    display: none;
}

body.finalist-logged-in .entry-content,
body.finalist-logged-in .entry-content p,
body.finalist-logged-in .entry-content li,
body.finalist-logged-in .entry-content td {
    color: #364153;
}

body.finalist-logged-in .entry-content > h1:first-child,
body.finalist-logged-in .contact-page-details h1,
body.finalist-logged-in .jury-member-page-details h1 {
    margin: 0 0 2.4rem;
    color: var(--nec-dark-blue);
    font-size: clamp(4rem, 5vw, 6.4rem);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: 1.05;
    text-transform: none;
}

body.finalist-logged-in .entry-content > h1:first-child + p,
body.finalist-logged-in .entry-content > h1:first-child + h3,
body.finalist-logged-in .entry-content > h1:first-child + p .lead,
body.finalist-logged-in .entry-content > p:first-child .lead {
    margin-top: 0;
    color: var(--nec-dark-blue);
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.4;
    text-transform: none;
}

body.finalist-logged-in article h2,
body.finalist-logged-in article h3,
body.finalist-logged-in article h4,
body.finalist-logged-in article h5,
body.finalist-logged-in article h6,
body.finalist-logged-in table caption {
    color: var(--nec-dark-blue);
    letter-spacing: 0;
    text-transform: none;
}

body.finalist-logged-in article h2 {
    margin: 4rem 0 2.4rem;
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1.2;
}

body.finalist-logged-in article h3 {
    margin: 3.2rem 0 1.6rem;
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.2;
}

body.finalist-logged-in article h4 {
    margin: 2.4rem 0 1.2rem;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
}

body.finalist-logged-in .entry-content .lead {
    color: var(--nec-dark-blue);
    font-size: 1.9rem;
    font-weight: 500;
    line-height: 1.4;
    text-transform: none;
}

body.finalist-logged-in .entry-content .small,
body.finalist-logged-in .finalist-document .uploaddata,
body.finalist-logged-in .pitchdeck-file .uploaddata {
    color: #4a5565;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

/* Same flat, sentence-case submenu as the public editorial pages. */
body.finalist-logged-in .page-content-section-1 .subnav {
    width: 20rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.finalist-logged-in .page-content-section-1 .subnav ul,
body.finalist-logged-in .page-content-section-1 .subnav ul.extra-padding {
    display: flex;
    margin: 0;
    padding: 0;
    flex-direction: column;
    gap: .4rem;
}

body.finalist-logged-in .page-content-section-1 .subnav li,
body.finalist-logged-in .page-content-section-1 .subnav li + li {
    margin: 0;
    padding: 0;
    font-size: inherit;
}

body.finalist-logged-in .page-content-section-1 .subnav li a,
body.finalist-logged-in .page-content-section-1 .subnav li ul li a {
    display: flex;
    min-height: 3.6rem;
    padding: .8rem 1.2rem;
    border: 0;
    border-left: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: #99a1af;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.4;
    text-transform: none;
    align-items: center;
}

body.finalist-logged-in .page-content-section-1 .subnav li a:hover,
body.finalist-logged-in .page-content-section-1 .subnav li.current_page_item > a,
body.finalist-logged-in .page-content-section-1 .subnav li.current_page_parent > a,
body.finalist-logged-in .page-content-section-1 .subnav li.current_page_ancestor > a,
body.finalist-logged-in .page-content-section-1 .subnav li ul li.current_page_item > a,
body.finalist-logged-in .page-content-section-1 .subnav li ul li a:hover {
    border-left-color: var(--nec-blue);
    background: transparent;
    color: var(--nec-blue);
}

body.finalist-logged-in .page-content-section-1 .subnav li.page_item_has_children > ul,
body.finalist-logged-in .page-content-section-1 .subnav li.current_page_item > ul,
body.finalist-logged-in .page-content-section-1 .subnav li.current_page_parent > ul,
body.finalist-logged-in .page-content-section-1 .subnav li.current_page_ancestor > ul {
    display: flex;
    margin: 0 0 .4rem;
    padding: 0 0 0 1.4rem;
    border: 0;
    flex-direction: column;
    gap: 0;
}

body.finalist-logged-in .page-content-section-1 .subnav li ul li a {
    min-height: 3.2rem;
    padding: .6rem 1.2rem;
    font-size: 1.3rem;
}

/* Dashboard tiles follow the same flat card language as the public site. */
body.finalist-logged-in .finalistpages-dashboard .dashboard-widgets-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.4rem;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget a,
body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n + 2) a,
body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n) a {
    min-height: 20rem;
    padding: 2.4rem 2.4rem 4.8rem;
    border: 1px solid var(--nec-border);
    border-left: 4px solid var(--nec-magenta);
    border-radius: 0;
    background: var(--nec-white);
    box-shadow: none;
    justify-content: flex-start;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget a::after {
    top: auto;
    right: auto;
    bottom: 1.6rem;
    left: 2.4rem;
    width: auto;
    height: auto;
    border: 0;
    border-radius: 0;
    color: var(--nec-blue);
    content: "\2192";
    font-size: 2rem;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget a:hover,
body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n + 2) a:hover,
body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n) a:hover {
    background: var(--nec-cyan-soft);
    transform: none;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget h2,
body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n) h2 {
    margin: 0 0 1.2rem;
    padding: 0;
    background: none !important;
    color: var(--nec-dark-blue);
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.2;
    text-transform: none;
}

body.finalist-logged-in .finalistpages-dashboard .dashboard-widget p,
body.finalist-logged-in .finalistpages-dashboard .dashboard-widget:nth-child(3n) p {
    color: #364153;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.4;
}

/* Other portal tiles use the same palette and squared card treatment. */
body.finalist-logged-in .contacts .contact > a,
body.finalist-logged-in .jury .jury-member > a,
body.finalist-logged-in .finalist-document,
body.finalist-logged-in .pitchdeck-file,
body.finalist-logged-in .fce-detail-timeslot-block,
body.finalist-logged-in .finalistpages-calendar .fc-event,
body.finalist-logged-in .finalistpages-calendar .fc-no-event {
    border: 1px solid var(--nec-border);
    border-left: 4px solid var(--nec-magenta);
    border-radius: 0;
    background: var(--nec-white);
    box-shadow: none;
}

body.finalist-logged-in .contacts .contact-name,
body.finalist-logged-in .jury .jury-member-name,
body.finalist-logged-in .finalist-document .document-title,
body.finalist-logged-in .pitchdeck-file .pitchdeck-title {
    color: var(--nec-dark-blue);
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.2;
    text-transform: none;
}

body.finalist-logged-in .entry-content [style*="color: green"],
body.finalist-logged-in .entry-content [style*="color:green"] {
    color: var(--nec-blue) !important;
}

@media (max-width: 1179.98px) {
    body.finalist-logged-in .page-content .component-content {
        display: block;
    }

    body.finalist-logged-in .page-content-section-1,
    body.finalist-logged-in .page-content-section-2 {
        width: 100%;
    }

    body.finalist-logged-in .page-content-section-1 {
        margin-bottom: 3.2rem;
    }

    body.finalist-logged-in .page-content-section-1 .subnav {
        width: 100%;
        border-radius: 0;
    }
}

@media (max-width: 767.98px) {
    body.finalist-logged-in .page-content {
        padding: 4.8rem 0 6.4rem;
    }

    body.finalist-logged-in .page-content > .component-container {
        width: calc(100% - 24px);
    }

    body.finalist-logged-in .entry-content > h1:first-child,
    body.finalist-logged-in .contact-page-details h1,
    body.finalist-logged-in .jury-member-page-details h1 {
        font-size: 4rem;
    }

    body.finalist-logged-in .finalistpages-dashboard .dashboard-widgets-list {
        grid-template-columns: 1fr;
    }
}

/* Remove the last legacy jade interaction colours from portal components. */
body.finalist-logged-in .contacts .contact > a:hover .contact-name,
body.finalist-logged-in .contacts .contact > a:focus .contact-name,
body.finalist-logged-in .jury .jury-member > a:hover .jury-member-name,
body.finalist-logged-in .jury .jury-member > a:focus .jury-member-name {
    color: var(--nec-blue);
}

body.finalist-logged-in .contacts .contact > a:hover .contact-function,
body.finalist-logged-in .contacts .contact > a:focus .contact-function,
body.finalist-logged-in .contacts .contact > a:hover .contact-company,
body.finalist-logged-in .contacts .contact > a:focus .contact-company,
body.finalist-logged-in .jury .jury-member > a:hover .jury-member-function,
body.finalist-logged-in .jury .jury-member > a:focus .jury-member-function,
body.finalist-logged-in .jury .jury-member > a:hover .jury-member-company,
body.finalist-logged-in .jury .jury-member > a:focus .jury-member-company {
    color: var(--nec-dark-blue);
}

body.finalist-logged-in .contacts .contact-details,
body.finalist-logged-in .jury .jury-member-details {
    border-radius: var(--nec-radius);
}

body.finalist-logged-in .contacts .contact-details [data-action="close-contact-details"],
body.finalist-logged-in .jury .jury-member-details [data-action="close-jury-member-details"] {
    border-radius: 50%;
    background: var(--nec-magenta);
}

body.finalist-logged-in .contacts .contact-details [data-action="close-contact-details"]:hover,
body.finalist-logged-in .contacts .contact-details [data-action="close-contact-details"]:focus,
body.finalist-logged-in .jury .jury-member-details [data-action="close-jury-member-details"]:hover,
body.finalist-logged-in .jury .jury-member-details [data-action="close-jury-member-details"]:focus {
    background: var(--nec-dark-magenta);
}

body.finalist-logged-in .contacts .contact-details [data-action="close-contact-details"]:active,
body.finalist-logged-in .jury .jury-member-details [data-action="close-jury-member-details"]:active {
    background: var(--nec-dark-blue);
}

body.finalist-logged-in .contact-details-description a.arrow-link,
body.finalist-logged-in .jury-member-details-description a.arrow-link,
body.finalist-logged-in .contact-page-details + p a.arrow-link,
body.finalist-logged-in .jury-member-page-details + p a.arrow-link {
    padding-left: 3rem;
    background: none;
    color: var(--nec-blue);
}

body.finalist-logged-in .contact-details-description a.arrow-link::after,
body.finalist-logged-in .jury-member-details-description a.arrow-link::after,
body.finalist-logged-in .contact-page-details + p a.arrow-link::after,
body.finalist-logged-in .jury-member-page-details + p a.arrow-link::after {
    position: absolute;
    top: 50%;
    left: 0;
    width: 2rem;
    height: 2rem;
    background: var(--nec-blue);
    content: "";
    -webkit-mask: url(../images/ui/arrow-jade.svg) no-repeat center / contain;
    mask: url(../images/ui/arrow-jade.svg) no-repeat center / contain;
    transform: translateY(-50%);
}

body.finalist-logged-in .contact-details-data,
body.finalist-logged-in .contact-details-description,
body.finalist-logged-in .jury-member-details-data,
body.finalist-logged-in .jury-member-details-description {
    scrollbar-color: var(--nec-cyan) var(--nec-white);
}

body.finalist-logged-in .contact-details-data::-webkit-scrollbar-thumb,
body.finalist-logged-in .contact-details-description::-webkit-scrollbar-thumb,
body.finalist-logged-in .jury-member-details-data::-webkit-scrollbar-thumb,
body.finalist-logged-in .jury-member-details-description::-webkit-scrollbar-thumb {
    background: var(--nec-cyan);
}

body.finalist-logged-in .finalistpages-calendar .fc-events::before {
    background: var(--nec-magenta);
}

body.finalist-logged-in .finalistpages-calendar .fc-week .fc-toggle-week:hover + .fc-week-label,
body.finalist-logged-in .finalistpages-calendar .fc-week .fc-toggle-week:focus + .fc-week-label {
    color: var(--nec-blue);
}

body.finalist-logged-in .finalistpages-calendar .fc-week .fc-toggle-week:hover > span,
body.finalist-logged-in .finalistpages-calendar .fc-week .fc-toggle-week:focus > span {
    background: var(--nec-magenta);
    color: var(--nec-white);
}

body.finalist-logged-in .finalistpages-calendar .fc-event .fc-title,
body.finalist-logged-in .finalistpages-calendar .fc-no-event .fc-title,
body.finalist-logged-in .finalistpages-calendar .fc-event .fc-read-more.unfocus + .fc-title,
body.finalist-logged-in .finalistpages-calendar .fc-no-event .fc-read-more.unfocus + .fc-title {
    color: var(--nec-dark-blue);
}

body.finalist-logged-in .finalistpages-calendar .fc-event .fc-read-more:hover + .fc-title,
body.finalist-logged-in .finalistpages-calendar .fc-event .fc-read-more:focus + .fc-title,
body.finalist-logged-in .finalistpages-calendar .fc-no-event .fc-read-more:hover + .fc-title,
body.finalist-logged-in .finalistpages-calendar .fc-no-event .fc-read-more:focus + .fc-title,
body.finalist-logged-in .finalistpages-calendar .fc-event.event-active .fc-title,
body.finalist-logged-in .finalistpages-calendar .fc-no-event.event-active .fc-title {
    color: var(--nec-blue) !important;
}

body.finalist-logged-in .finalistpages-calendar .fc-event .fc-read-more svg path,
body.finalist-logged-in .finalistpages-calendar .fc-no-event .fc-read-more svg path {
    fill: var(--nec-blue);
}

body.finalist-logged-in .finalistpages-calendar .fc-event .fc-details .fc-timeslots .fc-timeslot--detail::before,
body.finalist-logged-in .finalistpages-calendar .fc-no-event .fc-details .fc-timeslots .fc-timeslot--detail::before {
    background: var(--nec-magenta);
}

body.finalist-logged-in .finalistpages-calendar a,
body.finalist-logged-in .finalistpages-calendar .fc-timeslot-location a {
    color: var(--nec-blue);
}

body.finalist-logged-in .calendar-download a:hover,
body.finalist-logged-in .calendar-download a:focus {
    border-color: var(--nec-magenta);
    background: var(--nec-magenta);
    color: var(--nec-white);
}

/* Public header keeps its normal navigation when a finalist is logged in. */
@media (min-width: 992px) {
    body.finalist-logged-in:not(.single-finalistpages):not(.single-finalsevents):not(.single-finalistcontacts):not(.single-jury) .homepage-menu {
        display: none !important;
    }

    body.finalist-logged-in:not(.single-finalistpages):not(.single-finalsevents):not(.single-finalistcontacts):not(.single-jury) .loggedin-finalist {
        margin-left: 2.4rem;
    }
}

/* Final NEC 2026 homepage copy placement overrides. */
.vi-home-hero-copy {
    max-width: 66rem;
}

.vi-home-hero .component-content h2 {
    max-width: 66rem;
    white-space: normal;
}

.vi-home-hero .component-content p {
    max-width: 62rem;
    font-size: clamp(2.2rem, 2.2vw, 3.2rem);
    white-space: normal;
}

.vi-home-intro-card h3 {
    margin: 0 0 2.4rem;
    padding: 0;
}

.vi-home-intro-card .button {
    display: inline-flex;
    margin: 0 0 2.4rem;
}

.vi-home-intro-card p {
    margin: 0;
}

@media (min-width: 992px) {
    .burger-menu-button {
        display: flex;
    }
}

/* Client feedback: align the public hero, header controls and partner marks with Figma. */
body.home .main-header {
    z-index: 1000;
}

body.home .main-header .header-headroom,
body.home .main-header .header-headroom.headroom--pinned {
    z-index: 1001;
}

.mainnav {
    z-index: 1100;
}

.burger-menu-button::after {
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media (min-width: 992px) {
    .vi-home-hero-copy {
        width: 562px;
        max-width: 562px;
    }

    .vi-home-hero .component-content h2 {
        width: 562px;
        max-width: 562px;
        margin: 0 0 16px;
        font-family: ShellFont, Arial, sans-serif;
        font-size: 72px;
        font-weight: 700;
        line-height: 1.2;
        letter-spacing: -2.16px;
    }

    .vi-home-hero .component-content p {
        width: 559px;
        max-width: 559px;
        margin: 0 0 40px;
        font-family: ShellFont, Arial, sans-serif;
        font-size: 32px;
        font-weight: 500;
        line-height: 1.2;
        letter-spacing: 0;
    }

    /* The Shell PNGs include generous transparent canvas margins. These
       Figma-matched crops enlarge the visible marks without clipping them. */
    .vi-site-footer .partners-list-row-1 li:nth-child(1) img {
        top: -5.58%;
        right: auto;
        bottom: auto;
        left: -7.71%;
        width: 132.54%;
        height: 109.24%;
        max-width: none;
        max-height: none !important;
        object-fit: fill;
    }

    .vi-site-footer .partners-list-row-1 li:nth-child(2) img {
        max-width: none;
        max-height: none !important;
        object-fit: cover;
    }
}

.vi-site-footer .partners-list li figure {
    overflow: visible;
}

.vi-site-footer .vi-partner-wordmark {
    display: flex;
    width: 100%;
    height: 100%;
    font-size: 11px;
    line-height: 1;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.vi-site-footer .vi-partner-wordmark strong {
    font-size: 16px;
    line-height: 1;
}
