:root {
    --paper: #F7FAF8;
    --night: #101F2C;
    --night-2: #172B3A;
    --ink: #101F2C;
    --brand: #00664f;
    --brand-hover: #00664F;
    --brand-active: #005844;
    --brand-soft: #E5F0EA;
    --spruce: #174C43;
    --lime: #B7CE74;
    --line: #D8DEE4;
    --muted: #526170;
    --text-secondary: #526170
}

body {
    font-size: 16px
}

a:hover {
    text-decoration: underline;
    text-underline-offset: 4px
}

button:focus-visible,
a:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid #101F2C;
    outline-offset: 4px
}

button,
input,
select,
textarea {
    font-size: 16px
}

summary {
    cursor: pointer;
    font-weight: 700;
    min-height: 44px;
    padding: 10px 0
}

.skip {
    position: fixed;
    top: -100px;
    left: 20px;
    z-index: 200;
    background: #fff;
    color: #101F2C;
    padding: 12px
}

.skip:focus {
    top: 8px
}

.eco-header {
    position: relative;
    z-index: 100;
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 92px;
    padding: 20px clamp(20px, 3vw, 48px);
    background: rgba(7,21,33,.97);
    border-bottom-color: rgba(255, 255, 255, .08);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}
.eco-header nav>a, .eco-header nav>.mega>summary {
    color: #fff;
}

.eco-brand {
    font-weight: 850;
    letter-spacing: .06em;
    font-size: 19px;
    white-space: nowrap
}

.eco-header nav {
    display: flex;
    align-items: center;
    gap: 21px;
    margin-left: auto;
    font-size: 15px;
    font-weight: 650
}

.eco-header nav>a {
    padding: 10px 0
}

.eco-header-cta {
    background: var(--brand);
    color: white;
    line-height: 1.3;
    padding: 13px 17px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 750;
    max-width: 178px;
    text-align: center
}

.eco-menu {
    display: none
}

.mega summary {
    list-style: none
}

.mega summary::-webkit-details-marker {
    display: none
}

.mega summary:after {
    content: ' +';
    color: var(--brand)
}

.mega[open] summary:after {
    content: ' −'
}

.mega-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 2px solid var(--brand);
    padding: 28px clamp(20px, 4vw, 72px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    box-shadow: 0 14px 24px #101f2c20;
    max-height: calc(100vh - 100px);
    overflow: auto
}

.mega-panel>div {
    min-width: 0
}

.mega-panel strong {
    display: block;
    border-bottom: 1px solid var(--line);
    padding: 8px 0;
    margin-bottom: 8px
}

.mega-panel a {
    display: block;
    padding: 8px 0;
    font-size: 15px;
    line-height: 1.4
}

.mega-panel>div:last-child {
    display: flex;
    grid-column: 1/-1;
    gap: 28px;
    border-top: 1px solid var(--line)
}

.industries-mega {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}

.eco-breadcrumb {
    padding: 18px var(--gutter);
    font-size: 14px;
    color: var(--muted);
    background: #fff
}

.eco-breadcrumb a {
    text-decoration: underline
}

.eco-hero {
    min-height: 610px;
    padding: 76px var(--gutter);
    align-items: center;
    gap: 40px;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr)
}

.eco-hero h1 {
    font-size: clamp(38px, 4.6vw, 72px);
    line-height: 1.07;
    letter-spacing: -.035em
}

.eco-hero .hero-deck {
    font-size: 20px;
    margin-top: 24px
}

.eco-hero .hero-context {
    min-height: 340px;
    width: 100%;
    overflow: hidden
}

.eco-summary {
    background: var(--night);
    color: white;
    padding: 32px;
    border-top: 4px solid #B7CE74
}

.eco-summary .eyebrow {
    color: #BAC6D0;
    font-size: 13px
}

.eco-summary ol {
    padding-left: 22px
}

.eco-summary li {
    padding: 12px 0;
    border-bottom: 1px solid #ffffff26
}

.eco-section {
    padding: 64px var(--gutter);
    border-top: 1px solid var(--line);
    background: #fff
}

