diff --git a/gulpfile.js b/gulpfile.js index 79f5e7c5..d3276d2e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -15,6 +15,7 @@ const through = require('through2'); var path = { src: { html: "source/*.html", + blog: "source/blog/*.html", others: "source/*.+(php|ico|png)", htminc: "source/partials/**/*.htm", incdir: "source/partials/", @@ -57,6 +58,34 @@ gulp.task("html:build", function () { })); }); +// Blog +gulp.task("blog:build", function () { + return gulp + .src(path.src.blog) + .pipe(plumber({ + errorHandler: function (err) { + console.error('Error in plugin "' + err.plugin + '": ' + err.message); + this.emit('end'); + } + })) + .pipe(through.obj(function (file, enc, cb) { + this.push(file); + cb(); + }, function (cb) { + if (this._transformState.writechunk) { + console.log('Processing file:', this._transformState.writechunk.relative); + } + cb(); + })) + .pipe(fileinclude({ + basepath: path.src.incdir, + })) + .pipe(gulp.dest(path.build.dirDev)) + .pipe(bs.reload({ + stream: true, + })); +}); + // SCSS gulp.task("scss:build", function () { return gulp @@ -126,6 +155,7 @@ gulp.task("clean", function (cb) { // Watch Task gulp.task("watch:build", function () { gulp.watch(path.src.html, gulp.series("html:build")); + gulp.watch(path.src.blog, gulp.series("blog:build")); gulp.watch(path.src.htminc, gulp.series("html:build")); gulp.watch(path.src.scss, gulp.series("scss:build")); gulp.watch(path.src.js, gulp.series("js:build")); @@ -139,6 +169,7 @@ gulp.task( gulp.series( "clean", "html:build", + "blog:build", "js:build", "scss:build", "images:build", @@ -159,6 +190,7 @@ gulp.task( "build", gulp.series( "html:build", + "blog:build", "js:build", "scss:build", "images:build", diff --git a/source/blog-grid.html b/source/blog-grid.html index bc8c20ad..7472ea70 100644 --- a/source/blog-grid.html +++ b/source/blog-grid.html @@ -1,103 +1,16 @@ @@include('blocks/scroller.htm') @@include('header.htm') -@@include('blocks/navigation.html',{"blog":"active", "blogGrid":"active"}) +@@include('blocks/navigation.html',{"blog":"active"}) -@@include('blocks/page-title.htm', { "page-name": "Our blog", "title": "Blog articles" }) +@@include('blocks/page-title.htm', { "page-name": "Blog", "title": "Articles" })
-
- blog - -
-
- Creativity - 5 Comments - 28th January -
- -

Improve design with typography?

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

- - Learn More -
-
-
- -
-
- blog - -
-
- Design - 5 Comments - 28th January -
- -

Interactivity connect consumer

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

- - Learn More -
-
-
- -
-
- blog - -
-
- Community - 5 Comments - 28th January -
- -

Marketing Strategy to bring more affect

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

- - Learn More -
-
-
-
-
- blog - -
-
- Marketing - 5 Comments - 28th January -
- -

Marketing Strategy to bring more affect

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

- - Learn More -
-
-
-
- -
-
- + @@include('blocks/blog-item.htm', {"image_src": "images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg", "date": "1 Janvier 2024", "title": "Étude des vols de voitures", "summary": "Montréal", "link": "vol-de-voiture.html"}) + @@include('blocks/blog-item.htm', {"image_src": "images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg", "date": "1 Janvier 2024", "title": "Expérimentation Des Indicateurs Technique", "summary": "Backtest", "link": "experimentation-indicator-technique.html"})
diff --git a/source/blog-sidebar.html b/source/blog-sidebar.html deleted file mode 100644 index b7041888..00000000 --- a/source/blog-sidebar.html +++ /dev/null @@ -1,178 +0,0 @@ -@@include('header.htm') - -@@include('blocks/navigation.html',{"blog":"active", "blogSidebar":"active"}) - -@@include('blocks/page-title.htm', { "page-name": "Our blog", "title": "Blog articles" }) - -
-
-
-
-
-
-
- blog - -
-
- Creativity -
- -

Improve design with typography?

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

- - Learn More -
-
-
- -
-
- blog - -
-
- Design -
- -

Interactivity connect consumer

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

- - Learn More -
-
-
- -
-
- blog - -
-
- Community -
- -

Marketing Strategy to bring more affect

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

- - Learn More -
-
-
-
-
- blog - -
-
- Marketing -
- -

Marketing Strategy to bring more affect

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

- - Learn More -
-
-
- - -
- -
-
-
-
- -
-
-
-
- -@@include('blocks/footer.htm') - -@@include('footer.htm') \ No newline at end of file diff --git a/source/blog-single.html b/source/blog-single.html deleted file mode 100644 index 98ffdce8..00000000 --- a/source/blog-single.html +++ /dev/null @@ -1,244 +0,0 @@ -@@include('blocks/scroller.htm') -@@include('header.htm') - -@@include('blocks/navigation.html',{"blog":"active", "blogSingle":"active"}) - -@@include('blocks/page-title.htm', { "page-name": "News details", "title": "Blog Single" }) - -
-
-
-
-
-
-
- blog - -
-
- Creativity - 5 Comments - 28th January -
- -

Improve design with typography?

-

Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur - accusantium pariatur repudiandae!

- -

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus natus, consectetur? Illum libero - vel nihil nisi quae, voluptatem, sapiente necessitatibus distinctio voluptates, iusto qui. Laboriosam - autem, nam voluptate in beatae.

- -

A brand for a company is like a reputation for a person. You earn reputation by trying - to do hard things well.

- -

The same is true as we experience the emotional - sensation of stress from our first instances of social rejection ridicule. We quickly learn to fear - and thus automatically.

- -

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste, rerum beatae repellat tenetur - incidunt quisquam libero dolores laudantium. Nesciunt quis itaque quidem, voluptatem autem eos animi - laborum iusto expedita sapiente.

- -
- - -
    -
  • Share:
  • -
  • -
  • -
  • -
  • -
-
-
-
-
- - - - -
-
-

2 Comments

-
    -
  • -
    - comment-author - -
    Philip W
    - United Kingdom - -
    - Reply | - Posted October 7, 2018 -
    - -
    -

    Some consultants are employed indirectly by the client via a consultancy staffing company, a - company that provides consultants on an agency basis.

    -
    -
    -
  • - -
  • -
    - comment-author - -
    Philip W
    - United Kingdom - -
    - Reply | - Posted October 7, 2018 -
    - -
    -

    Some consultants are employed indirectly by the client via a consultancy staffing company, a - company that provides consultants on an agency basis.

    -
    -
    -
  • -
-
-
- -
-
-

Write a comment

-
-
-
- -
-
-
-
- -
-
-
- - - - - -
-
-
-
- -
- -
-
-
-
- -@@include('blocks/footer.htm') - -@@include('footer.htm') \ No newline at end of file diff --git a/source/blog/experimentation-indicator-technique.html b/source/blog/experimentation-indicator-technique.html new file mode 100644 index 00000000..6c7bb950 --- /dev/null +++ b/source/blog/experimentation-indicator-technique.html @@ -0,0 +1,611 @@ +@@include('blocks/scroller.htm') +@@include('header.htm') + +@@include('blocks/navigation.html',{"blog":"active"}) + +@@include('blocks/page-title.htm', { "page-name": "Backtesting", "title": "Expérimentation des indicateurs technique", "background-image-url":"images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg"}) + +
+
+
+
+
+
+
+ blog +
+ +

Expérimentation des indicateurs technique

+ + +

Introduction

+ +

Dans ce rapport, nous présentons une expérimentation des indicateurs techniques à + l'aide du projet BatchBacktesting disponible sur GitHub à l'adresse suivante :

+ +
+                                    
+!pip install numpy httpx rich
+
+import pandas as pd
+import numpy as np
+from datetime import datetime
+import sys
+import os
+import httpx
+
+import concurrent.futures
+from datetime import datetime
+import glob
+import warnings
+from rich.progress import track
+warnings.filterwarnings("ignore")
+                                    
+                                
+ + +

API

+ +

N'oubliez pas de remplacer les espaces réservés FMP_API_KEY et BINANCE_API_KEY par + vos véritables clés API pour pouvoir accéder aux données des services respectifs. +

+ +
+                                    
+BASE_URL_FMP = "https://financialmodelingprep.com/api/v3"
+BASE_URL_BINANCE = "https://fapi.binance.com/fapi/v1/"
+FMP_API_KEY = ""
+BINANCE_API_KEY = ""
+                                    
+                                
+ +

Plusieurs fonctions pour effectuer des requêtes API et fournit une liste de + cryptomonnaies prises en charge.

+ +

Ce script propose des fonctions pour :

+ +
    +
  1. Effectuer des requêtes API vers différents points de terminaison.
  2. +
  3. Obtenir des données historiques de prix pour les cryptomonnaies et les actions. +
  4. +
  5. Obtenir la liste des actions du S&P 500.
  6. +
  7. Obtenir toutes les cryptomonnaies prises en charge.
  8. +
  9. Obtenir les listes des états financiers.
  10. +
+ +
+
+def make_api_request(api_endpoint, params):
+    with httpx.Client() as client:
+        # Make the GET request to the API
+        response = client.get(api_endpoint, params=params)
+        if response.status_code == 200:
+            return response.json()
+        print("Error: Failed to retrieve data from API")
+        return None
+                                
+
+ +

+ La fonction make_api_request() effectue une requête GET vers l'API et renvoie les + données au format JSON si la requête est réussie. Sinon, elle renvoie None. +

+ +
+
+def get_historical_price_full_crypto(symbol):
+    api_endpoint = f"{BASE_URL_FMP}/historical-price-full/crypto/{symbol}"
+    params = {"apikey": FMP_API_KEY}
+    return make_api_request(api_endpoint, params)
+
+
+def get_historical_price_full_stock(symbol):
+    api_endpoint = f"{BASE_URL_FMP}/historical-price-full/{symbol}"
+    params = {"apikey": FMP_API_KEY}
+
+    return make_api_request(api_endpoint, params)
+
+def get_SP500():
+    api_endpoint = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
+    data = pd.read_html(api_endpoint)
+    return list(data[0]['Symbol'])
+
+
+def get_all_crypto():
+    """
+    All possible crypto symbols
+    """
+    return [
+        "BTCUSD",
+        "ETHUSD",
+        "LTCUSD",
+        "BCHUSD",
+        "XRPUSD",
+        "EOSUSD",
+        "XLMUSD",
+        "TRXUSD",
+        "ETCUSD",
+        "DASHUSD",
+        "ZECUSD",
+        "XTZUSD",
+        "XMRUSD",
+        "ADAUSD",
+        "NEOUSD",
+        "XEMUSD",
+        "VETUSD",
+        "DOGEUSD",
+        "OMGUSD",
+        "ZRXUSD",
+        "BATUSD"
+        "USDTUSD",
+        "LINKUSD",
+        "BTTUSD",
+        "BNBUSD",
+        "ONTUSD",
+        "QTUMUSD",
+        "ALGOUSD",
+        "ZILUSD",
+        "ICXUSD",
+        "KNCUSD",
+        "ZENUSD",
+        "THETAUSD",
+        "IOSTUSD",
+        "ATOMUSD",
+        "MKRUSD",
+        "COMPUSD",
+        "YFIUSD",
+        "SUSHIUSD",
+        "SNXUSD",
+        "UMAUSD",
+        "BALUSD",
+        "AAVEUSD",
+        "UNIUSD",
+        "RENBTCUSD",
+        "RENUSD",
+        "CRVUSD",
+        "SXPUSD",
+        "KSMUSD",
+        "OXTUSD",
+        "DGBUSD",
+        "LRCUSD",
+        "WAVESUSD",
+        "NMRUSD",
+        "STORJUSD",
+        "KAVAUSD",
+        "RLCUSD",
+        "BANDUSD",
+        "SCUSD",
+        "ENJUSD",
+    ]
+
+def get_financial_statements_lists():
+    api_endpoint = f"{BASE_URL_FMP}/financial-statement-symbol-lists"
+    params = {"apikey": FMP_API_KEY}
+    return make_api_request(api_endpoint, params)
+
+def get_Vanguard_Canada():
+    """
+    Get Vanguard Canada companies
+
+    Returns:
+        dict: Dictionary containing the data
+    """
+        # VCN: Vanguard FTSE Canada All Cap Index ETF
+        # VFV: Vanguard S&P 500 Index ETF
+        # VUN: Vanguard US Total Market Index ETF
+        # VEE: Vanguard FTSE Emerging Markets All Cap Index ETF
+        # VAB: Vanguard Canadian Aggregate Bond Index ETF
+        # VSB: Vanguard Canadian Short-Term Bond Index ETF
+        # VXC: Vanguard FTSE Global All Cap ex Canada Index ETF
+        # VIU: Vanguard FTSE Developed All Cap ex North America Index ETF
+        # VGG: Vanguard US Dividend Appreciation Index ETF
+    return ['VCN', 'VFV', 'VUN', 'VEE', 'VAB', 'VSB', 'VXC', 'VIU', 'VGG']
+                                
+
+ +

+ La fonction get_historical_price_full_crypto() effectue une requête API vers + l'API FMP pour obtenir les données historiques de prix pour une cryptomonnaie + spécifique. La fonction get_historical_price_full_stock() effectue une requête + API vers l'API FMP pour obtenir les données historiques de prix pour une action + spécifique. La fonction get_SP500() effectue une requête API vers Wikipedia pour + obtenir la liste des actions du S&P 500. La fonction get_all_crypto() renvoie la + liste de toutes les cryptomonnaies prises en charge. La fonction + get_financial_statements_lists() effectue une requête API vers l'API FMP pour + obtenir la liste des états financiers. La fonction get_Vanguard_Canada() renvoie + la liste des actions de Vanguard Canada. +

+ +

+ Pour utiliser ce script dans votre projet, copiez simplement assurez-vous d'avoir + installé les bibliothèques requises mentionnées dans la section "Exigences" de la + documentation BatchBacktesting. Ensuite, vous pouvez importer les fonctions de ce + script dans votre script principal ou votre Jupyter Notebook pour accéder et + manipuler les données comme vous le souhaitez. +

+ +

+ Une fois que vous avez les données, vous pouvez utiliser la bibliothèque + BatchBacktesting pour tester diverses stratégies sur les actions ou les + cryptomonnaies, analyser les résultats et visualiser les performances. À titre + d'exemple, nous avons utilisé la stratégie EMA (Exponential Moving Average) pour + effectuer des tests de performance sur les actions du S&P 500 et les cryptomonnaies + prises en charge. +

+ +

EMA Stratégie

+ +

L'EMA est un indicateur technique qui est utilisé pour lisser l'action des prix en + filtrant le "bruit" des fluctuations de prix aléatoires à court terme. Il est + calculé en prenant le prix moyen d'un titre sur un nombre spécifique de périodes de + temps. L'EMA est un type de moyenne mobile qui accorde un poids et une signification + plus importants aux points de données les plus récents. La moyenne mobile + exponentielle est également appelée moyenne mobile pondérée exponentiellement. +

+ +
+
+class EMA(Strategy):
+    n1 = 20
+    n2 = 80
+    n3 = 150
+
+    def init(self):
+        close = self.data.Close
+        self.ema20 = self.I(taPanda.ema, close.s, self.n1)
+        self.ema80 = self.I(taPanda.ema, close.s, self.n2)
+        self.ema150 = self.I(taPanda.ema, close.s, self.n3)
+
+    def next(self):
+        price = self.data.Close
+        if crossover(self.ema20, self.ema80):
+            self.position.close()
+            self.buy(sl=0.90 * price, tp=1.25 * price)
+
+        elif crossover(self.ema80, self.ema20):
+            self.position.close()
+            self.sell(sl=1.10 * price, tp=0.75 * price)
+
+                                
+
+ + +

+ La stratégie EMA est implémentée dans la classe EMA. La stratégie EMA est une + stratégie de suivi de tendance qui utilise trois moyennes mobiles exponentielles + (EMA) avec des périodes de 20, 80 et 150. Lorsque la moyenne mobile exponentielle + à court terme (20) croise la moyenne mobile exponentielle à long terme (80) par + le haut, cela signifie que la tendance est à la hausse et que nous devrions + acheter. Lorsque la moyenne mobile exponentielle à court terme (20) croise la + moyenne mobile exponentielle à long terme (80) par le bas, cela signifie que la + tendance est à la baisse et que nous devrions vendre. +

+ +
+
+def run_backtests_strategies(instruments, strategies):
+    """
+    Run backtests for a list of instruments using a specified strategy.
+
+    Args:
+        instruments (list): List of instruments to run backtests for
+        strategies (list): List of strategies to run backtests for
+
+    Returns:
+        List of outputs from run_backtests()
+
+    """
+
+    # find strategies in the STRATEGIES
+    strategies = [x for x in STRATEGIES if x.__name__ in strategies]
+    outputs = []
+    with concurrent.futures.ThreadPoolExecutor() as executor:
+        futures = []
+        for strategy in strategies:
+            future = executor.submit(run_backtests, instruments, strategy, 4)
+            futures.append(future)
+
+        for future in concurrent.futures.as_completed(futures):
+            outputs.extend(future.result())
+
+    return outputs
+
+def check_crypto(instrument):
+    """
+    Check if the instrument is crypto or not
+    """
+    return instrument in get_all_crypto()
+
+def check_stock(instrument):
+    """
+    Check if the instrument is crypto or not
+    """
+    return instrument not in get_financial_statements_lists()
+
+
+def process_instrument(instrument, strategy):
+    """
+    Process a single instrument for a backtest using a specified strategy.
+    Returns a Pandas dataframe of the backtest results.
+    """
+    try:
+
+        if check_crypto(instrument):
+            data = get_historical_price_full_crypto(instrument)
+        else:
+            data = get_historical_price_full_stock(instrument)
+
+        if data is None or "historical" not in data:
+            print(f"Error processing {instrument}: No data")
+            return None
+
+        data = clean_data(data)
+
+        bt = Backtest(
+            data, strategy=strategy, cash=100000, commission=0.002, exclusive_orders=True
+        )
+        output = bt.run()
+        output = process_output(output, instrument, strategy)
+        return output, bt
+    except Exception as e:
+        print(f"Error processing {instrument}: {str(e)}")
+        return None
+
+def clean_data(data):
+    """
+    Clean historical price data for use in a backtest.
+    Returns a Pandas dataframe of the cleaned data.
+    """
+    data = data["historical"]
+    data = pd.DataFrame(data)
+    data.columns = [x.title() for x in data.columns]
+    data = data.drop(
+        [
+            "Adjclose",
+            "Unadjustedvolume",
+            "Change",
+            "Changepercent",
+            "Vwap",
+            "Label",
+            "Changeovertime",
+        ],
+        axis=1,
+    )
+    data["Date"] = pd.to_datetime(data["Date"])
+    data.set_index("Date", inplace=True)
+    data = data.iloc[::-1]
+    return data
+
+
+def process_output(output, instrument, strategy, in_row=True):
+    """
+    Process backtest output data to include instrument name, strategy name,
+    and parameters.
+    Returns a Pandas dataframe of the processed output.
+    """
+    if in_row:
+        output = pd.DataFrame(output).T
+    output["Instrument"] = instrument
+    output["Strategy"] = strategy.__name__
+    output.pop("_strategy")
+    return output
+
+
+def save_output(output, output_dir, instrument, start, end):
+    """
+    Save backtest output to file and generate chart if specified.
+    """
+    print(f"Saving output for {instrument}")
+    fileNameOutput = f"{output_dir}/{instrument}-{start}-{end}.csv"
+    output.to_csv(fileNameOutput)
+
+
+def plot_results(bt, output_dir, instrument, start, end):
+    print(f"Saving chart for {instrument}")
+    fileNameChart = f"{output_dir}/{instrument}-{start}-{end}.html"
+    bt.plot(filename=fileNameChart, open_browser=False)
+
+def run_backtests(instruments, strategy, num_threads=4, generate_plots=False):
+    """
+    Run backtests for a list of instruments using a specified strategy.
+    Returns a list of Pandas dataframes of the backtest results.
+
+    Args:
+        instruments (list): List of instruments to run backtests for
+
+    Returns:
+        List of Pandas dataframes of the backtest results
+    """
+    outputs = []
+    output_dir = f"output/raw/{strategy.__name__}"
+    output_dir_charts = f"output/charts/{strategy.__name__}"
+    if not os.path.exists(output_dir):
+        os.makedirs(output_dir)
+    if not os.path.exists(output_dir_charts):
+        os.makedirs(output_dir_charts)
+    with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor:
+        future_to_instrument = {
+            executor.submit(process_instrument, instrument, strategy): instrument
+            for instrument in instruments
+        }
+        for future in concurrent.futures.as_completed(future_to_instrument):
+            instrument = future_to_instrument[future]
+            output = future.result()
+            if output is not None:
+                outputs.append(output[0])
+                save_output(output[0], output_dir, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1])
+                if generate_plots:
+                    plot_results(output[1], output_dir_charts, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1])
+    data_frame = pd.concat(outputs)
+    start = data_frame["Start"].to_string().strip().split()[1]
+    end = data_frame["End"].to_string().strip().split()[1]
+    fileNameOutput = f"output/{strategy.__name__}-{start}-{end}.csv"
+    data_frame.to_csv(fileNameOutput)
+
+
+    return data_frame
+                                
+
+ +

+ La fonction run_backtests_strategies() exécute des backtests pour une liste + d'instruments en utilisant une stratégie spécifique. La fonction + check_crypto() vérifie si l'instrument est une cryptomonnaie ou non. La fonction + check_stock() vérifie si l'instrument est une action ou non. La fonction + process_instrument() traite un seul instrument pour un backtest en utilisant une + stratégie spécifique. La fonction clean_data() nettoie les données historiques + des prix pour les utiliser dans un backtest. La fonction process_output() + traite les données de sortie du backtest pour inclure le nom de l'instrument, le + nom de la stratégie et les paramètres. La fonction save_output() enregistre la + sortie du backtest dans un fichier et génère un graphique si spécifié. La + fonction plot_results() enregistre la sortie du backtest dans un fichier et + génère un graphique si spécifié. La fonction run_backtests() exécute des + backtests pour une liste d'instruments en utilisant une stratégie spécifique. +

+ +

+ Le script génère des graphiques pour chaque instrument testé, qui peuvent être + visualisés pour analyser les performances des stratégies appliquées. Les résultats + sont sauvegardés dans le répertoire output du projet BatchBacktesting. +

+ +
+
+tickers = get_SP500()
+run_backtests(tickers, strategy=EMA, num_threads=12, generate_plots=True)
+ticker = get_all_crypto()
+run_backtests(ticker, strategy=EMA, num_threads=12, generate_plots=True)
+                                
+
+ +

+ Nous avons utilisé la stratégie EMA pour effectuer des tests de performance sur les + actions du S&P 500 et les cryptomonnaies prises en charge. Les résultats sont + sauvegardés dans le répertoire output du projet BatchBacktesting. +

+ +

+ Le lien que vous avez partagé correspond au répertoire output du projet + BatchBacktesting sur GitHub : + https://github.com/AlgoETS/BatchBacktesting/tree/main/output. Cependant, il semble + que ce répertoire ne contient pas de résultats pré-calculés. En effet, il est + probable que les auteurs du projet aient choisi de ne pas inclure les résultats des + tests dans le dépôt GitHub afin d'éviter d'encombrer le dépôt avec des données + spécifiques à chaque utilisateur. +

+ +

+ Pour obtenir des valeurs calculées pour vos propres tests, vous devrez exécuter le + script en local sur votre machine avec les paramètres et les stratégies de votre + choix. Après avoir exécuté le script, les résultats seront sauvegardés dans le + répertoire output de votre projet local. + + https://algoets.github.io/BatchBacktesting/output/charts/EMA/AAPL-2018-04-04-2023-04-03.html +

+ +

Analyse

+ +

Top 5 des instruments avec le meilleur rendement :

+ +
    +
  1. BTCBUSD : 293,78%
  2. +
  3. ALB : 205,97%
  4. +
  5. OMGUSD : 199,62%
  6. +
  7. BBWI : 196,82%
  8. +
  9. GRMN : 193,47%
  10. +
+ +

Top 5 des instruments avec le plus faible rendement :

+ +
    +
  1. BTTBUSD : -99,93%
  2. +
  3. UAL : -82,63%
  4. +
  5. NCLH : -81,51%
  6. +
  7. LNC : -78,02%
  8. +
  9. CHRW : -76,38%
  10. +
+ + +

+ En conclusion, le projet BatchBacktesting offre une approche flexible et puissante + pour tester et analyser les performances des indicateurs techniques sur les marchés + boursiers et les cryptomonnaies. Les fonctions fournies permettent une intégration + facile avec les API de services financiers et une manipulation aisée des données. + Les résultats des expérimentations peuvent être utilisés pour développer et affiner + des stratégies de trading algorithmique en fonction des performances observées +

+ +
+ + +
    +
  • Share:
  • +
  • +
  • +
  • +
  • +
+
+
+
+
+ + +
+
+ +
+
+ +
+
+
+
+ +
+ +
+
+
+
+ +@@include('blocks/footer.htm') + +@@include('footer.htm') \ No newline at end of file diff --git a/source/blog/vol-de-voiture.html b/source/blog/vol-de-voiture.html new file mode 100644 index 00000000..590d1b76 --- /dev/null +++ b/source/blog/vol-de-voiture.html @@ -0,0 +1,550 @@ +@@include('blocks/scroller.htm') +@@include('header.htm') + +@@include('blocks/navigation.html',{"blog":"active"}) + +@@include('blocks/page-title.htm', { "page-name": "Étude des vols de voitures", "title": "Montréal", +"background-image-url": +"images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg" +}) + +
+
+
+
+
+
+
+ blog +
+ +

Étude des vols de voitures à Montréal

+

Original +

Substack + +

Découvrez les tendances de la criminalité liée aux vols de voitures + à Montréal à travers les années. Cette étude examine les quartiers les plus touchés, + les variations saisonnières, et bien plus encore.

+ +

Un article dans le journal a particulièrement attiré mon attention de manière + inattendue, révélant une réalité alarmante : le taux de vols de voitures à Montréal + atteignait des sommets déconcertants. Cette révélation m’a laissé perplexe et + intrigué à la fois. Mon esprit curieux a été instantanément piqué, et j’ai ressenti + le besoin impérieux d’explorer ce phénomène de plus près, de le décortiquer et de + comprendre ses origines.

+ +

Dans cet article, je vais vous emmener avec moi dans cette aventure intrigante, alors + que nous plongeons dans l’univers des vols de voitures à Montréal. Nous allons + dévoiler les données, analyser les statistiques et tenter de démystifier cette + réalité complexe. Attachez-vous bien, car nous partons à la découverte de l’envers + du décor de la criminalité automobile à Montréal.

+ +

Récoltes des données

+ +

J’ai entrepris la collecte de données en récupérant un fichier CSV exhaustif + contenant toutes les infractions criminelles à Montréal, mis à disposition par la + ville. Mon objectif était de cibler spécifiquement les infractions de type “Vol de + véhicule à moteur”. À ma grande surprise, j’ai trouvé pas moins de 53 964 cas + enregistrés depuis l’année 2018.

+ + blog + + Données des vols de véhicules à moteur à Montréal + +
+
+ +

Le vol en hausse

+ +

L’un des constats les plus préoccupants réside dans la tendance constante à la hausse + du vol de véhicules, qui semble résolument insensible à tout ralentissement, comme + en témoigne ce graphique éloquent :

+ + blog + Graphique vols de véhicules à moteur par année +
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AnnéesVols de véhicules
20154418
20164352
20174732
20184237
20194170
20204706
20216440
20229377
202311262
+ +

+
+
+ +

Ces chiffres révèlent une progression alarmante, suscitant des inquiétudes + croissantes.

+ +

Mode Opératoire

+ +

De manière paradoxale, il s’avère que la majorité des vols de véhicules se produisent + en plein jour. En effet, 51% de ces vols ont lieu pendant la journée, lorsque tout + semble plus visible et évident. De plus, parmi les jours de la semaine, c’est le + mercredi qui détient le triste record du jour où les vols sont les plus fréquents : +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
JournéeOccurence
Wednesday8519
Monday8493
Thursday8334
Tuesday8303
Friday7819
Saturday6160
Sunday6066
+
+
+ + blog + + Graphique vols de véhicules par jour de la semaine +
+
+ + blog + Graphique vols de véhicules par jour de la semaine et quart de la journée +
+
+ +

Cette donnée surprenante met en évidence une réalité intrigante, où les vols de + véhicules semblent prospérer en plein jour, défiant ainsi les attentes + conventionnelles en matière de criminalité.

+ +

Lieux

+ +

Voici une carte thermique (heatmap) des cinq endroits les plus fréquemment ciblés par + les voleurs à Montréal. Il est intéressant de noter que les hôtels et les centres + commerciaux sont devenus des cibles privilégiées.

+ + blog + Carte thermique des vols de véhicules à Montréal +
+
+ +

Un Vol Sophistiqué

+ +

Loin sont les jours où un simple trousseau de clés métalliques ou une vitre brisée + suffisaient pour voler une voiture. Aujourd’hui, les voleurs ont évolué, devenant + plus rusés et équipés de technologies avancées.

+ +

Relay attack

+ +

Ils utilisent un dispositif sophistiqué pour amplifier le signal, pratiquant ce que + l’on appelle l’attaque par relais.

+ +

Dans ce type de vol, l’objectif des malfaiteurs est de tromper la voiture en lui + faisant croire que la clé se trouve à proximité immédiate du véhicule, même si en + réalité, la clé se trouve à plusieurs centaines de mètres de distance. Ils utilisent + un amplificateur de signal pour induire en erreur la voiture, lui faisant croire que + la clé est à l’intérieur du véhicule.

+ +

Voici une vidéo capturant un vol qui ne dure que quelques secondes.

+ + blog + + Vol Voiture Technique du relai + +
+
+ +

PORT OBD

+ +

Le Port OBD est le port « On-Board Diagnostics » se trouvant généralement au-dessus + de la pédale. C’est une interface de communication pour les systèmes de surveillance + et de contrôle des véhicules. Il est également utilisé par les garages pour + identifier et résoudre les défauts. Problème : Malheureusement, toute personne ayant + accès à celui-ci (par exemple, un garage malveillant, un valet ou des employés de + lave-auto) peut abuser du Port OBD pour créer une copie du porte-clés électronique + de votre voiture ! Parfois, les voleurs utilisent la méthode du Port OBD en y + injectant un code malicieux permettant de changer des configurations pour arrêter le + système d’alarme et faire un clonage de la clé.

+ + blog + + Port OBD + +
+
+ +

Conséquences

+ +

L’explosion du nombre de vols de voitures a des conséquences directes sur les + propriétaires de véhicules, notamment une augmentation significative du coût de + l’assurance automobile. Certaines marques et modèles sont malheureusement devenus + les cibles privilégiées des voleurs. Voici le palmarès de 2022 :

