Quellcode durchsuchen

🔧 chore(config): resolver conflitos de merge com development

joykepler vor 4 Tagen
Ursprung
Commit
57e28fd37e

+ 1 - 1
app/assets/main.css

@@ -19,4 +19,4 @@ body {
 
 .text-gradient {
   @apply bg-radial from-white to-[#E3FA6D] bg-clip-text text-transparent;
-}
+}

+ 68 - 0
app/components/FaqSection.vue

@@ -0,0 +1,68 @@
+<template>
+    <section class="w-full bg-[#F6FFE9] py-12 md:py-18 md:px-10">
+        <div class="w-full max-w-[1200px] mx-auto flex flex-col md:flex-row md:justify-between items-center md:items-start gap-6 md:gap-20 px-4 sm:px-0">
+            <div class="flex flex-col items-center gap-4 md:items-start text-center md:text-left">
+                <span class="inline-flex items-center justify-center w-[127px] h-[53.05px] rounded-full
+                border-[1.55px] border-[#8DC63F] bg-[var(--color-primary)] text-white text-2xl font-bold">
+                FAQ</span>
+                <p style="font-family: var(--font-inter)"   class="font-semibold text-[40px] lg:text-[88px] leading-tight tracking-[-0.03em]">
+                    Perguntas <br class="hidden md:block">Frequentes
+                </p>
+            </div>
+            <div class="flex flex-col items-center md:items-start gap-4 flex-1">
+                <div v-for="(faq, index) in faqs"
+                :key="index"
+                class="w-full lg:max-w-[677px] bg-[#0C0D17] border border-white/10 rounded-3xl px-6 md:px-8 py-5 items-center">
+                    <div @click="toggleIsOpen(index)" class="flex items-center justify-between w-full cursor-pointer">
+                        <p class="font-inter font-normal text-[21.07px] leading-[24px] md:leading-[31.61px] text-white">
+                            {{ faq.question }}
+                        </p>
+                        <button class="text-white text-[22px] md:text-[26.34px] leading-none flex-end">
+                            {{ openIndex === index ? '-' : '+' }}
+                        </button>
+                    </div>
+                   <div v-if="openIndex == index" class="mt-4 text-white/70 text-sm md:text-base">
+                        <p>{{ faq.answer }}</p>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </section>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+
+    const openIndex = ref<number | null>(null)
+    function toggleIsOpen(indexClicked: number) {
+        openIndex.value = openIndex.value === indexClicked ? null  : indexClicked
+    }
+
+    const faqs = [
+    {
+    question: "A Kyon substitui todos os sistemas que uso hoje?",
+    answer:
+      "Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro labore voluptatum unde nihil, iste illo voluptas nobis repudiandae nulla cupiditate harum sint magnam exercitationem reprehenderit fuga commodi accusamus libero, quasi earum. Rerum incidunt hic veritatis debitis ipsa, iure facere, dolorum ad cumque doloribus, ut numquam earum distinctio eos repellat quidem."
+    },
+    {
+    question: "Como funciona o Prontuário unificado?",
+    answer:
+      "Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro labore voluptatum unde nihil, iste illo voluptas nobis repudiandae nulla cupiditate harum sint magnam exercitationem reprehenderit fuga commodi accusamus libero, quasi earum. Rerum incidunt hic veritatis debitis ipsa, iure facere, dolorum ad cumque doloribus, ut numquam earum distinctio eos repellat quidem."
+    },
+    {
+    question: "O agente de IA realmente atende pacientes no WhatsApp?",
+    answer:
+        "Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro labore voluptatum unde nihil, iste illo voluptas nobis repudiandae nulla cupiditate harum sint magnam exercitationem reprehenderit fuga commodi accusamus libero, quasi earum. Rerum incidunt hic veritatis debitis ipsa, iure facere, dolorum ad cumque doloribus, ut numquam earum distinctio eos repellat quidem."
+    },
+    {
+    question: "A telemedicina é integrada ou preciso de outra plataforma?",
+    answer:
+      "Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro labore voluptatum unde nihil, iste illo voluptas nobis repudiandae nulla cupiditate harum sint magnam exercitationem reprehenderit fuga commodi accusamus libero, quasi earum. Rerum incidunt hic veritatis debitis ipsa, iure facere, dolorum ad cumque doloribus, ut numquam earum distinctio eos repellat quidem."
+    },
+    {
+    question: "Como funciona a auditoria LGPD?",
+    answer:
+      "Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro labore voluptatum unde nihil, iste illo voluptas nobis repudiandae nulla cupiditate harum sint magnam exercitationem reprehenderit fuga commodi accusamus libero, quasi earum. Rerum incidunt hic veritatis debitis ipsa, iure facere, dolorum ad cumque doloribus, ut numquam earum distinctio eos repellat quidem."
+    }
+    ]
+</script>

+ 28 - 0
app/components/PartnershipCard.vue

@@ -0,0 +1,28 @@
+<template>
+    <div class="relative border-gradient w-[285px] h-[200px] flex items-center jusfiy-center">
+        <NuxtImg :src="image" class="w-full h-full object-cover" />
+        <div class="max-w-[198] absolute inset-0 flex flex-col justify-center items-center gap-3 px-4">
+            <span class="bg-[#8DC63F] text-white text-[10px] font-bold uppercase px-3 py-1 rounded-full">
+                {{ tag }}
+            </span>
+            <p class="text-white text-center text-[17px] font-bold uppercase leading-tight">
+                {{ title }}
+            </p>
+        </div>
+    </div>
+</template>
+
+<script setup lang="ts">
+defineProps<{
+    image: string;
+    tag: string;
+    title: string;
+}>();
+</script>
+
+<style scoped>
+.border-gradient {
+    border: 2px solid transparent;
+    border-image: linear-gradient(to right, #8DC63F, #5F980F) 1;
+}
+</style>

+ 62 - 0
app/components/SectionExecutors.vue

@@ -0,0 +1,62 @@
+<template>
+  <section class="bg-[#F6FFE9] py-20 flex flex-col items-center gap-15">
+    <h2 class="text-[50px] uppercase text-[#080E00] font-semibold">
+      Os Executores
+    </h2>
+
+    <div class="w-full max-w-[1170px] flex flex-col gap-10 px-8">
+      <div
+        v-for="(executor, index) in executores"
+        :key="index"
+        class="flex gap-12 items-center"
+        :class="index % 2 === 1 ? 'flex-row-reverse' : 'flex-row'"
+      >
+        <div class="flex-1 flex flex-col gap-5">
+          <span class="self-start text-[10px] font-semibold text-[#F6FFE9] bg-[#8AAB10] border border-[#8DC63F] rounded-full py-2 px-4 uppercase tracking-wide">
+            {{ executor.tag }}
+          </span>
+          <h3 class="text-[40px] text-[#202121] font-semibold">
+            {{ executor.name }}
+          </h3>
+          <p class="text-lg text-[#202121] font-medium">
+            {{ executor.description }}
+          </p>
+        </div>
+
+        <div class="shrink-0 w-[496px] h-[620px] overflow-hidden">
+          <NuxtImg
+            :src="executor.image"
+            :alt="executor.name"
+            class="w-full h-full object-cover object-top"
+          />
+        </div>
+      </div>
+    </div>
+  </section>
+</template>
+
+<script setup lang="ts">
+const executores = [
+  {
+    tag: "Empreendedor & Liderança Internacional em Portugal",
+    name: "Dr. Faisal M. Ismail",
+    description:
+      "Empresário serial, Dr. Faisal M. Ismail construiu sua trajetória na intersecção entre negócios, instituições e desenvolvimento territorial. Presidente da Câmara Paraguaia de Franquias, Pós-graduado em Gestão Empresarial Internacional, Marketing, Docência do Ensino Superior e Coaching pelo IBC, lidera a expansão das franquias Odontolatina no Brasil e no Paraguai, acumulando experiência direta em projetos binacionais. Sua atuação se estende aos principais espaços de articulação empresarial e institucional da região. É membro do Conselho da Associação Comercial e Empresarial de Foz do Iguaçu, do Polo Internacional do Iguassu e membro fundador do CODEFOZ — Conselho de Desenvolvimento de Foz do Iguaçu. Também atuou como presidente da ACIFI e como diretor do Centro Cultural Beneficente Islâmico da Mesquita Omar Ibn Al Khattab. Palestrante internacional, escritor e mentor empresarial, participou da condução e acompanhamento de centenas de projetos nacionais e internacionais, consolidando uma capacidade rara de articulação entre empresas, entidades e território. Sua atuação social e voluntária complementa uma trajetória marcada pela construção de pontes institucionais que viabilizam negócios e expansão.",
+    image: "/img/executors_img_1.png",
+  },
+  {
+    tag: "Empreendedor em Tecnologia & Desenvolvimento Humano",
+    name: "Dr. Faisal M. Ismail",
+    description:
+      "Empresário serial, Dr. Faisal M. Ismail construiu sua trajetória na intersecção entre negócios, instituições e desenvolvimento territorial. Presidente da Câmara Paraguaia de Franquias, Pós-graduado em Gestão Empresarial Internacional, Marketing, Docência do Ensino Superior e Coaching pelo IBC, lidera a expansão das franquias Odontolatina no Brasil e no Paraguai, acumulando experiência direta em projetos binacionais. Sua atuação se estende aos principais espaços de articulação empresarial e institucional da região. É membro do Conselho da Associação Comercial e Empresarial de Foz do Iguaçu, do Polo Internacional do Iguassu e membro fundador do CODEFOZ — Conselho de Desenvolvimento de Foz do Iguaçu. Também atuou como presidente da ACIFI e como diretor do Centro Cultural Beneficente Islâmico da Mesquita Omar Ibn Al Khattab. Palestrante internacional, escritor e mentor empresarial, participou da condução e acompanhamento de centenas de projetos nacionais e internacionais, consolidando uma capacidade rara de articulação entre empresas, entidades e território. Sua atuação social e voluntária complementa uma trajetória marcada pela construção de pontes institucionais que viabilizam negócios e expansão.",
+    image: "/img/executors_img_2.png",
+  },
+  {
+    tag: "Consultor Internacional & Especialista em Territórios Locais",
+    name: "Dr. Faisal M. Ismail",
+    description:
+      "Empresário serial, Dr. Faisal M. Ismail construiu sua trajetória na intersecção entre negócios, instituições e desenvolvimento territorial. Presidente da Câmara Paraguaia de Franquias, Pós-graduado em Gestão Empresarial Internacional, Marketing, Docência do Ensino Superior e Coaching pelo IBC, lidera a expansão das franquias Odontolatina no Brasil e no Paraguai, acumulando experiência direta em projetos binacionais. Sua atuação se estende aos principais espaços de articulação empresarial e institucional da região. É membro do Conselho da Associação Comercial e Empresarial de Foz do Iguaçu, do Polo Internacional do Iguassu e membro fundador do CODEFOZ — Conselho de Desenvolvimento de Foz do Iguaçu. Também atuou como presidente da ACIFI e como diretor do Centro Cultural Beneficente Islâmico da Mesquita Omar Ibn Al Khattab. Palestrante internacional, escritor e mentor empresarial, participou da condução e acompanhamento de centenas de projetos nacionais e internacionais, consolidando uma capacidade rara de articulação entre empresas, entidades e território. Sua atuação social e voluntária complementa uma trajetória marcada pela construção de pontes institucionais que viabilizam negócios e expansão.",
+    image: "/img/executors_img_3.png",
+  },
+]
+</script>

+ 109 - 0
app/components/SectionGallery.vue

@@ -0,0 +1,109 @@
+<template>
+  <section class="bg-[#050f05] py-16 flex flex-col items-center gap-20 overflow-hidden">
+    <h2 class="max-w-[1021px] text-[45px] text-center font-semibold text-white leading-13">
+      O programa não entrega apenas informação,
+      <span class="text-gradient">conecta empresários ao ambiente onde decisões e oportunidades são construídas.</span>
+    </h2>
+
+    <div class="flex flex-col items-center gap-10">
+      <div class="flex gap-3">
+        <button 
+          v-for="(img, i) in images" 
+          :key="i" @click="goTo(i)" 
+          :class="[
+          'w-[152px] h-[76px] overflow-hidden transition-all shrink-0',
+          current === i ? 'ring-2 ring-[#E3FA6D] opacity-100' : 'opacity-60 hover:opacity-80'
+        ]">
+          <img v-if="img.src" :src="img.src" class="w-full h-full object-cover" />
+        </button>
+      </div>
+
+      <div class="relative w-full h-[280px] flex items-center justify-center">
+        <div 
+          v-for="(img, i) in images" 
+          :key="i" 
+          :style="getCardStyle(i)"
+          class="absolute overflow-hidden transition-all duration-500 ease-in-out"
+        >
+          <img v-if="img.src" :src="img.src" class="w-full h-full object-cover" />
+        </div>
+      </div>
+
+      <div class="flex gap-10">
+        <button @click="prev"
+          class="text-[#8DC63F] text-4xl hover:opacity-75 transition-opacity leading-none">‹</button>
+        <button @click="next"
+          class="text-[#8DC63F] text-4xl hover:opacity-75 transition-opacity leading-none">›</button>
+      </div>
+    </div>
+  </section>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+
+const current = ref(0)
+
+const images: { src: string | null }[] = [
+  { src: '/img/group_2.png' },
+  { src: '/img/group_2.png' },
+  { src: '/img/group_2.png' },
+  { src: '/img/group_2.png' },
+  { src: '/img/group_2.png' },
+  { src: '/img/group_2.png' },
+  { src: '/img/group_2.png' },
+  { src: '/img/group_2.png' },
+]
+
+const xMap = [0, 320, 570]
+const wMap = [350, 270, 210]
+const hMap = [280, 240, 210]
+const opMap = [1, 0.8, 0.5]
+const zMap = [10, 5, 1]
+
+function normalizedOffset(i: number) {
+  const len = images.length
+  let offset = (i - current.value + len) % len
+  if (offset > len / 2) offset -= len
+  return offset
+}
+
+function getCardStyle(i: number) {
+  const offset = normalizedOffset(i)
+  const abs = Math.abs(offset)
+
+  if (abs > 2) {
+    const x = offset > 0 ? 650 : -650
+    return {
+      transform: `translateX(${x}px)`,
+      width: '210px',
+      height: '210px',
+      opacity: '0',
+      zIndex: '0',
+      pointerEvents: 'none' as const,
+    }
+  }
+
+  const x = offset < 0 ? -xMap[abs] : xMap[abs]
+  return {
+    transform: `translateX(${x}px)`,
+    width: `${wMap[abs]}px`,
+    height: `${hMap[abs]}px`,
+    opacity: String(opMap[abs]),
+    zIndex: String(zMap[abs]),
+    outline: abs === 0 ? '2px solid #8DC63F' : 'none',
+  }
+}
+
+function prev() {
+  current.value = (current.value - 1 + images.length) % images.length
+}
+
+function next() {
+  current.value = (current.value + 1) % images.length
+}
+
+function goTo(i: number) {
+  current.value = i
+}
+</script>

+ 22 - 0
app/components/SectionHero.vue

@@ -0,0 +1,22 @@
+<template>
+  <section class="bg-[url('/img/hero_bg.png')] bg-cover h-screen flex justify-center">
+    <AppHeader />
+    <div class="w-[1241px] flex justify-between items-center absolute bottom-20">
+      <div class="flex flex-col gap-5 w-1/2">
+        <NuxtImg src="/img/logo.png" width="308" />
+        <h1 class="max-w-[620px] text-[46px] font-bold text-gradient">
+          Não apenas planeje. Execute sua expansão internacional com segurança.
+        </h1>
+      </div>
+      <div class="flex flex-col gap-5 w-1/2 max-w-[516px]">
+        <p class="text-white text-2xl font-medium">
+          A Iguassu Alliance conecta sua empresa ao ecossistema de negócios do Paraguai através da 5ª edição do programa estratégico 
+        </p>
+        <button class="group self-start bg-linear-to-r from-[#8DC63F] to-[#5F980F] text-white text-2xl font-semibold flex items-center gap-3 border border-[#E3FA6D] rounded-lg py-6 px-8 whitespace-nowrap transition-all duration-300 ease-in-out hover:scale-[1.03] hover:shadow-[0_0_28px_rgba(227,250,109,0.45)] hover:brightness-110 cursor-pointer">
+          Fale com o um especialista agora!
+          <NuxtImg src="/img/cta_btn_icon.svg" width="30" class="transition-transform duration-300 group-hover:translate-x-1.5" />
+        </button>
+      </div>
+    </div>
+  </section>
+</template>

+ 45 - 0
app/components/SectionPartnership.vue

@@ -0,0 +1,45 @@
+<template>
+  <section class="bg-[url('img/partnership_bg.png')] bg-cover py-24 flex flex-col items-center justify-center gap-10">
+    <div class="max-w-[846px] flex flex-col items-center justify-center text-center gap-5">
+      <div class="flex items-center">
+        <NuxtImg src="/img/logo_expansao.svg" width="254" />
+        <NuxtImg src="/img/logo_expansao.png" width="397" />
+      </div>
+      <h1 class="text-[50px] uppercase font-semibold text-gradient">
+        parceiro oficial do programa Expansão Sem Fronteiras!
+      </h1>
+      <p class="text-2xl text-white font-medium">
+        Para garantir o seu sucesso, aplicamos os <span class="text-[#00FF00]">8 Pilares Fundamentais:</span>
+      </p>
+    </div>
+    
+    <div class="grid grid-cols-4 gap-5">
+      <PartnershipCard
+        v-for="(card, index) in cards"
+        :key="index"
+        :image="card.image"
+        :tag="card.tag"
+        :title="card.title"
+      />
+    </div>
+
+    <button class="group bg-linear-to-r from-[#8DC63F] to-[#5F980F] text-white text-[23px] font-semibold flex justify-center items-center gap-4 border border-[#E3FA6D] rounded-lg py-3 px-8 transition-all duration-300 ease-in-out hover:scale-[1.03] hover:shadow-[0_0_28px_rgba(227,250,109,0.45)] hover:brightness-110 cursor-pointer">
+      Fale com um especialista agora!
+      <NuxtImg src="/img/cta_btn_icon.svg" width="45" class="transition-transform duration-300 group-hover:translate-x-1.5" />
+    </button>
+  </section>
+
+</template>
+
+<script setup lang="ts">
+const cards = [
+  { image: "/img/partnership_img_1.png", tag: "Pilar 01", title: "Choque de Realidade (Mercado Local)" },
+  { image: "/img/partnership_img_2.png", tag: "Pilar 02", title: "Infraestrutura e Logística" },
+  { image: "/img/partnership_img_3.png", tag: "Pilar 03", title: "Engenharia Tributária e Fiscal" },
+  { image: "/img/partnership_img_4.png", tag: "Pilar 04", title: "Blindagem Jurídica e Marcas" },
+  { image: "/img/partnership_img_5.png", tag: "Pilar 05", title: "Sistema Bancário e Fluxo de Capital" },
+  { image: "/img/partnership_img_6.png", tag: "Pilar 06", title: "Visitas Técnicas In Loco" },
+  { image: "/img/partnership_img_7.png", tag: "Pilar 07", title: "Networking de Alto Nível (Decisores)" },
+  { image: "/img/partnership_img_8.png", tag: "Pilar 08", title: "Inteligência Cultural e Gastronomia" },
+]
+</script>

+ 11 - 0
app/components/SectionRoadMap.vue

@@ -0,0 +1,11 @@
+<template>
+  <section class="bg-[url('/img/roadmap_bg.png')] bg-cover py-24 flex flex-col items-center gap-24">
+    <h1 class="max-w-[762px] text-[50px] uppercase font-semibold text-gradient text-center leading-tight">
+      É hora de viver os melhores anos da sua vida
+    </h1>
+
+    <div>
+      <NuxtImg src="/img/roadmap_img.png" width="950" />
+    </div>
+  </section>
+</template>

+ 13 - 23
package-lock.json

@@ -69,7 +69,6 @@
       "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz",
       "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/code-frame": "^7.27.1",
         "@babel/generator": "^7.28.5",
@@ -335,7 +334,6 @@
       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
       "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/types": "^7.29.0"
       },
@@ -1808,8 +1806,18 @@
       "version": "0.2.2",
       "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz",
       "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==",
+      "license": "MIT"
+    },
+    "node_modules/@nuxt/cli/node_modules/commander": {
+      "version": "13.1.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
+      "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
       "license": "MIT",
-      "peer": true
+      "optional": true,
+      "peer": true,
+      "engines": {
+        "node": ">=18"
+      }
     },
     "node_modules/@nuxt/cli/node_modules/std-env": {
       "version": "4.1.0",
@@ -3253,7 +3261,6 @@
       "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==",
       "hasInstallScript": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "detect-libc": "^2.0.3",
         "is-glob": "^4.0.3",
@@ -4851,7 +4858,6 @@
       "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.22.tgz",
       "integrity": "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/parser": "^7.28.4",
         "@vue/compiler-core": "3.5.22",
@@ -5005,7 +5011,6 @@
       "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.9.0.tgz",
       "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@types/web-bluetooth": "^0.0.21",
         "@vueuse/metadata": "13.9.0",
@@ -5131,7 +5136,6 @@
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
       "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
       "license": "MIT",
-      "peer": true,
       "bin": {
         "acorn": "bin/acorn"
       },
@@ -5498,7 +5502,6 @@
         }
       ],
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "baseline-browser-mapping": "^2.8.19",
         "caniuse-lite": "^1.0.30001751",