.eco-section:nth-of-type(2n) {
    background: var(--paper)
}

.eco-section .section-head {
    display: block;
    margin-bottom: 24px
}

.eco-section h2 {
    font-family: var(--serif);
    font-size: clamp(30px, 3vw, 46px);
    font-weight: 500;
    line-height: 1.18;
    margin: 0 0 24px;
    letter-spacing: -.02em
}

.eco-section h3 {
    font-size: 23px;
    line-height: 1.3;
    margin-top: 0
}

.eco-section p {
    max-width: 900px
}

.eco-section .eyebrow {
    font-size: 13px;
    margin-bottom: 12px
}

.eco-section .eyebrow:empty {
    display: none
}

.eco-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px
}

.eco-cards article {
    border: 1px solid var(--line);
    border-top: 3px solid var(--brand);
    background: #fff;
    padding: 26px;
    min-width: 0;
    transition: box-shadow .15s
}

.eco-cards article:hover {
    box-shadow: 0 8px 24px #101f2c12
}

.eco-cards article>a {
    font-size: 21px;
    line-height: 1.25;
    font-weight: 720;
    display: inline-block
}

.eco-cards p {
    color: var(--text-secondary);
    margin-bottom: 0
}

.eco-cards+.text-link {
    display: inline-block;
    margin-top: 24px
}

.eco-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 20px 0
}

.eco-list li {
    border-left: 3px solid var(--brand);
    padding: 12px 22px;
    background: var(--brand-soft)
}

.eco-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 24px
}

.eco-actions .btn:not(:first-child) {
    background: transparent;
    border-color: var(--spruce);
    color: var(--spruce)
}

.eco-tool,
.eco-lead {
    padding: 32px;
    background: #fff;
    border: 1px solid var(--line);
    border-top: 4px solid var(--brand);
    max-width: 1100px
}

.eco-tool>label,
.eco-lead>label {
    display: block;
    margin-bottom: 20px
}

.eco-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 24px
}

.eco-fields label,
.eco-tool>label,
.eco-lead>label {
    font-weight: 650;
    font-size: 16px;
    color: var(--ink)
}

.eco-fields label span {
    color: var(--muted);
    font-weight: 400;
    font-size: 14px;
    display: block
}

.eco-tool input,
.eco-tool select,
.eco-lead input,
.eco-lead select,
.eco-lead textarea {
    width: 100%;
    margin-top: 8px;
    border: 1px solid #71808B;
    border-radius: 3px;
    min-height: 48px;
    background: #fff;
    color: var(--ink);
    padding: 10px 12px
}

.eco-lead textarea {
    resize: vertical
}

.eco-result {
    margin-top: 24px;
    background: var(--brand-soft);
    padding: 24px;
    border-left: 3px solid var(--brand)
}

.eco-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px
}

.eco-metric {
    background: #fff;
    padding: 20px
}

.eco-metric strong {
    display: block;
    font-size: 27px;
    color: var(--brand);
    line-height: 1.25
}

.eco-metric span {
    display: block;
    font-size: 15px;
    margin-top: 8px
}

.eco-result a {
    margin-top: 20px
}

.eco-note,
figcaption {
    font-size: 14px;
    color: var(--text-secondary)
}

details>p {
    margin-top: 6px
}

.eco-tool details {
    margin-top: 18px;
    border-bottom: 1px solid var(--line)
}

[data-finder-output] {
    margin-top: 24px
}

[data-finder-output] .eco-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}

.eco-footer {
    padding: 80px var(--gutter);
    background: var(--night);
    color: #F4F6F8;
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr 1.2fr;
    gap: 32px
}

.eco-footer strong {
    font-size: 17px;
    color: #F4F6F8
}

.eco-footer a {
    display: block;
    margin-top: 12px;
    font-size: 15px;
    overflow-wrap: anywhere
}

.eco-footer p {
    color: #BAC6D0
}

.eco-figure {
    margin: 0;
    max-width: 1100px
}