+ + + s + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Marque/ModèleAnnée Modèle Volée le Plus SouventNombre de Véhicules AssurésNombre de VolsFréquence de Vol (%)Type
1Honda CR-V2020115,8952,6892.3%SUV
2Acura RDX202015,8956534.1%SUV
3Honda Civic2019224,6885060.2%Sedan
4Dodge RAM 1500 Series202079,0195040.6%Truck
5Jeep Wrangler202128,0484331.5%SUV
6Toyota RAV 42019124,3574250.3%SUV
7Jeep Grand Cherokee202122,8084201.8%SUV
8Toyota Highlander202117,3863442.0%SUV
9Ford F150 Series201991,1662560.3%Truck
10Hyundai Tucson202163,4502420.4%SUV
+ +
+
+ +

Se protéger

+ +

Il est important de noter qu’aucune méthode n’est infaillible, mais l’objectif + principal est de rendre la tâche des voleurs aussi difficile que possible, les + décourageant ainsi de s’attaquer à votre véhicule.

+ +

Verrouillez les portes et fermez complètement les fenêtres

+ +

La première étape essentielle pour vous protéger consiste à verrouiller les portes de + votre véhicule et à fermer complètement les fenêtres. Ce geste simple peut + considérablement ralentir un voleur.

+ +

Boite de farraday

+ +

Pour protéger votre clé électronique (key FOB) contre les attaques par relais, vous + pouvez utiliser une boîte de Faraday. Cette boîte bloque le signal de la clé, + empêchant ainsi les voleurs d’amplifier son signal. Cette méthode constitue une + défense efficace contre les tentatives d’attaque par relais et est disponible à un + prix abordable, généralement autour de 25 $.

+ +

Amazon: $25 Boite de farraday

+ +

OBD PORT lock

+ +

Pourquoi sommes-nous exposés ?

+ +

Les véhicules équipés de systèmes de démarrage sans clé (“push start”) ou d’entrée + sans clé (“keyless entry”) ne disposent pas de clé mécanique pour démarrer le + moteur. Ils utilisent des clés électroniques qui s’authentifient avec la voiture via + un échange de données (par des signaux radio pour les systèmes sans clé ou par + insertion dans le tableau de bord).

+ +

Comment le port est-il exploité ?

+ +

Ces véhicules conservent une copie numérique des clés dans l’unité de contrôle du + moteur du véhicule (ECU). Le problème réside dans le fait que ces clés numériques + peuvent être téléchargées par quiconque a accès au “PORT OBD” du véhicule, puis + utilisées pour programmer une clé vierge en moins de 60 secondes.

+ +

Pourquoi devrais-je m’inquiéter ?

+ +

Cette clé duplicata est identique à l’originale, ce qui donne au voleur un accès + total pour OUVRIR, DÉMARRER et EMPORTER le véhicule à sa convenance, souvent des + jours, voire des semaines plus tard.

+ +

Pour vous protéger contre ce type d’attaque, vous pouvez envisager de bloquer, + modifier ou cacher votre port OBD. Il ne faut que quelques minutes pour rendre ces + véhicules inviolables.

+ + blog + + Port OBD Lock +
+
+ +

Système de Repérage par TAG

+ +

Cette technologie implique de placer plusieurs dispositifs sans fil dans des endroits + difficiles d’accès du véhicule. Chaque dispositif est autonome et émet un signal + avec un code d’identification unique qui peut être lu à distance par un récepteur. +

+ +

Prix: 400$

+ +

Barre Antivol

+ +

Une barre antivol simple mais efficace peut ralentir un voleur et le décourager, + agissant comme un moyen dissuasif.

+ +

Amazon: $69 Barre Antivol

+ +

Apple tag

+ + blog + +
+
+ +

L’Apple tag est un relayeur de position, le tag émet des signaux anonymes et toute + personnes possédant Un apapreil Apple passant proche du tag envoit un signal au + serveur de Apple vous permettant ainsi d’avoir une position geographique du dernier + repérage. Il suffit de bien le cacher dans son auto.

+ +

Toutefois, il est recommandé de désactiver le haut-parleur à l’intérieur de l’Apple + Tag pour éviter que le voleur ne le découvre et ne le désactive. En effet, Apple a + mis en place ce système pour prévenir le suivi indésirable des autres utilisateurs. + Imaginez la situation où quelqu’un aurait discrètement placé un Apple Tag sur vous, + vous permettant ainsi d’être suivi partout sans votre consentement.

+ +

Dans le contexte des véhicules volés, une fois que le voleur a pris possession de + votre voiture et qu’il détecte la présence d’un Apple Tag non associé à son compte + Apple, il recevra une notification indiquant que cet Apple Tag le suit. En réaction, + il pourrait ouvrir l’application “Find My iPhone” pour tenter de localiser l’Apple + Tag.

+ +

Pour plus de détails: https://youtu.be/hiivC_4li8Q?t=62

+ +

Amazon: $34 Apple Tag

+ +
+ + +
    +
  • Share:
  • +
  • +
  • +
  • +
  • +
+
+
+
+
+ + +
+
+ +
+
+ +
+
+
+
+ +
+ +
+
+
+
+ +@@include('blocks/footer.htm') + +@@include('footer.htm') \ No newline at end of file diff --git a/source/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg b/source/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg new file mode 100644 index 00000000..c9238414 Binary files /dev/null and b/source/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg differ diff --git a/source/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg b/source/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg new file mode 100644 index 00000000..8a3b38bf Binary files /dev/null and b/source/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg differ diff --git a/source/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg b/source/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg new file mode 100644 index 00000000..1cdd6874 Binary files /dev/null and b/source/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg differ diff --git a/source/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg b/source/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg new file mode 100644 index 00000000..aea6230b Binary files /dev/null and b/source/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg differ diff --git a/source/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png b/source/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png new file mode 100644 index 00000000..fb43cf55 Binary files /dev/null and b/source/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png differ diff --git a/source/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg b/source/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg new file mode 100644 index 00000000..e1f4523f Binary files /dev/null and b/source/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg differ diff --git a/source/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg b/source/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg new file mode 100644 index 00000000..335d5cf4 Binary files /dev/null and b/source/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg differ diff --git a/source/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg b/source/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg new file mode 100644 index 00000000..a81613b8 Binary files /dev/null and b/source/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg differ diff --git a/source/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png b/source/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png new file mode 100644 index 00000000..caad2370 Binary files /dev/null and b/source/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png differ diff --git a/source/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png b/source/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png new file mode 100644 index 00000000..f23722aa Binary files /dev/null and b/source/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png differ diff --git a/source/images/competition/20230319_082009_CE943EDD.jpg b/source/images/competition/concentration-head.jpg similarity index 100% rename from source/images/competition/20230319_082009_CE943EDD.jpg rename to source/images/competition/concentration-head.jpg diff --git a/source/partials/blocks/blog/blog-item.htm b/source/partials/blocks/blog/blog-item.htm new file mode 100644 index 00000000..d904a88b --- /dev/null +++ b/source/partials/blocks/blog/blog-item.htm @@ -0,0 +1,16 @@ + +
+ blog + +
+
+ {{ date }} +
+ +

{{ title }}

+

{{ summary }}

