{"id":16,"date":"2026-01-09T17:25:28","date_gmt":"2026-01-09T17:25:28","guid":{"rendered":"https:\/\/joia.pt\/?page_id=16"},"modified":"2026-04-01T17:45:09","modified_gmt":"2026-04-01T17:45:09","slug":"home","status":"publish","type":"page","link":"https:\/\/joia.pt\/pt\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"16\" class=\"elementor elementor-16\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-06e5e5e e-con-full e-flex e-con e-parent\" data-id=\"06e5e5e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-d456a84 e-con-full e-flex e-con e-child\" data-id=\"d456a84\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e5601de elementor-widget elementor-widget-heading\" data-id=\"e5601de\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Since 1973,<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-401ea30 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"401ea30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\twe have been a reference in fashion footwear production.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f4de4d e-con-full e-flex e-con e-parent\" data-id=\"1f4de4d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:2.8,&quot;sizes&quot;:[]},&quot;motion_fx_range&quot;:&quot;page&quot;,&quot;motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-65fa9e4 elementor-widget elementor-widget-text-editor\" data-id=\"65fa9e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section class=\"joia-about-us\" >\n  <div class=\"about-container\">\n    <!-- Top Section: Image + About Us Text -->\n    <div class=\"about-top-section\">\n      <div class=\"about-image-column\" id=\"about\">\n        <img decoding=\"async\"\n          src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/af5635039c729b783aa6c930575301579738fa59-scaled.jpg\"\n          alt=\"Our Team\"\n          class=\"about-image\"\n        \/>\n      <\/div>\n      <div class=\"about-text-column\">\n        <h2 class=\"about-title\">ABOUT US<\/h2>\n        <p class=\"about-description\">\n          With over 50 years of experience in the private-label footwear sector\n          and now under third-generation leadership,\n          <strong>JOIA &#8211; Cal\u00e7ado, S.A.<\/strong> has been evolving steadily and\n          sustainably.\n        <\/p>\n      <\/div>\n    <\/div>\n\n    <!-- Timeline Section -->\n    <div class=\"about-timeline\">\n      <div class=\"timeline-item\">\n        <div class=\"timeline-content\">\n          <p class=\"timeline-date\">\n            <span class=\"timeline-arrow\">\n              <svg\n                xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n                width=\"7\"\n                height=\"11\"\n                viewBox=\"0 0 7 11\"\n                fill=\"none\"\n              >\n                <path\n                  d=\"M1 1L5.5 5.49982L1 9.99963\"\n                  stroke=\"#C62618\"\n                  stroke-width=\"2\"\n                  stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                \/>\n              <\/svg>\n            <\/span>\n            <strong>On February 14, 1973<\/strong>\n          <\/p>\n          <p class=\"timeline-text\">\n            It was founded as Silva &#038; Rodrigues, Lda., and the company began\n            with 27 employees, focusing exclusively on the domestic market. In\n            the 1980s, it relocated to its current headquarters and ventured\n            into international markets, starting with France as its first export\n            destination.\n          <\/p>\n        <\/div>\n      <\/div>\n      <div class=\"timeline-item\">\n        <div class=\"timeline-content\">\n          <p class=\"timeline-date\">\n            <span class=\"timeline-arrow\">\n              <svg\n                xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n                width=\"7\"\n                height=\"11\"\n                viewBox=\"0 0 7 11\"\n                fill=\"none\"\n              >\n                <path\n                  d=\"M1 1L5.5 5.49982L1 9.99963\"\n                  stroke=\"#C62618\"\n                  stroke-width=\"2\"\n                  stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                \/>\n              <\/svg>\n            <\/span>\n            <strong>In 1999<\/strong>\n          <\/p>\n          <p class=\"timeline-text\">\n            The company rebranded as JOIA &#8211; Cal\u00e7ado, S.A. and Fernando Valdemar\n            Rodrigues Lima assumed the role of Managing Director. This marked\n            the beginning of a new chapter, driven by strengthened expertise and\n            strategic investments in technology to remain at the forefront of\n            the industry.\n          <\/p>\n        <\/div>\n      <\/div>\n      <div class=\"timeline-item\">\n        <div class=\"timeline-content\">\n          <p class=\"timeline-date\">\n            <span class=\"timeline-arrow\">\n              <svg\n                xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n                width=\"7\"\n                height=\"11\"\n                viewBox=\"0 0 7 11\"\n                fill=\"none\"\n              >\n                <path\n                  d=\"M1 1L5.5 5.49982L1 9.99963\"\n                  stroke=\"#C62618\"\n                  stroke-width=\"2\"\n                  stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                \/>\n              <\/svg>\n            <\/span>\n            <strong>In February 2023<\/strong>\n          <\/p>\n          <p class=\"timeline-text\">\n            JOIA celebrated its 50th anniversary, marking a significant milestone in its history as the third generation takes on leadership roles. An all-female leadership team is now at the helm, continuing the brand\u2019s legacy while introducing a renewed vision aligned with the challenges of the future.\n          <\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Bottom Section: Mission + Shoe Image + Vision -->\n    <div class=\"about-bottom-section\">\n      <div class=\"mission-column\">\n        <h2 class=\"mission-vision-title\">MISSION<\/h2>\n        <p class=\"mission-vision-text\">\n          Developing fashion footwear for the private-label market, constantly\n          focusing on offering products that combine quality, comfort,\n          innovation and design, exceeding customer expectations.\n        <\/p>\n      <\/div>\n      <div class=\"shoe-image-column\">\n        <img decoding=\"async\"\n          src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/03\/missaovisao.png\"\n          alt=\"Leather Shoe\"\n          class=\"shoe-image\"\n        \/>\n      <\/div>\n      <div class=\"vision-column\">\n        <h2 class=\"mission-vision-title\">VISION <\/h2>\n        <p class=\"mission-vision-text vision-text-mobile\">\n          To be recognized as a fashion footwear manufacturer of excellence,\n          with 100% Portuguese production, preserving the essence and values\n          that have shaped JOIA over the years and remaining at the forefront of\n          the sector.\n        <\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f20dfe1 e-con-full e-flex e-con e-parent\" data-id=\"f20dfe1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7dcde30 elementor-widget elementor-widget-text-editor\" data-id=\"7dcde30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section class=\"joia-highlights\">\n    <div class=\"highlights-container\">\n        <h2 class=\"highlights-title\">COMPANY HIGHLIGHTS<\/h2>\n        <div class=\"highlights-grid\">\n            <div class=\"highlight-item\">\n                <div class=\"highlight-number\" data-target=\"50\" data-prefix=\"+\">0<\/div>\n                <div class=\"highlight-text\">years of experience<\/div>\n            <\/div>\n            <div class=\"highlight-item\">\n                <div class=\"highlight-number\" data-target=\"800\">0<\/div>\n                <div class=\"highlight-text\">pairs produced daily<\/div>\n            <\/div>\n            <div class=\"highlight-item\">\n                <div class=\"highlight-number\" data-target=\"96\" data-suffix=\"%\">0<\/div>\n                <div class=\"highlight-text\">production exported<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<script>\n(function() {\n    const observerOptions = {\n        threshold: 0.5,\n        rootMargin: '0px'\n    };\n\n    const animateNumber = (element) => {\n        const target = parseInt(element.getAttribute('data-target'));\n        const prefix = element.getAttribute('data-prefix') || '';\n        const suffix = element.getAttribute('data-suffix') || '';\n        const duration = 2000; \/\/ 2 segundos\n        const increment = target \/ (duration \/ 16); \/\/ 60 FPS\n        let current = 0;\n\n        const updateNumber = () => {\n            current += increment;\n            if (current < target) {\n                element.textContent = prefix + Math.floor(current) + suffix;\n                requestAnimationFrame(updateNumber);\n            } else {\n                element.textContent = prefix + target + suffix;\n            }\n        };\n\n        updateNumber();\n    };\n\n    const observer = new IntersectionObserver((entries) => {\n        entries.forEach(entry => {\n            if (entry.isIntersecting && !entry.target.classList.contains('counted')) {\n                entry.target.classList.add('counted');\n                animateNumber(entry.target);\n                observer.unobserve(entry.target);\n            }\n        });\n    }, observerOptions);\n\n    \/\/ Observar todos os n\u00fameros\n    document.querySelectorAll('.highlight-number').forEach(number => {\n        observer.observe(number);\n    });\n})();\n<\/script>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f0a8119 e-con-full e-flex e-con e-parent\" data-id=\"f0a8119\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e0c013b elementor-widget elementor-widget-text-editor\" data-id=\"e0c013b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section class=\"joia-how-we-work\" id=\"how-we-work\">\n    <div class=\"how-we-work-container\">\n        <div class=\"how-we-work-top\">\n            <div class=\"how-we-work-image-column\">\n                <img decoding=\"async\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/b536738e03c53c8f80cf258658c694377c543054-scaled.png\" alt=\"Craftsmanship\" class=\"how-we-work-image\">\n            <\/div>\n            <div class=\"how-we-work-text-column\">\n                <h2 class=\"how-we-work-title\">HOW WE WORK<\/h2>\n                <p class=\"how-we-work-description\">\n                    Combining craftsmanship with innovation, we develop fashion footwear for men and women in the mid-high and luxury segments and closely monitor all stages of production, ensuring that each pair of shoes meets the highest standards demanded by our customers.\n                <\/p>\n            <\/div>\n        <\/div>\n        <div class=\"how-we-work-bottom\">\n            <div class=\"expertise-section\">\n                <h2 class=\"expertise-title\">OUR EXPERTISE<\/h2>\n                <ul class=\"expertise-list\">\n                    <li>Strobel &#8211; Cemented &#8211; Sacchetto<\/li>\n                    <li>Blake Stitch &#8211; Moccasin<\/li>\n                <\/ul>\n            <\/div>\n            <div class=\"expertise-image-column\">\n                <img decoding=\"async\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/02\/dsc_4610.jpg\" alt=\"Manufacturing\" class=\"expertise-image\">\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5a389de e-con-full e-flex e-con e-parent\" data-id=\"5a389de\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d5371b elementor-widget elementor-widget-text-editor\" data-id=\"5d5371b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section class=\"joia-our-processes\" id=\"processes\">\n  <div class=\"processes-container\">\n    <h2 class=\"processes-title\">OUR PROCESS<\/h2>\n    <div class=\"processes-steps-wrapper\">\n      <div class=\"processes-steps-inner\">\n        <div class=\"processes-steps\" id=\"processesSteps\">\n          <div class=\"process-step\">\n            <h6 class=\"step-number\">01<\/h6>\n            <h6 class=\"step-title\">Modeling<\/h6>\n            <p class=\"step-description\">\n              By combining technical expertise with advanced technology, our\n              specialized technicians transform ideas and concepts into products\n              of excellence that align with market trends.\n            <\/p>\n          <\/div>\n          <div class=\"process-step\">\n            <h6 class=\"step-number\">02<\/h6>\n            <h6 class=\"step-title\">Prototyping<\/h6>\n            <p class=\"step-description\">\n              The Sampling Department optimizes all processes to adjust\n              different production scales, guaranteeing efficiency at every\n              phase.\n            <\/p>\n          <\/div>\n          <div class=\"process-step\">\n            <h6 class=\"step-number\">03<\/h6>\n            <h6 class=\"step-title\">Production<\/h6>\n            <p class=\"step-description\">\n              Once the materials have been selected based on customer\n              specifications and our expertise, the production process begins,\n              ensuring high-quality results.\n            <\/p>\n          <\/div>\n          <div class=\"process-step\">\n            <h6 class=\"step-number\">04<\/h6>\n            <h6 class=\"step-title\">Logistics<\/h6>\n            <p class=\"step-description\">\n              After reviewing all production steps, our Logistics Department\n              ensures that every order is prepared correctly and delivered to\n              its destination according to the agreed specifications.\n            <\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"processes-carousel\">\n      <button class=\"carousel-btn prev\" aria-label=\"Previous\">\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"51\" height=\"51\" viewBox=\"0 0 51 51\" fill=\"none\">\n          <path class=\"carousel-btn-icon\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M51 25.5C51 39.5833 39.5833 51 25.5 51C11.4167 51 2.08446e-06 39.5833 2.70006e-06 25.5C3.31566e-06 11.4167 11.4167 -1.73024e-06 25.5 -1.11464e-06C39.5833 -4.99041e-07 51 11.4167 51 25.5ZM33.8118 26.5261C34.6022 25.7358 34.6022 24.4547 33.8118 23.6643L22.4785 12.331C21.6882 11.5407 20.4071 11.5407 19.6167 12.331C18.8264 13.1214 18.8264 14.4025 19.6167 15.1928L29.5192 25.0952L19.6167 34.9977L19.4776 35.151C18.8292 35.9459 18.8757 37.1185 19.6167 37.8595C20.3577 38.6004 21.5302 38.647 22.3251 37.9986L22.4785 37.8595L33.8118 26.5261Z\" \/>\n        <\/svg>\n      <\/button>\n      <div class=\"carousel-images-wrapper\">\n        <div class=\"carousel-images\" id=\"carouselImages\">\n          <div class=\"carousel-slide\">\n            <img decoding=\"async\"\n              src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/2b12f9d55171319d36090f4a60b952d72a2cd77d-scaled.jpg\"\n              alt=\"Process 01\"\n              class=\"carousel-image active\"\n            \/>\n            <div class=\"carousel-slide-overlay\">\n              <p class=\"carousel-slide-text\">By combining technical expertise with advanced technology, our specialized technicians transform ideas and concepts into products of excellence that align with market trends.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"carousel-slide\">\n            <img decoding=\"async\"\n              src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/DSC_3969-edited-bw-1-1.png\"\n              alt=\"Process 02\"\n              class=\"carousel-image\"\n            \/>\n            <div class=\"carousel-slide-overlay\">\n              <p class=\"carousel-slide-text\">The Sampling Department optimizes all processes to adjust different production scales, guaranteeing efficiency at every phase.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"carousel-slide\">\n            <img decoding=\"async\"\n              src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/3a9d49ed218a55b097d6c2913737c98c70014140-scaled.png\"\n              alt=\"Process 03\"\n              class=\"carousel-image\"\n            \/>\n            <div class=\"carousel-slide-overlay\">\n              <p class=\"carousel-slide-text\">Once the materials have been selected based on customer specifications and our expertise, the production process begins, ensuring high-quality results.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"carousel-slide\">\n            <img decoding=\"async\"\n              src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/03\/Square.png\"\n              alt=\"Process 04\"\n              class=\"carousel-image\"\n            \/>\n            <div class=\"carousel-slide-overlay\">\n              <p class=\"carousel-slide-text\">After reviewing all production steps, our Logistics Department ensures that every order is prepared correctly and delivered to its destination according to the agreed specifications.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <button class=\"carousel-btn next\" aria-label=\"Next\">\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"51\" height=\"51\" viewBox=\"0 0 51 51\" fill=\"none\">\n          <path class=\"carousel-btn-icon\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M51 25.5C51 39.5833 39.5833 51 25.5 51C11.4167 51 2.08446e-06 39.5833 2.70006e-06 25.5C3.31566e-06 11.4167 11.4167 -1.73024e-06 25.5 -1.11464e-06C39.5833 -4.99041e-07 51 11.4167 51 25.5ZM33.8118 26.5261C34.6022 25.7358 34.6022 24.4547 33.8118 23.6643L22.4785 12.331C21.6882 11.5407 20.4071 11.5407 19.6167 12.331C18.8264 13.1214 18.8264 14.4025 19.6167 15.1928L29.5192 25.0952L19.6167 34.9977L19.4776 35.151C18.8292 35.9459 18.8757 37.1185 19.6167 37.8595C20.3577 38.6004 21.5302 38.647 22.3251 37.9986L22.4785 37.8595L33.8118 26.5261Z\" \/>\n        <\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n  (function () {\n    \"use strict\";\n\n    let currentIndex = 0;\n\n    const carouselImages = document.getElementById(\"carouselImages\");\n    const processesSteps = document.getElementById(\"processesSteps\");\n    const stepsWrapper = processesSteps?.closest(\".processes-steps-inner\");\n    const imagesWrapper = carouselImages?.closest(\".carousel-images-wrapper\");\n    const prevBtn = document.querySelector(\".carousel-btn.prev\");\n    const nextBtn = document.querySelector(\".carousel-btn.next\");\n    const totalSlides = document.querySelectorAll(\".process-step\").length;\n\n    if (!carouselImages || !processesSteps || !stepsWrapper || !imagesWrapper || !totalSlides)\n      return;\n\n    function isMobile() {\n      return window.innerWidth <= 768;\n    }\n\n    function isTablet() {\n      return window.innerWidth > 768 && window.innerWidth <= 1024;\n    }\n\n    function isMobileOrTablet() {\n      return isMobile() || isTablet();\n    }\n\n    function getMaxIndex() {\n      return isMobileOrTablet() ? totalSlides - 1 : totalSlides - 2;\n    }\n\n    function updateButtons() {\n      const maxIndex = getMaxIndex();\n      if (prevBtn) prevBtn.disabled = currentIndex === 0;\n      if (nextBtn) nextBtn.disabled = currentIndex >= maxIndex;\n    }\n\n    function goToSlide(index) {\n      const maxIndex = getMaxIndex();\n      currentIndex = Math.max(0, Math.min(index, maxIndex));\n\n      processesSteps.style.transition = \"transform 0.3s ease\";\n      carouselImages.style.transition = \"transform 0.3s ease\";\n      \n      if (isMobileOrTablet()) {\n        const offset = currentIndex * -100;\n        processesSteps.style.transform = `translateX(${offset}%)`;\n        carouselImages.style.transform = `translateX(${offset}%)`;\n      } else {\n        const firstStep = processesSteps.querySelector(\".process-step\");\n        const firstSlide = carouselImages.querySelector(\".carousel-slide\");\n        const stepsGap = parseFloat(getComputedStyle(processesSteps).gap) || 0;\n        const slidesGap = parseFloat(getComputedStyle(carouselImages).gap) || 0;\n        const stepWidth = firstStep ? firstStep.getBoundingClientRect().width : 0;\n        const slideWidth = firstSlide ? firstSlide.getBoundingClientRect().width : 0;\n        const stepsOffsetPx = currentIndex * (stepWidth + stepsGap);\n        const slidesOffsetPx = currentIndex * (slideWidth + slidesGap);\n\n        processesSteps.style.transform = `translateX(${-stepsOffsetPx}px)`;\n        carouselImages.style.transform = `translateX(${-slidesOffsetPx}px)`;\n      }\n\n      updateButtons();\n    }\n\n    if (prevBtn) {\n      prevBtn.addEventListener(\"click\", function() {\n        if (currentIndex > 0) goToSlide(currentIndex - 1);\n      });\n    }\n\n    if (nextBtn) {\n      nextBtn.addEventListener(\"click\", function() {\n        const maxIndex = getMaxIndex();\n        if (currentIndex < maxIndex) goToSlide(currentIndex + 1);\n      });\n    }\n\n    \/\/ Touch events removidos - agora usa apenas as setas no mobile tamb\u00e9m\n\n    let resizeTimeout;\n    window.addEventListener(\"resize\", function() {\n      clearTimeout(resizeTimeout);\n      resizeTimeout = setTimeout(function() {\n        goToSlide(currentIndex);\n      }, 100);\n    });\n\n    goToSlide(0);\n\n    var carouselSlides = carouselImages.querySelectorAll(\".carousel-slide\");\n    var processSteps = processesSteps.querySelectorAll(\".process-step\");\n    function clearStepHover() {\n      processSteps.forEach(function(s) { s.classList.remove(\"step-hover\"); });\n    }\n    carouselSlides.forEach(function(slide, i) {\n      slide.addEventListener(\"mouseenter\", function() {\n        clearStepHover();\n        if (processSteps[i]) processSteps[i].classList.add(\"step-hover\");\n      });\n      slide.addEventListener(\"mouseleave\", clearStepHover);\n    });\n  })();\n<\/script>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-77d9598 e-con-full e-flex e-con e-parent\" data-id=\"77d9598\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-306b27e elementor-widget elementor-widget-text-editor\" data-id=\"306b27e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section class=\"joia-quality-sustainability\" id=\"quality\">\n    <div class=\"quality-container\">\n        <div class=\"quality-top\">\n            <div class=\"quality-image-column\">\n                <img decoding=\"async\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/03\/sustentabilidade.png\" alt=\"Solar Panels\" class=\"quality-image\">\n            <\/div>\n            <div class=\"quality-text-column\">\n                <h2 class=\"quality-title\">QUALITY AND SUSTAINABILITY<\/h2>\n                <h5 class=\"quality-subtitle\">Environmental responsibility is central to our identity.<\/h5>\n                <p class=\"quality-description\">\n                    We carefully consider every stage of the production process to minimize our impact on the environment and on future generations.\n                <\/p>\n                <div class=\"quality-item quality-item-right\">\n                    <p class=\"quality-item-label\">Since 2018<\/p>\n                    <h5 class=\"quality-item-title\">35% of our energy has come from solar panels.<\/h5>\n                    <p class=\"quality-item-text\">\n                        This demonstrates our commitment to reducing our carbon footprint while delivering exceptional-quality products. In addition, we treat wastewater and actively prioritize solvent-free or low-solvent chemicals to protect both people and the planet.\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"quality-mobile-image\">\n            <img decoding=\"async\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/03\/sustentabilidade.png\" alt=\"Solar Panels\" class=\"quality-image quality-image-mobile\">\n            <h2 class=\"quality-title quality-title-mobile-start\">QUALITY AND SUSTAINABILITY<\/h2>\n            <h2 class=\"quality-title quality-title-overlay\">QUALITY AND SUSTAINABILITY<\/h2>\n        <\/div>\n        <div class=\"quality-mobile-middle-image\">\n            <img decoding=\"async\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/09b7adb40477ccdb36b2fae3bdbf010817d49a8f-scaled.png\" alt=\"Materials\" class=\"quality-image quality-image-middle-mobile\">\n        <\/div>\n        <div class=\"quality-bottom\">\n            <div class=\"quality-bottom-left\">\n                <div class=\"quality-bottom-text\">\n                    <p class=\"quality-item-label quality-item-label-mobile\">In recent years<\/p>\n                    <h5 class=\"quality-item-title-large quality-item-title-mobile\">We have significantly invested in more efficient production processes.<\/h5>\n                    <p class=\"quality-item-text\">\n                        Committed to continuous improvement, we comply with <strong>NP EN ISO 9001<\/strong> and <strong>NP EN ISO 14001<\/strong> standards, reducing waste and promoting responsible resource use while balancing operational excellence with a more sustainable future.\n                    <\/p>\n                <\/div>\n                <div class=\"quality-bottom-image-left\">\n                    <img decoding=\"async\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/2-scaled.png\" alt=\"Materials\" class=\"quality-image quality-image-2\">\n                <\/div>\n            <\/div>\n            <div class=\"quality-bottom-image-right\">\n                <img decoding=\"async\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/09b7adb40477ccdb36b2fae3bdbf010817d49a8f-scaled.png\" alt=\"Production\" class=\"quality-image quality-image-3 color\">\n            <\/div>\n            <div class=\"quality-mobile-image-bottom\">\n                <img decoding=\"async\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/01\/2-scaled.png\" alt=\"Production\" class=\"quality-image quality-image-mobile-bottom\">\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<script>\njQuery(document).ready(function($) {\n    const qualitySection = document.querySelector('.joia-quality-sustainability');\n    const qualityImage = document.querySelector('.quality-image-column .quality-image');\n    const qualityImageMobile = document.querySelector('.quality-image-mobile');\n    const qualityMobileImageContainer = document.querySelector('.quality-mobile-image');\n    const qualityTitleMobile = document.querySelector('.quality-title-mobile-start');\n    \n    if (!qualitySection) return;\n    \n    \/\/ Desktop: anima\u00e7\u00e3o baseada no scroll\n    function handleDesktopScrollAnimation() {\n        if (!qualityImage) return;\n        if (!qualitySection) return;\n        \n        const sectionRect = qualitySection.getBoundingClientRect();\n        const windowHeight = window.innerHeight;\n        \n        \/\/ Calcular progresso baseado na posi\u00e7\u00e3o do scroll\n        const startScroll = windowHeight * 1.1;\n        const endScroll = windowHeight * -0.35;\n        const scrollPosition = sectionRect.top;\n        const scrollRange = startScroll - endScroll;\n        const progress = Math.max(0, Math.min(1, (startScroll - scrollPosition) \/ scrollRange));\n        \n        \/\/ Aplicar apenas transform baseado no progresso (sem transpar\u00eancia)\n        const minScale = 0.25; \/\/ come\u00e7a ainda mais pequena\n        const maxScale = 1;   \/\/ tamanho final atual\n        const scale = minScale + (progress * (maxScale - minScale));\n        \n        qualityImage.style.transform = 'scale(' + scale + ')';\n        qualityImage.style.opacity = 1;\n    }\n    \n    \/\/ Mobile\/Tablet: anima\u00e7\u00e3o baseada no scroll\n    function isMobile() {\n        return window.innerWidth <= 1200;\n    }\n    \n    if (!isMobile()) {\n        \/\/ Desktop: usar scroll animation\n        $(window).on('scroll', handleDesktopScrollAnimation);\n        handleDesktopScrollAnimation();\n    } else if (isMobile()) {\n        \/\/ Separar as letras do t\u00edtulo em spans\n        if (qualityTitleMobile) {\n            const text = qualityTitleMobile.textContent;\n            qualityTitleMobile.innerHTML = '';\n            for (let i = 0; i < text.length; i++) {\n                const span = document.createElement('span');\n                span.textContent = text[i];\n                span.style.transition = 'color 0.1s ease-out';\n                qualityTitleMobile.appendChild(span);\n            }\n        }\n        \n        const titleLetters = qualityTitleMobile ? qualityTitleMobile.querySelectorAll('span') : [];\n        \n        function handleScrollAnimation() {\n            if (!qualityImageMobile) return;\n            if (!qualityMobileImageContainer) return;\n            if (!qualityTitleMobile) return;\n            \n            const containerRect = qualityMobileImageContainer.getBoundingClientRect();\n            const windowHeight = window.innerHeight;\n            \n            \/\/ Anima\u00e7\u00e3o come\u00e7a mais tarde e acaba mais r\u00e1pido\n            const startScroll = windowHeight * 0.6;\n            const endScroll = windowHeight * 0.1;\n            const scrollPosition = containerRect.top;\n            const scrollRange = startScroll - endScroll;\n            const progress = Math.max(0, Math.min(1, (startScroll - scrollPosition) \/ scrollRange));\n            \n            const scale = 0.3 + (progress * 0.7);\n            qualityImageMobile.style.transform = 'scale(' + scale + ')';\n            qualityImageMobile.style.opacity = '1';\n            \n            \/\/ Mudar cor das letras progressivamente (come\u00e7a quando progress > 0.55)\n            if (titleLetters.length > 0) {\n                const letterStartProgress = Math.max(0, (progress - 0.55) \/ 0.45);\n                titleLetters.forEach(function(letter, index) {\n                    const letterProgress = (letterStartProgress * titleLetters.length) - index;\n                    const letterOpacity = Math.max(0, Math.min(1, letterProgress));\n                    \n                    if (letterOpacity > 0.5) {\n                        letter.style.color = '#F2F0EF';\n                    } else {\n                        letter.style.color = '#222';\n                    }\n                });\n            }\n            \n            if (progress >= 0.7) {\n                qualityMobileImageContainer.classList.add('animating');\n            }\n        }\n        \n        $(window).on('scroll', handleScrollAnimation);\n        handleScrollAnimation();\n    }\n});\n<\/script>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7dfd6b5 e-con-full e-flex e-con e-parent\" data-id=\"7dfd6b5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c8d9501 elementor-widget elementor-widget-text-editor\" data-id=\"c8d9501\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section class=\"joia-contact-us\" id=\"contact\">\n    <div class=\"contact-container\">\n        <h2 class=\"contact-title\">CONTACT US<\/h2>\n        <div class=\"contact-layout\">\n            <div class=\"left-column\">\n                <div class=\"contact-form-section\">\n                    <form class=\"contact-form\">\n                        <div class=\"form-field\">\n                            <input type=\"text\" id=\"name\" name=\"name\" class=\"form-input\" placeholder=\"NAME*\" required>\n                        <\/div>\n                        <div class=\"form-field\">\n                            <input type=\"email\" id=\"email\" name=\"email\" class=\"form-input\" placeholder=\"EMAIL*\" required>\n                        <\/div>\n                        <div class=\"form-field\">\n                            <input type=\"tel\" id=\"phone\" name=\"phone\" class=\"form-input\" placeholder=\"PHONE NUMBER\">\n                        <\/div>\n                        <div class=\"message-row\">\n                            <div class=\"form-field\">\n                                <div class=\"textarea-wrapper\">\n                                    <textarea id=\"message\" name=\"message\" class=\"form-textarea\" placeholder=\"MESSAGE*\" required><\/textarea>\n                                    <button type=\"submit\" class=\"submit-btn\">Send<\/button>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"form-mandatory-note\">\n                            <p class=\"mandatory-text\">Fields marked with * are mandatory.<\/p>\n                        <\/div>\n                        <div class=\"form-consent\">\n                            <input type=\"checkbox\" id=\"consent\" name=\"consent\" class=\"consent-checkbox\" required>\n                            <label for=\"consent\" class=\"consent-label\">I confirm that I consent to the use of the data submitted<\/label>\n                        <\/div>\n                    <\/form>\n                <\/div>\n            <\/div>\n            <div class=\"right-column\">\n                <div class=\"get-in-touch\">\n                    <p class=\"touch-title\"><strong>Get in touch<\/strong><\/p>\n                    <p class=\"touch-email\">geral@joia.pt<\/p>\n                    <p class=\"touch-note\">call to national fixed and mobile network<\/p>\n                    <p class=\"touch-phone\">(+351) 255 312 867<\/p>\n                    <p class=\"touch-phone\">(+351) 963 143 770<\/p>\n                    <a href=\"https:\/\/www.linkedin.com\/company\/joia-calcado\/\" class=\"linkedin-link\" target=\"_blank\" rel=\"noopener noreferrer\">\n                        <svg class=\"linkedin-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452z\" fill=\"#000000\"\/>\n                        <\/svg>\n                    <\/a>\n                <\/div>\n                <div class=\"where-and-map-row\">\n                    <div class=\"where-to-find\">\n                        <p class=\"where-title\"><strong>Where to find us<\/strong><\/p>\n                        <p class=\"where-address\">Rua da Leira 622 4610-424,<br>Lagares &#8211; Felgueiras, Portugal<\/p>\n                    <\/div>\n                    <div class=\"contact-map-section\">\n                        <iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m18!1m12!1m3!1d2993.984825918578!2d-8.24170841419242!3d41.374414397304676!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0xd24ec36ef2a0703%3A0x926a023d723850ba!2sJOIA%20-%20Cal%C3%A7ado%2C%20S.A.!5e0!3m2!1spt-PT!2spt!4v1768317911441!5m2!1spt-PT!2spt\" width=\"531\" height=\"306\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\" class=\"contact-map\"><\/iframe>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6567b5e e-con-full e-flex e-con e-parent\" data-id=\"6567b5e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0c7937c elementor-widget elementor-widget-text-editor\" data-id=\"0c7937c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div id=\"mobile-lets-talk-btn\" class=\"mobile-popup-btn\">\n    <img decoding=\"async\" class=\"mobile-popup-icon\" src=\"https:\/\/joia.pt\/wp-content\/uploads\/2026\/03\/Icon-Contactos.svg\" alt=\"Let's Talk\" \/>\n<\/div>\n\n<script>\njQuery(document).ready(function($) {\n    $('#mobile-lets-talk-btn').on('click', function(e) {\n        e.preventDefault();\n        elementorProFrontend.modules.popup.showPopup({ id: 979 });\n    });\n});\n<\/script>\n\n<style>\n.mobile-popup-btn {\n    position: fixed;\n    bottom: 20px;\n    right: 20px;\n    z-index: 999;\n    cursor: pointer;\n    display: none;\n}\n\n.mobile-popup-icon {\n    width: auto;\n    height: auto;\n    display: block;\n    max-width: 100%;\n}\n\n@media (max-width: 768px) {\n    .mobile-popup-btn {\n        display: block;\n    }\n}\n\n@media (min-width: 769px) {\n    .mobile-popup-btn {\n        display: none !important;\n    }\n}\n<\/style>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Since 1973, we have been a reference in fashion footwear production. ABOUT US With over 50 years of experience in the private-label footwear sector and now under third-generation leadership, JOIA &#8211; Cal\u00e7ado, S.A. has been evolving steadily and sustainably. On February 14, 1973 It was founded as Silva &#038; Rodrigues, Lda., and the company began [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-16","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/joia.pt\/pt\/wp-json\/wp\/v2\/pages\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/joia.pt\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/joia.pt\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/joia.pt\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/joia.pt\/pt\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":9,"href":"https:\/\/joia.pt\/pt\/wp-json\/wp\/v2\/pages\/16\/revisions"}],"predecessor-version":[{"id":2355,"href":"https:\/\/joia.pt\/pt\/wp-json\/wp\/v2\/pages\/16\/revisions\/2355"}],"wp:attachment":[{"href":"https:\/\/joia.pt\/pt\/wp-json\/wp\/v2\/media?parent=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}