The following has evaluated to null or missing: ==> bread.link.getFriendlyUrl() [in template "20099#20135#32263694" at line 39, column 52] ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${bread.link.getFriendlyUrl()} [in template "20099#20135#32263694" at line 39, column 50] ----
1<div class="canvasHero
2 j-canvasHero
3 <#if isCenterContent?? && getterUtil.getBoolean(isCenterContent.getData())>
4 canvasHero--center
5 </#if>
6 <#if isSmallCanvas?? && getterUtil.getBoolean(isSmallCanvas.getData())>
7 canvasHero--small
8 </#if>">
9 <div class="canvasHero__image">
10 <#if imgDesktop?? && imgDesktop.getData()?has_content && imgMobile?? && imgMobile.getData()?has_content>
11
12 <picture class="picture">
13 <source class="j-picture__srcMobile" media="(max-width: 767px)" srcset="${imgMobile.getData()}">
14 <source class="j-picture__srcTablet" media="(max-width: 1023px)" srcset="${imgMobile.getData()}">
15 <source class="j-picture__srcDesktop" media="(max-width: 1440px)" srcset="${imgDesktop.getData()}">
16 <source class="j-picture__srcBigDesktop" srcset="${imgDesktop.getData()}">
17 <img class="picture__img" src="${imgDesktop.getData()}" alt="${imgDesktop.getAttribute("alt")}" loading="lazy">
18 </picture>
19 </#if>
20
21 </div>
22 <div class="canvasHero__content">
23 <#if breadcrumbsList?? && breadcrumbsList.getSiblings()?has_content>
24 <div class="canvasHero__breadcrumbs">
25 <nav class="breadcrumbs j-breadcrumbs
26 <#if canvasHasBg?? && getterUtil.getBoolean(canvasHasBg.getData())>
27 breadcrumbs--bg
28 </#if>"
29 aria-label="Breadcrumb"
30 >
31 <ol class="breadcrumbs__list j-breadList">
32 <#list breadcrumbsList.getSiblings() as bread >
33 <li class="breadcrumbs__item
34 <#if bread.isCurrent?? && getterUtil.getBoolean(bread.isCurrent.getData())>
35 breadcrumbs__item--current
36 </#if>
37 ">
38 <#if bread.link?? && bread.link.getData()?has_content>
39 <a href="${bread.link.getFriendlyUrl()}" class="breadcrumbs__link
40 <#if bread.isCurrent?? == false>
41 j-trackingBread
42 </#if>
43 " data-tracking-label="${bread.trackingLabel.getData()}">${bread.value.getData()}</a>
44 </#if>
45 </li>
46 </#list>
47 </ol>
48 </nav>
49 </div>
50 </#if>
51 <#if logoImg?? && logoImg.getData()?has_content && isCenterContent?? && getterUtil.getBoolean(isCenterContent.getData())>
52 <div class="canvasHero__logoImage">
53 <img src=${logoImg.getData()} alt="${logoImg.getAttribute("alt")}" class="canvasHero__logoImg"/>
54 </div>
55 </#if>
56 <#if title?? && title.getData()?has_content || par?? && par.getData()?has_content>
57 <div class="canvasHero__text">
58 <#if title?? && title.getData()?has_content >
59 <h1 class="canvasHero__title">${title.getData()}</h1>
60 </#if>
61 <#if par?? && par.getData()?has_content>
62 <div class="canvasHero__contentPar">
63 <p
64 <#if fontPixel?? && fontPixel.getData()?has_content>
65 style="font-size:${fontPixel.getData()}px"
66 </#if>
67 class="canvasHero__par">${par.getData()}</p>
68 <#if hasCta?? && getterUtil.getBoolean(hasCta.getData()) >
69 <div class="canvasHero__cta">
70 <#if buttonLink?? && buttonLink.getData()?has_content || buttonLinkExternal?? && buttonLinkExternal.getData()?has_content>
71 <a class="button button--link j-button
72 button--large
73 button--magentaGradient"
74 <#if buttonLinkExternal.getData() != "">
75 href="${buttonLinkExternal.getData()}"
76 <#else>
77 href="${buttonLink.getFriendlyUrl()}"
78 </#if>
79 role="link"
80 <#if targetBlank?? && getterUtil.getBoolean(targetBlank.getData())>
81 target="_blank"
82 </#if>
83 <#if buttonTrackLabel?? && buttonTrackLabel.getData()?has_content>
84 data-tracking-label="${buttonTrackLabel.getData()}
85 </#if>
86 "
87 >
88 <#if label?? && label.getData()?has_content>
89 <span>${label.getData()}</span>
90 </#if>
91 </a>
92 </#if>
93 </div>
94 </#if>
95 </div>
96 </#if>
97 </div>
98 </#if>
99 </div>
100 <#if hasScrollIcon?? && getterUtil.getBoolean(hasScrollIcon.getData())>
101 <div class="canvasHero__scrollAction j-scrollCanvasIcon">
102 <i class="iconSmall icon-arrow-down-line"></i>
103 </div>
104 </#if>
105 <#if listIcon?? && listIcon.getData()?has_content>
106 <div class="canvasHero__wrapperIcons">
107 <#list listIcon.getSibling() as icon >
108 <div class="canvasHero__itemIconInfo">
109 <div class="canvasHero__itemIcon">
110 <#if icon.canvasIcon?? && icon.canvasIcon.getData()?has_content>
111 <i class="iconSmall ico-${icon.canvasIcon.getData()}"></i>
112 </#if>
113 </div>
114 <#if icon.info?? && icon.info.getData()?has_content>
115 <p class="canvasHero__itemInfo">{{icon.info}}</p>
116 </#if>
117 </div>
118 </#list>
119 </div>
120 </#if>
121 </div>
122
123 <style>
124 .header__subVoiceLink:not(:focus){
125 outline:none!important;
126 box-shadow:unset!important;
127 }
128 @media (min-width: 1024px){
129.canvasHero__title {
130 padding-right: 16px;
131 max-width: 800px;
132 -webkit-box-flex: 0;
133 flex:63%;
134 font-size:3.6rem!important;
135}
136 .canvasHero__contentPar {
137 max-width: 440px;
138 -webkit-box-flex: 0;
139 flex:40%;
140 padding-left: 16px;
141 margin-top: 0;
142 }
143
144 }
145}
146[tabindex="-1"]:focus:not(:focus-visible) {
147 box-shadow: unset!important;
148}
149ul.control-menu-level-2-nav.control-menu-nav.staging-bar-level-2-nav {
150 max-height: 32px;
151 overflow: scroll;
152}
153.autofit-float.autofit-row.portlet-header {
154 top: 92px;
155 z-index:9999;
156}.canvasHero{background-color:transparent!important; }
157 </style>
The first national operator in the remediation sector
Our remediation services aim to eliminate risks to people and the environment and minimise social and economic impacts. In order to work at our best, we invest in valuable projects and partnerships. The acquisition of a 60% stake in the Modena based company ACR Reggiani by HASI Herambiente Servizi Industriali is a step in this direction and allows us to create the first national operator in the remediation sector.
Remediation solutions
We work in a circular economy key to the safety and recovery of contaminated industrial and urban areas, overcoming the classic concept of excavation and disposal typical of remediation to recover materials on site and give them new life.
To do so, we can count on the experience of a dedicated team of technicians and experts and on partnerships with major operators in the sector throughout the country. We work in a circular economy key to the securing and recovery of contaminated industrial and urban areas, going beyond the classic concept of excavation and disposal typical of remediation to recover materials on site and give them new life. To do this, we can count on the experience of a dedicated team of technicians and experts and on partnerships with major industry players throughout the country.
A new lease of life for contaminated sites
Partnership at the service of territory regeneration
Tremonti was founded in 2021 by combining the know-how of Herambiente, Greenthesis, Edison and Sersys Ambiente. It specialises in soil and groundwater remediation services and its mission is territory regeneration. Tremonti works with an integrated approach that includes material measures and participatory processes, with the aim of becoming a model for the management and positive resolution of cases of historical contamination in Italy. Tremonti carried out its first operations in the Tre Monti area of the Site of National Interest (SIN) at Bussi sul Tirino, in the province of Pescara. The remediation and rehabilitation of abandoned industrial facilities is the first step towards the economic and social revival of areas and communities with a long industrial history.
Chosen for you
You may also be interested in..