+ + Lire +
+
+ diff --git a/source/partials/blocks/blog/sidebar-block.htm b/source/partials/blocks/blog/sidebar-block.htm new file mode 100644 index 00000000..8441c37a --- /dev/null +++ b/source/partials/blocks/blog/sidebar-block.htm @@ -0,0 +1,28 @@ + +
+ +
diff --git a/source/partials/blocks/navigation.html b/source/partials/blocks/navigation.html index 50d7062d..7c57b837 100644 --- a/source/partials/blocks/navigation.html +++ b/source/partials/blocks/navigation.html @@ -41,36 +41,8 @@ Contact -
  • - diff --git a/source/partials/header.htm b/source/partials/header.htm index 502875d4..abc6d6ff 100644 --- a/source/partials/header.htm +++ b/source/partials/header.htm @@ -10,11 +10,11 @@ - - + + + diff --git a/source/scss/templates/_backgrounds.scss b/source/scss/templates/_backgrounds.scss index 28621eca..1138ab3d 100644 --- a/source/scss/templates/_backgrounds.scss +++ b/source/scss/templates/_backgrounds.scss @@ -1,9 +1,9 @@ .bg-1 { - background: url("../images/competition/stair-team.jpg") no-repeat 50% 50%; + background: url("../images/competition/conference-room.jpg") no-repeat 50% 50%; background-size: cover; } .bg-2 { - background: url("../images/competition/stair-team.jpg"); + background: url("../images/competition/conference-room.jpg"); background-size: cover; } diff --git a/source/scss/templates/_blog.scss b/source/scss/templates/_blog.scss index cc4ad442..2710beb8 100644 --- a/source/scss/templates/_blog.scss +++ b/source/scss/templates/_blog.scss @@ -60,6 +60,7 @@ h3.quote { padding: 0px 25px 0px 85px; margin: 65px 0 65px 0 !important; position: relative; + @include tablet { padding: 0; padding-left: 20px; @@ -74,6 +75,7 @@ h3.quote::before { position: absolute; top: 25px; left: 0; + @include tablet { top: 5px; width: 2px; @@ -104,4 +106,37 @@ h3.quote::before { .blog-item { border-bottom: 1px solid rgba(0, 0, 0, 0.05) +} + +.styled-table { + border-collapse: collapse; + margin: 25px 0; + font-size: 0.9em; + min-width: 400px; + border-radius: 5px 5px 0 0; + overflow: hidden; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); +} + +.styled-table thead tr { + background-color: #009879; + color: #ffffff; + text-align: left; +} + +.styled-table th, +.styled-table td { + padding: 12px 15px; +} + +.styled-table tbody tr { + border-bottom: 1px solid #dddddd; +} + +.styled-table tbody tr:nth-of-type(even) { + background-color: #f3f3f3; +} + +.styled-table tbody tr:last-of-type { + border-bottom: 2px solid #009879; } \ No newline at end of file diff --git a/source/scss/templates/_cta.scss b/source/scss/templates/_cta.scss index 7a30ca0e..a30c8bbb 100644 --- a/source/scss/templates/_cta.scss +++ b/source/scss/templates/_cta.scss @@ -1,11 +1,11 @@ .cta{ - background: url("../images/competition/conference-room.jpg") fixed 50% 50%; + background: url("../images/competition/concentration-head.jpg") fixed 50% 50%; background-size: cover; padding: 120px 0px; @extend .overly; } .cta-block{ - background: url("../images/competition/conference-room.jpg") no-repeat; + background: url("../images/competition/concentration-head.jpg") no-repeat; background-size: cover; @extend .overly-2; } diff --git a/source/scss/templates/_navigation.scss b/source/scss/templates/_navigation.scss index 2db41f9d..e41bdebf 100644 --- a/source/scss/templates/_navigation.scss +++ b/source/scss/templates/_navigation.scss @@ -32,6 +32,10 @@ } } + .row { + margin: 0 -15px -42px 0px; + } + } .header-top{ diff --git a/source/scss/templates/_pricing.scss b/source/scss/templates/_pricing.scss index f59d1cb2..ea11d396 100644 --- a/source/scss/templates/_pricing.scss +++ b/source/scss/templates/_pricing.scss @@ -26,7 +26,7 @@ body { } .row { - margin: 0 -15px -42px 0px; + margin: 0 -15px 0px 0px; } .col { diff --git a/theme/about.html b/theme/about.html index 2fc0685d..3ed2c967 100644 --- a/theme/about.html +++ b/theme/about.html @@ -10,11 +10,11 @@ - - + + + @@ -81,36 +81,8 @@ Contact
  • -
  • - diff --git a/theme/blog-grid.html b/theme/blog-grid.html index 8c0decd9..89fe3d1e 100644 --- a/theme/blog-grid.html +++ b/theme/blog-grid.html @@ -24,11 +24,11 @@ - - + + + @@ -95,36 +95,8 @@ Contact
  • -
  • - @@ -271,12 +243,12 @@
    - Our blog -

    Blog articles

    + Blog +

    Articles

    • Home
    • /
    • -
    • Our blog
    • +
    • Blog
    @@ -289,95 +261,34 @@

    Blog articles

    - blog + blog
    - Creativity - 5 Comments - 28th January + 1 Janvier 2024
    -

    Improve design with typography?

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

    +

    Étude des vols de voitures

    +

    Montréal

    - Learn More + Lire
    -
    - -
    -
    - blog - -
    -
    - Design - 5 Comments - 28th January -
    - -

    Interactivity connect consumer

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

    - - Learn More -
    -
    -
    - -
    - blog + blog
    - Community - 5 Comments - 28th January + 1 Janvier 2024
    -

    Marketing Strategy to bring more affect

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

    +

    Expérimentation Des Indicateurs Technique

    +

    Backtest

    - Learn More + Lire
    -
    -
    - blog - -
    -
    - Marketing - 5 Comments - 28th January -
    - -

    Marketing Strategy to bring more affect

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

    - - Learn More -
    -
    -
    -
    - -
    -
    - -
  • diff --git a/theme/blog-sidebar.html b/theme/blog-sidebar.html deleted file mode 100644 index 41ccd3ad..00000000 --- a/theme/blog-sidebar.html +++ /dev/null @@ -1,522 +0,0 @@ - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Our blog -

    Blog articles

    -
      -
    • Home
    • -
    • /
    • -
    • Our blog
    • -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - blog - -
    -
    - Creativity -
    - -

    Improve design with typography?

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

    - - Learn More -
    -
    -
    - -
    -
    - blog - -
    -
    - Design -
    - -

    Interactivity connect consumer

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

    - - Learn More -
    -
    -
    - -
    -
    - blog - -
    -
    - Community -
    - -

    Marketing Strategy to bring more affect

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

    - - Learn More -
    -
    -
    -
    -
    - blog - -
    -
    - Marketing -
    - -

    Marketing Strategy to bring more affect

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur accusantium - pariatur repudiandae!

    - - Learn More -
    -
    -
    - - -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/theme/blog-single.html b/theme/blog-single.html deleted file mode 100644 index d59b5031..00000000 --- a/theme/blog-single.html +++ /dev/null @@ -1,601 +0,0 @@ - - - - - - - - - - - - - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - News details -

    Blog Single

    -
      -
    • Home
    • -
    • /
    • -
    • News details
    • -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - blog - -
    -
    - Creativity - 5 Comments - 28th January -
    - -

    Improve design with typography?

    -

    Non illo quas blanditiis repellendus laboriosam minima animi. Consectetur - accusantium pariatur repudiandae!

    - -

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus natus, consectetur? Illum libero - vel nihil nisi quae, voluptatem, sapiente necessitatibus distinctio voluptates, iusto qui. Laboriosam - autem, nam voluptate in beatae.

    - -

    A brand for a company is like a reputation for a person. You earn reputation by trying - to do hard things well.

    - -

    The same is true as we experience the emotional - sensation of stress from our first instances of social rejection ridicule. We quickly learn to fear - and thus automatically.

    - -

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste, rerum beatae repellat tenetur - incidunt quisquam libero dolores laudantium. Nesciunt quis itaque quidem, voluptatem autem eos animi - laborum iusto expedita sapiente.

    - -
    - - -
      -
    • Share:
    • -
    • -
    • -
    • -
    • -
    -
    -
    -
    -
    - - - - -
    -
    -

    2 Comments

    -
      -
    • -
      - comment-author - -
      Philip W
      - United Kingdom - -
      - Reply | - Posted October 7, 2018 -
      - -
      -

      Some consultants are employed indirectly by the client via a consultancy staffing company, a - company that provides consultants on an agency basis.

      -
      -
      -
    • - -
    • -
      - comment-author - -
      Philip W
      - United Kingdom - -
      - Reply | - Posted October 7, 2018 -
      - -
      -

      Some consultants are employed indirectly by the client via a consultancy staffing company, a - company that provides consultants on an agency basis.

      -
      -
      -
    • -
    -
    -
    - -
    -
    -

    Write a comment

    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/theme/contact.html b/theme/contact.html index 72c1b6b4..95226c86 100644 --- a/theme/contact.html +++ b/theme/contact.html @@ -10,11 +10,11 @@ - - + + + @@ -81,36 +81,8 @@ Contact -
  • - diff --git a/theme/css/style.css b/theme/css/style.css index 1927d0b3..762e12e6 100644 --- a/theme/css/style.css +++ b/theme/css/style.css @@ -430,6 +430,9 @@ a:focus { margin: 15px 0 10px; } } +#navbar .row { + margin: 0 -15px -42px 0px; +} .header-top { background: rgb(34, 35, 40); @@ -580,12 +583,12 @@ ul.dropdown-menu li { } } .bg-1 { - background: url("../images/competition/stair-team.jpg") no-repeat 50% 50%; + background: url("../images/competition/conference-room.jpg") no-repeat 50% 50%; background-size: cover; } .bg-2 { - background: url("../images/competition/stair-team.jpg"); + background: url("../images/competition/conference-room.jpg"); background-size: cover; } @@ -786,13 +789,13 @@ hr { } .cta { - background: url("../images/competition/conference-room.jpg") fixed 50% 50%; + background: url("../images/competition/concentration-head.jpg") fixed 50% 50%; background-size: cover; padding: 120px 0px; } .cta-block { - background: url("../images/competition/conference-room.jpg") no-repeat; + background: url("../images/competition/concentration-head.jpg") no-repeat; background-size: cover; } @@ -839,7 +842,7 @@ body { } .row { - margin: 0 -15px -42px 0px; + margin: 0 -15px 0px 0px; } .col { @@ -1223,6 +1226,39 @@ h3.quote::before { border-bottom: 1px solid rgba(0, 0, 0, 0.05); } +.styled-table { + border-collapse: collapse; + margin: 25px 0; + font-size: 0.9em; + min-width: 400px; + border-radius: 5px 5px 0 0; + overflow: hidden; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); +} + +.styled-table thead tr { + background-color: #009879; + color: #ffffff; + text-align: left; +} + +.styled-table th, +.styled-table td { + padding: 12px 15px; +} + +.styled-table tbody tr { + border-bottom: 1px solid #dddddd; +} + +.styled-table tbody tr:nth-of-type(even) { + background-color: #f3f3f3; +} + +.styled-table tbody tr:last-of-type { + border-bottom: 2px solid #009879; +} + /*================================================================= Single Blog Page ==================================================================*/ diff --git a/theme/css/style.css.map b/theme/css/style.css.map index 4a51e649..7e5a4c4c 100644 --- a/theme/css/style.css.map +++ b/theme/css/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["_typography.scss","_mixins.scss","style.css","_media-query.scss","_variables.scss","_common.scss","_main.scss","templates/_header.scss","templates/_navigation.scss","templates/_backgrounds.scss","templates/_slider.scss","templates/_intro.scss","templates/_about.scss","templates/_counter.scss","templates/_team.scss","templates/_service.scss","templates/_cta.scss","templates/_review.scss","templates/_pricing.scss","templates/_portfolio.scss","templates/_contact.scss","templates/_blog.scss","templates/_single-post.scss","templates/_blog-sidebar.scss","templates/_footer.scss","templates/_responsive.scss","style.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["// Fonts \n@import url('https://fonts.googleapis.com/css2?family=Hind:wght@400;500;600;700&family=Montserrat:wght@400;700&family=Poppins:wght@300;400;600;700&display=swap');\n\nhtml{\n overflow-x: hidden;\n}\n\nbody {\n line-height: 1.5;\n font-family: $extra-font;\n -webkit-font-smoothing: antialiased;\n font-size: 17px;\n // color: #3a405b;\n color: rgba(0,0,0,0.65);\n\n}\nh1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6 {\n font-family: $secondary-font;\n font-weight:600;\n color: $black;\n}\n\nh1 ,.h1{\n font-size: 2.5rem;\n \n}\n\nh2,.h2 {\n font-size: 2rem;\n font-weight: 600;\n line-height: 42px;\n}\n\nh3,.h3 {\n font-size: 1.5rem;\n}\n\nh4,.h4 {\n font-size: 1.3rem;\n line-height: 30px;\n}\n\nh5,.h5 {\n font-size: 1.25rem;\n}\n\nh6,.h6 {\n font-size: 1rem;\n}\n\n\np{\n line-height: 30px;\n}","// Transition\n@mixin transition($what: all, $time: 0.2s, $how: ease-in-out) {\n -webkit-transition: $what $time $how;\n -moz-transition: $what $time $how;\n -ms-transition: $what $time $how;\n -o-transition: $what $time $how;\n transition: $what $time $how;\n}\n\n// Transform\n@mixin transform($transforms) {\n\t -moz-transform: $transforms;\n\t -o-transform: $transforms;\n\t -ms-transform: $transforms;\n\t-webkit-transform: $transforms;\n transform: $transforms;\n}\n// rotate\n@mixin rotate ($deg) {\n @include transform(rotate(#{$deg}deg));\n}\n \n// scale\n@mixin scale($scale) {\n\t @include transform(scale($scale));\n} \n// translate\n@mixin translate ($x, $y) {\n @include transform(translate($x, $y));\n}\n// skew\n@mixin skew ($x, $y) {\n @include transform(skew(#{$x}deg, #{$y}deg));\n}\n//transform origin\n@mixin transform-origin ($origin) {\n moz-transform-origin: $origin;\n\t -o-transform-origin: $origin;\n\t -ms-transform-origin: $origin;\n\t-webkit-transform-origin: $origin;\n transform-origin: $origin;\n}\n\n\n@keyframes slide {\n 0% {\n transform: translateX(100%);\n }\n\n 100% {\n transform: translateX(-100%);\n }\n}","@import url(\"https://fonts.googleapis.com/css2?family=Hind:wght@400;500;600;700&family=Montserrat:wght@400;700&family=Poppins:wght@300;400;600;700&display=swap\");\n@keyframes slide {\n 0% {\n transform: translateX(100%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n/*=== MEDIA QUERY ===*/\nhtml {\n overflow-x: hidden;\n}\n\nbody {\n line-height: 1.5;\n font-family: \"Hind\", serif;\n -webkit-font-smoothing: antialiased;\n font-size: 17px;\n color: rgba(0, 0, 0, 0.65);\n}\n\nh1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {\n font-family: \"Poppins\", sans-serif;\n font-weight: 600;\n color: #242424;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n font-weight: 600;\n line-height: 42px;\n}\n\nh3, .h3 {\n font-size: 1.5rem;\n}\n\nh4, .h4 {\n font-size: 1.3rem;\n line-height: 30px;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\np {\n line-height: 30px;\n}\n\n.navbar-toggle .icon-bar {\n background: #ff0000;\n}\n\ninput[type=email], input[type=password], input[type=text], input[type=tel] {\n box-shadow: none;\n height: 45px;\n outline: none;\n font-size: 14px;\n}\ninput[type=email]:focus, input[type=password]:focus, input[type=text]:focus, input[type=tel]:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n\n.form-control {\n box-shadow: none;\n border-radius: 0;\n}\n.form-control:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n\n.py-7 {\n padding: 7rem 0px;\n}\n\n.btn {\n display: inline-block;\n font-size: 14px;\n font-size: 0.8125rem;\n font-weight: 500;\n padding: 1rem 2.5rem 0.8rem;\n text-transform: uppercase;\n border-radius: 0;\n transition: 0.3s;\n}\n.btn.btn-icon i {\n font-size: 16px;\n vertical-align: middle;\n margin-right: 5px;\n}\n.btn:focus {\n outline: 0px;\n box-shadow: none;\n}\n\n.btn-main, .btn-small, .btn-transparent {\n background: #ff0000;\n color: #fff;\n -webkit-transition: all 0.2s ease;\n -moz-transition: all 0.2s ease;\n -ms-transition: all 0.2s ease;\n -o-transition: all 0.2s ease;\n transition: all 0.2s ease;\n}\n.btn-main:hover, .btn-small:hover, .btn-transparent:hover {\n background: #cc0000;\n color: #fff;\n}\n\n.btn-solid-border {\n border: 2px solid #ff0000;\n background: transparent;\n color: #242424;\n}\n.btn-solid-border:hover {\n border: 2px solid #ff0000;\n background: #ff0000;\n}\n\n.btn-transparent {\n background: transparent;\n padding: 0;\n color: #ff0000;\n}\n.btn-transparent:hover {\n background: transparent;\n color: #ff0000;\n}\n\n.btn-large {\n padding: 20px 45px;\n}\n.btn-large.btn-icon i {\n font-size: 16px;\n vertical-align: middle;\n margin-right: 5px;\n}\n\n.btn-small {\n padding: 13px 25px 10px;\n font-size: 12px;\n}\n\n.btn-round {\n border-radius: 4px;\n}\n\n.btn-round-full {\n border-radius: 50px;\n}\n\n.btn.active:focus, .btn:active:focus, .btn:focus {\n outline: 0;\n}\n\n.bg-gray {\n background: #f5f8f9;\n}\n\n.bg-primary {\n background: #ff0000;\n}\n\n.bg-primary-dark {\n background: #cc0000;\n}\n\n.bg-primary-darker {\n background: #990000;\n}\n\n.bg-dark {\n background: #242424;\n}\n\n.bg-gradient {\n background-image: linear-gradient(145deg, rgba(19, 177, 205, 0.95) 0%, rgba(152, 119, 234, 0.95) 100%);\n background-repeat: repeat-x;\n}\n\n.section {\n padding: 100px 0;\n}\n\n.section-sm {\n padding: 70px 0;\n}\n\n.section-title {\n margin-bottom: 70px;\n}\n.section-title .title {\n font-size: 50px;\n line-height: 50px;\n}\n.section-title p {\n color: #666;\n font-family: \"Poppins\", sans-serif;\n}\n\n.subtitle {\n color: #ff0000;\n font-size: 14px;\n letter-spacing: 1px;\n}\n\n.overly, .cta, .slider, .page-title {\n position: relative;\n}\n.overly:before, .cta:before, .slider:before, .page-title:before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n background: #000;\n}\n\n.overly-2, .latest-blog, .cta-block, .bg-counter {\n position: relative;\n}\n.overly-2:before, .latest-blog:before, .cta-block:before, .bg-counter:before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n}\n\n.text-color {\n color: #ff0000;\n}\n\n.text-black {\n color: #242424;\n}\n\n.text-color2 {\n color: #c54041;\n}\n\n.text-color2 {\n color: #b99769;\n}\n\n.text-sm {\n font-size: 14px;\n}\n\n.text-md {\n font-size: 2.25rem;\n}\n\n.text-lg {\n font-size: 3.75rem;\n}\n\n.no-spacing {\n letter-spacing: 0px;\n}\n\n/* Links */\na {\n color: #242424;\n text-decoration: none;\n}\n\na:focus, a:hover {\n color: #ff0000;\n text-decoration: none;\n}\n\na:focus {\n outline: none;\n}\n\n.content-title {\n font-size: 40px;\n line-height: 50px;\n}\n\n.page-title {\n padding: 100px 0;\n}\n.page-title .block h1 {\n color: #fff;\n}\n.page-title .block p {\n color: #fff;\n}\n\n.page-wrapper {\n padding: 70px 0;\n}\n\n#wrapper-work {\n overflow: hidden;\n padding-top: 100px;\n}\n#wrapper-work ul li {\n width: 50%;\n float: left;\n position: relative;\n}\n#wrapper-work ul li img {\n width: 100%;\n height: 100%;\n}\n#wrapper-work ul li .items-text {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n color: #fff;\n background: rgba(0, 0, 0, 0.6);\n padding-left: 44px;\n padding-top: 140px;\n}\n#wrapper-work ul li .items-text h2 {\n padding-bottom: 28px;\n padding-top: 75px;\n position: relative;\n}\n#wrapper-work ul li .items-text h2:before {\n content: \"\";\n position: absolute;\n left: 0;\n bottom: 0;\n width: 75px;\n height: 3px;\n background: #fff;\n}\n#wrapper-work ul li .items-text p {\n padding-top: 30px;\n font-size: 16px;\n line-height: 27px;\n font-weight: 300;\n padding-right: 80px;\n}\n\n/*--\n\tfeatures-work Start \n--*/\n#features-work {\n padding-top: 50px;\n padding-bottom: 75px;\n}\n#features-work .block ul li {\n width: 19%;\n text-align: center;\n display: inline-block;\n padding: 40px 0px;\n}\n\n#tickerScroller {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n padding: 10px 0;\n background-color: #333;\n color: white;\n overflow: hidden;\n z-index: 9999;\n border-radius: 0px 0px 10px 10px;\n}\n\n#tickerContainer {\n display: flex;\n align-items: center;\n animation: slide linear infinite;\n white-space: nowrap;\n font-family: \"Arial\", sans-serif;\n}\n\n.tickerText {\n margin-right: 50px;\n}\n\n#navbar {\n background: rgb(34, 35, 40);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n#navbar li {\n padding-left: 15px;\n}\n@media (max-width: 992px) {\n #navbar li {\n padding-left: 0;\n }\n}\n#navbar .nav-link {\n font-family: \"Poppins\", sans-serif;\n font-weight: 500;\n color: #fff;\n text-transform: uppercase;\n font-size: 14px;\n letter-spacing: 0.5px;\n transition: all 0.25s ease;\n}\n#navbar .nav-link:hover, #navbar .nav-link:focus,\n#navbar .active .nav-link {\n color: #ff0000;\n}\n#navbar .btn {\n padding: 0.7rem 1.5rem 0.5rem;\n color: #fff;\n}\n@media (max-width: 992px) {\n #navbar .btn {\n margin: 15px 0 10px;\n }\n}\n\n.header-top {\n background: rgb(34, 35, 40);\n color: #919194;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n}\n.header-top .header-top-socials {\n border-right: 1px solid rgba(255, 255, 255, 0.05);\n padding: 12px 0px;\n}\n.header-top .header-top-socials {\n margin-left: -8px;\n}\n.header-top .header-top-socials a {\n color: #919194;\n margin-right: 8px;\n font-size: 16px;\n padding: 0 8px;\n}\n.header-top .header-top-socials a:hover {\n color: #ff0000;\n}\n.header-top .header-top-info {\n color: #919194;\n font-size: 16px;\n}\n.header-top .header-top-info a span {\n color: #fff;\n}\n.header-top .header-top-info a {\n margin-left: 35px;\n color: #919194;\n}\n\n.navbar-toggler {\n padding: 0;\n font-size: 1.5rem;\n color: #fff;\n}\n.navbar-toggler:focus {\n outline: 0;\n}\n\n.navbar-brand {\n color: #fff;\n font-weight: 600;\n letter-spacing: 1px;\n}\n.navbar-brand span {\n color: #ff0000;\n}\n\n.dropdown-menu {\n padding: 0px;\n border: 0;\n border-radius: 0px;\n}\n@media (max-width: 992px) {\n .dropdown-menu {\n text-align: center;\n float: left !important;\n width: 100%;\n margin: 0;\n }\n}\n.dropdown-menu li:first-child {\n margin-top: 5px;\n}\n.dropdown-menu li:last-child {\n margin-bottom: 5px;\n}\n\n.dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-menu,\n.dropright .dropdown-menu {\n margin: 0;\n}\n\n.dropleft .dropdown-toggle::before,\n.dropright .dropdown-toggle::after {\n font-weight: bold;\n font-family: \"Font Awesome 5 Free\";\n border: 0;\n font-size: 10px;\n vertical-align: 1px;\n}\n\n.dropleft .dropdown-toggle::before {\n content: \"\\f053\";\n margin-right: 5px;\n}\n\n.dropright .dropdown-toggle::after {\n content: \"\\f054\";\n margin-left: 5px;\n}\n\n.dropdown-item {\n padding: 0.8rem 1.5rem 0.55rem;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 500;\n}\n@media (max-width: 992px) {\n .dropdown-item {\n padding: 0.6rem 1.5rem 0.35rem;\n }\n}\n\n.dropdown-submenu.active > .dropdown-toggle,\n.dropdown-submenu:hover > .dropdown-item,\n.dropdown-item.active,\n.dropdown-item:hover {\n background: #ff0000;\n color: #fff;\n}\n\nul.dropdown-menu li {\n padding-left: 0px !important;\n}\n\n@media (min-width: 992px) {\n .dropdown-menu {\n transition: all 0.2s ease-in, visibility 0s linear 0.2s, transform 0.2s linear;\n display: block;\n visibility: hidden;\n opacity: 0;\n min-width: 200px;\n margin-top: 15px;\n }\n .dropdown-menu li:first-child {\n margin-top: 10px;\n }\n .dropdown-menu li:last-child {\n margin-bottom: 10px;\n }\n .dropleft .dropdown-menu,\n .dropright .dropdown-menu {\n margin-top: -10px;\n }\n .dropdown:hover > .dropdown-menu {\n visibility: visible;\n transition: all 0.45s ease 0s;\n opacity: 1;\n }\n}\n.bg-1 {\n background: url(\"../images/competition/stair-team.jpg\") no-repeat 50% 50%;\n background-size: cover;\n}\n\n.bg-2 {\n background: url(\"../images/competition/stair-team.jpg\");\n background-size: cover;\n}\n\n.slider {\n background: url(\"../../images/competition/good-team.jpg\") no-repeat;\n background-size: cover;\n background-position: right 0% bottom 80%;\n background-repeat: no-repeat;\n padding: 500px 0;\n position: relative;\n}\n@media (max-width: 768px) {\n .slider {\n padding: 300px 0;\n }\n .slider .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n.slider .block h1 {\n font-size: 70px;\n line-height: 80px;\n font-weight: 600;\n color: #fff;\n}\n.slider .block p {\n margin-bottom: 30px;\n color: #b9b9b9;\n font-size: 18px;\n line-height: 27px;\n font-weight: 300;\n}\n.slider .block span {\n letter-spacing: 1px;\n}\n\n.intro-item i {\n font-size: 60px;\n line-height: 60px;\n}\n\n.color-one {\n color: #ff0000;\n}\n\n.color-two {\n color: #00d747;\n}\n\n.color-three {\n color: #9262ff;\n}\n\n.color-four {\n color: #088ed3;\n}\n\n.bg-about {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n width: 45%;\n min-height: 650px;\n background: url(\"../../images/competition/concentration.jpg\") no-repeat;\n background-size: cover;\n background-position: center;\n border-radius: 1000px;\n}\n\n.about-content {\n padding: 20px 0px 0px 80px;\n}\n.about-content h4 {\n font-weight: 600;\n}\n.about-content h4:before {\n position: absolute;\n content: \"\\f576\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 30px;\n position: absolute;\n top: 8px;\n left: -65px;\n font-weight: 700;\n}\n\n.counter-item .counter-stat {\n font-size: 50px;\n}\n.counter-item p {\n margin-bottom: 0px;\n}\n\n.bg-counter {\n background: url(\"../images/bg/counter.jpg\") no-repeat;\n background-size: cover;\n}\n\n.team-item {\n border-radius: 20px;\n overflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n background: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n background: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n background: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n background: #3399cc;\n}\n\n.team-img-hover {\n position: absolute;\n top: 10px;\n left: 10px;\n right: 10px;\n bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.6);\n opacity: 0;\n transition: all 0.2s ease-in-out;\n transform: scale(0.8);\n}\n\n.team-img-hover li a {\n display: inline-block;\n color: #fff;\n width: 50px;\n height: 50px;\n font-size: 20px;\n line-height: 50px;\n border: 2px solid transparent;\n border-radius: 2px;\n text-align: center;\n transform: translateY(0);\n backface-visibility: hidden;\n transition: all 0.3s ease-in-out;\n}\n\n.team-img-hover:hover li a:hover {\n transform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n opacity: 1;\n transform: scale(1);\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n\n.service-item {\n position: relative;\n padding-left: 80px;\n}\n.service-item i {\n position: absolute;\n left: 0px;\n top: 5px;\n font-size: 50px;\n opacity: 0.4;\n}\n\n.cta {\n background: url(\"../images/competition/conference-room.jpg\") fixed 50% 50%;\n background-size: cover;\n padding: 120px 0px;\n}\n\n.cta-block {\n background: url(\"../images/competition/conference-room.jpg\") no-repeat;\n background-size: cover;\n}\n\n.testimonial-item {\n padding: 50px 30px;\n}\n.testimonial-item i {\n font-size: 40px;\n position: absolute;\n left: 30px;\n top: 30px;\n z-index: 1;\n}\n.testimonial-item .testimonial-text {\n font-size: 20px;\n line-height: 38px;\n color: #242424;\n margin-bottom: 30px;\n font-style: italic;\n}\n.testimonial-item .testimonial-item-content {\n padding-left: 65px;\n}\n\n.slick-slide:focus, .slick-slide a {\n outline: none;\n}\n\nbody {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n}\n\n.container {\n width: 80%;\n margin: auto;\n overflow: hidden;\n padding: 15px;\n}\n@media (max-width: 768px) {\n .container {\n width: 95%;\n }\n}\n\n.row {\n margin: 0 -15px -42px 0px;\n}\n\n.col {\n padding: 0 15px;\n}\n\n.page-title {\n background: url(\"images/competition/concentration.jpg\") cover;\n padding: 30px 0;\n color: white;\n text-align: center;\n}\n\n.partner-logos .col {\n text-align: center;\n margin-bottom: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n.partner-logos .col img {\n max-width: 100%;\n height: auto;\n}\n@media (max-width: 768px) {\n .partner-logos .col {\n flex-basis: 50%;\n }\n}\n\n.partnership-offers table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 20px;\n}\n.partnership-offers table th, .partnership-offers table td {\n border: 1px solid #ddd;\n padding: 10px;\n text-align: left;\n}\n.partnership-offers table th {\n background-color: #4CAF50;\n color: white;\n font-weight: bold;\n}\n.partnership-offers table tr:nth-child(even) {\n background-color: #f2f2f2;\n}\n.partnership-offers table tr:hover {\n background-color: #ddd;\n}\n.partnership-offers table tr ul {\n list-style: none;\n padding: 0;\n}\n.partnership-offers table tr ul li {\n padding: 5px 0;\n}\n\n.text-center {\n text-align: center;\n margin: 20px 0;\n}\n.text-center .btn-primary {\n background-color: #007bff;\n border: none;\n color: white;\n padding: 12px 25px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n transition-duration: 0.4s;\n cursor: pointer;\n}\n.text-center .btn-primary:hover {\n background-color: white;\n color: black;\n border: 2px solid #007bff;\n}\n\n.hero-img {\n background: url(\"../images/bg/home-5.jpg\") cover;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n}\n.hero-img::before {\n content: \"\";\n background: rgba(0, 0, 0, 0.5);\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.portflio-item .portfolio-item-content {\n position: absolute;\n content: \"\";\n right: 0px;\n bottom: 0px;\n opacity: 0;\n transition: all 0.35s ease;\n}\n.portflio-item:before {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n opacity: 0;\n transition: all 0.35s ease;\n overflow: hidden;\n}\n.portflio-item:hover:before {\n opacity: 1;\n}\n.portflio-item:hover .portfolio-item-content {\n opacity: 1;\n bottom: 20px;\n right: 30px;\n}\n.portflio-item .overlay-item {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n bottom: 0px;\n right: 0px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 80px;\n color: #ff0000;\n opacity: 0;\n transition: all 0.35s ease;\n}\n.portflio-item:hover .overlay-item {\n opacity: 1;\n}\n\n.project-card {\n background: rgba(255, 255, 255, 0.1);\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n border-radius: 15px;\n padding: 20px;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s;\n overflow: hidden;\n margin-bottom: 20px;\n}\n.project-card:hover {\n box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);\n}\n.project-card .project-link {\n transform: translateY(10px);\n transition: all 0.3s ease;\n text-decoration: none;\n color: blue;\n cursor: pointer;\n}\n.project-card .project-link:hover {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n.project-card .icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.project-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n padding: 10px;\n}\n\n.project-title {\n font-size: 18px;\n font-weight: bold;\n}\n\n.project-stars {\n color: #ff0000;\n font-size: 14px;\n}\n\n.project-description {\n white-space: normal;\n font-size: 0.875rem;\n color: #718096;\n margin-bottom: 1rem;\n width: 600px;\n}\n\n.grid-container {\n display: flex;\n grid-template-columns: repeat(3, 1fr);\n /* 3 columns */\n grid-template-rows: repeat(3, 1fr);\n /* 3 rows */\n grid-gap: 20px;\n /* 20px gap between columns */\n}\n@media (max-width: 768px) {\n .grid-container {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n@media (max-width: 480px) {\n .grid-container {\n grid-template-columns: 1fr;\n }\n}\n.grid-container .project-image img {\n width: 100%;\n height: 200px;\n object-fit: cover;\n border-radius: 10px 10px 0 0;\n}\n\n.contact-form-wrap .form-group {\n padding-bottom: 15px;\n margin: 0px;\n}\n.contact-form-wrap .form-group .form-control {\n background: #f5f8f9;\n height: 48px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n}\n.contact-form-wrap .form-group-2 {\n margin-bottom: 13px;\n}\n.contact-form-wrap .form-group-2 textarea {\n background: #f5f8f9;\n height: 135px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n}\n\n.address-block li {\n margin-bottom: 10px;\n}\n.address-block li i {\n font-size: 20px;\n width: 20px;\n}\n\n.social-icons li {\n margin: 0 6px;\n}\n.social-icons i {\n margin-right: 15px;\n font-size: 25px;\n}\n\n.google-map {\n position: relative;\n}\n\n.google-map #map {\n width: 100%;\n height: 450px;\n}\n\n/*=================================================================\n Latest Posts\n==================================================================*/\n.blog-item-content h3 {\n line-height: 36px;\n}\n.blog-item-content h3 a {\n transition: all 0.4s ease 0s;\n}\n.blog-item-content h3 a:hover {\n color: #ff0000 !important;\n}\n\n.lh-36 {\n line-height: 36px;\n}\n\n.tags a {\n background: #f5f8f9;\n display: inline-block;\n padding: 8px 23px;\n border-radius: 38px;\n margin-bottom: 10px;\n border: 1px solid #eee;\n font-size: 14px;\n text-transform: capitalize;\n}\n\n.pagination .nav-links a,\n.pagination .nav-links span.current {\n font-size: 20px;\n font-weight: 500;\n color: #c9c9c9;\n margin: 0 10px;\n text-transform: uppercase;\n letter-spacing: 1.2px;\n}\n\n.pagination .nav-links span.current,\n.pagination .nav-links a.next,\n.pagination .nav-links a.prev {\n color: black;\n}\n\nh3.quote {\n font-size: 24px;\n line-height: 40px;\n font-weight: normal;\n padding: 0px 25px 0px 85px;\n margin: 65px 0 65px 0 !important;\n position: relative;\n}\n@media (max-width: 768px) {\n h3.quote {\n padding: 0;\n padding-left: 20px;\n }\n h3.quote .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n\nh3.quote::before {\n content: \"\";\n width: 55px;\n height: 2px;\n background: #ff0000;\n position: absolute;\n top: 25px;\n left: 0;\n}\n@media (max-width: 768px) {\n h3.quote::before {\n top: 5px;\n width: 2px;\n height: 35px;\n }\n h3.quote::before .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n\n.nav-posts-title {\n line-height: 25px;\n font-size: 18px;\n}\n\n.latest-blog {\n position: relative;\n padding-bottom: 150px;\n}\n\n.mt-70 {\n margin-top: -70px;\n}\n\n.border-1 {\n border: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.blog-item {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n/*=================================================================\n Single Blog Page\n==================================================================*/\n.post.post-single {\n border: none;\n}\n.post.post-single .post-thumb {\n margin-top: 30px;\n}\n\n.post-sub-heading {\n border-bottom: 1px solid #dedede;\n padding-bottom: 20px;\n letter-spacing: 2px;\n text-transform: uppercase;\n font-size: 16px;\n margin-bottom: 20px;\n}\n\n.post-social-share {\n margin-bottom: 50px;\n}\n\n.post-comments {\n margin: 30px 0;\n}\n.post-comments .media {\n margin-top: 20px;\n}\n.post-comments .media > .pull-left {\n padding-right: 20px;\n}\n.post-comments .comment-author {\n margin-top: 0;\n margin-bottom: 0px;\n font-weight: 500;\n}\n.post-comments .comment-author a {\n color: #ff0000;\n font-size: 14px;\n text-transform: uppercase;\n}\n.post-comments time {\n margin: 0 0 5px;\n display: inline-block;\n color: #808080;\n font-size: 12px;\n}\n.post-comments .comment-button {\n color: #ff0000;\n display: inline-block;\n margin-left: 5px;\n font-size: 12px;\n}\n.post-comments .comment-button i {\n margin-right: 5px;\n display: inline-block;\n}\n.post-comments .comment-button:hover {\n color: #ff0000;\n}\n\n.post-excerpt {\n margin-bottom: 60px;\n}\n.post-excerpt h3 a {\n color: #000;\n}\n.post-excerpt p {\n margin: 0 0 30px;\n}\n.post-excerpt blockquote.quote-post {\n margin: 20px 0;\n}\n.post-excerpt blockquote.quote-post p {\n line-height: 30px;\n font-size: 20px;\n color: #ff0000;\n}\n\n.single-blog {\n background-color: #fff;\n margin-bottom: 50px;\n padding: 20px;\n}\n\n.blog-subtitle {\n font-size: 15px;\n padding-bottom: 10px;\n border-bottom: 1px solid #dedede;\n margin-bottom: 25px;\n text-transform: uppercase;\n}\n\n.next-prev {\n border-bottom: 1px solid #dedede;\n border-top: 1px solid #dedede;\n margin: 20px 0;\n padding: 25px 0;\n}\n.next-prev a {\n color: #000;\n}\n.next-prev a:hover {\n color: #ff0000;\n}\n.next-prev .prev-post i {\n margin-right: 10px;\n}\n.next-prev .next-post i {\n margin-left: 10px;\n}\n\n.social-profile ul li {\n margin: 0 10px 0 0;\n display: inline-block;\n}\n.social-profile ul li a {\n color: #4e595f;\n display: block;\n font-size: 16px;\n}\n.social-profile ul li a i:hover {\n color: #ff0000;\n}\n\n.comments-section {\n margin-top: 35px;\n}\n\n.author-about {\n margin-top: 40px;\n}\n\n.post-author {\n margin-right: 20px;\n}\n\n.post-author > img {\n border: 1px solid #dedede;\n max-width: 120px;\n padding: 5px;\n width: 100%;\n}\n\n.comment-list ul {\n margin-top: 20px;\n}\n.comment-list ul li {\n margin-bottom: 20px;\n}\n\n.comment-wrap {\n border: 1px solid #dedede;\n border-radius: 1px;\n margin-left: 20px;\n padding: 10px;\n position: relative;\n}\n.comment-wrap .author-avatar {\n margin-right: 10px;\n}\n.comment-wrap .media .media-heading {\n font-size: 14px;\n margin-bottom: 8px;\n}\n.comment-wrap .media .media-heading a {\n color: #ff0000;\n font-size: 13px;\n}\n.comment-wrap .media .comment-meta {\n font-size: 12px;\n color: #888;\n}\n.comment-wrap .media p {\n margin-top: 15px;\n}\n\n.comment-reply-form {\n margin-top: 80px;\n}\n.comment-reply-form input, .comment-reply-form textarea {\n height: 35px;\n border-radius: 0;\n box-shadow: none;\n}\n.comment-reply-form input:focus, .comment-reply-form textarea:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n.comment-reply-form textarea, .comment-reply-form .btn-main, .comment-reply-form .btn-transparent, .comment-reply-form .btn-small {\n height: auto;\n}\n\n.widget {\n margin-bottom: 30px;\n padding-bottom: 35px;\n}\n.widget .widget-title {\n margin-bottom: 15px;\n padding-bottom: 10px;\n font-size: 16px;\n color: #333;\n font-weight: 500;\n border-bottom: 1px solid #ddd;\n}\n.widget.widget-latest-post .media .media-object {\n width: 100px;\n height: auto;\n}\n.widget.widget-latest-post .media .media-heading a {\n color: black;\n font-size: 16px;\n}\n.widget.widget-latest-post .media p {\n font-size: 12px;\n color: #808080;\n}\n.widget.widget-category ul li {\n margin-bottom: 10px;\n}\n.widget.widget-category ul li a {\n color: #837f7e;\n -webkit-transition: all 0.3s ease;\n -moz-transition: all 0.3s ease;\n -ms-transition: all 0.3s ease;\n -o-transition: all 0.3s ease;\n transition: all 0.3s ease;\n}\n.widget.widget-category ul li a:before {\n padding-right: 10px;\n}\n.widget.widget-category ul li a:hover {\n color: #ff0000;\n padding-left: 5px;\n}\n.widget.widget-tag ul li {\n margin-bottom: 10px;\n display: inline-block;\n margin-right: 5px;\n}\n.widget.widget-tag ul li a {\n color: #837f7e;\n display: inline-block;\n padding: 8px 15px;\n border: 1px solid #dedede;\n border-radius: 30px;\n font-size: 14px;\n -webkit-transition: all 0.3s ease;\n -moz-transition: all 0.3s ease;\n -ms-transition: all 0.3s ease;\n -o-transition: all 0.3s ease;\n transition: all 0.3s ease;\n}\n.widget.widget-tag ul li a:hover {\n color: #fff;\n background: #ff0000;\n border: 1px solid #ff0000;\n}\n\n.team-item {\n border-radius: 20px;\n overflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n background: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n background: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n background: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n background: #3399cc;\n}\n\n.team-img-hover {\n position: absolute;\n top: 10px;\n left: 10px;\n right: 10px;\n bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.6);\n opacity: 0;\n transition: all 0.2s ease-in-out;\n transform: scale(0.8);\n}\n\n.team-img-hover li a {\n display: inline-block;\n color: #fff;\n width: 50px;\n height: 50px;\n font-size: 20px;\n line-height: 50px;\n border: 2px solid transparent;\n border-radius: 2px;\n text-align: center;\n transform: translateY(0);\n backface-visibility: hidden;\n transition: all 0.3s ease-in-out;\n}\n\n.team-img-hover:hover li a:hover {\n transform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n opacity: 1;\n transform: scale(1);\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n\n.footer {\n padding-bottom: 10px;\n}\n.footer .copyright a {\n font-weight: 600;\n}\n\n.lh-35 {\n line-height: 35px;\n}\n\n.logo {\n color: black;\n font-weight: 600;\n letter-spacing: 1px;\n}\n.logo span {\n color: #ff0000;\n}\n\n.sub-form {\n position: relative;\n}\n.sub-form .form-control {\n border: 1px solid rgba(0, 0, 0, 0.06);\n background: #f5f8f9;\n}\n\n.footer-btm {\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n}\n\n.scroll-to-top {\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 999;\n height: 40px;\n width: 40px;\n background: #ff0000;\n border-radius: 50%;\n text-align: center;\n line-height: 43px;\n color: white;\n cursor: pointer;\n transition: 0.3s;\n display: none;\n}\n@media (max-width: 480px) {\n .scroll-to-top {\n bottom: 15px;\n right: 15px;\n }\n}\n.scroll-to-top:hover {\n background-color: #333;\n}\n\n/*=== MEDIA QUERY ===*/\n@media (max-width: 992px) {\n .slider .block h1 {\n font-size: 56px;\n line-height: 70px;\n }\n .bg-about {\n display: none;\n }\n section.about {\n border: 1px solid #dee2e6;\n border-left: 0;\n border-right: 0;\n }\n .footer-socials {\n margin-top: 20px;\n }\n .footer-socials li a {\n margin-left: 0px;\n }\n}\n@media (max-width: 768px) {\n .navbar-toggler {\n color: #fff;\n }\n .bg-about {\n display: none;\n }\n .slider .block h1 {\n font-size: 48px;\n line-height: 62px;\n }\n .blog-item-meta span {\n margin: 6px 0px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n@media (max-width: 480px) {\n .header-top .header-top-info a {\n margin-left: 10px;\n margin-right: 10px;\n }\n .navbar-toggler {\n color: #fff;\n }\n .slider .block h1 {\n font-size: 38px;\n line-height: 50px;\n }\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n .p-5 {\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n}\n@media (max-width: 400px) {\n .header-top .header-top-info a {\n display: block;\n }\n .navbar-toggler {\n color: #fff;\n }\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n .bg-about {\n display: none;\n }\n .p-5 {\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .text-lg {\n font-size: 3rem;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n}\n@tailwind base;\n@tailwind components;\n@tailwind utilities;","/*=== MEDIA QUERY ===*/\n@mixin mobile-xs {\n @media(max-width:400px) {\n @content;\n }\n}\n\n@mixin mobile {\n @media(max-width:480px) {\n @content;\n }\n}\n\n@mixin tablet {\n @media(max-width:768px) {\n @content;\n\n .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n }\n}\n\n@mixin desktop {\n @media(max-width:992px) {\n @content;\n }\n}\n\n@mixin large-desktop {\n @media(max-width:1200px) {\n @content;\n }\n}","$light: #fff;\n$primary-color: rgb(247, 87, 87);\n$primary-color: #ff0000; // Example primary color\n$secondary-color: #f5f8f9;\n$event-color: #c54041;\n$law-color: #b99769;\n$black: #242424;\n$border-color:#dedede;\n$primary-font:'Montserrat', sans-serif;\n$secondary-font:'Poppins', sans-serif;\n$extra-font:'Hind', serif;",".navbar-toggle .icon-bar {\n background: $primary-color;\n}\n\ninput[type=\"email\"],input[type=\"password\"],input[type=\"text\"],input[type=\"tel\"]{\n box-shadow:none;\n height:45px;\n outline: none;\n font-size:14px;\n &:focus {\n box-shadow: none;\n border:1px solid $primary-color;\n }\n}\n\n\n.form-control {\n box-shadow: none;\n border-radius: 0;\n &:focus {\n box-shadow:none;\n border:1px solid $primary-color;\n }\n}\n\n//\n\n.py-7{\n padding: 7rem 0px;\n}\n\n// Button Style\n\n.btn{\n display: inline-block;\n font-size: 14px;\n font-size: 0.8125rem;\n font-weight: 500;\n padding: 1rem 2.5rem .8rem;\n text-transform: uppercase;\n border-radius:0;\n transition: 0.3s;\n\n &.btn-icon {\n i {\n font-size:16px;\n vertical-align:middle;\n margin-right:5px;\n }\n }\n\n &:focus{\n outline: 0px;\n box-shadow: none;\n }\n}\n\n.btn-main {\n background: $primary-color;\n color: $light;\n @include transition (all, 0.2s, ease);\n \n &:hover {\n background: darken( $primary-color, 10% );\n color: $light;\n }\n}\n\n\n.btn-solid-border {\n border:2px solid $primary-color;\n background:transparent;\n color:$black;\n \n &:hover {\n border:2px solid $primary-color;\n background:$primary-color;\n }\n}\n\n\n.btn-transparent {\n @extend .btn-main;\n background:transparent;\n padding:0;\n color:$primary-color;\n &:hover {\n background:transparent;\n color:$primary-color;\n }\n}\n\n.btn-large {\n padding:20px 45px;\n &.btn-icon {\n i {\n font-size:16px;\n vertical-align:middle;\n margin-right:5px;\n }\n }\n}\n\n.btn-small {\n @extend .btn-main ;\n padding:13px 25px 10px;\n font-size:12px;\n}\n\n.btn-round {\n border-radius:4px;\n}\n.btn-round-full {\n border-radius:50px;\n}\n\n\n.btn.active:focus, .btn:active:focus, .btn:focus {\n outline: 0;\n}\n\n\n// Background\n\n.bg-gray {\n background:$secondary-color;\n}\n.bg-primary {\n background:$primary-color;\n}\n.bg-primary-dark {\n background:darken($primary-color, 10%);\n}\n.bg-primary-darker {\n background:darken($primary-color, 20%);\n}\n\n.bg-dark {\n background:$black;\n}\n\n\n.bg-gradient{\n background-image: linear-gradient(145deg, rgba(19, 177, 205, 0.95) 0%, rgba(152, 119, 234, 0.95) 100%);\n background-repeat: repeat-x;\n}\n\n\n// Section Title\n.section {\n padding:100px 0;\n}\n.section-sm {\n padding:70px 0;\n}\n\n.section-title {\n margin-bottom: 70px;\n \n .title{\n font-size: 50px;\n line-height: 50px;\n }\n p {\n color: #666;\n font-family:$secondary-font;\n }\n}\n\n\n.subtitle {\n color: $primary-color;\n font-size: 14px;\n letter-spacing: 1px;\n}\n\n\n\n\n.overly {\n position: relative;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n background: #000;\n }\n}\n\n\n.overly-2 {\n position: relative;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.8);\n }\n}\n\n\n.text-color{\n color: $primary-color;\n}\n\n.text-black{\n color: $black;\n}\n\n.text-color2{\n color: $event-color;\n}\n\n.text-color2{\n color: $law-color;\n}\n\n\n.text-sm{\n font-size: 14px;\n}\n.text-md{\n font-size: 2.25rem;\n}\n.text-lg{\n font-size:3.75rem; \n}\n\n.no-spacing{\n letter-spacing: 0px\n}\n\n\n/* Links */\na {\n color: $black;\n text-decoration: none;\n}\n\na:focus, a:hover {\n color: $primary-color;\n text-decoration: none;\n}\n\na:focus {\n outline: none;\n}\n\n\n.content-title {\n font-size: 40px;\n line-height: 50px;\n}\n\n\n\n.page-title{\n padding: 100px 0;\n @extend .overly;\n .block{\n h1{\n color:$light;\n }\n p{\n color:$light;\n }\n }\n}\n\n\n.page-wrapper {\n padding:70px 0;\n}\n\n","#wrapper-work{\n\toverflow: hidden;\n\tpadding-top: 100px;\n\tul{\n\t\tli{\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t\tposition: relative;\n\t\t\timg{\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t\t.items-text{\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tcolor: #fff;\n\t\t\t\tbackground: rgba(0, 0, 0, 0.60);\n\t\t\t\tpadding-left: 44px;\n\t\t\t\tpadding-top: 140px;\n\t\t\t\th2{\n\t\t\t\t\tpadding-bottom: 28px;\n\t\t\t\t\tpadding-top: 75px;\n\t\t\t\t \tposition: relative;\n\t\t\t\t \t&:before{\n\t\t\t\t \t\tcontent: \"\";\n\t\t\t\t \t\tposition: absolute;\n\t\t\t\t \t\tleft: 0;\n\t\t\t\t \t\tbottom: 0;\n\t\t\t\t \t\twidth: 75px;\n\t\t\t\t \t\theight: 3px;\n\t\t\t\t \t\tbackground: #fff;\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\tp{\n\t\t\t\t\tpadding-top: 30px;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\tline-height: 27px;\n\t\t\t\t\tfont-weight: 300;\n\t\t\t\t\tpadding-right: 80px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n/*--\n\tfeatures-work Start \n--*/\n\n#features-work{\n\tpadding-top: 50px; \n\tpadding-bottom: 75px;\n\t.block{\n\t\tul{\n\t\t\tli{\n\t\t\t\twidth: 19%;\n\t\t\t\ttext-align: center;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding: 40px 0px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","#tickerScroller {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n padding: 10px 0;\n background-color: #333;\n color: white;\n overflow: hidden;\n z-index: 9999;\n border-radius: 0px 0px 10px 10px;\n}\n\n#tickerContainer {\n display: flex;\n align-items: center;\n animation: slide linear infinite;\n white-space: nowrap;\n font-family: 'Arial', sans-serif;\n}\n\n.tickerText {\n margin-right: 50px;\n}","#navbar{\n background: rgba(34,35,40,1);\n box-shadow: 0 1px 2px rgba(0,0,0,.05);\n li{\n padding-left: 15px;\n @include desktop {\n padding-left: 0;\n }\n }\n\n .nav-link{\n font-family: $secondary-font;\n font-weight: 500;\n color: $light;\n text-transform: uppercase;\n font-size: 14px;\n letter-spacing: .5px;\n transition: all .25s ease;\n }\n \n .nav-link:hover, .nav-link:focus,\n .active .nav-link {\n color: $primary-color;\n }\n\n\n .btn{\n padding: .7rem 1.5rem .5rem;\n color: $light;\n @include desktop {\n margin: 15px 0 10px;\n }\n }\n\n}\n\n.header-top{\n background: rgba(34,35,40,1);\n color: #919194;\n border-bottom: 1px solid rgba(255,255,255,.05);\n\n .header-top-socials {\n border-right: 1px solid rgba(255,255,255,.05);\n padding: 12px 0px;\n }\n \n .header-top-socials {\n margin-left: -8px;\n a {\n color: #919194;\n margin-right: 8px;\n font-size: 16px;\n padding: 0 8px;\n &:hover {\n color: $primary-color;\n }\n }\n }\n .header-top-info{\n color: #919194;\n font-size: 16px;\n\n a span{\n color: $light;\n }\n a{\n margin-left: 35px;\n color: #919194;\n }\n }\n}\n\n.navbar-toggler {\n padding: 0;\n font-size: 1.5rem;\n color: #fff;\n &:focus {\n outline: 0;\n }\n}\n\n\n.navbar-brand{\n color: $light;\n font-weight: 600;\n letter-spacing: 1px;\n\n span{\n color: $primary-color;\n }\n}\n\n.dropdown-menu{\n padding: 0px;\n border: 0;\n border-radius: 0px;\n @include desktop {\n text-align: center;\n float: left !important;\n width: 100%;\n margin: 0;\n }\n\n li:first-child {margin-top: 5px}\n li:last-child {margin-bottom: 5px}\n}\n\n.dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-menu,\n.dropright .dropdown-menu{\n margin: 0;\n}\n.dropleft .dropdown-toggle::before,\n.dropright .dropdown-toggle::after {\n font-weight: bold;\n font-family: 'Font Awesome 5 Free';\n border: 0;\n font-size: 10px;\n vertical-align: 1px;\n}\n.dropleft .dropdown-toggle::before {\n content: \"\\f053\";\n margin-right: 5px;\n}\n.dropright .dropdown-toggle::after {\n content: \"\\f054\";\n margin-left: 5px;\n}\n\n.dropdown-item{\n padding: .8rem 1.5rem .55rem;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 500;\n @include desktop {\n padding: .6rem 1.5rem .35rem;\n }\n}\n\n.dropdown-submenu.active > .dropdown-toggle,\n.dropdown-submenu:hover > .dropdown-item,\n.dropdown-item.active,\n.dropdown-item:hover{\n background: $primary-color;\n color: $light;\n}\n\nul.dropdown-menu li {\n padding-left: 0px!important;\n}\n\n@media (min-width:992px) {\n .dropdown-menu{\n transition:all .2s ease-in, visibility 0s linear .2s, transform .2s linear;\n display: block;\n visibility: hidden;\n opacity: 0;\n min-width: 200px;\n margin-top: 15px;\n\n li:first-child {margin-top: 10px}\n li:last-child {margin-bottom: 10px}\n }\n .dropleft .dropdown-menu,\n .dropright .dropdown-menu{\n margin-top: -10px;\n }\n .dropdown:hover > .dropdown-menu{\n visibility: visible;\n transition: all .45s ease 0s;\n opacity: 1;\n }\n}\n\n",".bg-1 {\n\tbackground: url(\"../images/competition/stair-team.jpg\") no-repeat 50% 50%;\n\tbackground-size: cover;\n}\n\n.bg-2 {\n\tbackground: url(\"../images/competition/stair-team.jpg\");\n\tbackground-size: cover;\n}\n",".slider{\n background: url(\"../../images/competition/good-team.jpg\") no-repeat;\n background-size: cover;\n background-position: right 0% bottom 80%;\n background-repeat: no-repeat;\n padding:500px 0;\n position: relative;\n @include tablet {\n padding:300px 0;\n }\n @extend .overly;\n .block{\n h1{\n font-size: 70px;\n line-height: 80px;\n font-weight: 600;\n color: $light;\n\n }\n p{\n margin-bottom:30px;\n color:#b9b9b9;\n font-size: 18px;\n line-height: 27px;\n font-weight: 300;\n }\n\n span{\n letter-spacing: 1px;\n }\n }\n}\n","// Intro Section\n\n.intro-item{\n\n\ti{\n\t\tfont-size:60px;\n\t\tline-height: 60px;\n\t}\n\t\n}\n\n.color-one{\n\tcolor: $primary-color;\n}\n.color-two{\n\tcolor: #00d747;\n}\n.color-three{\n\tcolor:#9262ff;\n}\n.color-four{\n\tcolor:#088ed3;\n}","// About Setcion\n\n.bg-about{\n \tposition: absolute;\n \tcontent:\"\";\n \tleft: 0px;\n \ttop: 0px;\n \twidth: 45%;\n \tmin-height: 650px;\n \tbackground: url(\"../../images/competition/concentration.jpg\") no-repeat;\n \tbackground-size: cover;\n\tbackground-position: center;\n\tborder-radius: 1000px;\n}\n\n\n.about-content{\n\tpadding: 20px 0px 0px 80px;\n\th4{\n\t\tfont-weight: 600;\n\n\t\t&:before{\n\t\t\tposition: absolute;\n\t\t\tcontent:\"\\f576\";\n\t\t\tfont-family: \"Font Awesome 5 Free\";\n\t\t\tfont-size: 30px;\n\t\t\tposition: absolute;\n\t\t\ttop: 8px;\n\t\t\tleft: -65px;\n\t\t\tfont-weight: 700;\n\t\t}\n\t}\n\n}\n","// Counter Section \n\n.counter-item{\n\t.counter-stat{\n\t\tfont-size: 50px;\n\t}\n\n\tp{\n\t\tmargin-bottom: 0px;\n\t}\n\n}\n\n.bg-counter{\n\tbackground: url(\"../images/bg/counter.jpg\")no-repeat;\n\tbackground-size: cover;\n\t@extend .overly-2;\n}",".team-item {\n\tborder-radius: 20px;\n\toverflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n\tbackground: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n\tbackground: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n\tbackground: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n\tbackground: #3399cc;\n}\n\n.team-img-hover {\n\tposition: absolute;\n\ttop: 10px;\n\tleft: 10px;\n\tright: 10px;\n\tbottom: 10px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: rgba(255, 255, 255, 0.6);\n\topacity: 0;\n\ttransition: all 0.2s ease-in-out;\n\ttransform: scale(0.8);\n\n}\n\n.team-img-hover li a {\n\tdisplay: inline-block;\n\tcolor: $light;\n\twidth: 50px;\n\theight: 50px;\n\tfont-size: 20px;\n\tline-height: 50px;\n\tborder: 2px solid transparent;\n\tborder-radius: 2px;\n\ttext-align: center;\n\ttransform: translateY(0);\n\tbackface-visibility: hidden;\n\ttransition: all 0.3s ease-in-out;\n}\n\n\n.team-img-hover:hover li a:hover {\n\ttransform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n\topacity: 1;\n\ttransform: scale(1);\n\ttop: 0px;\n\tleft: 0px;\n\tright: 0px;\n\tbottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n","// Service section\n\n.service-item{\n\tposition: relative;\n\tpadding-left: 80px;\n\n\ti{\n\t\tposition: absolute;\n\t\tleft: 0px;\n\t\ttop:5px;\n\t\tfont-size: 50px;\n\t\topacity: .4;\n\t}\n}",".cta{\n\tbackground: url(\"../images/competition/conference-room.jpg\") fixed 50% 50%;\n\tbackground-size: cover;\n\tpadding: 120px 0px;\n\t@extend .overly;\n}\n.cta-block{\n\tbackground: url(\"../images/competition/conference-room.jpg\") no-repeat;\n\tbackground-size: cover;\n\t@extend .overly-2;\n}\n","// Testimonial Section\n\n.testimonial-item{\n\tpadding:50px 30px;\n\n\ti{\n\t\tfont-size: 40px;\n\t\tposition: absolute;\n\t\tleft: 30px;\n\t\ttop:30px;\n\t\tz-index: 1;\n\t}\n\t.testimonial-text{\n\t\tfont-size: 20px;\n\t\tline-height: 38px;\n\t\tcolor: $black;\n\t\tmargin-bottom: 30px;\n\t\tfont-style: italic;\n\t}\n\n\t.testimonial-item-content{\n\t\tpadding-left: 65px;\n\t}\n}\n\n.slick-slide {\n &:focus, a {\n outline: none;\n }\n}","// Variables\n$primary-color: #007bff;\n$hover-color: #0056b3;\n$light-gray: #f2f2f2;\n$dark-gray: #ddd;\n$green: #4CAF50;\n$white: white;\n$black: black;\n$border-color: #ddd; // Set your border color\n\n// General Styles\nbody {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n}\n\n.container {\n width: 80%;\n margin: auto;\n overflow: hidden;\n padding: 15px;\n\n @media (max-width: 768px) {\n width: 95%;\n }\n}\n\n.row {\n margin: 0 -15px -42px 0px;\n}\n\n.col {\n padding: 0 15px;\n}\n\n// Header and Navigation\n.header, .navigation {\n // Your styles for header and navigation\n}\n\n// Page Title Section\n.page-title {\n background: url('images/competition/concentration.jpg') cover;\n padding: 30px 0;\n color: $white;\n text-align: center;\n}\n\n// Partnership Logos Section\n.partner-logos {\n .col {\n text-align: center;\n margin-bottom: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n @media (max-width: 768px) {\n flex-basis: 50%;\n }\n }\n}\n\n// Pricing Table\n.partnership-offers {\n table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 20px;\n\n th, td {\n border: 1px solid $border-color;\n padding: 10px;\n text-align: left;\n }\n\n th {\n background-color: $green;\n color: $white;\n font-weight: bold;\n }\n\n tr {\n &:nth-child(even) { background-color: $light-gray; }\n &:hover { background-color: $dark-gray; }\n\n ul {\n list-style: none;\n padding: 0;\n\n li { padding: 5px 0; }\n }\n }\n }\n}\n\n// Call to Action\n.text-center {\n text-align: center;\n margin: 20px 0;\n\n .btn-primary {\n background-color: $primary-color;\n border: none;\n color: $white;\n padding: 12px 25px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n transition-duration: 0.4s;\n cursor: pointer;\n\n &:hover {\n background-color: $white; \n color: $black; \n border: 2px solid $primary-color;\n }\n }\n}\n\n// Footer\n.footer {\n // Your styles for footer\n}\n\n// Additional Styles\n.hero-img {\n background: url(\"../images/bg/home-5.jpg\") cover;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n\n &::before {\n content: '';\n background: rgba(0, 0, 0, 0.5); // Black overlay with 50% opacity\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n}\n","$primary-color: #ff0000; // Example primary color\n$font-size-normal: 0.875rem; // 14px\n$gray-600: #718096; // Gray color\n$semi-transparent-white: rgba(255, 255, 255, 0.1);\n$shadow-light: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\n$shadow-dark: 0 8px 16px 0 rgba(0, 0, 0, 0.2);\n\n.portflio-item {\n\t.portfolio-item-content {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tright: 0px;\n\t\tbottom: 0px;\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t}\n\n\t&:before {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tleft: 0px;\n\t\ttop: 0px;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tbackground: rgba(0, 0, 0, 0.8);\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t\toverflow: hidden;\n\t}\n\n\t&:hover {\n\t\t&:before {\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.portfolio-item-content {\n\t\t\topacity: 1;\n\t\t\tbottom: 20px;\n\t\t\tright: 30px;\n\t\t}\n\t}\n\n\t.overlay-item {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tleft: 0px;\n\t\ttop: 0px;\n\t\tbottom: 0px;\n\t\tright: 0px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 80px;\n\t\tcolor: $primary-color;\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t}\n\n\t&:hover {\n\t\t.overlay-item {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.project-card {\n\tbackground: $semi-transparent-white;\n\tbackdrop-filter: blur(10px);\n\t-webkit-backdrop-filter: blur(10px);\n\tborder-radius: 15px;\n\tpadding: 20px;\n\tbox-shadow: $shadow-light;\n\ttransition: 0.3s;\n\toverflow: hidden;\n\tmargin-bottom: 20px;\n\n\t&:hover {\n\t\tbox-shadow: $shadow-dark;\n\t}\n\n\t.project-link {\n\t\ttransform: translateY(10px);\n\t\ttransition: all 0.3s ease;\n\t\ttext-decoration: none;\n\t\tcolor: blue;\n\t\tcursor: pointer;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t\tvisibility: visible;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n\n\t.icon {\n\t\tdisplay: inline-block;\n\t\tmargin-right: 5px;\n\t}\n}\n\n.project-container {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\tpadding: 10px;\n}\n\n.project-title {\n\tfont-size: 18px;\n\tfont-weight: bold;\n}\n\n.project-stars {\n\tcolor: $primary-color;\n\tfont-size: 14px;\n}\n\n.project-description {\n\twhite-space: normal;\n\tfont-size: $font-size-normal;\n\tcolor: $gray-600;\n\tmargin-bottom: 1rem; // 16px\n\twidth: 600px; // approximate width for 80 characters\n}\n\n\n.grid-container {\n\tdisplay: flex;\n\tgrid-template-columns: repeat(3, 1fr);\n\t/* 3 columns */\n\tgrid-template-rows: repeat(3, 1fr);\n\t/* 3 rows */\n\tgrid-gap: 20px;\n\t/* 20px gap between columns */\n\n\t@media (max-width: 768px) {\n\t\tgrid-template-columns: repeat(2, 1fr);\n\t}\n\n\t@media (max-width: 480px) {\n\t\tgrid-template-columns: 1fr;\n\t}\n\n\t.project-image img {\n\t\twidth: 100%;\n\t\theight: 200px;\n\t\tobject-fit: cover;\n\t\tborder-radius: 10px 10px 0 0;\n\t}\n}",".contact-form-wrap{\n .form-group{\n padding-bottom: 15px;\n margin: 0px;\n .form-control{\n background:$secondary-color;\n height: 48px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n }\n }\n .form-group-2{\n margin-bottom: 13px;\n textarea{\n background: $secondary-color;\n height: 135px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n }\n }\n}\n\n\n.address-block {\n li {\n margin-bottom:10px;\n i {\n font-size: 20px;\n width: 20px;\n }\n }\n}\n\n\n.social-icons {\n li {\n margin:0 6px;\n }\n \n i{\n margin-right: 15px;\n font-size: 25px;\n }\n}\n\n.google-map {\n position: relative;\n}\n\n.google-map #map {\n width: 100%;\n height: 450px;\n}\n\n","/*=================================================================\n Latest Posts\n==================================================================*/\n.blog-item-content {\n h3 {\n line-height: 36px;\n }\n\n h3 a {\n transition: all .4s ease 0s;\n\n &:hover {\n color: $primary-color !important;\n }\n }\n}\n\n.lh-36 {\n line-height: 36px;\n}\n\n\n.tags {\n a {\n background: #f5f8f9;\n display: inline-block;\n padding: 8px 23px;\n border-radius: 38px;\n margin-bottom: 10px;\n border: 1px solid #eee;\n font-size: 14px;\n text-transform: capitalize;\n }\n}\n\n\n\n.pagination .nav-links a,\n.pagination .nav-links span.current {\n font-size: 20px;\n font-weight: 500;\n color: #c9c9c9;\n margin: 0 10px;\n text-transform: uppercase;\n letter-spacing: 1.2px;\n\n}\n\n\n.pagination .nav-links span.current,\n.pagination .nav-links a.next,\n.pagination .nav-links a.prev {\n color: $black;\n}\n\nh3.quote {\n font-size: 24px;\n line-height: 40px;\n font-weight: normal;\n padding: 0px 25px 0px 85px;\n margin: 65px 0 65px 0 !important;\n position: relative;\n @include tablet {\n padding: 0;\n padding-left: 20px;\n }\n}\n\nh3.quote::before {\n content: '';\n width: 55px;\n height: 2px;\n background: $primary-color;\n position: absolute;\n top: 25px;\n left: 0;\n @include tablet {\n top: 5px;\n width: 2px;\n height: 35px;\n }\n}\n\n.nav-posts-title {\n line-height: 25px;\n font-size: 18px;\n}\n\n\n\n.latest-blog {\n position: relative;\n @extend .overly-2;\n padding-bottom: 150px;\n}\n\n.mt-70 {\n margin-top: -70px;\n}\n\n.border-1 {\n border: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.blog-item {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05)\n}","/*=================================================================\n Single Blog Page\n==================================================================*/\n.post.post-single {\n border:none;\n .post-thumb {\n margin-top:30px;\n }\n}\n.post-sub-heading {\n border-bottom:1px solid #dedede;\n padding-bottom:20px;\n letter-spacing: 2px;\n text-transform: uppercase;\n font-size: 16px;\n margin-bottom:20px;\n}\n.post-social-share {\n margin-bottom:50px;\n}\n\n.post-comments {\n margin:30px 0;\n .media {\n margin-top:20px;\n > .pull-left {\n padding-right: 20px;\n }\n }\n .comment-author {\n margin-top: 0;\n margin-bottom:0px;\n font-weight:500;\n a {\n color: $primary-color;\n font-size: 14px;\n text-transform: uppercase;\n }\n }\n time {\n margin:0 0 5px;\n display: inline-block;\n color: #808080;\n font-size:12px;\n }\n .comment-button {\n color: $primary-color;\n display: inline-block;\n margin-left:5px;\n font-size:12px;\n i {\n margin-right:5px;\n display: inline-block;\n }\n &:hover {\n color: $primary-color;\n }\n }\n}\n\n.post-excerpt {\n margin-bottom: 60px;\n h3 {\n a {\n color: #000;\n }\n }\n p {\n margin: 0 0 30px;\n }\n blockquote.quote-post {\n margin: 20px 0;\n p {\n line-height: 30px;\n font-size: 20px;\n color:$primary-color;\n }\n }\n}\n\n\n.single-blog {\n background-color: #fff;\n margin-bottom: 50px;\n padding: 20px;\n}\n\n.blog-subtitle {\n font-size: 15px;\n padding-bottom: 10px;\n border-bottom: 1px solid #dedede;\n margin-bottom: 25px;\n text-transform: uppercase;\n}\n\n.next-prev {\n border-bottom: 1px solid #dedede;\n border-top: 1px solid #dedede;\n margin: 20px 0;\n padding: 25px 0;\n a {\n color: #000;\n &:hover {\n color: $primary-color;\n }\n }\n .prev-post i {\n margin-right: 10px;\n }\n\n .next-post i {\n margin-left: 10px;\n }\n}\n\n.social-profile {\n ul {\n li {\n margin: 0 10px 0 0;\n display: inline-block;\n a {\n color: #4e595f;\n display: block;\n font-size: 16px;\n i {\n &:hover {\n color: $primary-color;\n }\n }\n }\n }\n }\n}\n\n.comments-section {\n margin-top: 35px;\n}\n\n\n.author-about {\n margin-top: 40px;\n}\n.post-author {\n margin-right: 20px;\n}\n\n.post-author > img {\n border: 1px solid #dedede;\n max-width: 120px;\n padding: 5px;\n width: 100%;\n}\n\n\n\n.comment-list {\n ul {\n margin-top: 20px;\n li {\n margin-bottom: 20px;\n }\n }\n}\n\n\n.comment-wrap {\n border: 1px solid #dedede;\n border-radius: 1px;\n margin-left: 20px;\n padding: 10px;\n position: relative;\n .author-avatar {\n margin-right: 10px;\n }\n .media {\n .media-heading {\n font-size: 14px;\n margin-bottom: 8px;\n a {\n color: $primary-color;\n font-size: 13px;\n }\n }\n .comment-meta {\n font-size: 12px;\n color: #888;\n }\n p {\n margin-top: 15px;\n }\n }\n\n}\n\n\n.comment-reply-form {\n margin-top: 80px;\n input,textarea {\n height: 35px;\n border-radius: 0;\n box-shadow: none;\n &:focus {\n box-shadow:none;\n border:1px solid $primary-color;\n }\n }\n textarea,.btn-main {\n height: auto;\n }\n}\n\n \n\n\n\n",".widget {\n margin-bottom:30px;\n padding-bottom:35px;\n .widget-title {\n margin-bottom:15px;\n padding-bottom:10px;\n font-size: 16px;\n color:#333;\n font-weight:500;\n border-bottom:1px solid $border-color;\n }\n // latest Posts\n &.widget-latest-post {\n .media {\n .media-object {\n width: 100px;\n height:auto;\n }\n .media-heading {\n a {\n color: $black;\n font-size: 16px;\n }\n }\n p {\n font-size: 12px;\n color:#808080;\n }\n }\n } //end latest posts\n\n // Caterogry\n &.widget-category {\n ul {\n li {\n margin-bottom: 10px;\n a {\n color: #837f7e;\n @include transition (all, 0.3s, ease);\n &:before {\n padding-right: 10px;\n }\n &:hover {\n color:$primary-color;\n padding-left: 5px;\n }\n }\n }\n }\n } //end caterogry\n\n // Tag Cloud\n &.widget-tag {\n ul {\n li {\n margin-bottom: 10px;\n display: inline-block;\n margin-right:5px;\n a {\n color: #837f7e;\n display: inline-block;\n padding:8px 15px;\n border:1px solid #dedede;\n border-radius: 30px;\n font-size: 14px;\n @include transition (all, 0.3s, ease);\n &:hover {\n color:$light;\n background: $primary-color;\n border:1px solid $primary-color;\n }\n }\n }\n }\n }\n\n}\n\n",".footer {\n padding-bottom: 10px;\n\n .copyright {\n a {\n font-weight: 600;\n }\n }\n}\n\n.lh-35 {\n line-height: 35px;\n}\n\n.logo {\n color: $black;\n font-weight: 600;\n letter-spacing: 1px;\n\n span {\n color: $primary-color;\n }\n}\n\n.sub-form {\n position: relative;\n\n .form-control {\n border: 1px solid rgba(0, 0, 0, 0.06);\n background: $secondary-color;\n }\n\n}\n\n.footer-btm {\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n}\n\n\n// scroll-to-top\n.scroll-to-top {\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 999;\n height: 40px;\n width: 40px;\n background: $primary-color;\n border-radius: 50%;\n text-align: center;\n line-height: 43px;\n color: white;\n cursor: pointer;\n transition: 0.3s;\n display: none;\n @include mobile {\n bottom: 15px;\n right: 15px;\n }\n &:hover {\n background-color: #333;\n }\n}","/*=== MEDIA QUERY ===*/\n@include large-desktop{\n \n}\n\n@include desktop{\n .slider .block h1 {\n font-size: 56px;\n line-height: 70px;\n }\n\n .bg-about{\n display: none;\n }\n section.about {\n border: 1px solid #dee2e6;\n border-left: 0;\n border-right: 0;\n }\n .footer-socials {\n margin-top: 20px;\n }\n .footer-socials li a {\n margin-left: 0px;\n }\n}\n\n\n@include tablet{\n .navbar-toggler{\n color: $light;\n }\n .bg-about{\n display: none;\n }\n .slider .block h1 {\n font-size: 48px;\n line-height: 62px;\n }\n .blog-item-meta span{\n margin: 6px 0px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n\n}\n\n@include mobile{\n .header-top .header-top-info a {\n margin-left: 10px;\n margin-right: 10px;\n }\n\n .navbar-toggler{\n color: $light;\n }\n .slider .block h1 {\n font-size: 38px;\n line-height: 50px;\n }\n\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n\n .p-5{\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n}\n\n\n@include mobile-xs{\n .header-top .header-top-info a {\n display: block;\n }\n\n .navbar-toggler{\n color: $light;\n }\n\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n\n .bg-about{\n display: none;\n }\n\n .p-5{\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n\n .text-lg {\n font-size: 3rem;\n }\n\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n}","@import \"variables.scss\";\n\n@import \"mixins.scss\";\n\n@import \"media-query.scss\";\n\n@import \"typography.scss\";\n\n@import \"common.scss\";\n\n@import \"main.scss\";\n\n@import \"templates/header.scss\";\n\n@import \"templates/navigation.scss\";\n@import \"templates/backgrounds.scss\";\n\n@import \"templates/slider.scss\";\n@import \"templates/intro.scss\";\n@import \"templates/about.scss\";\n@import \"templates/counter.scss\";\n@import \"templates/team.scss\";\n\n@import \"templates/service.scss\";\n@import \"templates/cta.scss\";\n@import \"templates/review.scss\";\n@import \"templates/pricing.scss\";\n@import \"templates/portfolio.scss\";\n@import \"templates/contact.scss\";\n@import \"templates/blog.scss\";\n@import \"templates/single-post.scss\";\n@import \"templates/blog-sidebar.scss\";\n@import \"templates/team.scss\";\n\n@import \"templates/footer.scss\";\n@import \"templates/responsive.scss\";\n\n\n@tailwind base;\n@tailwind components;\n@tailwind utilities;"]} \ No newline at end of file +{"version":3,"sources":["_typography.scss","_mixins.scss","style.css","_media-query.scss","_variables.scss","_common.scss","_main.scss","templates/_header.scss","templates/_navigation.scss","templates/_backgrounds.scss","templates/_slider.scss","templates/_intro.scss","templates/_about.scss","templates/_counter.scss","templates/_team.scss","templates/_service.scss","templates/_cta.scss","templates/_review.scss","templates/_pricing.scss","templates/_portfolio.scss","templates/_contact.scss","templates/_blog.scss","templates/_single-post.scss","templates/_blog-sidebar.scss","templates/_footer.scss","templates/_responsive.scss","style.scss"],"names":[],"mappings":"AACQ,iKAAA;AC2CR;EACE;IACI,2BAAA;EC1CJ;ED6CA;IACI,4BAAA;EC3CJ;AACF;ACRA,sBAAA;AHGA;EACE,kBAAA;AEQF;;AFLA;EACE,gBAAA;EACA,0BICU;EJAV,mCAAA;EACA,eAAA;EAEA,0BAAA;AEOF;;AFJA;EACE,kCIRc;EJSd,gBAAA;EACA,cIbM;AFoBR;;AFJA;EACE,iBAAA;AEOF;;AFHA;EACE,eAAA;EACA,gBAAA;EACA,iBAAA;AEMF;;AFHA;EACE,iBAAA;AEMF;;AFHA;EACE,iBAAA;EACA,iBAAA;AEMF;;AFHA;EACE,kBAAA;AEMF;;AFHA;EACE,eAAA;AEMF;;AFFA;EACE,iBAAA;AEKF;;AGzDA;EACE,mBDCc;AF2DhB;;AGzDA;EACE,gBAAA;EACA,YAAA;EACA,aAAA;EACA,eAAA;AH4DF;AG3DE;EACE,gBAAA;EACA,yBAAA;AH6DJ;;AGxDA;EACE,gBAAA;EACA,gBAAA;AH2DF;AG1DE;EACE,gBAAA;EACA,yBAAA;AH4DJ;;AGtDA;EACE,iBAAA;AHyDF;;AGpDA;EACE,qBAAA;EACA,eAAA;EACA,oBAAA;EACA,gBAAA;EACA,2BAAA;EACA,yBAAA;EACA,gBAAA;EACA,gBAAA;AHuDF;AGpDI;EACE,eAAA;EACA,sBAAA;EACA,iBAAA;AHsDN;AGlDE;EACE,YAAA;EACA,gBAAA;AHoDJ;;AGhDA;EACE,mBDxDc;ECyDd,WD3DM;EHMJ,yBAAA;AC6GJ;AGrDE;EACE,mBAAA;EACA,WDhEI;AFuHR;;AGlDA;EACE,yBAAA;EACA,uBAAA;EACA,cDlEM;AFuHR;AGnDE;EACE,yBAAA;EACA,mBD1EY;AF+HhB;;AGhDA;EAEE,uBAAA;EACA,UAAA;EACA,cDnFc;AFqIhB;AGjDE;EACE,uBAAA;EACA,cDtFY;AFyIhB;;AG/CA;EACE,kBAAA;AHkDF;AGhDI;EACE,eAAA;EACA,sBAAA;EACA,iBAAA;AHkDN;;AG7CA;EAEE,uBAAA;EACA,eAAA;AH+CF;;AG5CA;EACE,kBAAA;AH+CF;;AG7CA;EACE,mBAAA;AHgDF;;AG5CA;EACE,UAAA;AH+CF;;AGzCA;EACE,mBD1HgB;AFsKlB;;AG1CA;EACE,mBD9Hc;AF2KhB;;AG3CA;EACE,mBAAA;AH8CF;;AG5CA;EACE,mBAAA;AH+CF;;AG5CA;EACE,mBDpIM;AFmLR;;AG3CA;EACI,sGAAA;EACA,2BAAA;AH8CJ;;AGzCA;EACE,gBAAA;AH4CF;;AG1CA;EACE,eAAA;AH6CF;;AG1CA;EACE,mBAAA;AH6CF;AG3CC;EACC,eAAA;EACA,iBAAA;AH6CF;AG3CE;EACI,WAAA;EACA,kCD5JU;AFyMhB;;AGxCA;EACE,cDzKc;EC0Kd,eAAA;EACA,mBAAA;AH2CF;;AGrCA;EACE,kBAAA;AHwCF;AGvCE;EACE,WAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;AHyCJ;;AGpCA;EACE,kBAAA;AHuCF;AGtCE;EACE,WAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,8BAAA;AHwCJ;;AGnCA;EACE,cDnNc;AFyPhB;;AGnCA;EACE,cDnNM;AFyPR;;AGnCA;EACE,cDzNY;AF+Pd;;AGnCA;EACE,cD5NU;AFkQZ;;AGlCA;EACE,eAAA;AHqCF;;AGnCA;EACE,kBAAA;AHsCF;;AGpCA;EACE,kBAAA;AHuCF;;AGpCA;EACE,mBAAA;AHuCF;;AGnCA,UAAA;AACA;EACE,cDhPM;ECiPN,qBAAA;AHsCF;;AGnCA;EACE,cDzPc;EC0Pd,qBAAA;AHsCF;;AGnCA;EACE,aAAA;AHsCF;;AGlCA;EACE,eAAA;EACA,iBAAA;AHqCF;;AGhCA;EACE,gBAAA;AHmCF;AGhCI;EACE,WDhRE;AFkTR;AGhCI;EACE,WDnRE;AFqTR;;AG5BA;EACE,eAAA;AH+BF;;AIzTA;EACC,gBAAA;EACA,kBAAA;AJ4TD;AI1TE;EACC,UAAA;EACA,WAAA;EACA,kBAAA;AJ4TH;AI3TG;EACC,WAAA;EACA,YAAA;AJ6TJ;AI3TG;EACC,kBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,8BAAA;EACA,kBAAA;EACA,kBAAA;AJ6TJ;AI5TI;EACC,oBAAA;EACA,iBAAA;EACE,kBAAA;AJ8TP;AI7TQ;EACC,WAAA;EACA,kBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,gBAAA;AJ+TT;AI5TI;EACC,iBAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;AJ8TL;;AItTA;;GAAA;AAIA;EACC,iBAAA;EACA,oBAAA;AJwTD;AIrTG;EACC,UAAA;EACA,kBAAA;EACA,qBAAA;EACA,iBAAA;AJuTJ;;AKvXA;EACI,eAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,eAAA;EACA,sBAAA;EACA,YAAA;EACA,gBAAA;EACA,aAAA;EACA,gCAAA;AL0XJ;;AKvXA;EACI,aAAA;EACA,mBAAA;EACA,gCAAA;EACA,mBAAA;EACA,gCAAA;AL0XJ;;AKvXA;EACI,kBAAA;AL0XJ;;AMhZA;EACE,2BAAA;EACA,yCAAA;ANmZF;AMlZE;EACE,kBAAA;ANoZJ;AC/XE;EKtBA;IAGI,eAAA;ENsZJ;AACF;AMnZC;EACG,kCJFY;EIGZ,gBAAA;EACA,WJbI;EIcJ,yBAAA;EACA,eAAA;EACA,qBAAA;EACA,0BAAA;ANqZJ;AMlZE;;EAEE,cJpBY;AFwahB;AMhZE;EACE,6BAAA;EACA,WJ5BI;AF8aR;ACrZE;EKCA;IAII,mBAAA;ENoZJ;AACF;AMjZE;EACE,yBAAA;ANmZJ;;AM9YA;EACE,2BAAA;EACA,cAAA;EACA,kDAAA;ANiZF;AM/YE;EACE,iDAAA;EACA,iBAAA;ANiZJ;AM9YE;EACE,iBAAA;ANgZJ;AM/YI;EACE,cAAA;EACA,iBAAA;EACA,eAAA;EACA,cAAA;ANiZN;AMhZM;EACE,cJxDQ;AF0chB;AM9YE;EACE,cAAA;EACA,eAAA;ANgZJ;AM9YI;EACE,WJnEE;AFmdR;AM9YI;EACE,iBAAA;EACA,cAAA;ANgZN;;AM3YA;EACE,UAAA;EACA,iBAAA;EACA,WAAA;AN8YF;AM7YE;EACE,UAAA;AN+YJ;;AM1YA;EACE,WJvFM;EIwFN,gBAAA;EACA,mBAAA;AN6YF;AM3YE;EACE,cJ1FY;AFuehB;;AMzYA;EACE,YAAA;EACA,SAAA;EACA,kBAAA;AN4YF;ACtdE;EKuEF;IAKI,kBAAA;IACA,sBAAA;IACA,WAAA;IACA,SAAA;EN8YF;AACF;AM5YE;EAAgB,eAAA;AN+YlB;AM9YE;EAAe,kBAAA;ANiZjB;;AM9YA;EACI,aAAA;ANiZJ;;AM9YA;;EAEE,SAAA;ANiZF;;AM/YA;;EAEE,iBAAA;EACA,kCAAA;EACA,SAAA;EACA,eAAA;EACA,mBAAA;ANkZF;;AMhZA;EACE,gBAAA;EACA,iBAAA;ANmZF;;AMjZA;EACE,gBAAA;EACA,gBAAA;ANoZF;;AMjZA;EACE,8BAAA;EACA,yBAAA;EACA,eAAA;EACA,gBAAA;ANoZF;ACvgBE;EK+GF;IAMI,8BAAA;ENsZF;AACF;;AMnZA;;;;EAIE,mBJpJc;EIqJd,WJvJM;AF6iBR;;AMnZA;EACI,4BAAA;ANsZJ;;AMnZA;EACE;IACE,8EAAA;IACA,cAAA;IACA,kBAAA;IACA,UAAA;IACA,gBAAA;IACA,gBAAA;ENsZF;EMpZE;IAAgB,gBAAA;ENuZlB;EMtZE;IAAe,mBAAA;ENyZjB;EMvZA;;IAEE,iBAAA;ENyZF;EMvZA;IACE,mBAAA;IACA,6BAAA;IACA,UAAA;ENyZF;AACF;AO3kBA;EACC,8EAAA;EACA,sBAAA;AP6kBD;;AO1kBA;EACC,4DAAA;EACA,sBAAA;AP6kBD;;AQplBA;EACE,mEAAA;EACA,sBAAA;EACA,wCAAA;EACA,4BAAA;EACA,gBAAA;EACA,kBAAA;ARulBF;AC/kBE;EOdF;IAQI,gBAAA;ERylBF;EChlBE;IACE,eAAA;IACA,kBAAA;EDklBJ;AACF;AQ1lBI;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,WNhBE;AF4mBR;AQzlBI;EACE,mBAAA;EACA,cAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;AR2lBN;AQxlBI;EACE,mBAAA;AR0lBN;;ASlnBC;EACC,eAAA;EACA,iBAAA;ATqnBF;;AShnBA;EACC,cPVe;AF6nBhB;;ASjnBA;EACC,cAAA;ATonBD;;ASlnBA;EACC,cAAA;ATqnBD;;ASnnBA;EACC,cAAA;ATsnBD;;AUzoBA;EACG,kBAAA;EACA,WAAA;EACA,SAAA;EACA,QAAA;EACA,UAAA;EACA,iBAAA;EACA,uEAAA;EACA,sBAAA;EACF,2BAAA;EACA,qBAAA;AV4oBD;;AUxoBA;EACC,0BAAA;AV2oBD;AU1oBC;EACC,gBAAA;AV4oBF;AU1oBE;EACC,kBAAA;EACA,gBAAA;EACA,kCAAA;EACA,eAAA;EACA,kBAAA;EACA,QAAA;EACA,WAAA;EACA,gBAAA;AV4oBH;;AWtqBC;EACC,eAAA;AXyqBF;AWtqBC;EACC,kBAAA;AXwqBF;;AWnqBA;EACC,qDAAA;EACA,sBAAA;AXsqBD;;AYrrBA;EACC,mBAAA;EACA,gBAAA;AZwrBD;;AYrrBA;EACC,mBAAA;AZwrBD;;AYrrBA;EACC,mBAAA;AZwrBD;;AYrrBA;EACC,mBAAA;AZwrBD;;AYrrBA;EACC,mBAAA;AZwrBD;;AYrrBA;EACC,kBAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,oCAAA;EACA,UAAA;EACA,gCAAA;EACA,qBAAA;AZwrBD;;AYprBA;EACC,qBAAA;EACA,WVvCO;EUwCP,WAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;EACA,6BAAA;EACA,kBAAA;EACA,kBAAA;EACA,wBAAA;EACA,2BAAA;EACA,gCAAA;AZurBD;;AYnrBA;EACC,0BAAA;AZsrBD;;AYnrBA;EACC,UAAA;EACA,mBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;AZsrBD;;AYnrBA;EACI,eAAA;EACA,iBAAA;EACA,mBAAA;AZsrBJ;;AYnrBA;EACI,eAAA;EACA,mBAAA;AZsrBJ;;AYnrBA;EACI,qBAAA;EACA,iBAAA;EACA,mBAAA;AZsrBJ;;AYnrBA;EACI,0BAAA;EACA,gBAAA;EACA,mBAAA;AZsrBJ;;Aa1wBA;EACC,kBAAA;EACA,kBAAA;Ab6wBD;Aa3wBC;EACC,kBAAA;EACA,SAAA;EACA,QAAA;EACA,eAAA;EACA,YAAA;Ab6wBF;;AcxxBA;EACC,6EAAA;EACA,sBAAA;EACA,kBAAA;Ad2xBD;;AcxxBA;EACC,yEAAA;EACA,sBAAA;Ad2xBD;;AejyBA;EACC,kBAAA;AfoyBD;AelyBC;EACC,eAAA;EACA,kBAAA;EACA,UAAA;EACA,SAAA;EACA,UAAA;AfoyBF;AelyBC;EACC,eAAA;EACA,iBAAA;EACA,cbTM;EaUN,mBAAA;EACA,kBAAA;AfoyBF;AejyBC;EACC,kBAAA;AfmyBF;;Ae9xBE;EACE,aAAA;AfiyBJ;;AgBjzBA;EACI,8BAAA;EACA,gBAAA;AhBozBJ;;AgBjzBA;EACI,UAAA;EACA,YAAA;EACA,gBAAA;EACA,aAAA;AhBozBJ;AgBlzBI;EANJ;IAOQ,UAAA;EhBqzBN;AACF;;AgBlzBA;EACI,uBAAA;AhBqzBJ;;AgBlzBA;EACI,eAAA;AhBqzBJ;;AgB5yBA;EACI,6DAAA;EACA,eAAA;EACA,YAtCI;EAuCJ,kBAAA;AhB+yBJ;;AgB1yBI;EACI,kBAAA;EACA,mBAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,sBAAA;AhB6yBR;AgB3yBQ;EACI,eAAA;EACA,YAAA;AhB6yBZ;AgB1yBQ;EAbJ;IAcQ,eAAA;EhB6yBV;AACF;;AgBvyBI;EACI,WAAA;EACA,yBAAA;EACA,gBAAA;AhB0yBR;AgBxyBQ;EACI,sBAAA;EACA,aAAA;EACA,gBAAA;AhB0yBZ;AgBvyBQ;EACI,yBA9EJ;EA+EI,YA9EJ;EA+EI,iBAAA;AhByyBZ;AgBryBY;EAAoB,yBAtFnB;AhB83Bb;AgBvyBY;EAAU,sBAtFV;AhBg4BZ;AgBxyBY;EACI,gBAAA;EACA,UAAA;AhB0yBhB;AgBxyBgB;EAAK,cAAA;AhB2yBrB;;AgBpyBA;EACI,kBAAA;EACA,cAAA;AhBuyBJ;AgBryBI;EACI,yBA3GQ;EA4GR,YAAA;EACA,YAxGA;EAyGA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,qBAAA;EACA,eAAA;EACA,eAAA;EACA,yBAAA;EACA,eAAA;AhBuyBR;AgBryBQ;EACI,uBAnHJ;EAoHI,YAnHJ;EAoHI,yBAAA;AhBuyBZ;;AgB5xBA;EACI,gDAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,MAAA;AhB+xBJ;AgB7xBI;EACI,WAAA;EACA,8BAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;AhB+xBR;;AiB36BC;EACC,kBAAA;EACA,WAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,0BAAA;AjB86BF;AiB36BC;EACC,kBAAA;EACA,WAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,8BAAA;EACA,UAAA;EACA,0BAAA;EACA,gBAAA;AjB66BF;AiBz6BE;EACC,UAAA;AjB26BH;AiBx6BE;EACC,UAAA;EACA,YAAA;EACA,WAAA;AjB06BH;AiBt6BC;EACC,kBAAA;EACA,WAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,UAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,cArDc;EAsDd,UAAA;EACA,0BAAA;AjBw6BF;AiBp6BE;EACC,UAAA;AjBs6BH;;AiBj6BA;EACC,oCA/DwB;EAgExB,2BAAA;EACA,mCAAA;EACA,mBAAA;EACA,aAAA;EACA,0CAnEc;EAoEd,gBAAA;EACA,gBAAA;EACA,mBAAA;AjBo6BD;AiBl6BC;EACC,2CAxEY;AjB4+Bd;AiBj6BC;EACC,2BAAA;EACA,yBAAA;EACA,qBAAA;EACA,WAAA;EACA,eAAA;AjBm6BF;AiBj6BE;EACC,UAAA;EACA,mBAAA;EACA,wBAAA;AjBm6BH;AiB/5BC;EACC,qBAAA;EACA,iBAAA;AjBi6BF;;AiB75BA;EACC,aAAA;EACA,eAAA;EACA,uBAAA;EACA,aAAA;AjBg6BD;;AiB75BA;EACC,eAAA;EACA,iBAAA;AjBg6BD;;AiB75BA;EACC,cAjHe;EAkHf,eAAA;AjBg6BD;;AiB75BA;EACC,mBAAA;EACA,mBAtHkB;EAuHlB,cAtHU;EAuHV,mBAAA;EACA,YAAA;AjBg6BD;;AiB55BA;EACC,aAAA;EACA,qCAAA;EACA,cAAA;EACA,kCAAA;EACA,WAAA;EACA,cAAA;EACA,6BAAA;AjB+5BD;AiB75BC;EATD;IAUE,qCAAA;EjBg6BA;AACF;AiB95BC;EAbD;IAcE,0BAAA;EjBi6BA;AACF;AiB/5BC;EACC,WAAA;EACA,aAAA;EACA,oBAAA;KAAA,iBAAA;EACA,4BAAA;AjBi6BF;;AkBnjCM;EACE,oBAAA;EACA,WAAA;AlBsjCR;AkBrjCQ;EACE,mBhBFQ;EgBGR,YAAA;EACA,yBAAA;EACA,gBAAA;EACA,WAAA;AlBujCV;AkBpjCM;EACE,mBAAA;AlBsjCR;AkBrjCQ;EACE,mBhBZQ;EgBaR,aAAA;EACA,yBAAA;EACA,gBAAA;EACA,WAAA;AlBujCV;;AkBhjCE;EACE,mBAAA;AlBmjCJ;AkBljCI;EACE,eAAA;EACA,WAAA;AlBojCN;;AkB7iCE;EACE,aAAA;AlBgjCJ;AkB7iCE;EACE,kBAAA;EACA,eAAA;AlB+iCJ;;AkB3iCA;EACI,kBAAA;AlB8iCJ;;AkB3iCA;EACI,WAAA;EACA,aAAA;AlB8iCJ;;AmBnmCA;;mEAAA;AAIE;EACE,iBAAA;AnBqmCJ;AmBlmCE;EACE,4BAAA;AnBomCJ;AmBlmCI;EACE,yBAAA;AnBomCN;;AmB/lCA;EACE,iBAAA;AnBkmCF;;AmB7lCE;EACE,mBAAA;EACA,qBAAA;EACA,iBAAA;EACA,mBAAA;EACA,mBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;AnBgmCJ;;AmB1lCA;;EAEE,eAAA;EACA,gBAAA;EACA,cAAA;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;AnB6lCF;;AmBxlCA;;;EAGE,YH7CM;AhBwoCR;;AmBxlCA;EACE,eAAA;EACA,iBAAA;EACA,mBAAA;EACA,0BAAA;EACA,gCAAA;EACA,kBAAA;AnB2lCF;AC1oCE;EkByCF;IASI,UAAA;IACA,kBAAA;EnB4lCF;EC5oCE;IACE,eAAA;IACA,kBAAA;ED8oCJ;AACF;;AmB7lCA;EACE,WAAA;EACA,WAAA;EACA,WAAA;EACA,mBFzEc;EE0Ed,kBAAA;EACA,SAAA;EACA,OAAA;AnBgmCF;AC9pCE;EkBuDF;IAUI,QAAA;IACA,UAAA;IACA,YAAA;EnBimCF;ECjqCE;IACE,eAAA;IACA,kBAAA;EDmqCJ;AACF;;AmBlmCA;EACE,iBAAA;EACA,eAAA;AnBqmCF;;AmBhmCA;EACE,kBAAA;EAEA,qBAAA;AnBkmCF;;AmB/lCA;EACE,iBAAA;AnBkmCF;;AmB/lCA;EACE,qCAAA;AnBkmCF;;AmB/lCA;EACE,4CAAA;AnBkmCF;;AmB/lCA;EACE,yBAAA;EACA,cAAA;EACA,gBAAA;EACA,gBAAA;EACA,0BAAA;EACA,gBAAA;EACA,wCAAA;AnBkmCF;;AmB/lCA;EACE,yBAAA;EACA,cAAA;EACA,gBAAA;AnBkmCF;;AmB/lCA;;EAEE,kBAAA;AnBkmCF;;AmB/lCA;EACE,gCAAA;AnBkmCF;;AmB/lCA;EACE,yBAAA;AnBkmCF;;AmB/lCA;EACE,gCAAA;AnBkmCF;;AoB9uCA;;mEAAA;AAGA;EACE,YAAA;ApBivCF;AoBhvCE;EACE,gBAAA;ApBkvCJ;;AoB/uCA;EACE,gCAAA;EACA,oBAAA;EACA,mBAAA;EACA,yBAAA;EACA,eAAA;EACA,mBAAA;ApBkvCF;;AoBhvCA;EACE,mBAAA;ApBmvCF;;AoBhvCA;EACE,cAAA;ApBmvCF;AoBlvCE;EACE,gBAAA;ApBovCJ;AoBnvCI;EACE,mBAAA;ApBqvCN;AoBlvCE;EACE,aAAA;EACA,kBAAA;EACA,gBAAA;ApBovCJ;AoBnvCI;EACE,cHlCU;EGmCV,eAAA;EACA,yBAAA;ApBqvCN;AoBlvCE;EACE,eAAA;EACA,qBAAA;EACA,cAAA;EACA,eAAA;ApBovCJ;AoBlvCE;EACE,cH9CY;EG+CZ,qBAAA;EACA,gBAAA;EACA,eAAA;ApBovCJ;AoBnvCI;EACE,iBAAA;EACA,qBAAA;ApBqvCN;AoBnvCI;EACE,cHvDU;AjB4yChB;;AoBhvCA;EACE,mBAAA;ApBmvCF;AoBjvCI;EACE,WAAA;ApBmvCN;AoBhvCE;EACE,gBAAA;ApBkvCJ;AoBhvCE;EACE,cAAA;ApBkvCJ;AoBjvCI;EACE,iBAAA;EACA,eAAA;EACA,cH3EU;AjB8zChB;;AoB7uCA;EACI,sBAAA;EACA,mBAAA;EACA,aAAA;ApBgvCJ;;AoB7uCA;EACE,eAAA;EACA,oBAAA;EACA,gCAAA;EACA,mBAAA;EACA,yBAAA;ApBgvCF;;AoB7uCA;EACE,gCAAA;EACA,6BAAA;EACA,cAAA;EACA,eAAA;ApBgvCF;AoB/uCE;EACE,WAAA;ApBivCJ;AoBhvCI;EACE,cHvGU;AjBy1ChB;AoB/uCE;EACE,kBAAA;ApBivCJ;AoB9uCE;EACE,iBAAA;ApBgvCJ;;AoB1uCG;EACG,kBAAA;EACA,qBAAA;ApB6uCN;AoB5uCM;EACE,cAAA;EACA,cAAA;EACA,eAAA;ApB8uCR;AoB5uCU;EACE,cH9HI;AjB42ChB;;AoBtuCA;EACE,gBAAA;ApByuCF;;AoBruCA;EACE,gBAAA;ApBwuCF;;AoBtuCA;EACE,kBAAA;ApByuCF;;AoBtuCA;EACE,yBAAA;EACA,gBAAA;EACA,YAAA;EACA,WAAA;ApByuCF;;AoBnuCE;EACE,gBAAA;ApBsuCJ;AoBruCI;EACE,mBAAA;ApBuuCN;;AoBjuCA;EACE,yBAAA;EACA,kBAAA;EACA,iBAAA;EACA,aAAA;EACA,kBAAA;ApBouCF;AoBnuCE;EACE,kBAAA;ApBquCJ;AoBluCI;EACE,eAAA;EACA,kBAAA;ApBouCN;AoBnuCM;EACE,cHnLQ;EGoLR,eAAA;ApBquCR;AoBluCI;EACE,eAAA;EACA,WAAA;ApBouCN;AoBluCI;EACE,gBAAA;ApBouCN;;AoB7tCA;EACE,gBAAA;ApBguCF;AoB/tCE;EACE,YAAA;EACA,gBAAA;EACA,gBAAA;ApBiuCJ;AoBhuCI;EACE,gBAAA;EACA,yBAAA;ApBkuCN;AoB/tCE;EACE,YAAA;ApBiuCJ;;AqBh7CA;EACE,mBAAA;EACA,oBAAA;ArBm7CF;AqBl7CE;EACE,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,WAAA;EACA,gBAAA;EACA,6BAAA;ArBo7CJ;AqB/6CM;EACE,YAAA;EACA,YAAA;ArBi7CR;AqB96CQ;EACE,YLbF;EKcE,eAAA;ArBg7CV;AqB76CM;EACE,eAAA;EACA,cAAA;ArB+6CR;AqBv6CM;EACE,mBAAA;ArBy6CR;AqBx6CQ;EACE,cAAA;EtB/BN,yBAAA;AC88CJ;AqB76CU;EACE,mBAAA;ArB+6CZ;AqB76CU;EACE,cJ3CI;EI4CJ,iBAAA;ArB+6CZ;AqBr6CM;EACE,mBAAA;EACA,qBAAA;EACA,iBAAA;ArBu6CR;AqBt6CQ;EACE,cAAA;EACA,qBAAA;EACA,iBAAA;EACA,yBAAA;EACA,mBAAA;EACA,eAAA;EtB1DN,yBAAA;ACu+CJ;AqB36CU;EACE,WnBnEJ;EmBoEI,mBJpEI;EIqEJ,yBAAA;ArB66CZ;;AYl/CA;EACC,mBAAA;EACA,gBAAA;AZq/CD;;AYl/CA;EACC,mBAAA;AZq/CD;;AYl/CA;EACC,mBAAA;AZq/CD;;AYl/CA;EACC,mBAAA;AZq/CD;;AYl/CA;EACC,mBAAA;AZq/CD;;AYl/CA;EACC,kBAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,oCAAA;EACA,UAAA;EACA,gCAAA;EACA,qBAAA;AZq/CD;;AYj/CA;EACC,qBAAA;EACA,WVvCO;EUwCP,WAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;EACA,6BAAA;EACA,kBAAA;EACA,kBAAA;EACA,wBAAA;EACA,2BAAA;EACA,gCAAA;AZo/CD;;AYh/CA;EACC,0BAAA;AZm/CD;;AYh/CA;EACC,UAAA;EACA,mBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;AZm/CD;;AYh/CA;EACI,eAAA;EACA,iBAAA;EACA,mBAAA;AZm/CJ;;AYh/CA;EACI,eAAA;EACA,mBAAA;AZm/CJ;;AYh/CA;EACI,qBAAA;EACA,iBAAA;EACA,mBAAA;AZm/CJ;;AYh/CA;EACI,0BAAA;EACA,gBAAA;EACA,mBAAA;AZm/CJ;;AsBzkDA;EACE,oBAAA;AtB4kDF;AsBzkDI;EACE,gBAAA;AtB2kDN;;AsBtkDA;EACE,iBAAA;AtBykDF;;AsBtkDA;EACE,YNRM;EMSN,gBAAA;EACA,mBAAA;AtBykDF;AsBvkDE;EACE,cLpBY;AjB6lDhB;;AsBrkDA;EACE,kBAAA;AtBwkDF;AsBtkDE;EACE,qCAAA;EACA,mBpB1Bc;AFkmDlB;;AsBnkDA;EACE,yCAAA;AtBskDF;;AsBjkDA;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;EACA,WAAA;EACA,mBL/Cc;EKgDd,kBAAA;EACA,kBAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;EACA,gBAAA;EACA,aAAA;AtBokDF;AClnDE;EqBgCF;IAgBI,YAAA;IACA,WAAA;EtBskDF;AACF;AsBrkDE;EACE,sBAAA;AtBukDJ;;AuBnoDA,sBAAA;AtByBE;EsBnBA;IACE,eAAA;IACA,iBAAA;EvBkoDF;EuB/nDA;IACE,aAAA;EvBioDF;EuB/nDA;IACE,yBAAA;IACA,cAAA;IACA,eAAA;EvBioDF;EuB/nDA;IACE,gBAAA;EvBioDF;EuB/nDA;IACE,gBAAA;EvBioDF;AACF;AC3oDE;EsBeA;IACE,WrB9BI;EF6pDN;EuB7nDA;IACE,aAAA;EvB+nDF;EuB7nDA;IACI,eAAA;IACA,iBAAA;EvB+nDJ;EuB7nDA;IACE,eAAA;EvB+nDF;EuB7nDA;IACI,mBAAA;IACA,mBAAA;EvB+nDJ;EC1pDE;IACE,eAAA;IACA,kBAAA;ED4pDJ;AACF;ACxqDE;EsB0CA;IACE,iBAAA;IACA,kBAAA;EvBioDF;EuB9nDA;IACE,WrBxDI;EFwrDN;EuB9nDA;IACI,eAAA;IACA,iBAAA;EvBgoDJ;EuB7nDA;IACI,eAAA;IACA,iBAAA;EvB+nDJ;EuB5nDA;IACE,wBAAA;EvB8nDF;EuB5nDA;IACI,iBAAA;IACA,gBAAA;IACA,iBAAA;EvB8nDJ;EuB3nDA;IACI,iBAAA;IACA,iBAAA;EvB6nDJ;EuB3nDA;IACI,mBAAA;IACA,mBAAA;EvB6nDJ;AACF;AC/sDE;EsBuFC;IACG,cAAA;EvB2nDJ;EuBxnDA;IACE,WrB9FI;EFwtDN;EuBvnDA;IACI,eAAA;IACA,iBAAA;EvBynDJ;EuBtnDA;IACE,aAAA;EvBwnDF;EuBrnDA;IACE,wBAAA;EvBunDF;EuBrnDA;IACI,iBAAA;IACA,gBAAA;IACA,iBAAA;EvBunDJ;EuBpnDA;IACI,iBAAA;IACA,iBAAA;EvBsnDJ;EuBnnDA;IACI,eAAA;EvBqnDJ;EuBlnDA;IACI,mBAAA;IACA,mBAAA;EvBonDJ;AACF;AwB7sDA,cAAA;AACA,oBAAA;AACA,mBAAA","file":"style.css","sourcesContent":["// Fonts \n@import url('https://fonts.googleapis.com/css2?family=Hind:wght@400;500;600;700&family=Montserrat:wght@400;700&family=Poppins:wght@300;400;600;700&display=swap');\n\nhtml{\n overflow-x: hidden;\n}\n\nbody {\n line-height: 1.5;\n font-family: $extra-font;\n -webkit-font-smoothing: antialiased;\n font-size: 17px;\n // color: #3a405b;\n color: rgba(0,0,0,0.65);\n\n}\nh1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6 {\n font-family: $secondary-font;\n font-weight:600;\n color: $black;\n}\n\nh1 ,.h1{\n font-size: 2.5rem;\n \n}\n\nh2,.h2 {\n font-size: 2rem;\n font-weight: 600;\n line-height: 42px;\n}\n\nh3,.h3 {\n font-size: 1.5rem;\n}\n\nh4,.h4 {\n font-size: 1.3rem;\n line-height: 30px;\n}\n\nh5,.h5 {\n font-size: 1.25rem;\n}\n\nh6,.h6 {\n font-size: 1rem;\n}\n\n\np{\n line-height: 30px;\n}","// Transition\n@mixin transition($what: all, $time: 0.2s, $how: ease-in-out) {\n -webkit-transition: $what $time $how;\n -moz-transition: $what $time $how;\n -ms-transition: $what $time $how;\n -o-transition: $what $time $how;\n transition: $what $time $how;\n}\n\n// Transform\n@mixin transform($transforms) {\n\t -moz-transform: $transforms;\n\t -o-transform: $transforms;\n\t -ms-transform: $transforms;\n\t-webkit-transform: $transforms;\n transform: $transforms;\n}\n// rotate\n@mixin rotate ($deg) {\n @include transform(rotate(#{$deg}deg));\n}\n \n// scale\n@mixin scale($scale) {\n\t @include transform(scale($scale));\n} \n// translate\n@mixin translate ($x, $y) {\n @include transform(translate($x, $y));\n}\n// skew\n@mixin skew ($x, $y) {\n @include transform(skew(#{$x}deg, #{$y}deg));\n}\n//transform origin\n@mixin transform-origin ($origin) {\n moz-transform-origin: $origin;\n\t -o-transform-origin: $origin;\n\t -ms-transform-origin: $origin;\n\t-webkit-transform-origin: $origin;\n transform-origin: $origin;\n}\n\n\n@keyframes slide {\n 0% {\n transform: translateX(100%);\n }\n\n 100% {\n transform: translateX(-100%);\n }\n}","@import url(\"https://fonts.googleapis.com/css2?family=Hind:wght@400;500;600;700&family=Montserrat:wght@400;700&family=Poppins:wght@300;400;600;700&display=swap\");\n@keyframes slide {\n 0% {\n transform: translateX(100%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n/*=== MEDIA QUERY ===*/\nhtml {\n overflow-x: hidden;\n}\n\nbody {\n line-height: 1.5;\n font-family: \"Hind\", serif;\n -webkit-font-smoothing: antialiased;\n font-size: 17px;\n color: rgba(0, 0, 0, 0.65);\n}\n\nh1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {\n font-family: \"Poppins\", sans-serif;\n font-weight: 600;\n color: #242424;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n font-weight: 600;\n line-height: 42px;\n}\n\nh3, .h3 {\n font-size: 1.5rem;\n}\n\nh4, .h4 {\n font-size: 1.3rem;\n line-height: 30px;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\np {\n line-height: 30px;\n}\n\n.navbar-toggle .icon-bar {\n background: #ff0000;\n}\n\ninput[type=email], input[type=password], input[type=text], input[type=tel] {\n box-shadow: none;\n height: 45px;\n outline: none;\n font-size: 14px;\n}\ninput[type=email]:focus, input[type=password]:focus, input[type=text]:focus, input[type=tel]:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n\n.form-control {\n box-shadow: none;\n border-radius: 0;\n}\n.form-control:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n\n.py-7 {\n padding: 7rem 0px;\n}\n\n.btn {\n display: inline-block;\n font-size: 14px;\n font-size: 0.8125rem;\n font-weight: 500;\n padding: 1rem 2.5rem 0.8rem;\n text-transform: uppercase;\n border-radius: 0;\n transition: 0.3s;\n}\n.btn.btn-icon i {\n font-size: 16px;\n vertical-align: middle;\n margin-right: 5px;\n}\n.btn:focus {\n outline: 0px;\n box-shadow: none;\n}\n\n.btn-main, .btn-small, .btn-transparent {\n background: #ff0000;\n color: #fff;\n -webkit-transition: all 0.2s ease;\n -moz-transition: all 0.2s ease;\n -ms-transition: all 0.2s ease;\n -o-transition: all 0.2s ease;\n transition: all 0.2s ease;\n}\n.btn-main:hover, .btn-small:hover, .btn-transparent:hover {\n background: #cc0000;\n color: #fff;\n}\n\n.btn-solid-border {\n border: 2px solid #ff0000;\n background: transparent;\n color: #242424;\n}\n.btn-solid-border:hover {\n border: 2px solid #ff0000;\n background: #ff0000;\n}\n\n.btn-transparent {\n background: transparent;\n padding: 0;\n color: #ff0000;\n}\n.btn-transparent:hover {\n background: transparent;\n color: #ff0000;\n}\n\n.btn-large {\n padding: 20px 45px;\n}\n.btn-large.btn-icon i {\n font-size: 16px;\n vertical-align: middle;\n margin-right: 5px;\n}\n\n.btn-small {\n padding: 13px 25px 10px;\n font-size: 12px;\n}\n\n.btn-round {\n border-radius: 4px;\n}\n\n.btn-round-full {\n border-radius: 50px;\n}\n\n.btn.active:focus, .btn:active:focus, .btn:focus {\n outline: 0;\n}\n\n.bg-gray {\n background: #f5f8f9;\n}\n\n.bg-primary {\n background: #ff0000;\n}\n\n.bg-primary-dark {\n background: #cc0000;\n}\n\n.bg-primary-darker {\n background: #990000;\n}\n\n.bg-dark {\n background: #242424;\n}\n\n.bg-gradient {\n background-image: linear-gradient(145deg, rgba(19, 177, 205, 0.95) 0%, rgba(152, 119, 234, 0.95) 100%);\n background-repeat: repeat-x;\n}\n\n.section {\n padding: 100px 0;\n}\n\n.section-sm {\n padding: 70px 0;\n}\n\n.section-title {\n margin-bottom: 70px;\n}\n.section-title .title {\n font-size: 50px;\n line-height: 50px;\n}\n.section-title p {\n color: #666;\n font-family: \"Poppins\", sans-serif;\n}\n\n.subtitle {\n color: #ff0000;\n font-size: 14px;\n letter-spacing: 1px;\n}\n\n.overly, .cta, .slider, .page-title {\n position: relative;\n}\n.overly:before, .cta:before, .slider:before, .page-title:before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n background: #000;\n}\n\n.overly-2, .latest-blog, .cta-block, .bg-counter {\n position: relative;\n}\n.overly-2:before, .latest-blog:before, .cta-block:before, .bg-counter:before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n}\n\n.text-color {\n color: #ff0000;\n}\n\n.text-black {\n color: #242424;\n}\n\n.text-color2 {\n color: #c54041;\n}\n\n.text-color2 {\n color: #b99769;\n}\n\n.text-sm {\n font-size: 14px;\n}\n\n.text-md {\n font-size: 2.25rem;\n}\n\n.text-lg {\n font-size: 3.75rem;\n}\n\n.no-spacing {\n letter-spacing: 0px;\n}\n\n/* Links */\na {\n color: #242424;\n text-decoration: none;\n}\n\na:focus, a:hover {\n color: #ff0000;\n text-decoration: none;\n}\n\na:focus {\n outline: none;\n}\n\n.content-title {\n font-size: 40px;\n line-height: 50px;\n}\n\n.page-title {\n padding: 100px 0;\n}\n.page-title .block h1 {\n color: #fff;\n}\n.page-title .block p {\n color: #fff;\n}\n\n.page-wrapper {\n padding: 70px 0;\n}\n\n#wrapper-work {\n overflow: hidden;\n padding-top: 100px;\n}\n#wrapper-work ul li {\n width: 50%;\n float: left;\n position: relative;\n}\n#wrapper-work ul li img {\n width: 100%;\n height: 100%;\n}\n#wrapper-work ul li .items-text {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n color: #fff;\n background: rgba(0, 0, 0, 0.6);\n padding-left: 44px;\n padding-top: 140px;\n}\n#wrapper-work ul li .items-text h2 {\n padding-bottom: 28px;\n padding-top: 75px;\n position: relative;\n}\n#wrapper-work ul li .items-text h2:before {\n content: \"\";\n position: absolute;\n left: 0;\n bottom: 0;\n width: 75px;\n height: 3px;\n background: #fff;\n}\n#wrapper-work ul li .items-text p {\n padding-top: 30px;\n font-size: 16px;\n line-height: 27px;\n font-weight: 300;\n padding-right: 80px;\n}\n\n/*--\n\tfeatures-work Start \n--*/\n#features-work {\n padding-top: 50px;\n padding-bottom: 75px;\n}\n#features-work .block ul li {\n width: 19%;\n text-align: center;\n display: inline-block;\n padding: 40px 0px;\n}\n\n#tickerScroller {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n padding: 10px 0;\n background-color: #333;\n color: white;\n overflow: hidden;\n z-index: 9999;\n border-radius: 0px 0px 10px 10px;\n}\n\n#tickerContainer {\n display: flex;\n align-items: center;\n animation: slide linear infinite;\n white-space: nowrap;\n font-family: \"Arial\", sans-serif;\n}\n\n.tickerText {\n margin-right: 50px;\n}\n\n#navbar {\n background: rgb(34, 35, 40);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n#navbar li {\n padding-left: 15px;\n}\n@media (max-width: 992px) {\n #navbar li {\n padding-left: 0;\n }\n}\n#navbar .nav-link {\n font-family: \"Poppins\", sans-serif;\n font-weight: 500;\n color: #fff;\n text-transform: uppercase;\n font-size: 14px;\n letter-spacing: 0.5px;\n transition: all 0.25s ease;\n}\n#navbar .nav-link:hover, #navbar .nav-link:focus,\n#navbar .active .nav-link {\n color: #ff0000;\n}\n#navbar .btn {\n padding: 0.7rem 1.5rem 0.5rem;\n color: #fff;\n}\n@media (max-width: 992px) {\n #navbar .btn {\n margin: 15px 0 10px;\n }\n}\n#navbar .row {\n margin: 0 -15px -42px 0px;\n}\n\n.header-top {\n background: rgb(34, 35, 40);\n color: #919194;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n}\n.header-top .header-top-socials {\n border-right: 1px solid rgba(255, 255, 255, 0.05);\n padding: 12px 0px;\n}\n.header-top .header-top-socials {\n margin-left: -8px;\n}\n.header-top .header-top-socials a {\n color: #919194;\n margin-right: 8px;\n font-size: 16px;\n padding: 0 8px;\n}\n.header-top .header-top-socials a:hover {\n color: #ff0000;\n}\n.header-top .header-top-info {\n color: #919194;\n font-size: 16px;\n}\n.header-top .header-top-info a span {\n color: #fff;\n}\n.header-top .header-top-info a {\n margin-left: 35px;\n color: #919194;\n}\n\n.navbar-toggler {\n padding: 0;\n font-size: 1.5rem;\n color: #fff;\n}\n.navbar-toggler:focus {\n outline: 0;\n}\n\n.navbar-brand {\n color: #fff;\n font-weight: 600;\n letter-spacing: 1px;\n}\n.navbar-brand span {\n color: #ff0000;\n}\n\n.dropdown-menu {\n padding: 0px;\n border: 0;\n border-radius: 0px;\n}\n@media (max-width: 992px) {\n .dropdown-menu {\n text-align: center;\n float: left !important;\n width: 100%;\n margin: 0;\n }\n}\n.dropdown-menu li:first-child {\n margin-top: 5px;\n}\n.dropdown-menu li:last-child {\n margin-bottom: 5px;\n}\n\n.dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-menu,\n.dropright .dropdown-menu {\n margin: 0;\n}\n\n.dropleft .dropdown-toggle::before,\n.dropright .dropdown-toggle::after {\n font-weight: bold;\n font-family: \"Font Awesome 5 Free\";\n border: 0;\n font-size: 10px;\n vertical-align: 1px;\n}\n\n.dropleft .dropdown-toggle::before {\n content: \"\\f053\";\n margin-right: 5px;\n}\n\n.dropright .dropdown-toggle::after {\n content: \"\\f054\";\n margin-left: 5px;\n}\n\n.dropdown-item {\n padding: 0.8rem 1.5rem 0.55rem;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 500;\n}\n@media (max-width: 992px) {\n .dropdown-item {\n padding: 0.6rem 1.5rem 0.35rem;\n }\n}\n\n.dropdown-submenu.active > .dropdown-toggle,\n.dropdown-submenu:hover > .dropdown-item,\n.dropdown-item.active,\n.dropdown-item:hover {\n background: #ff0000;\n color: #fff;\n}\n\nul.dropdown-menu li {\n padding-left: 0px !important;\n}\n\n@media (min-width: 992px) {\n .dropdown-menu {\n transition: all 0.2s ease-in, visibility 0s linear 0.2s, transform 0.2s linear;\n display: block;\n visibility: hidden;\n opacity: 0;\n min-width: 200px;\n margin-top: 15px;\n }\n .dropdown-menu li:first-child {\n margin-top: 10px;\n }\n .dropdown-menu li:last-child {\n margin-bottom: 10px;\n }\n .dropleft .dropdown-menu,\n .dropright .dropdown-menu {\n margin-top: -10px;\n }\n .dropdown:hover > .dropdown-menu {\n visibility: visible;\n transition: all 0.45s ease 0s;\n opacity: 1;\n }\n}\n.bg-1 {\n background: url(\"../images/competition/conference-room.jpg\") no-repeat 50% 50%;\n background-size: cover;\n}\n\n.bg-2 {\n background: url(\"../images/competition/conference-room.jpg\");\n background-size: cover;\n}\n\n.slider {\n background: url(\"../../images/competition/good-team.jpg\") no-repeat;\n background-size: cover;\n background-position: right 0% bottom 80%;\n background-repeat: no-repeat;\n padding: 500px 0;\n position: relative;\n}\n@media (max-width: 768px) {\n .slider {\n padding: 300px 0;\n }\n .slider .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n.slider .block h1 {\n font-size: 70px;\n line-height: 80px;\n font-weight: 600;\n color: #fff;\n}\n.slider .block p {\n margin-bottom: 30px;\n color: #b9b9b9;\n font-size: 18px;\n line-height: 27px;\n font-weight: 300;\n}\n.slider .block span {\n letter-spacing: 1px;\n}\n\n.intro-item i {\n font-size: 60px;\n line-height: 60px;\n}\n\n.color-one {\n color: #ff0000;\n}\n\n.color-two {\n color: #00d747;\n}\n\n.color-three {\n color: #9262ff;\n}\n\n.color-four {\n color: #088ed3;\n}\n\n.bg-about {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n width: 45%;\n min-height: 650px;\n background: url(\"../../images/competition/concentration.jpg\") no-repeat;\n background-size: cover;\n background-position: center;\n border-radius: 1000px;\n}\n\n.about-content {\n padding: 20px 0px 0px 80px;\n}\n.about-content h4 {\n font-weight: 600;\n}\n.about-content h4:before {\n position: absolute;\n content: \"\\f576\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 30px;\n position: absolute;\n top: 8px;\n left: -65px;\n font-weight: 700;\n}\n\n.counter-item .counter-stat {\n font-size: 50px;\n}\n.counter-item p {\n margin-bottom: 0px;\n}\n\n.bg-counter {\n background: url(\"../images/bg/counter.jpg\") no-repeat;\n background-size: cover;\n}\n\n.team-item {\n border-radius: 20px;\n overflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n background: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n background: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n background: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n background: #3399cc;\n}\n\n.team-img-hover {\n position: absolute;\n top: 10px;\n left: 10px;\n right: 10px;\n bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.6);\n opacity: 0;\n transition: all 0.2s ease-in-out;\n transform: scale(0.8);\n}\n\n.team-img-hover li a {\n display: inline-block;\n color: #fff;\n width: 50px;\n height: 50px;\n font-size: 20px;\n line-height: 50px;\n border: 2px solid transparent;\n border-radius: 2px;\n text-align: center;\n transform: translateY(0);\n backface-visibility: hidden;\n transition: all 0.3s ease-in-out;\n}\n\n.team-img-hover:hover li a:hover {\n transform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n opacity: 1;\n transform: scale(1);\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n\n.service-item {\n position: relative;\n padding-left: 80px;\n}\n.service-item i {\n position: absolute;\n left: 0px;\n top: 5px;\n font-size: 50px;\n opacity: 0.4;\n}\n\n.cta {\n background: url(\"../images/competition/concentration-head.jpg\") fixed 50% 50%;\n background-size: cover;\n padding: 120px 0px;\n}\n\n.cta-block {\n background: url(\"../images/competition/concentration-head.jpg\") no-repeat;\n background-size: cover;\n}\n\n.testimonial-item {\n padding: 50px 30px;\n}\n.testimonial-item i {\n font-size: 40px;\n position: absolute;\n left: 30px;\n top: 30px;\n z-index: 1;\n}\n.testimonial-item .testimonial-text {\n font-size: 20px;\n line-height: 38px;\n color: #242424;\n margin-bottom: 30px;\n font-style: italic;\n}\n.testimonial-item .testimonial-item-content {\n padding-left: 65px;\n}\n\n.slick-slide:focus, .slick-slide a {\n outline: none;\n}\n\nbody {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n}\n\n.container {\n width: 80%;\n margin: auto;\n overflow: hidden;\n padding: 15px;\n}\n@media (max-width: 768px) {\n .container {\n width: 95%;\n }\n}\n\n.row {\n margin: 0 -15px 0px 0px;\n}\n\n.col {\n padding: 0 15px;\n}\n\n.page-title {\n background: url(\"images/competition/concentration.jpg\") cover;\n padding: 30px 0;\n color: white;\n text-align: center;\n}\n\n.partner-logos .col {\n text-align: center;\n margin-bottom: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n.partner-logos .col img {\n max-width: 100%;\n height: auto;\n}\n@media (max-width: 768px) {\n .partner-logos .col {\n flex-basis: 50%;\n }\n}\n\n.partnership-offers table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 20px;\n}\n.partnership-offers table th, .partnership-offers table td {\n border: 1px solid #ddd;\n padding: 10px;\n text-align: left;\n}\n.partnership-offers table th {\n background-color: #4CAF50;\n color: white;\n font-weight: bold;\n}\n.partnership-offers table tr:nth-child(even) {\n background-color: #f2f2f2;\n}\n.partnership-offers table tr:hover {\n background-color: #ddd;\n}\n.partnership-offers table tr ul {\n list-style: none;\n padding: 0;\n}\n.partnership-offers table tr ul li {\n padding: 5px 0;\n}\n\n.text-center {\n text-align: center;\n margin: 20px 0;\n}\n.text-center .btn-primary {\n background-color: #007bff;\n border: none;\n color: white;\n padding: 12px 25px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n transition-duration: 0.4s;\n cursor: pointer;\n}\n.text-center .btn-primary:hover {\n background-color: white;\n color: black;\n border: 2px solid #007bff;\n}\n\n.hero-img {\n background: url(\"../images/bg/home-5.jpg\") cover;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n}\n.hero-img::before {\n content: \"\";\n background: rgba(0, 0, 0, 0.5);\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.portflio-item .portfolio-item-content {\n position: absolute;\n content: \"\";\n right: 0px;\n bottom: 0px;\n opacity: 0;\n transition: all 0.35s ease;\n}\n.portflio-item:before {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n opacity: 0;\n transition: all 0.35s ease;\n overflow: hidden;\n}\n.portflio-item:hover:before {\n opacity: 1;\n}\n.portflio-item:hover .portfolio-item-content {\n opacity: 1;\n bottom: 20px;\n right: 30px;\n}\n.portflio-item .overlay-item {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n bottom: 0px;\n right: 0px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 80px;\n color: #ff0000;\n opacity: 0;\n transition: all 0.35s ease;\n}\n.portflio-item:hover .overlay-item {\n opacity: 1;\n}\n\n.project-card {\n background: rgba(255, 255, 255, 0.1);\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n border-radius: 15px;\n padding: 20px;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s;\n overflow: hidden;\n margin-bottom: 20px;\n}\n.project-card:hover {\n box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);\n}\n.project-card .project-link {\n transform: translateY(10px);\n transition: all 0.3s ease;\n text-decoration: none;\n color: blue;\n cursor: pointer;\n}\n.project-card .project-link:hover {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n.project-card .icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.project-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n padding: 10px;\n}\n\n.project-title {\n font-size: 18px;\n font-weight: bold;\n}\n\n.project-stars {\n color: #ff0000;\n font-size: 14px;\n}\n\n.project-description {\n white-space: normal;\n font-size: 0.875rem;\n color: #718096;\n margin-bottom: 1rem;\n width: 600px;\n}\n\n.grid-container {\n display: flex;\n grid-template-columns: repeat(3, 1fr);\n /* 3 columns */\n grid-template-rows: repeat(3, 1fr);\n /* 3 rows */\n grid-gap: 20px;\n /* 20px gap between columns */\n}\n@media (max-width: 768px) {\n .grid-container {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n@media (max-width: 480px) {\n .grid-container {\n grid-template-columns: 1fr;\n }\n}\n.grid-container .project-image img {\n width: 100%;\n height: 200px;\n object-fit: cover;\n border-radius: 10px 10px 0 0;\n}\n\n.contact-form-wrap .form-group {\n padding-bottom: 15px;\n margin: 0px;\n}\n.contact-form-wrap .form-group .form-control {\n background: #f5f8f9;\n height: 48px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n}\n.contact-form-wrap .form-group-2 {\n margin-bottom: 13px;\n}\n.contact-form-wrap .form-group-2 textarea {\n background: #f5f8f9;\n height: 135px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n}\n\n.address-block li {\n margin-bottom: 10px;\n}\n.address-block li i {\n font-size: 20px;\n width: 20px;\n}\n\n.social-icons li {\n margin: 0 6px;\n}\n.social-icons i {\n margin-right: 15px;\n font-size: 25px;\n}\n\n.google-map {\n position: relative;\n}\n\n.google-map #map {\n width: 100%;\n height: 450px;\n}\n\n/*=================================================================\n Latest Posts\n==================================================================*/\n.blog-item-content h3 {\n line-height: 36px;\n}\n.blog-item-content h3 a {\n transition: all 0.4s ease 0s;\n}\n.blog-item-content h3 a:hover {\n color: #ff0000 !important;\n}\n\n.lh-36 {\n line-height: 36px;\n}\n\n.tags a {\n background: #f5f8f9;\n display: inline-block;\n padding: 8px 23px;\n border-radius: 38px;\n margin-bottom: 10px;\n border: 1px solid #eee;\n font-size: 14px;\n text-transform: capitalize;\n}\n\n.pagination .nav-links a,\n.pagination .nav-links span.current {\n font-size: 20px;\n font-weight: 500;\n color: #c9c9c9;\n margin: 0 10px;\n text-transform: uppercase;\n letter-spacing: 1.2px;\n}\n\n.pagination .nav-links span.current,\n.pagination .nav-links a.next,\n.pagination .nav-links a.prev {\n color: black;\n}\n\nh3.quote {\n font-size: 24px;\n line-height: 40px;\n font-weight: normal;\n padding: 0px 25px 0px 85px;\n margin: 65px 0 65px 0 !important;\n position: relative;\n}\n@media (max-width: 768px) {\n h3.quote {\n padding: 0;\n padding-left: 20px;\n }\n h3.quote .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n\nh3.quote::before {\n content: \"\";\n width: 55px;\n height: 2px;\n background: #ff0000;\n position: absolute;\n top: 25px;\n left: 0;\n}\n@media (max-width: 768px) {\n h3.quote::before {\n top: 5px;\n width: 2px;\n height: 35px;\n }\n h3.quote::before .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n\n.nav-posts-title {\n line-height: 25px;\n font-size: 18px;\n}\n\n.latest-blog {\n position: relative;\n padding-bottom: 150px;\n}\n\n.mt-70 {\n margin-top: -70px;\n}\n\n.border-1 {\n border: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.blog-item {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.styled-table {\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n min-width: 400px;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n}\n\n.styled-table thead tr {\n background-color: #009879;\n color: #ffffff;\n text-align: left;\n}\n\n.styled-table th,\n.styled-table td {\n padding: 12px 15px;\n}\n\n.styled-table tbody tr {\n border-bottom: 1px solid #dddddd;\n}\n\n.styled-table tbody tr:nth-of-type(even) {\n background-color: #f3f3f3;\n}\n\n.styled-table tbody tr:last-of-type {\n border-bottom: 2px solid #009879;\n}\n\n/*=================================================================\n Single Blog Page\n==================================================================*/\n.post.post-single {\n border: none;\n}\n.post.post-single .post-thumb {\n margin-top: 30px;\n}\n\n.post-sub-heading {\n border-bottom: 1px solid #dedede;\n padding-bottom: 20px;\n letter-spacing: 2px;\n text-transform: uppercase;\n font-size: 16px;\n margin-bottom: 20px;\n}\n\n.post-social-share {\n margin-bottom: 50px;\n}\n\n.post-comments {\n margin: 30px 0;\n}\n.post-comments .media {\n margin-top: 20px;\n}\n.post-comments .media > .pull-left {\n padding-right: 20px;\n}\n.post-comments .comment-author {\n margin-top: 0;\n margin-bottom: 0px;\n font-weight: 500;\n}\n.post-comments .comment-author a {\n color: #ff0000;\n font-size: 14px;\n text-transform: uppercase;\n}\n.post-comments time {\n margin: 0 0 5px;\n display: inline-block;\n color: #808080;\n font-size: 12px;\n}\n.post-comments .comment-button {\n color: #ff0000;\n display: inline-block;\n margin-left: 5px;\n font-size: 12px;\n}\n.post-comments .comment-button i {\n margin-right: 5px;\n display: inline-block;\n}\n.post-comments .comment-button:hover {\n color: #ff0000;\n}\n\n.post-excerpt {\n margin-bottom: 60px;\n}\n.post-excerpt h3 a {\n color: #000;\n}\n.post-excerpt p {\n margin: 0 0 30px;\n}\n.post-excerpt blockquote.quote-post {\n margin: 20px 0;\n}\n.post-excerpt blockquote.quote-post p {\n line-height: 30px;\n font-size: 20px;\n color: #ff0000;\n}\n\n.single-blog {\n background-color: #fff;\n margin-bottom: 50px;\n padding: 20px;\n}\n\n.blog-subtitle {\n font-size: 15px;\n padding-bottom: 10px;\n border-bottom: 1px solid #dedede;\n margin-bottom: 25px;\n text-transform: uppercase;\n}\n\n.next-prev {\n border-bottom: 1px solid #dedede;\n border-top: 1px solid #dedede;\n margin: 20px 0;\n padding: 25px 0;\n}\n.next-prev a {\n color: #000;\n}\n.next-prev a:hover {\n color: #ff0000;\n}\n.next-prev .prev-post i {\n margin-right: 10px;\n}\n.next-prev .next-post i {\n margin-left: 10px;\n}\n\n.social-profile ul li {\n margin: 0 10px 0 0;\n display: inline-block;\n}\n.social-profile ul li a {\n color: #4e595f;\n display: block;\n font-size: 16px;\n}\n.social-profile ul li a i:hover {\n color: #ff0000;\n}\n\n.comments-section {\n margin-top: 35px;\n}\n\n.author-about {\n margin-top: 40px;\n}\n\n.post-author {\n margin-right: 20px;\n}\n\n.post-author > img {\n border: 1px solid #dedede;\n max-width: 120px;\n padding: 5px;\n width: 100%;\n}\n\n.comment-list ul {\n margin-top: 20px;\n}\n.comment-list ul li {\n margin-bottom: 20px;\n}\n\n.comment-wrap {\n border: 1px solid #dedede;\n border-radius: 1px;\n margin-left: 20px;\n padding: 10px;\n position: relative;\n}\n.comment-wrap .author-avatar {\n margin-right: 10px;\n}\n.comment-wrap .media .media-heading {\n font-size: 14px;\n margin-bottom: 8px;\n}\n.comment-wrap .media .media-heading a {\n color: #ff0000;\n font-size: 13px;\n}\n.comment-wrap .media .comment-meta {\n font-size: 12px;\n color: #888;\n}\n.comment-wrap .media p {\n margin-top: 15px;\n}\n\n.comment-reply-form {\n margin-top: 80px;\n}\n.comment-reply-form input, .comment-reply-form textarea {\n height: 35px;\n border-radius: 0;\n box-shadow: none;\n}\n.comment-reply-form input:focus, .comment-reply-form textarea:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n.comment-reply-form textarea, .comment-reply-form .btn-main, .comment-reply-form .btn-transparent, .comment-reply-form .btn-small {\n height: auto;\n}\n\n.widget {\n margin-bottom: 30px;\n padding-bottom: 35px;\n}\n.widget .widget-title {\n margin-bottom: 15px;\n padding-bottom: 10px;\n font-size: 16px;\n color: #333;\n font-weight: 500;\n border-bottom: 1px solid #ddd;\n}\n.widget.widget-latest-post .media .media-object {\n width: 100px;\n height: auto;\n}\n.widget.widget-latest-post .media .media-heading a {\n color: black;\n font-size: 16px;\n}\n.widget.widget-latest-post .media p {\n font-size: 12px;\n color: #808080;\n}\n.widget.widget-category ul li {\n margin-bottom: 10px;\n}\n.widget.widget-category ul li a {\n color: #837f7e;\n -webkit-transition: all 0.3s ease;\n -moz-transition: all 0.3s ease;\n -ms-transition: all 0.3s ease;\n -o-transition: all 0.3s ease;\n transition: all 0.3s ease;\n}\n.widget.widget-category ul li a:before {\n padding-right: 10px;\n}\n.widget.widget-category ul li a:hover {\n color: #ff0000;\n padding-left: 5px;\n}\n.widget.widget-tag ul li {\n margin-bottom: 10px;\n display: inline-block;\n margin-right: 5px;\n}\n.widget.widget-tag ul li a {\n color: #837f7e;\n display: inline-block;\n padding: 8px 15px;\n border: 1px solid #dedede;\n border-radius: 30px;\n font-size: 14px;\n -webkit-transition: all 0.3s ease;\n -moz-transition: all 0.3s ease;\n -ms-transition: all 0.3s ease;\n -o-transition: all 0.3s ease;\n transition: all 0.3s ease;\n}\n.widget.widget-tag ul li a:hover {\n color: #fff;\n background: #ff0000;\n border: 1px solid #ff0000;\n}\n\n.team-item {\n border-radius: 20px;\n overflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n background: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n background: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n background: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n background: #3399cc;\n}\n\n.team-img-hover {\n position: absolute;\n top: 10px;\n left: 10px;\n right: 10px;\n bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.6);\n opacity: 0;\n transition: all 0.2s ease-in-out;\n transform: scale(0.8);\n}\n\n.team-img-hover li a {\n display: inline-block;\n color: #fff;\n width: 50px;\n height: 50px;\n font-size: 20px;\n line-height: 50px;\n border: 2px solid transparent;\n border-radius: 2px;\n text-align: center;\n transform: translateY(0);\n backface-visibility: hidden;\n transition: all 0.3s ease-in-out;\n}\n\n.team-img-hover:hover li a:hover {\n transform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n opacity: 1;\n transform: scale(1);\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n\n.footer {\n padding-bottom: 10px;\n}\n.footer .copyright a {\n font-weight: 600;\n}\n\n.lh-35 {\n line-height: 35px;\n}\n\n.logo {\n color: black;\n font-weight: 600;\n letter-spacing: 1px;\n}\n.logo span {\n color: #ff0000;\n}\n\n.sub-form {\n position: relative;\n}\n.sub-form .form-control {\n border: 1px solid rgba(0, 0, 0, 0.06);\n background: #f5f8f9;\n}\n\n.footer-btm {\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n}\n\n.scroll-to-top {\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 999;\n height: 40px;\n width: 40px;\n background: #ff0000;\n border-radius: 50%;\n text-align: center;\n line-height: 43px;\n color: white;\n cursor: pointer;\n transition: 0.3s;\n display: none;\n}\n@media (max-width: 480px) {\n .scroll-to-top {\n bottom: 15px;\n right: 15px;\n }\n}\n.scroll-to-top:hover {\n background-color: #333;\n}\n\n/*=== MEDIA QUERY ===*/\n@media (max-width: 992px) {\n .slider .block h1 {\n font-size: 56px;\n line-height: 70px;\n }\n .bg-about {\n display: none;\n }\n section.about {\n border: 1px solid #dee2e6;\n border-left: 0;\n border-right: 0;\n }\n .footer-socials {\n margin-top: 20px;\n }\n .footer-socials li a {\n margin-left: 0px;\n }\n}\n@media (max-width: 768px) {\n .navbar-toggler {\n color: #fff;\n }\n .bg-about {\n display: none;\n }\n .slider .block h1 {\n font-size: 48px;\n line-height: 62px;\n }\n .blog-item-meta span {\n margin: 6px 0px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n@media (max-width: 480px) {\n .header-top .header-top-info a {\n margin-left: 10px;\n margin-right: 10px;\n }\n .navbar-toggler {\n color: #fff;\n }\n .slider .block h1 {\n font-size: 38px;\n line-height: 50px;\n }\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n .p-5 {\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n}\n@media (max-width: 400px) {\n .header-top .header-top-info a {\n display: block;\n }\n .navbar-toggler {\n color: #fff;\n }\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n .bg-about {\n display: none;\n }\n .p-5 {\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .text-lg {\n font-size: 3rem;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n}\n@tailwind base;\n@tailwind components;\n@tailwind utilities;","/*=== MEDIA QUERY ===*/\n@mixin mobile-xs {\n @media(max-width:400px) {\n @content;\n }\n}\n\n@mixin mobile {\n @media(max-width:480px) {\n @content;\n }\n}\n\n@mixin tablet {\n @media(max-width:768px) {\n @content;\n\n .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n }\n}\n\n@mixin desktop {\n @media(max-width:992px) {\n @content;\n }\n}\n\n@mixin large-desktop {\n @media(max-width:1200px) {\n @content;\n }\n}","$light: #fff;\n$primary-color: rgb(247, 87, 87);\n$primary-color: #ff0000; // Example primary color\n$secondary-color: #f5f8f9;\n$event-color: #c54041;\n$law-color: #b99769;\n$black: #242424;\n$border-color:#dedede;\n$primary-font:'Montserrat', sans-serif;\n$secondary-font:'Poppins', sans-serif;\n$extra-font:'Hind', serif;",".navbar-toggle .icon-bar {\n background: $primary-color;\n}\n\ninput[type=\"email\"],input[type=\"password\"],input[type=\"text\"],input[type=\"tel\"]{\n box-shadow:none;\n height:45px;\n outline: none;\n font-size:14px;\n &:focus {\n box-shadow: none;\n border:1px solid $primary-color;\n }\n}\n\n\n.form-control {\n box-shadow: none;\n border-radius: 0;\n &:focus {\n box-shadow:none;\n border:1px solid $primary-color;\n }\n}\n\n//\n\n.py-7{\n padding: 7rem 0px;\n}\n\n// Button Style\n\n.btn{\n display: inline-block;\n font-size: 14px;\n font-size: 0.8125rem;\n font-weight: 500;\n padding: 1rem 2.5rem .8rem;\n text-transform: uppercase;\n border-radius:0;\n transition: 0.3s;\n\n &.btn-icon {\n i {\n font-size:16px;\n vertical-align:middle;\n margin-right:5px;\n }\n }\n\n &:focus{\n outline: 0px;\n box-shadow: none;\n }\n}\n\n.btn-main {\n background: $primary-color;\n color: $light;\n @include transition (all, 0.2s, ease);\n \n &:hover {\n background: darken( $primary-color, 10% );\n color: $light;\n }\n}\n\n\n.btn-solid-border {\n border:2px solid $primary-color;\n background:transparent;\n color:$black;\n \n &:hover {\n border:2px solid $primary-color;\n background:$primary-color;\n }\n}\n\n\n.btn-transparent {\n @extend .btn-main;\n background:transparent;\n padding:0;\n color:$primary-color;\n &:hover {\n background:transparent;\n color:$primary-color;\n }\n}\n\n.btn-large {\n padding:20px 45px;\n &.btn-icon {\n i {\n font-size:16px;\n vertical-align:middle;\n margin-right:5px;\n }\n }\n}\n\n.btn-small {\n @extend .btn-main ;\n padding:13px 25px 10px;\n font-size:12px;\n}\n\n.btn-round {\n border-radius:4px;\n}\n.btn-round-full {\n border-radius:50px;\n}\n\n\n.btn.active:focus, .btn:active:focus, .btn:focus {\n outline: 0;\n}\n\n\n// Background\n\n.bg-gray {\n background:$secondary-color;\n}\n.bg-primary {\n background:$primary-color;\n}\n.bg-primary-dark {\n background:darken($primary-color, 10%);\n}\n.bg-primary-darker {\n background:darken($primary-color, 20%);\n}\n\n.bg-dark {\n background:$black;\n}\n\n\n.bg-gradient{\n background-image: linear-gradient(145deg, rgba(19, 177, 205, 0.95) 0%, rgba(152, 119, 234, 0.95) 100%);\n background-repeat: repeat-x;\n}\n\n\n// Section Title\n.section {\n padding:100px 0;\n}\n.section-sm {\n padding:70px 0;\n}\n\n.section-title {\n margin-bottom: 70px;\n \n .title{\n font-size: 50px;\n line-height: 50px;\n }\n p {\n color: #666;\n font-family:$secondary-font;\n }\n}\n\n\n.subtitle {\n color: $primary-color;\n font-size: 14px;\n letter-spacing: 1px;\n}\n\n\n\n\n.overly {\n position: relative;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n background: #000;\n }\n}\n\n\n.overly-2 {\n position: relative;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.8);\n }\n}\n\n\n.text-color{\n color: $primary-color;\n}\n\n.text-black{\n color: $black;\n}\n\n.text-color2{\n color: $event-color;\n}\n\n.text-color2{\n color: $law-color;\n}\n\n\n.text-sm{\n font-size: 14px;\n}\n.text-md{\n font-size: 2.25rem;\n}\n.text-lg{\n font-size:3.75rem; \n}\n\n.no-spacing{\n letter-spacing: 0px\n}\n\n\n/* Links */\na {\n color: $black;\n text-decoration: none;\n}\n\na:focus, a:hover {\n color: $primary-color;\n text-decoration: none;\n}\n\na:focus {\n outline: none;\n}\n\n\n.content-title {\n font-size: 40px;\n line-height: 50px;\n}\n\n\n\n.page-title{\n padding: 100px 0;\n @extend .overly;\n .block{\n h1{\n color:$light;\n }\n p{\n color:$light;\n }\n }\n}\n\n\n.page-wrapper {\n padding:70px 0;\n}\n\n","#wrapper-work{\n\toverflow: hidden;\n\tpadding-top: 100px;\n\tul{\n\t\tli{\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t\tposition: relative;\n\t\t\timg{\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t\t.items-text{\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tcolor: #fff;\n\t\t\t\tbackground: rgba(0, 0, 0, 0.60);\n\t\t\t\tpadding-left: 44px;\n\t\t\t\tpadding-top: 140px;\n\t\t\t\th2{\n\t\t\t\t\tpadding-bottom: 28px;\n\t\t\t\t\tpadding-top: 75px;\n\t\t\t\t \tposition: relative;\n\t\t\t\t \t&:before{\n\t\t\t\t \t\tcontent: \"\";\n\t\t\t\t \t\tposition: absolute;\n\t\t\t\t \t\tleft: 0;\n\t\t\t\t \t\tbottom: 0;\n\t\t\t\t \t\twidth: 75px;\n\t\t\t\t \t\theight: 3px;\n\t\t\t\t \t\tbackground: #fff;\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\tp{\n\t\t\t\t\tpadding-top: 30px;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\tline-height: 27px;\n\t\t\t\t\tfont-weight: 300;\n\t\t\t\t\tpadding-right: 80px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n/*--\n\tfeatures-work Start \n--*/\n\n#features-work{\n\tpadding-top: 50px; \n\tpadding-bottom: 75px;\n\t.block{\n\t\tul{\n\t\t\tli{\n\t\t\t\twidth: 19%;\n\t\t\t\ttext-align: center;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding: 40px 0px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","#tickerScroller {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n padding: 10px 0;\n background-color: #333;\n color: white;\n overflow: hidden;\n z-index: 9999;\n border-radius: 0px 0px 10px 10px;\n}\n\n#tickerContainer {\n display: flex;\n align-items: center;\n animation: slide linear infinite;\n white-space: nowrap;\n font-family: 'Arial', sans-serif;\n}\n\n.tickerText {\n margin-right: 50px;\n}","#navbar{\n background: rgba(34,35,40,1);\n box-shadow: 0 1px 2px rgba(0,0,0,.05);\n li{\n padding-left: 15px;\n @include desktop {\n padding-left: 0;\n }\n }\n\n .nav-link{\n font-family: $secondary-font;\n font-weight: 500;\n color: $light;\n text-transform: uppercase;\n font-size: 14px;\n letter-spacing: .5px;\n transition: all .25s ease;\n }\n \n .nav-link:hover, .nav-link:focus,\n .active .nav-link {\n color: $primary-color;\n }\n\n\n .btn{\n padding: .7rem 1.5rem .5rem;\n color: $light;\n @include desktop {\n margin: 15px 0 10px;\n }\n }\n\n .row {\n margin: 0 -15px -42px 0px;\n }\n\n}\n\n.header-top{\n background: rgba(34,35,40,1);\n color: #919194;\n border-bottom: 1px solid rgba(255,255,255,.05);\n\n .header-top-socials {\n border-right: 1px solid rgba(255,255,255,.05);\n padding: 12px 0px;\n }\n \n .header-top-socials {\n margin-left: -8px;\n a {\n color: #919194;\n margin-right: 8px;\n font-size: 16px;\n padding: 0 8px;\n &:hover {\n color: $primary-color;\n }\n }\n }\n .header-top-info{\n color: #919194;\n font-size: 16px;\n\n a span{\n color: $light;\n }\n a{\n margin-left: 35px;\n color: #919194;\n }\n }\n}\n\n.navbar-toggler {\n padding: 0;\n font-size: 1.5rem;\n color: #fff;\n &:focus {\n outline: 0;\n }\n}\n\n\n.navbar-brand{\n color: $light;\n font-weight: 600;\n letter-spacing: 1px;\n\n span{\n color: $primary-color;\n }\n}\n\n.dropdown-menu{\n padding: 0px;\n border: 0;\n border-radius: 0px;\n @include desktop {\n text-align: center;\n float: left !important;\n width: 100%;\n margin: 0;\n }\n\n li:first-child {margin-top: 5px}\n li:last-child {margin-bottom: 5px}\n}\n\n.dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-menu,\n.dropright .dropdown-menu{\n margin: 0;\n}\n.dropleft .dropdown-toggle::before,\n.dropright .dropdown-toggle::after {\n font-weight: bold;\n font-family: 'Font Awesome 5 Free';\n border: 0;\n font-size: 10px;\n vertical-align: 1px;\n}\n.dropleft .dropdown-toggle::before {\n content: \"\\f053\";\n margin-right: 5px;\n}\n.dropright .dropdown-toggle::after {\n content: \"\\f054\";\n margin-left: 5px;\n}\n\n.dropdown-item{\n padding: .8rem 1.5rem .55rem;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 500;\n @include desktop {\n padding: .6rem 1.5rem .35rem;\n }\n}\n\n.dropdown-submenu.active > .dropdown-toggle,\n.dropdown-submenu:hover > .dropdown-item,\n.dropdown-item.active,\n.dropdown-item:hover{\n background: $primary-color;\n color: $light;\n}\n\nul.dropdown-menu li {\n padding-left: 0px!important;\n}\n\n@media (min-width:992px) {\n .dropdown-menu{\n transition:all .2s ease-in, visibility 0s linear .2s, transform .2s linear;\n display: block;\n visibility: hidden;\n opacity: 0;\n min-width: 200px;\n margin-top: 15px;\n\n li:first-child {margin-top: 10px}\n li:last-child {margin-bottom: 10px}\n }\n .dropleft .dropdown-menu,\n .dropright .dropdown-menu{\n margin-top: -10px;\n }\n .dropdown:hover > .dropdown-menu{\n visibility: visible;\n transition: all .45s ease 0s;\n opacity: 1;\n }\n}\n\n",".bg-1 {\n\tbackground: url(\"../images/competition/conference-room.jpg\") no-repeat 50% 50%;\n\tbackground-size: cover;\n}\n\n.bg-2 {\n\tbackground: url(\"../images/competition/conference-room.jpg\");\n\tbackground-size: cover;\n}\n",".slider{\n background: url(\"../../images/competition/good-team.jpg\") no-repeat;\n background-size: cover;\n background-position: right 0% bottom 80%;\n background-repeat: no-repeat;\n padding:500px 0;\n position: relative;\n @include tablet {\n padding:300px 0;\n }\n @extend .overly;\n .block{\n h1{\n font-size: 70px;\n line-height: 80px;\n font-weight: 600;\n color: $light;\n\n }\n p{\n margin-bottom:30px;\n color:#b9b9b9;\n font-size: 18px;\n line-height: 27px;\n font-weight: 300;\n }\n\n span{\n letter-spacing: 1px;\n }\n }\n}\n","// Intro Section\n\n.intro-item{\n\n\ti{\n\t\tfont-size:60px;\n\t\tline-height: 60px;\n\t}\n\t\n}\n\n.color-one{\n\tcolor: $primary-color;\n}\n.color-two{\n\tcolor: #00d747;\n}\n.color-three{\n\tcolor:#9262ff;\n}\n.color-four{\n\tcolor:#088ed3;\n}","// About Setcion\n\n.bg-about{\n \tposition: absolute;\n \tcontent:\"\";\n \tleft: 0px;\n \ttop: 0px;\n \twidth: 45%;\n \tmin-height: 650px;\n \tbackground: url(\"../../images/competition/concentration.jpg\") no-repeat;\n \tbackground-size: cover;\n\tbackground-position: center;\n\tborder-radius: 1000px;\n}\n\n\n.about-content{\n\tpadding: 20px 0px 0px 80px;\n\th4{\n\t\tfont-weight: 600;\n\n\t\t&:before{\n\t\t\tposition: absolute;\n\t\t\tcontent:\"\\f576\";\n\t\t\tfont-family: \"Font Awesome 5 Free\";\n\t\t\tfont-size: 30px;\n\t\t\tposition: absolute;\n\t\t\ttop: 8px;\n\t\t\tleft: -65px;\n\t\t\tfont-weight: 700;\n\t\t}\n\t}\n\n}\n","// Counter Section \n\n.counter-item{\n\t.counter-stat{\n\t\tfont-size: 50px;\n\t}\n\n\tp{\n\t\tmargin-bottom: 0px;\n\t}\n\n}\n\n.bg-counter{\n\tbackground: url(\"../images/bg/counter.jpg\")no-repeat;\n\tbackground-size: cover;\n\t@extend .overly-2;\n}",".team-item {\n\tborder-radius: 20px;\n\toverflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n\tbackground: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n\tbackground: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n\tbackground: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n\tbackground: #3399cc;\n}\n\n.team-img-hover {\n\tposition: absolute;\n\ttop: 10px;\n\tleft: 10px;\n\tright: 10px;\n\tbottom: 10px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: rgba(255, 255, 255, 0.6);\n\topacity: 0;\n\ttransition: all 0.2s ease-in-out;\n\ttransform: scale(0.8);\n\n}\n\n.team-img-hover li a {\n\tdisplay: inline-block;\n\tcolor: $light;\n\twidth: 50px;\n\theight: 50px;\n\tfont-size: 20px;\n\tline-height: 50px;\n\tborder: 2px solid transparent;\n\tborder-radius: 2px;\n\ttext-align: center;\n\ttransform: translateY(0);\n\tbackface-visibility: hidden;\n\ttransition: all 0.3s ease-in-out;\n}\n\n\n.team-img-hover:hover li a:hover {\n\ttransform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n\topacity: 1;\n\ttransform: scale(1);\n\ttop: 0px;\n\tleft: 0px;\n\tright: 0px;\n\tbottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n","// Service section\n\n.service-item{\n\tposition: relative;\n\tpadding-left: 80px;\n\n\ti{\n\t\tposition: absolute;\n\t\tleft: 0px;\n\t\ttop:5px;\n\t\tfont-size: 50px;\n\t\topacity: .4;\n\t}\n}",".cta{\n\tbackground: url(\"../images/competition/concentration-head.jpg\") fixed 50% 50%;\n\tbackground-size: cover;\n\tpadding: 120px 0px;\n\t@extend .overly;\n}\n.cta-block{\n\tbackground: url(\"../images/competition/concentration-head.jpg\") no-repeat;\n\tbackground-size: cover;\n\t@extend .overly-2;\n}\n","// Testimonial Section\n\n.testimonial-item{\n\tpadding:50px 30px;\n\n\ti{\n\t\tfont-size: 40px;\n\t\tposition: absolute;\n\t\tleft: 30px;\n\t\ttop:30px;\n\t\tz-index: 1;\n\t}\n\t.testimonial-text{\n\t\tfont-size: 20px;\n\t\tline-height: 38px;\n\t\tcolor: $black;\n\t\tmargin-bottom: 30px;\n\t\tfont-style: italic;\n\t}\n\n\t.testimonial-item-content{\n\t\tpadding-left: 65px;\n\t}\n}\n\n.slick-slide {\n &:focus, a {\n outline: none;\n }\n}","// Variables\n$primary-color: #007bff;\n$hover-color: #0056b3;\n$light-gray: #f2f2f2;\n$dark-gray: #ddd;\n$green: #4CAF50;\n$white: white;\n$black: black;\n$border-color: #ddd; // Set your border color\n\n// General Styles\nbody {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n}\n\n.container {\n width: 80%;\n margin: auto;\n overflow: hidden;\n padding: 15px;\n\n @media (max-width: 768px) {\n width: 95%;\n }\n}\n\n.row {\n margin: 0 -15px 0px 0px;\n}\n\n.col {\n padding: 0 15px;\n}\n\n// Header and Navigation\n.header, .navigation {\n // Your styles for header and navigation\n}\n\n// Page Title Section\n.page-title {\n background: url('images/competition/concentration.jpg') cover;\n padding: 30px 0;\n color: $white;\n text-align: center;\n}\n\n// Partnership Logos Section\n.partner-logos {\n .col {\n text-align: center;\n margin-bottom: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n @media (max-width: 768px) {\n flex-basis: 50%;\n }\n }\n}\n\n// Pricing Table\n.partnership-offers {\n table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 20px;\n\n th, td {\n border: 1px solid $border-color;\n padding: 10px;\n text-align: left;\n }\n\n th {\n background-color: $green;\n color: $white;\n font-weight: bold;\n }\n\n tr {\n &:nth-child(even) { background-color: $light-gray; }\n &:hover { background-color: $dark-gray; }\n\n ul {\n list-style: none;\n padding: 0;\n\n li { padding: 5px 0; }\n }\n }\n }\n}\n\n// Call to Action\n.text-center {\n text-align: center;\n margin: 20px 0;\n\n .btn-primary {\n background-color: $primary-color;\n border: none;\n color: $white;\n padding: 12px 25px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n transition-duration: 0.4s;\n cursor: pointer;\n\n &:hover {\n background-color: $white; \n color: $black; \n border: 2px solid $primary-color;\n }\n }\n}\n\n// Footer\n.footer {\n // Your styles for footer\n}\n\n// Additional Styles\n.hero-img {\n background: url(\"../images/bg/home-5.jpg\") cover;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n\n &::before {\n content: '';\n background: rgba(0, 0, 0, 0.5); // Black overlay with 50% opacity\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n}\n","$primary-color: #ff0000; // Example primary color\n$font-size-normal: 0.875rem; // 14px\n$gray-600: #718096; // Gray color\n$semi-transparent-white: rgba(255, 255, 255, 0.1);\n$shadow-light: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\n$shadow-dark: 0 8px 16px 0 rgba(0, 0, 0, 0.2);\n\n.portflio-item {\n\t.portfolio-item-content {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tright: 0px;\n\t\tbottom: 0px;\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t}\n\n\t&:before {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tleft: 0px;\n\t\ttop: 0px;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tbackground: rgba(0, 0, 0, 0.8);\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t\toverflow: hidden;\n\t}\n\n\t&:hover {\n\t\t&:before {\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.portfolio-item-content {\n\t\t\topacity: 1;\n\t\t\tbottom: 20px;\n\t\t\tright: 30px;\n\t\t}\n\t}\n\n\t.overlay-item {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tleft: 0px;\n\t\ttop: 0px;\n\t\tbottom: 0px;\n\t\tright: 0px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 80px;\n\t\tcolor: $primary-color;\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t}\n\n\t&:hover {\n\t\t.overlay-item {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.project-card {\n\tbackground: $semi-transparent-white;\n\tbackdrop-filter: blur(10px);\n\t-webkit-backdrop-filter: blur(10px);\n\tborder-radius: 15px;\n\tpadding: 20px;\n\tbox-shadow: $shadow-light;\n\ttransition: 0.3s;\n\toverflow: hidden;\n\tmargin-bottom: 20px;\n\n\t&:hover {\n\t\tbox-shadow: $shadow-dark;\n\t}\n\n\t.project-link {\n\t\ttransform: translateY(10px);\n\t\ttransition: all 0.3s ease;\n\t\ttext-decoration: none;\n\t\tcolor: blue;\n\t\tcursor: pointer;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t\tvisibility: visible;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n\n\t.icon {\n\t\tdisplay: inline-block;\n\t\tmargin-right: 5px;\n\t}\n}\n\n.project-container {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\tpadding: 10px;\n}\n\n.project-title {\n\tfont-size: 18px;\n\tfont-weight: bold;\n}\n\n.project-stars {\n\tcolor: $primary-color;\n\tfont-size: 14px;\n}\n\n.project-description {\n\twhite-space: normal;\n\tfont-size: $font-size-normal;\n\tcolor: $gray-600;\n\tmargin-bottom: 1rem; // 16px\n\twidth: 600px; // approximate width for 80 characters\n}\n\n\n.grid-container {\n\tdisplay: flex;\n\tgrid-template-columns: repeat(3, 1fr);\n\t/* 3 columns */\n\tgrid-template-rows: repeat(3, 1fr);\n\t/* 3 rows */\n\tgrid-gap: 20px;\n\t/* 20px gap between columns */\n\n\t@media (max-width: 768px) {\n\t\tgrid-template-columns: repeat(2, 1fr);\n\t}\n\n\t@media (max-width: 480px) {\n\t\tgrid-template-columns: 1fr;\n\t}\n\n\t.project-image img {\n\t\twidth: 100%;\n\t\theight: 200px;\n\t\tobject-fit: cover;\n\t\tborder-radius: 10px 10px 0 0;\n\t}\n}",".contact-form-wrap{\n .form-group{\n padding-bottom: 15px;\n margin: 0px;\n .form-control{\n background:$secondary-color;\n height: 48px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n }\n }\n .form-group-2{\n margin-bottom: 13px;\n textarea{\n background: $secondary-color;\n height: 135px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n }\n }\n}\n\n\n.address-block {\n li {\n margin-bottom:10px;\n i {\n font-size: 20px;\n width: 20px;\n }\n }\n}\n\n\n.social-icons {\n li {\n margin:0 6px;\n }\n \n i{\n margin-right: 15px;\n font-size: 25px;\n }\n}\n\n.google-map {\n position: relative;\n}\n\n.google-map #map {\n width: 100%;\n height: 450px;\n}\n\n","/*=================================================================\n Latest Posts\n==================================================================*/\n.blog-item-content {\n h3 {\n line-height: 36px;\n }\n\n h3 a {\n transition: all .4s ease 0s;\n\n &:hover {\n color: $primary-color !important;\n }\n }\n}\n\n.lh-36 {\n line-height: 36px;\n}\n\n\n.tags {\n a {\n background: #f5f8f9;\n display: inline-block;\n padding: 8px 23px;\n border-radius: 38px;\n margin-bottom: 10px;\n border: 1px solid #eee;\n font-size: 14px;\n text-transform: capitalize;\n }\n}\n\n\n\n.pagination .nav-links a,\n.pagination .nav-links span.current {\n font-size: 20px;\n font-weight: 500;\n color: #c9c9c9;\n margin: 0 10px;\n text-transform: uppercase;\n letter-spacing: 1.2px;\n\n}\n\n\n.pagination .nav-links span.current,\n.pagination .nav-links a.next,\n.pagination .nav-links a.prev {\n color: $black;\n}\n\nh3.quote {\n font-size: 24px;\n line-height: 40px;\n font-weight: normal;\n padding: 0px 25px 0px 85px;\n margin: 65px 0 65px 0 !important;\n position: relative;\n\n @include tablet {\n padding: 0;\n padding-left: 20px;\n }\n}\n\nh3.quote::before {\n content: '';\n width: 55px;\n height: 2px;\n background: $primary-color;\n position: absolute;\n top: 25px;\n left: 0;\n\n @include tablet {\n top: 5px;\n width: 2px;\n height: 35px;\n }\n}\n\n.nav-posts-title {\n line-height: 25px;\n font-size: 18px;\n}\n\n\n\n.latest-blog {\n position: relative;\n @extend .overly-2;\n padding-bottom: 150px;\n}\n\n.mt-70 {\n margin-top: -70px;\n}\n\n.border-1 {\n border: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.blog-item {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05)\n}\n\n.styled-table {\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n min-width: 400px;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n}\n\n.styled-table thead tr {\n background-color: #009879;\n color: #ffffff;\n text-align: left;\n}\n\n.styled-table th,\n.styled-table td {\n padding: 12px 15px;\n}\n\n.styled-table tbody tr {\n border-bottom: 1px solid #dddddd;\n}\n\n.styled-table tbody tr:nth-of-type(even) {\n background-color: #f3f3f3;\n}\n\n.styled-table tbody tr:last-of-type {\n border-bottom: 2px solid #009879;\n}","/*=================================================================\n Single Blog Page\n==================================================================*/\n.post.post-single {\n border:none;\n .post-thumb {\n margin-top:30px;\n }\n}\n.post-sub-heading {\n border-bottom:1px solid #dedede;\n padding-bottom:20px;\n letter-spacing: 2px;\n text-transform: uppercase;\n font-size: 16px;\n margin-bottom:20px;\n}\n.post-social-share {\n margin-bottom:50px;\n}\n\n.post-comments {\n margin:30px 0;\n .media {\n margin-top:20px;\n > .pull-left {\n padding-right: 20px;\n }\n }\n .comment-author {\n margin-top: 0;\n margin-bottom:0px;\n font-weight:500;\n a {\n color: $primary-color;\n font-size: 14px;\n text-transform: uppercase;\n }\n }\n time {\n margin:0 0 5px;\n display: inline-block;\n color: #808080;\n font-size:12px;\n }\n .comment-button {\n color: $primary-color;\n display: inline-block;\n margin-left:5px;\n font-size:12px;\n i {\n margin-right:5px;\n display: inline-block;\n }\n &:hover {\n color: $primary-color;\n }\n }\n}\n\n.post-excerpt {\n margin-bottom: 60px;\n h3 {\n a {\n color: #000;\n }\n }\n p {\n margin: 0 0 30px;\n }\n blockquote.quote-post {\n margin: 20px 0;\n p {\n line-height: 30px;\n font-size: 20px;\n color:$primary-color;\n }\n }\n}\n\n\n.single-blog {\n background-color: #fff;\n margin-bottom: 50px;\n padding: 20px;\n}\n\n.blog-subtitle {\n font-size: 15px;\n padding-bottom: 10px;\n border-bottom: 1px solid #dedede;\n margin-bottom: 25px;\n text-transform: uppercase;\n}\n\n.next-prev {\n border-bottom: 1px solid #dedede;\n border-top: 1px solid #dedede;\n margin: 20px 0;\n padding: 25px 0;\n a {\n color: #000;\n &:hover {\n color: $primary-color;\n }\n }\n .prev-post i {\n margin-right: 10px;\n }\n\n .next-post i {\n margin-left: 10px;\n }\n}\n\n.social-profile {\n ul {\n li {\n margin: 0 10px 0 0;\n display: inline-block;\n a {\n color: #4e595f;\n display: block;\n font-size: 16px;\n i {\n &:hover {\n color: $primary-color;\n }\n }\n }\n }\n }\n}\n\n.comments-section {\n margin-top: 35px;\n}\n\n\n.author-about {\n margin-top: 40px;\n}\n.post-author {\n margin-right: 20px;\n}\n\n.post-author > img {\n border: 1px solid #dedede;\n max-width: 120px;\n padding: 5px;\n width: 100%;\n}\n\n\n\n.comment-list {\n ul {\n margin-top: 20px;\n li {\n margin-bottom: 20px;\n }\n }\n}\n\n\n.comment-wrap {\n border: 1px solid #dedede;\n border-radius: 1px;\n margin-left: 20px;\n padding: 10px;\n position: relative;\n .author-avatar {\n margin-right: 10px;\n }\n .media {\n .media-heading {\n font-size: 14px;\n margin-bottom: 8px;\n a {\n color: $primary-color;\n font-size: 13px;\n }\n }\n .comment-meta {\n font-size: 12px;\n color: #888;\n }\n p {\n margin-top: 15px;\n }\n }\n\n}\n\n\n.comment-reply-form {\n margin-top: 80px;\n input,textarea {\n height: 35px;\n border-radius: 0;\n box-shadow: none;\n &:focus {\n box-shadow:none;\n border:1px solid $primary-color;\n }\n }\n textarea,.btn-main {\n height: auto;\n }\n}\n\n \n\n\n\n",".widget {\n margin-bottom:30px;\n padding-bottom:35px;\n .widget-title {\n margin-bottom:15px;\n padding-bottom:10px;\n font-size: 16px;\n color:#333;\n font-weight:500;\n border-bottom:1px solid $border-color;\n }\n // latest Posts\n &.widget-latest-post {\n .media {\n .media-object {\n width: 100px;\n height:auto;\n }\n .media-heading {\n a {\n color: $black;\n font-size: 16px;\n }\n }\n p {\n font-size: 12px;\n color:#808080;\n }\n }\n } //end latest posts\n\n // Caterogry\n &.widget-category {\n ul {\n li {\n margin-bottom: 10px;\n a {\n color: #837f7e;\n @include transition (all, 0.3s, ease);\n &:before {\n padding-right: 10px;\n }\n &:hover {\n color:$primary-color;\n padding-left: 5px;\n }\n }\n }\n }\n } //end caterogry\n\n // Tag Cloud\n &.widget-tag {\n ul {\n li {\n margin-bottom: 10px;\n display: inline-block;\n margin-right:5px;\n a {\n color: #837f7e;\n display: inline-block;\n padding:8px 15px;\n border:1px solid #dedede;\n border-radius: 30px;\n font-size: 14px;\n @include transition (all, 0.3s, ease);\n &:hover {\n color:$light;\n background: $primary-color;\n border:1px solid $primary-color;\n }\n }\n }\n }\n }\n\n}\n\n",".footer {\n padding-bottom: 10px;\n\n .copyright {\n a {\n font-weight: 600;\n }\n }\n}\n\n.lh-35 {\n line-height: 35px;\n}\n\n.logo {\n color: $black;\n font-weight: 600;\n letter-spacing: 1px;\n\n span {\n color: $primary-color;\n }\n}\n\n.sub-form {\n position: relative;\n\n .form-control {\n border: 1px solid rgba(0, 0, 0, 0.06);\n background: $secondary-color;\n }\n\n}\n\n.footer-btm {\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n}\n\n\n// scroll-to-top\n.scroll-to-top {\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 999;\n height: 40px;\n width: 40px;\n background: $primary-color;\n border-radius: 50%;\n text-align: center;\n line-height: 43px;\n color: white;\n cursor: pointer;\n transition: 0.3s;\n display: none;\n @include mobile {\n bottom: 15px;\n right: 15px;\n }\n &:hover {\n background-color: #333;\n }\n}","/*=== MEDIA QUERY ===*/\n@include large-desktop{\n \n}\n\n@include desktop{\n .slider .block h1 {\n font-size: 56px;\n line-height: 70px;\n }\n\n .bg-about{\n display: none;\n }\n section.about {\n border: 1px solid #dee2e6;\n border-left: 0;\n border-right: 0;\n }\n .footer-socials {\n margin-top: 20px;\n }\n .footer-socials li a {\n margin-left: 0px;\n }\n}\n\n\n@include tablet{\n .navbar-toggler{\n color: $light;\n }\n .bg-about{\n display: none;\n }\n .slider .block h1 {\n font-size: 48px;\n line-height: 62px;\n }\n .blog-item-meta span{\n margin: 6px 0px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n\n}\n\n@include mobile{\n .header-top .header-top-info a {\n margin-left: 10px;\n margin-right: 10px;\n }\n\n .navbar-toggler{\n color: $light;\n }\n .slider .block h1 {\n font-size: 38px;\n line-height: 50px;\n }\n\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n\n .p-5{\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n}\n\n\n@include mobile-xs{\n .header-top .header-top-info a {\n display: block;\n }\n\n .navbar-toggler{\n color: $light;\n }\n\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n\n .bg-about{\n display: none;\n }\n\n .p-5{\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n\n .text-lg {\n font-size: 3rem;\n }\n\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n}","@import \"variables.scss\";\n\n@import \"mixins.scss\";\n\n@import \"media-query.scss\";\n\n@import \"typography.scss\";\n\n@import \"common.scss\";\n\n@import \"main.scss\";\n\n@import \"templates/header.scss\";\n\n@import \"templates/navigation.scss\";\n@import \"templates/backgrounds.scss\";\n\n@import \"templates/slider.scss\";\n@import \"templates/intro.scss\";\n@import \"templates/about.scss\";\n@import \"templates/counter.scss\";\n@import \"templates/team.scss\";\n\n@import \"templates/service.scss\";\n@import \"templates/cta.scss\";\n@import \"templates/review.scss\";\n@import \"templates/pricing.scss\";\n@import \"templates/portfolio.scss\";\n@import \"templates/contact.scss\";\n@import \"templates/blog.scss\";\n@import \"templates/single-post.scss\";\n@import \"templates/blog-sidebar.scss\";\n@import \"templates/team.scss\";\n\n@import \"templates/footer.scss\";\n@import \"templates/responsive.scss\";\n\n\n@tailwind base;\n@tailwind components;\n@tailwind utilities;"]} \ No newline at end of file diff --git a/theme/experimentation-indicator-technique.html b/theme/experimentation-indicator-technique.html new file mode 100644 index 00000000..cba01263 --- /dev/null +++ b/theme/experimentation-indicator-technique.html @@ -0,0 +1,940 @@ + + + + + + + + + + + + + + + + + + + AlgoETS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + Backtesting +

    Expérimentation des indicateurs technique

    +
      +
    • Home
    • +
    • /
    • +
    • Backtesting
    • +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + blog +
    + +

    Expérimentation des indicateurs technique

    + + +

    Introduction

    + +

    Dans ce rapport, nous présentons une expérimentation des indicateurs techniques à + l'aide du projet BatchBacktesting disponible sur GitHub à l'adresse suivante :

    + +
    +                                    
    +!pip install numpy httpx rich
    +
    +import pandas as pd
    +import numpy as np
    +from datetime import datetime
    +import sys
    +import os
    +import httpx
    +
    +import concurrent.futures
    +from datetime import datetime
    +import glob
    +import warnings
    +from rich.progress import track
    +warnings.filterwarnings("ignore")
    +                                    
    +                                
    + + +

    API

    + +

    N'oubliez pas de remplacer les espaces réservés FMP_API_KEY et BINANCE_API_KEY par + vos véritables clés API pour pouvoir accéder aux données des services respectifs. +

    + +
    +                                    
    +BASE_URL_FMP = "https://financialmodelingprep.com/api/v3"
    +BASE_URL_BINANCE = "https://fapi.binance.com/fapi/v1/"
    +FMP_API_KEY = ""
    +BINANCE_API_KEY = ""
    +                                    
    +                                
    + +

    Plusieurs fonctions pour effectuer des requêtes API et fournit une liste de + cryptomonnaies prises en charge.

    + +

    Ce script propose des fonctions pour :

    + +
      +
    1. Effectuer des requêtes API vers différents points de terminaison.
    2. +
    3. Obtenir des données historiques de prix pour les cryptomonnaies et les actions. +
    4. +
    5. Obtenir la liste des actions du S&P 500.
    6. +
    7. Obtenir toutes les cryptomonnaies prises en charge.
    8. +
    9. Obtenir les listes des états financiers.
    10. +
    + +
    +
    +def make_api_request(api_endpoint, params):
    +    with httpx.Client() as client:
    +        # Make the GET request to the API
    +        response = client.get(api_endpoint, params=params)
    +        if response.status_code == 200:
    +            return response.json()
    +        print("Error: Failed to retrieve data from API")
    +        return None
    +                                
    +
    + +

    + La fonction make_api_request() effectue une requête GET vers l'API et renvoie les + données au format JSON si la requête est réussie. Sinon, elle renvoie None. +

    + +
    +
    +def get_historical_price_full_crypto(symbol):
    +    api_endpoint = f"{BASE_URL_FMP}/historical-price-full/crypto/{symbol}"
    +    params = {"apikey": FMP_API_KEY}
    +    return make_api_request(api_endpoint, params)
    +
    +
    +def get_historical_price_full_stock(symbol):
    +    api_endpoint = f"{BASE_URL_FMP}/historical-price-full/{symbol}"
    +    params = {"apikey": FMP_API_KEY}
    +
    +    return make_api_request(api_endpoint, params)
    +
    +def get_SP500():
    +    api_endpoint = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
    +    data = pd.read_html(api_endpoint)
    +    return list(data[0]['Symbol'])
    +
    +
    +def get_all_crypto():
    +    """
    +    All possible crypto symbols
    +    """
    +    return [
    +        "BTCUSD",
    +        "ETHUSD",
    +        "LTCUSD",
    +        "BCHUSD",
    +        "XRPUSD",
    +        "EOSUSD",
    +        "XLMUSD",
    +        "TRXUSD",
    +        "ETCUSD",
    +        "DASHUSD",
    +        "ZECUSD",
    +        "XTZUSD",
    +        "XMRUSD",
    +        "ADAUSD",
    +        "NEOUSD",
    +        "XEMUSD",
    +        "VETUSD",
    +        "DOGEUSD",
    +        "OMGUSD",
    +        "ZRXUSD",
    +        "BATUSD"
    +        "USDTUSD",
    +        "LINKUSD",
    +        "BTTUSD",
    +        "BNBUSD",
    +        "ONTUSD",
    +        "QTUMUSD",
    +        "ALGOUSD",
    +        "ZILUSD",
    +        "ICXUSD",
    +        "KNCUSD",
    +        "ZENUSD",
    +        "THETAUSD",
    +        "IOSTUSD",
    +        "ATOMUSD",
    +        "MKRUSD",
    +        "COMPUSD",
    +        "YFIUSD",
    +        "SUSHIUSD",
    +        "SNXUSD",
    +        "UMAUSD",
    +        "BALUSD",
    +        "AAVEUSD",
    +        "UNIUSD",
    +        "RENBTCUSD",
    +        "RENUSD",
    +        "CRVUSD",
    +        "SXPUSD",
    +        "KSMUSD",
    +        "OXTUSD",
    +        "DGBUSD",
    +        "LRCUSD",
    +        "WAVESUSD",
    +        "NMRUSD",
    +        "STORJUSD",
    +        "KAVAUSD",
    +        "RLCUSD",
    +        "BANDUSD",
    +        "SCUSD",
    +        "ENJUSD",
    +    ]
    +
    +def get_financial_statements_lists():
    +    api_endpoint = f"{BASE_URL_FMP}/financial-statement-symbol-lists"
    +    params = {"apikey": FMP_API_KEY}
    +    return make_api_request(api_endpoint, params)
    +
    +def get_Vanguard_Canada():
    +    """
    +    Get Vanguard Canada companies
    +
    +    Returns:
    +        dict: Dictionary containing the data
    +    """
    +        # VCN: Vanguard FTSE Canada All Cap Index ETF
    +        # VFV: Vanguard S&P 500 Index ETF
    +        # VUN: Vanguard US Total Market Index ETF
    +        # VEE: Vanguard FTSE Emerging Markets All Cap Index ETF
    +        # VAB: Vanguard Canadian Aggregate Bond Index ETF
    +        # VSB: Vanguard Canadian Short-Term Bond Index ETF
    +        # VXC: Vanguard FTSE Global All Cap ex Canada Index ETF
    +        # VIU: Vanguard FTSE Developed All Cap ex North America Index ETF
    +        # VGG: Vanguard US Dividend Appreciation Index ETF
    +    return ['VCN', 'VFV', 'VUN', 'VEE', 'VAB', 'VSB', 'VXC', 'VIU', 'VGG']
    +                                
    +
    + +

    + La fonction get_historical_price_full_crypto() effectue une requête API vers + l'API FMP pour obtenir les données historiques de prix pour une cryptomonnaie + spécifique. La fonction get_historical_price_full_stock() effectue une requête + API vers l'API FMP pour obtenir les données historiques de prix pour une action + spécifique. La fonction get_SP500() effectue une requête API vers Wikipedia pour + obtenir la liste des actions du S&P 500. La fonction get_all_crypto() renvoie la + liste de toutes les cryptomonnaies prises en charge. La fonction + get_financial_statements_lists() effectue une requête API vers l'API FMP pour + obtenir la liste des états financiers. La fonction get_Vanguard_Canada() renvoie + la liste des actions de Vanguard Canada. +

    + +

    + Pour utiliser ce script dans votre projet, copiez simplement assurez-vous d'avoir + installé les bibliothèques requises mentionnées dans la section "Exigences" de la + documentation BatchBacktesting. Ensuite, vous pouvez importer les fonctions de ce + script dans votre script principal ou votre Jupyter Notebook pour accéder et + manipuler les données comme vous le souhaitez. +

    + +

    + Une fois que vous avez les données, vous pouvez utiliser la bibliothèque + BatchBacktesting pour tester diverses stratégies sur les actions ou les + cryptomonnaies, analyser les résultats et visualiser les performances. À titre + d'exemple, nous avons utilisé la stratégie EMA (Exponential Moving Average) pour + effectuer des tests de performance sur les actions du S&P 500 et les cryptomonnaies + prises en charge. +

    + +

    EMA Stratégie

    + +

    L'EMA est un indicateur technique qui est utilisé pour lisser l'action des prix en + filtrant le "bruit" des fluctuations de prix aléatoires à court terme. Il est + calculé en prenant le prix moyen d'un titre sur un nombre spécifique de périodes de + temps. L'EMA est un type de moyenne mobile qui accorde un poids et une signification + plus importants aux points de données les plus récents. La moyenne mobile + exponentielle est également appelée moyenne mobile pondérée exponentiellement. +

    + +
    +
    +class EMA(Strategy):
    +    n1 = 20
    +    n2 = 80
    +    n3 = 150
    +
    +    def init(self):
    +        close = self.data.Close
    +        self.ema20 = self.I(taPanda.ema, close.s, self.n1)
    +        self.ema80 = self.I(taPanda.ema, close.s, self.n2)
    +        self.ema150 = self.I(taPanda.ema, close.s, self.n3)
    +
    +    def next(self):
    +        price = self.data.Close
    +        if crossover(self.ema20, self.ema80):
    +            self.position.close()
    +            self.buy(sl=0.90 * price, tp=1.25 * price)
    +
    +        elif crossover(self.ema80, self.ema20):
    +            self.position.close()
    +            self.sell(sl=1.10 * price, tp=0.75 * price)
    +
    +                                
    +
    + + +

    + La stratégie EMA est implémentée dans la classe EMA. La stratégie EMA est une + stratégie de suivi de tendance qui utilise trois moyennes mobiles exponentielles + (EMA) avec des périodes de 20, 80 et 150. Lorsque la moyenne mobile exponentielle + à court terme (20) croise la moyenne mobile exponentielle à long terme (80) par + le haut, cela signifie que la tendance est à la hausse et que nous devrions + acheter. Lorsque la moyenne mobile exponentielle à court terme (20) croise la + moyenne mobile exponentielle à long terme (80) par le bas, cela signifie que la + tendance est à la baisse et que nous devrions vendre. +

    + +
    +
    +def run_backtests_strategies(instruments, strategies):
    +    """
    +    Run backtests for a list of instruments using a specified strategy.
    +
    +    Args:
    +        instruments (list): List of instruments to run backtests for
    +        strategies (list): List of strategies to run backtests for
    +
    +    Returns:
    +        List of outputs from run_backtests()
    +
    +    """
    +
    +    # find strategies in the STRATEGIES
    +    strategies = [x for x in STRATEGIES if x.__name__ in strategies]
    +    outputs = []
    +    with concurrent.futures.ThreadPoolExecutor() as executor:
    +        futures = []
    +        for strategy in strategies:
    +            future = executor.submit(run_backtests, instruments, strategy, 4)
    +            futures.append(future)
    +
    +        for future in concurrent.futures.as_completed(futures):
    +            outputs.extend(future.result())
    +
    +    return outputs
    +
    +def check_crypto(instrument):
    +    """
    +    Check if the instrument is crypto or not
    +    """
    +    return instrument in get_all_crypto()
    +
    +def check_stock(instrument):
    +    """
    +    Check if the instrument is crypto or not
    +    """
    +    return instrument not in get_financial_statements_lists()
    +
    +
    +def process_instrument(instrument, strategy):
    +    """
    +    Process a single instrument for a backtest using a specified strategy.
    +    Returns a Pandas dataframe of the backtest results.
    +    """
    +    try:
    +
    +        if check_crypto(instrument):
    +            data = get_historical_price_full_crypto(instrument)
    +        else:
    +            data = get_historical_price_full_stock(instrument)
    +
    +        if data is None or "historical" not in data:
    +            print(f"Error processing {instrument}: No data")
    +            return None
    +
    +        data = clean_data(data)
    +
    +        bt = Backtest(
    +            data, strategy=strategy, cash=100000, commission=0.002, exclusive_orders=True
    +        )
    +        output = bt.run()
    +        output = process_output(output, instrument, strategy)
    +        return output, bt
    +    except Exception as e:
    +        print(f"Error processing {instrument}: {str(e)}")
    +        return None
    +
    +def clean_data(data):
    +    """
    +    Clean historical price data for use in a backtest.
    +    Returns a Pandas dataframe of the cleaned data.
    +    """
    +    data = data["historical"]
    +    data = pd.DataFrame(data)
    +    data.columns = [x.title() for x in data.columns]
    +    data = data.drop(
    +        [
    +            "Adjclose",
    +            "Unadjustedvolume",
    +            "Change",
    +            "Changepercent",
    +            "Vwap",
    +            "Label",
    +            "Changeovertime",
    +        ],
    +        axis=1,
    +    )
    +    data["Date"] = pd.to_datetime(data["Date"])
    +    data.set_index("Date", inplace=True)
    +    data = data.iloc[::-1]
    +    return data
    +
    +
    +def process_output(output, instrument, strategy, in_row=True):
    +    """
    +    Process backtest output data to include instrument name, strategy name,
    +    and parameters.
    +    Returns a Pandas dataframe of the processed output.
    +    """
    +    if in_row:
    +        output = pd.DataFrame(output).T
    +    output["Instrument"] = instrument
    +    output["Strategy"] = strategy.__name__
    +    output.pop("_strategy")
    +    return output
    +
    +
    +def save_output(output, output_dir, instrument, start, end):
    +    """
    +    Save backtest output to file and generate chart if specified.
    +    """
    +    print(f"Saving output for {instrument}")
    +    fileNameOutput = f"{output_dir}/{instrument}-{start}-{end}.csv"
    +    output.to_csv(fileNameOutput)
    +
    +
    +def plot_results(bt, output_dir, instrument, start, end):
    +    print(f"Saving chart for {instrument}")
    +    fileNameChart = f"{output_dir}/{instrument}-{start}-{end}.html"
    +    bt.plot(filename=fileNameChart, open_browser=False)
    +
    +def run_backtests(instruments, strategy, num_threads=4, generate_plots=False):
    +    """
    +    Run backtests for a list of instruments using a specified strategy.
    +    Returns a list of Pandas dataframes of the backtest results.
    +
    +    Args:
    +        instruments (list): List of instruments to run backtests for
    +
    +    Returns:
    +        List of Pandas dataframes of the backtest results
    +    """
    +    outputs = []
    +    output_dir = f"output/raw/{strategy.__name__}"
    +    output_dir_charts = f"output/charts/{strategy.__name__}"
    +    if not os.path.exists(output_dir):
    +        os.makedirs(output_dir)
    +    if not os.path.exists(output_dir_charts):
    +        os.makedirs(output_dir_charts)
    +    with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor:
    +        future_to_instrument = {
    +            executor.submit(process_instrument, instrument, strategy): instrument
    +            for instrument in instruments
    +        }
    +        for future in concurrent.futures.as_completed(future_to_instrument):
    +            instrument = future_to_instrument[future]
    +            output = future.result()
    +            if output is not None:
    +                outputs.append(output[0])
    +                save_output(output[0], output_dir, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1])
    +                if generate_plots:
    +                    plot_results(output[1], output_dir_charts, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1])
    +    data_frame = pd.concat(outputs)
    +    start = data_frame["Start"].to_string().strip().split()[1]
    +    end = data_frame["End"].to_string().strip().split()[1]
    +    fileNameOutput = f"output/{strategy.__name__}-{start}-{end}.csv"
    +    data_frame.to_csv(fileNameOutput)
    +
    +
    +    return data_frame
    +                                
    +
    + +

    + La fonction run_backtests_strategies() exécute des backtests pour une liste + d'instruments en utilisant une stratégie spécifique. La fonction + check_crypto() vérifie si l'instrument est une cryptomonnaie ou non. La fonction + check_stock() vérifie si l'instrument est une action ou non. La fonction + process_instrument() traite un seul instrument pour un backtest en utilisant une + stratégie spécifique. La fonction clean_data() nettoie les données historiques + des prix pour les utiliser dans un backtest. La fonction process_output() + traite les données de sortie du backtest pour inclure le nom de l'instrument, le + nom de la stratégie et les paramètres. La fonction save_output() enregistre la + sortie du backtest dans un fichier et génère un graphique si spécifié. La + fonction plot_results() enregistre la sortie du backtest dans un fichier et + génère un graphique si spécifié. La fonction run_backtests() exécute des + backtests pour une liste d'instruments en utilisant une stratégie spécifique. +

    + +

    + Le script génère des graphiques pour chaque instrument testé, qui peuvent être + visualisés pour analyser les performances des stratégies appliquées. Les résultats + sont sauvegardés dans le répertoire output du projet BatchBacktesting. +

    + +
    +
    +tickers = get_SP500()
    +run_backtests(tickers, strategy=EMA, num_threads=12, generate_plots=True)
    +ticker = get_all_crypto()
    +run_backtests(ticker, strategy=EMA, num_threads=12, generate_plots=True)
    +                                
    +
    + +

    + Nous avons utilisé la stratégie EMA pour effectuer des tests de performance sur les + actions du S&P 500 et les cryptomonnaies prises en charge. Les résultats sont + sauvegardés dans le répertoire output du projet BatchBacktesting. +

    + +

    + Le lien que vous avez partagé correspond au répertoire output du projet + BatchBacktesting sur GitHub : + https://github.com/AlgoETS/BatchBacktesting/tree/main/output. Cependant, il semble + que ce répertoire ne contient pas de résultats pré-calculés. En effet, il est + probable que les auteurs du projet aient choisi de ne pas inclure les résultats des + tests dans le dépôt GitHub afin d'éviter d'encombrer le dépôt avec des données + spécifiques à chaque utilisateur. +

    + +

    + Pour obtenir des valeurs calculées pour vos propres tests, vous devrez exécuter le + script en local sur votre machine avec les paramètres et les stratégies de votre + choix. Après avoir exécuté le script, les résultats seront sauvegardés dans le + répertoire output de votre projet local. + + https://algoets.github.io/BatchBacktesting/output/charts/EMA/AAPL-2018-04-04-2023-04-03.html +

    + +

    Analyse

    + +

    Top 5 des instruments avec le meilleur rendement :

    + +
      +
    1. BTCBUSD : 293,78%
    2. +
    3. ALB : 205,97%
    4. +
    5. OMGUSD : 199,62%
    6. +
    7. BBWI : 196,82%
    8. +
    9. GRMN : 193,47%
    10. +
    + +

    Top 5 des instruments avec le plus faible rendement :

    + +
      +
    1. BTTBUSD : -99,93%
    2. +
    3. UAL : -82,63%
    4. +
    5. NCLH : -81,51%
    6. +
    7. LNC : -78,02%
    8. +
    9. CHRW : -76,38%
    10. +
    + + +

    + En conclusion, le projet BatchBacktesting offre une approche flexible et puissante + pour tester et analyser les performances des indicateurs techniques sur les marchés + boursiers et les cryptomonnaies. Les fonctions fournies permettent une intégration + facile avec les API de services financiers et une manipulation aisée des données. + Les résultats des expérimentations peuvent être utilisés pour développer et affiner + des stratégies de trading algorithmique en fonction des performances observées +

    + +
    + + +
      +
    • Share:
    • +
    • +
    • +
    • +
    • +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg b/theme/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg new file mode 100644 index 00000000..c9238414 Binary files /dev/null and b/theme/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg differ diff --git a/theme/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg b/theme/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg new file mode 100644 index 00000000..8a3b38bf Binary files /dev/null and b/theme/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg differ diff --git a/theme/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg b/theme/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg new file mode 100644 index 00000000..1cdd6874 Binary files /dev/null and b/theme/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg differ diff --git a/theme/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg b/theme/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg new file mode 100644 index 00000000..aea6230b Binary files /dev/null and b/theme/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg differ diff --git a/theme/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png b/theme/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png new file mode 100644 index 00000000..fb43cf55 Binary files /dev/null and b/theme/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png differ diff --git a/theme/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg b/theme/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg new file mode 100644 index 00000000..e1f4523f Binary files /dev/null and b/theme/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg differ diff --git a/theme/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg b/theme/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg new file mode 100644 index 00000000..335d5cf4 Binary files /dev/null and b/theme/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg differ diff --git a/theme/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg b/theme/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg new file mode 100644 index 00000000..a81613b8 Binary files /dev/null and b/theme/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg differ diff --git a/theme/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png b/theme/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png new file mode 100644 index 00000000..caad2370 Binary files /dev/null and b/theme/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png differ diff --git a/theme/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png b/theme/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png new file mode 100644 index 00000000..f23722aa Binary files /dev/null and b/theme/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png differ diff --git a/theme/images/competition/20230319_082009_CE943EDD.jpg b/theme/images/competition/concentration-head.jpg similarity index 100% rename from theme/images/competition/20230319_082009_CE943EDD.jpg rename to theme/images/competition/concentration-head.jpg diff --git a/theme/index.html b/theme/index.html index aa1cfc41..55322326 100644 --- a/theme/index.html +++ b/theme/index.html @@ -24,11 +24,11 @@ - - + + + @@ -95,36 +95,8 @@ Contact
  • -
  • - diff --git a/theme/pricing.html b/theme/pricing.html index c6982b30..6ca12a34 100644 --- a/theme/pricing.html +++ b/theme/pricing.html @@ -12,11 +12,11 @@ - - + + + @@ -82,36 +82,8 @@ Contact
  • -
  • - diff --git a/theme/project.html b/theme/project.html index ecc93a45..5cd43258 100644 --- a/theme/project.html +++ b/theme/project.html @@ -10,11 +10,11 @@ - - + + + @@ -79,36 +79,8 @@ Contact
  • -
  • - diff --git a/theme/service.html b/theme/service.html index 297d22d1..6779fc90 100644 --- a/theme/service.html +++ b/theme/service.html @@ -24,11 +24,11 @@ - - + + + @@ -95,36 +95,8 @@ Contact
  • -
  • - diff --git a/theme/team.html b/theme/team.html index 11705232..a51c780c 100644 --- a/theme/team.html +++ b/theme/team.html @@ -11,11 +11,11 @@ - - + + + @@ -81,36 +81,8 @@ Contact
  • -
  • - diff --git a/theme/vol-de-voiture.html b/theme/vol-de-voiture.html new file mode 100644 index 00000000..1fe4aa79 --- /dev/null +++ b/theme/vol-de-voiture.html @@ -0,0 +1,876 @@ + + + + + + + + + + + + + + + + + + + AlgoETS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + Étude des vols de voitures +

    Montréal

    +
      +
    • Home
    • +
    • /
    • +
    • Étude des vols de voitures
    • +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + blog +
    + +

    Étude des vols de voitures à Montréal

    +

    Original +

    Substack + +

    Découvrez les tendances de la criminalité liée aux vols de voitures + à Montréal à travers les années. Cette étude examine les quartiers les plus touchés, + les variations saisonnières, et bien plus encore.

    + +

    Un article dans le journal a particulièrement attiré mon attention de manière + inattendue, révélant une réalité alarmante : le taux de vols de voitures à Montréal + atteignait des sommets déconcertants. Cette révélation m’a laissé perplexe et + intrigué à la fois. Mon esprit curieux a été instantanément piqué, et j’ai ressenti + le besoin impérieux d’explorer ce phénomène de plus près, de le décortiquer et de + comprendre ses origines.

    + +

    Dans cet article, je vais vous emmener avec moi dans cette aventure intrigante, alors + que nous plongeons dans l’univers des vols de voitures à Montréal. Nous allons + dévoiler les données, analyser les statistiques et tenter de démystifier cette + réalité complexe. Attachez-vous bien, car nous partons à la découverte de l’envers + du décor de la criminalité automobile à Montréal.

    + +

    Récoltes des données

    + +

    J’ai entrepris la collecte de données en récupérant un fichier CSV exhaustif + contenant toutes les infractions criminelles à Montréal, mis à disposition par la + ville. Mon objectif était de cibler spécifiquement les infractions de type “Vol de + véhicule à moteur”. À ma grande surprise, j’ai trouvé pas moins de 53 964 cas + enregistrés depuis l’année 2018.

    + + blog + + Données des vols de véhicules à moteur à Montréal + +
    +
    + +

    Le vol en hausse

    + +

    L’un des constats les plus préoccupants réside dans la tendance constante à la hausse + du vol de véhicules, qui semble résolument insensible à tout ralentissement, comme + en témoigne ce graphique éloquent :

    + + blog + Graphique vols de véhicules à moteur par année +
    +
    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AnnéesVols de véhicules
    20154418
    20164352
    20174732
    20184237
    20194170
    20204706
    20216440
    20229377
    202311262
    + +

    +
    +
    + +

    Ces chiffres révèlent une progression alarmante, suscitant des inquiétudes + croissantes.

    + +

    Mode Opératoire

    + +

    De manière paradoxale, il s’avère que la majorité des vols de véhicules se produisent + en plein jour. En effet, 51% de ces vols ont lieu pendant la journée, lorsque tout + semble plus visible et évident. De plus, parmi les jours de la semaine, c’est le + mercredi qui détient le triste record du jour où les vols sont les plus fréquents : +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    JournéeOccurence
    Wednesday8519
    Monday8493
    Thursday8334
    Tuesday8303
    Friday7819
    Saturday6160
    Sunday6066
    +
    +
    + + blog + + Graphique vols de véhicules par jour de la semaine +
    +
    + + blog + Graphique vols de véhicules par jour de la semaine et quart de la journée +
    +
    + +

    Cette donnée surprenante met en évidence une réalité intrigante, où les vols de + véhicules semblent prospérer en plein jour, défiant ainsi les attentes + conventionnelles en matière de criminalité.

    + +

    Lieux

    + +

    Voici une carte thermique (heatmap) des cinq endroits les plus fréquemment ciblés par + les voleurs à Montréal. Il est intéressant de noter que les hôtels et les centres + commerciaux sont devenus des cibles privilégiées.

    + + blog + Carte thermique des vols de véhicules à Montréal +
    +
    + +

    Un Vol Sophistiqué

    + +

    Loin sont les jours où un simple trousseau de clés métalliques ou une vitre brisée + suffisaient pour voler une voiture. Aujourd’hui, les voleurs ont évolué, devenant + plus rusés et équipés de technologies avancées.

    + +

    Relay attack

    + +

    Ils utilisent un dispositif sophistiqué pour amplifier le signal, pratiquant ce que + l’on appelle l’attaque par relais.

    + +

    Dans ce type de vol, l’objectif des malfaiteurs est de tromper la voiture en lui + faisant croire que la clé se trouve à proximité immédiate du véhicule, même si en + réalité, la clé se trouve à plusieurs centaines de mètres de distance. Ils utilisent + un amplificateur de signal pour induire en erreur la voiture, lui faisant croire que + la clé est à l’intérieur du véhicule.

    + +

    Voici une vidéo capturant un vol qui ne dure que quelques secondes.

    + + blog + + Vol Voiture Technique du relai + +
    +
    + +

    PORT OBD

    + +

    Le Port OBD est le port « On-Board Diagnostics » se trouvant généralement au-dessus + de la pédale. C’est une interface de communication pour les systèmes de surveillance + et de contrôle des véhicules. Il est également utilisé par les garages pour + identifier et résoudre les défauts. Problème : Malheureusement, toute personne ayant + accès à celui-ci (par exemple, un garage malveillant, un valet ou des employés de + lave-auto) peut abuser du Port OBD pour créer une copie du porte-clés électronique + de votre voiture ! Parfois, les voleurs utilisent la méthode du Port OBD en y + injectant un code malicieux permettant de changer des configurations pour arrêter le + système d’alarme et faire un clonage de la clé.

    + + blog + + Port OBD + +
    +
    + +

    Conséquences

    + +

    L’explosion du nombre de vols de voitures a des conséquences directes sur les + propriétaires de véhicules, notamment une augmentation significative du coût de + l’assurance automobile. Certaines marques et modèles sont malheureusement devenus + les cibles privilégiées des voleurs. Voici le palmarès de 2022 :

    + + + s + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Marque/ModèleAnnée Modèle Volée le Plus SouventNombre de Véhicules AssurésNombre de VolsFréquence de Vol (%)Type
    1Honda CR-V2020115,8952,6892.3%SUV
    2Acura RDX202015,8956534.1%SUV
    3Honda Civic2019224,6885060.2%Sedan
    4Dodge RAM 1500 Series202079,0195040.6%Truck
    5Jeep Wrangler202128,0484331.5%SUV
    6Toyota RAV 42019124,3574250.3%SUV
    7Jeep Grand Cherokee202122,8084201.8%SUV
    8Toyota Highlander202117,3863442.0%SUV
    9Ford F150 Series201991,1662560.3%Truck
    10Hyundai Tucson202163,4502420.4%SUV
    + +
    +
    + +

    Se protéger

    + +

    Il est important de noter qu’aucune méthode n’est infaillible, mais l’objectif + principal est de rendre la tâche des voleurs aussi difficile que possible, les + décourageant ainsi de s’attaquer à votre véhicule.

    + +

    Verrouillez les portes et fermez complètement les fenêtres

    + +

    La première étape essentielle pour vous protéger consiste à verrouiller les portes de + votre véhicule et à fermer complètement les fenêtres. Ce geste simple peut + considérablement ralentir un voleur.

    + +

    Boite de farraday

    + +

    Pour protéger votre clé électronique (key FOB) contre les attaques par relais, vous + pouvez utiliser une boîte de Faraday. Cette boîte bloque le signal de la clé, + empêchant ainsi les voleurs d’amplifier son signal. Cette méthode constitue une + défense efficace contre les tentatives d’attaque par relais et est disponible à un + prix abordable, généralement autour de 25 $.

    + +

    Amazon: $25 Boite de farraday

    + +

    OBD PORT lock

    + +

    Pourquoi sommes-nous exposés ?

    + +

    Les véhicules équipés de systèmes de démarrage sans clé (“push start”) ou d’entrée + sans clé (“keyless entry”) ne disposent pas de clé mécanique pour démarrer le + moteur. Ils utilisent des clés électroniques qui s’authentifient avec la voiture via + un échange de données (par des signaux radio pour les systèmes sans clé ou par + insertion dans le tableau de bord).

    + +

    Comment le port est-il exploité ?

    + +

    Ces véhicules conservent une copie numérique des clés dans l’unité de contrôle du + moteur du véhicule (ECU). Le problème réside dans le fait que ces clés numériques + peuvent être téléchargées par quiconque a accès au “PORT OBD” du véhicule, puis + utilisées pour programmer une clé vierge en moins de 60 secondes.

    + +

    Pourquoi devrais-je m’inquiéter ?

    + +

    Cette clé duplicata est identique à l’originale, ce qui donne au voleur un accès + total pour OUVRIR, DÉMARRER et EMPORTER le véhicule à sa convenance, souvent des + jours, voire des semaines plus tard.

    + +

    Pour vous protéger contre ce type d’attaque, vous pouvez envisager de bloquer, + modifier ou cacher votre port OBD. Il ne faut que quelques minutes pour rendre ces + véhicules inviolables.

    + + blog + + Port OBD Lock +
    +
    + +

    Système de Repérage par TAG

    + +

    Cette technologie implique de placer plusieurs dispositifs sans fil dans des endroits + difficiles d’accès du véhicule. Chaque dispositif est autonome et émet un signal + avec un code d’identification unique qui peut être lu à distance par un récepteur. +

    + +

    Prix: 400$

    + +

    Barre Antivol

    + +

    Une barre antivol simple mais efficace peut ralentir un voleur et le décourager, + agissant comme un moyen dissuasif.

    + +

    Amazon: $69 Barre Antivol

    + +

    Apple tag

    + + blog + +
    +
    + +

    L’Apple tag est un relayeur de position, le tag émet des signaux anonymes et toute + personnes possédant Un apapreil Apple passant proche du tag envoit un signal au + serveur de Apple vous permettant ainsi d’avoir une position geographique du dernier + repérage. Il suffit de bien le cacher dans son auto.

    + +

    Toutefois, il est recommandé de désactiver le haut-parleur à l’intérieur de l’Apple + Tag pour éviter que le voleur ne le découvre et ne le désactive. En effet, Apple a + mis en place ce système pour prévenir le suivi indésirable des autres utilisateurs. + Imaginez la situation où quelqu’un aurait discrètement placé un Apple Tag sur vous, + vous permettant ainsi d’être suivi partout sans votre consentement.

    + +

    Dans le contexte des véhicules volés, une fois que le voleur a pris possession de + votre voiture et qu’il détecte la présence d’un Apple Tag non associé à son compte + Apple, il recevra une notification indiquant que cet Apple Tag le suit. En réaction, + il pourrait ouvrir l’application “Find My iPhone” pour tenter de localiser l’Apple + Tag.

    + +

    Pour plus de détails: https://youtu.be/hiivC_4li8Q?t=62

    + +

    Amazon: $34 Apple Tag

    + +
    + + +
      +
    • Share:
    • +
    • +
    • +
    • +
    • +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file