Tags do Projeto:

Listado

Concluído

Derivativos de Balcão

Outros

Benefícios do produto

Mais facilidade para a negociação de preços

<p>Novo modelo de preço de ajuste do Futuro de DI</p>

O Volume-Weighted Average Price (VWAP), ou Preço Médio Ponderado por Volume, é usado para balancear a média de preços de um período pelo volume de negociação. O algoritmo evita que, mesmo em cenários de alta volatilidade, haja distorções de preços.  

Usando essa metodologia, estamos lançando um novo modelo de apreçamento do Contrato Futuro de DI. Seu objetivo é trazer preços mais aderentes, que levam em consideração ofertas e negócios realizados dentro de uma janela de tempo, fazendo uma média ponderada (VWAP). Atualmente, o 1° vencimento do Contrato Futuro de Dólar (DOL) já utiliza a mesma metodologia.

O TAS (Trade at Settlement) é um instrumento que permite a negociação do Futuro de DI a preço de ajuste acrescido de um diferencial, durante todo o pregão até o fim da janela de ajuste. O diferencial negociado no TAS pode ser negativo, positivo ou zero (flat). 

O Contrato Futuro de DI tem como ativo subjacente a taxa média diária dos Depósitos Interfinanceiros (DI), calculada e divulgada pela B3, compreendida entre a data de negociação  e a data de vencimento, e é utilizado para proteção e gerenciamento de risco de taxa de juro de ativos/passivos referenciados em DI. 

Linha do tempo

  • Lançamento

    Disponível para o mercado

Detalhes técnicos

  • Alterações de catálogo

    N/A

  • Principais sistemas impactados

    RTC e Sinacor.

  • Principais funções impactadas

    Nenhuma função relacionada.

  • Roteiro de certificação

    Em definição

  • Qual a versão do Sinacor?

    v22.3

Nome do material

Data

Tipo do material

Idioma

Formato

Tamanho

Futuro de DI com TAS_ENG - Factsheet v1 20221205

05/12/2022

-

-

pdf

2MB

Trade at Settlement de Futuro de DI - Contract v1 20221201

01/12/2022

-

-

pdf

171KB

OC 146-2022 PRE Accreditation Process for the Market Maker Program in DI Future - Circular Letter v1 20221101

01/11/2022

-

-

pdf

111KB

OC 145-2022 PRE Launch of DI Future Trade at Settlement - Circular Letter v1 20221101

01/11/2022

-

-

pdf

103KB

OC 126-2022-PRE Change in the size of the round-lot of the DI Future - Circular Letter v1 20221101

01/11/2022

-

-

pdf

97KB

EC 083-2022-VPC US Person list - DIT (EN) - External Communication v1 20221101

01/11/2022

-

-

pdf

158KB

Technical Workshop - New Pricing Model & TAS - Workshop content v2 20221107

07/11/2022

-

-

pdf

908KB

Workshop Técnico - Novo modelo de apreçamento e TAS - Conteúdo workshop v2 20221107

07/11/2022

-

-

pdf

929KB

Futuro de DI com TAS - Lâmina v1 20221205

05/12/2022

-

-

pdf

2MB

Trade at Settlement de Futuro de DI - Contrato v1 20221201

01/12/2022

-

-

pdf

180KB

OC 146-2022 PRE Processo de Credenciamento no Programa de Formador de Mercado para TAS - Ofício Circular v1 20221101

01/11/2022

-

-

pdf

102KB

OC 145-2022 PRE Lançamento do Trade at Settlement de Futuro de DI - Ofício Circular v1 20221101

01/11/2022

-

-

pdf

93KB

OC 126-2022-PRE Alteração no tamanho do lote-padrão de negociação do Futuro de DI - Ofício Circular v1 20221101

01/11/2022

-

-

pdf

89KB

CE 083-2022-VPC Lista US Person - DIT (PT) - Comunicado Externo v1 20221101

01/11/2022

-

-

pdf

119KB

Cenários Tarifação - TAS - Roteiro de Certificação v1 20221004

04/10/2022

-

-

sheet

16KB

Workshop Técnico | Futuro de DI: Novo Modelo de Apreçamento e TAS

12/01/2024

-

-

octet-stream

N/A

Technical workshop | DI Futures - VWAP + TAS - EN

12/01/2024

-

-

octet-stream

N/A

Workshop | Futuro de DI - VWAP e TAS

12/01/2024

-

-

octet-stream

N/A

Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(locale))  [in template "20096#20121#90970" at line 110, column 49]