@@ -5650,7 +5653,6 @@
       "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
       "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
       "license": "MIT",
-      "peer": true,
       "engines": {
         "node": ">=8"
       }
@@ -6494,8 +6496,7 @@
       "version": "8.6.0",
       "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz",
       "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==",
-      "license": "MIT",
-      "peer": true
+      "license": "MIT"
     },
     "node_modules/embla-carousel-auto-height": {
       "version": "8.6.0",
@@ -7044,7 +7045,6 @@
       "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.3.0.tgz",
       "integrity": "sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w==",
       "license": "Apache-2.0",
-      "peer": true,
       "engines": {
         "node": ">=10"
       },
@@ -9432,7 +9432,6 @@
       "resolved": "https://registry.npmjs.org/nuxt/-/nuxt-4.2.0.tgz",
       "integrity": "sha512-4qzf2Ymf07dMMj50TZdNZgMqCdzDch8NY3NO2ClucUaIvvsr6wd9+JrDpI1CckSTHwqU37/dIPFpvIQZoeHoYA==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@dxup/nuxt": "^0.2.0",
         "@nuxt/cli": "^3.29.3",
@@ -9685,7 +9684,6 @@
       "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.95.0.tgz",
       "integrity": "sha512-Te8fE/SmiiKWIrwBwxz5Dod87uYvsbcZ9JAL5ylPg1DevyKgTkxCXnPEaewk1Su2qpfNmry5RHoN+NywWFCG+A==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@oxc-project/types": "^0.95.0"
       },
