diff --git a/package-lock.json b/package-lock.json
index 8732d939e4998c614aa728458c0e1afcd13a97c4..ee9283a8292e98659f283b80b0c55d78a844f146 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11832,6 +11832,11 @@
         }
       }
     },
+    "react-table": {
+      "version": "7.8.0",
+      "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz",
+      "integrity": "sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA=="
+    },
     "react-transition-group": {
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz",
diff --git a/package.json b/package.json
index 79ad836adccca680402f6cf1d70fefd051d1a166..00867022e624a16dde8957b6817f7646f104d24c 100644
--- a/package.json
+++ b/package.json
@@ -34,6 +34,7 @@
     "react-scripts": "3.3.1",
     "react-select": "^4.3.1",
     "react-spinners": "^0.10.4",
+    "react-table": "^7.8.0",
     "react-virtualized-select": "^3.1.3",
     "redux": "^4.0.5",
     "superagent": "^6.1.0"
diff --git a/src/App.scss b/src/App.scss
index 1ec3d525ec04d3397c31534bd34ef05aceb18502..2798cfb41e377e4582f4916ac538356d8ae18fda 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -34,4 +34,28 @@
         from { transform: rotate(0deg) }
         to { transform: rotate(360deg) }
     }
-}
\ No newline at end of file
+}
+
+h1 {
+    font-size: 32px;
+}
+
+h2 {
+    font-size: 24px;
+}
+
+h3 {
+    font-size: 18.72px;
+}
+
+h4, p, div, a, li, span {
+    font-size: 16px;
+}
+
+h5 {
+    font-size: 13.28px;
+}
+
+h6 {
+    font-size: 10.72px;
+}
diff --git a/src/components/BottomTableComponent.js b/src/components/BottomTableComponent.js
index 9eeccd9b10b8f9562f1c48e4bdbdb8b43f7a56a0..3622f8cceace2c61f1c8d106785780ef415747a3 100644
--- a/src/components/BottomTableComponent.js
+++ b/src/components/BottomTableComponent.js
@@ -24,6 +24,10 @@ import { Grid } from '@material-ui/core';
 
 import attention from '../img/attention.svg';
 import reload from '../img/reload.svg';
+import sortingArrow from '../img/sorting-arrow.svg';
+import downWhiteArrow from '../img/down-arrow-white.svg';
+
+import { useSortBy, useTable } from 'react-table'
 
 import Consult from './Consult';
 import '../css/BottomTableComponent.scss';
