EU Taxonomy Reporting Platform
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@300;400;500;600&display=swap'); /* hide Dawn theme native purchase UI */ .product-form, .product__quantity, .price__container, .price, .product__tax, .product-form__buttons, .shopify-payment-button, .payment-button, [data-productid] form, .product__info-container .price, .product__info-container .product-form { display: none !important; } .elx *, .elx *::before, .elx *::after { margin:0; padding:0; box-sizing:border-box; } .elx img { display:block; max-width:100%; height:auto; } .elx{ --navy:#0A1628; --navy-h:#16233B; --ink:#0E1116; --teal:#4E9D8F; --teal-x:#7FBCAB; --mut:#5B6470; --mut-l:#8A929B; --faint:#98A0A8; --paper:#FBFBFA; --sage:#F4F8F6; --rule:#E7E9EC; --rule-l:#EFF1F3; --h1-max:54px; --impact-max:44px; font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:var(--ink); line-height:1.6; background:#fff; -webkit-font-smoothing:antialiased; width:100%; overflow-x:hidden; } .elx a{ text-decoration:none; } /* ── rhythm ─────────────────────────────────────────────────────────── */ .elx .sec{ padding:clamp(60px,6vw,102px) 22px; } .elx .sec-hero{ padding:clamp(40px,4vw,64px) 22px clamp(48px,5vw,88px); } .elx .sec-minor{ padding:clamp(48px,4.5vw,78px) 22px; } .elx .sec-final{ padding:clamp(68px,6.6vw,120px) 22px; } .elx .wrap{ max-width:1240px; margin:0 auto; } .elx .paper{ background:var(--paper); } .elx .dark{ background:var(--navy); } /* ── type ───────────────────────────────────────────────────────────── */ .elx .eyebrow{ display:block; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--teal); margin-bottom:14px; } .elx .dark .eyebrow{ color:var(--teal-x); } .elx h1{ font-weight:600; font-size:clamp(33px,4vw,var(--h1-max)); line-height:1.05; letter-spacing:-.026em; color:var(--ink); text-wrap:balance; } .elx h2{ font-weight:600; font-size:clamp(26px,2.9vw,36px); line-height:1.12; letter-spacing:-.026em; color:var(--ink); max-width:820px; text-wrap:balance; } .elx h2.impact{ font-size:clamp(27px,3.3vw,var(--impact-max)); line-height:1.08; max-width:900px; } .elx .dark h1, .elx .dark h2{ color:#fff; } .elx h3{ font-weight:600; font-size:clamp(20px,1.95vw,24px); line-height:1.24; letter-spacing:-.02em; } .elx .dark h3{ color:#fff; } .elx .lead{ font-size:clamp(16px,1.3vw,18px); line-height:1.6; font-weight:300; color:var(--mut); max-width:660px; margin-top:20px; } .elx .lead.wide{ max-width:780px; } .elx .dark .lead{ color:rgba(255,255,255,.74); } .elx .body{ font-size:clamp(14.5px,1.15vw,15.5px); line-height:1.65; font-weight:300; color:var(--mut); } .elx .dark .body{ color:rgba(255,255,255,.68); } .elx .statement{ font-weight:600; font-size:clamp(22px,2.4vw,30px); line-height:1.28; letter-spacing:-.02em; } .elx .dark .statement{ color:#fff; } .elx .mono{ font-family:'IBM Plex Mono',monospace; } .elx .small{ font-size:13px; line-height:1.5; color:var(--mut-l); font-weight:300; } /* ── actions ────────────────────────────────────────────────────────── */ .elx .ctas{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:26px; } .elx .btn{ display:inline-flex; align-items:center; gap:8px; font-size:14.5px; font-weight:600; padding:12px 22px; border-radius:8px; transition:background .2s, transform .15s, box-shadow .18s, border-color .2s; } .elx .btn.solid{ background:var(--navy); color:#fff; } .elx .btn.solid:hover{ background:var(--navy-h); transform:translateY(-2px); box-shadow:0 10px 24px rgba(10,22,40,.24); } .elx .btn.line{ color:var(--navy); border:1px solid rgba(10,22,40,.18); } .elx .btn.line:hover{ border-color:var(--navy); transform:translateY(-2px); } .elx .dark .btn.line{ color:#fff; border-color:rgba(255,255,255,.28); } .elx .dark .btn.line:hover{ border-color:#fff; } .elx .textcta{ display:inline-flex; align-items:center; gap:9px; font-size:15px; font-weight:500; color:var(--ink); border-bottom:1px solid #C6CCD2; padding-bottom:2px; transition:border-color .2s; } .elx .textcta:hover{ border-color:var(--ink); } .elx .dark .textcta{ color:#fff; border-color:rgba(255,255,255,.34); } .elx .dark .textcta:hover{ border-color:#fff; } .elx .textcta svg{ transition:transform .2s; } .elx .textcta:hover svg{ transform:translateX(3px); } /* ── hero variants ──────────────────────────────────────────────────── */ .elx .hero{ display:grid; grid-template-columns:55fr 45fr; gap:clamp(30px,4vw,58px); align-items:center; } .elx .hero.mirror{ grid-template-columns:45fr 55fr; } .elx .hero.mirror .hero-txt{ order:2; } .elx .hero-wide{ max-width:920px; } .elx .proof{ display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:30px; padding-top:16px; border-top:1px solid var(--rule); font-size:13.5px; color:var(--mut-l); font-weight:300; } .elx .keyfacts{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:38px; border-top:1px solid var(--ink); } .elx .keyfact{ padding:20px 24px 0; border-left:1px solid var(--rule); } .elx .keyfact:first-child{ padding-left:0; border-left:none; } .elx .keyfact .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--faint); margin-bottom:8px; } .elx .keyfact .v{ font-size:17px; font-weight:600; letter-spacing:-.02em; line-height:1.25; } .elx .keyfact p{ font-size:13.5px; line-height:1.55; color:var(--mut); font-weight:300; margin-top:6px; } /* ── browser frame and panels ───────────────────────────────────────── */ .elx .frame{ border:1px solid var(--rule); border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 22px 52px rgba(10,22,40,.13); } .elx .frame.big{ box-shadow:0 26px 60px rgba(10,22,40,.15); } .elx .frame-bar{ display:flex; align-items:center; gap:7px; padding:10px 14px; border-bottom:1px solid var(--rule-l); background:var(--paper); } .elx .frame-bar i{ width:9px; height:9px; border-radius:50%; background:#DFE3E7; display:block; } .elx .frame-bar span{ margin-left:8px; font-size:11px; color:var(--mut-l); font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .elx .crop{ height:340px; overflow:hidden; } .elx .crop img{ width:100%; object-fit:cover; object-position:left top; height:100%; } .elx .panel-body{ padding:16px; } .elx .prow{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border:1px solid var(--rule-l); border-radius:8px; margin-bottom:8px; min-width:0; } .elx .prow:last-of-type{ margin-bottom:0; } .elx .prow.on{ border-color:var(--teal); background:#F7FBF9; } .elx .prow .pl{ font-size:13.5px; color:var(--ink); min-width:0; } .elx .prow .pr{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--mut); white-space:nowrap; } .elx .tag{ font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.06em; padding:4px 9px; border-radius:5px; white-space:nowrap; } .elx .tag.done{ color:var(--teal); background:#EAF3F0; } .elx .tag.wip{ color:#B9821F; background:#FBF3E4; } .elx .tag.na{ color:var(--mut); background:#F1F3F5; } .elx .pmeta{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:14px; padding-top:12px; border-top:1px solid var(--rule-l); font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); } .elx .pair{ display:grid; grid-template-columns:1fr 260px; gap:16px; align-items:end; } .elx .detail{ border:1px solid var(--rule); border-radius:10px; background:#fff; padding:14px 15px; box-shadow:0 12px 30px rgba(10,22,40,.08); } .elx .detail .k{ font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); margin-bottom:7px; } .elx .detail .v{ font-size:19px; font-weight:600; letter-spacing:-.02em; } .elx .detail .s{ font-size:11.5px; color:var(--mut-l); margin-top:3px; line-height:1.45; } /* ── output and sample ──────────────────────────────────────────────── */ .elx .doc{ display:block; } .elx .doc img{ width:100%; border:1px solid var(--rule); box-shadow:0 30px 66px rgba(10,22,40,.15); transition:transform .25s, box-shadow .25s; } .elx .doc:hover img{ transform:translateY(-3px); box-shadow:0 36px 76px rgba(10,22,40,.2); } .elx .doc.narrow{ max-width:72%; margin-top:38px; } .elx .outgrid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4.5vw,64px); align-items:center; margin-top:40px; } .elx .outgrid.flip .out-txt{ order:-1; } .elx .inside{ list-style:none; border-top:1px solid var(--rule); } .elx .inside li{ padding:13px 0; border-bottom:1px solid var(--rule-l); font-size:14.5px; color:#41474F; font-weight:300; display:flex; gap:14px; } .elx .inside li b{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.1em; color:var(--teal); font-weight:500; flex:0 0 46px; padding-top:3px; } .elx .pillars{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:42px; } .elx .pillar{ padding:0 24px; border-left:1px solid var(--rule); } .elx .pillar:first-child{ padding-left:0; border-left:none; } .elx .pillar .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--ink); margin-bottom:7px; } .elx .pillar p{ font-size:13.5px; line-height:1.55; color:var(--mut); font-weight:300; } /* ── perimeter table (rows of regime / instrument / who / when) ─────── */ .elx .per{ margin-top:44px; border-top:1px solid var(--ink); } .elx .per-hd, .elx .per-row{ display:grid; grid-template-columns:1.15fr 1.35fr 1.5fr 1.25fr; gap:0 28px; } .elx .per-hd{ padding:12px 0; border-bottom:1px solid var(--rule); } .elx .per-hd .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--faint); } .elx .per-row{ padding:24px 0; border-bottom:1px solid var(--rule); align-items:start; transition:background .2s; } .elx .per-row:hover{ background:var(--sage); } .elx .per-row .a{ font-size:15px; font-weight:600; letter-spacing:-.015em; color:var(--ink); } .elx .per-row .a em{ display:block; font-style:normal; font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.11em; text-transform:uppercase; color:var(--teal); margin-bottom:6px; font-weight:500; } .elx .per-row p{ font-size:14px; line-height:1.6; color:var(--mut); font-weight:300; } .elx .per-row .when{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; line-height:1.55; color:var(--ink); } .elx .per-row .when small{ display:block; font-family:'IBM Plex Sans',sans-serif; font-size:12px; color:var(--mut-l); margin-top:4px; font-weight:300; letter-spacing:0; } .elx .per-base{ padding:20px 22px; background:var(--navy); color:#fff; } .elx .per-base .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal-x); margin-bottom:6px; } .elx .per-base p{ font-size:15px; font-weight:300; color:rgba(255,255,255,.9); max-width:700px; } /* ── fork: one source, two outputs ──────────────────────────────────── */ .elx .duo{ display:grid; grid-template-columns:1fr 44px 1.15fr; gap:0; margin-top:40px; align-items:center; } .elx .duo-src{ border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.03); padding:24px 24px 22px; } .elx .duo-src .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal-x); margin-bottom:12px; } .elx .duo-src .v{ font-size:19px; font-weight:600; color:#fff; letter-spacing:-.02em; line-height:1.25; } .elx .duo-src ul{ list-style:none; margin-top:16px; } .elx .duo-src li{ font-size:13.5px; color:rgba(255,255,255,.6); font-weight:300; padding:5px 0; border-top:1px solid rgba(255,255,255,.09); } .elx .duo-fork{ position:relative; height:100%; min-height:180px; } .elx .duo-fork svg{ position:absolute; inset:0; width:100%; height:100%; } .elx .duo-out{ display:grid; gap:14px; } .elx .duo-card{ border:1px solid rgba(127,188,171,.4); background:rgba(78,157,143,.08); padding:20px 22px; } .elx .duo-card .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal-x); margin-bottom:9px; } .elx .duo-card .v{ font-size:16px; font-weight:600; color:#fff; letter-spacing:-.015em; line-height:1.3; } .elx .duo-card p{ font-size:13.5px; line-height:1.6; color:rgba(255,255,255,.66); font-weight:300; margin-top:7px; } .elx .duo-card a{ display:inline-block; margin-top:12px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-x); border-bottom:1px solid rgba(127,188,171,.5); padding-bottom:2px; } .elx .duo-card a:hover{ border-color:var(--teal-x); } /* ── split path: two regimes side by side ───────────────────────────── */ .elx .paths{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:42px; border-top:1px solid var(--rule); } .elx .path{ padding:30px 32px 32px; border-left:1px solid var(--rule); } .elx .path:first-child{ padding-left:0; border-left:none; } .elx .path .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal); margin-bottom:10px; } .elx .path h3{ margin-bottom:6px; } .elx .path .sub{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--mut-l); margin-bottom:16px; } .elx .path p{ font-size:14.5px; line-height:1.65; color:var(--mut); font-weight:300; } .elx .path ul{ list-style:none; margin-top:18px; } .elx .path li{ font-size:14px; color:#41474F; font-weight:300; padding:9px 0; border-bottom:1px solid var(--rule-l); } .elx .path li:first-child{ border-top:1px solid var(--rule-l); } .elx .path .foot-note{ margin-top:18px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); } .elx .paths-join{ margin-top:0; padding:22px; background:var(--navy); display:flex; align-items:center; gap:18px; flex-wrap:wrap; } .elx .paths-join .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal-x); } .elx .paths-join p{ font-size:15px; font-weight:300; color:rgba(255,255,255,.9); } /* ── transition map: from an old regime to a new one ────────────────── */ .elx .tmap{ margin-top:42px; border-top:1px solid var(--ink); } .elx .tmap-hd{ display:grid; grid-template-columns:1fr 56px 1fr; gap:0 24px; padding:12px 0; border-bottom:1px solid var(--rule); } .elx .tmap-hd .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--faint); } .elx .tmap-row{ display:grid; grid-template-columns:1fr 56px 1fr; gap:0 24px; padding:20px 0; border-bottom:1px solid var(--rule); align-items:center; } .elx .tmap-row .from{ font-size:14.5px; color:var(--mut); font-weight:300; } .elx .tmap-row .to{ font-size:14.5px; color:var(--ink); font-weight:400; } .elx .tmap-row .to b{ font-weight:600; } .elx .tmap-row .arr{ display:flex; align-items:center; justify-content:center; color:#C4CCD2; } .elx .tmap-row.new .to{ background:var(--sage); padding:10px 14px; border-left:2px solid var(--teal); } .elx .tmap-note{ padding:18px 0 0; font-size:13.5px; color:var(--mut-l); font-weight:300; } /* ── phased timeline ────────────────────────────────────────────────── */ .elx .phase{ margin-top:44px; } .elx .phase-track{ display:grid; grid-template-columns:repeat(var(--n,3),1fr); gap:0; } .elx .ph{ padding:0 22px; border-left:1px solid rgba(255,255,255,.16); position:relative; } .elx .ph:first-child{ padding-left:0; border-left:none; } .elx .ph .yr{ font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.12em; color:var(--teal-x); margin-bottom:12px; } .elx .ph .bar{ height:3px; background:rgba(255,255,255,.16); margin-bottom:18px; } .elx .ph.on .bar{ background:var(--teal-x); } .elx .ph .t{ font-size:16px; font-weight:600; color:#fff; letter-spacing:-.015em; line-height:1.3; } .elx .ph p{ font-size:13.5px; line-height:1.6; color:rgba(255,255,255,.62); font-weight:300; margin-top:9px; } .elx .ph ul{ list-style:none; margin-top:12px; } .elx .ph li{ font-size:13px; color:rgba(255,255,255,.55); font-weight:300; padding:4px 0; } .elx .ph.on li{ color:rgba(255,255,255,.8); } /* light phased timeline */ .elx .phase.light .ph{ border-left-color:var(--rule); } .elx .phase.light .ph .yr{ color:var(--teal); } .elx .phase.light .ph .bar{ background:var(--rule); } .elx .phase.light .ph.on .bar{ background:var(--navy); } .elx .phase.light .ph .t{ color:var(--ink); } .elx .phase.light .ph p{ color:var(--mut); } .elx .phase.light .ph li{ color:var(--mut); } /* ── decision chain (gates) ─────────────────────────────────────────── */ .elx .gates{ margin-top:42px; display:grid; gap:0; } .elx .gate{ display:grid; grid-template-columns:52px 1fr 200px; gap:0 24px; padding:22px 0; border-top:1px solid var(--rule); align-items:start; } .elx .gate:last-of-type{ border-bottom:1px solid var(--rule); } .elx .gate .n{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; color:var(--teal); padding-top:4px; } .elx .gate .t{ font-size:16.5px; font-weight:600; letter-spacing:-.018em; line-height:1.3; } .elx .gate p{ font-size:14px; line-height:1.6; color:var(--mut); font-weight:300; margin-top:7px; max-width:620px; } .elx .gate .res{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--mut-l); padding-top:5px; } .elx .gate .res b{ display:block; color:var(--ink); font-weight:500; } .elx .gate-out{ margin-top:0; padding:24px 26px; background:var(--navy); display:grid; grid-template-columns:repeat(3,1fr); gap:24px; } .elx .gate-out .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal-x); margin-bottom:8px; } .elx .gate-out .v{ font-size:24px; font-weight:600; color:#fff; letter-spacing:-.025em; } .elx .gate-out p{ font-size:12.5px; color:rgba(255,255,255,.6); font-weight:300; margin-top:5px; } /* ── materiality matrix ─────────────────────────────────────────────── */ .elx .matwrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4.5vw,64px); align-items:center; margin-top:42px; } .elx .mat{ position:relative; border-left:1px solid var(--ink); border-bottom:1px solid var(--ink); padding:0 0 32px 34px; } .elx .mat-grid{ position:relative; aspect-ratio:1/1; background: linear-gradient(to right, var(--rule-l) 1px, transparent 1px) 0 0/25% 100%, linear-gradient(to top, var(--rule-l) 1px, transparent 1px) 0 100%/100% 25%; border:1px solid var(--rule-l); background-color:var(--paper); } .elx .mdot{ position:absolute; transform:translate(-50%,50%); } .elx .mdot i{ display:block; width:11px; height:11px; border-radius:50%; background:#C7CFD6; border:2px solid #fff; box-shadow:0 2px 6px rgba(10,22,40,.15); } .elx .mdot.mat-on i{ background:var(--teal); width:14px; height:14px; } .elx .mdot span{ position:absolute; left:19px; top:50%; transform:translateY(-50%); white-space:nowrap; font-size:11.5px; color:var(--mut); font-weight:300; } .elx .mdot.mat-on span{ color:var(--ink); font-weight:500; } .elx .mdot.flipL span, .elx .mdot span.flipL{ left:auto; right:19px; } .elx .mat-x, .elx .mat-y{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--faint); white-space:nowrap; } .elx .mat-x{ position:absolute; bottom:8px; left:34px; } .elx .mat-y{ position:absolute; left:-2px; top:50%; transform:rotate(-90deg) translateX(50%); transform-origin:left center; } .elx .mat-legend{ display:flex; gap:20px; margin-top:18px; flex-wrap:wrap; } .elx .mat-legend span{ font-size:12.5px; color:var(--mut-l); font-weight:300; display:inline-flex; align-items:center; gap:7px; } .elx .mat-legend i{ width:9px; height:9px; border-radius:50%; background:#C7CFD6; } .elx .mat-legend i.on{ background:var(--teal); } /* ── departmental / operational flow ────────────────────────────────── */ .elx .lanes{ margin-top:42px; border-top:1px solid var(--ink); } .elx .lane{ display:grid; grid-template-columns:190px 1fr 1fr; gap:0 26px; padding:20px 0; border-bottom:1px solid var(--rule); align-items:start; } .elx .lane .who{ font-size:15px; font-weight:600; letter-spacing:-.015em; } .elx .lane .who em{ display:block; font-style:normal; font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); margin-bottom:6px; font-weight:500; } .elx .lane p{ font-size:14px; line-height:1.6; color:var(--mut); font-weight:300; } .elx .flowline{ display:flex; align-items:stretch; flex-wrap:wrap; gap:0; margin-top:42px; border:1px solid var(--rule); } .elx .fnode{ flex:1 1 0; min-width:170px; padding:22px 22px 24px; border-left:1px solid var(--rule); } .elx .fnode:first-child{ border-left:none; } .elx .fnode .n{ font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.13em; color:var(--teal); margin-bottom:10px; } .elx .fnode .t{ font-size:15px; font-weight:600; letter-spacing:-.015em; line-height:1.3; } .elx .fnode p{ font-size:13px; line-height:1.55; color:var(--mut); font-weight:300; margin-top:8px; } .elx .flowline.vert{ display:block; } .elx .flowline.vert .fnode{ display:grid; grid-template-columns:190px 1fr; gap:0 26px; border-left:none; border-top:1px solid var(--rule); padding:20px 24px; } .elx .flowline.vert .fnode:first-child{ border-top:none; } .elx .flowline.vert .fnode .n{ margin-bottom:7px; } .elx .flowline.vert .fnode p{ margin-top:0; font-size:14px; line-height:1.6; } .elx .fnode.end{ background:var(--navy); } .elx .fnode.end .n{ color:var(--teal-x); } .elx .fnode.end .t{ color:#fff; } .elx .fnode.end p{ color:rgba(255,255,255,.66); } /* ── layered baseline and overlay ───────────────────────────────────── */ .elx .layers{ margin-top:42px; } .elx .layer{ border:1px solid var(--rule); border-bottom:none; padding:22px 26px; background:#fff; display:grid; grid-template-columns:170px 1fr; gap:0 26px; align-items:start; } .elx .layer:last-child{ border-bottom:1px solid var(--rule); } .elx .layer.base{ background:var(--navy); border-color:var(--navy); } .elx .layer.base .k{ color:var(--teal-x); } .elx .layer.base .t{ color:#fff; } .elx .layer.base p{ color:rgba(255,255,255,.66); } .elx .layer.over{ background:var(--sage); border-left:2px solid var(--teal); } .elx .layer .k{ font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal); margin-bottom:7px; } .elx .layer .t{ font-size:15.5px; font-weight:600; letter-spacing:-.015em; line-height:1.3; } .elx .layer p{ font-size:14px; line-height:1.6; color:var(--mut); font-weight:300; } .elx .layer ul{ list-style:none; margin-top:10px; display:grid; grid-template-columns:1fr 1fr; gap:0 22px; } .elx .layer li{ font-size:13.5px; color:var(--mut); font-weight:300; padding:5px 0; border-top:1px solid var(--rule-l); } .elx .layer.base li{ color:rgba(255,255,255,.62); border-top-color:rgba(255,255,255,.1); } /* ── sticky workflow rail ───────────────────────────────────────────── */ .elx .flow{ display:grid; grid-template-columns:210px 1fr; gap:clamp(28px,5vw,72px); margin-top:44px; align-items:start; } .elx .rail{ position:sticky; top:100px; } .elx .rail a{ display:block; padding:11px 0 11px 15px; border-left:2px solid var(--rule); transition:border-color .25s, color .25s; } .elx .rail a .n{ font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.12em; color:var(--faint); display:block; margin-bottom:3px; } .elx .rail a .t{ font-size:15px; font-weight:500; color:var(--mut-l); letter-spacing:-.01em; transition:color .25s; } .elx .rail a.on{ border-left-color:var(--navy); } .elx .rail a.on .t{ color:var(--ink); } .elx .rail a.on .n{ color:var(--teal); } .elx .stage{ margin-bottom:76px; } .elx .stage:last-child{ margin-bottom:0; } .elx .stage .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal); margin-bottom:10px; } .elx .stage .body{ margin-top:11px; max-width:560px; } .elx .stage .vis{ margin-top:26px; } /* ── alternating build blocks ───────────────────────────────────────── */ .elx .blk{ display:grid; grid-template-columns:1fr 1.25fr; gap:clamp(28px,4.5vw,64px); align-items:center; margin-top:clamp(48px,5vw,78px); } .elx .blk.flip .blk-txt{ order:2; } .elx .blk .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal); margin-bottom:11px; } .elx .blk .body{ margin-top:11px; } .elx .blk ul{ list-style:none; margin-top:18px; } .elx .blk li{ font-size:14px; color:#41474F; font-weight:300; padding:8px 0; border-bottom:1px solid var(--rule-l); } .elx .cadence{ margin-top:clamp(46px,5vw,72px); padding-top:32px; border-top:1px solid var(--rule); display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; } .elx .dark .cadence{ border-top-color:rgba(255,255,255,.16); } /* ── calendar / cycle ───────────────────────────────────────────────── */ .elx .cal{ display:grid; grid-template-columns:repeat(var(--n,4),1fr); gap:0; margin-top:42px; } .elx .cstep{ padding:22px 24px 6px; border-top:2px solid rgba(255,255,255,.24); } .elx .cstep:first-child{ padding-left:0; } .elx .cstep.now{ border-top-color:var(--teal-x); } .elx .cstep .m{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--teal-x); margin-bottom:10px; } .elx .cstep .t{ font-size:15.5px; font-weight:600; color:#fff; letter-spacing:-.015em; line-height:1.3; } .elx .cstep p{ font-size:13.5px; line-height:1.6; color:rgba(255,255,255,.62); font-weight:300; margin-top:8px; } .elx .three{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(22px,3vw,44px); margin-top:44px; } .elx .three .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-x); margin-bottom:8px; } .elx .three p{ font-size:14.5px; line-height:1.6; color:rgba(255,255,255,.72); font-weight:300; } .elx section:not(.dark) .three .k{ color:var(--teal); } .elx section:not(.dark) .three p{ color:var(--mut); } /* ── scale rail and columns ─────────────────────────────────────────── */ .elx .scale{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 4px; margin-top:36px; padding:20px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); } .elx .sstep{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); padding:6px 0; } .elx .sarr{ color:#C4CCD2; padding:0 14px; display:flex; align-items:center; } .elx .cols3{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3.4vw,52px); margin-top:34px; } .elx .col .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--faint); margin-bottom:9px; } .elx .col p{ font-size:14.5px; line-height:1.6; color:var(--mut); font-weight:300; } /* ── topic grid ─────────────────────────────────────────────────────── */ .elx .topics{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin-top:42px; border-top:1px solid var(--ink); } .elx .topic{ padding:20px 20px 22px; border-left:1px solid var(--rule); border-bottom:1px solid var(--rule); transition:background .2s; } .elx .topic:hover{ background:var(--sage); } .elx .topic .c{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; color:var(--teal); margin-bottom:8px; } .elx .topic .t{ font-size:14.5px; font-weight:600; letter-spacing:-.015em; line-height:1.3; } .elx .topic p{ font-size:12.5px; line-height:1.5; color:var(--mut); font-weight:300; margin-top:6px; } .elx .topic.cross{ background:var(--navy); border-color:var(--navy); } .elx .topic.cross .c{ color:var(--teal-x); } .elx .topic.cross .t{ color:#fff; } .elx .topic.cross p{ color:rgba(255,255,255,.62); } .elx .topics .topic:nth-child(5n+1){ border-left:none; } /* ── spec and faq ───────────────────────────────────────────────────── */ .elx .databar{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 30px; padding:18px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); margin-bottom:clamp(40px,4.5vw,66px); } .elx .databar .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--faint); } .elx .databar span{ font-size:14px; color:var(--ink); font-weight:300; } .elx .split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,76px); align-items:start; } .elx .speclist{ display:grid; grid-template-columns:1fr 1fr; gap:0 26px; margin-top:24px; } .elx .speclist ul{ list-style:none; } .elx .speclist li{ font-size:14.5px; color:#41474F; font-weight:300; padding:8px 0; border-bottom:1px solid var(--rule-l); } .elx .faq{ margin-top:24px; border-top:1px solid var(--rule); } .elx .faq details{ border-bottom:1px solid var(--rule); } .elx .faq summary{ list-style:none; cursor:pointer; padding:16px 0; font-size:15.5px; font-weight:500; letter-spacing:-.01em; color:var(--ink); display:flex; justify-content:space-between; gap:16px; } .elx .faq summary::-webkit-details-marker{ display:none; } .elx .faq summary::after{ content:'+'; color:var(--teal); font-size:20px; line-height:1; font-weight:400; } .elx .faq details[open] summary::after{ content:'\2013'; } .elx .faq p{ padding:0 0 18px; font-size:14.5px; line-height:1.7; color:var(--mut); font-weight:300; } /* ── close ──────────────────────────────────────────────────────────── */ .elx .close{ background:linear-gradient(180deg,#FFFFFF 0%,#F4F6F8 55%,#E9EDF1 100%); } .elx .foot{ padding:26px 22px; text-align:center; font-size:11.5px; line-height:1.7; color:#9AA3AD; font-weight:300; border-top:1px solid var(--rule-l); } /* ── tablet ─────────────────────────────────────────────────────────── */ @media (max-width:980px){ .elx .hero, .elx .hero.mirror{ grid-template-columns:1fr; gap:34px; } .elx .hero.mirror .hero-txt{ order:0; } .elx .crop{ height:280px; } .elx .doc.narrow{ max-width:100%; } .elx .outgrid{ grid-template-columns:1fr; gap:34px; } .elx .outgrid.flip .out-txt{ order:0; } .elx .keyfacts{ grid-template-columns:1fr; } .elx .keyfact{ padding:18px 0 0; border-left:none; border-top:1px solid var(--rule); } .elx .keyfact:first-child{ border-top:none; } .elx .per-hd, .elx .tmap-hd{ display:none; } .elx .per-row{ grid-template-columns:1fr; gap:10px; padding:22px 0; } .elx .tmap-row{ grid-template-columns:1fr; gap:10px; } .elx .tmap-row .arr{ justify-content:flex-start; transform:rotate(90deg); width:24px; } .elx .duo{ grid-template-columns:1fr; } .elx .duo-fork{ min-height:44px; } .elx .paths{ grid-template-columns:1fr; } .elx .path{ padding:26px 0 28px; border-left:none; border-top:1px solid var(--rule); } .elx .path:first-child{ border-top:none; padding-top:26px; } .elx .blk, .elx .blk.flip .blk-txt{ grid-template-columns:1fr; order:0; } .elx .blk{ gap:28px; } .elx .flow{ grid-template-columns:1fr; gap:26px; } .elx .rail{ position:static; display:flex; gap:0; border-bottom:1px solid var(--rule); } .elx .rail a{ flex:1; border-left:none; border-bottom:2px solid var(--rule); padding:0 0 10px; } .elx .rail a.on{ border-left-color:var(--rule); border-bottom-color:var(--navy); } .elx .split{ grid-template-columns:1fr; gap:44px; } .elx .matwrap{ grid-template-columns:1fr; gap:34px; } .elx .lane{ grid-template-columns:1fr; gap:10px; } .elx .layer{ grid-template-columns:1fr; gap:12px; } .elx .gate{ grid-template-columns:40px 1fr; } .elx .gate .res{ grid-column:2; padding-top:12px; } .elx .gate-out{ grid-template-columns:1fr; gap:18px; } .elx .cal, .elx .phase-track{ grid-template-columns:1fr 1fr; } .elx .topics{ grid-template-columns:repeat(2,1fr); } .elx .topics .topic:nth-child(5n+1){ border-left:1px solid var(--rule); } .elx .topics .topic:nth-child(2n+1){ border-left:none; } .elx .cstep:nth-child(3), .elx .ph:nth-child(3){ padding-left:0; border-left:none; } .elx .pair{ grid-template-columns:1fr; } .elx .detail{ max-width:320px; } } /* ── phone ──────────────────────────────────────────────────────────── */ @media (max-width:640px){ .elx .flowline.vert .fnode{ grid-template-columns:1fr; gap:10px; padding:18px 0; } .elx .topics{ grid-template-columns:1fr; } .elx .topics .topic{ border-left:none !important; } .elx .sec{ padding:clamp(52px,10vw,64px) 22px; } .elx .sec-minor{ padding:clamp(44px,8vw,56px) 22px; } .elx .pillars{ grid-template-columns:1fr 1fr; gap:20px 0; } .elx .pillar{ padding:0 16px; } .elx .pillar:nth-child(odd){ padding-left:0; border-left:none; } .elx .three{ grid-template-columns:1fr; gap:22px; } .elx .cols3{ grid-template-columns:1fr; gap:24px; } .elx .cal, .elx .phase-track{ grid-template-columns:1fr; gap:0; } .elx .cstep{ padding:18px 0 4px; } .elx .ph{ padding:18px 0 0; border-left:none; } .elx .ph:first-child{ padding-top:0; } .elx .flowline{ display:block; } .elx .fnode{ border-left:none; border-top:1px solid var(--rule); } .elx .fnode:first-child{ border-top:none; } .elx .layer ul{ grid-template-columns:1fr; } .elx .speclist{ grid-template-columns:1fr; } .elx .stage{ margin-bottom:52px; } .elx .btn{ width:100%; justify-content:center; } .elx .crop{ height:230px; } .elx .scale{ gap:6px 0; } .elx .sarr{ padding:0 10px; transform:rotate(90deg); } .elx .cadence{ flex-direction:column; align-items:flex-start; gap:18px; } .elx .rail a .t{ font-size:13.5px; } .elx .per-base, .elx .paths-join, .elx .gate-out{ padding:18px; } .elx .duo-src, .elx .duo-card{ padding:18px; } .elx .prow{ flex-wrap:wrap; } .elx .mdot span{ font-size:10.5px; } .elx h1, .elx h2, .elx .lead, .elx .body{ overflow-wrap:break-word; } .elx .frame *, .elx .panel-body *{ min-width:0; } } EU Taxonomy | Article 8 | Turnover, CapEx and OpEx The Taxonomy is not a sustainability report. It is an accounting exercise with an environmental test attached. Three KPIs, each a proportion of a financial total, each requiring every euro in the numerator to survive four separate tests. EcoLedger runs the classification, holds the evidence and reconciles the result back to your accounts. See the platform View sample disclosure Six objectivesTechnical screening criteriaDNSHMinimum safeguardsDelegated Acts app.theecoledger.com · Taxonomy KPIs Turnover · aligned61.4 % Turnover · eligible, not aligned18.2 % CapEx · aligned44.9 % CapEx · eligible, not aligned21.0 % OpEx · aligned37.6 % Reconciled to the accountsEvidence on every activity How an activity becomes aligned Four gates. An activity has to pass all of them. Most of the argument in a Taxonomy assessment is about where an activity failed, and being able to say precisely which gate it failed at is what makes the number defensible. 01 Is the activity eligible? Does it appear in the Delegated Acts as an economic activity described under one of the six environmental objectives? Eligibility is a matter of description, not performance, and an eligible activity is not yet an aligned one. ResultEligible or not eligible 02 Does it make a substantial contribution? Does it meet the technical screening criteria for its objective? This is where measured thresholds apply, and where the evidence has to be specific to the asset or the activity rather than to the company as a whole. ResultCriteria met or not met 03 Does it do no significant harm? Does it avoid significant harm to each of the other five objectives? A single DNSH failure removes an activity from the aligned figure however strong its substantial contribution is. ResultDNSH passed or failed 04 Are the minimum safeguards satisfied? Is the company aligned with the OECD Guidelines for Multinational Enterprises and the UN Guiding Principles on Business and Human Rights? This test applies at company level, so it can remove every activity at once. ResultSafeguards met or not met Turnover 61.4 % Aligned proportion, disclosed alongside the eligible proportion CapEx 44.9 % Aligned proportion, including activities on a CapEx plan OpEx 37.6 % Aligned proportion of the defined OpEx numerator The KPIs Every KPI is a fraction. The denominator has to tie back to the accounts. Taxonomy disclosure fails review for accounting reasons far more often than for environmental ones. A numerator nobody can trace, or a denominator that does not reconcile, is the usual finding. KPI Numerator Denominator Ties back to KPI oneTurnover Net turnover derived from products and services associated with Taxonomy aligned economic activities. Total net turnover for the period, taken from the financial statements. Income statementRevenue recognised in the reporting period KPI twoCapEx Additions to tangible and intangible assets that relate to aligned activities, or that form part of a plan to expand or upgrade toward alignment. Total additions to tangible and intangible assets in the period, before depreciation and revaluation. Asset noteIncluding additions from business combinations KPI threeOpEx Direct non capitalised costs relating to aligned activities, within the defined categories. Total direct non capitalised research and development, building renovation, short term lease, maintenance and repair costs. Cost analysisA defined subset, not total operating expenditure The point of the reconciliation In EcoLedger each activity carries the financial line it was drawn from, so a reviewer can move from a percentage in the disclosure to the underlying figure in the accounts without a separate working paper. The output Start with what you actually have to publish. The Article 8 disclosure with all three KPIs, the eligible and aligned proportions, and the assessment behind every activity included in the numerators. KPITurnover, CapEx and OpEx, eligible and aligned, in the required templates ACTIVITYEvery activity assessed, with the objective it contributes to TSCTechnical screening criteria tested, with the measured evidence recorded DNSHDo no significant harm assessed against the other five objectives MSSMinimum social safeguards, assessed at company level BINDERAn assessment binder a reviewer can work through activity by activity Read the full sample disclosure Inside EcoLedger How the Taxonomy assessment gets built. 01 Classify Split the business into economic activities. The assessment begins as a mapping exercise: which parts of the business correspond to which activities in the Delegated Acts, and how turnover, additions and defined costs split across them without being double counted. Activity mapping across the six environmental objectives Financial lines allocated to activities, with no double counting Eligible and non eligible proportions calculated separately Group structure held, so entities can be assessed and then consolidated app.theecoledger.com · Activity mapping 4.1 Electricity generation, solarAligned 6.5 Transport by motorcycles and light vehiclesAligned 7.7 Acquisition and ownership of buildingsTSC in progress 3.6 Manufacture of other low carbon technologiesEligible, DNSH failed Support servicesNot eligible Turnover allocated in fullNo activity counted twice 02 Assess Test the criteria, and keep the evidence. Each activity is tested against its technical screening criteria, then against DNSH for the other five objectives, with the measurement, the source and the supporting document recorded against each test rather than summarised afterwards. Technical screening criteria from the Delegated Acts, by activity DNSH assessed objective by objective Minimum safeguards assessed at company level Evidence attached to the individual test, not to the activity as a whole app.theecoledger.com · Emissions and measured criteria 03 Disclose Produce the templates and the binder behind them. The KPIs are produced in the required disclosure templates, alongside an assessment binder that lets a reviewer follow any percentage back to the activity, the test and the document that supports it. Turnover, CapEx and OpEx templates Eligible and aligned proportions disclosed together Assessment binder exported for review Word and Excel output app.theecoledger.com · Disclosure builder Classify. Assess. Disclose. See how an activity is traced from KPI back to evidence Scope Fewer filers. The same lenders asking the same question. Taxonomy disclosure applies to companies within the scope of CSRD, and the Omnibus simplification narrowed that population considerably. What it did not narrow is the number of banks, investors and public funders that ask for the aligned proportion of turnover or capital expenditure before they price anything. In scope Large EU undertakings above the higher thresholds continue to disclose the three KPIs under Article 8. Deferred or out Companies preparing first disclosures may now be able to defer, or may be outside the requirement entirely. Still asked Lenders, investors and grant funders continue to request the KPIs, whether or not there is an obligation to publish them. A Taxonomy number without an assessment behind it is a number you cannot defend when it is questioned. Discuss your reporting requirements Your data On device optionEncrypted syncPasswordless accessExport at any time What is included Taxonomy reporting in EcoLedger. Six environmental objectives Delegated Acts activity list Technical screening criteria DNSH assessment Minimum social safeguards Turnover KPI CapEx KPI, including CapEx plans OpEx KPI Eligible and aligned proportions Reconciliation to the accounts Assessment binder Word and Excel output Common questions What is the difference between eligible and aligned? An activity is eligible if it appears in the Delegated Acts as a described economic activity. It is aligned if it also meets the technical screening criteria for a substantial contribution, does no significant harm to the other five objectives, and the company satisfies the minimum social safeguards. Both proportions are disclosed, and the gap between them is often the most informative part of the disclosure. Which environmental objectives are covered? All six: climate change mitigation, climate change adaptation, sustainable use and protection of water and marine resources, transition to a circular economy, pollution prevention and control, and protection and restoration of biodiversity and ecosystems. How do the KPIs reconcile to our financial statements? Each KPI is a proportion of a financial total taken from the accounts: net turnover, additions to tangible and intangible assets, and a defined subset of non capitalised costs. In EcoLedger each activity carries the financial line it was drawn from, so a reviewer can trace a percentage back to the underlying figure without a separate working paper. What happens when the criteria change? The criteria are updated as the Delegated Acts are amended. Prior year assessments keep the criteria version they were prepared under, so a change in the rules is visible as a change rather than as an unexplained movement in the KPI. Who still needs to report? Taxonomy disclosure applies to companies within the scope of CSRD, and the Omnibus simplification narrowed that scope to the largest undertakings. Companies outside it often still produce the KPIs because lenders, investors and public funders request them. Confirm your position with your advisers. See it with your reporting Bring one activity you are unsure about. We will take it through all four gates. Bring a revenue line, a capital project or a prior year assessment you were never comfortable with. We will map it into the EcoLedger process and show you where it passes, where it fails and what evidence the difference requires. Discuss your reporting requirements View sample disclosure EcoLedger supports EU Taxonomy assessment and Article 8 disclosure. It supports the preparation of your reporting and your own review and assurance process. It does not provide an assurance opinion.