@@ -9906,7 +9904,6 @@
         }
       ],
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "nanoid": "^3.3.11",
         "picocolors": "^1.1.1",
@@ -10685,7 +10682,6 @@
       "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz",
       "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@types/estree": "1.0.8"
       },
@@ -11388,7 +11384,6 @@
       "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz",
       "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==",
       "license": "MIT",
-      "peer": true,
       "funding": {
         "type": "github",
         "url": "https://github.com/sponsors/dcastil"
@@ -11417,8 +11412,7 @@
       "version": "4.1.17",
       "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.17.tgz",
       "integrity": "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==",
-      "license": "MIT",
-      "peer": true
+      "license": "MIT"
     },
     "node_modules/tapable": {
       "version": "2.3.0",
@@ -12302,7 +12296,6 @@
       "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz",
       "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "esbuild": "^0.27.0",
         "fdir": "^6.5.0",
@@ -13088,7 +13081,6 @@
       "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.22.tgz",
       "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@vue/compiler-dom": "3.5.22",
         "@vue/compiler-sfc": "3.5.22",
@@ -13131,7 +13123,6 @@
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.3.tgz",
       "integrity": "sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@vue/devtools-api": "^6.6.4"
       },
@@ -13359,7 +13350,6 @@
       "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
       "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
       "license": "ISC",