@@ -45,6 +49,7 @@ function BottomTableComponent(props) {
     const [selectedFilters, setSelectedFilters] = useState([]);
     const [downloadFile, setdownloadFile] = useState([]);
     const [totalTableData, setTotalTableData] = useState({});
+    const [formattedTableData, setFormattedTableData] = useState([]);
 
     useEffect(() => {
         const chartYearFilters = {
@@ -317,6 +322,112 @@ function BottomTableComponent(props) {
         }
     }
 
+    useEffect(() => {
+        setFormattedTableData(tableData.map((course) => {
+            if (indicatorName === 'concluintes_licenciatura') {
+                const lowerName = course.course_name.toLowerCase()
+                const name = lowerName.charAt(0).toUpperCase() + lowerName.slice(1)
+                const total = course.finished_total + course.not_finished_total
+                return (
+                    {
+                        curso: name,
+                        concluintes: course.finished_total.toLocaleString('pt-BR'),
+                        nao_concluintes: course.not_finished_total.toLocaleString('pt-BR'),
+                        total: total.toLocaleString('pt-BR'),
+                    }       
+                )
+            } else if (indicatorName === 'situacao_ingressantes') {
+                const lowerName = course.course_name.toLowerCase()
+                const name = lowerName.charAt(0).toUpperCase() + lowerName.slice(1)
+                return (
+                    {
+                        curso: name,
+                        cursando: course.cursando.toLocaleString('pt-BR'),
+                        evadido: course.evadido.toLocaleString('pt-BR'),
+                        trancado: course.trancado.toLocaleString('pt-BR'),
+                        concluinte: course.concluinte.toLocaleString('pt-BR'),
+                        taxaEvasao: course.taxa_evasao ? course.taxa_evasao.toLocaleString('pt-BR', localeOptions) : 0,
+                    }
+                )
+            } else if (indicatorName === 'situacao_matriculas') {
+                const lowerName = course.course_name.toLowerCase()
+                const name = lowerName.charAt(0).toUpperCase() + lowerName.slice(1)
+                return (
+                    {
+                        curso: name,
+                        cursando: course.cursando.toLocaleString('pt-BR'),
+                        evadido: course.evadido.toLocaleString('pt-BR'),
+                        trancado: course.trancado.toLocaleString('pt-BR'),
+                        concluinte: course.concluinte.toLocaleString('pt-BR'),
+                    }
+                )
+            } else {
+                const lowerName = course.course_name.toLowerCase()
+                const name = lowerName.charAt(0).toUpperCase() + lowerName.slice(1)
+                const aB = course.inscritos_total !== 0 ? course.inscritos_total / course.vagas_totais : 0
+                const cB = course.vagas_totais !== 0 ? course.ingresso_curso / course.vagas_totais: 0
+                return (
+                    {
+                        curso: name,
+                        inscritos: course.inscritos_total.toLocaleString('pt-BR'),
+                        vagas: course.vagas_totais.toLocaleString('pt-BR'),
+                        ingressantes: course.ingresso_curso.toLocaleString('pt-BR'),
+                        inscritos_por_vagas: aB ? aB.toLocaleString('pt-BR', localeOptions) : 0,
+                        ingresso_por_vagas: cB ? cB.toLocaleString('pt-BR', localeOptions) : 0,
+                    }
+                )
+            }
+        }))
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+    }, [tableData, indicatorName])
+
+    const data = React.useMemo(
+        () => (formattedTableData),
+        [formattedTableData]
+    )
+
+    const localeOptions =  { maximumFractionDigits: 2, minimumFractionDigits: 2 }
+
+    const columns = React.useMemo(() => 
+        (indicatorName === 'concluintes_licenciatura') ?
+        [{ Header: 'Curso', accessor: 'curso', Footer: 'Total' },
+        { Header: 'Concluintes', accessor: 'concluintes', Footer: totalTableData?.finished_total?.toLocaleString('pt-BR') },
+        { Header: 'Nao Concluintes', accessor: 'nao_concluintes', Footer: totalTableData?.not_finished_total?.toLocaleString('pt-BR') }, 
+        { Header: 'Total', accessor: 'total', Footer: (totalTableData?.not_finished_total + totalTableData?.finished_total)?.toLocaleString('pt-BR') }]
+        :   ((indicatorName === 'situacao_ingressantes') ?
+            [{ Header: 'Curso', accessor: 'curso', Footer: 'Total' },
+            { Header: 'Cursando', accessor: 'cursando', Footer: totalTableData?.cursando?.toLocaleString('pt-BR') },
+            { Header: 'Evadidos', accessor: 'evadido', Footer: totalTableData?.evadido?.toLocaleString('pt-BR') },
+            { Header: 'Trancado', accessor: 'trancado', Footer: totalTableData?.trancado?.toLocaleString('pt-BR') },
+            { Header: 'Concluintes', accessor: 'concluinte', Footer: totalTableData?.concluinte?.toLocaleString('pt-BR') },
+            { Header: 'Taxa de evasão (%)', accessor: 'taxaEvasao', Footer: totalTableData?.taxaEvasao?.toLocaleString('pt-BR', localeOptions) }]
+            :   ((indicatorName === 'situacao_matriculas') ?
+                [{ Header: 'Curso', accessor: 'curso', Footer: 'Total' },
+                { Header: 'Cursando', accessor: 'cursando', Footer: totalTableData?.cursando?.toLocaleString('pt-BR') },
+                { Header: 'Evadidos', accessor: 'evadido', Footer: totalTableData?.evadido?.toLocaleString('pt-BR') },
+                { Header: 'Trancado', accessor: 'trancado', Footer: totalTableData?.trancado?.toLocaleString('pt-BR') },
+                { Header: 'Concluintes', accessor: 'concluinte', Footer: totalTableData?.concluinte?.toLocaleString('pt-BR') }]
+                :   [{ Header: 'Curso', accessor: 'curso', Footer: 'Total' },
+                    { Header: 'Inscritos (a)', accessor: 'inscritos', Footer: totalTableData?.inscritos?.toLocaleString('pt-BR') },
+                    { Header: 'Vagas (b)', accessor: 'vagas', Footer: totalTableData?.vagas?.toLocaleString('pt-BR') },
+                    { Header: 'Ingresso total (c)', accessor: 'ingressantes', Footer: totalTableData?.ingressantes?.toLocaleString('pt-BR') },
+                    { Header: 'a/b', accessor: 'inscritos_por_vagas', Footer: totalTableData?.inscritos_por_vagas?.toLocaleString('pt-BR', localeOptions) },
+                    { Header: 'c/b', accessor: 'ingresso_por_vagas', Footer: totalTableData?.ingresso_por_vagas?.toLocaleString('pt-BR', localeOptions) }]
+                ) 
+            ),
+        // eslint-disable-next-line react-hooks/exhaustive-deps
+        [indicatorName, totalTableData]
+    )
+
+    const {
+        getTableProps,
+        getTableBodyProps,
+        headerGroups,
+        footerGroups,
+        rows,
+        prepareRow,
+    } = useTable({ columns, data }, useSortBy)
+
     return (
         <>
             { loadingData ?
@@ -364,152 +475,82 @@ function BottomTableComponent(props) {
                                 </a>
                                 <div className="table-container">
                                     <div className="table-overflow-container">
-                                        <table cellSpacing="0" cellPadding="0">
+                                        <table {...getTableProps()} cellSpacing="0" cellPadding="0">
                                             <thead>
                                             {
-                                                indicatorName === 'concluintes_licenciatura' ?
-                                                <tr>
-                                                    <th>Curso</th>
-                                                    <th>Concluintes</th>
-                                                    <th>Não Concluintes</th>
-                                                    <th>Total</th>
-                                                </tr>
-                                                : (
-                                                    indicatorName === 'situacao_ingressantes' ?
-                                                    <tr>
-                                                        <th>Curso</th>
-                                                        <th>Cursando</th>
-                                                        <th>Evadidos</th>
-                                                        <th>Trancado</th>
-                                                        <th>Concluintes</th>
-                                                        <th>Taxa de evasão (%)</th>
+                                                headerGroups.map(headerGroup => (
+                                                    <tr {...headerGroup.getHeaderGroupProps()}>
+                                                    {
+                                                        headerGroup.headers.map(column => (
+                                                            <th {...column.getHeaderProps(column.getSortByToggleProps({ title: 'Ordenar'}))}>
+                                                                <div className='header-container'>
+                                                                    {column.render('Header')}
+                                                                </div>
+                                                                <span>
+                                                                    { column.isSorted ? column.isSortedDesc
+                                                                        ?
+                                                                        <img
+                                                                            className='sided-arrow'
+                                                                            src={downWhiteArrow}
+                                                                            alt="Flecha para baixo"
+                                                                        />
+                                                                        :
+                                                                        <img
+                                                                            className='sided-arrow up'
+                                                                            src={downWhiteArrow}
+                                                                            alt="Flecha para cima"
+                                                                        />
+                                                                    : <img
+                                                                        src={sortingArrow}
+                                                                        alt="Flecha para baixo e para cima"
+                                                                        />}
+                                                                </span>
+                                                            </th>
+                                                        ))
+                                                    }
                                                     </tr>
-                                                    : (
-                                                        indicatorName === 'situacao_matriculas' ?
-                                                        <tr>
-                                                            <th>Curso</th>
-                                                            <th>Cursando</th>
-                                                            <th>Evadidos</th>
-                                                            <th>Trancado</th>
-                                                            <th>Concluintes</th>
-                                                        </tr>
-                                                        :
-                                                        <tr>
-                                                            <th>Curso</th>
-                                                            <th>Inscritos (a)</th>
-                                                            <th>Vagas (b)</th>
-                                                            <th>Ingresso total (c)</th>
-                                                            <th>a/b</th>
-                                                            <th>c/b</th>
-                                                        </tr>
-                                                    )
-                                                )
+                                                ))
                                             }
                                             </thead>
-                                            <tbody>
-                                                {
-                                                    tableData.map((course, index) => {
-                                                        if (indicatorName === 'concluintes_licenciatura') {
-                                                            const lowerName = course.course_name.toLowerCase()
-                                                            const name = lowerName.charAt(0).toUpperCase() + lowerName.slice(1)
-                                                            const total = course.finished_total + course.not_finished_total
-                                                            return (
-                                                                <tr key={index} className={`${index % 2 !== 0 ? 'tr-alt' : ''}`}>
-                                                                    <td>{name}</td>
-                                                                    <td>{course.finished_total.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.not_finished_total.toLocaleString('pt-BR')}</td>
-                                                                    <td>{total.toLocaleString('pt-BR')}</td>
-                                                                </tr>
-                                                            )
-                                                        } else if (indicatorName === 'situacao_ingressantes') {
-                                                            const lowerName = course.course_name.toLowerCase()
-                                                            const name = lowerName.charAt(0).toUpperCase() + lowerName.slice(1)
-                                                            return (
-                                                                <tr key={index} className={`${index % 2 !== 0 ? 'tr-alt' : ''}`}>
-                                                                    <td>{name}</td>
-                                                                    <td>{course.cursando.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.evadido.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.trancado.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.concluinte.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.taxa_evasao ? course.taxa_evasao.toLocaleString('pt-BR') : 0}</td>
-                                                                </tr>
-                                                            )
-                                                        } else if (indicatorName === 'situacao_matriculas') {
-                                                            const lowerName = course.course_name.toLowerCase()
-                                                            const name = lowerName.charAt(0).toUpperCase() + lowerName.slice(1)
-                                                            return (
-                                                                <tr key={index} className={`${index % 2 !== 0 ? 'tr-alt' : ''}`}>
-                                                                    <td>{name}</td>
-                                                                    <td>{course.cursando.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.evadido.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.trancado.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.concluinte.toLocaleString('pt-BR')}</td>
-                                                                </tr>
-                                                            )
-                                                        } else {
-                                                            const lowerName = course.course_name.toLowerCase()
-                                                            const name = lowerName.charAt(0).toUpperCase() + lowerName.slice(1)
-                                                            const aB = course.inscritos_total !== 0 ? course.inscritos_total / course.vagas_totais : 0
-                                                            const cB = course.vagas_totais !== 0 ? course.ingresso_curso / course.vagas_totais: 0
+                                            <tbody {...getTableBodyProps()}>
+                                            {
+                                                rows.map((row, index) => {
+                                                    prepareRow(row)
+                                                    return (
+                                                    <tr {...row.getRowProps()} className={`${index % 2 !== 0 ? 'tr-alt' : ''}`}>
+                                                    {
+                                                        row.cells.map(cell => {
                                                             return (
-                                                                <tr key={index} className={`${index % 2 !== 0 ? 'tr-alt' : ''}`}>
-                                                                    <td>{name}</td>
-                                                                    <td>{course.inscritos_total.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.vagas_totais.toLocaleString('pt-BR')}</td>
-                                                                    <td>{course.ingresso_curso.toLocaleString('pt-BR')}</td>
-                                                                    <td>{aB ? aB.toFixed(2).toLocaleString('pt-BR') : 0}</td>
-                                                                    <td>{cB ? cB.toFixed(2).toLocaleString('pt-BR') : 0}</td>
-                                                                </tr>
+                                                                <td {...cell.getCellProps()}>
+                                                                { cell.render('Cell') }
+                                                                </td>
                                                             )
-                                                        }
-                                                    })
-                                                }
-                                                {
-                                                    indicatorName === 'concluintes_licenciatura' ?
-                                                    <tr className='tr-total'>
-                                                        <td>Total</td>
-                                                        <td>{totalTableData.finished_total.toLocaleString('pt-BR')}</td>
-                                                        <td>{totalTableData.not_finished_total.toLocaleString('pt-BR')}</td>
-                                                        <td>{totalTableData.finished_sum.toLocaleString('pt-BR')}</td>
+                                                        })
+                                                    }
                                                     </tr>
-                                                    : (
-                                                        indicatorName === 'situacao_ingressantes' ?
-                                                        <tr className='tr-total'>
-                                                            <td>Total</td>
-                                                            <td>{totalTableData.cursando.toLocaleString('pt-BR')}</td>
-                                                            <td>{totalTableData.evadido.toLocaleString('pt-BR')}</td>
-                                                            <td>{totalTableData.trancado.toLocaleString('pt-BR')}</td>
-                                                            <td>{totalTableData.concluinte.toLocaleString('pt-BR')}</td>
-                                                            <td>{totalTableData.taxaEvasao.toLocaleString('pt-BR')}</td>
-                                                        </tr>
-                                                        : (
-                                                            indicatorName === 'situacao_matriculas' ?
-                                                            <tr className='tr-total'>
-                                                                <td>Total</td>
-                                                                <td>{totalTableData.cursando.toLocaleString('pt-BR')}</td>
-                                                                <td>{totalTableData.evadido.toLocaleString('pt-BR')}</td>
-                                                                <td>{totalTableData.trancado.toLocaleString('pt-BR')}</td>
-                                                                <td>{totalTableData.concluinte.toLocaleString('pt-BR')}</td>
-                                                            </tr>
-                                                            :
-                                                            <tr className='tr-total'>
-                                                                <td>Total</td>
-                                                                <td>{totalTableData.inscritos.toLocaleString('pt-BR')}</td>
-                                                                <td>{totalTableData.vagas.toLocaleString('pt-BR')}</td>
-                                                                <td>{totalTableData.ingressantes.toLocaleString('pt-BR')}</td>
-                                                                <td>{totalTableData.inscritos_por_vagas.toFixed(2).toLocaleString('pt-BR')}</td>
-                                                                <td>{totalTableData.ingresso_por_vagas.toFixed(2).toLocaleString('pt-BR')}</td>
-                                                            </tr>
-                                                        )
                                                     )
-                                                }
+                                                })
+                                            }
                                             </tbody>
+                                            <tfoot>
+                                                {
+                                                    footerGroups.map(group => (
+                                                        <tr {...group.getFooterGroupProps()}>
+                                                        {
+                                                            group.headers.map(column => (
+                                                                <td {...column.getFooterProps()}>{column.render('Footer')}</td>
+                                                            ))
+                                                        }
+                                                        </tr>
+                                                    ))
+                                                }
+                                            </tfoot>
                                         </table>
                                     </div>
                                 </div>
                             </>
                         }
-                        <p>{chartInfo.notes}</p>
+                        <p className='box-note'>{chartInfo.notes}</p>
                     </div>
                 </div>
             }
diff --git a/src/components/Charts/PieChartComponent.js b/src/components/Charts/PieChartComponent.js
index f09eee4879e94767075a4eda7a36c623de6db63d..4bd51b541bef0e5081f6ad5178bf521bba1263a3 100644
--- a/src/components/Charts/PieChartComponent.js
+++ b/src/components/Charts/PieChartComponent.js
@@ -329,7 +329,7 @@ function PieChartComponent(props) {
                                 />
                             }
                         </Grid>
-                        <p>{notes}</p>
+                        <p className='box-note'>{notes}</p>
                     </Grid>
                 </Grid>
             }
diff --git a/src/components/Dropdown/FixedFiltersComponent.js b/src/components/Dropdown/FixedFiltersComponent.js
index b3bb29b11e20752f7c3decf4fd5c2e49056f73c4..9b13136c21c8758fbd861fab89466015eaeba2df 100644
--- a/src/components/Dropdown/FixedFiltersComponent.js
+++ b/src/components/Dropdown/FixedFiltersComponent.js
@@ -174,7 +174,7 @@ function FixedFiltersComponent(props) {
             ...provided,
             boxShadow: state.isFocused ? '0 0 0 1px rgba(122, 96, 166, 0.5)' : 0,
             width: '100%',
-            height: 40,
+            height: 42,
             background: state.hasValue ?
                         (contrastSet ? '#ffff00' : '#7a60a6') :
                         (state.isDisabled ?
@@ -189,15 +189,18 @@ function FixedFiltersComponent(props) {
             cursor: 'pointer',
             '&:hover': {
                 border: contrastSet ? '2px solid #ffff00' : '2px solid #7a60a6',
-            }
+            },
         }),
 
         placeholder: (provided, state) => ({
             ...provided,
+            whiteSpace: 'nowrap',
+            textOverflow: 'ellipsis',
             color: state.isDisabled ?
                    (contrastSet ? '#ffff00' : '#bfbfbf') :
                    (contrastSet ? '#ffff00' : '#7a60a6'),
             fontSize: 20,
+            paddingBottom: 5,
         }),
 
         singleValue: (provided, state) => ({
@@ -206,6 +209,12 @@ function FixedFiltersComponent(props) {
                    (contrastSet ? '#000' : '#fff') :
                    (contrastSet ? '#ffff00' : '#7a60a6'),
             fontSize: 20,
+            paddingBottom: 5,
+        }),
+
+        valueContainer: (provided) => ({
+            ...provided,
+            height: 'inherit',
         }),
 
         input: (provided) => ({
@@ -365,7 +374,7 @@ function FixedFiltersComponent(props) {
                 isDisabled={path[4] === 'inscritos_vagas_ingressantes'}
                 onChange={(event) => {
                     updateFilters('city', event ? event.value : 0)
-                    setCityLabel(event ? event.label : '')
+                    setCityLabel(event ? event.label : '')  
                 }}
                 value={ cityLabel !== '' ?
                     {
diff --git a/src/components/FaixaComponent.js b/src/components/FaixaComponent.js
index bc634176271630a7918275a98594c75ee128f7d2..2d5c0c4032057c20be8c8985179b2c94faef57af 100644
--- a/src/components/FaixaComponent.js
+++ b/src/components/FaixaComponent.js
@@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
 along with mapfor. If not, see <https://www.gnu.org/licenses/>.
 */
 
-import React, { useState } from 'react';
+import React, { useEffect, useState } from 'react';
 import { Grid, ClickAwayListener } from '@material-ui/core';
 import { Link, useLocation } from 'react-router-dom';
 import { useSelector, useDispatch } from 'react-redux';
@@ -46,17 +46,25 @@ import highContrast from '../img/highContrast.svg';
 
 function FaixaComponent() {
     const location = useLocation()
+    const [textSizeChange, setTextSizeChange] = useState(0);
     const [visible, setVisible] = useState(false);
     const [dropdown, setDropdown] = useState(false);
-    const [isOpen0, setIsOpen0] = React.useState(false);
-    const [isOpen1, setIsOpen1] = React.useState(false);
-    const [isOpen2, setIsOpen2] = React.useState(false);
-    const [isOpen3, setIsOpen3] = React.useState(false);
-    const [proxModal, setProxModal] = React.useState(() => setIsOpen1);
+    const [isOpen0, setIsOpen0] = useState(false);
+    const [isOpen1, setIsOpen1] = useState(false);
+    const [isOpen2, setIsOpen2] = useState(false);
+    const [isOpen3, setIsOpen3] = useState(false);
+    const [proxModal, setProxModal] = useState(() => setIsOpen1);
 
     const storeState = useSelector(state => state);
     const dispatch = useDispatch();
 
+    let exludeList = ['leaflet', 'apex', 'legend', 'map', 'text-home', 'note', 'attribution', 'MuiGrid'];
+
+
+    useEffect(() => {
+        resetFontSize();
+    }, [location])
+
     function closeModal(openFunction){
         openFunction(false);
     }
@@ -92,6 +100,101 @@ function FaixaComponent() {
         }
     }
 
+    function resetFontSize() {
+        let classElements = document.getElementsByTagName("*");
+        for (let i = 0; i < classElements.length; i++) {
+            let elem = classElements[i];
+            let dontChange = false;
+            elem.classList.forEach((name) => {
+                if (name.includes('apexcharts-legend-text')) {
+                    dontChange = true;
+                }
+            })
+            if (!dontChange) {
+                elem.style.removeProperty('font-size');
+                elem.style.removeProperty('line-height');
+                elem.style.removeProperty('scale');
+            }
+        }
+        setTextSizeChange(0);
+    }
+
+    function decreaseFontSize() {
+        if (textSizeChange > 1) {
+            let classElements = document.getElementsByTagName("*");
+            for (let i = 0; i < classElements.length; i++) {
+                let elem = classElements[i];
+                let styles = getComputedStyle(elem);
+                let dontChange = false;
+                elem.classList.forEach((name) => {
+                    if (exludeList.forEach((subname) => {
+                        if (name.includes(subname)) {
+                            dontChange = true;
+                        }
+                    }))
+                    if (name.includes('arrow')) {
+                        elem.style.scale = String(parseFloat(elem.style.scale) / 1.2);
+                    }
+                })
+                if (elem.title !== undefined) {
+                    if (elem.title === 'A JS library for interactive maps') {
+                        dontChange = true;
+                    }
+                }
+                if (elem.tagName === 'tspan') {
+                    dontChange = true;
+                }
+                if (!dontChange) {
+                    elem.style.fontSize = (parseFloat(styles.fontSize.slice(0, styles.fontSize.length - 2)) / 1.20 + 'px');
+                    elem.style.lineHeight = (parseFloat(styles.lineHeight.slice(0, styles.lineHeight.length - 2)) / 1.20 + 'px');
+                }
+            }
+            setTextSizeChange(textSizeChange - 1);
+        }
+        else if (textSizeChange === 1)
+            resetFontSize();
+    }
+
+    function increaseFontSize() {
+        if (textSizeChange < 3) {
+            let classElements = document.getElementsByTagName("*");
+            for (let i = 0; i < classElements.length; i++) {
+                let elem = classElements[i];
+                let styles = getComputedStyle(elem);
+                let dontChange = false;
+
+                // check if element contains any class from the list of classes that shouldn't be changed
+                elem.classList.forEach((name) => {
+                    if (exludeList.forEach((subname) => {
+                        if (name.includes(subname)) {
+                            dontChange = true;
+                        }
+                    }))
+                    if (name.includes('arrow')) {
+                        elem.style.scale = (elem.style.scale !== '') ? String(parseFloat(elem.style.scale) * 1.2) : String(1.2);
+                    }
+                })
+                if (elem.title !== undefined) {
+                    if (elem.title === 'A JS library for interactive maps') {
+                        dontChange = true;
+                    }
+                }
+                if (elem.tagName === 'tspan') {
+                    dontChange = true;
+                }
+                if (elem.tagName.toLowerCase().includes('br')) {
+                    dontChange = true;
+                }
+                
+                if (!dontChange) {
+                    elem.style.fontSize = (parseFloat(styles.fontSize.slice(0, styles.fontSize.length - 2)) * 1.20 + 'px');
+                    elem.style.lineHeight = (parseFloat(styles.lineHeight.slice(0, styles.lineHeight.length - 2)) * 1.20 + 'px');    
+                }
+            }
+            setTextSizeChange(textSizeChange + 1);
+        }
+    }
+
     const contrastSet = storeState.highContrast.set;
 
     return (
@@ -134,12 +237,18 @@ function FaixaComponent() {
                     <a href="#footer">Ir para o rodapé 4</a>
                 </div> */}
                 <div className="access-tools">
-                    {/* <div className="access-tools-items">
+                    <div className="access-tools-items">
                         <p>Tamanho do texto:</p>
-                        <a href="/#">A+</a>
-                        <a href="/#">A-</a>
-                        <a href="/#">A</a>
-                    </div> */}
+                        <button onClick={increaseFontSize} className="contrast-button" id='A+'>
+                            A+
+                        </button>
+                        <button onClick={decreaseFontSize} className="contrast-button" id='A-'>
+                            A-
+                        </button>
+                        <button onClick={resetFontSize} className="contrast-button" id='A'>
+                            A
+                        </button>
+                    </div>
                     <button onClick={updateContrast} className="contrast-button">
                         Contraste
                         <img src={contrastSet ? highContrast : contrast} alt="Contraste"/>
@@ -221,21 +330,12 @@ function FaixaComponent() {
 
                     <Link
                         to={routes.contato}
-                        //href='https://dadoseducacionais.c3sl.ufpr.br/#/contato'
                         onClick={() => visible ? setVisible(!visible) : {}}
                         className={`nav-link ${location.pathname === routes.contato ? 'selected' : ''}`}
                     >
                         Contato
                     </Link>
 
-                    {/* <Link
-                        to={routes.contato}
-                        onClick={() => visible ? setVisible(!visible) : {}}
-                        className={`nav-link ${location.pathname === routes.contato ? 'selected' : ''}`}
-                    >
-                        Contato
-                    </Link> */}
-
                     {/* <button className="auth-button">Entrar</button>
                     <button className="auth-button white">Cadastrar</button> */}
                     {/* the login and signup options were suspended for the first release, 
diff --git a/src/components/Map/MapComponent.js b/src/components/Map/MapComponent.js
index 7ab54b15cff4601ea5b363142b7504276cfcd694..b8570323940bec04cd9f6e1f727c55a3a08e5538 100644
--- a/src/components/Map/MapComponent.js
+++ b/src/components/Map/MapComponent.js
@@ -544,7 +544,7 @@ function MapComponent(props) {
                 }
                 <Map ref={mapRef} bounds={mapBounds} minZoom={7} zoomSnap={0.1}>
                     <TileLayer
-                        attribution="<p>&amp;copy <a href='http://osm.c3sl.ufpr.br/'>OpenStreetMap</a> contributors</p>"
+                        attribution="<p class= 'attribution-text' >&amp;copy <a class= 'attribution-link' href='http://osm.c3sl.ufpr.br/'>OpenStreetMap</a> contributors</p>"
                         url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
                     />
 
diff --git a/src/components/Pages/HomePageComponent.js b/src/components/Pages/HomePageComponent.js
index cea7325d7fde726ebfed78e428f46c9250ddb543..29d0bfed292765ac9be184d910d16f03518b1d15 100644
--- a/src/components/Pages/HomePageComponent.js
+++ b/src/components/Pages/HomePageComponent.js
@@ -110,7 +110,7 @@ function HomePageComponent() {
                             <img src={contrastSet ? highIconFormation : iconFormation} className="icon" alt="Formação"/>
                         </i>
                         <div className="content-container">
-                            <h2 className="box-text">Qual é a formação dos(as) docentes na educação básica?</h2>
+                            <h1 className="box-text">Qual é a formação dos(as) docentes na educação básica?</h1>
                             <Button className="button-box pink" onClick={() => openTutorial(1)} >
                                 Consultar
                             </Button>
diff --git a/src/components/Pages/TeamComponent.js b/src/components/Pages/TeamComponent.js
index 121cdf4e54504e0aaec354f98e74ae09682817d5..7ace0888e504413648abc53a24184eaaa30b3f79 100644
--- a/src/components/Pages/TeamComponent.js
+++ b/src/components/Pages/TeamComponent.js
@@ -134,6 +134,10 @@ function TeamComponent(){
                             <h2>Henrique Varella Ehrenfried</h2>
                             <p>Laboratório de Dados Educacionais / C3SL</p>
                         </Grid>
+                        <Grid className="developers-item">
+                            <h2>João Pedro Kieras Oliveira</h2>
+                            <p>Laboratório de Dados Educacionais / C3SL</p>
+                        </Grid>
                         <Grid className="developers-item">
                             <h2>João Pedro Picolo <br/> (2020)</h2>
                             <p>Laboratório de Dados Educacionais / C3SL</p>
diff --git a/src/components/SideTableComponent.js b/src/components/SideTableComponent.js
index 8ad8a5d2e94ad8321b7395dc4c7489833d63859e..b30897c1428f00760b80d3cb4aa45e0129580dd8 100644
--- a/src/components/SideTableComponent.js
+++ b/src/components/SideTableComponent.js
@@ -24,6 +24,10 @@ import { Grid } from '@material-ui/core';
 
 import attention from '../img/attention.svg';
 import reload from '../img/reload.svg';
+import sortingArrow from '../img/sorting-arrow.svg';
+import downWhiteArrow from '../img/down-arrow-white.svg';
+
+import { useSortBy, useTable } from 'react-table'
 
 import Consult from './Consult';
 import '../css/SideTableComponent.scss';
@@ -43,6 +47,7 @@ function SideTableComponent(props) {
     const [formattedData, setformattedData] = useState([]);
     const [selectedFilters, setSelectedFilters] = useState([]);
     const [downloadFile, setdownloadFile] = useState([]);
+    const [formattedTableData, setFormattedTableData] = useState([]);
 
     useEffect(() => {
         const chartYearFilters = {
@@ -119,8 +124,7 @@ function SideTableComponent(props) {
                 percentage: course.percentage
             }
         })
-
-        return newData
+        return newData;
     }
 
     useEffect(() => {
@@ -132,14 +136,61 @@ function SideTableComponent(props) {
 
             const lastLine = {
                 name: 'Total',
-                total: formattedData.reduce((total, item) => total + item.total, 0).toLocaleString('pt-BR'),
-                percentage: formattedData.reduce((total, item) => total + item.percentage, 0).toFixed(0),
+                total: formattedData.reduce((total, item) => total + item.total, 0)?.toLocaleString('pt-BR'),
+                percentage: formattedData.reduce((total, item) => total + item.percentage, 0)?.toLocaleString('pt-BR'),
             }
 
             setdownloadFile(CSV([...formattedData, lastLine]))
         }
+    }, [formattedData]) 
+
+    const localeOptions =  { maximumFractionDigits: 2 }
+
+    useEffect(() => {
+        setFormattedTableData(formattedData.map((course) => {
+            return {
+                name: course.name,
+                total: course.total?.toLocaleString('pt-BR'),
+                percentage: course.percentage?.toLocaleString('pt-BR', localeOptions)
+            }
+        }))
+    // eslint-disable-next-line react-hooks/exhaustive-deps
     }, [formattedData])
 
+    const data = React.useMemo(() => 
+        formattedTableData,
+        [formattedTableData]
+    )
+
+    const columns = React.useMemo(
+        () => [
+            {
+                Header: 'Curso',
+                accessor: 'name',
+                Footer: 'Total',
+            },
+            {
+                Header: 'Qtde',
+                accessor: 'total',
+                Footer: formattedData.reduce((total, item) => total + item.total, 0)?.toLocaleString('pt-BR'),
+            },
+            {
+                Header: '%',
+                accessor: 'percentage',
+                Footer: formattedData.reduce((total, item) => total + item.percentage, 0)?.toLocaleString('pt-BR'),
+            },
+        ],
+        [formattedData]
+    )
+    const {
+        getTableProps,
+        getTableBodyProps,
+        headerGroups,
+        footerGroups,
+        rows,
+        prepareRow,
+    } = useTable({ columns,data }, useSortBy)
+
     return (
         <>
             { loadingData ?
@@ -151,73 +202,117 @@ function SideTableComponent(props) {
                     />
                 </Grid> 
             :
-                <div className={`side-table-container ${contrastSet ? "high-contrast-side-table" : ""}`}>
-                    <div className="table-content-container">
-                        <h3>{chartInfo.title}</h3>
-                        <h4>{`${location} - ${chartInfo.years[0]}`}</h4>
-                        {
-                            selectedFilters === '' ? null :
-                            <h4>{selectedFilters}</h4>
-                        }
-                        {
-                            chartData.length === 0 ?
-                            <div className="no-data-container">
-                                <img className="attention-icon" alt="Atenção" src={attention} />
-                                <h2>
-                                    Ops, parece que não possuímos dados desta
-                                    localidade ou filtros específicos
-                                </h2>
-                                <h3>
-                                    <u>Tente mudar a localidade ou filtros escolhidos</u> <br /> ou
-                                </h3>
-                                <button className="reload-page" onClick={() => window.location.reload()}>
-                                    <img className="reload-icon" src={reload} alt="Reload" />
-                                    Recarregar página
-                                </button>
-                            </div>
-                            :
-                            <>
-                                <a
-                                    href={`data:text/csv;charset=utf-8,` + encodeURI(downloadFile)}
-                                    download="tabela.csv"
-                                    className="download-button"
-                                >
-                                    Baixar
-                                </a>
-                                <div className="table-container">
-                                    <div className="table-overflow-container">
-                                        <table cellSpacing="0" cellPadding="0">
-                                            <thead>
-                                                <tr>
-                                                    <th>Curso</th>
-                                                    <th>Qtde</th>
-                                                    <th>%</th>
-                                                </tr>
-                                            </thead>
-                                            <tbody>
-                                                { formattedData.map((course, index) => {
-                                                    return (
-                                                        <tr key={index} className={`${index % 2 !== 0 ? 'tr-alt' : ''}`}>
-                                                            <td>{course.name}</td>
-                                                            <td>{course.total.toLocaleString('pt-BR')}</td>
-                                                            <td>{course.percentage}</td>
+                  <div className={`side-table-container ${contrastSet ? "high-contrast-side-table" : ""}`}>
+                        <div className="table-content-container">
+                            <h3>{chartInfo.title}</h3>
+                            <h4>{`${location} - ${chartInfo.years[0]}`}</h4>
+                            {
+                                selectedFilters !== '' &&
+                                <h4>{ selectedFilters }</h4>
+                            }
+                            {
+                                chartData.length === 0 ?
+                                <div className="no-data-container">
+                                    <img className="attention-icon" alt="Atenção" src={attention} />
+                                    <h2>
+                                        Ops, parece que não possuímos dados desta
+                                        localidade ou filtros específicos
+                                    </h2>
+                                    <h3>
+                                        <u>Tente mudar a localidade ou filtros escolhidos</u> <br /> ou
+                                    </h3>
+                                    <button className="reload-page" onClick={() => window.location.reload()}>
+                                        <img className="reload-icon" src={reload} alt="Reload" />
+                                        Recarregar página
+                                    </button>
+                                </div>
+                                :
+                                <>
+                                    <a
+                                        href={`data:text/csv;charset=utf-8,` + encodeURI(downloadFile)}
+                                        download="tabela.csv"
+                                        className="download-button"
+                                    >
+                                        Baixar
+                                    </a>
+                                    <div className="table-container">
+                                        <div className="table-overflow-container">
+                                            <table {...getTableProps()} cellSpacing="0" cellPadding="0">
+                                                <thead>
+                                                {
+                                                    headerGroups.map(headerGroup => (
+                                                        <tr {...headerGroup.getHeaderGroupProps()}>
+                                                        {
+                                                            headerGroup.headers.map(column => (
+                                                                <th {...column.getHeaderProps(column.getSortByToggleProps({ title: 'Ordernar' }))}>
+                                                                    <div className='header-container'>
+                                                                        {column.render('Header')}
+                                                                    </div>
+                                                                    <span>
+                                                                        { column.isSorted ? column.isSortedDesc
+                                                                            ?
+                                                                            <img
+                                                                                className='sided-arrow'
+                                                                                src={downWhiteArrow}
+                                                                                alt="Flecha para baixo"
+                                                                            />
+                                                                            :
+                                                                            <img
+                                                                                className='sided-arrow up'
+                                                                                src={downWhiteArrow}
+                                                                                alt="Flecha para cima"
+                                                                            />
+                                                                        : <img
+                                                                            src={sortingArrow}
+                                                                            alt="Flecha para baixo e para cima"
+                                                                          />}
+                                                                    </span>
+                                                                </th>
+                                                            ))
+                                                        }
                                                         </tr>
-                                                    )
-                                                })}
+                                                    ))
+                                                }
+                                                </thead>
+                                                <tbody {...getTableBodyProps()}>
                                                 {
-                                                    <tr className='tr-total'>
-                                                        <td>Total</td>
-                                                        <td>{formattedData.reduce((total, item) => total + item.total, 0).toLocaleString('pt-BR')}</td>
-                                                        <td>{formattedData.reduce((total, item) => total + item.percentage, 0).toFixed(0)}</td>
-                                                    </tr>
+                                                    rows.map((row, index) => {
+                                                        prepareRow(row)
+                                                        return (
+                                                        <tr {...row.getRowProps()} className={`${index % 2 !== 0 ? 'tr-alt' : ''}`}>
+                                                        {
+                                                            row.cells.map(cell => {
+                                                                return (
+                                                                    <td {...cell.getCellProps()}>
+                                                                    { cell.render('Cell') }
+                                                                    </td>
+                                                                )
+                                                            })
+                                                        }
+                                                        </tr>
+                                                        )
+                                                    })
                                                 }
-                                            </tbody>
-                                        </table>
+                                                </tbody>
+                                                <tfoot>
+                                                    {
+                                                        footerGroups.map(group => (
+                                                            <tr {...group.getFooterGroupProps()}>
+                                                            {
+                                                                group.headers.map(column => (
+                                                                    <td {...column.getFooterProps()}>{column.render('Footer')}</td>
+                                                                ))
+                                                            }
+                                                            </tr>
+                                                        ))
+                                                    }
+                                                </tfoot>
+                                            </table>
+                                        </div>
                                     </div>
-                                </div>
-                            </>
-                        }
-                        <p>{chartInfo.notes}</p>
+                                </>
+                            }
+                            <p className="box-note">{chartInfo.notes}</p>
                     </div>
                 </div>
             }
diff --git a/src/components/TutorialModalComponent.js b/src/components/TutorialModalComponent.js
index 8e78b2109cb613c390816a0b84b12105c2fc88df..3b1358b49eec470b914d3e142ace954c747ea034 100644
--- a/src/components/TutorialModalComponent.js
+++ b/src/components/TutorialModalComponent.js
@@ -57,7 +57,7 @@ function TutorialModalComponent(props) {
     return (
         <div>
             <Modal // slide 1
-                className={`modal-tutorial ${contrastSet ? "high-contrast" : ""}`}
+                className={`modal-tutorial ${contrastSet ? "high-contrast-tutorial" : ""}`}
                 overlayClassName="modal-overlay"
                 isOpen={slides[0] && props.open0}
                 onRequestClose={() => closeModal(props.openFunction)}
@@ -69,17 +69,13 @@ function TutorialModalComponent(props) {
                 </div>
 
                 <div className="title-tutorial">Bem-vindo(a) ao MAPFOR</div>
-                <div className="img-container">
-                    <img className="img" src={aboutImg} alt="about"/>
-                </div>
+                <img className="img" src={aboutImg} alt="about"/>
 
                 <div className="subtitle-tutorial">
                     O MAPFOR é uma plataforma online com painel de indicadores e mapas com 
-                    informações sobre a formação dos professores da educação básica do Paraná
-                </div>
-                <div className="subtitle-tutorial">
+                    informações sobre a formação dos professores da educação básica do Paraná. <br />
                     Veja a seguir uma pequena apresentação para iniciar sua consulta. São
-                    apenas três passos e leva só um minutinho
+                    apenas três passos e leva só um minutinho.
                 </div>
 
                 <div className="button-container">
@@ -94,7 +90,7 @@ function TutorialModalComponent(props) {
             </Modal>
 
             <Modal // slide 2
-                className={`modal-tutorial ${contrastSet ? "high-contrast" : ""}`}
+                className={`modal-tutorial ${contrastSet ? "high-contrast-tutorial" : ""}`}
                 overlayClassName="modal-overlay"
                 isOpen={slides[1] && props.open0}
                 onRequestClose={() => closeModal(props.openFunction)}
@@ -109,17 +105,13 @@ function TutorialModalComponent(props) {
                 A plataforma permite que você escolha a localidade que deseja consultar - 
                 pode escolher entre dados apenas do estado ou expandir para uma mesorregião, 
                 microrregião, para um município ou até uma escola ou instituição de ensino 
-                superior (ies)
-            </div>
-            <div className="subtitle-tutorial">
+                superior (ies). <br />
                 Para selecionar a localidade escolha diretamente pelo mapa (1) ou clique nas 
                 caixas de seleção acima do mapa (2). Você também pode refinar sua consulta, 
                 escolhendo entre diversos filtros específicos do indicador consultado (3).
             </div>
 
-            <div className="img-container">
-                <img className="img" src={tutorial1} alt="tutorial"/>
-            </div>
+            <img className="img" src={tutorial1} alt="tutorial"/>
 
             <div className="button-container">
                 <button onClick={menosSlide} className="button-cancel">
@@ -133,7 +125,7 @@ function TutorialModalComponent(props) {
             </Modal>
 
             <Modal // slide 3
-                className={`modal-tutorial ${contrastSet ? "high-contrast" : ""}`}
+                className={`modal-tutorial ${contrastSet ? "high-contrast-tutorial" : ""}`}
                 overlayClassName="modal-overlay"
                 isOpen={slides[2] && props.open0}
                 onRequestClose={() => closeModal(props.openFunction)}
@@ -147,12 +139,10 @@ function TutorialModalComponent(props) {
                 <div className="subtitle-tutorial">
                     Abaixo do mapa você acessa os gráficos e tabelas (1) com os resultados de 
                     sua consulta (2). Em cada um destes a plataforma apresenta um botão de 
-                    download dos dados, com opções de formato .cvs, .png ou .svg (3)
+                    download dos dados, com opções de formato .cvs, .png ou .svg (3).
                 </div>
 
-                <div className="img-container">
-                    <img className="img" src={tutorial2} alt="tutorial"/>
-                </div>
+                <img className="img" src={tutorial2} alt="tutorial"/>
 
                 <div className="button-container">
                     <button onClick={menosSlide} className="button-cancel">
@@ -166,7 +156,7 @@ function TutorialModalComponent(props) {
             </Modal>
 
             <Modal // slide 4
-                className={`modal-tutorial ${contrastSet ? "high-contrast" : ""}`}
+                className={`modal-tutorial ${contrastSet ? "high-contrast-tutorial" : ""}`}
                 overlayClassName='modal-overlay'
                 isOpen={slides[3] && props.open0}
                 onRequestClose={() => closeModal(props.openFunction)}
@@ -182,9 +172,7 @@ function TutorialModalComponent(props) {
                     (3). As possibilidades e os resultados são diversos, aproveite!
                 </div>
 
-                <div className="img-container">
-                    <img className="img" src={tutorial3} alt="tutorial"/>
-                </div>
+                <img className="img" src={tutorial3} alt="tutorial"/>
 
                 <div className='button-container'>
                     <button onClick={menosSlide} className="button-cancel">
@@ -200,5 +188,4 @@ function TutorialModalComponent(props) {
     )
 }
 
-
 export default TutorialModalComponent;
\ No newline at end of file
diff --git a/src/css/BottomTableComponent.scss b/src/css/BottomTableComponent.scss
index 097f6d0ff70bf930766127364ff834541e26a170..0a7c1c536bcd9e1825e90c6c9be65908774d30dd 100644
--- a/src/css/BottomTableComponent.scss
+++ b/src/css/BottomTableComponent.scss
@@ -74,6 +74,8 @@
             border-radius: 10px;
             overflow: hidden;
             margin-top: 20px;
+            text-align: center;
+
 
             .table-overflow-container {
                 max-height: 440px;
@@ -87,13 +89,31 @@
                         position: sticky;
                         top: 0;
 
-                        th {
-                            color: #fff;
-                            padding: 10px;
-                            font-size: 14px;
-                            font-weight: 600;
+                        tr {
+
+                            th {
+                                color: #fff;
+                                padding: 10px;
+                                font-size: 14px;
+                                font-weight: 600;
+                                
+                                span {
+                                    img {
+                                        height: 32px;
+                                    }
+            
+                                    .sided-arrow {
+                                        width: 15px;
+                                    }
+                                    .up {
+                                        transform: rotate(180deg);
+                                    }
+                                }
+    
+                            }
                         }
 
+
                         th + th {
                             border-left: 1px solid #fff;
                         }
@@ -106,21 +126,6 @@
                             background: #f2f3f8;
                         }
 
-                        .tr-total {
-                            background: #7a60a6;
-                            opacity: 0.8;
-                            color: #fff;
-                            font-weight: bold;
-
-                            td + td {
-                                border-left: 1px solid #fff;
-                            }
-                        }
-
-                        td:first-child {
-                            text-align: left;
-                        }
-
                         td {
                             text-align: center;
                             padding: 10px;
@@ -131,6 +136,25 @@
                             border-left: 1px solid #7a60a6;
                         }
                     }
+
+                    tfoot {
+                        background: #7a60a6;
+                        opacity: 0.8;
+                        color: #fff;
+                        font-weight: bold;
+        
+                        tr {
+                            color: #fff;
+                            padding: 10px;
+                            font-size: 14px;
+                            font-weight: 600;
+                        }
+        
+                        td + td {
+                            padding: 10px;
+                            border-left: 1px solid #fff;
+                        }
+                    }
                 }
             }
         }
@@ -248,4 +272,10 @@
         padding-right: 20px;
         width: 79vw;
     }
+}
+
+@media (max-width: 400px) {
+    .bottom-table-container {
+        width: auto;
+    }
 }
\ No newline at end of file
diff --git a/src/css/Charts/BarChartComponent.scss b/src/css/Charts/BarChartComponent.scss
index b41f9f4d392e25388a7704d347cc5cc0ebe750f8..5551ef6cb9525d739ef9935f1a2c21451057e058 100644
--- a/src/css/Charts/BarChartComponent.scss
+++ b/src/css/Charts/BarChartComponent.scss
@@ -101,11 +101,20 @@
         justify-content: center;
         align-items: center;
 
+        span {
+            font-size: 20px;   
+        }
+
+        div {
+            font-size: 20px;   
+        }
+
         .apexcharts-legend-text {
             width: 250px;
             text-align: left;
             margin-left: 10px;
         }
+
     }
 }
 
diff --git a/src/css/ContatoComponent.scss b/src/css/ContatoComponent.scss
index edaa9bc40681a257be4bea2d510e986f925d686a..d67e2cc008ae7b161224e2e554c6266d08041d10 100644
--- a/src/css/ContatoComponent.scss
+++ b/src/css/ContatoComponent.scss
@@ -27,8 +27,13 @@
         }
 
         span {
+            font-size: 12px;
             color: #808080;
         }
+
+        a {
+            font-size: 12px;
+        }
     }
 
     .contact-fields {
@@ -108,8 +113,10 @@
             }
 
             .submit-button {
-                width: 110px;
+                // width: 110px;
                 padding: 12px;
+                padding-right: 27px;
+                padding-left: 27px;
                 margin-right: 20px;
                 background: #29bdef;
                 color: #fff;
diff --git a/src/css/Dropdown/ExpansionFiltersComponent.scss b/src/css/Dropdown/ExpansionFiltersComponent.scss
index 85cd5c45b5ad344e7b837e67b81f35f485b3645f..c7957315e2c27d120f23fbae302178e5f9c83a85 100644
--- a/src/css/Dropdown/ExpansionFiltersComponent.scss
+++ b/src/css/Dropdown/ExpansionFiltersComponent.scss
@@ -1,61 +1,78 @@
 .expansion-panel-open {
-    font-family: 'Montserrat';
-
-    .container-checkbox .item-container {
-        border-bottom: 1px solid #bfbfbf;
-
-        .expansion-panel-closed {
-            display: flex;
-            flex-direction: row;
-            justify-content: space-between;
-            align-items: center;
-            margin: 0 30px;
-            padding: 10px 0;
-            cursor: pointer;
-
-            p {
-                margin: 0;
-                color: #808080;
-                font-size: 14px;
-            }
-
-            img {
-                height: 20px;
-                padding: 10px;
-            }
-
-            .arrow-open {
-                transform: rotate(270deg);
-            }
-
-            .arrow-closed {
-                transform: rotate(90deg);
-            }
-        }
+  font-family: "Montserrat";
+
+  .container-checkbox .item-container {
+    border-bottom: 1px solid #bfbfbf;
+    max-width: 500px;
+
+    .expansion-panel-closed {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+
+      align-items: center;
+      margin: 0 0;
+      padding: 10px 30px;
+      cursor: pointer;
+      width: 85%;
 
-        .dropdown-filters {
-            display: flex;
-            flex-direction: column;
-            justify-content: center;
-            margin-bottom: 20px;
-
-            .sub-item-form {
-                margin-left: 30px;
-
-                .sub-item-label {
-                    margin: 0;
-                    font-family: 'Montserrat';
-                    font-size: 16px;
-                    color: #404040;
-                }
-            }
+      p {
+        margin: 0;
+        color: #808080;
+        font-size: 14px;
+      }
+
+      img {
+        height: 20px;
+        padding: 10px;
+      }
+
+      .arrow-open {
+        transform: rotate(270deg);
+      }
+
+      .arrow-closed {
+        transform: rotate(90deg);
+      }
+    }
+
+    .dropdown-filters {
+      display: flex;
+      flex-direction: column;
+      justify-content: center;
+      margin-bottom: 20px;
+      row-gap: 10px;
+
+      .sub-item-form {
+        margin-left: 30px;
+
+        .sub-item-label {
+          line-height: 24px;
+          margin: 10px;
+          font-family: "Montserrat";
+          font-size: 16px;
+          color: #404040;
         }
+      }
     }
+  }
 }
 
 .high-contrast-expansion-panel .container-checkbox .item-container {
-    .expansion-panel-closed p,
-    .dropdown-filters .sub-item-form .sub-item-label {
-        color: #fff;
-    }
+  .expansion-panel-closed p,
+  .dropdown-filters .sub-item-form .sub-item-label {
+    color: #fff;
+  }
 }
+
+@media (max-width: 1600px) {
+  .expansion-panel-open .container-checkbox {
+    max-width: 300px;
+  }
+}
+
+@media (max-width: 1200px) {
+  .expansion-panel-open .container-checkbox {
+    max-width: inherit;
+  }
+}
\ No newline at end of file
diff --git a/src/css/Dropdown/FiltersGroupComponent.scss b/src/css/Dropdown/FiltersGroupComponent.scss
index 67d543f338026af6ace998b8f9954055a13e8a71..557e588f63ea64a4022e17e0947bc5d3ae43da07 100644
--- a/src/css/Dropdown/FiltersGroupComponent.scss
+++ b/src/css/Dropdown/FiltersGroupComponent.scss
@@ -1,36 +1,51 @@
 .filters-container {
-    background: #fff;
-    padding: 30px 0;
-    border-radius: 10px;
-    font-family: 'Montserrat';
-    box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
-
-    h3 {
-        margin-top: 0;
-        text-align: center;
-        font-weight: 600;
-        color: #7a60a6;
-    }
+  background: #fff;
+  padding: 30px 0;
+  border-radius: 10px;
+  font-family: "Montserrat";
+  box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
+  box-sizing: border-box;
+
+  h3 {
+    margin: 0;
+    padding: 10px;
+    text-align: center;
+    font-weight: 600;
+    color: #7a60a6;
+  }
 }
 
 .high-contrast-filters {
-    background: #000;
-    box-shadow: 0 0 0 2px #fff;
+  background: #000;
+  box-shadow: 0 0 0 2px #fff;
 
-    h3 {
-        color: #fff;
-    }
+  h3 {
+    color: #fff;
+  }
 }
 
 @media (max-width: 1200px) {
-    .filters-container {
-        min-width: 340px;
-    }
+  .filters-container {
+    min-width: 340px;
+  }
+}
+
+@media (max-width: 780px) {
+  .filters-container {
+    min-width: 370px;
+  }
+}
+
+@media (max-width: 730px) {
+  .filters-container {
+    margin-left: 10px;
+  }
 }
 
 @media (max-width: 680px) {
-    .filters-container {
-        max-width: 500px;
-        margin: 0 auto;
-    }
-}
\ No newline at end of file
+  .filters-container {
+    min-width: 0 !important;
+
+    margin: 0 auto;
+  }
+}
diff --git a/src/css/Dropdown/FixedFiltersComponent.scss b/src/css/Dropdown/FixedFiltersComponent.scss
index 1bd075260b56b896849ebe8b387f741f63ffc1ec..ce3790ec06911be36f9d3bec0da341363f33e241 100644
--- a/src/css/Dropdown/FixedFiltersComponent.scss
+++ b/src/css/Dropdown/FixedFiltersComponent.scss
@@ -1,46 +1,46 @@
 .fixed-filters-container {
-    display: grid;
-    grid-template-columns: repeat(5, 1fr);
-    grid-column-gap: 10px;
+  display: grid;
+  grid-template-columns: repeat(5, 1fr);
+  grid-gap: 15px;
 }
 
 .high-contrast-fixed-filters {
-    background: #000;
+  background: #000;
 }
 
 @media (max-width: 1790px) {
-    .fixed-filters-container {
-        grid-template-columns: repeat(4, 1fr);
-        grid-row-gap: 10px;
-    }
+  .fixed-filters-container {
+    grid-template-columns: repeat(4, 1fr);
+    grid-row-gap: 10px;
+  }
 }
 
 @media (max-width: 1600px) {
-    .fixed-filters-container {
-        grid-template-columns: repeat(3, 1fr);
-    }
+  .fixed-filters-container {
+    grid-template-columns: repeat(3, 1fr);
+  }
 }
 
 @media (max-width: 1400px) {
-    .fixed-filters-container {
-        grid-template-columns: repeat(2, 1fr);
-    }
+  .fixed-filters-container {
+    grid-template-columns: repeat(2, 1fr);
+  }
 }
 
 @media (max-width: 1200px) {
-    .fixed-filters-container {
-        grid-template-columns: repeat(3, 1fr);
-    }
+  .fixed-filters-container {
+    grid-template-columns: repeat(3, 1fr);
+  }
 }
 
 @media (max-width: 900px) {
-    .fixed-filters-container {
-        grid-template-columns: repeat(2, 1fr);
-    }
+  .fixed-filters-container {
+    grid-template-columns: repeat(2, 1fr);
+  }
 }
 
 @media (max-width: 630px) {
-    .fixed-filters-container {
-        grid-template-columns: 1fr;
-    }
+  .fixed-filters-container {
+    grid-template-columns: 1fr;
+  }
 }
diff --git a/src/css/Dropdown/IndicatorsComponent.scss b/src/css/Dropdown/IndicatorsComponent.scss
index a20dfd1d9d6dc144b33efe74f63bc73ae40d3352..ce1e8978c2469bcedbf5cb14af14b443066992e6 100644
--- a/src/css/Dropdown/IndicatorsComponent.scss
+++ b/src/css/Dropdown/IndicatorsComponent.scss
@@ -1,19 +1,44 @@
 .indicators-container {
-    font-family: 'Nunito';
-
-    .group-title {
-        font-size: 32px;
-        line-height: 38px;
-        font-weight: 600;
-        color: #3c3c3b;
-        margin-top: 10px;
+  font-family: "Nunito";
+
+  .group-title {
+    font-size: 32px;
+    line-height: 38px;
+    font-weight: 600;
+    color: #3c3c3b;
+    margin-top: 10px;
+    padding-right: 10px;
+  }
+
+  .title {
+    font-size: 24px;
+    line-height: 30px;
+    color: #7a60a6;
+    margin-bottom: 10px;
+  }
+
+  .technical-sheet {
+    display: flex;
+    width: max-content;
+    padding: 10px 20px;
+    margin-bottom: 40px;
+    background-color: #7a60a6;
+    color: #fff;
+    text-decoration: none;
+    font-family: "Nunito";
+    font-size: 18px;
+    font-weight: bold;
+    border: 0;
+    border-radius: 10px;
+    transition: filter 0.2s;
+
+    &:hover {
+      filter: brightness(0.9);
     }
 
-    .title {
-        font-size: 24px;
-        line-height: 30px;
-        color: #7a60a6;
-        margin-bottom: 10px;
+    .sheet-icon {
+      margin-right: 5px;
+      padding: 0;
     }
 
     .technical-sheet {
@@ -41,88 +66,64 @@
         }
     }
 
-    .arrows-container {
-        width: max-content;
-        margin-top: 40px;
-        margin-bottom: 40px;
-        border-radius: 10px;
-        box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
-        overflow: hidden;
-
-        button {
-            border: 0;
-            cursor: pointer;
-            background: #fff;
-            padding: 8px 20px 5px 20px;
-            transition: filter 0.2s;
-
-            &:hover {
-                filter: brightness(0.9);
-            }
-
-            img {
-                height: 24px;
-            }
-        }
-
-        .button-left {
-            border-radius: 10px 0 0 10px;
-            border-right: 2px solid #bfbfbf;
+    .button-left {
+      border-radius: 10px 0 0 10px;
+      border-right: 2px solid #bfbfbf;
 
-            img {
-                transform: rotate(180deg);
-            }
-        }
+      img {
+        transform: rotate(180deg);
+      }
+    }
 
-        .button-right {
-            border-radius: 0 10px 10px 0;
-        }
+    .button-right {
+      border-radius: 0 10px 10px 0;
     }
+  }
 }
 
 .high-contrast-indicators {
-    .group-title,
-    .title {
-        color: #fff;
+  .group-title,
+  .title {
+    color: #fff;
+  }
+
+  .technical-sheet {
+    background-color: #000;
+    border: 2px solid #ffff00;
+    color: #ffff00;
+    transition: background-color 0.2s;
+
+    &:hover {
+      background-color: #ffff00;
+      color: #000;
+
+      .sheet-icon {
+        filter: brightness(0);
+      }
     }
+  }
 
-    .technical-sheet {
-        background-color: #000;
-        border: 2px solid #ffff00;
-        color: #ffff00;
-        transition: background-color 0.2s;
+  .arrows-container {
+    button {
+      background: #000;
+      box-shadow: none;
+      border: 2px solid #ffff00;
+      transition: background-color 0.2s;
 
-        &:hover {
-            background-color: #ffff00;
-            color: #000;
+      &:hover {
+        background-color: #ffff00;
+        transition: filter 0.2s;
 
-            .sheet-icon {
-                filter: brightness(0);
-            }
+        img {
+          filter: brightness(0.1);
         }
+      }
     }
 
-    .arrows-container {
-        button {
-            background: #000;
-            box-shadow: none;
-            border: 2px solid #ffff00;
-            transition: background-color 0.2s;
-
-            &:hover {
-                background-color: #ffff00;
-                transition: filter 0.2s;
-
-                img {
-                    filter: brightness(0.1);
-                }
-            }
-        }
-
-        .button-left {
-            border-right: 2px solid #ffff00;
-        }
+    .button-left {
+      border-right: 2px solid #ffff00;
     }
+  }
 }
 
 @media (max-width: 1200px) {
@@ -132,10 +133,23 @@
     }
 }
 
-@media (max-width: 900px) {
-    .indicators-container {
-        max-width: 400px;
-    }
+@media (max-width: 940px) {
+  .indicators-container {
+    max-width: 400px;
+    margin-right: 10px;
+  }
+}
+
+@media (max-width: 830px) {
+  .indicators-container {
+    max-width: 350px;
+  }
+}
+
+@media (max-width: 780px) {
+  .indicators-container {
+    max-width: 300px;
+  }
 }
 
 @media (max-width: 680px) {
@@ -143,4 +157,4 @@
         max-width: 100%;
         margin-right: 0;
     }
-}
\ No newline at end of file
+}
diff --git a/src/css/ExpandableGroupComponent.scss b/src/css/ExpandableGroupComponent.scss
index c95449098a106a871a410b7fdd0effe09a1a0a09..3d17e5c31cf4dc7e05c99a46d2f3492f6d6b14d7 100644
--- a/src/css/ExpandableGroupComponent.scss
+++ b/src/css/ExpandableGroupComponent.scss
@@ -80,6 +80,12 @@
             padding-left: 20px;
         }
 
+        .box-note:hover span{
+            display: block;
+            opacity: 1;
+            z-index: 99;
+        }
+
         &:first-child {
             margin-bottom: 30px;
         }
diff --git a/src/css/FaixaComponent.scss b/src/css/FaixaComponent.scss
index 001e89c11532fc23b51445b6d6245be67cfa2f65..3e4cdc280f0ccaec83a29479f450bc90ce0fcf93 100644
--- a/src/css/FaixaComponent.scss
+++ b/src/css/FaixaComponent.scss
@@ -41,10 +41,12 @@
                 align-items: center;
 
                 p {
+                    font-size: 10px;
                     margin: 0 8px 0 0;
                 }
 
                 a {
+                    font-size: 10px;
                     text-decoration: none;
                     margin-right: 8px;
                     color: #bfbfbf;
@@ -76,13 +78,39 @@
                 }
             }
 
-            .links-container a {
-                text-decoration: none;
+            .font-size-button {
+                display: flex;
+                align-items: center;
+                margin: 0;
+                padding: 0;
+                border: 0;
+                background: transparent;
+                cursor: pointer;
+                font-family: inherit;
+                font-size: 10px;
+                font-weight: 700;
                 color: #bfbfbf;
                 margin-right: 20px;
 
-                &:last-child {
-                    margin-right: 0;
+                img {
+                    line-height: 10px;
+                    margin-left: 4px;
+                    height: 10px;
+                }
+            }
+
+            .links-container {
+                display: flex;
+                flex-direction: row;
+                align-items: center;
+                a {
+                    text-decoration: none;
+                    color: #bfbfbf;
+                    margin-right: 20px;
+                    font-size: 10px;
+                    &:last-child {
+                        margin-right: 0;
+                    }
                 }
             }
         }
@@ -131,19 +159,23 @@
                     height: 100%;
                     background: #fff;
                     cursor: pointer;
-                    font-size: 18px;
                     font-weight: 700;
                     font-family: inherit;
                     color: #7a60a6;
                     transition: filter 0.2s;
 
+                    span {
+                        font-size: 18px;
+                    }
+
                     &:hover {
                         filter: brightness(0.9);
                     }
 
                     .arrow {
-                        margin-left: 10px;
-                        height: 10px;
+                        margin-left: 15px;
+                        position: relative;
+                        padding-bottom: 1%;
                     }
 
                     .up {
@@ -309,7 +341,7 @@
     }
 }
 
-@media (max-width: 1100px) {
+@media (max-width: 1150px) {
     .faixa-container .content-container {
         padding: 0 20px;
 
@@ -347,10 +379,35 @@
     }
 }
 
-@media (max-width: 450px) {
+@media (max-width: 670px) {
     .faixa-container {
-        .access-container .access-tools .access-tools-items {
-            display: none;
+        .access-container {
+            justify-content: center;
+
+            .access-tools {
+                flex-direction: column;
+
+
+                .access-tools-items {
+                    margin-bottom: 5px;
+
+                    p {
+                        margin: 0;
+                    }
+
+                    .contrast-button {
+                        margin: 0 0 0 10px;
+                    }
+                }
+
+                .contrast-button {
+                    margin: 0;
+                }
+
+                .links-container {
+                    margin-top: 5px;
+                }
+            }
         }
 
         .content-container .opened-menu {
diff --git a/src/css/FooterComponent.scss b/src/css/FooterComponent.scss
index d5db94b3621dbf1ffd625f91cd84606ecb04c65f..7aa4a51daeb704fc487f2d050b9b2097a4c038df 100644
--- a/src/css/FooterComponent.scss
+++ b/src/css/FooterComponent.scss
@@ -7,9 +7,9 @@
     .line-gradient {
         position: absolute;
         width: 100%;
-        height: 0.5%;
+        height: 0.6%;
         background: linear-gradient(90deg, #D963A1 0%, #7A60A6 35.42%, #51709F 67.71%, #29BDEF 100%);
-    }
+    }   
 
     .content-container {
         display: flex;
@@ -21,15 +21,16 @@
         font-family: 'Nunito';
 
         .links-container {
-            height: 70px;
             display: grid;
             grid-template-columns: 1fr 1fr;
-            grid-column-gap: 30px;
+            column-gap: 30px;
+            grid-template-rows: 3fr;
+            row-gap: 5px;
 
             .link {
                 text-decoration: none; 
                 color: #404040;
-                line-height: 15px;
+                line-height: 20px;
                 font-size: 11px;
                 font-weight: 600;
 
diff --git a/src/css/HomePageComponent.scss b/src/css/HomePageComponent.scss
index ef5bf0c69d30292584bc5f47e30f9e4d567f5765..d8fd68499bd152d5f2eb8558ca7be140187defc0 100644
--- a/src/css/HomePageComponent.scss
+++ b/src/css/HomePageComponent.scss
@@ -1,164 +1,173 @@
-@import url('https://fonts.googleapis.com/css?family=Nunito&display=swap');
-@import url('https://fonts.googleapis.com/css?family=Montserrat&display=swap');
+@import url("https://fonts.googleapis.com/css?family=Nunito&display=swap");
+@import url("https://fonts.googleapis.com/css?family=Montserrat&display=swap");
 
 .home-container {
-    text-align: center;
-    background-color: #fff;
-    background-image: url("../img/color-background.svg");
-    background-repeat: no-repeat;
-    background-size: cover;
-    min-height: calc(100vh - 200px);
-    cursor: default;
-
-    .title-container {
-        margin: 0 auto;
-
-        .text-home {
-            max-width: 800px;
-            font-family: 'Nunito';
-            font-weight: bold;
-            font-size: 50px;
-            margin-bottom: 100px;
-        }
+  text-align: center;
+  background-color: #fff;
+  background-image: url("../img/color-background.svg");
+  background-repeat: no-repeat;
+  background-size: cover;
+  min-height: calc(100vh - 200px);
+  cursor: default;
+
+  .title-container {
+    margin: 0 auto;
+
+    .text-home {
+      max-width: 800px;
+      font-family: "Nunito";
+      font-weight: bold;
+      font-size: 50px;
+      margin-bottom: 100px;
     }
+  }
+
+  .grid-square {
+    font-family: "Nunito";
+
+    .center-container {
+      margin: 0 auto;
+      display: flex;
+      padding: 0 20px 0 20px;
+
+      * {
+        -webkit-box-sizing: border-box;
+        box-sizing: border-box;
+      }
+
+      .box-square {
+        flex: 1;
+        background-color: #f2f3f8;
+        max-width: 500px;
+        height: auto;
+        border-radius: 20px;
+        margin-bottom: 110px;
+        align-items: center;
+        justify-items: center;
+        margin-top: 50px;
 
-    .grid-square {
-        font-family: 'Nunito';
+        i {
+          background: #f2f3f8;
+          border-radius: 50%;
+          display: inline-block;
+          width: 80px;
+          height: 80px;
+          box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
+          margin-top: -46px;
+
+          .icon {
+            width: 72px;
+            height: 72px;
+            margin-top: 4px;
+          }
+        }
 
-        .center-container {
-            margin: 0 auto;
+        .content-container {
+          display: flex;
+          height: 90%;
+          width: 100%;
+          flex-direction: column;
+          align-items: center;
+          justify-content: center;
+
+          .box-text {
+            position: relative;
+            padding: 0 100px;
+            font-size: 28px;
+            color: #151828;
+          }
+
+          .button-box {
+            position: relative;
+            font-size: 16px;
+            padding: 12px 20px 6px 20px;
+            border-radius: 10px;
+            font-weight: bold;
+            color: #fff;
+            transition: filter 0.2s;
+            margin-bottom: 10%;
 
-            * {
-                -webkit-box-sizing: border-box;
-                box-sizing: border-box;
+            &:hover {
+              filter: brightness(0.9);
             }
+          }
 
-            .box-square {
-                background-color: #f2f3f8;
-                width: 500px;
-                height: 280px;
-                border-radius: 20px;
-                margin-bottom: 70px;
-
-                i {
-                    background: #f2f3f8;
-                    border-radius:50%;
-                    display:inline-block;
-                    width: 80px;
-                    height: 80px;
-                    box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
-                    margin-top: -46px;
-
-                    .icon {
-                        width: 72px;
-                        height: 72px;
-                        margin-top: 4px;
-                    }
-                }
-
-                .content-container {
-                    display: flex;
-                    flex-direction: column;
-                    align-items: center;
-                    justify-content: center;
-                    height: 100%;
-
-                    .box-text {
-                        padding: 0 100px;
-                        font-size: 28px;
-                        color: #151828;
-                    }
-
-                    .button-box {
-                        font-size: 16px;
-                        padding: 10px 20px 6px 20px;
-                        border-radius: 10px;
-                        font-weight: bold;
-                        color: #fff;
-                        margin-bottom: 80px;
-                        transition: filter 0.2s;
-
-                        &:hover {
-                            filter: brightness(0.9);
-                        }
-                    }
-
-                    .pink {
-                        background-color: #d963a1;
-                    }
-
-                    .purple {
-                        background-color: #7a60a6;
-                    }
-
-                    .blue {
-                        background-color: #29bdef;
-                    }
-                }
-            }
+          .pink {
+            background-color: #d963a1;
+          }
+
+          .purple {
+            background-color: #7a60a6;
+          }
+
+          .blue {
+            background-color: #29bdef;
+          }
         }
+      }
     }
+  }
 }
 
 .high-contrast-home {
-    background-image: none;
-    background: #000;
+  background-image: none;
+  background: #000;
 
-    .title-container .text-home {
-        color: #fff;
-    }
+  .title-container .text-home {
+    color: #fff;
+  }
 
-    .grid-square .center-container .box-square {
-        background-color: #000;
-        border: 2px solid #fff;
+  .grid-square .center-container .box-square {
+    background-color: #000;
+    border: 2px solid #fff;
 
-        i {
-            background: #000;
-        }
+    i {
+      background: #000;
+    }
 
-        .content-container {
-            .box-text {
-                color: #fff;
-            }
+    .content-container {
+      .box-text {
+        color: #fff;
+      }
 
-            .button-box {
-                color: #ffff00;
-                background-color: #000;
-                border: 2px solid #ffff00;
-                transition: background-color 0.2s;
+      .button-box {
+        color: #ffff00;
+        background-color: #000;
+        border: 2px solid #ffff00;
+        transition: background-color 0.2s;
 
-                &:hover {
-                    background-color: #ffff00;
-                    color: #000;
-                }
-            }
+        &:hover {
+          background-color: #ffff00;
+          color: #000;
         }
+      }
     }
+  }
 }
 
 @media (max-width: 768px) {
-    .home-container .grid-square .center-container {
-        width: 80%;
+  .home-container .grid-square .center-container {
+    width: 80%;
 
-        .box-square{
-            width: 90%;
-            margin: 40px auto;
+    .box-square {
+      width: 90%;
+      margin: 40px auto;
 
-            .content-container .box-text {
-                font-size: 22px;
-            }
-        }
+      .content-container .box-text {
+        font-size: 22px;
+      }
     }
+  }
 
-    .home-container .title-container .text-home {
-        font-size: 32px;
-        padding: 0 50px;
-        margin-bottom: 50px;
-    }
+  .home-container .title-container .text-home {
+    font-size: 32px;
+    padding: 0 50px;
+    margin-bottom: 50px;
+  }
 }
 
 @media (max-width: 540px) {
-    .home-container .grid-square .center-container {
-        width: 100%;
-    }
-}
\ No newline at end of file
+  .home-container .grid-square .center-container {
+    width: 100%;
+  }
+}
diff --git a/src/css/Map/LegendComponent.scss b/src/css/Map/LegendComponent.scss
index 9382ca536ee313377979d6827b57cfc755d10eb5..926e2022d6676bf34d457efdd44ffd9e5ebcf83c 100644
--- a/src/css/Map/LegendComponent.scss
+++ b/src/css/Map/LegendComponent.scss
@@ -11,6 +11,7 @@
         max-width: 200px;
         padding: 0;
         margin: 0;
+        font-size: 24px;
     }
 }
 
@@ -20,6 +21,7 @@
     padding: 12px;
     max-width: 130px;
     font-family: 'Montserrat';
+    font-size: 12px;
     color: #3c3c3b;
     text-align: center;
     box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
@@ -28,6 +30,7 @@
     .legend-title {
         margin: 0;
         font-weight: 600;
+        font-size: 12px;
     }
 }
 
diff --git a/src/css/Map/MapComponent.scss b/src/css/Map/MapComponent.scss
index d74fd597a7975c5a3d8501efce13f37af51536ee..80bbe9404433a05b4d1f3afec11b055a5163536b 100644
--- a/src/css/Map/MapComponent.scss
+++ b/src/css/Map/MapComponent.scss
@@ -34,10 +34,20 @@
             background: #fff;
 
             p {
+                font-size: 11px;
                 margin: 0;
                 padding: 0;
             }
+
+            a {
+                font-size: 11px;
+            }
         }
+    
+        .leaflet-control-attribution > a {
+            font-size: 11px;
+        }
+
     }
 
     .note-container {
@@ -169,7 +179,7 @@
     .map .note-container {
         height: 95px;
         width: 130px;
-        margin-top: -105px;
+        margin-top: -104px;
     }
 }
 
diff --git a/src/css/ModalComponents.scss b/src/css/ModalComponents.scss
index 4f86ccf9193f32fbc4d7b66dec54a2e5be5216c0..a1a1dc999e09f96fcc2edb9ae6058fa69bbaebba 100644
--- a/src/css/ModalComponents.scss
+++ b/src/css/ModalComponents.scss
@@ -1,180 +1,285 @@
 .modal {
-    background-color: #fff;
-    color: #3c3c3b;
-    border-radius: 20px;
-    text-align: center;
-    font-family: 'Nunito';
-    padding: 20px;
-    width: 80%;
-    cursor: default;
+  background-color: #fff;
+  color: #3c3c3b;
+  border-radius: 20px;
+  text-align: center;
+  font-family: "Nunito";
+  padding: 20px;
+  width: 80%;
+  height: auto;
+  cursor: default;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  z-index: 20;
 
-    .modal-header-container {
-        display: flex;
-        flex-direction: column;
-        align-items: flex-end;
-
-        button {
-            height: 40px;
-            width: 40px;
-            border: 0;
-            background: transparent;
-            transition: filter 0.2s;
-            cursor: pointer;
-
-            &:hover {
-                filter: brightness(0.8);
-            }
-
-            img {
-                vertical-align: middle;
-            }
+  .modal-header-container {
+    display: flex;
+    flex-direction: column;
+    align-items: flex-end;
+    height: 15vh;
+    width: 98%;
+
+    button {
+      height: 40px;
+      width: 40px;
+      border: 0;
+      background: transparent;
+      transition: filter 0.2s;
+      cursor: pointer;
+
+      &:hover {
+        filter: brightness(0.8);
+      }
+
+      img {
+        vertical-align: middle;
+        height: 3vh;
+      }
+    }
+  }
+
+  .icon {
+    height: 10vh !important;
+    margin: 0 auto;
+  }
+
+  .title {
+    font-size: 2.2vh !important;
+    font-weight: 600;
+  }
+
+  .subtitle {
+    font-size: 2vh !important;
+    font-weight: 400;
+    margin-bottom: 30px;
+  }
+
+  .indicators {
+    width: 100%;
+    height: 100%;
+    display: grid;
+    grid-template-columns: 1fr;
+    gap: 10px;
+
+    a {
+      text-decoration: none;
+      color: #3c3c3b;
+      background: #f2f3f8;
+      border-radius: 10px;
+      text-align: left;
+      transition: filter 0.2s;
+
+      .item {
+        padding: 5%;
+
+        h3 {
+          font-size: 2vh;
+          line-height: 120%;
+          font-weight: 600;
+          margin: 0;
+          display: flex;
+          flex-direction: row;
+          align-items: center;
+          justify-content: space-between;
         }
+      }
+
+      &:hover {
+        filter: brightness(0.9);
+      }
     }
+  }
+
+  .arrow {
+    height: 2vh;
+    width: 2vw;
+    margin-left: 40px;
+  }
+}
+
+.modal-overlay {
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  right: 0;
+  left: 0;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: rgba(0, 0, 0, 0.3);
+  z-index: 20;
+}
 
+.high-contrast {
+  background-color: #000;
+
+  &.modal {
+    border: 2px solid #fff;
+
+    .modal-header-container button {
+      filter: brightness(5);
+
+      &:hover {
+        border: 2px solid #fff;
+      }
+    }
+
+    .title,
+    .subtitle {
+      color: #fff;
+    }
+
+    .indicators a {
+      border: 2px solid #fff;
+      color: #ffff00;
+      background: #000;
+      transition: background-color 0.2s;
+
+      &:hover {
+        background-color: #ffff00;
+        color: #000;
+        transition: filter 0.2s;
+
+        img {
+          -webkit-filter: brightness(0.1);
+          filter: brightness(0.1);
+        }
+      }
+    }
+  }
+}
+
+@media (min-width: 460px) {
+  .modal {
     .icon {
-        height: 55px;
-        margin: 0 auto;
+      height: 82px;
     }
 
     .title {
-        font-size: 18px;
-        font-weight: 600;
+      font-size: 27px;
     }
 
     .subtitle {
-        font-size: 16px;
-        font-weight: 400;
-        margin-bottom: 30px;
+      font-size: 18px;
     }
 
     .indicators {
-        width: 100%;
-        display: grid;
-        grid-template-columns: 1fr;
-        gap: 10px;
-
-        a {
-            text-decoration: none;
-            color: #3c3c3b;
-            background: #f2f3f8;
-            border-radius: 10px;
-            text-align: left;
-            transition: filter 0.2s;
-
-            .item {
-                padding: 20px;
-
-                h3 {
-                    font-size: 18px;
-                    line-height: 21px;
-                    font-weight: 600;
-                    margin: 0;
-                    display: flex;
-                    flex-direction: row;
-                    align-items: center;
-                    justify-content: space-between;
-                }
-            }
-
-            &:hover {
-                filter: brightness(0.9);
-            }
-        }
+      grid-template-columns: 1fr 1fr;
     }
+  }
+}
 
-    .arrow {
-        height: 24px;
-        width: 12px;
-        margin-left: 40px;
+@media (min-width: 1080px) {
+  .modal {
+    width: 100vh;
+
+    .icon {
+      margin: 0 auto;
+      height: 110px;
     }
-}
 
-.modal-overlay {
-    position: fixed;
-    top: 0;
-    bottom: 0;
-    right: 0;
-    left: 0;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    background-color: rgba(0, 0, 0, 0.3);
+    .title {
+      font-size: 36px;
+    }
+
+    .subtitle {
+      font-size: 21px;
+    }
+
+    .modal-header-container button img {
+      margin: 0 auto;
+    }
+  }
 }
 
-.high-contrast {
-    background-color: #000;
+@media (orientation: landscape) and (max-width: 1079px) {
+  .modal {
+    padding: 1.5%;
 
-    &.modal {
-        border: 2px solid #fff;
+    .title {
+      font-size: 2vw !important;
+      font-weight: 600;
+      margin: 2% auto 0 auto;
+    }
 
-        .modal-header-container button {
-            filter: brightness(5);
+    .subtitle {
+      font-size: 1.8vw !important;
+      font-weight: 400;
+      margin-bottom: 2%;
+    }
 
-            &:hover {
-                border: 2px solid #fff;
-            }
-        }
+    .modal-header-container {
+      flex-direction: row-reverse;
+      align-items: flex-start;
+      height: auto;
+      align-items: center;
+      justify-content: center;
 
-        .title, .subtitle {
-            color: #fff;
-        }
+      .icon {
+        padding-top: 1%;
+        padding-left: 5%;
+        height: 7vw !important;
+      }
 
-        .indicators a {
-            border: 2px solid #fff;
-            color: #ffff00;
-            background: #000;
-            transition: background-color 0.2s;
-
-            &:hover {
-                background-color: #ffff00;
-                color: #000;
-                transition: filter 0.2s;
-
-                img {
-                    -webkit-filter: brightness(0.1);
-                    filter: brightness(0.1);
-                }
-            }
-        }
+      button img {
+        height: 2vw !important;
+      }
     }
-}
 
+    .indicators {
+      gap: 5px;
 
-@media (min-width: 600px) {
-    .modal {
-        .icon{
-            height: 82px;
+      a {
+        .item {
+          h3 {
+            font-size: 1.5vw;
+          }
         }
+      }
+    }
+  }
+}
 
-        .title {
-            font-size: 27px;
-        }
+@media (min-width: 1921px) {
+  .modal {
+    border-radius: 30px;
+    width: 80%;
+    height: auto;
 
-        .subtitle {
-            font-size: 18px;
-        }
+    .modal-header-container {
+      button {
+        padding: 1% 2% 0 0;
 
-        .indicators {
-            grid-template-columns: 1fr 1fr;
+        img {
+          height: 3vh;
         }
+      }
     }
-}
 
-@media (min-width: 1080px) {
-    .modal {
-        width: 100vh;
-        margin-top: -200px;
+    .indicators {
+      width: 100%;
+      height: 100%;
+      display: grid;
+      grid-template-columns: 1fr;
+      gap: 10px;
 
-        .icon{
-            height: 110px;
-        }
+      a {
+        border-radius: 30px;
+        .item {
+          padding: 2.5%;
 
-        .title {
-            font-size: 36px;
+          h3 {
+            line-height: 2vh;
+          }
         }
+      }
+    }
 
-        .subtitle {
-            font-size: 21px;
-        }
+    .arrow {
+      height: 2.5vh;
+      width: 2.5vw;
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/src/css/PageComponent.scss b/src/css/PageComponent.scss
index da6aecc83e67fccfa76a09a1b624b3061a8e8516..6cd1ea596a2b9385ccc01dd8f23b29f0bd5274f2 100644
--- a/src/css/PageComponent.scss
+++ b/src/css/PageComponent.scss
@@ -20,6 +20,7 @@
         padding: 30px;
         width: 100%;
 
+
         .sidebar-container {
             width: 400px;
             margin-right: 30px;
@@ -59,54 +60,54 @@
 }
 
 .high-contrast-page {
-    background: #000;
+  background: #000;
 }
 
 @media (max-width: 1790px) {
-    .page-container .content-container .data-container {
-        max-width: 1200px;
-    }
+  .page-container .content-container .data-container {
+    max-width: 1200px;
+  }
 }
 
 @media (max-width: 1690px) {
-    .page-container .content-container .data-container {
-        max-width: 1100px;
-    }
+  .page-container .content-container .data-container {
+    max-width: 1100px;
+  }
 }
 
 @media (max-width: 1600px) {
-    .page-container .content-container {
-        .sidebar-container {
-            width: 300px;
-        }
+  .page-container .content-container {
+    .sidebar-container {
+      width: 300px;
+    }
 
-        .data-container {
-            max-width: 1100px;
-        }
+    .data-container {
+      max-width: 1100px;
     }
+  }
 }
 
 @media (max-width: 1500px) {
-    .page-container .content-container .data-container {
-        width: 100%;
-        max-width: 1000px;
+  .page-container .content-container .data-container {
+    width: 100%;
+    max-width: 1000px;
 
-        .middle-container {
-            flex-direction: column;
+    .middle-container {
+      flex-direction: column;
 
-            .side-chart-container {
-                margin-left: 0;
-                margin-top: 30px;
-                width: 100%;
-            }
-        }
+      .side-chart-container {
+        margin-left: 0;
+        margin-top: 30px;
+        width: 100%;
+      }
     }
+  }
 }
 
 @media (max-width: 1400px) {
-    .page-container .content-container .data-container {
-        max-width: 800px;
-    }
+  .page-container .content-container .data-container {
+    max-width: 800px;
+  }
 }
 
 @media (max-width: 1200px) {
@@ -125,16 +126,16 @@
             }
         }
 
-        .data-container {
-            max-width: 100%;
-            width: 100%;
+    .data-container {
+      max-width: 100%;
+      width: 100%;
 
-            .middle-container,
-            .bottom-container {
-                width: 99.5%;
-            }
-        }
+      .middle-container,
+      .bottom-container {
+        width: 99.5%;
+      }
     }
+  }
 }
 
 @media (max-width: 680px) {
diff --git a/src/css/ReturnComponent.scss b/src/css/ReturnComponent.scss
index 5d8daeaa8e83f1639e972c888e9ad5d2934c8cca..73c409377ac278ac32716fd84c55debe0c70ed2a 100644
--- a/src/css/ReturnComponent.scss
+++ b/src/css/ReturnComponent.scss
@@ -6,7 +6,7 @@
     box-sizing: border-box;
     top: 30px;
 
-    width: 120px;
+    width: fit-content;
     margin-top: 30px;
     padding: 10px 20px;
     border: 0;
@@ -26,6 +26,10 @@
     &:hover {
         filter: brightness(0.9);
     }
+
+    img {
+        margin-right: 20px;
+    }
 }
 
 .high-contrast-return {
@@ -59,9 +63,5 @@
     .return-button {
         width: 100%;
         justify-content: center;
-
-        img {
-            margin-right: 15px;
-        }
     }
 }
\ No newline at end of file
diff --git a/src/css/SideTableComponent.scss b/src/css/SideTableComponent.scss
index 7ac1314062658ae388fdadf25e23bac7e61d5d5d..6c07f80b8a6d09e48b38c808166024f41aaea752 100644
--- a/src/css/SideTableComponent.scss
+++ b/src/css/SideTableComponent.scss
@@ -1,5 +1,5 @@
 .side-table-container {
-    height: 100%;
+    min-height: 100%;
     background: #fff;
     border-radius: 10px;
     box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
@@ -12,6 +12,78 @@
         position: relative;
         text-align: center;
 
+        table {
+            width: 100%;
+
+            thead {
+                background: #7a60a6;
+                position: sticky;
+                top: 0;
+
+                th {
+                    color: #fff;
+                    padding: 10px;
+                    font-size: 14px;
+                    font-weight: 600;
+
+                    span {
+                        img {
+                            height: 32px;
+                        }
+
+                        .sided-arrow {
+                            width: 15px;
+                        }
+                        .up {
+                            transform: rotate(180deg);
+                        }
+                    }
+                }
+
+                th + th {
+                    border-left: 1px solid #fff;
+                }
+            }
+
+            tbody {
+                background: #fff;
+
+                .tr-alt {
+                    background: #f2f3f8;
+                }
+
+                td {
+                    text-align: center;
+                    padding: 10px;
+                    font-size: 14px;
+                }
+
+                td + td {
+                    border-left: 1px solid #7a60a6;
+                }
+
+            }
+
+            tfoot {
+                background: #7a60a6;
+                opacity: 0.8;
+                color: #fff;
+                font-weight: bold;
+
+                tr {
+                    color: #fff;
+                    padding: 10px;
+                    font-size: 14px;
+                    font-weight: 600;
+                }
+
+                td + td {
+                    padding: 10px;
+                    border-left: 1px solid #fff;
+                }
+            }
+        }
+
         h3 {
             margin: 0;
             color: #3c3c3b;
@@ -75,64 +147,14 @@
         }
 
         .table-container {
-            max-height: 410px;
+            max-height: 450px;
             border-radius: 10px;
             overflow: hidden;
-            margin-top: 10px;
+            margin-top: 15px;
 
             .table-overflow-container {
-                max-height: 410px;
+                max-height: 450px;
                 overflow-y: auto;
-
-                table {
-                    width: 100%;
-
-                    thead {
-                        background: #7a60a6;
-                        position: sticky;
-                        top: 0;
-
-                        th {
-                            color: #fff;
-                            padding: 10px;
-                            font-size: 14px;
-                            font-weight: 600;
-                        }
-
-                        th + th {
-                            border-left: 1px solid #fff;
-                        }
-                    }
-
-                    tbody {
-                        background: #fff;
-
-                        .tr-alt {
-                            background: #f2f3f8;
-                        }
-
-                        td {
-                            text-align: center;
-                            padding: 10px;
-                            font-size: 14px;
-                        }
-
-                        td + td {
-                            border-left: 1px solid #7a60a6;
-                        }
-
-                        .tr-total {
-                            background: #7a60a6;
-                            opacity: 0.8;
-                            color: #fff;
-                            font-weight: bold;
-
-                            td + td {
-                                border-left: 1px solid #fff;
-                            }
-                        }
-                    }
-                }
             }
         }
 
@@ -154,10 +176,10 @@
         }
 
         p {
-            position: absolute;
             text-align: left;
             bottom: 0;
             margin: 30px 0 0 0;
+            align-self: flex-end;
             padding-right: 20px;
             font-size: 11px;
             line-height: 14px;
@@ -242,6 +264,16 @@
                             color: #ffff00;
                         }
                     }
+
+                    tfoot {
+                        tr {
+                            background: #000;
+
+                            td {
+                                color: #ffff00;
+                            }
+                        }
+                    }
                 }
             }
         }
diff --git a/src/css/SiteMapComponent.scss b/src/css/SiteMapComponent.scss
index d2c6adbe04704fa4cb23645e115acfb3f494ba97..806d35d236861bf179bacf2cfdb76fc5adc18b79 100644
--- a/src/css/SiteMapComponent.scss
+++ b/src/css/SiteMapComponent.scss
@@ -55,13 +55,9 @@
                     color: #3c3c3b;
                 }
 
-                ul {
-                    list-style: none;
-
-                    li {
-                        line-height: 30px;
-                        color: #3c3c3b;
-                    }
+                ul li {
+                    line-height: 30px;
+                    color: #3c3c3b;
                 }
             }
 
@@ -84,13 +80,9 @@
                             border-bottom: 2px solid #7a60a6;
                         }
 
-                        ul {
-                            list-style: none;
-
-                            li {
-                                line-height: 30px;
-                                color: #3c3c3b;
-                            }
+                        ul li {
+                            line-height: 30px;
+                            color: #3c3c3b;
                         }
                     }
                 }
diff --git a/src/css/SobreComponent.scss b/src/css/SobreComponent.scss
index e8da03b3ed7e6375ae1e03da2b3ab97d43c7975d..1b71ab387294017055040affbee54eae4d435ddc 100644
--- a/src/css/SobreComponent.scss
+++ b/src/css/SobreComponent.scss
@@ -1,378 +1,404 @@
 .about-body {
-    background-color: #fff;
-    color: #404040;
-    font-family: 'Nunito';
-    cursor: default;
+  background-color: #fff;
+  color: #404040;
+  font-family: "Nunito";
+  cursor: default;
 
-    .content-container {
-        padding: 50px 50px 0 50px;
-        max-width: 1200px;
-        margin: 0 auto;
+  h1 {
+    font-size: 32px;
+  }
 
-        .link-container {
-            font-size: 12px;
+  h2 {
+    font-size: 24px;
+  }
 
-            .link {
-                text-decoration: none;
-                color: #808080;
+  .content-container {
+    padding: 50px 50px 0 50px;
+    max-width: 1200px;
+    margin: 0 auto;
 
-                &:visited {
-                    color: #808080;
-                }
-            }
+    .link-container {
+      font-size: 12px;
 
-            span {
-                color: #808080;
-            }
+      .link {
+        text-decoration: none;
+        color: #808080;
+
+        &:visited {
+          color: #808080;
+        }
+      }
+
+      span {
+        color: #808080;
+      }
+
+      a {
+        font-size: 12px;
+      }
+    }
+
+    .item-container {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      align-items: center;
+      text-align: center;
+
+      .about-img {
+        margin-left: 50px;
+        height: 280px;
+        width: 100%;
+      }
+
+      .about-text {
+        max-width: 490px;
+      }
+
+      .text-container {
+        line-height: 30px;
+
+        h1,
+        h2 {
+          color: #7a60a6;
+          margin-top: 50px;
+        }
+
+        p {
+          font-size: 18px;
+          font-family: "Montserrat";
+          margin-top: 0;
         }
 
-        .item-container {
+        .objective-item-container {
+          display: grid;
+          grid-template-rows: 1fr 1fr;
+          grid-template-columns: 1fr 1fr;
+          grid-column-gap: 50px;
+          grid-row-gap: 40px;
+          text-align: left;
+
+          .objective-item {
             display: flex;
             flex-direction: row;
             justify-content: space-between;
             align-items: center;
-            text-align: center;
 
-            .about-img {
-                margin-left: 50px;
-                height: 280px;
-                width: 100%;
+            p {
+              margin: 0;
+              line-height: 28px;
             }
 
-            .about-text {
-                max-width: 490px;
+            img {
+              width: 100px;
+              height: 100px;
+              margin-right: 25px;
             }
+          }
+        }
+      }
+    }
 
-            .text-container {
-                line-height: 30px;
+    .public-container {
+      text-align: center;
+      margin: 80px 0;
 
-                h1, h2 {
-                    color: #7a60a6;
-                    margin-top: 50px;
-                }
+      h1 {
+        color: #7a60a6;
+      }
 
-                p {
-                    font-size: 18px;
-                    font-family: 'Montserrat';
-                    margin-top: 0;
-                }
+      img {
+        max-width: 900px;
+        height: 100%;
+        width: 100%;
+      }
+    }
 
-                .objective-item-container {
-                    display: grid;
-                    grid-template-rows: 1fr 1fr;
-                    grid-template-columns: 1fr 1fr;
-                    grid-column-gap: 50px;
-                    grid-row-gap: 40px;
-                    text-align: left;
-
-                    .objective-item {
-                        display: flex;
-                        flex-direction: row;
-                        justify-content: space-between;
-                        align-items: center;
-
-                        p {
-                            margin: 0;
-                            line-height: 28px;
-                        }
-
-                        img {
-                            width: 100px;
-                            height: 100px;
-                            margin-right: 25px;
-                        }
-                    }
-                }
-            }
-        }
+    .development-container {
+      margin-bottom: 80px;
 
-        .public-container {
-            text-align: center;
-            margin: 80px 0;
+      h1 {
+        text-align: center;
+        color: #7a60a6;
+        margin-bottom: 40px;
+      }
 
-            h1 {
-                color: #7a60a6;
-            }
+      .development-logo-container {
+        display: flex;
+        flex-direction: row;
+        justify-content: space-evenly;
 
-            img {
-                max-width: 900px;
-                height: 100%;
-                width: 100%;
-            }
+        a img {
+          height: 72px;
         }
+      }
+    }
 
-        .development-container {
-            margin-bottom: 80px;
+    .api-container {
+      max-width: 800px;
+      margin: 0 auto;
+      display: grid;
+      grid-template-columns: 1fr 2fr;
+      grid-column-gap: 25px;
+
+      h1 {
+        color: #7a60a6;
+        text-align: right;
+        margin: 0;
+      }
+
+      p {
+        font-family: Montserrat;
+        font-size: 16px;
+        margin: 0;
+
+        a {
+          color: #d963a1;
+        }
+      }
+    }
 
-            h1 {
-                text-align: center;
-                color: #7a60a6;
-                margin-bottom: 40px;
-            }
+    .consult-container {
+      text-align: center;
 
-            .development-logo-container {
-                display: flex;
-                flex-direction: row;
-                justify-content: space-evenly;
+      h1 {
+        color: #7a60a6;
+        padding: 0 200px;
+        margin: 80px 0;
+      }
 
-                a img {
-                    height: 72px;
-                }
-            }
-        }
+      .grid-square {
+        justify-content: center;
+        padding-bottom: 15px;
+        justify-content: space-evenly;
+        column-gap: 20px;
+        row-gap: 100px;
+
+        .center-container {
+          margin-bottom: 0 auto;
+          display: flex;
+          margin-bottom: 20px;
+
+          * {
+            -webkit-box-sizing: border-box;
+            box-sizing: border-box;
+          }
+
+          .box-square {
+              
+            flex: 1;
+            background-color: #f2f3f8;
+            min-width: 300px;
+            width: 19ch;
+            display: flex;
+            flex-direction: column;
+            justify-content: center;
+            align-items: center;
+            border-radius: 20px;
 
-        .api-container {
-            max-width: 800px;
-            margin: 0 auto;
-            display: grid;
-            grid-template-columns: 1fr 2fr;
-            grid-column-gap: 25px;
-
-            h1 {
-                color: #7a60a6;
-                text-align: right;
-                margin: 0;
+            i {
+              background: #f2f3f8;
+              border-radius: 50%;
+              box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
+              margin-top: -20%; 
+              display: flex;
+              align-items: center;
+              justify-content: center;
+              scale: 80%;
+
+              .icon {
+                scale: 90%;
+              }
             }
 
-            p {
-                font-family: Montserrat;
+            .content-container {
+                flex: 1;
+              padding: 0 20px;
+              margin-top: -5%;
+              display: flex;
+              flex-direction: column;
+              align-items: center;
+              justify-content: center;
+
+              .box-text {
+                font-size: 24px;
+                color: #151828;
+              }
+
+              .button-box {
                 font-size: 16px;
-                margin: 0;
+                padding: 10px 20px;
+                border-radius: 10px;
+                font-weight: bold;
+                color: #fff;
+                margin-bottom: 40px;
+                transition: filter 0.2s;
+                position: relative;
 
-                a {
-                    color: #d963a1;
+                &:hover {
+                  filter: brightness(0.9);
                 }
-            }
-        }
+              }
 
-        .consult-container {
-            text-align: center;
+              .pink {
+                background-color: #d963a1;
+              }
 
-            h1 {
-                color: #7a60a6;
-                padding: 0 200px;
-                margin: 80px 0;
-            }
-
-            .grid-square .center-container {
-                margin: 0 auto 70px auto;
-
-                &:last-child {
-                    margin-bottom: 0;
-                }
-
-                * {
-                    -webkit-box-sizing: border-box;
-                    box-sizing: border-box;
-                }
+              .purple {
+                background-color: #7a60a6;
+              }
 
-                .box-square {
-                    background-color: #f2f3f8;
-                    width: 300px;
-                    height: 280px;
-                    border-radius: 20px;
-
-                    i {
-                        background: #f2f3f8;
-                        border-radius:50%;
-                        display:inline-block;
-                        width: 80px;
-                        height: 80px;
-                        box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
-                        margin-top: -46px;
-
-                        .icon {
-                            width: 72px;
-                            height: 72px;
-                            margin-top: 4px;
-                        }
-                    }
-
-                    .content-container {
-                        padding: 0 20px;
-                        display: flex;
-                        flex-direction: column;
-                        align-items: center;
-                        justify-content: center;
-                        height: 100%;
-
-                        .box-text {
-                            font-size: 24px;
-                            color: #151828;
-                        }
-
-                        .button-box {
-                            font-size: 16px;
-                            padding: 10px 20px;
-                            border-radius: 10px;
-                            font-weight: bold;
-                            color: #fff;
-                            margin-bottom: 80px;
-                            transition: filter 0.2s;
-
-                            &:hover {
-                                filter: brightness(0.9);
-                            }
-                        }
-
-                        .pink {
-                            background-color: #d963a1;
-                        }
-
-                        .purple {
-                            background-color: #7a60a6;
-                        }
-
-                        .blue {
-                            background-color: #29bdef;
-                        }
-                    }
-                }
+              .blue {
+                background-color: #29bdef;
+              }
             }
+          }
         }
+      }
     }
+  }
 }
 
 .high-contrast-about {
-    background-color: #000;
-    color: #fff;
+  background-color: #000;
+  color: #fff;
 
-    .content-container {
-        .link-container .link {
-            color: #ffff00;
+  .content-container {
+    .link-container .link {
+      color: #ffff00;
 
-            &:visited {
-                color: #ffff00;
-            }
-        }
+      &:visited {
+        color: #ffff00;
+      }
+    }
 
-        .item-container .text-container h1,
-        .item-container .text-container h2,
-        .public-container h1,
-        .development-container h1,
-        .api-container h1,
-        .consult-container h1 {
-            color: #fff;
-        }
+    .item-container .text-container h1,
+    .item-container .text-container h2,
+    .public-container h1,
+    .development-container h1,
+    .api-container h1,
+    .consult-container h1 {
+      color: #fff;
+    }
 
-        .api-container p a {
-            color: #ffff00;
+    .api-container p a {
+      color: #ffff00;
 
-            &:visited {
-                color: #ffff00;
-            }
-        }
+      &:visited {
+        color: #ffff00;
+      }
+    }
 
-        .consult-container .grid-square .center-container .box-square {
-            background-color: #000;
-            border: 2px solid #fff;
+    .consult-container .grid-square .center-container .box-square {
+      background-color: #000;
+      border: 2px solid #fff;
 
-            i {
-                background-color: #000;
-            }
+      i {
+        background-color: #000;
+      }
 
-            .content-container {
-                .box-text {
-                    color: #fff;
-                }
+      .content-container {
+        .box-text {
+          color: #fff;
+        }
 
-                .button-box {
-                    background-color: #000;
-                    color: #ffff00;
-                    transition: background-color 0.2s;
+        .button-box {
+          background-color: #000;
+          color: #ffff00;
+          transition: background-color 0.2s;
 
-                    &:hover {
-                        background-color: #ffff00;
-                        color: #000;
-                    }
-                }
-            }
+          &:hover {
+            background-color: #ffff00;
+            color: #000;
+          }
         }
+      }
     }
+  }
 }
 
 @media (max-width: 1200px) {
-    .about-body .content-container .item-container {
-        flex-direction: column;
-        justify-content: center;
+  .about-body .content-container .item-container {
+    flex-direction: column;
+    justify-content: center;
 
-        .about-text {
-            max-width: none;
-        }
+    .about-text {
+      max-width: none;
+    }
 
-        .about-img {
-            margin: 20px 0 0 0;
-        }
+    .about-img {
+      margin: 20px 0 0 0;
     }
+  }
 }
 
 @media (max-width: 1100px) {
-    .about-body .content-container {
-        .development-container .development-logo-container {
-            display: grid;
-            grid-template-columns: 1fr 1fr;
-            grid-template-rows: 1fr 1fr;
-            grid-row-gap: 50px;
-            text-align: center;
-        }
+  .about-body .content-container {
+    .development-container .development-logo-container {
+      display: grid;
+      grid-template-columns: 1fr 1fr;
+      grid-template-rows: 1fr 1fr;
+      grid-row-gap: 50px;
+      text-align: center;
+    }
 
-        .consult-container h1 {
-            padding: 0;
-            margin-bottom: 100px;
-        }
+    .consult-container h1 {
+      padding: 0;
+      margin-bottom: 100px;
     }
+  }
 }
 
 @media (max-width: 1000px) {
-    .about-body .content-container {
-        padding: 50px;
-    }
+  .about-body .content-container {
+    padding: 50px;
+  }
 }
 
 @media (max-width: 950px) {
-    .about-body .content-container {
-        .item-container .text-container .objective-item-container {
-            grid-template-rows: 1fr;
-            grid-template-columns: 1fr;
-        }
+  .about-body .content-container {
+    .item-container .text-container .objective-item-container {
+      grid-template-rows: 1fr;
+      grid-template-columns: 1fr;
+    }
 
-        .public-container {
-            margin: 40px 0;
-        }
+    .public-container {
+      margin: 40px 0;
     }
+  }
 }
 
 @media (max-width: 650px) {
-    .about-body .content-container {
-        .item-container .about-img {
-            margin: 0;
-            height: auto;
-        }
+  .about-body .content-container {
+    .item-container .about-img {
+      margin: 0;
+      height: auto;
+    }
 
-        .development-container .development-logo-container {
-            grid-template-columns: 1fr;
-            grid-template-rows: 1fr;
-            grid-row-gap: 30px;
-        }
+    .development-container .development-logo-container {
+      grid-template-columns: 1fr;
+      grid-template-rows: 1fr;
+      grid-row-gap: 30px;
     }
+  }
 }
 
 @media (max-width: 450px) {
-    .about-body .content-container {
-        padding-left: 20px;
-        padding-right: 20px;
+  .about-body .content-container {
+    padding-left: 20px;
+    padding-right: 20px;
 
-        .link-container {
-            margin-left: 30px;
-        }
+    .link-container {
+      margin-left: 30px;
+    }
 
-        .item-container .text-container .objective-item-container .objective-item {
-            flex-direction: column;
-            text-align: center;
+    .item-container .text-container .objective-item-container .objective-item {
+      flex-direction: column;
+      text-align: center;
 
-            img {
-                margin: 0 0 25px 0;
-            }
-        }
+      img {
+        margin: 0 0 25px 0;
+      }
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/src/css/TeamComponent.scss b/src/css/TeamComponent.scss
index 515a8a32507fe736809f86d4674404a40caa98eb..4321e6f87be9a1d706897bb91250a05c8da72634 100644
--- a/src/css/TeamComponent.scss
+++ b/src/css/TeamComponent.scss
@@ -1,482 +1,483 @@
 .team-body {
-    background: #fff;
-    font-family: 'Nunito';
-    padding: 50px;
-    cursor: default;
-
-    .content-container {
-        max-width: 1200px;
-        margin: 0 auto;
-        color: #3c3c3b;
-
-        .link-container {
-            font-size: 12px;
-
-            .link {
-                text-decoration: none;
-                color: #808080;
-
-                &:visited {
-                    color: #808080;
-                }
-            }
+  background: #fff;
+  font-family: "Nunito";
+  padding: 50px;
+  cursor: default;
 
-            span {
-                color: #808080;
-            }
-        }
+  .content-container {
+    max-width: 1200px;
+    margin: 0 auto;
+    color: #3c3c3b;
 
-        .prograd-container {
-            display: flex;
-            flex-direction: row;
-            justify-content: space-between;
-            align-items: center;
-            margin-bottom: 50px;
-
-            .prograd-text {
-                max-width: 420px;
-
-                .prograd {
-                    margin-bottom: 50px;
-
-                    h1 {
-                        color: #7a60a6;
-                    }
-
-                    p {
-                        font-family: 'Montserrat';
-                    }
-                }
-
-                .coordination {
-                    h1 {
-                        color: #29bdef;
-                    }
-
-                    h2 {
-                        margin-bottom: 5px;
-                        font-family: 'Montserrat';
-                        font-size: 16px;
-                    }
-
-                    p {
-                        margin-top: 0;
-                        font-family: 'Montserrat';
-                        font-size: 14px;
-                    }
-                }
-            }
+    .link-container {
+      font-size: 12px;
 
-            .img-team-1 {
-                height: 425px;
-                width: 100%;
-                margin-left: 50px;
-            }
+      .link {
+        text-decoration: none;
+        color: #808080;
+
+        &:visited {
+          color: #808080;
         }
+      }
 
-        .teachers-container {
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            margin-bottom: 50px;
+      span {
+        color: #808080;
+      }
 
-            h1 {
-                color: #7a60a6;
-            }
+      a {
+        font-size: 12px;
+      }
+    }
 
-            .teachers {
-                display: flex;
-                flex-direction: row;
-                align-items: center;
-
-                .teacher-item {
-                    text-align: center;
-                    font-family: 'Montserrat';
-                    padding: 0 15px;
-
-                    h2 {
-                        margin-bottom: 5px;
-                        font-size: 16px;
-                    }
-
-                    p {
-                        margin-top: 0;
-                        font-size: 14px;
-                    }
-                }
-            }
-        }
+    .prograd-container {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      align-items: center;
+      margin-bottom: 50px;
 
-        .analysis-container {
-            display: flex;
-            flex-direction: row;
-            justify-content: space-evenly;
-            align-items: center;
-            margin-bottom: 50px;
+      .prograd-text {
+        max-width: 420px;
 
-            .img-team-2 {
-                height: 470px;
-                width: 100%;
-                margin-right: 50px;
-                max-width: 530px;
-            }
+        .prograd {
+          margin-bottom: 50px;
 
-            .data-container {
-                .educational-data {
-                    margin-bottom: 50px;
-
-                    h1 {
-                        color: #29bdef;
-                    }
-
-                    .educational-data-text .educational-data-item {
-                        font-family: 'Montserrat';
-
-                        h2 {
-                            margin-bottom: 5px;
-                            font-size: 16px;
-                        }
-
-                        p {
-                            margin: 0 0 30px 0;
-                            font-size: 14px;
-                        }
-                    }
-                }
-
-                .spacial-data {
-
-                    h1 {
-                        color: #7a60a6;
-                    }
-
-                    .spacial-data-item {
-                        font-family: 'Montserrat';
-
-                        h2 {
-                            margin-bottom: 5px;
-                            font-size: 16px;
-                        }
-
-                        p {
-                            margin: 0;
-                            font-size: 14px;
-                        }
-                    }
-                }
-            }
+          h1 {
+            color: #7a60a6;
+          }
+
+          p {
+            font-family: "Montserrat";
+          }
         }
 
-        .development-container {
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            margin-bottom: 50px;
-            text-align: center;
+        .coordination {
+          h1 {
+            color: #29bdef;
+          }
+
+          h2 {
+            margin-bottom: 5px;
+            font-family: "Montserrat";
+            font-size: 16px;
+          }
+
+          p {
+            margin-top: 0;
+            font-family: "Montserrat";
+            font-size: 14px;
+          }
+        }
+      }
 
-            h1 {
-                color: #29bdef;
-            }
+      .img-team-1 {
+        height: 425px;
+        width: 100%;
+        margin-left: 50px;
+      }
+    }
 
-            .developers-container {
-                display: grid;
-                grid-template-columns: 1fr 1fr 1fr 1fr;
-                grid-row-gap: 20px;
-                align-items: center;
-
-                .developers-item {
-                    font-family: 'Montserrat';
-                    padding: 0 50px;
-
-                    h2 {
-                        margin-bottom: 5px;
-                        font-size: 16px;
-                    }
-
-                    p {
-                        margin: 0;
-                        font-size: 14px;
-                    }
-                }
-            }
+    .teachers-container {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      margin-bottom: 50px;
+
+      h1 {
+        color: #7a60a6;
+      }
+
+      .teachers {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+
+        .teacher-item {
+          text-align: center;
+          font-family: "Montserrat";
+          padding: 0 15px;
+
+          h2 {
+            margin-bottom: 5px;
+            font-size: 16px;
+          }
+
+          p {
+            margin-top: 0;
+            font-size: 14px;
+          }
         }
+      }
+    }
+    
+    .analysis-container {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-evenly;
+      align-items: center;
+      margin-bottom: 50px;
+      .img-team-2 {
+        height: 470px;
+        width: 100%;
+        margin-right: 50px;
+        max-width: 530px;
+      }
+
+      .data-container {
+        .educational-data {
+          margin-bottom: 50px;
+
+          h1 {
+            color: #29bdef;
+          }
+
+          .educational-data-text .educational-data-item {
+            font-family: "Montserrat";
 
-        .design-container {
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            margin-bottom: 50px;
-
-            h1 {
-                color: #7a60a6;
+            h2 {
+              margin-bottom: 5px;
+              font-size: 16px;
             }
 
-            h2 {
-                font-family: 'Montserrat';
-                font-size: 16px;
-                margin-top: 0;
+            p {
+              margin: 0 0 30px 0;
+              font-size: 14px;
             }
+          }
         }
-    }
-}
 
-.high-contrast-team {
-    background: #000;
+        .spacial-data {
+          h1 {
+            color: #7a60a6;
+          }
 
-    .content-container {
-        .link-container {
-            .link {
-                color: #ffff00;
+          .spacial-data-item {
+            font-family: "Montserrat";
 
-                &:visited {
-                    color: #ffff00;
-                }
+            h2 {
+              margin-bottom: 5px;
+              font-size: 16px;
             }
 
-            span {
-                color: #ffff00;
+            p {
+              margin: 0;
+              font-size: 14px;
             }
+          }
         }
+      }
+    }
 
-        .prograd-container .prograd-text .prograd h1,
-        .prograd-container .prograd-text .prograd p,
-        .prograd-container .prograd-text .coordination h1,
-        .prograd-container .prograd-text .coordination h2,
-        .prograd-container .prograd-text .coordination p,
-        .teachers-container h1,
-        .teachers-container h2,
-        .teachers-container p,
-        .analysis-container .data-container .educational-data h1,
-        .analysis-container .data-container .educational-data h2,
-        .analysis-container .data-container .educational-data p,
-        .analysis-container .data-container .spacial-data h1,
-        .analysis-container .data-container .spacial-data h2,
-        .analysis-container .data-container .spacial-data p,
-        .development-container h1,
-        .development-container h2,
-        .development-container p,
-        .design-container h1,
-        .design-container h2 {
-            color: #fff;
+    .development-container {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      margin-bottom: 50px;
+      text-align: center;
+
+      h1 {
+        color: #29bdef;
+      }
+
+      .developers-container {
+        display: grid;
+        grid-template-columns: 1fr 1fr 1fr 1fr;
+        grid-row-gap: 20px;
+        align-items: center;
+
+        .developers-item {
+          font-family: "Montserrat";
+          padding: 0 50px;
+
+          h2 {
+            margin-bottom: 5px;
+            font-size: 16px;
+          }
+
+          p {
+            margin: 0;
+            font-size: 14px;
+          }
         }
+      }
+    }
+
+    .design-container {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      margin-bottom: 50px;
+
+      h1 {
+        color: #7a60a6;
+      }
+
+      h2 {
+        font-family: "Montserrat";
+        font-size: 16px;
+        margin-top: 0;
+      }
     }
+  }
 }
 
-@media (max-width: 1100px) {
-    .team-body .content-container {
-        .prograd-container {
-            flex-direction: column;
-            margin: 0;
+.high-contrast-team {
+  background: #000;
 
-            .prograd-text {
-                display: flex;
-                flex-direction: row;
-                justify-content: space-evenly;
-                align-items: center;
-                max-width: none;
-                margin-bottom: 20px;
-
-                .prograd {
-                    margin: 0;
-                    max-width: 45%;
-
-                    h1 {
-                        font-size: 28px;
-                    }
-                }
-
-                .coordination h1 {
-                    margin-top: 0;
-                    font-size: 28px;
-                }
-            }
+  .content-container {
+    .link-container {
+      .link {
+        color: #ffff00;
 
-            .img-team-1 {
-                height: 375px;
-                margin-left: 0;
-            }
+        &:visited {
+          color: #ffff00;
         }
+      }
 
-        .teachers-container {
-            h1 {
-                font-size: 28px;
-            }
-
-            .teachers {
-                display: grid;
-                grid-template-columns: 1fr 1fr 1fr;
-                grid-row-gap: 20px;
+      span {
+        color: #ffff00;
+      }
+    }
 
-                .teacher-item {
-                    padding: 0 30px;
-                }
-            }
-        }
+    .prograd-container .prograd-text .prograd h1,
+    .prograd-container .prograd-text .prograd p,
+    .prograd-container .prograd-text .coordination h1,
+    .prograd-container .prograd-text .coordination h2,
+    .prograd-container .prograd-text .coordination p,
+    .teachers-container h1,
+    .teachers-container h2,
+    .teachers-container p,
+    .analysis-container .data-container .educational-data h1,
+    .analysis-container .data-container .educational-data h2,
+    .analysis-container .data-container .educational-data p,
+    .analysis-container .data-container .spacial-data h1,
+    .analysis-container .data-container .spacial-data h2,
+    .analysis-container .data-container .spacial-data p,
+    .development-container h1,
+    .development-container h2,
+    .development-container p,
+    .design-container h1,
+    .design-container h2 {
+      color: #fff;
+    }
+  }
+}
 
-        .analysis-container .data-container .educational-data h1,
-        .analysis-container .data-container .spacial-data h1 {
+@media (max-width: 1100px) {
+  .team-body .content-container {
+    .prograd-container {
+      flex-direction: column;
+      margin: 0;
+
+      .prograd-text {
+        display: flex;
+        flex-direction: row;
+        justify-content: space-evenly;
+        align-items: center;
+        max-width: none;
+        margin-bottom: 20px;
+
+        .prograd {
+          margin: 0;
+          max-width: 45%;
+
+          h1 {
             font-size: 28px;
+          }
         }
 
-        .development-container {
-            h1 {
-                font-size: 28px;
-            }
-
-            .developers-container {
-                grid-template-columns: 1fr 1fr 1fr;
-            }
+        .coordination h1 {
+          margin-top: 0;
+          font-size: 28px;
         }
+      }
 
-        .design-container h1 {
-            font-size: 28px;
-        }
+      .img-team-1 {
+        height: 375px;
+        margin-left: 0;
+      }
     }
-}
 
-@media (max-width: 860px) {
-    .team-body .content-container {
-        .prograd-container .prograd-text {
-            flex-direction: column;
-            text-align: center;
+    .teachers-container {
+      h1 {
+        font-size: 28px;
+      }
 
-            .prograd {
-                max-width: none;
-            }
+      .teachers {
+        display: grid;
+        grid-template-columns: 1fr 1fr 1fr;
+        grid-row-gap: 20px;
 
-            .coordination h1 {
-                margin-top: 20px;
-            }
+        .teacher-item {
+          padding: 0 30px;
         }
+      }
+    }
 
-        .analysis-container {
-            flex-direction: column-reverse;
-            margin: 0;
+    .analysis-container .data-container .educational-data h1,
+    .analysis-container .data-container .spacial-data h1 {
+      font-size: 28px;
+    }
 
-            .data-container {
-                text-align: center;
-                margin-bottom: 70px;
+    .development-container {
+      h1 {
+        font-size: 28px;
+      }
 
-                .educational-data {
-                    margin: 0;
+      .developers-container {
+        grid-template-columns: 1fr 1fr 1fr;
+      }
+    }
 
-                    .educational-data-text {
-                        display: grid;
-                        grid-template-columns: 1fr 1fr;
-                        grid-column-gap: 30px;
-                        align-items: center;
+    .design-container h1 {
+      font-size: 28px;
+    }
+  }
+}
 
-                        .educational-data-item {
-                            padding: 0 20px;
-                        }
-                    }
-                }
-            }
+@media (max-width: 860px) {
+  .team-body .content-container {
+    .prograd-container .prograd-text {
+      flex-direction: column;
+      text-align: center;
+
+      .prograd {
+        max-width: none;
+      }
+
+      .coordination h1 {
+        margin-top: 20px;
+      }
+    }
 
-            .img-team-2 {
-                margin: 0;
-                height: 430px;
-            }
-        }
+    .analysis-container {
+      flex-direction: column-reverse;
+      margin: 0;
 
-        .teachers-container .teachers {
-            grid-template-columns: 1fr 1fr;
-        }
+      .data-container {
+        text-align: center;
+        margin-bottom: 70px;
+
+        .educational-data {
+          margin: 0;
 
-        .development-container .developers-container {
+          .educational-data-text {
+            display: grid;
             grid-template-columns: 1fr 1fr;
+            grid-column-gap: 30px;
+            align-items: center;
 
-            .developers-item {
-                padding: 0 70px;
+            .educational-data-item {
+              padding: 0 20px;
             }
+          }
         }
+      }
+
+      .img-team-2 {
+        margin: 0;
+        height: 430px;
+      }
     }
+
+    .teachers-container .teachers {
+      grid-template-columns: 1fr 1fr;
+    }
+
+    .development-container .developers-container {
+      grid-template-columns: 1fr 1fr;
+
+      .developers-item {
+        padding: 0 70px;
+      }
+    }
+  }
 }
 
 @media (max-width: 690px) {
-    .team-body .content-container {
-        .development-container .developers-container {
-            grid-template-columns: 1fr;
+  .team-body .content-container {
+    .development-container .developers-container {
+      grid-template-columns: 1fr;
 
-            .developers-item {
-                padding: 0;
-            }
-        }
+      .developers-item {
+        padding: 0;
+      }
     }
+  }
 }
 
 @media (max-width: 600px) {
-    .team-body .content-container {
-        .teachers-container {
-            margin: 0;
+  .team-body .content-container {
+    .teachers-container {
+      margin: 0;
 
-            .teachers {
-                grid-template-columns: 1fr;
-            }
-        }
+      .teachers {
+        grid-template-columns: 1fr;
+      }
+    }
 
-        .analysis-container {
-            .data-container .educational-data .educational-data-text {
-                grid-template-columns: 1fr;
-            }
+    .analysis-container {
+      .data-container .educational-data .educational-data-text {
+        grid-template-columns: 1fr;
+      }
 
-            .img-team-2 {
-                height: 385px;
-            }
-        }
+      .img-team-2 {
+        height: 385px;
+      }
     }
+  }
 }
 
 @media (max-width: 450px) {
-    .team-body .content-container {
-        .prograd-container {
-            margin-top: 30px;
-
-            .prograd-text .prograd h1,
-            .prograd-text .coordination h1 {
-                font-size: 24px;
-                padding: 0 10px;
-            }
-
-            .img-team-1 {
-                height: 250px;
-            }
-        }
+  .team-body .content-container {
+    .prograd-container {
+      margin-top: 30px;
+
+      .prograd-text .prograd h1,
+      .prograd-text .coordination h1 {
+        font-size: 24px;
+        padding: 0 10px;
+      }
+
+      .img-team-1 {
+        height: 250px;
+      }
+    }
 
-        .teachers-container {
-            h1 {
-                font-size: 24px;
-            }
+    .teachers-container {
+      h1 {
+        font-size: 24px;
+      }
 
-            .teachers .teacher-item {
-                padding: 0;
-            }
-        }
+      .teachers .teacher-item {
+        padding: 0;
+      }
+    }
 
-        .analysis-container {
-            .img-team-2 {
-                height: 300px;
-            }
+    .analysis-container {
+      .img-team-2 {
+        height: 300px;
+      }
 
-            .data-container .educational-data h1,
-            .data-container .spacial-data h1 {
-                font-size: 24px;
-            }
-        }
+      .data-container .educational-data h1,
+      .data-container .spacial-data h1 {
+        font-size: 24px;
+      }
+    }
 
-        .development-container {
-            h1 {
-                font-size: 24px;
-            }
+    .development-container {
+      h1 {
+        font-size: 24px;
+      }
 
-            .developers-container .developers-item {
-                padding: 0;
-            }
-        }
+      .developers-container .developers-item {
+        padding: 0;
+      }
+    }
 
-        .design-container h1 {
-            font-size: 24px;
-        }
+    .design-container h1 {
+      font-size: 24px;
     }
+  }
 }
-
diff --git a/src/css/TutorialModalComponent.scss b/src/css/TutorialModalComponent.scss
index 828cc81bb34d677bebff326b467b1811e562b090..3fce18e5a12af8fbe77d9d0ab8f099324a18934d 100644
--- a/src/css/TutorialModalComponent.scss
+++ b/src/css/TutorialModalComponent.scss
@@ -3,8 +3,8 @@
     color: #3c3c3c;
     border-radius: 20px;
     text-align: center;
-    font-family: 'Nunito';
     padding: 20px;
+    font-family: 'Nunito';
     width: 80%;
     height: 80%;
     cursor: default;
@@ -35,209 +35,116 @@
         }
     }
 
-    .img-container .img {
-        width: 100%;
-        max-width: 900px;
+    .title-tutorial {
+        font-size: 36px;
     }
 
-    .title-tutorial {
-        font-size: 28px;
+    .img {
+        width:100%;
+        height: calc(100% - 250px);
+        max-width: 900px;
+        margin: 0 auto;
     }
 
     .subtitle-tutorial {
-        font-size: 18px;
-        margin: 0 50px 0 50px;
+        font-size: 24px;
+        padding: 0 100px;
     }
 
     .button-container {
         display: flex;
         justify-content: space-between;
         align-items: center;
+        margin-top: 10px;
 
-        .button-cancel {
+        button {
             cursor: pointer;
-            color: #7a60a6;
             font-family: 'Nunito';
             font-size: 18px;
-            background-color: #fff;
             border: solid 2px #7a60a6;
             border-radius: 10px;
+            padding: 5px 10px;
+            width: 140px;
+
+            &:hover {
+                filter: brightness(0.8);
+            }
+        }
+
+        .button-cancel {
+            color: #7a60a6;
+            background-color: #fff;
         }
 
         .img-button {
             height: 8px;
             width: 64px;
+            margin: 0 10px;
         }
 
         .button-continue {
-            font-family: 'Nunito';
-            cursor: pointer;
             color: #fff;
-            font-size: 18px;
             background-color: #7a60a6;
-            border: solid 2px #7a60a6;
-            border-radius: 10px;
         }
     }
 }
 
-.high-contrast {
+.high-contrast-tutorial {
     background: #000;
+    box-shadow: 0 0 0 2px #fff;
+
+    .modal-header-container button img {
+        filter: brightness(0)
+                saturate(100%)
+                invert(92%)
+                sepia(36%)
+                saturate(1268%)
+                hue-rotate(350deg)
+                brightness(109%)
+                contrast(106%);
+    }
 
-    &.modal-tutorial {
-        border: 2px solid #fff;
-
-        .modal-header-container button {
-            filter: brightness(5);
-
-            &.hover{
-                border: 2px solid #fff;
-            }
-        }
-
-        .title-tutorial, .subtitle-tutorial {
-            color: #fff;
-        }
+    .title-tutorial,
+    .subtitle-tutorial {
+        color: #fff;
+    }
 
-        .button-container {
-            .button-cancel {
-                border: 2px solid #ffff00;
-                color: #ffff00;
-                background-color: #000;
-            }
+    .button-container {
+        .button-cancel {
+            background: #000;
+            border: 2px solid #ffff00;
+            color: #ffff00;
+            transition: background-color 0.2s;
 
-            .button-continue {
-                border: 2px solid #ffff00;
+            &:hover {
                 background-color: #ffff00;
                 color: #000;
             }
         }
-    }
-}
 
-@media (min-width: 360px) {
-    .modal-tutorial {
-        .modal-header-container .button {
-            height: 20px;
-            width: 20px;
-        }
-
-        .title-tutorial {
-            font-size: 24px;
-        }
-
-        .subtitle-tutorial {
-            margin: 0 20px 0 20px;
-        }
-
-        .button-container {
-            .img-button {
-                height: 6px;
-                width: 48px;
-            }
-
-            .button-cancel {
-                font-size: 14px;
-                padding: 3px;
-                border-width: 2px;
-                width: 15vh;
-            }
-
-            .button-continue {
-                font-size: 14px;
-                padding: 3px;
-                border-width: 2px;
-                width: 15vh;
-            }
+        .button-continue {
+            background: #ffff00;
+            border: 2px solid #ffff00;
+            color: #000;
+            transition: background-color 0.2s;
         }
     }
 }
 
-@media (min-width: 600px){
-    .modal-tutorial {
-        .modal-header-container .button {
-            height: 30px;
-            width: 30px;
-        }
-
-        .title-tutorial {
-            font-size: 24px;
-        }
-
-        .subtitle-tutorial {
-            margin: 0 30px 0 30px;
-        }
-
-        .button-container {
-            .img-button {
-                height: 8px;
-                width: 64px;
-            }
-
-            .button-cancel {
-                font-size: 18px;
-                padding: 5px;
-                border-width: 3px;
-                width: 20vh;
-            }
-
-            .button-continue {
-                font-size: 18px;
-                padding: 5px;
-                border-width: 3px;
-                width: 20vh;
-            }
-        }
+@media (max-width: 1290px) {
+    .modal-tutorial .subtitle-tutorial {
+        font-size: 18px;
     }
 }
 
-@media (min-width: 950px) {
-    .modal-tutorial {
-        .modal-header-container .button {
-            height: 40px;
-            width: 40px;
-        }
-
-        .title-tutorial {
-            font-size: 28px;
-        }
-
-        .subtitle-tutorial {
-            font-size: 18px;
-            margin: 0 50px 0 50px;
-        }
+@media (max-width: 700px) {
+    .modal-tutorial .subtitle-tutorial {
+        padding: 0;
     }
 }
-@media (min-width: 1400px) {
-    .modal-tutorial {
-        .title-tutorial {
-            font-size: 36px;
-        }
-
-        .subtitle-tutorial {
-            font-size: 24px;
-            margin: 0 50px 0 50px;
-        }
-
-        .button-container {
-            .img-button {
-                height: 16px;
-                width: 128px;
-            }
-
-            .button-cancel {
-                font-size: 24px;
-                padding: 4px;
-                border-width: 4px;
-                width: 20vh;
-            }
 
-            .button-continue {
-                font-size: 24px;
-                padding: 4px;
-                border-width: 4px;
-                width: 20vh;
-            }
-        }
+@media (max-height: 700px) {
+    .modal-tutorial .subtitle-tutorial {
+        font-size: 14px;
     }
 }
\ No newline at end of file
diff --git a/src/data/files/termo-de-uso.pdf b/src/data/files/termo-de-uso.pdf
index e4dd086c00f480e100f999ca6db5894211211aa3..62bed55c0b6bcacead1d20cf8152bd5a40b99d52 100644
Binary files a/src/data/files/termo-de-uso.pdf and b/src/data/files/termo-de-uso.pdf differ
diff --git a/src/data/groups.js b/src/data/groups.js
index 88770bdda00afd6676472dc5001e7b27d33d8ad7..411f735192313e323e7da8aefdb7d28cc8888b80 100644
--- a/src/data/groups.js
+++ b/src/data/groups.js
@@ -40,8 +40,8 @@ const groups = {
                     route: ['disciplines'],
                     dim: 'discipline',
                     type: 'bar',
-                    years: [2019, 2019],
-                    notes: ["Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2019."],
+                    years: [2020, 2020],
+                    notes: ["Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2020."],
                     education: 'basic',
                     disciplines: true,
                     extraFilters: { state: { value: 41 } },
@@ -51,8 +51,8 @@ const groups = {
                     route: 'disciplines',
                     dim: 'discipline',
                     type: 'bar',
-                    years: [2012, 2019],
-                    notes: ['Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2019.'],
+                    years: [2012, 2020],
+                    notes: ['Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2020.'],
                     education: 'basic',
                     extraFilters: { state: { value: 41 } },
                 },
@@ -63,8 +63,8 @@ const groups = {
                     route: 'disciplines',
                     dim: 'discipline',
                     type: 'bar',
-                    years: [2019, 2019],
-                    notes: ['Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2019.'],
+                    years: [2020, 2020],
+                    notes: ['Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2020.'],
                     education: 'basic',
                     extraFilters: { state: { value: 41 } },
                 },
@@ -366,8 +366,8 @@ const groups = {
                     route: ['disciplines'],
                     dim: 'discipline',
                     type: 'bar',
-                    years: [2019, 2019],
-                    notes: ["Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2019."],
+                    years: [2020, 2020],
+                    notes: ["Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2020."],
                     education: 'basic',
                     disciplines: true,
                     extraFilters: { state: { value: 41 } },
@@ -377,8 +377,8 @@ const groups = {
                     route: 'disciplines',
                     dim: 'discipline',
                     type: 'bar',
-                    years: [2012, 2019],
-                    notes: ['Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2019.'],
+                    years: [2012, 2020],
+                    notes: ['Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2020.'],
                     education: 'basic',
                     extraFilters: { state: { value: 41 } },
                 },
@@ -389,8 +389,8 @@ const groups = {
                     route: 'disciplines',
                     dim: 'discipline',
                     type: 'bar',
-                    years: [2019, 2019],
-                    notes: ['Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2019.'],
+                    years: [2020, 2020],
+                    notes: ['Fonte: Elaborado pelo Laboratório de Dados Educacionais a partir dos Microdados do Censo da Educação Básica/INEP 2020.'],
                     education: 'basic',
                     extraFilters: { state: { value: 41 } },
                 },
diff --git a/src/data/indicadores.js b/src/data/indicadores.js
index 53f0c8c7dad52c39e7db85f826d0c6e78631215a..ffe6f58bcd59853e6999ad0d97acd5396e18e207 100644
--- a/src/data/indicadores.js
+++ b/src/data/indicadores.js
@@ -25,8 +25,8 @@ const indicadores = {
             group_route: 'formacao_docente',
             title: 'Adequação da formação docente por disciplina ministrada',
             legendTitle: 'Percentual de disciplinas cujos docentes têm formação adequada',
-            mapNote: 'Fonte: Elaborado pelo Laboratório de Dados Educacionais com Base no Censo da Educação Básica/INEP 2019.',
-            fixedFilters: { min_year: { value: 2019 }, max_year: { value: 2019 }, state: { value: 41 } },
+            mapNote: 'Fonte: Elaborado pelo Laboratório de Dados Educacionais com Base no Censo da Educação Básica/INEP 2020.',
+            fixedFilters: { min_year: { value: 2020 }, max_year: { value: 2020 }, state: { value: 41 } },
             color: 'percent',
             percentKey: 'suitable',
             percentValues: [1],
@@ -158,8 +158,8 @@ const indicadores = {
             group_route: 'formacao_docente',
             title: 'Demanda de docências de professores com formação adequada',
             legendTitle: 'Demanda de docências de professores com formação adequada',
-            mapNote: 'Fonte: Elaborado pelo Laboratório de Dados Educacionais com Base no Censo da Educação Básica/INEP 2019.',
-            fixedFilters: { min_year: { value: 2019 }, max_year: { value: 2019 }, state: { value: 41 } },
+            mapNote: 'Fonte: Elaborado pelo Laboratório de Dados Educacionais com Base no Censo da Educação Básica/INEP 2020.',
+            fixedFilters: { min_year: { value: 2020 }, max_year: { value: 2020 }, state: { value: 41 } },
             color: 'interval',
             percentKey: 'suitable',
             percentValues: [1],
diff --git a/src/img/sorting-arrow.svg b/src/img/sorting-arrow.svg
new file mode 100644
index 0000000000000000000000000000000000000000..617de8f4ca660315d54fe3432d2889d96a15eca0
--- /dev/null
+++ b/src/img/sorting-arrow.svg
@@ -0,0 +1,4 @@
+<svg width="17" height="32" viewBox="0 0 17 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2.2002 11L8.2002 5L14.2002 11" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M2.2002 21L8.2002 27L14.2002 21" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>