.eco-figure img {
    width: 100%;
    height: auto;
    border: 1px solid var(--line)
}

.eco-figure figcaption {
    padding: 12px 0
}

.eco-lead [data-enquiry-result] {
    margin-top: 20px;
    overflow-wrap: anywhere
}

.eco-lead [data-enquiry-result] a {
    margin: 8px 12px 8px 0
}

.eco-lead pre {
    white-space: pre-wrap;
    background: var(--paper);
    border: 1px solid var(--line);
    padding: 20px;
    font: 15px/1.6 var(--sans);
    max-height: 360px;
    overflow: auto
}

.btn {
    white-space: normal;
    text-align: center;
    line-height: 1.4
}

#enquiry {
    scroll-margin-top: 20px
}

.eco-hero .hero-context .light-field {
    max-width: 100%
}

.eco-tool .eco-cards {
    margin-top: 12px
}

@media(min-width:1500px) {

    .eco-section,
    .eco-hero {
        padding-left: max(var(--gutter), calc((100vw - 1340px)/2));
        padding-right: max(var(--gutter), calc((100vw - 1340px)/2))
    }
}

@media(max-width:1180px) {
    .eco-header {
        flex-wrap: wrap;
        gap: 14px
    }

    .eco-header nav {
        order: 4;
        display: none;
        width: 100%;
        margin: 0;
        align-items: stretch;
        flex-direction: column;
        gap: 0
    }

    .eco-header nav.open {
        display: flex
    }

    .eco-menu {
        display: block;
        margin-left: auto;
        border: 1px solid var(--line);
        background: white;
        padding: 10px 14px;
        border-radius: 4px;
        font-weight: 650
    }

    .eco-header-cta {
        max-width: 190px
    }

    .eco-header nav>a,
    .mega summary {
        border-bottom: 1px solid var(--line);
        padding: 14px 0
    }

    .mega-panel {
        position: static;
        box-shadow: none;
        max-height: none;
        padding: 16px 0;
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .mega-panel>div:last-child {
        flex-wrap: wrap;
        gap: 16px
    }

    .eco-hero {
        grid-template-columns: minmax(0, 1fr) minmax(0, .6fr);
        min-height: 550px
    }

    .eco-hero .hero-context {
        min-height: 280px
    }
}

@media(max-width:760px) {
    .eco-header {
        padding: 16px 20px
    }

    .eco-brand {
        font-size: 17px
    }

    .eco-header-cta {
        display: none;
    }

    .eco-hero {
        grid-template-columns: 1fr;
        padding: 40px 20px;
        min-height: 0;
        gap: 32px;
        background: var(--brand-soft)
    }

    .eco-hero h1 {
        font-size: 40px
    }

    .eco-hero .hero-deck {
        font-size: 18px
    }

    .eco-hero .hero-context {
        min-height: 270px;
        max-height: 320px
    }

    .eco-summary {
        padding: 24px
    }

    .eco-summary ol {
        margin-bottom: 0
    }

    .eco-summary li {
        padding: 8px 0
    }

    .eco-breadcrumb {
        font-size: 14px;
        padding: 14px 20px
    }

    .eco-section {
        padding: 40px 20px
    }

    .eco-cards,
    .eco-list,
    .eco-footer {
        grid-template-columns: 1fr
    }

    .eco-cards article {
        padding: 22px
    }

    .eco-fields {
        grid-template-columns: 1fr;
        gap: 16px
    }

    .eco-tool,
    .eco-lead {
        padding: 22px 16px
    }

    .eco-metrics {
        grid-template-columns: 1fr
    }

    .eco-result {
        padding: 18px
    }

    .mega-panel {
        grid-template-columns: 1fr
    }

    .mega-panel>div:last-child {
        grid-column: auto;
        display: block
    }

    .eco-footer {
        padding: 40px 20px;
        gap: 32px
    }

    .eco-actions {
        flex-direction: column;
        align-items: stretch
    }

    .eco-tool [data-finder-output] .eco-cards {
        grid-template-columns: 1fr
    }

    .eco-section .section-head {
        margin-bottom: 18px
    }

    .eco-section h2 {
        font-size: 32px
    }

    .hero-actions .btn {
        width: 100%
    }

    .eco-list {
        gap: 12px
    }

    .eco-hero .hero-context .pulse-orbit {
        transform: scale(.72)
    }

    .eco-hero .hero-context .decision-matrix {
        transform: scale(.8)
    }

    .eco-hero .hero-context .energy-rings {
        transform: scale(.8)
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    *,
    *:before,
    *:after {
        animation: none !important;
        transition: none !important
    }
}

@media print {

    .eco-header,
    .eco-footer,
    .hero-actions,
    .eco-actions {
        display: none
    }

    .eco-section,
    .eco-hero {
        padding: 20px;
        break-inside: avoid
    }

    .eco-cards {
        grid-template-columns: repeat(2, 1fr)
    }
}

.eco-brand {
    background: none;
    border-radius: 0;
    padding: 0;
    display: block;
    flex-shrink: 0;
    width: 220px
}

.eco-brand img {
    width: 100%;
    height: auto
}

.footer-logo {
    width: 220px;
    height: auto;
    margin-bottom: 22px
}

@media(max-width:1180px) {
    .eco-brand {
        width: 200px
    }
}

@media(min-width:1181px) and (max-width:1300px) {
    .eco-header {
        gap: 15px
    }

    .eco-header nav {
        gap: 15px
    }

    .eco-brand {
        width: 200px
    }
}

@media(min-width:1181px) {
    .eco-header {
        position: sticky;
        top: 0
    }

    html {
        scroll-padding-top: 115px
    }
}

/* Mobile menu button: hamburger <-> close icon */
.eco-menu {
    display: none
}

@media(max-width:1180px) {
    .eco-menu {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        margin-left: auto;
        width: 48px;
        height: 48px;
        padding: 0;
        background: transparent;
        color: var(--night);
        border: 1px solid var(--cobalt);
        border-radius: 6px;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent
    }

    .eco-menu__bars {
        position: relative;
        display: block;
        width: 22px;
        height: 16px
    }

    .eco-menu__bars span {
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        border-radius: 2px;
        background: #fff;
        transition: transform .25s ease, opacity .2s ease, top .25s ease
    }

    .eco-menu__bars span:nth-child(1) {
        top: 0
    }

    .eco-menu__bars span:nth-child(2) {
        top: 7px
    }

    .eco-menu__bars span:nth-child(3) {
        top: 14px
    }

    .eco-menu[aria-expanded="true"] .eco-menu__bars span:nth-child(1) {
        top: 7px;
        transform: rotate(45deg)
    }

    .eco-menu[aria-expanded="true"] .eco-menu__bars span:nth-child(2) {
        opacity: 0
    }

    .eco-menu[aria-expanded="true"] .eco-menu__bars span:nth-child(3) {
        top: 7px;
        transform: rotate(-45deg)
    }
}

@media(max-width:760px) {
    .eco-brand {
        width: 180px
    }

    .eco-header {
        align-items: center
    }
}

/* ---------- EXPONENT NRG brand colour states (Brand & Website Guide v1.0) — colour only ---------- */
.eco-header-cta {
    border: 1px solid #00664f;
    transition: background-color .2s ease, color .2s ease
}

.eco-header-cta:hover {
    background: #fff;
    color: #00664f
}

.eco-header nav>a:hover,
.eco-header .mega summary:hover,
.mega-panel a:hover {
    color: var(--spruce)
}

.eco-actions .btn:not(:first-child):hover {
    background: var(--brand-soft)
}

.eco-footer a {
    color: var(--lime)
}

.eco-footer a:hover {
    color: #fff
}

.eco-summary .eyebrow {
    color: var(--lime)
}

.eco-footer :focus-visible,
.eco-summary :focus-visible,
.architecture :focus-visible,
.decision-support :focus-visible,
.explorer-scene :focus-visible,
.visual-final :focus-visible {
    outline-color: #fff
}