Η Roca υποστηρίζει τη Μπιενάλε Αρχιτεκτονικής της Βενετίας 2025 με δύο εγκαταστάσεις των Benedetta Tagliabue και Bjarke Ingels
Παλιοί συνεργάτες παρουσιάζουν οραματικές αναζητήσεις σχετικά με το νερό και το μέλλον της αρχιτεκτονικής.
The following has evaluated to null or missing: ==> globalCacheManager.getMarketsTree() [in template "20099#20135#100808" at line 27, column 18] ---- 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: marketTree = globalCacheManager.getMa... [in template "20099#20135#100808" at line 27, column 5] ----
1<#--
2Web content templates are used to lay out the fields defined in a web
3content structure.
4Please use the left panel to quickly add commonly used variables.
5Autocomplete is also available and can be invoked by typing "${".
6
7-->
8
9<#global
10 globalCacheManager = cacheUtils.getCacheManager(themeDisplay.getScopeGroupId())!
11/>
12
13<#if globalCacheManager??>
14
15<#global
16
17 p_Map = productsMap?eval
18 c_Map = collectionsMap?eval
19 u_Layouts = userLayouts?eval
20
21 profile_layouts = u_Layouts.profileLayouts
22
23 profile_url = u_Layouts.profileUrl
24 logout_url = u_Layouts.logoutUrl
25 login_url = u_Layouts.loginUrl
26
27 marketTree = globalCacheManager.getMarketsTree()
28 hasCommerce = globalCacheManager.checkCommerce(request)
29 currentMarket = globalCacheManager.getCurrentMarket(request)
30 currentCountry = globalCacheManager.getCurrentCountry(request)
31
32/>
33
34<header class="js-header">
35<div class="main-header__wrapper">
36 <!-- supra menu -->
37 <section class="supramenu">
38 <div class="container">
39 <div class="row row-flex">
40 <div class="col-md-4 supramenu-left">
41 <ul class="supramenu__list supramenu__list--left">
42 <#if getterUtil.getBoolean(showLanguage.getData())>
43 <li class="supramenu__item supramenu__item--language" id="lang-list">
44 <div class="js-language-menu js-collapse-sm">
45 <div class="link-wrapper">
46 <a class="supramenu__link" href="javascript:void(0)">
47 <span>${themeDisplay.getLocale().getLanguage()}</span>
48 </a>
49 <#if localeList?? && localeList?has_content && localeList?size gt 1>
50 <span class="arrow"></span>
51 </#if>
52 </div>
53
54 <#if localeList?? && localeList?has_content && localeList?size gt 1>
55 <div id="language" class="js-menu-collapse dropdown-menu" aria-labelledby="toggle-user-menu">
56 <div class="wrapper">
57 <ul>
58 <#list localeList as marketLocale>
59 <#if themeDisplay.getLocale() != marketLocale>
60 <#assign lpath = "/" />
61 <#if currentCountry?? && currentCountry.code == "ES">
62 <#assign lpath = globalCacheManager.translate(themeDisplay.getLocale(), "/sobre-roca") />
63 </#if>
64 <li>
65 <a href="${globalCacheManager.getSiteURL(request, marketLocale, lpath, false)}">
66 ${marketLocale.getDisplayLanguage(themeDisplay.getLocale())}
67 </a>
68 </li>
69 </#if>
70 </#list>
71 </ul>
72 </div>
73 </div>
74 </#if>
75 </div>
76 </li>
77 </#if>
78 <!-- Obtain the country -->
79 <#if getterUtil.getBoolean(showCountry.getData())>
80 <li class="supramenu__item supramenu__item--country menu-country-trigger">
81 <#if currentCountry?? && currentCountry?has_content>
82 <a class="supramenu__link" href="javascript:void(0)" data-groupid="${themeDisplay.getSiteGroupId()}" data-languageid="${themeDisplay.getLanguageId()}" data-target="country-menu-collapse">${currentCountry.getAssetCategory().getTitle(themeDisplay.getLocale())}</a>
83 </#if>
84 </li>
85 </#if>
86 <#if getterUtil.getBoolean(showAbout.getData())>
87 <#if about.aboutLink.getData()?has_content>
88 <li class="supramenu__item supramenu__item--about">
89 <#assign abtLink = globalCacheManager.parseLinkURL(request, about.aboutLink.getData()) />
90 <a class="supramenu__link" href="${abtLink}" target="_blank" rel="noopener noreferrer">${about.aboutText.getData()}</a>
91 </li>
92 </#if>
93 </#if>
94 </ul>
95 </div>
96 <div class="col-md-8 supramenu-right">
97 <ul class="supramenu__list supramenu__list--right">
98 <#if link.getSiblings()?has_content>
99 <#list link.getSiblings() as cur_headTopLink>
100 <li class="supramenu__item">
101 <#assign chtLink = globalCacheManager.parseLinkURL(request, cur_headTopLink.linkUrl.getData()) />
102 <a class="supramenu__link" href="${chtLink}" target="${globalCacheManager.getLinkTarget(chtLink)}">${cur_headTopLink.linkText.getData()}</a>
103 </li>
104 </#list>
105 </#if>
106 <#list icon.getSiblings() as cur_headIconLink>
107 <li class="supramenu__item supramenu__item--icon">
108 <#assign
109 chiLink = globalCacheManager.parseLinkURL(request, cur_headIconLink.iconLink.getData())
110 />
111 <#if chiLink?contains("comparator")>
112 <#assign typeIcon = globalCacheManager.translate(locale, "Comparator") />
113 <a class="supramenu__link" href="${chiLink}" target="${globalCacheManager.getLinkTarget(chiLink)}" title="${typeIcon}">
114 <i class="${cur_headIconLink.iconClass.getData()}"></i>
115 <span>${cur_headIconLink.iconText.getData()}</span>
116 </a>
117 <#elseif chiLink?contains("favorites")>
118 <#assign typeIcon = globalCacheManager.translate(locale, "Favourites") />
119 <a class="supramenu__link" href="${chiLink}" target="${globalCacheManager.getLinkTarget(chiLink)}" title="${typeIcon}">
120 <i class="${cur_headIconLink.iconClass.getData()}"></i>
121 <span>${cur_headIconLink.iconText.getData()}</span>
122 </a>
123 <#else>
124 <a class="supramenu__link" href="${chiLink}" target="${globalCacheManager.getLinkTarget(chiLink)}">
125 <i class="${cur_headIconLink.iconClass.getData()}"></i>
126 <span>${cur_headIconLink.iconText.getData()}</span>
127 </a>
128 </#if>
129 </li>
130 </#list>
131 <#if getterUtil.getBoolean(showPrivate.getData())>
132 <li id="userMenuLi" class="supramenu__item supramenu__item--login"
133 data-group="${themeDisplay.getSiteGroupId()}"
134 data-market="${currentMarket.getCode()}"
135 data-language="${themeDisplay.getLanguageId()}"
136 data-debug="${globalCacheManager.debugMarginals()?c}"
137 >
138 <div class="loader-roca active">
139 <div class="lds-css"></div>
140 <div class="lds-load">
141 <div></div>
142 <div></div>
143 <div></div>
144 </div>
145 </div>
146 </li>
147 </#if>
148 </ul>
149 </div>
150 </div>
151 </div>
152 </section>
153 <section class="main-nav js-main-nav">
154 <div class="container">
155 <div class="row-flex">
156 <div class="logo-header">
157 <#if logoLink.getData()?has_content>
158 <#assign
159 lgLink = globalCacheManager.parseLinkURL(request, logoLink.getData())
160 />
161 <a href="${lgLink}" target="${globalCacheManager.getLinkTarget(lgLink)}">
162
163 <img src="${logo.getData()}" style="<#if (logo.width)?? && logo.width.getData()?has_content && logo.width.getData() != "0" >width:${logo.width.getData()}px;</#if><#if (logo.height)?? && logo.height.getData()?has_content && logo.height.getData() != "0" >height:${logo.height.getData()}px;</#if>
164 "
165 alt="Roca">
166 </a>
167 <#else>
168 <img src="${logo.getData()}" style="
169 <#if (logo.width)?? && logo.width.getData()?has_content && logo.width.getData() != "0">
170 width:${logo.width.getData()}px;
171 </#if>
172 <#if (logo.height)?? && logo.height.getData()?has_content && logo.height.getData() != "0">
173 height:${logo.height.getData()}px;
174 </#if>
175 "
176 alt="Roca">
177 </#if>
178 </div>
179 <nav class="main-menu__wrapper">
180 <#if menu.getSiblings()?has_content>
181 <ul class="main-menu__list" id="id001">
182 <#list menu.getSiblings() as cur_headNavItem>
183 <li class="main-menu__item js-collapse-sm">
184 <div class="link-wrapper">
185 <#assign
186 mUrlLink = globalCacheManager.parseLinkURL(request, cur_headNavItem.menuUrl.getData())
187 />
188 <a class="main-menu__link" href="${mUrlLink}" target="${globalCacheManager.getLinkTarget(mUrlLink)}">${cur_headNavItem.menuText.getData()}</a>
189 <#if cur_headNavItem.menuType.getData() == 'PRODUCTS'>
190 <span class="arrow"></span>
191 </div>
192
193 <div id="product-menu-2" class="js-menu-collapse dropdown-menu mega-menu products">
194 <div class="wrapper">
195 <section>
196 <div class="container">
197 <div class="row row-flex">
198 <div class="main-content col-xs-12 col-sm-12">
199 <div class="wrapper">
200 <ul class="row row-flex">
201 <#list p_Map?sort_by("websort") as item>
202 <li class="col-xs-6 col-md-4">
203 <div class="product-list-item">
204 <#assign itemLink = item.url />
205 <a href="${itemLink}">
206 <#if item.title?has_content >
207 <div class="img-wrap">
208 <img src="${item.image!}" alt="${item.title}">
209 </div>
210 <div class="text-wrap">
211 <span>${item.title}</span>
212 </div>
213 <#else>
214 <div class="img-wrap">
215 <img src="${item.image!}">
216 </div>
217 <div class="text-wrap">
218 <span></span>
219 </div>
220 </#if>
221 </a>
222 </div>
223 </li>
224 </#list>
225 </ul>
226 </div>
227 </div>
228
229 <#-- <article class="col-xs-12 col-sm-4">
230 <div class="wrapper">
231 ${cur_headNavItem.menuPromo.menuPromoText.getData()}
232 </div>
233 <#if cur_headNavItem.menuPromo.menuPromoImage.getData()?has_content>
234 <span class="background-grow" style="background-image:url(${cur_headNavItem.menuPromo.menuPromoImage.getData()});background-repeat: no-repeat;background-size: cover;"></span>
235 <#else>
236 <span class="background-grow"></span>
237 </#if>
238 </article> -->
239 </div>
240 </div>
241
242 <footer>
243 <div class="row-flex">
244 <div class="goto-link">
245 <a href="${mUrlLink}">${globalCacheManager.translate(locale, "Go to")} ${cur_headNavItem.menuText.getData()}<span class="right-arrow"></span></a>
246 </div>
247 <#if cur_headNavItem.menuIcon.getSiblings()?has_content>
248 <#list cur_headNavItem.menuIcon.getSiblings() as cur_headNavItemBottomLink>
249 <div class="footer-link">
250 <#assign
251 iBottomLink = globalCacheManager.parseLinkURL(request, cur_headNavItemBottomLink.menuIconUrl.getData())
252 />
253 <a href="${iBottomLink}" target="${globalCacheManager.getLinkTarget(iBottomLink)}">
254 <img src="${cur_headNavItemBottomLink.menuIconFile.getData()}" style="
255 <#if cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth?? && cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData()?has_content && cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData() != "0">
256 width: ${cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData()}px;
257 </#if>
258
259 <#if cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight?? && cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData()?has_content && cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData() != "0">
260 height: ${cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData()}px;
261 </#if>
262 "
263 alt="${cur_headNavItemBottomLink.menuIconText.getData()}">
264 <span>${cur_headNavItemBottomLink.menuIconText.getData()}</span></a>
265 </div>
266 </#list>
267 </#if>
268 </div>
269 </footer>
270 </section>
271 </div>
272 </div>
273 <#elseif cur_headNavItem.menuType.getData() == 'COLLECTIONS'>
274 <span class="arrow"></span>
275 </div>
276
277 <div id="collection-menu-2" class="js-menu-collapse dropdown-menu mega-menu">
278 <div class="wrapper">
279 <section>
280 <div class="container">
281 <div class="row row-flex">
282 <div class="main-content col-xs-12 col-xl-8">
283 <div class="wrapper">
284 <ul class="row row-flex">
285 <#list c_Map?sort_by("websort") as coll>
286 <#if coll.title?has_content >
287 <li class="col-xs-12 col-sm-6 col-lg-4">
288 <div class="collection-list-item">
289 <#if coll.url?? && coll.url?has_content>
290 <#assign collLink = coll.url />
291 <a href="${collLink}" class="collection">${coll.title}</a>
292 <#else>
293 <a href="#" class="collection">${coll.title}</a>
294 </#if>
295 <ul class="sub-items">
296 <#list coll.children as subColl>
297 <li class="sub-item">
298 <#if subColl.url?? && subColl.url?has_content>
299 <#assign sCollLink = subColl.url />
300 <a href="${sCollLink}">${subColl.title}</a>
301 <#else>
302 <a href="#">${subColl.title}</a>
303 </#if>
304 </#list>
305 <#if coll.children?size < coll.totalChildren>
306 ...</li>
307 <#else>
308 </li>
309 </#if>
310 </ul>
311 </div>
312 </li>
313 </#if>
314 </#list>
315 </ul>
316 </div>
317 </div>
318
319 <article class="col-xs-12 col-xl-4">
320 <div class="wrapper">
321 ${cur_headNavItem.menuPromo.menuPromoText.getData()}
322 </div>
323 <#if cur_headNavItem.menuPromo.menuPromoImage.getData()?has_content>
324 <span class="background-grow" style="background-image:url(${cur_headNavItem.menuPromo.menuPromoImage.getData()});background-repeat: no-repeat;background-size: cover;"></span>
325 <#else>
326 <span class="background-grow"></span>
327 </#if>
328 </article>
329 </div>
330 </div>
331
332 <footer>
333 <div class="row-flex">
334 <div class="goto-link">
335 <a href="${mUrlLink}">${globalCacheManager.translate(locale, "Go to")} ${cur_headNavItem.menuText.getData()}<span class="right-arrow"></span></a>
336 </div>
337 <#if cur_headNavItem.menuIcon.getSiblings()?has_content>
338 <#list cur_headNavItem.menuIcon.getSiblings() as cur_headNavItemBottomLink>
339 <div class="footer-link">
340 <#assign
341 iBottomLink = globalCacheManager.parseLinkURL(request, cur_headNavItemBottomLink.menuIconUrl.getData())
342 />
343 <a href="${iBottomLink}" target="${globalCacheManager.getLinkTarget(iBottomLink)}">
344 <img src="${cur_headNavItemBottomLink.menuIconFile.getData()}" style="
345 <#if cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth?? && cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData()?has_content && cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData() != "0">
346 width: ${cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData()}px;
347 </#if>
348
349 <#if cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight?? && cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData()?has_content && cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData() != "0">
350 height: ${cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData()}px;
351 </#if>
352 "
353 alt="${cur_headNavItemBottomLink.menuIconText.getData()}">
354 <span>${cur_headNavItemBottomLink.menuIconText.getData()}</span></a>
355 </div>
356 </#list>
357 </#if>
358 </div>
359 </footer>
360 </section>
361 </div>
362 </div>
363 <#elseif cur_headNavItem.menuType.getData() == 'PROFESSIONALS'>
364 <span class="arrow"></span>
365 </div>
366
367 <div id="pro-menu-2" class="js-menu-collapse dropdown-menu mega-menu">
368 <div class="wrapper">
369 <section>
370 <div class="container">
371 <div class="row">
372
373 <div class="main-content col-xs-12 col-xl-8 blue-theme">
374 <div class="wrapper">
375 <div class="pro-box">
376 <#if cur_headNavItem.menuPro.menuProImage.getData()?has_content>
377 <#assign
378 proImageLink = globalCacheManager.parseLinkURL(request, cur_headNavItem.menuPro.menuProImageUrl.getData())
379 />
380 <a href="${proImageLink}" target="${globalCacheManager.getLinkTarget(proImageLink)}">
381 <img src="${cur_headNavItem.menuPro.menuProImage.getData()}" style="
382 <#if cur_headNavItem.menuPro.menuProImage.menuProImageWidth?? && cur_headNavItem.menuPro.menuProImage.menuProImageWidth.getData()?has_content && cur_headNavItem.menuPro.menuProImage.menuProImageWidth.getData() != "0">
383 width: ${cur_headNavItem.menuPro.menuProImage.menuProImageWidth.getData()}px;
384 </#if>
385
386 <#if cur_headNavItem.menuPro.menuProImage.menuProImageHeight?? && cur_headNavItem.menuPro.menuProImage.menuProImageHeight.getData()?has_content && cur_headNavItem.menuPro.menuProImage.menuProImageHeight.getData() != "0">
387 height: ${cur_headNavItem.menuPro.menuProImage.menuProImageHeight.getData()}px;
388 </#if>
389 "
390 alt="Pro">
391 </a>
392 </#if>
393 <#if cur_headNavItem.menuPro.menuProText.getData()?has_content>
394 <div class="text-content">
395 ${cur_headNavItem.menuPro.menuProText.getData()}
396 </div>
397 </#if>
398 <#if cur_headNavItem.menuPro.menuProSection.getSiblings()?has_content>
399 <ul class="pro-list-items">
400 <#list cur_headNavItem.menuPro.menuProSection.getSiblings() as cur_proSection>
401 <li class="pro-list-item">
402 <#assign
403 proSectionLink = globalCacheManager.parseLinkURL(request, cur_proSection.menuProSectionLink.getData())
404 />
405 <a href="${proSectionLink}" target="${globalCacheManager.getLinkTarget(proSectionLink)}">${cur_proSection.menuProSectionText.getData()}</a>
406 </li>
407 </#list>
408 </ul>
409 </#if>
410 </div>
411 </div>
412 <span class="background-grow"></span>
413 </div>
414
415 <article class="col-xs-12 col-xl-4 grey-theme">
416 <div class="wrapper">
417 <div class="pro-box">
418 <#if cur_headNavItem.menuContract.menuContractImage.getData()?has_content>
419 <#assign
420 contractImageLink = globalCacheManager.parseLinkURL(request, cur_headNavItem.menuContract.menuContractImageUrl.getData())
421 />
422 <a href="${contractImageLink}" target="${globalCacheManager.getLinkTarget(contractImageLink)}">
423 <img src="${cur_headNavItem.menuContract.menuContractImage.getData()}" style="
424 <#if cur_headNavItem.menuContract.menuContractImage.menuContractImageWidth?? && cur_headNavItem.menuContract.menuContractImage.menuContractImageWidth.getData()?has_content && cur_headNavItem.menuContract.menuContractImage.menuContractImageWidth.getData() != "0">
425 width: ${cur_headNavItem.menuContract.menuContractImage.menuContractImageWidth.getData()}px;
426 </#if>
427
428 <#if cur_headNavItem.menuContract.menuContractImage.menuContractImageHeight?? && cur_headNavItem.menuContract.menuContractImage.menuContractImageHeight.getData()?has_content && cur_headNavItem.menuContract.menuContractImage.menuContractImageHeight.getData() != "0">
429 height: ${cur_headNavItem.menuContract.menuContractImage.menuContractImageHeight.getData()}px;
430 </#if>
431 "
432
433 alt="Contract">
434 </a>
435 </#if>
436 <#if cur_headNavItem.menuContract.menuContractText.getData()?has_content>
437 <div class="text-content">
438 ${cur_headNavItem.menuContract.menuContractText.getData()}
439 </div>
440 </#if>
441 <#if cur_headNavItem.menuContract.menuContractSection?? && cur_headNavItem.menuContract.menuContractSection.getSiblings()?has_content>
442 <ul class="pro-list-items">
443 <#list cur_headNavItem.menuContract.menuContractSection.getSiblings() as cur_contractSection>
444 <li class="pro-list-item">
445 <#assign
446 contractSectionLink = globalCacheManager.parseLinkURL(request, cur_contractSection.menuContractSectionLink.getData())
447 />
448 <a href="${contractSectionLink}" target="${globalCacheManager.getLinkTarget(contractSectionLink)}">${cur_contractSection.menuContractSectionText.getData()}</a>
449 </li>
450 </#list>
451 </ul>
452 </#if>
453 </div>
454 </div>
455 <span class="background-grow"></span>
456 </article>
457 </div>
458 </div>
459
460 <footer>
461 <div class="row-flex">
462 <div class="goto-link">
463 <a href="${mUrlLink}">${globalCacheManager.translate(locale, "Go to")} ${cur_headNavItem.menuText.getData()} <span class="right-arrow"></span>
464 </a>
465 </div>
466 <#if cur_headNavItem.menuIcon.getSiblings()?has_content>
467 <#list cur_headNavItem.menuIcon.getSiblings() as cur_headNavItemBottomLink>
468 <div class="footer-link">
469 <#assign
470 iBottomLink = globalCacheManager.parseLinkURL(request, cur_headNavItemBottomLink.menuIconUrl.getData())
471 />
472 <a href="${iBottomLink}" target="${globalCacheManager.getLinkTarget(iBottomLink)}">
473 <img src="${cur_headNavItemBottomLink.menuIconFile.getData()}" style="<#if cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth?? && cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData()?has_content && cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData() != "0">width: ${cur_headNavItemBottomLink.menuIconFile.menuIconFileWidth.getData()}px;</#if>
474
475 <#if cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight?? && cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData()?has_content && cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData() != "0">height: ${cur_headNavItemBottomLink.menuIconFile.menuIconFileHeight.getData()}px;</#if>"
476
477 alt="${cur_headNavItemBottomLink.menuIconText.getData()}">
478 <span>${cur_headNavItemBottomLink.menuIconText.getData()}</span></a>
479 </div>
480 </#list>
481 </#if>
482 </div>
483 </footer>
484 </section>
485 </div>
486 </div>
487 <#elseif cur_headNavItem.menuType.getData() == 'LINK'>
488 </div>
489 <#elseif cur_headNavItem.menuType.getData() == 'CERAMICS'>
490 <span class="arrow"></span>
491 </div>
492
493 <div id="about-us-menu-${cur_headNavItem?index}" class="js-menu-collapse dropdown-menu mega-menu" aria-labelledby="toggle-news-menu">
494 <div class="wrapper">
495 <section>
496 <div class="container">
497 <div class="row row-flex">
498 <div class="main-content col-12 col-xl-12">
499 <div class="wrapper">
500
501 <ul class="row row-flex">
502 <#list cur_headNavItem.menuSub.getSiblings() as cur_subLinks>
503 <li class="col-12 col-sm-6 col-xl-3">
504 <div class="collection-list-item">
505 <#assign ceramicsLinkUrl = globalCacheManager.parseLinkURL(request, cur_subLinks.menuSubUrl.getData())>
506 <a class="collection" href="${ceramicsLinkUrl}" target="${globalCacheManager.getLinkTarget(ceramicsLinkUrl)}">${cur_subLinks.menuSubText.getData()}</a>
507 </div>
508 </li>
509 </#list>
510 </ul>
511 </div>
512
513 </div>
514 </div>
515
516 </section>
517 </div>
518 </div>
519 <#elseif cur_headNavItem.menuType.getData() == 'PROFESSIONAL_ZONE'>
520 <span class="arrow"></span>
521 </div>
522
523 <div id="menu-section-${cur_headNavItem?index}" class="js-menu-collapse dropdown-menu mega-menu" aria-labelledby="toggle-news-menu">
524 <div class="wrapper">
525 <section>
526 <div class="container content-Submenu">
527 <div class="row row-flex">
528 <#if cur_headNavItem.menuPromo.menuPromoImage.getData()?has_content>
529 <div class="main-content col-12 col-xl-8">
530 <#else>
531 <div class="main-content col-12 col-xl-12">
532 </#if>
533 <div class="wrapper footer__lists" id="menuSection01">
534 <#if cur_headNavItem.menuSection.getSiblings()?has_content >
535 <#assign
536 menuSectionCounter = 0
537 menuSectionNextSingle = false
538 />
539 <#assign menuSectionId = 1/>
540 <#list cur_headNavItem.menuSection.getSiblings() as cur_section>
541 <#if cur_section.menuSectionSub.getSiblings()?has_content && cur_section.menuSectionSub.getSiblings()[0].menuSectionSubLink.getData()?has_content >
542 <div class="js-collapse-wrapper collection-list-item col-12 col-md-3">
543 <#assign hLink = globalCacheManager.parseLinkURL(request, cur_section.menuSectionLink.getData()) />
544 <#if hLink?? && hLink?has_content>
545 <h2>
546 <a class="collection" style="font-size: 13px;" href="${hLink}" target="${cur_section.menuSectionTarget.getData()}">
547 ${cur_section.menuSectionText.getData()}
548 </a>
549 </h2>
550 <#else>
551 <h2>
552 <p class="collection" style="background-size: 0px;font-size: 13px;">
553 ${cur_section.menuSectionText.getData()}
554 </p>
555 </h2>
556 </#if>
557 <div class="collapseble-wrapper collapse" id="menu-section-collapse-${menuSectionId}" style="display: block !important;">
558 <#assign menuSectionId = menuSectionId+1/>
559 <ul class="row row-flex" style="flex-flow: column;">
560 <#list cur_section.menuSectionSub.getSiblings() as cur_sectionSub>
561 <li class="col-12">
562 <#assign ssLink = globalCacheManager.parseLinkURL(request, cur_sectionSub.menuSectionSubLink.getData()) />
563 <a class ="collection" style="font-family: 'Roboto-Regular';" href="${ssLink}" target="${cur_sectionSub.menuSectionSubTarget.getData()}">
564 ${cur_sectionSub.menuSectionSubText.getData()}
565 </a>
566 </li>
567 </#list>
568 </ul>
569 </div>
570 </div>
571 <#else>
572 <#if menuSectionNextSingle = false >
573 <div class="js-collapse-wrapper collection-list-item col-12 col-md-3">
574 </#if>
575 <#assign msLink = globalCacheManager.parseLinkURL(request, cur_section.menuSectionLink.getData()) />
576 <#if msLink?? && msLink?has_content>
577 <h2>
578 <a class="collection" style="font-size: 13px;" href="${msLink}" target="${cur_section.menuSectionTarget.getData()}">
579 ${cur_section.menuSectionText.getData()}
580 </a>
581 </h2>
582 <#else>
583 <h2>
584 <p class="collection" style="background-size: 0px;font-size: 13px;">
585 ${cur_section.menuSectionText.getData()}
586 </p>
587 </h2>
588 </#if>
589 <#if menuSectionCounter lt cur_headNavItem.menuSection.getSiblings()?size && cur_headNavItem.menuSection.getSiblings()[menuSectionCounter].menuSectionSub.getSiblings()[0].menuSectionSubLink.getData()?has_content >
590 </div>
591 <#elseif menuSectionCounter = cur_headNavItem.menuSection.getSiblings()?size >
592 </div>
593 <#else>
594 </div>
595 <#assign menuSectionNextSingle = true />
596 </#if>
597 </#if>
598 <#assign menuSectionCounter = menuSectionCounter + 1 />
599 </#list>
600 </#if>
601 </div>
602 </div>
603
604 <#if cur_headNavItem.menuPromo.menuPromoImage.getData()?has_content>
605 <article class="col-12 col-xl-4 cont-article">
606 <#assign mpLink = globalCacheManager.parseLinkURL(request, cur_headNavItem.menuPromo.menuPromoUrl.getData()) />
607 <#if mpLink?? && mpLink?has_content>
608 <a href="${mpLink}" class="cont-linkArrow">
609 </#if>
610 <div class="wrapper cta-black" >
611 ${cur_headNavItem.menuPromo.menuPromoText.getData()}
612 </div>
613 <span class="background-grow" style="background-image:url(${cur_headNavItem.menuPromo.menuPromoImage.getData()});"></span>
614 <#if mpLink?? && mpLink?has_content>
615 </a>
616 </#if>
617 </article>
618 </#if>
619 </div>
620 </div>
621 </section>
622 </div>
623 </div>
624 </#if>
625 </li>
626 </#list>
627 <#list promo.getSiblings() as promo_item>
628 <li class="main-menu__item js-collapse-sm">
629 <div class="link-wrapper">
630 <#assign
631 promoLink = globalCacheManager.parseLinkURL(request, promo_item.promoUrl.getData())
632 />
633 <a class="main-menu__link" href="${promoLink}" target="${globalCacheManager.getLinkTarget(promoLink)}">${promo_item.promoText.getData()}</a>
634 </div>
635 </li>
636 </#list>
637 </ul>
638 </#if>
639 </nav>
640 <nav class="right-menu__wrapper">
641 <ul class="right-menu__list js-h-search">
642 <#if getterUtil.getBoolean(showSearch.getData())>
643 <li class="right-menu__item">
644 <#assign searchLink = globalCacheManager.parseLinkURL(request, globalCacheManager.translate(locale, "/search")) />
645 <a href="${searchLink}" target="${globalCacheManager.getLinkTarget(searchLink)}" class="right-menu__link" title="${globalCacheManager.translate(locale, "Search")}">
646 <i class="icon-search-24"></i>
647 </a>
648 </li>
649 </#if>
650 <#if getterUtil.getBoolean(showCart.getData()) && hasCommerce>
651 <li class="right-menu__item js-h-cart">
652 <#assign cartLink = globalCacheManager.getEcommerceURL(request, "/checkout/cart") />
653 <a href="${cartLink}" class="right-menu__link" title="${globalCacheManager.translate(locale, "Go to cart")}">
654 <span class="items-cart">-</span>
655 <i class="icon-cart-24"></i>
656 </a>
657 </li>
658 </#if>
659 <li class="right-menu__item js-h-hamburger menu-trigger">
660 <a href="javascript:void(0)" data-target="main-menu-collapse" class="right-menu__link">
661 <i class="icon-menu-24"></i>
662 </a>
663 </li>
664 </ul>
665 </nav>
666 </section>
667 <div class="r-modal main-menu-collapse">
668 <div class="close-menu">
669 <div class="wrapper">
670 <a href="javascript:void(0)" class="js-close icon-cross-24"></a>
671 </div>
672 </div>
673 <div class="r-modal__wrapper">
674 </div>
675 </div>
676
677 <div class="r-modal country-menu-collapse">
678 <div class="close-menu">
679 <div class="wrapper">
680 <a href="javascript:void(0)" class="js-close icon-cross-24"></a>
681 </div>
682 </div>
683 <div class="r-modal__wrapper">
684 <div class="container">
685 <div class="row">
686 <div class="col-xs-12">
687 <h2>${globalCacheManager.translate(locale, "Select your country")}</h2>
688 </div>
689 </div>
690 <div class="row row-flex" id="continent-parent">
691
692 <!-- this div ends the country selector -->
693 </div>
694 </div>
695 </div>
696 </div>
697
698</div>
699
700<#if getterUtil.getBoolean(showPrivate.getData()) >
701 <div id="mobileUserAreaDiv" class="js-submenu" style="display:none;">
702 </div>
703</#if>
704
705</header>
706
707<#if promoBanner?? && getterUtil.getBoolean(promoBanner.showPromoBanner.getData()) >
708
709 <#if promoBanner.promoBannerText.getData()?? && promoBanner.promoBannerText.getData()?has_content >
710 <div class="js-submenu promoSubmenu">
711 <section class="promomenu-section">
712 <div class="background-grow">
713 <div class="main-nav js-main-nav">
714 <p class="promomenu-text">${promoBanner.promoBannerText.getData()}
715 <#if promoBanner.promoBannerHTML.getData()?? && promoBanner.promoBannerHTML.getData()?has_content >
716 <a class="promomenu-link" data-toggle="modal" data-target="#promoBannerDisp" href="#">
717 <img class="promomenu-info" src="${themeDisplay.getPathThemeImages()}/icons/info-18white.svg" alt="${globalCacheManager.translate(locale, "Promotion info")}">
718 </a>
719 </#if>
720 </p>
721 </div>
722 </div>
723 </section>
724 </div>
725
726 <#if promoBanner.promoBannerHTML.getData()?? && promoBanner.promoBannerHTML.getData()?has_content >
727 <div class="lightbox-wrapper">
728 <div class="modal fade modal-lightbox" id="promoBannerDisp" tabindex="-1" role="dialog" aria-labelledby=""
729 style="display: none;" aria-hidden="true">
730 <div class="modal-dialog modal-lg" role="document" style="top: 20%;">
731 <div class="container">
732 <div class="close-menu">
733 <div class="wrapper">
734 <a role="button" data-dismiss="modal" id="promoBannerDisp" class="js-close icon-cross-24"></a>
735 </div>
736 </div>
737 </div>
738 <div class="r-modal__wrapper">
739 <div class="container">
740 <section style="background-color:white !important;" class="form-modal">
741 <div class="container">
742 <div class="row">
743 <div class="col-12 col-md-12 promomenu-modal">
744 ${promoBanner.promoBannerHTML.getData()}
745 </div>
746 </div>
747 </div>
748 </section>
749 </div>
750 </div>
751 </div>
752 </div>
753 </div>
754 </#if>
755 </#if>
756
757</#if>
758
759</#if>
Παλιοί συνεργάτες παρουσιάζουν οραματικές αναζητήσεις σχετικά με το νερό και το μέλλον της αρχιτεκτονικής.
Στην 19η Διεθνή Έκθεση Αρχιτεκτονικής της La Biennale di Venezia, ο επιμελητής Carlo Ratti προσκαλεί τους επισκέπτες να εξερευνήσουν το θέμα «Intelligens. Natural. Artificial. Collective». Η έκθεση εστιάζει στις αναδυόμενες μορφές νοημοσύνης, φυσικής και τεχνητής και στις δυνατότητες που προσφέρουν για το δομημένο περιβάλλον. Στο πλαίσιο αυτό, η Roca υποστηρίζει δύο εγκαταστάσεις που εξετάζουν τη σχέση μεταξύ υλικού, δεξιοτεχνίας και καινοτομίας: «Η Αρχιτεκτονική του Εικονικού Νερού» από το Miralles Tagliabue – EMBT και «Αρχαίο Μέλλον» από το Bjarke Ingels Group – BIG.
Η συνεργασία αυτή με τη Benedetta Tagliabue και τον Bjarke Ingels αποτελεί φυσική συνέχεια της μακροχρόνιας σχέσης της Roca με τα δύο στούντιο, συνεργασίες που έχουν χτιστεί μέσα από κοινές αξίες, δημιουργικό διάλογο και αφοσίωση στην καινοτομία στον σχεδιασμό. Αν και οι εγκαταστάσεις ακολουθούν διαφορετικές προσεγγίσεις, και οι δύο ευθυγραμμίζονται με τις αξίες της Roca: συνδυασμός παράδοσης και τεχνολογίας και ενθάρρυνση βαθύτερου προβληματισμού γύρω από τη βιώσιμη και ευφυή αρχιτεκτονική.
Η Αρχιτεκτονική του Εικονικού Νερού – EMBT
Σε έναν ευαίσθητο, εμβυθιστικό χώρο, η Benedetta Tagliabue και το στούντιο EMBT παρουσιάζουν μια ποιητική εξερεύνηση της αόρατης παρουσίας του νερού στο δομημένο περιβάλλον.
Ο σχεδιασμός χρησιμοποιεί ανακυκλώσιμα και χαμηλής επίπτωσης υλικά, όπως χαρτί και χαρτόνι και αγκαλιάζει την κυκλικότητα: η εγκατάσταση έχει σχεδιαστεί ώστε να αποσυναρμολογείται και να επαναχρησιμοποιείται μετά την παρουσίασή της στη Βενετία.
Σκεπτόμενη ως ένας ρευστός και οργανικός χώρος, η έκθεση οδηγεί τους επισκέπτες μέσα από πτυχώσεις που θυμίζουν την κίνηση του νερού. Η εμπειρία συνδυάζει οπτικά, ακουστικά και χωρικά στοιχεία με σκοπό την ενίσχυση της περιβαλλοντικής συνείδησης στον αρχιτεκτονικό σχεδιασμό.
Σε συμφωνία με τη μακρόχρονη δέσμευση της Roca στη διαχείριση του νερού, η εγκατάσταση καλεί σε αλλαγή νοοτροπίας: από την κατανάλωση του νερού ως πόρου στην αναγνώρισή του ως μιας παρουσίας που πρέπει να τυγχάνει σεβασμού.
Η εγκατάσταση θα μεταφερθεί στη Roca Barcelona Gallery το 2026, συμπίπτοντας με την ανάδειξη της Βαρκελώνης ως Παγκόσμιας Πρωτεύουσας Αρχιτεκτονικής.
Αρχαίο Μέλλον – BIG
Στο μνημειακό περιβάλλον του Arsenale, το Bjarke Ingels Group παρουσιάζει έναν εντυπωσιακό διάλογο μεταξύ κληρονομιάς και μηχανικής ακρίβειας. Στο κέντρο της εγκατάστασης βρίσκεται μια μοναδική ξύλινη δοκός, αρχικά σκαλισμένη στο χέρι από τεχνίτες του Μπουτάν, και κατόπιν επεξεργασμένη με ρομποτική τεχνολογία.
Αυτό το υβριδικό αντικείμενο αφηγείται την ιστορία πίσω από τον σχεδιασμό και την κατασκευή του νέου διεθνούς αεροδρομίου Gelephu, κοντά στα σύνορα Μπουτάν–Ινδίας.
Το «Αρχαίο Μέλλον» ενσαρκώνει τη σύγκλιση ανθρώπινης και μηχανικής νοημοσύνης αντικατοπτρίζοντας τη φιλοσοφία της Roca για ενοποίηση παραδοσιακής δεξιοτεχνίας και βιομηχανικής καινοτομίας. Η δοκός – τόσο ως τεχνούργημα όσο και ως σύμβολο δείχνει πώς τα ανανεώσιμα υλικά, όπως το ξύλο μπορούν να γεφυρώσουν πολιτισμούς, χρονικές περιόδους και σχεδιαστικές γλώσσες.
Roca: Προάγοντας τον πολιτιστικό διάλογο
Με την υποστήριξη αυτών των δύο εγκαταστάσεων, η Roca ενθαρρύνει έναν βαθύτερο προβληματισμό για τον ρόλο του σχεδιασμού στη διαμόρφωση ενός πιο σκεπτόμενου, βιώσιμου μέλλοντος.
Πέρα από τα υλικά και τις μεθόδους, αυτά τα έργα θέτουν θεμελιώδη ερωτήματα για το πώς και γιατί χτίζουμε προκαλώντας μια επιστροφή στα βασικά: την προέλευση των υλικών, τη νοημοσύνη της χειρονομίας και τη σημασία της διαδικασίας.
Με μια ήσυχη αλλά ουσιαστική παρουσία στη Μπιενάλε, η Roca στέκεται ως εταίρος που σέβεται το νερό, την ύλη και τη μνήμη, και αγκαλιάζει την αρχιτεκτονική ως συλλογική ευθύνη.