Financial highlights
Last trade 52.47€
Variation -3.58%
01/06/2026 - 05:39 PM
data source: Investis Digital
Financial highlights
Last trade 52.47€
Variation -3.58%
01/06/2026 - 05:39 PM
data source: Investis Digital
Financial Results & Reports
Press releases
The following has evaluated to null or missing:
==> SeparatorBackground.CantoUrl.UrlEternalMobile [in template "20115#20151#196879" at line 151, column 34]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to 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: #if SeparatorBackground.CantoUrl.UrlE... [in template "20115#20151#196879" at line 151, column 29]
----
1<#assign siteExpandoBridge = themeDisplay.getScopeGroup().getExpandoBridge() />
2<#assign new_restyle = (siteExpandoBridge.hasAttribute("new-restyle")?then(getterUtil.getBoolean(siteExpandoBridge.getAttribute("new-restyle", false)),false)) />
3<#if new_restyle?? && new_restyle>
4
5 <@leonardo.articleInfo .vars "(A, A1) Hero banner"/>
6 <section class="sticky-container">
7
8 <#if
9 (SeparatorBackground.YoutubeId.getData() == "") &&
10 (SeparatorBackground.Video.getData() == "") &&
11 !((SeparatorBackground.CantoUrl)?? && SeparatorBackground.CantoUrl.getData() != "") &&
12 (!(SeparatorBackground.Image.getData()??) || SeparatorBackground.Image.getData() == "")
13 >
14
15 <div class="container-full-width header-safe-area black">
16 <div class="container no-side-padding hero-image black">
17 <div class="text-content text-center hero-02-text-container">
18 <#if Title.getData() != "">
19 <h1 class="title-hero-02 m-0"><@leonardo.escapeTitle title=Title.getData()/></h1>
20 </#if>
21 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !='' || Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
22 <div class="body-medium text-center mt-4">
23 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !=''>
24 <@leonardo.escapeTitle title=Title.DescriptionLeft.getData()/><br />
25 </#if>
26 <#if Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
27 <@leonardo.escapeTitle title=Title.DescriptionRight.getData()/>
28 </#if>
29 </div>
30 </#if>
31 </div>
32 </div>
33 </div>
34
35 <#else>
36
37 <#if SeparatorBackground.YoutubeId.getData() == "" && SeparatorBackground.Video.getData() == "" &&
38 !((SeparatorBackground.CantoUrl)?? && SeparatorBackground.CantoUrl.getData() != "") &&
39 SeparatorBackground.Image.getData()?? && SeparatorBackground.Image.getData() != "">
40 <#assign scalingDetails = {
41 "desktop": {"alternateImage": {}, "key": "h_560"},
42 "tl": {"alternateImage": SeparatorBackground.Image.ImageTl!, "key": "h_560"},
43 "tp": {"alternateImage": SeparatorBackground.Image.ImageTp!, "key": "h_560"},
44 "mobile": {"alternateImage": SeparatorBackground.Image.ImageM!, "key": "w_596"}
45 }>
46 <#assign slideImg = leonardo.adaptImage(SeparatorBackground.Image!, scalingDetails )>
47 <!-- Image Banner -->
48 <div class="container-full-width black hero-image-small <#if !(SeparatorBackground.Image.ImageM?has_content) || SeparatorBackground.Image.ImageM.getData() ==''>product</#if>">
49 <div class="hero-bottom-gradient">
50 <picture class="bg-picture">
51 <source
52 srcset="${slideImg.mobile?replace(" ", "%20")!}"
53 media="(max-width: 576px)"
54 >
55 <source
56 srcset="${slideImg.tablet_portrait?replace(" ", "%20")!}"
57 media="(max-width: 768px)"
58 >
59 <source
60 srcset="${slideImg.tablet_landscape?replace(" ", "%20")!}"
61 media="(max-width: 1024px)"
62 >
63 <img
64 class="img-fluid bg"
65 src="${slideImg.desktop?replace(" ", "%20")!}"
66 alt="${slideImg.alt_desktop!}" fetchpriority="high" loading="eager"
67 >
68 </picture>
69
70 <div class="text-content container">
71 <#if Title.getData() != "">
72 <h1 class="title-hero-02 mb-0"><@leonardo.escapeTitle title=Title.getData()/></h1>
73 </#if>
74 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !='' || Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
75 <div class="body-medium text-center mt-4">
76 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !=''>
77 <@leonardo.escapeTitle title=Title.DescriptionLeft.getData()/><br />
78 </#if>
79 <#if Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
80 <@leonardo.escapeTitle title=Title.DescriptionRight.getData()/>
81 </#if>
82 </div>
83 </#if>
84 </div>
85 </div>
86 </div>
87 <#if SeparatorBackground.Image.ImageM.getData()?? && SeparatorBackground.Image.ImageM.getData() != "">
88 <script>
89 window.addEventListener("load", () => {
90 const EXPECTED_HEIGHT = 844;
91
92 const heroBlocks = document.querySelectorAll(
93 ".hero-image-small"
94 );
95
96 heroBlocks.forEach((heroBlock) => {
97 const picture = heroBlock.querySelector("picture.bg-picture");
98
99 if (!picture) return;
100
101 const mobileSource = Array.from(picture.querySelectorAll("source")).find(
102 (source) => source.media && source.media.includes("max-width: 576px")
103 );
104
105 if (!mobileSource) return;
106
107 const mobileSrc = (mobileSource.getAttribute("srcset") || "").trim();
108
109 const imageElement = new Image();
110
111 imageElement.onload = () => {
112 const height = imageElement.naturalHeight;
113 const isValidHeight = height >= EXPECTED_HEIGHT;
114
115 if (!isValidHeight) {
116 heroBlock.classList.add("product");
117 }
118
119 };
120
121 imageElement.onerror = () => {
122 console.warn("Errore nel caricamento della mobile image:", mobileSrc);
123 };
124
125 imageElement.src = mobileSrc;
126 });
127 });
128 </script>
129 </#if>
130
131 <#elseif (SeparatorBackground.CantoUrl.getData())?has_content>
132 <#assign autoplay = "" />
133 <#assign loop = "" />
134 <#assign bar = "" />
135 <#if (SeparatorBackground.CantoUrl.CantoAutoPlay.data)?has_content && getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoAutoPlay.getData())>
136 <#assign autoplay = "autoplay muted playsinline webkit-playsinline" />
137 </#if>
138 <#if (SeparatorBackground.CantoUrl.CantoLoop.data)?has_content && getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoLoop.getData())>
139 <#assign loop = "loop" />
140 </#if>
141 <#if (SeparatorBackground.CantoUrl.CantoControlBar.data)?has_content && getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoControlBar.getData())>
142 <#assign bar = "controls='controls'" />
143 </#if>
144
145
146 <!-- Canto Video Banner-->
147
148 <div class="container-full-width header-safe-area black">
149 <div class="hero-video hero-bottom-gradient <#if bar !=''>no-after</#if>">
150 <video preload="auto" ${autoplay} ${loop} ${bar} <#if bar !=''>style="z-index:4"</#if>>
151 <#if SeparatorBackground.CantoUrl.UrlEternalMobile.getData() !=''>
152 <source
153 src="${SeparatorBackground.CantoUrl.UrlEternalMobile.getData()}"
154 media="(max-width: 575.98px)"
155 type="video/mp4">
156 </#if>
157 <source
158 src="${SeparatorBackground.CantoUrl.getData()}"
159 media="(min-width: 576px)"
160 type="video/mp4">
161 </video>
162 <div class="text-content container">
163 <#if !(SeparatorBackground.CantoUrl.CantoControlBar.data?has_content
164 && getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoControlBar.getData()))>
165 <#if Title.getData() != "">
166 <h1 class="title-hero-01 mb-0">${Title.getData()}</h1>
167 </#if>
168 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !='' || Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
169 <div class="body-medium text-center mt-4">
170 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !=''>
171 <@leonardo.escapeTitle title=Title.DescriptionLeft.getData()/><br />
172 </#if>
173 <#if Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
174 <@leonardo.escapeTitle title=Title.DescriptionRight.getData()/>
175 </#if>
176 </div>
177 </#if>
178 </#if>
179 </div>
180 </div>
181 </div>
182 <script>
183 const heroVideo = document.querySelector(".hero-video video");
184 heroVideo.muted = true;
185 heroVideo.playsInline = true;
186 heroVideo.play().catch(() => {});
187 </script>
188
189 <#elseif (SeparatorBackground.YoutubeId.getData())?has_content >
190 <!-- YT Video Banner -->
191 <div class="container-full-width black">
192 <div class="hero-video hero-bottom-gradient hero-yt <#if !getterUtil.getBoolean(SeparatorBackground.YoutubeId.YoutubeAutoPlay.getData())>no-after</#if>">
193 <div class="yt-content">
194 <div class="embed-responsive embed-responsive-16by9">
195 <#assign autoplay = "" />
196 <#assign mute = "" />
197
198 <#if getterUtil.getBoolean(SeparatorBackground.YoutubeId.YoutubeAutoPlay.getData())>
199 <#assign autoplay = "?autoplay=1&mute=1&controls=0&rel=0" />
200 <#elseif getterUtil.getBoolean(SeparatorBackground.YoutubeId.YoutubeMute.getData())>
201 <#assign autoplay = "?mute=1&controls=1&rel=0" />
202 <#else>
203 <#assign autoplay = "?controls=1&rel=0" />
204 </#if>
205 <iframe class="embed-responsive-item" width="100%"
206 height="100%"
207 title="<#if Title.getData() != ''>${Title.getData()}<#else>video youtube</#if>"
208 frameborder="0"
209 allow="autoplay; fullscreen; encrypted-media"
210 allowfullscreen
211 playsinline src="https://www.youtube.com/embed/${SeparatorBackground.YoutubeId.getData()}${autoplay}"
212 >
213 </iframe>
214 </div>
215
216 </div>
217 <#if Title.getData() != "" || Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !='' || Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
218 <#if getterUtil.getBoolean(SeparatorBackground.YoutubeId.YoutubeAutoPlay.getData())>
219 <div class="text-content container">
220 <#if Title.getData() != "">
221 <h1 class="title-hero-01 mb-0"><@leonardo.escapeTitle title=Title.getData()/></h1>
222 </#if>
223 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !='' || Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
224 <div class="body-medium text-center mt-4">
225 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !=''>
226 <@leonardo.escapeTitle title=Title.DescriptionLeft.getData()/><br />
227 </#if>
228 <#if Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
229 <@leonardo.escapeTitle title=Title.DescriptionRight.getData()/>
230 </#if>
231 </div>
232 </#if>
233 </div>
234 </#if>
235 </#if>
236 </div>
237 </div>
238
239 <#elseif SeparatorBackground.Video.getData() != "">
240 <!-- Video DM -->
241 <div class="container-full-width black header-safe-area">
242 <div class="hero-video hero-bottom-gradient">
243 <video preload="auto" src="${SeparatorBackground.Video.getData()}" <#if SeparatorBackground.Video.VideoType.getData() !=''>
244 type="${SeparatorBackground.Video.VideoType.getData()}"</#if> muted autoplay loop>
245 </video>
246 <div class="text-content container">
247 <#if Title.getData() != "">
248 <h1 class="title-hero-01 mb-0"><@leonardo.escapeTitle title=Title.getData()/></h1>
249 </#if>
250 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !='' || Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
251 <div class="body-medium text-center mt-4">
252 <#if Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !=''>
253 <@leonardo.escapeTitle title=Title.DescriptionLeft.getData()/><br />
254 </#if>
255 <#if Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
256 <@leonardo.escapeTitle title=Title.DescriptionRight.getData()/>
257 </#if>
258 </div>
259 </#if>
260 </div>
261 </div>
262 </div>
263 </#if>
264 </#if>
265 <#if Title.TextUnderHero?? && Title.TextUnderHero.getData() !=''>
266 <div class="static-text">
267 <div class="container-full-width">
268 <div class="container">
269 <div class="title-medium">
270 <#if Title.TextUnderHero?? && Title.TextUnderHero.getData() !=''>
271 ${Title.TextUnderHero.getData()}
272 <#elseif Title.DescriptionLeft.getData()?? && Title.DescriptionLeft.getData() !=''>
273 <@leonardo.escapeTitle title=Title.DescriptionLeft.getData()/><br />
274 <#elseif Title.DescriptionRight.getData()?? && Title.DescriptionRight.getData() !=''>
275 <@leonardo.escapeTitle title=Title.DescriptionRight.getData()/>
276 </#if>
277 </div>
278 </div>
279 </div>
280 </div>
281 </#if>
282 </section>
283 <#if Title.TextUnderHero?? && Title.TextUnderHero.getData() !=''>
284 <script>
285 window.addEventListener('load', () => {
286 const text = document.querySelector('.sticky-container .static-text');
287 const menu = document.querySelector('.menu-fixed-grey');
288
289 if (text && menu) {
290 const heightText = text.offsetHeight;
291 const currentBottom = parseFloat(getComputedStyle(menu).bottom) || 0;
292 menu.style.bottom = (currentBottom + heightText) + 'px';
293 }
294 });
295 </script>
296 </#if>
297
298<#else>
299 <@leonardo.articleInfo .vars "(A, A1) Hero banner"/>
300
301 <style>
302 html.leo18 .leonardocompany .hero-slide .hero-slide--content--title a.title-cta:hover,
303 html.leo18 .leonardocompany .hero-slide .hero-slide--content--title a.title-cta:active,
304 html.leo18 .leonardocompany .hero-slide .hero-slide--content--title a.title-cta:focus,
305 body.leo18 .leonardocompany .hero-slide .hero-slide--content--title a.title-cta:hover,
306 body.leo18 .leonardocompany .hero-slide .hero-slide--content--title a.title-cta:active,
307 body.leo18 .leonardocompany .hero-slide .hero-slide--content--title a.title-cta:focus {
308 text-decoration: inherit;
309 color: inherit;
310 }
311
312
313 </style>
314
315
316 <#assign noOpacity = "${randomNamespace}opacity">
317
318 <#if (SeparatorBackground.Image.disableOpacityFilter.data)?has_content && getterUtil.getBoolean(SeparatorBackground.Image.disableOpacityFilter.getData()) >
319 <style>
320 html.leo18.dark-theme body #wrapper.leonardocompany .hero .hero-slide.${noOpacity}::before {
321 background-color: rgba(0, 0, 0, 0);
322 }
323 </style>
324 </#if>
325
326 <#assign rndNamespace = randomNamespace>
327
328 <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
329 <#assign currentGroupExpandoBridge = themeDisplay.getScopeGroup().getExpandoBridge()>
330 <#assign isDarkTheme = false>
331
332 <#if currentGroupExpandoBridge.hasAttribute("dark-theme")>
333 <#assign isDarkTheme = currentGroupExpandoBridge.getAttribute("dark-theme", false)>
334 </#if>
335
336 <div class="section-container section-container--fluid herobanner">
337
338 <#if SeparatorBackground.Image.getData()?? && SeparatorBackground.Image.getData() != "" >
339 <#if (SeparatorBackground.HalfSize.data)?has_content && getterUtil.getBoolean(SeparatorBackground.HalfSize.getData())>
340 <#assign scalingDetails = {
341 "desktop": {"alternateImage": {}, "key": "w_1440"},
342 "tl": {"alternateImage": SeparatorBackground.Image.ImageTl!, "key": "h_400"},
343 "tp": {"alternateImage": SeparatorBackground.Image.ImageTp!, "key": "h_1024"},
344 "mobile": {"alternateImage": SeparatorBackground.Image.ImageM!, "key": "h_560"}
345 }>
346 <#else>
347 <#assign scalingDetails = {
348 "desktop": {"alternateImage": {}, "key": "w_1440"},
349 "tl": {"alternateImage": SeparatorBackground.Image.ImageTl!, "key": "h_703"},
350 "tp": {"alternateImage": SeparatorBackground.Image.ImageTp!, "key": "h_959"},
351 "mobile": {"alternateImage": SeparatorBackground.Image.ImageM!, "key": "h_602"}
352 }>
353 </#if>
354 <#assign slideImg = leonardo.adaptImage(SeparatorBackground.Image!, scalingDetails )>
355 </#if>
356
357 <#if SearchBox?? && getterUtil.getBoolean(SearchBox.getData())>
358 <#if SeparatorBackground.Image.getData()?? && SeparatorBackground.Image.getData() != "" >
359 <div class="search-widget-local heroSearchWidget"
360 data-img-url-d="${slideImg.desktop!}"
361 data-img-url-tl="${slideImg.tablet_landscape!}"
362 data-img-url-tp="${slideImg.tablet_portrait!}"
363 data-img-url-m="${slideImg.mobile!}"
364 style=''
365 >
366 <noscript>
367 <img src="${slideImg.desktop!}" alt='${slideImg.alt_desktop!}'>
368 <img src="${slideImg.tablet_landscape!}" alt='${slideImg.alt_landscape! slideImg.alt_tablet_landscape!}'>
369 <img src="${slideImg.tablet_portrait!}" alt='${slideImg.alt_tablet_portrait! slideImg.alt_tablet_portrait!}'>
370 <img src="${slideImg.mobile!}" alt='${slideImg.alt_mobile! slideImg.alt_mobile!}'>
371 </noscript>
372 <#else>
373 <div class="search-widget-local">
374 </#if>
375 <#if isDarkTheme>
376 <#if Title.preTitle ?? && Title.preTitle.getData() != "">
377 <div class="hero-slide--content--pre-title">${Title.preTitle.getData()}</div>
378 </#if>
379 </#if>
380 <#if Title.getData() != "">
381 <#if Title.isH1?? && getterUtil.getBoolean(Title.isH1.getData())>
382 <h1 class="search-widget-local--title"><@leonardo.escapeTitle title=Title.getData()/></h1>
383 <#else>
384 <div class="search-widget-local--title"><@leonardo.escapeTitle title=Title.getData()/></div>
385 </#if>
386 </#if>
387 <div class="search-widget-local--content">
388 <label class="search-widget-local--content--search-label" for="inp-search-local">Enter search text</label>
389 <#if SearchBox.Placeholder?? && SearchBox.Placeholder.getData() != "" && SearchBox.ClusterID?? && SearchBox.ClusterID.getData() != "" >
390 <input autofocus class="search-widget-local--content--search-text" id="inp-search-local" type="text" maxlength="50"
391 placeholder="${SearchBox.Placeholder.getData()!}" data-cluster-id="${SearchBox.ClusterID.getData()!}"/>
392 <!-- Cluster ID: ${SearchBox.ClusterID.getData()!} -->
393 <a class="search-widget-local--content--search-icon" href="javascript: void(0)" title="Search" data-cluster-id="${SearchBox.ClusterID.getData()!}">
394 <svg xmlns="http://www.w3.org/2000/svg" width="17" height="16" viewBox="0 0 17 16">
395 <path fill="#FFF" fill-rule="evenodd" d="M6.88 1.729c2.784 0 5.047 2.103 5.047 4.69 0 2.585-2.263 4.689-5.046 4.689-2.783 0-5.047-2.104-5.047-4.69 0-2.586 2.264-4.69 5.047-4.69m9.953 12.79l-4.51-4.213.279-.352.007-.01c.05-.062.1-.124.148-.188l.004-.006c1.766-2.36 1.375-5.696-.961-7.867C10.495.668 8.759 0 6.913 0 5.066 0 3.33.668 2.025 1.881.719 3.095 0 4.708 0 6.424c0 1.716.719 3.329 2.025 4.542 1.302 1.21 3.034 1.877 4.876 1.877a7.396 7.396 0 0 0 3.189-.722c.11-.058.438-.235.702-.433l4.58 4.159a.6.6 0 0 0 .39.153.547.547 0 0 0 .371-.149l.23-.205c.174-.156.358-.32.49-.443.255-.238.131-.537-.019-.685"/>
396 </svg>
397 </a>
398 </#if>
399 </div>
400 </div>
401 <#elseif SeparatorBackground.YoutubeId.getData() == "" && SeparatorBackground.Video.getData() == "" &&
402 !((SeparatorBackground.CantoUrl)?? && SeparatorBackground.CantoUrl.getData() != "") &&
403 SeparatorBackground.Image.getData()?? && SeparatorBackground.Image.getData() != "">
404 <!-- Image Banner -->
405 <div class="hero">
406 <div class="hero-slide ${noOpacity} ${((SeparatorBackground.HalfSize.data)?has_content && getterUtil.getBoolean(SeparatorBackground.HalfSize.getData()))?then('hero-slide--internal','')}"
407 data-img-url-d="${slideImg.desktop!}"
408 data-img-url-tl="${slideImg.tablet_landscape!}"
409 data-img-url-tp="${slideImg.tablet_portrait!}"
410 data-img-url-m="${slideImg.mobile!}"
411 style=''
412 >
413 <noscript>
414 <img src="${slideImg.desktop!}" alt='${slideImg.alt_desktop!}'>
415 <img src="${slideImg.tablet_landscape!}" alt='${slideImg.alt_landscape! slideImg.alt_tablet_landscape!}'>
416 <img src="${slideImg.tablet_portrait!}" alt='${slideImg.alt_tablet_portrait! slideImg.alt_tablet_portrait!}'>
417 <img src="${slideImg.mobile!}" alt='${slideImg.alt_mobile! slideImg.alt_mobile!}'>
418 </noscript>
419
420 <#if Title.getData() != "" || LinkTitle.getData() != "" || (CountdownDate.data)?has_content>
421 <div class="hero-slide--content">
422 <#if isDarkTheme>
423 <#if Title.preTitle ?? && Title.preTitle.getData() != "">
424 <div class="hero-slide--content--pre-title">${Title.preTitle.getData()}</div>
425 </#if>
426 </#if>
427 <#if Title.getData() != "">
428 <#if Title.isH1?? && getterUtil.getBoolean(Title.isH1.getData())>
429 <h1 class="hero-slide--content--title">
430 <#else>
431 <div class="hero-slide--content--title">
432 </#if>
433 <#if LinkTitle.getData() != "" >
434 <a class="title-cta"
435 href="${leonardo.getTargetUrl(LinkTitle.LinkToUrl!, LinkTitle.LinkToPage!)}"
436 title="${LinkTitle.getData()}"
437 target="${leonardo.getTarget(LinkTitle.OpenLink!)}"
438 >
439 </#if>
440
441 <@leonardo.escapeTitle title=Title.getData()/>
442
443 <#if LinkTitle.getData() != "" >
444 </a>
445 </#if>
446
447 <#if Title.isH1?? && getterUtil.getBoolean(Title.isH1.getData())>
448 </h1>
449 <#else>
450 </div>
451 </#if>
452 <#if Title.DescriptionLeft.getData() != "" || Title.DescriptionRight.getData() != "">
453 <div class="hero-slide--content--descriptions">
454 <#if Title.DescriptionLeft.getData() != "">
455 <div class="hero-slide--content--description"><@leonardo.escapeTitle title=Title.DescriptionLeft.getData()/></div>
456 </#if>
457 <#if Title.DescriptionRight.getData() != "">
458 <div class="hero-slide--content--description"><@leonardo.escapeTitle title=Title.DescriptionRight.getData()/></div>
459 </#if>
460 </div>
461 </#if>
462 </#if>
463 <#if LinkTitle.getData() != "" >
464 <div class="hero-slide--content--cta">
465 <a class="btn btn-leo btn-leo-transparent"
466 href="${leonardo.getTargetUrl(LinkTitle.LinkToUrl!, LinkTitle.LinkToPage!)}"
467 title="${LinkTitle.getData()}"
468 target="${leonardo.getTarget(LinkTitle.OpenLink!)}"
469 >
470 ${LinkTitle.getData()}
471 </a>
472 </div>
473 </#if>
474 </div>
475 </#if>
476 </div>
477 <#if (CountdownDate.data)?has_content >
478
479 <style>
480 @media (max-width: 767px){
481 .leo18 .hero .hero-share { bottom: 100px; }
482 }
483 </style>
484
485 <#assign currentDate = .now?long>
486 <#assign eventDate = CountdownDate.data?datetime("yyyy-MM-dd")?long>
487 <#if (CountdownDate.Hours)?has_content && (CountdownDate.Minutes)?has_content >
488 <#assign eventDate = (eventDate + (getterUtil.getLong(CountdownDate.Hours.getData())*60*60*1000))?long>
489 <#assign eventDate = (eventDate + (getterUtil.getLong(CountdownDate.Minutes.getData())*60*1000))?long>
490 </#if>
491 <#assign countdown = ((eventDate - currentDate)/(1000))?int >
492 <#if countdown gte 0 >
493 <div class="countdown-widget hidden" data-time-left="${countdown}">
494 <div class="section-container section-container--fluid">
495 <div class="countdown-widget--wrap">
496 <div class="countdown-widget--title"><@leonardo.escapeTitle title=CountdownDate.Text.data!/></div>
497 <div class="countdown-widget--counters">
498 <div class="countdown-widget--counters--counter days">
499 <div class="countdown-widget--counters--counter--val"> </div>
500 <div class="countdown-widget--counters--counter--label">${languageUtil.get(locale, "days")}</div>
501 </div>
502 <div class="countdown-widget--counters--counter hours">
503 <div class="countdown-widget--counters--counter--val"> </div>
504 <div class="countdown-widget--counters--counter--label">${languageUtil.get(locale, "hours")}</div>
505 </div>
506 <div class="countdown-widget--counters--counter minutes">
507 <div class="countdown-widget--counters--counter--val"> </div>
508 <div class="countdown-widget--counters--counter--label">${languageUtil.get(locale, "minutes")}</div>
509 </div>
510 <#if (CountdownDate.ShowSeconds)?has_content && getterUtil.getBoolean(CountdownDate.ShowSeconds.getData()) >
511 <div class="countdown-widget--counters--counter seconds">
512 <div class="countdown-widget--counters--counter--val"> </div>
513 <div class="countdown-widget--counters--counter--label">${languageUtil.get(locale, "seconds")}</div>
514 </div>
515 </#if>
516 </div>
517 </div>
518 </div>
519 </div>
520 </#if>
521 </#if>
522 <#if (ShareLink.data)?has_content && getterUtil.getBoolean(ShareLink.getData()) >
523 <@leonardo.shareLinkHero/>
524 </#if>
525 </div>
526
527 <#elseif (SeparatorBackground.CantoUrl.getData())?has_content>
528 <!-- Canto Video Banner -->
529 <#assign scalingDetails = {
530 "desktop": {"alternateImage": {}, "key": "w_1440"},
531 "tl": {"alternateImage": SeparatorBackground.Image.ImageTl!, "key": "h_703"},
532 "tp": {"alternateImage": SeparatorBackground.Image.ImageTp!, "key": "h_959"},
533 "mobile": {"alternateImage": SeparatorBackground.Image.ImageM!, "key": "h_602"}
534 }>
535 <#assign slideImg = leonardo.adaptImage(SeparatorBackground.Image!, scalingDetails )>
536
537 <#if (CountdownDate.data)?has_content >
538 <style>
539 @media (max-width: 767px){
540 .leo18 .hero .hero-share { bottom: 100px; }
541 }
542 </style>
543 </#if>
544
545 <div class="hero">
546 <div class="leo-video canto-video ${((SeparatorBackground.HalfSize.data)?has_content && getterUtil.getBoolean(SeparatorBackground.HalfSize.getData()))?then('video-little-size','')} ${((!getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoControlBar.getData())) && (getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoAutoPlay.getData())))?then('no-pause','')}"
547 data-video-data='{
548 "type":"video",
549 "showControls":${(getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoControlBar.getData()))?then("1","0")},
550 "videoSources":[
551 "${SeparatorBackground.CantoUrl.getData()!}"
552 ],
553 "posters":{
554 "desktop":"${slideImg.desktop!}",
555 "tabletLandscape":"${slideImg.tablet_landscape!}",
556 "tabletPortrait":"${slideImg.tablet_portrait!}",
557 "mobile":"${slideImg.mobile!}"
558 },
559 "content":{
560 "heading":"<@leonardo.escapeTitle title=(Title.getData()!"")?html/>",
561 "descriptions":["${((Title.DescriptionLeft.getData())!"")?html?html}", "${((Title.DescriptionRight.getData())!"")?html?html}"],
562 "cta":{
563 "url":"${leonardo.getTargetUrl(LinkTitle.LinkToUrl!, LinkTitle.LinkToPage!)}",
564 "title":"${(LinkTitle.getData()!"")?html?html}",
565 "target":"${leonardo.getTarget(LinkTitle.OpenLink!)}"
566 }
567 <#if (CountdownDate.data)?has_content >
568 <#assign currentDate = .now?long>
569 <#assign eventDate = CountdownDate.data?datetime("yyyy-MM-dd")?long>
570 <#if (CountdownDate.Hours)?has_content && (CountdownDate.Minutes)?has_content >
571 <#assign eventDate = (eventDate + (getterUtil.getLong(CountdownDate.Hours.getData())*60*60*1000))?long>
572 <#assign eventDate = (eventDate + (getterUtil.getLong(CountdownDate.Minutes.getData())*60*1000))?long>
573 </#if>
574 <#assign countdown = ((eventDate - currentDate)/(1000))?int >
575 <#if countdown gte 0 >
576 ,"countdown":{
577 "countdown":"${countdown}",
578 "title":"<@leonardo.escapeTitle title=(CountdownDate.Text.data!)?html/>",
579 "days":"${languageUtil.get(locale, "days")}",
580 "hours":"${languageUtil.get(locale, "hours")}",
581 "minutes":"${languageUtil.get(locale, "minutes")}",
582 "seconds":"${languageUtil.get(locale, "seconds")}",
583 "showSeconds":${((CountdownDate.ShowSeconds)?has_content && getterUtil.getBoolean(CountdownDate.ShowSeconds.getData()))?then("1","0")}
584 }
585 </#if>
586 </#if>
587 }
588 }'
589 <#if (SeparatorBackground.CantoUrl.CantoAutoPlay.getData())?has_content>
590 data-autoplay="${(getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoAutoPlay.getData()))?then('1','0')}",
591 </#if>
592 <#if (SeparatorBackground.CantoUrl.CantoLoop.getData())?has_content>
593 data-loop="${(getterUtil.getBoolean(SeparatorBackground.CantoUrl.CantoLoop.getData()))?then('1','0')}",
594 </#if>
595 data-playsinline="1",
596 data-title-tag="div">
597
598 </div>
599 <#if (ShareLink.data)?has_content && getterUtil.getBoolean(ShareLink.getData()) >
600 <@leonardo.shareLinkHero/>
601 </#if>
602 </div>
603 <#elseif (SeparatorBackground.YoutubeId.getData())?has_content >
604 <!-- YT Video Banner -->
605 <div class="hero">
606 <div class="hero-slide">
607 <div class="youtube-player-container"
608 data-img-url-d="${(slideImg.desktop)!}"
609 data-img-url-tl="${(slideImg.tablet_landscape)!}"
610 data-img-url-tp="${(slideImg.tablet_portrait)!}"
611 data-img-url-m="${(slideImg.mobile)!}"
612 data-div-id="${randomNamespace}${SeparatorBackground.YoutubeId.getData()!}"
613 data-video-id="${SeparatorBackground.YoutubeId.getData()!}"
614 <#if (SeparatorBackground.YoutubeId.YoutubeAutoPlay.getData())?has_content>
615 data-video-autoplay="${(getterUtil.getBoolean(SeparatorBackground.YoutubeId.YoutubeAutoPlay.getData()))?then('1','0')}"
616 </#if>
617 <#if (SeparatorBackground.YoutubeId.YoutubeMute.getData())?has_content>
618 data-video-mute="${(getterUtil.getBoolean(SeparatorBackground.YoutubeId.YoutubeMute.getData()))?then('1','0')}"
619 </#if>
620 data-use-no-cookie-domain="true">
621 <div class="youtube-player" id="${randomNamespace}${SeparatorBackground.YoutubeId.getData()!}" data-use-no-cookie-domain="true"></div>
622 </div>
623 <#if isDarkTheme>
624 <#if Title.preTitle ?? && Title.preTitle.getData() != "">
625 <div class="hero-slide--content--pre-title">${Title.preTitle.getData()}</div>
626 </#if>
627 </#if>
628 <#if Title.getData() != "">
629 <div class="hero-slide--content">
630 <#if Title.isH1?? && getterUtil.getBoolean(Title.isH1.getData())>
631 <h1 class="hero-slide--content--title"><@leonardo.escapeTitle title=Title.getData()/></h1>
632 <#else>
633 <div class="hero-slide--content--title"><@leonardo.escapeTitle title=Title.getData()/></div>
634 </#if>
635 </div>
636 </#if>
637 </div>
638 <#if (ShareLink.data)?has_content && getterUtil.getBoolean(ShareLink.getData()) >
639 <@leonardo.shareLinkHero/>
640 </#if>
641 </div>
642
643 <#elseif SeparatorBackground.Video.getData() != "">
644 <!-- Internal Video Banner -->
645 <#assign scalingDetails = {
646 "desktop": {"alternateImage": {}, "key": "w_1440"},
647 "tl": {"alternateImage": SeparatorBackground.Image.ImageTl!, "key": "h_703"},
648 "tp": {"alternateImage": SeparatorBackground.Image.ImageTp!, "key": "h_959"},
649 "mobile": {"alternateImage": SeparatorBackground.Image.ImageM!, "key": "h_602"}
650 }>
651 <#assign slideImg = leonardo.adaptImage(SeparatorBackground.Image!, scalingDetails )>
652
653 <#if SeparatorBackground.Video.getSiblings()?has_content>
654 <#assign videoStr = "">
655 <#list SeparatorBackground.Video.getSiblings() as cur_Video>
656 <#assign videoFile = cur_Video.getData()>
657 <#assign videoFileType = cur_Video.VideoType.getData()>
658 <#if videoStr?? && videoStr != "">
659 <#assign videoStr = videoStr + ",">
660 </#if>
661 <#assign videoStr = videoStr + "{"src":"" + videoFile + "","type":"" + videoFileType + ""}">
662 </#list>
663 </#if>
664
665 <div class="hero">
666 <div class="leo-video ${((SeparatorBackground.HalfSize.data)?has_content && getterUtil.getBoolean(SeparatorBackground.HalfSize.getData()))?then('video-little-size','')}"
667 data-video-data="{
668 "type":"video",
669 "showControls":false,
670 "videoSources":[
671 ${videoStr}
672 ],
673 "posters":{
674 "desktop":"${slideImg.desktop!}",
675 "tabletLandscape":"${slideImg.tablet_landscape!}",
676 "tabletPortrait":"${slideImg.tablet_portrait!}",
677 "mobile":"${slideImg.mobile!}"
678 },
679 "content":{
680 "heading":"<@leonardo.escapeTitle title=(Title.getData()!"")?html/>"
681 }}"
682
683 <#if (SeparatorBackground.YoutubeId.YoutubeAutoPlay.getData())?has_content>
684 data-autoplay="true"
685 </#if>
686 data-title-tag="div">
687
688 </div>
689 <#if (ShareLink.data)?has_content && getterUtil.getBoolean(ShareLink.getData()) >
690 <@leonardo.shareLinkHero/>
691 </#if>
692 </div>
693 <#else>
694 <!-- Black Banner -->
695 <div class="hero">
696 <div class="hero-slide ${((SeparatorBackground.HalfSize.data)?has_content && getterUtil.getBoolean(SeparatorBackground.HalfSize.getData()))?then('hero-slide--internal','')}"
697 style='background-color:#000000;'>
698 <#if Title.getData() != "" || LinkTitle.getData() != "" || (CountdownDate.data)?has_content>
699 <div class="hero-slide--content">
700 <#if isDarkTheme>
701 <#if Title.preTitle ?? && Title.preTitle.getData() != "">
702 <div class="hero-slide--content--pre-title">${Title.preTitle.getData()}</div>
703 </#if>
704 </#if>
705 <#if Title.getData() != "">
706 <#if Title.isH1?? && getterUtil.getBoolean(Title.isH1.getData())>
707 <h1 class="hero-slide--content--title"><@leonardo.escapeTitle title=Title.getData()/></h1>
708 <#else>
709 <div class="hero-slide--content--title"><@leonardo.escapeTitle title=Title.getData()/></div>
710 </#if>
711 <#if Title.DescriptionLeft.getData() != "" || Title.DescriptionRight.getData() != "">
712 <div class="hero-slide--content--descriptions">
713 <#if Title.DescriptionLeft.getData() != "">
714 <div class="hero-slide--content--description"><@leonardo.escapeTitle title=Title.DescriptionLeft.getData()/></div>
715 </#if>
716 <#if Title.DescriptionRight.getData() != "">
717 <div class="hero-slide--content--description"><@leonardo.escapeTitle title=Title.DescriptionRight.getData()/></div>
718 </#if>
719 </div>
720 </#if>
721 </#if>
722 <#if LinkTitle.getData() != "" >
723 <div class="hero-slide--content--cta">
724 <a class="btn btn-leo btn-leo-transparent"
725 href="${leonardo.getTargetUrl(LinkTitle.LinkToUrl!, LinkTitle.LinkToPage!)}"
726 title="${LinkTitle.getData()}"
727 target="${leonardo.getTarget(LinkTitle.OpenLink!)}"
728 >
729 ${LinkTitle.getData()}
730 </a>
731 </div>
732 </#if>
733 </div>
734 </#if>
735 </div>
736 <#if (CountdownDate.data)?has_content >
737 <#assign currentDate = .now?long>
738 <#assign eventDate = CountdownDate.data?datetime("yyyy-MM-dd")?long>
739 <#if (CountdownDate.Hours)?has_content && (CountdownDate.Minutes)?has_content >
740 <#assign eventDate = (eventDate + (getterUtil.getLong(CountdownDate.Hours.getData())*60*60*1000))?long>
741 <#assign eventDate = (eventDate + (getterUtil.getLong(CountdownDate.Minutes.getData())*60*1000))?long>
742 </#if>
743 <#assign countdown = ((eventDate - currentDate)/(1000))?int >
744 <#if countdown gte 0 >
745 <div class="countdown-widget hidden" data-time-left="${countdown}">
746 <div class="section-container section-container--fluid">
747 <div class="countdown-widget--wrap">
748 <div class="countdown-widget--title"><@leonardo.escapeTitle title=CountdownDate.Text.data!/></div>
749 <div class="countdown-widget--counters">
750 <div class="countdown-widget--counters--counter days">
751 <div class="countdown-widget--counters--counter--val"> </div>
752 <div class="countdown-widget--counters--counter--label">${languageUtil.get(locale, "days")}</div>
753 </div>
754 <div class="countdown-widget--counters--counter hours">
755 <div class="countdown-widget--counters--counter--val"> </div>
756 <div class="countdown-widget--counters--counter--label">${languageUtil.get(locale, "hours")}</div>
757 </div>
758 <div class="countdown-widget--counters--counter minutes">
759 <div class="countdown-widget--counters--counter--val"> </div>
760 <div class="countdown-widget--counters--counter--label">${languageUtil.get(locale, "minutes")}</div>
761 </div>
762 <#if (CountdownDate.ShowSeconds)?has_content && getterUtil.getBoolean(CountdownDate.ShowSeconds.getData()) >
763 <div class="countdown-widget--counters--counter seconds">
764 <div class="countdown-widget--counters--counter--val"> </div>
765 <div class="countdown-widget--counters--counter--label">${languageUtil.get(locale, "seconds")}</div>
766 </div>
767 </#if>
768 </div>
769 </div>
770 </div>
771 </div>
772 </#if>
773 </#if>
774 <#if (ShareLink.data)?has_content && getterUtil.getBoolean(ShareLink.getData()) >
775 <@leonardo.shareLinkHero/>
776 </#if>
777 </div>
778 </#if>
779 </div>
780
781 <#if (ShareLink.data)?has_content && getterUtil.getBoolean(ShareLink.getData()) >
782 <!-- Social Sharing -->
783 <#assign imageFileName = (slideImg.desktop)!"" >
784 <#assign shareTitle = (Title.getData())!"">
785 <#assign shareDescription = ((Title.DescriptionLeft.getData())!"") + " " + ((Title.DescriptionRight.getData() )!"")>
786 <#assign ogType='article'>
787 <@leonardo.socialShareMetaAndLinks shareTitle=shareTitle shareDescription=shareDescription?trim imageFileName=imageFileName ogType=ogType />
788 </#if>
789</#if>
Propeller machining process at the Società Italiana Delta plant in Cornigliano Ligure, Genoa, 1940s. Specialising in the production of alloys, including bronze and brass, the company was absorbed by Ansaldo in 1894. Delta accounted for around 15% of Ansaldo’s workforce in the mid-1930s, maintaining its identity as a heavy industrial company. Courtesy Ansaldo Foundation
On 18 March 1948, on the basis of legislative decree no. 1420/1947 of the President of the Republic, Enrico De Nicola, the Institute for Industrial Reconstruction (IRI), the holding company for state shareholdings, founded the Società Finanziaria Meccanica Finmeccanica; a crucial stage, in the post-war climate, for the recovery of the economic and industrial fabric of the entire nation. At the time of its foundation, under the Presidency of Aristide Zenari, the newly formed Finmeccanica controlled fourteen companies, coming from IRI, which counted on over 90 thousand employees, and which represent a fundamental part of the Italian manufacturing asset. These companies included Ansaldo, Alfa Romeo, Odero Terni Orlando (later OTO Melara), San Giorgio Società Industriale, Cantieri Navali dell’Adriatico, Officine Galileo, and Filotecnica Salmoiraghi. Finmeccanica did not simply pursue a policy of reorganisation. From the outset it focused on the sectors of ‘excellence’, such as engineering and aeronautics, and on entering the emerging electronics sector by establishing Microlambda, initially called ‘Società per studi e applicazioni di elettronica’ (company for the study and application of electronics). Following an agreement with the US company Raytheon, in 1951, it was the first Italian company to begin manufacturing in the radar sector, in a very rapid timespan.
Italy was a committed main player in the ‘golden age’ of the world economy. The 1950s saw the rise of Finmeccanica across a range of strategic fields: naval and land artillery with OTO Melara, aeronautics and railways with Aerfer, and the associated industrialisation of the South of Italy. In 1954, Nuova San Giorgio, an electronics pioneer, started manufacturing numerical control systems and automated installations.
On 29 December 1959, a new holding, the Finanziaria Cantieri Navali Fincantieri, brought together twelve companies in the shipbuilding sector that had previously been part of Finmeccanica. For the latter, the transition marked a new beginning with a more homogeneous structure comprising 34 companies, 51 plants and 36,970 employees.
FIAT Aviazione’s first post-war aircraft, the G-46 was designed by the engineer Giuseppe Gabrielli with an all-metal light alloy construction, shell fuselage and cantilevered monoplane wing. Ordered by the Italian Air Force on 9 March 1946, it was used for basic training until 1958 before enjoying a second lease of life in Aero Clubs.
Produced by Ferroni Cortometraggi, directors Aldo De Sanctis and Giampiero Pucci made a short film on Ansaldo’s activities in Genoa: its shipyards, mechanical and railway plants, and its foundry. Founded in 1853 by a group of Genoese entrepreneurs and financiers, Ansaldo was to become the historical heart of Italian capitalism, experiencing first the consequences of militarisation during the war years, then crisis and reconversion in peacetime. The film bears witness to the climate of recovery in which the Finmeccanica project was born.
This radar was the fruit of a partnership between the Microwave Centre Research Institute in Florence and SMA (Segnalamento Marittimo e Aereo), a small Florentine company that produced signalling optics, light buoys and beacons primarily for the Navy, and which became part of Finmeccanica in the mid-1990s. The acronym CFL3 derives from its creators’ surnames: Nello Carrara, director of the Microwave Centre; Lorenzo Fernandez, founder and CEO of SMA; Pietro Lombardini, radar designer.
Designed by Orazio Satta Puliga, the Alfa Romeo 1900 became famous with the slogan: ‘The family car that wins races.’ The new saloon came with a series of firsts and innovations. It was the first Alfa Romeo with a monocoque body integrated into the chassis and a four-cylinder twin-camshaft engine that would feature in production models over the following years. It was also the first to adopt a left-hand drive as standard. These were years of economic upheaval and innovation, the effects of which were also clear in a change to the production process at the Portello factory in Milan with the introduction of the assembly line. On 5 May 1953, Giuseppe Luraghi, the company’s vice-president, discussed ‘Programme ‘53’ with IRI and Finmeccanica, a project to upgrade the industrial plants, assemble a management team, and outline a strategy to enable Alfa Romeo to generate a profit that could be reinvested for market growth.
Section VI of Finanziaria Ernesto Breda, which in 1951 became Breda Meccanica Bresciana, was involved in the difficult task of reconstruction. After the many air raids of the Second World War and the subsequent repair of warehouses and machinery, the factory embarked on an intensive period of civil production: motorbikes (the famous Bredino), Crosley refrigerators, and Cotton looms for knitwear under licence. These products illustrate the resilience and entrepreneurial courage that carried the country through the years of the economic boom.
The Italian liner fleet’s largest and fastest passenger ship was launched on 16 June 1951 at the Ansaldo shipyard in Genoa Sestri Ponente, commissioned by the Finmare group’s Italia Società di Navigazione shipping company. This turbine-powered ship, with a gross tonnage of around 30,000 tonnes, carried 1,241 passengers and a crew of 580. Much admired for her elegance, the ‘Andrea Doria’, nicknamed the ‘Signora del Mare’, was known abroad as the ‘Grande Dame of the Sea’. On 14 January 1953, she set sail from the Port of Genoa for New York. Just over three years after her maiden voyage, she sank off the US coast in an accident involving the Swedish ship Stockholm on the night of 25 July 1956.
From 1951, Whitehead Moto Fides coordinated torpedo research and development by USAS - Undersea Weapons Research Office (based in Naples), a body with members that included the Italian Navy and Industrie Meccaniche Napoletane (IMN). Shortly afterwards, following the break-up of USAS and IMN, all of the sector’s engineering forces came together in the Livorno Research Office. This ushered in an era that saw the company’s real post-war revival. It was in these very offices where major research into air-independent propulsion began, as well as experiments on wire-guided torpedoes.
On 22 May 1952, Agusta signed an agreement with the American Bell Aircraft Corporation to build a new concept helicopter, the Bell 47, under licence for the European market. In May of the following year, Agusta became a joint-stock company with only 66 employees. Exactly two years later, on 24 May 1954, the company’s first helicopter, the Agusta-Bell 47G, flown by test pilot Ottorino Lancia, took off from the runway at Cascina Costa di Samarate (Varese). Orders soon arrived from military and civil customers alike, and, two years later, the company had already delivered 100 helicopters to operators across Europe.
Edited by Giuseppe Luraghi, a new magazine -the house organ of Finmeccanica - Civiltà delle Macchine appeared. This periodical contributed to the cultural debate of the era, fostering a dialogue between scientific and humanistic culture. Giuseppe Sinisgalli, the poet and qualified engineer who was an admirer of Ungaretti, edited this ‘think tank’ of modernity until 1958. He was succeeded by Francesco d’Arcais until 1979. The pages of the bimonthly magazine welcomed the reflections of both writers and engineers; its famous covers, many of which were commissioned from 20th-century Italian artists of the calibre of Vespignani, Mafai, Capogrossi, Perilli and Afro, became part of the IRI collection.
This was a record order, worth eight billion Lire, for 300 TPS-1D naval sighting radars for the US Navy, which Microlambda manufactured under licence from Raytheon in the workshops of the former Silurificio Italiano (Italian torpedo factory) in Fusaro, near Naples. On 30 April, the first four radars passed stringent tests under the supervision of Franco Bardelli. Over the next two months, with a ramping-up of production, the order was fulfilled well ahead of schedule. The industrial rise and economic recovery of an entire region resumed as a result of this success.
On 5 April, following an overhaul at Breda and some technical modifications, the ETR 300 - ‘an electric train with seven carriages designed for luxury services’ - returned to service on the Milan-Rome route. Nicknamed the ‘Settebello’ since its construction, it made its maiden journey from Roma Termini to Napoli Centrale on 29 March 1953, providing a very high level of service for the social élite, with waiters, hostesses, escort staff and interpreters (a sign of the international perspective of a state-owned company seeking to show off the country’s beautiful landscapes and architecture). With some controversy over the high ticket prices - 3,780 lire for a first-class ticket on the Milan-Naples route - it became the flagship of the Italian state railways, an icon of an all-Italian style and elegance that looked to the future.
Developed experimentally at the Cantieri Riuniti dell'Adriatico in Monfalcone (Trieste) in June 1952, the MC 490 - the first convertible motor gunboat - was launched in 1954 and entered service with the Italian Navy the following year. Its design saw several modifications over the years, especially in the type and size of its weaponry, leading to the production of a series of MC-491-492 gunboats that were later denominated ‘Lampo’ and ‘Baleno’. It reached its peak performance in 1962-63 with more powerful engines. It was denominated the ‘Folgore’ in 1965 and remained in service until 1976, being used in training activities alongside other, more recently built gunboats.
The newly formed OTO Melara, a company specialising in naval and land artillery production and in the midst of its reconversion period, sold a record 1,032 agricultural tractors in a single year, becoming one of the largest manufacturers of the time along with Same, Landini, OM and Fiat. The engineer Camillo Corradi designed a new line of products that, from 1950 to 1958, involved the production of 20 models, each of which had different versions. In 1957, he presented the C 20, with four wheels, available in pure crawler and transformable crawler versions. As well as grey mechanical parts, a distinctive feature was the absence of a receding bonnet and, unique among OTO products, an unconventional positioning of the brake and clutch pedals compared to other agricultural vehicles of the time. In response to the Ministry of Defence’s request for a renovation of its military vehicles, the company slowly abandoned the production of agricultural vehicles from 1962 onwards. This was the starting point for a new design for its naval and terrestrial self-loading guns.
Aerfer manufactured this all-Italian experimental light fighter at Pomigliano d’Arco (Naples). Designed by the engineer Sergio Stefanutti for a NATO tender later won by the FIAT G.91, the Sagittario II flew from Pratica di Mare military airport on 4 December 1956 piloted by Lieutenant Colonel Giovanni Franchini, breaking the speed of sound.
The MB.326 was Italy’s highest-production jet trainer aircraft, adopted by many air forces worldwide. Designed by the engineer Ermanno Bazzocchi, the MB.326 had innovative features due to the fact that it was a jet designed for military flight schools. It was robust, manoeuvrable, with low operating costs, suitable for the basic and advanced training of frontline aircraft pilots. Renamed ‘Macchino’, it became one of the Italian aeronautics industry’s most important post-war success stories, launching Aermacchi as a world leader in pilot training.
On 7 December, the Ansaldo shipyard in Genoa Sestri Ponente launched a new ocean liner, the ‘Leonardo da Vinci’, for the shipping company Italia Società di Navigazione, to replace the ‘Andrea Doria’ which had sunk in a tragic accident two years previously. In service from 30 June 1960, it was a luxurious and fast ship, designed and built using all the latest engineering advances of the era. Architects such as Luccichenti, Monaco, Zoncada and Pulitzer worked on its sinuous and functional lines, while artists including Casorati, Turcato, Cagli, Vedova and Petrolini were commissioned for its design and furnishings. With a capacity of 1,326 passengers, it was the first ship to boast a private bathroom and air conditioning in every cabin. It was used for scheduled voyages between Italy and the United States before being decommissioned in 1976.
Fiat Aviazione (later to merge with Aeritalia) manufactured the Fiat G.91, a single-engine jet and arrow-wing fighter-reconnaissance aircraft from the mid-1950s. It was designed by the engineer Giuseppe Gabrielli for the NATO tender, in December 1953, for the production of a light tactical fighter. The aircraft matched the requirements perfectly: capable of operating from makeshift and unprepared runways, with high speed (the first prototype exceeded Mach 1 at an altitude of 9,000 metres) and carrying offensive loads of at least 450 kg. In 1958 it was named winner of the tender and, subsequently, it mainly saw service with the Italian Air Force (in the R version, including pre-production models, equipping the Frecce Tricolori national aerobatic team from 1964 to 1981 when it was replaced by the Aermacchi MB-339-PAN), the German Luftwaffe and the Força Aérea Portuguesa.
Meteor, a light aircraft manufacturer founded in 1947, entered a new sector in the late 1950s by developing and producing uncrewed aircraft built of composite materials. These were for use as aerial targets for training land and naval artillery and reconnaissance missions. The role of the Meteor P.1 was therefore to test Italian anti-aircraft weapon systems at the Salto di Quirra Interforce Firing Range in Sardinia. Propeller-powered, with a four-cylinder 120 hp Alfa engine, the Meteor P.1 was controlled from a ground station. It was then picked up by helicopter divers once it had ditched into the sea by parachute. This Remotely Piloted Vehicle (RPV) was the first of several versions that marked the beginning of a tradition of excellence in the sector that Meteor transferred to Finmeccanica on its acquisition in 1988.
Video banner : Compagnia Generale di Elettricità factories, Milan, 1955 - 1956,
Courtesy Fondazione Ansaldo
2026-06-01T16:59:13Z
cookie_disclaimer:true
page_disclaimer :false