----
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: #assign impactInitiative = item[0].ge...  [in template "20096#20121#90970" at line 110, column 21]
----
1<#if entries?size != 0 > 
2    <#assign assetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3    <#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")/> 
4<#assign roleLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.RoleLocalService")/> 
5    <#assign resourcePermissionLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ResourcePermissionLocalService") /> 
6    <#assign _journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
7 
8    <#assign url = currentURL> 
9    <#assign assetEntryIdIndex = url?index_of("assetEntryId=") + 13> 
10    <#assign assetEntryId = url?substring(assetEntryIdIndex)> 
11 
12    <#assign displayPageAssetEntry = assetLocalService.getAssetEntry(assetEntryId?number) /> 
13    <#assign displayPageAssetEntryCategories = displayPageAssetEntry.getCategories() /> 
14    <#assign justProjectSegment = [] /> 
15    <#assign sementoProdutoVocabularioID = 0/> 
16    <#assign statusVocabularioID = 0/> 
17 
18    <#list displayPageAssetEntryCategories as cat> 
19        <#assign vocabularyId = cat.vocabularyId/> 
20        <#assign vocabulary = assetVocabularyLocalService.fetchAssetVocabulary(vocabularyId)/> 
21        <#if vocabulary.name?index_of("segment") != -1 > 
22            <#assign sementoProdutoVocabularioID = vocabulary.vocabularyId/> 
23            <#assign justProjectSegment += [cat.name] /> 
24        </#if> 
25        <#if vocabulary.name?index_of("status") != -1 > 
26            <#assign statusVocabularioID = vocabulary.vocabularyId/> 
27        </#if> 
28    </#list> 
29 
30    <#assign relatedProjectsList = [] /> 
31    <#assign listaDeComparacao = [] /> 
32 
33    <#assign starBorderURL = "/documents/d/guest/star_border" /> 
34    <#assign starURL = "/documents/d/guest/star" /> 
35 
36    <#list entries as curJournalArticle> 
37 
38        <#assign assetEntry = assetLocalService.getEntry("com.liferay.journal.model.JournalArticle",curJournalArticle.resourcePrimKey) /> 
39 
40        <#assign isExclusiveContent = true /> 
41        <#assign guestRole = roleLocalService.getRole( themeDisplay.getCompanyId()?number,"Guest") /> 
42        <#assign article = _journalArticleLocalService.getLatestArticle(assetEntry.getClassPK()) /> 
43        <#assign JournalArticleClassName = "com.liferay.journal.model.JournalArticle" /> 
44        <#assign SCOPE_INDIVIDUAL = 4 /> 
45 
46        <#assign resourcePermission = resourcePermissionLocalService 
47            .getResourcePermission( 
48            themeDisplay.getCompanyId(), 
49            JournalArticleClassName, 
50            SCOPE_INDIVIDUAL, 
51            article.getResourcePrimKey()?string, 
52            guestRole.getRoleId() 
53            )/> 
54 
55        <#if (resourcePermission.hasActionId("VIEW"))> 
56            <#assign isExclusiveContent = false /> 
57        </#if> 
58 
59        <#assign assetRenderer = assetEntry.getAssetRenderer() /> 
60        <#assign DDMFormFieldValuesMap=assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap() /> 
61        <#assign DDMFormFieldsReferencesMap=assetRenderer.article.DDMStructure.DDMForm.getDDMFormFieldsReferencesMap(true) /> 
62        <#assign categories = assetEntry.getCategories()/> 
63        <#assign linkToWebContentDisplayPage="/w/" + assetRenderer.getUrlTitle()/> 
64 
65 
66        <!-- pegando as categorias e filtrando pela vocabularyId de Segmentos --> 
67        <#assign segmentsCategories = categories?filter(category -> category.vocabularyId == sementoProdutoVocabularioID) /> 
68 
69 
70        <!-- pegando as categorias e filtrando pela vocabularyId de status --> 
71        <#assign projetcStatus = categories?filter(category -> category.vocabularyId == statusVocabularioID)[0] /> 
72 
73        <!-- Pegando ano de Entrega --> 
74        <#assign yearDeliveryField=DDMFormFieldsReferencesMap['yearDelivery'].name /> 
75        <#assign yearDelivery=DDMFormFieldValuesMap[yearDeliveryField] [0] /> 
76        <#assign yearDeliveryOptionSelected=yearDelivery.getValue().getString(locale)?replace("[", "")?replace("]", "" )?replace('"', '' ) /> 
77        <#assign yearDeliveryOptionValue = yearDelivery.getDDMFormField().getDDMFormFieldOptions().getOptionLabels(yearDeliveryOptionSelected)!"    " /> 
78        <#if yearDeliveryOptionValue != "    "> 
79            <#assign yearDeliveryOptionValue = yearDeliveryOptionValue.getString(locale) /> 
80        </#if> 
81 
82        <!-- Pegando trimestre de Entrega --> 
83        <#assign quarterDeliveryField=DDMFormFieldsReferencesMap['quarterDelivery'].name /> 
84        <#assign quarterDelivery=DDMFormFieldValuesMap[quarterDeliveryField] [0] /> 
85        <#assign quarterDeliveryOptionSelected=quarterDelivery.getValue().getString(locale)?replace("[", "")?replace("]", "" )?replace('"', '' ) /> 
86        <#assign quarterDeliveryOptionValue = quarterDelivery.getDDMFormField().getDDMFormFieldOptions().getOptionLabels(quarterDeliveryOptionSelected)!"" /> 
87        <#if quarterDeliveryOptionValue != ""> 
88            <#assign quarterDeliveryOptionValue = quarterDeliveryOptionValue.getString(locale) /> 
89        </#if> 
90 
91        <!-- Pegando Resumo do card --> 
92        <#assign cardSummaryField = DDMFormFieldsReferencesMap['cardSummary'].name /> 
93        <#assign cardSummary = DDMFormFieldValuesMap[cardSummaryField][0].getValue().getString(locale) /> 
94 
95        <!-- pegando imagem do card --> 
96        <#assign urlImageValue="" /> 
97        <#assign altImageValue="" /> 
98        <#assign featuredImageField=DDMFormFieldsReferencesMap['featuredImage'].name /> 
99        <#assign featuredImage=DDMFormFieldValuesMap[featuredImageField][0].getValue().getString(locale) /> 
100 
101        <!-- pegando o grupo de campos --> 
102        <#assign brazilLocale = localeUtil.fromLanguageId("pt_BR")> 
103        <#assign impactFieldGroup=DDMFormFieldsReferencesMap['impactFieldGroup'].name /> 
104        <#assign impactFieldGroupSelect=DDMFormFieldValuesMap[impactFieldGroup][0] /> 
105        <#assign impactInitiative="" /> 
106        <#list impactFieldGroupSelect.getNestedDDMFormFieldValuesMap() as key,item> 
107            <#if item[0].getDDMFormField().getFieldReference()=="impactInitiative"> 
108                <#assign impactInitiative = item[0].getValue().getString(locale)!"" /> 
109                <#if impactInitiative?has_content> 
110                    <#assign impactInitiative = item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(locale)).getString(locale) /> 
111                <!-- Verifica se impactInitiative vem vazio com locale en_US --> 
112                <#else> 
113                    <#assign impactInitiative = item[0].getValue().getString(brazilLocale)!"" /> 
114                    <#if impactInitiative?has_content> 
115                        <#assign impactInitiative = item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(brazilLocale)).getString(brazilLocale) /> 
116                    </#if> 
117                </#if> 
118            </#if> 
119        </#list> 
120        <!-- Peganddo path da imagem --> 
121        <#if featuredImage !="{}"> 
122            <#assign cleanedJson = featuredImage?replace("\\u","\\\\u")> 
123            <#assign featuredImageEvaluated = cleanedJson?eval> 
124            <#assign altImageValue = featuredImageEvaluated.alt!""> 
125            <#assign urlImageValue = featuredImageEvaluated.url!""> 
126        </#if> 
127        <#assign segmentsProductCategories = "" /> 
128 
129        <#list segmentsCategories as segCat > 
130            <#if (segmentsCategories?size) == 1 > 
131            <#assign segmentsProductCategories = segmentsCategories[0].getTitle(locale) /> 
132            <#elseif (segmentsCategories?size) == 2 > 
133                <#list segmentsCategories as segCat> 
134                    <#if segCat?is_last> 
135                        <#assign segmentsProductCategories = "${segmentsProductCategories} e ${segCat.getTitle(locale)}"/> 
136                    <#else> 
137                        <#assign segmentsProductCategories = "${segCat.getTitle(locale)}"/> 
138                    </#if> 
139                </#list> 
140            <#elseif ((segmentsCategories?size) >= 3) > 
141                <#list segmentsCategories as segCat> 
142                    <#if segCat?is_first> 
143                        <#assign segmentsProductCategories = "${segCat.getTitle(locale)}"/> 
144                    <#elseif segCat_index == 1> 
145                        <#assign segmentsProductCategories = "${segmentsProductCategories}, ${segCat.getTitle(locale)}"/> 
146                    <#elseif segCat_index == 2> 
147                        <#assign segmentsProductCategories = "${segmentsProductCategories} e ${segCat.getTitle(locale)}"/> 
148                        <#break> 
149                    </#if> 
150                </#list> 
151            </#if> 
152        </#list> 
153 
154        <#assign relatedProject = 
155
156                "id" :"${curJournalArticle.resourcePrimKey}", 
157                "title":"${curJournalArticle.getTitle(locale)}", 
158                "cardSummary":"${cardSummary}", 
159                "impactInitiative":"${impactInitiative}", 
160                "date":"${quarterDeliveryOptionValue}${yearDeliveryOptionValue?substring(2,4)}", 
161                "status":"${projetcStatus.getTitle(locale)}", 
162                "segmentsProductCategories":"${segmentsProductCategories}", 
163                "linkToWebContentDisplayPage": "${linkToWebContentDisplayPage}" 
164 
165
166        /> 
167 
168        <#assign relatedProjectsList += [relatedProject] /> 
169        <#if curJournalArticle_index == 0 > 
170            <#list segmentsCategories as item > 
171                <#assign listaDeComparacao += [item.getTitle(locale)] /> 
172            </#list> 
173        <#else> 
174            <#list segmentsCategories as item> 
175                <#if !(listaDeComparacao?seq_contains(item.getTitle(locale))) > 
176                    <#assign listaDeComparacao += [item.getTitle(locale)] /> 
177                </#if> 
178            </#list> 
179        </#if> 
180 
181 
182    </#list> 
183    <#assign releatedCategories = [] /> 
184    <#assign releatedCategoriesHeader = ""/> 
185    <#assign getRelated = []/> 
186    <#assign count = 0 /> 
187 
188    <#list listaDeComparacao as curCategoryName> 
189        <#if (justProjectSegment?seq_contains(curCategoryName)) > 
190            <#assign releatedCategories += [curCategoryName] /> 
191            <#assign getRelated += [curCategoryName] /> 
192        </#if> 
193    </#list> 
194 
195    <#if (releatedCategories?size) == 1> 
196        <#assign releatedCategoriesHeader = releatedCategories[0] /> 
197    <#elseif (releatedCategories?size) == 2> 
198        <#list releatedCategories as curCategoryName> 
199            <#if curCategoryName_index == 0> 
200                <#assign releatedCategoriesHeader = "${curCategoryName}"/> 
201            <#elseif curCategoryName_index==1> 
202                <#assign releatedCategoriesHeader = "${releatedCategoriesHeader} e ${curCategoryName}"/> 
203            </#if> 
204        </#list> 
205    <#elseif ((releatedCategories?size) >= 3) > 
206        <#list releatedCategories as curCategoryName> 
207            <#if curCategoryName?is_first> 
208                <#assign releatedCategoriesHeader = "${curCategoryName}"/> 
209            <#elseif curCategoryName_index == 1> 
210                <#assign releatedCategoriesHeader = "${releatedCategoriesHeader}, ${curCategoryName}"/> 
211            <#elseif curCategoryName_index == 2> 
212                <#assign releatedCategoriesHeader = "${releatedCategoriesHeader} e ${curCategoryName}"/> 
213                <#break> 
214            </#if> 
215        </#list> 
216    </#if> 
217 
218    <section class="swiper-container b3-more-projects" id="related-projects"> 
219        <div class="container-fluid container-fluid-max-xl"> 
220            <h3 class="b3-section__title b3-more-projects__title h3">${locale?contains("en")?then("Check out more projects about", "Confira mais projetos sobre" )} 
221             <#assign releatedCategoriesInEnglish = { 
222                "Captação bancária":"Bank funding", 
223                "Crédito":"Credit", 
224                "Dados Mercado":"Data", 
225                "Derivativos":"Derivatives", 
226                "Dívida Corporativa":"DCM", 
227                "ESG":"ESG", 
228                "Recebíveis":"Receivables", 
229                "Soluções de Renda Fixa":"Fixed income solutions", 
230                "Commodities":"Commodities", 
231                "Cross Market":"Cross Market", 
232                "Dados":"Data", 
233                "Empréstimo":"Securities Lending", 
234                "Índices":"Indices", 
235                "Juros e Moedas":"Interest rate and currencies", 
236                "Renda Variável":"Equities", 
237                "Tecnologia e operações": "Technology and operations" 
238            } /> 
239 
240             <#list getRelated as segCat> 
241                <#if locale?contains("en")> 
242                <span class="b3-comma english"> 
243                    ${releatedCategoriesInEnglish[segCat]!""} 
244                </span> 
245                <#else> 
246                <span class="b3-comma portuguese"> 
247                     ${segCat} 
248                </span> 
249                 </#if> 
250            </#list> 
251 
252            </h3> 
253            <div class="b3-more-projects__carousel"> 
254                <div class="swiper-wrapper b3-more-projects__wrapper"> 
255                    <#list relatedProjectsList as curEntry> 
256                        <a href="${curEntry.linkToWebContentDisplayPage}" class="swiper-slide b3-more-projects__wrapper__card b3-ga-card"> 
257                            <div class="card__header"> 
258<div class="card__header__wrapper"> 
259                                <div class="card__header__header"> 
260                                    <#if (curEntry.impactInitiative?contains("Informativo") || curEntry.impactInitiative?contains("Informative")) > 
261                                        <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
262                                            <mask id="mask0_17645_417870000000" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> 
263                                                <path d="M12.332 3.6C16.932 3.6 20.732 7.4 20.732 12C20.732 16.6 16.932 20.4 12.332 20.4C7.73203 20.4 3.93203 16.6 3.93203 12C3.93203 7.4 7.73203 3.6 12.332 3.6ZM12.332 2C6.83203 2 2.33203 6.5 2.33203 12C2.33203 17.5 6.83203 22 12.332 22C17.832 22 22.332 17.5 22.332 12C22.332 6.5 17.832 2 12.332 2Z" fill="black"/> 
264                                                <path d="M13.132 11.2H11.532V16.8H13.132V11.2Z" fill="black"/> 
265                                                <path d="M13.132 7.19995H11.532V8.79995H13.132V7.19995Z" fill="black"/> 
266                                            </mask> 
267                                            <g mask="url(#mask0_17645_417870000000)"> 
268                                                <rect x="0.332031" width="24" height="24" fill="#666E7A"/> 
269                                            </g> 
270                                        </svg> 
271                                        <p>${locale?contains("en")?then("Informative", "Informativo" )}</p> 
272                                    <#elseif (curEntry.impactInitiative?contains("Opcional") || curEntry.impactInitiative?contains("Optional"))> 
273                                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
274                                            <mask id="mask0_17642_41677020202" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="20" height="20"> 
275                                                <path fill-rule="evenodd" clip-rule="evenodd" d="M20.4 12C20.4 7.4 16.6 3.6 12 3.6C7.4 3.6 3.6 7.4 3.6 12C3.6 16.6 7.4 20.4 12 20.4C16.6 20.4 20.4 16.6 20.4 12ZM2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12ZM17 12C17 12.5523 16.5523 13 16 13C15.4477 13 15 12.5523 15 12C15 11.4477 15.4477 11 16 11C16.5523 11 17 11.4477 17 12ZM12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13ZM9 12C9 12.5523 8.55228 13 8 13C7.44772 13 7 12.5523 7 12C7 11.4477 7.44772 11 8 11C8.55228 11 9 11.4477 9 12Z" fill="black"/> 
276                                            </mask> 
277                                            <g mask="url(#mask0_17642_41677020202)"> 
278                                                <rect width="24" height="24" fill="#666E7A"/> 
279                                            </g> 
280                                        </svg> 
281                                        <p>${locale?contains("en")?then("Optional", "Opcional" )}</p> 
282                                    <#elseif (curEntry.impactInitiative?contains("Mandatório") || curEntry.impactInitiative?contains("Mandatory"))> 
283                                        <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
284                                            <mask id="mask0_17642_41602010101" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> 
285                                                <path fill-rule="evenodd" clip-rule="evenodd" d="M12.332 3.6C16.932 3.6 20.732 7.4 20.732 12C20.732 16.6 16.932 20.4 12.332 20.4C7.73203 20.4 3.93203 16.6 3.93203 12C3.93203 7.4 7.73203 3.6 12.332 3.6ZM12.332 2C6.83203 2 2.33203 6.5 2.33203 12C2.33203 17.5 6.83203 22 12.332 22C17.832 22 22.332 17.5 22.332 12C22.332 6.5 17.832 2 12.332 2ZM13.1322 7.2002H11.5322V12.8002H13.1322V7.2002ZM11.5322 15.2002H13.1322V16.8002H11.5322V15.2002Z" fill="black"/> 
286                                            </mask> 
287                                            <g mask="url(#mask0_17642_41602010101)"> 
288                                                <rect x="0.332031" width="24" height="24" fill="#666E7A"/> 
289                                            </g> 
290                                        </svg> 
291                                        <p> 
292                                            ${locale?contains("en")?then("Mandatory", "Mandatório")} 
293                                        </p> 
294</#if> 
295                                </div> 
296                                <#if isExclusiveContent> 
297                                    <div class="card__header__header"> 
298                                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
299                                            <mask id="mask0_17642_41070" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="1" width="16" 
300                                                height="21"> 
301                                                <path fill-rule="evenodd" clip-rule="evenodd" 
302                                                    d="M17.9992 8.2002C18.9992 8.2002 19.7992 9.0002 19.7992 10.0002V20.0002C19.7992 21.0002 18.9992 21.8002 17.9992 21.8002H5.99922C4.99922 21.8002 4.19922 21.0002 4.19922 20.0002V10.0002C4.19922 9.0002 4.99922 8.2002 5.99922 8.2002H14.9992H15.1992V8.0002V6.0002C15.1992 4.2002 13.7992 2.8002 11.9992 2.8002C10.2992 2.8002 8.89922 4.1002 8.79922 5.8002H7.19922C7.29922 3.2002 9.39922 1.2002 11.9992 1.2002C14.5992 1.2002 16.7992 3.4002 16.7992 6.0002V8.0002V8.2002H16.9992H17.9992ZM18.1992 20.0002V10.0002V9.8002H17.9992H5.99922H5.79922V10.0002V20.0002V20.2002H5.99922H17.9992H18.1992V20.0002ZM13.7992 15.0002C13.7992 15.9943 12.9933 16.8002 11.9992 16.8002C11.0051 16.8002 10.1992 15.9943 10.1992 15.0002C10.1992 14.0061 11.0051 13.2002 11.9992 13.2002C12.9933 13.2002 13.7992 14.0061 13.7992 15.0002Z" 
303                                                    fill="black" /> 
304                                            </mask> 
305                                            <g mask="url(#mask0_17642_41070)"> 
306                                                <rect width="24" height="24" fill="#666E7A" /> 
307                                            </g> 
308                                        </svg> 
309                                        <p class="button-md">${locale?contains('en')?then('Exclusive', 'Exclusivo' )}</p> 
310                                    </div> 
311                                    </#if> 
312                                </div> 
313 
314                                <#if themeDisplay.isSignedIn()> 
315                                        <div class="star star-filled b3-ga-button" data-project-id="${curEntry.id}"> 
316                                            <img src="${starURL}" 
317                                                alt="icone de circulo com uma estrela no centro" /> 
318                                        </div> 
319                                </#if> 
320                            </div> 
321 
322                            <div class="card__body"> 
323                                <p>${curEntry.segmentsProductCategories}</p> 
324                                <p class="body-lg b3-ga-card-title" >${curEntry.title}</p> 
325                                <p class="body-xs" >${curEntry.cardSummary}</p> 
326                            </div> 
327 
328                            <div class="card__bottom"> 
329                                <div class="date body-text"> 
330                                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
331                                        xmlns="http://www.w3.org/2000/svg"> 
332                                        <mask id="mask0_13865_93015" style="mask-type: alpha" 
333                                            maskUnits="userSpaceOnUse" x="3" y="1" width="18" height="20"> 
334                                            <path fill-rule="evenodd" clip-rule="evenodd" 
335                                                d="M20.8002 4.8C20.8002 3.8 20.0002 3 19.0002 3H18.0002H17.8002V2.8V1H16.2002V2.8V3H16.0002H8.0002H7.8002V2.8V1H6.2002V2.8V3H6.0002H5.0002C4.0002 3 3.2002 3.8 3.2002 4.8V18.8C3.2002 19.8 4.0002 20.6 5.0002 20.6H19.0002C20.0002 20.6 20.8002 19.8 20.8002 18.8V4.8ZM19.2002 8.8V18.8V19H19.0002H5.0002H4.8002V18.8V8.8V8.6H5.0002H19.0002H19.2002V8.8ZM19.2002 4.8V6.8V7H19.0002H5.0002H4.8002V6.8V4.8V4.6H5.0002H19.0002H19.2002V4.8ZM12.8002 10.6997H11.2002V12.2997H12.8002V10.6997ZM7.2002 14.7998V16.3998H8.8002V14.7998H7.2002ZM15.2002 10.6997H16.8002V12.2997H15.2002V10.6997ZM7.2002 10.6997V12.2997H8.8002V10.6997H7.2002ZM11.2002 14.7998H12.8002V16.3998H11.2002V14.7998ZM15.2002 14.7998H16.8002V16.3998H15.2002V14.7998Z" 
336                                                fill="black" /> 
337                                        </mask> 
338                                        <g mask="url(#mask0_13865_93015)"> 
339                                            <rect width="24" height="24" fill="#0063DE" /> 
340                                        </g> 
341                                    </svg> 
342                                    <span> 
343                                        ${locale?contains("en")?then("Date", "Data")}: ${curEntry.date} 
344                                    </span> 
345                                </div> 
346                                <div class="update"> 
347                                    <#if curEntry.status == "Em execução"> 
348                                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
349                                            xmlns="http://www.w3.org/2000/svg"> 
350                                            <mask id="mask0_13865_93018" style="mask-type:alpha" 
351                                                maskUnits="userSpaceOnUse" x="2" y="2" width="20" 
352                                                height="20"> 
353                                                <path fill-rule="evenodd" clip-rule="evenodd" 
354                                                    d="M6.54134 3.56373V2.06427H2V21.9998H6.54134V20.4954H3.47207V3.56373H6.54134Z" 
355                                                    fill="white" /> 
356                                                <path fill-rule="evenodd" clip-rule="evenodd" 
357                                                    d="M17.4546 20.4905V21.9997H22V2H17.4546V3.50428H20.5264V20.4905H17.4546Z" 
358                                                    fill="white" /> 
359                                            </mask> 
360                                            <g mask="url(#mask0_13865_93018)"> 
361                                                <rect width="24" height="24" fill="#0063DE" /> 
362                                            </g> 
363                                        </svg> 
364                                    <#elseif curEntry.status=="Concluído"> 
365                                        <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
366                                            <mask id="mask0_17645_44046" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="5" width="18" height="14"> 
367                                            <path d="M4.03369 13.4L9.33369 18.7L21.0337 7.00002L19.9337 5.90002L9.43369 16.3L9.33369 16.5L9.23369 16.3L5.13369 12.3L4.03369 13.4Z" fill="black"/> 
368                                            </mask> 
369                                            <g mask="url(#mask0_17645_44046)"> 
370                                            <rect x="0.333496" width="24" height="24" fill="#008750"/> 
371                                            </g> 
372                                        </svg> 
373                                    <#elseif curEntry.status=="Despriorizado"> 
374                                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
375                                            <mask id="mask0_16128_15636" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="6" width="20" height="12"> 
376                                            <path d="M21.8008 12.5L19.9008 14.4L19.7008 14.6L19.6008 14.4L13.4008 8.30005L9.60078 12.1L9.40078 12.3L9.30078 12.1L3.40078 6.30005L2.30078 7.40005L9.40078 14.5L13.3008 10.7L13.4008 10.5L13.6008 10.7L18.4008 15.6L18.6008 15.7L18.4008 15.9L16.5008 17.8H21.8008V12.5Z" fill="black"/> 
377                                            </mask> 
378                                            <g mask="url(#mask0_16128_15636)"> 
379                                            <rect width="24" height="24" fill="#0063DE"/> 
380                                            </g> 
381                                        </svg> 
382                                    </#if> 
383                                    <#if curEntry.status=="Concluído"> 
384                                        <p class="text__body--small check-color"> 
385                                            ${curEntry.status} 
386                                        </p> 
387                                    <#else> 
388                                        <p class=""> 
389                                            ${curEntry.status} 
390                                        </p> 
391                                    </#if> 
392                                </div> 
393                            </div> 
394                        </a> 
395                    </#list> 
396                </div> 
397            </div> 
398        </div> 
399    </section> 
400 
401    <style> 
402    .b3-more-projects { 
403        background: var(--gradiente-escuro, linear-gradient(180deg, #001B74 0%, #001560 100%)); 
404        padding-bottom: 3rem; 
405        padding-top: 3rem; 
406 
407
408.card__header__header { 
409        display: flex; 
410        align-items: center; 
411        position: relative; 
412        z-index: 1; 
413        padding: 0 0.75rem; 
414        width: max-content; 
415
416 
417    .card__header__header p { 
418        margin-bottom: 0; 
419        color: var(--text-text-light, #666E7A); 
420        line-height: 120%; 
421        letter-spacing: 0.0313rem; 
422        text-transform: uppercase; 
423
424 
425    .card__header__header { 
426        gap: 0.375rem; 
427
428 
429    .card__header__header::before { 
430        content: ''; 
431        border-radius: 36px; 
432        background: var(--bg-gray-1, #F6F6F7); 
433        display: flex; 
434        height: 1.875rem; 
435        position: absolute; 
436        z-index: -1; 
437        padding: var(--spacer-1) var(--spacer-2); 
438        width: 100%; 
439        left: 0; 
440
441 
442    .b3-more-projects__wrapper__card.b3-ga-card:hover { 
443	text-decoration: none; 
444
445 
446    .card__header__wrapper { 
447        display: flex; 
448        gap: 0.375rem; 
449
450 
451    .b3-more-projects .container-fluid.container-fluid-max-xl { 
452        max-width: 79.125rem; 
453        padding: 0; 
454        display: flex; 
455        flex-direction: column; 
456        overflow: hidden; 
457
458 
459    .b3-more-projects .b3-more-projects__title { 
460        line-height: 110%; 
461        color: var(--white, #FFF); 
462        text-align: center; 
463        margin: 0; 
464        font-weight: 400; 
465        font-size: 1.875rem; 
466
467 
468    .b3-more-projects .b3-more-projects__title .b3-comma.english:last-child::before{ 
469        content: 'and'; 
470        display: inline-block; 
471        font-weight: 400; 
472        font-size: 1.875rem; 
473
474 
475    .b3-more-projects .b3-more-projects__title .b3-comma.portuguese:last-child::before{ 
476        content: 'e'; 
477        display: inline-block; 
478        font-weight: 400; 
479        font-size: 1.875rem; 
480
481 
482    .b3-more-projects .b3-more-projects__title .b3-comma:first-child::before{ 
483        width: 0; 
484        visibility: hidden; 
485
486 
487    .swiper-container.b3-more-projects p { 
488    margin-bottom: 0; 
489 
490
491 
492    .b3-more-projects .b3-more-projects__wrapper { 
493        margin-top: 1.5rem; 
494height: 18.5rem; 
495
496 
497    .b3-more-projects .b3-more-projects__wrapper .b3-more-projects__wrapper__card { 
498        border-radius: 0.375rem; 
499        border: 1px solid var(--bg-gray-2, #E3E5E7); 
500        background: var(--white, #FFF); 
501        padding: 1.5rem; 
502        flex: 1; 
503        flex: 1 0 calc(33.333% - (var(--spacer-4) + var(--spacer-6))); 
504display: flex; 
505        flex-direction: column; 
506
507 
508    .b3-more-projects__wrapper__card .card__header { 
509        display: flex; 
510        align-items: center; 
511        justify-content: space-between; 
512
513 
514    .b3-more-projects__wrapper__card .card__header div { 
515        display: flex; 
516        align-items: center; 
517
518 
519    .card__header .card__header__icon-mobile { 
520        display: none; 
521
522 
523 
524    .b3-more-projects__wrapper__card .card__header p { 
525        color: var(--text-light, #666E7A); 
526        text-transform: uppercase; 
527        margin: 0; 
528        margin-left: 0.375rem; 
529font-weight: 700; 
530        font-size: 0.75rem; 
531
532 
533    .b3-more-projects__wrapper__card .card__body { 
534        margin-top: 1.5rem; 
535        display: flex; 
536        flex-direction: column; 
537        gap: 0.75rem; 
538flex-grow: 1; 
539
540 
541    .b3-more-projects__wrapper__card .card__body p:nth-child(1) { 
542        color: var(--text-emphasis-light, #40444D); 
543 
544        line-height: 120%; 
545        letter-spacing: 0.031rem; 
546        text-transform: uppercase; 
547
548 
549    .b3-more-projects__wrapper__card .card__body p:nth-child(2) { 
550        color: var(--text-emphasis-light, #40444D); 
551        line-height: 150%; 
552overflow: hidden; 
553        text-overflow: ellipsis; 
554        display: -webkit-box; 
555        -webkit-line-clamp: 2; 
556        -webkit-box-orient: vertical; 
557
558 
559    .b3-more-projects__wrapper__card .card__body p:nth-child(3) { 
560        color: var(--text-text-light, #666E7A); 
561 
562        line-height: 183.333%; 
563overflow: hidden; 
564        text-overflow: ellipsis; 
565        display: -webkit-box; 
566        -webkit-line-clamp: 3; 
567        -webkit-box-orient: vertical; 
568
569 
570    .b3-more-projects__wrapper__card .card__bottom { 
571        margin-top: 1.5rem; 
572        display: flex; 
573        justify-content: space-between; 
574        align-items: center; 
575
576 
577    .card__bottom .date { 
578        display: flex; 
579        gap: 0.3rem; 
580 
581        color: var(--text-text-light, #666E7A); 
582
583 
584    .card__bottom .update { 
585        display: flex; 
586        align-items: center; 
587        gap: 0.625rem; 
588
589 
590    .card__bottom .update p { 
591        color: var(--text-text-light, #666E7A); 
592        margin: 0; 
593        white-space: nowrap; 
594
595 
596    .card__bottom .update .check-color { 
597        color: var(--verde-sucesso, #008750); 
598
599 
600    .card__bottom .update .circle { 
601        width: 0.75rem; 
602        height: 0.75rem; 
603        border-radius: 50%; 
604        background-color: var(--negative-light, #CC4400) ; 
605
606 
607.b3-more-projects .b3-more-projects__wrapper .b3-more-projects__wrapper__card { 
608        max-width: 406px; 
609
610 
611    @media screen and (max-width: 768px) { 
612        .b3-more-projects { 
613            padding: 0; 
614            gap: 0; 
615
616 
617        .b3-more-projects .b3-more-projects__title { 
618            padding: var(--spacer-6) var(--spacer-6) 0; 
619            text-align: left; 
620            font-size: 1.875rem; 
621
622 
623        .card__header .card__header__icon-mobile { 
624            display: block; 
625
626 
627        .b3-more-projects__carousel { 
628            padding: 0 var(--spacer-2) var(--spacer-6) var(--spacer-2); 
629
630 
631		.b3-more-projects .b3-more-projects__wrapper { 
632			height: 100%; 
633
634 
635        .b3-more-projects .b3-more-projects__wrapper .b3-more-projects__wrapper__card { 
636            flex: none; 
637            width: 17rem; 
638            height: auto; 
639
640 
641        .b3-more-projects__wrapper__card .card__bottom { 
642            flex-direction: column; 
643            gap: 0.875rem; 
644            align-items: flex-start; 
645
646    .card__header__wrapper { 
647            gap: 0.75rem; 
648            flex-direction: column; 
649
650        .b3-more-projects__wrapper__card .card__header { 
651            align-items: flex-start; 
652
653
654 
655    </style> 
656 
657    <script> 
658 
659    </script> 
660<script type="module"> 
661        var projetosRelacionadosCarousel = new Swiper('.b3-more-projects__carousel', { 
662            slidesPerView: "auto", 
663            spaceBetween: 12, 
664            breakpoints: { 
665                1400: { 
666                    spaceBetween: 24, 
667                    allowTouchMove: false, 
668                }, 
669                768: { 
670                    spaceBetween: 24, 
671                    allowTouchMove: true, 
672                    allowTouchMove: false, 
673
674            }, 
675        }); 
676    </script> 
677</#if>