-      "peer": true,
       "bin": {
         "yaml": "bin.mjs"
       },

+ 10 - 0
public/img/cta_btn_icon.svg

@@ -0,0 +1,10 @@
+<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="45.9042" height="45.9042" rx="22.9521" fill="url(#paint0_linear_48_312)"/>
+<path d="M19.3507 19.3111V17.4905C19.3507 17.0077 19.5405 16.5446 19.8781 16.2032C20.2158 15.8617 20.6738 15.6699 21.1513 15.6699H30.5144C30.9919 15.6699 31.4499 15.8617 31.7876 16.2032C32.1253 16.5446 32.315 17.0077 32.315 17.4905V28.4141C32.315 28.8969 32.1253 29.36 31.7876 29.7014C31.4499 30.0429 30.9919 30.2347 30.5144 30.2347H21.1513C20.6738 30.2347 20.2158 30.0429 19.8781 29.7014C19.5405 29.36 19.3507 28.8969 19.3507 28.4141V26.5935M23.6722 26.5935L27.2733 22.9523L23.6722 19.3111M13.5889 22.9523H26.5531" stroke="#6DA71E" stroke-width="1.67747" stroke-linecap="round" stroke-linejoin="round"/>
+<defs>
+<linearGradient id="paint0_linear_48_312" x1="0" y1="22.9521" x2="45.9042" y2="22.9521" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#E3FA6D"/>
+</linearGradient>
+</defs>
+</svg>

BIN
public/img/executors_img_1.png


BIN
public/img/executors_img_2.png


BIN
public/img/executors_img_3.png


BIN
public/img/group_2.png


BIN
public/img/hero_bg.png


BIN
public/img/logo_expansao.png


Datei-Diff unterdrückt, da er zu groß ist
+ 4 - 0
public/img/logo_expansao.svg


BIN
public/img/partnership_bg.png


BIN
public/img/partnership_img_1.png


BIN
public/img/partnership_img_2.png


BIN
public/img/partnership_img_3.png


BIN
public/img/partnership_img_4.png


BIN
public/img/partnership_img_5.png


BIN
public/img/partnership_img_6.png


BIN
public/img/partnership_img_7.png


BIN
public/img/partnership_img_8.png


BIN
public/img/roadmap_bg.png


BIN
public/img/roadmap_img.png


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.