
﻿ Our Mission Statement Environmental policy Through Zara’s business model , we aim to contribute to the sustainable development of society and that of the environment with which we interacts . The company 's commitment to the environment is included in Inditex Group’s Corporate Responsibility Statement , published on our website : www . inditex . com . The following are some of the objectives and actions included in the framework of the group 's environmental commitment and have a direct impact on our shops and customers : At the store * - We save energy . * - The eco-friendly shop . * - We produce less waste , and recycle . * - Our commitment extends to all our staff . * - An environmentally aware team . We save energy . The eco-friendly store . We are implementing an eco-friendly management model in our shops in order to reduce energy consumption by 20 % , introducing sustainability and efficiency criteria . This management model sets out measures to be applied to all processes , including the design of the shop itself , the lighting , heating and cooling systems and the possibility of recycling furniture and decoration . We produce less waste and recycle . Recycling hangers and alarms , which are picked up from our shops and processed into other plastic elements , is an example of our waste management policy . Millions of hangers and alarms are processed each year and both the cardboard and plastic used for packaging are also recycled . - Our commitment extends to all our staff . Increased awareness among our team members . We hold In-company awareness campaigns and specific multimedia-based training programmes to educate our staff in sustainable practices , such as limiting energy consumption , using sustainable transport and modifying behaviour patterns . With the product * - We use ecological fabrics . * - Organic cotton . * - We manufacture PVC-free footwear . We use ecological fabrics . Organic cotton . Zara supports organic farming and makes some of its garments out of organic cotton ( 100 % cotton , completely free of pesticides , chemicals and bleach ) . They have specific labels and are easy to spot in our shops . We produce PVC-free footwear . No petroleum derivatives or non-biodegradable materials are used in the production of our footwear ( PVC free ) . In transport - We use biodiesel fuel . Zara 's fleet of lorries , which transport more than 200 million items of clothing a year , use 5 % biodiesel fuel . This allows us to reduce our CO2 emissions by 500 tons . Animal welfare policy All products of animal origin sold in our shops , including fur and leather , come exclusively from animals raised on food farms and under no circumstances come from animals sacrificed exclusively for the sale of their hide . 