From 4aa9fd2f70b37d5554b7ea796d2c1d91b742a5b3 Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 31 Mar 2022 11:26:51 +0530 Subject: [PATCH 1/2] Issue #6161 fixed --- .env.example | 2 +- composer-setup.php | 1738 +++++++++++++++++ .../publishable/assets/css/velocity.css | 2 +- .../publishable/assets/mix-manifest.json | 2 +- .../assets/sass/components/datagrid.scss | 18 + 5 files changed, 1759 insertions(+), 3 deletions(-) create mode 100644 composer-setup.php diff --git a/.env.example b/.env.example index ecc5f9cd9..acfbb809f 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ APP_NAME=Bagisto APP_ENV=local -APP_VERSION=1.4.1 +APP_VERSION=1.4.2 APP_KEY= APP_DEBUG=true APP_URL=http://localhost diff --git a/composer-setup.php b/composer-setup.php new file mode 100644 index 000000000..856bccafb --- /dev/null +++ b/composer-setup.php @@ -0,0 +1,1738 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +setupEnvironment(); +process(is_array($argv) ? $argv : array()); + +/** + * Initializes various values + * + * @throws RuntimeException If uopz extension prevents exit calls + */ +function setupEnvironment() +{ + ini_set('display_errors', 1); + + if (extension_loaded('uopz') && !(ini_get('uopz.disable') || ini_get('uopz.exit'))) { + // uopz works at opcode level and disables exit calls + if (function_exists('uopz_allow_exit')) { + @uopz_allow_exit(true); + } else { + throw new RuntimeException('The uopz extension ignores exit calls and breaks this installer.'); + } + } + + $installer = 'ComposerInstaller'; + + if (defined('PHP_WINDOWS_VERSION_MAJOR')) { + if ($version = getenv('COMPOSERSETUP')) { + $installer = sprintf('Composer-Setup.exe/%s', $version); + } + } + + define('COMPOSER_INSTALLER', $installer); +} + +/** + * Processes the installer + */ +function process($argv) +{ + // Determine ANSI output from --ansi and --no-ansi flags + setUseAnsi($argv); + + if (in_array('--help', $argv)) { + displayHelp(); + exit(0); + } + + $check = in_array('--check', $argv); + $help = in_array('--help', $argv); + $force = in_array('--force', $argv); + $quiet = in_array('--quiet', $argv); + $channel = 'stable'; + if (in_array('--snapshot', $argv)) { + $channel = 'snapshot'; + } elseif (in_array('--preview', $argv)) { + $channel = 'preview'; + } elseif (in_array('--1', $argv)) { + $channel = '1'; + } elseif (in_array('--2', $argv)) { + $channel = '2'; + } + $disableTls = in_array('--disable-tls', $argv); + $installDir = getOptValue('--install-dir', $argv, false); + $version = getOptValue('--version', $argv, false); + $filename = getOptValue('--filename', $argv, 'composer.phar'); + $cafile = getOptValue('--cafile', $argv, false); + + if (!checkParams($installDir, $version, $cafile)) { + exit(1); + } + + $ok = checkPlatform($warnings, $quiet, $disableTls, true); + + if ($check) { + // Only show warnings if we haven't output any errors + if ($ok) { + showWarnings($warnings); + showSecurityWarning($disableTls); + } + exit($ok ? 0 : 1); + } + + if ($ok || $force) { + $installer = new Installer($quiet, $disableTls, $cafile); + if ($installer->run($version, $installDir, $filename, $channel)) { + showWarnings($warnings); + showSecurityWarning($disableTls); + exit(0); + } + } + + exit(1); +} + +/** + * Displays the help + */ +function displayHelp() +{ + echo << $value) { + $next = $key + 1; + if (0 === strpos($value, $opt)) { + if ($optLength === strlen($value) && isset($argv[$next])) { + return trim($argv[$next]); + } else { + return trim(substr($value, $optLength + 1)); + } + } + } + + return $default; +} + +/** + * Checks that user-supplied params are valid + * + * @param mixed $installDir The required istallation directory + * @param mixed $version The required composer version to install + * @param mixed $cafile Certificate Authority file + * + * @return bool True if the supplied params are okay + */ +function checkParams($installDir, $version, $cafile) +{ + $result = true; + + if (false !== $installDir && !is_dir($installDir)) { + out("The defined install dir ({$installDir}) does not exist.", 'info'); + $result = false; + } + + if (false !== $version && 1 !== preg_match('/^\d+\.\d+\.\d+(\-(alpha|beta|RC)\d*)*$/', $version)) { + out("The defined install version ({$version}) does not match release pattern.", 'info'); + $result = false; + } + + if (false !== $cafile && (!file_exists($cafile) || !is_readable($cafile))) { + out("The defined Certificate Authority (CA) cert file ({$cafile}) does not exist or is not readable.", 'info'); + $result = false; + } + return $result; +} + +/** + * Checks the platform for possible issues running Composer + * + * Errors are written to the output, warnings are saved for later display. + * + * @param array $warnings Populated by method, to be shown later + * @param bool $quiet Quiet mode + * @param bool $disableTls Bypass tls + * @param bool $install If we are installing, rather than diagnosing + * + * @return bool True if there are no errors + */ +function checkPlatform(&$warnings, $quiet, $disableTls, $install) +{ + getPlatformIssues($errors, $warnings, $install); + + // Make openssl warning an error if tls has not been specifically disabled + if (isset($warnings['openssl']) && !$disableTls) { + $errors['openssl'] = $warnings['openssl']; + unset($warnings['openssl']); + } + + if (!empty($errors)) { + // Composer-Setup.exe uses "Some settings" to flag platform errors + out('Some settings on your machine make Composer unable to work properly.', 'error'); + out('Make sure that you fix the issues listed below and run this script again:', 'error'); + outputIssues($errors); + return false; + } + + if (empty($warnings) && !$quiet) { + out('All settings correct for using Composer', 'success'); + } + return true; +} + +/** + * Checks platform configuration for common incompatibility issues + * + * @param array $errors Populated by method + * @param array $warnings Populated by method + * @param bool $install If we are installing, rather than diagnosing + * + * @return bool If any errors or warnings have been found + */ +function getPlatformIssues(&$errors, &$warnings, $install) +{ + $errors = array(); + $warnings = array(); + + if ($iniPath = php_ini_loaded_file()) { + $iniMessage = PHP_EOL.'The php.ini used by your command-line PHP is: ' . $iniPath; + } else { + $iniMessage = PHP_EOL.'A php.ini file does not exist. You will have to create one.'; + } + $iniMessage .= PHP_EOL.'If you can not modify the ini file, you can also run `php -d option=value` to modify ini values on the fly. You can use -d multiple times.'; + + if (ini_get('detect_unicode')) { + $errors['unicode'] = array( + 'The detect_unicode setting must be disabled.', + 'Add the following to the end of your `php.ini`:', + ' detect_unicode = Off', + $iniMessage + ); + } + + if (extension_loaded('suhosin')) { + $suhosin = ini_get('suhosin.executor.include.whitelist'); + $suhosinBlacklist = ini_get('suhosin.executor.include.blacklist'); + if (false === stripos($suhosin, 'phar') && (!$suhosinBlacklist || false !== stripos($suhosinBlacklist, 'phar'))) { + $errors['suhosin'] = array( + 'The suhosin.executor.include.whitelist setting is incorrect.', + 'Add the following to the end of your `php.ini` or suhosin.ini (Example path [for Debian]: /etc/php5/cli/conf.d/suhosin.ini):', + ' suhosin.executor.include.whitelist = phar '.$suhosin, + $iniMessage + ); + } + } + + if (!function_exists('json_decode')) { + $errors['json'] = array( + 'The json extension is missing.', + 'Install it or recompile php without --disable-json' + ); + } + + if (!extension_loaded('Phar')) { + $errors['phar'] = array( + 'The phar extension is missing.', + 'Install it or recompile php without --disable-phar' + ); + } + + if (!extension_loaded('filter')) { + $errors['filter'] = array( + 'The filter extension is missing.', + 'Install it or recompile php without --disable-filter' + ); + } + + if (!extension_loaded('hash')) { + $errors['hash'] = array( + 'The hash extension is missing.', + 'Install it or recompile php without --disable-hash' + ); + } + + if (!extension_loaded('iconv') && !extension_loaded('mbstring')) { + $errors['iconv_mbstring'] = array( + 'The iconv OR mbstring extension is required and both are missing.', + 'Install either of them or recompile php without --disable-iconv' + ); + } + + if (!ini_get('allow_url_fopen')) { + $errors['allow_url_fopen'] = array( + 'The allow_url_fopen setting is incorrect.', + 'Add the following to the end of your `php.ini`:', + ' allow_url_fopen = On', + $iniMessage + ); + } + + if (extension_loaded('ionCube Loader') && ioncube_loader_iversion() < 40009) { + $ioncube = ioncube_loader_version(); + $errors['ioncube'] = array( + 'Your ionCube Loader extension ('.$ioncube.') is incompatible with Phar files.', + 'Upgrade to ionCube 4.0.9 or higher or remove this line (path may be different) from your `php.ini` to disable it:', + ' zend_extension = /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so', + $iniMessage + ); + } + + if (version_compare(PHP_VERSION, '5.3.2', '<')) { + $errors['php'] = array( + 'Your PHP ('.PHP_VERSION.') is too old, you must upgrade to PHP 5.3.2 or higher.' + ); + } + + if (version_compare(PHP_VERSION, '5.3.4', '<')) { + $warnings['php'] = array( + 'Your PHP ('.PHP_VERSION.') is quite old, upgrading to PHP 5.3.4 or higher is recommended.', + 'Composer works with 5.3.2+ for most people, but there might be edge case issues.' + ); + } + + if (!extension_loaded('openssl')) { + $warnings['openssl'] = array( + 'The openssl extension is missing, which means that secure HTTPS transfers are impossible.', + 'If possible you should enable it or recompile php with --with-openssl' + ); + } + + if (extension_loaded('openssl') && OPENSSL_VERSION_NUMBER < 0x1000100f) { + // Attempt to parse version number out, fallback to whole string value. + $opensslVersion = trim(strstr(OPENSSL_VERSION_TEXT, ' ')); + $opensslVersion = substr($opensslVersion, 0, strpos($opensslVersion, ' ')); + $opensslVersion = $opensslVersion ? $opensslVersion : OPENSSL_VERSION_TEXT; + + $warnings['openssl_version'] = array( + 'The OpenSSL library ('.$opensslVersion.') used by PHP does not support TLSv1.2 or TLSv1.1.', + 'If possible you should upgrade OpenSSL to version 1.0.1 or above.' + ); + } + + if (!defined('HHVM_VERSION') && !extension_loaded('apcu') && ini_get('apc.enable_cli')) { + $warnings['apc_cli'] = array( + 'The apc.enable_cli setting is incorrect.', + 'Add the following to the end of your `php.ini`:', + ' apc.enable_cli = Off', + $iniMessage + ); + } + + if (!$install && extension_loaded('xdebug')) { + $warnings['xdebug_loaded'] = array( + 'The xdebug extension is loaded, this can slow down Composer a little.', + 'Disabling it when using Composer is recommended.' + ); + + if (ini_get('xdebug.profiler_enabled')) { + $warnings['xdebug_profile'] = array( + 'The xdebug.profiler_enabled setting is enabled, this can slow down Composer a lot.', + 'Add the following to the end of your `php.ini` to disable it:', + ' xdebug.profiler_enabled = 0', + $iniMessage + ); + } + } + + if (!extension_loaded('zlib')) { + $warnings['zlib'] = array( + 'The zlib extension is not loaded, this can slow down Composer a lot.', + 'If possible, install it or recompile php with --with-zlib', + $iniMessage + ); + } + + if (defined('PHP_WINDOWS_VERSION_BUILD') + && (version_compare(PHP_VERSION, '7.2.23', '<') + || (version_compare(PHP_VERSION, '7.3.0', '>=') + && version_compare(PHP_VERSION, '7.3.10', '<')))) { + $warnings['onedrive'] = array( + 'The Windows OneDrive folder is not supported on PHP versions below 7.2.23 and 7.3.10.', + 'Upgrade your PHP ('.PHP_VERSION.') to use this location with Composer.' + ); + } + + if (extension_loaded('uopz') && !(ini_get('uopz.disable') || ini_get('uopz.exit'))) { + $warnings['uopz'] = array( + 'The uopz extension ignores exit calls and may not work with all Composer commands.', + 'Disabling it when using Composer is recommended.' + ); + } + + ob_start(); + phpinfo(INFO_GENERAL); + $phpinfo = ob_get_clean(); + if (preg_match('{Configure Command(?: *| *=> *)(.*?)(?:|$)}m', $phpinfo, $match)) { + $configure = $match[1]; + + if (false !== strpos($configure, '--enable-sigchild')) { + $warnings['sigchild'] = array( + 'PHP was compiled with --enable-sigchild which can cause issues on some platforms.', + 'Recompile it without this flag if possible, see also:', + ' https://bugs.php.net/bug.php?id=22999' + ); + } + + if (false !== strpos($configure, '--with-curlwrappers')) { + $warnings['curlwrappers'] = array( + 'PHP was compiled with --with-curlwrappers which will cause issues with HTTP authentication and GitHub.', + 'Recompile it without this flag if possible' + ); + } + } + + // Stringify the message arrays + foreach ($errors as $key => $value) { + $errors[$key] = PHP_EOL.implode(PHP_EOL, $value); + } + + foreach ($warnings as $key => $value) { + $warnings[$key] = PHP_EOL.implode(PHP_EOL, $value); + } + + return !empty($errors) || !empty($warnings); +} + + +/** + * Outputs an array of issues + * + * @param array $issues + */ +function outputIssues($issues) +{ + foreach ($issues as $issue) { + out($issue, 'info'); + } + out(''); +} + +/** + * Outputs any warnings found + * + * @param array $warnings + */ +function showWarnings($warnings) +{ + if (!empty($warnings)) { + out('Some settings on your machine may cause stability issues with Composer.', 'error'); + out('If you encounter issues, try to change the following:', 'error'); + outputIssues($warnings); + } +} + +/** + * Outputs an end of process warning if tls has been bypassed + * + * @param bool $disableTls Bypass tls + */ +function showSecurityWarning($disableTls) +{ + if ($disableTls) { + out('You have instructed the Installer not to enforce SSL/TLS security on remote HTTPS requests.', 'info'); + out('This will leave all downloads during installation vulnerable to Man-In-The-Middle (MITM) attacks', 'info'); + } +} + +/** + * colorize output + */ +function out($text, $color = null, $newLine = true) +{ + $styles = array( + 'success' => "\033[0;32m%s\033[0m", + 'error' => "\033[31;31m%s\033[0m", + 'info' => "\033[33;33m%s\033[0m" + ); + + $format = '%s'; + + if (isset($styles[$color]) && USE_ANSI) { + $format = $styles[$color]; + } + + if ($newLine) { + $format .= PHP_EOL; + } + + printf($format, $text); +} + +/** + * Returns the system-dependent Composer home location, which may not exist + * + * @return string + */ +function getHomeDir() +{ + $home = getenv('COMPOSER_HOME'); + if ($home) { + return $home; + } + + $userDir = getUserDir(); + + if (defined('PHP_WINDOWS_VERSION_MAJOR')) { + return $userDir.'/Composer'; + } + + $dirs = array(); + + if (useXdg()) { + // XDG Base Directory Specifications + $xdgConfig = getenv('XDG_CONFIG_HOME'); + if (!$xdgConfig) { + $xdgConfig = $userDir . '/.config'; + } + + $dirs[] = $xdgConfig . '/composer'; + } + + $dirs[] = $userDir . '/.composer'; + + // select first dir which exists of: $XDG_CONFIG_HOME/composer or ~/.composer + foreach ($dirs as $dir) { + if (is_dir($dir)) { + return $dir; + } + } + + // if none exists, we default to first defined one (XDG one if system uses it, or ~/.composer otherwise) + return $dirs[0]; +} + +/** + * Returns the location of the user directory from the environment + * @throws RuntimeException If the environment value does not exists + * + * @return string + */ +function getUserDir() +{ + $userEnv = defined('PHP_WINDOWS_VERSION_MAJOR') ? 'APPDATA' : 'HOME'; + $userDir = getenv($userEnv); + + if (!$userDir) { + throw new RuntimeException('The '.$userEnv.' or COMPOSER_HOME environment variable must be set for composer to run correctly'); + } + + return rtrim(strtr($userDir, '\\', '/'), '/'); +} + +/** + * @return bool + */ +function useXdg() +{ + foreach (array_keys($_SERVER) as $key) { + if (strpos($key, 'XDG_') === 0) { + return true; + } + } + + if (is_dir('/etc/xdg')) { + return true; + } + + return false; +} + +function validateCaFile($contents) +{ + // assume the CA is valid if php is vulnerable to + // https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html + if ( + PHP_VERSION_ID <= 50327 + || (PHP_VERSION_ID >= 50400 && PHP_VERSION_ID < 50422) + || (PHP_VERSION_ID >= 50500 && PHP_VERSION_ID < 50506) + ) { + return !empty($contents); + } + + return (bool) openssl_x509_parse($contents); +} + +class Installer +{ + private $quiet; + private $disableTls; + private $cafile; + private $displayPath; + private $target; + private $tmpFile; + private $tmpCafile; + private $baseUrl; + private $algo; + private $errHandler; + private $httpClient; + private $pubKeys = array(); + private $installs = array(); + + /** + * Constructor - must not do anything that throws an exception + * + * @param bool $quiet Quiet mode + * @param bool $disableTls Bypass tls + * @param mixed $cafile Path to CA bundle, or false + */ + public function __construct($quiet, $disableTls, $caFile) + { + if (($this->quiet = $quiet)) { + ob_start(); + } + $this->disableTls = $disableTls; + $this->cafile = $caFile; + $this->errHandler = new ErrorHandler(); + } + + /** + * Runs the installer + * + * @param mixed $version Specific version to install, or false + * @param mixed $installDir Specific installation directory, or false + * @param string $filename Specific filename to save to, or composer.phar + * @param string $channel Specific version channel to use + * @throws Exception If anything other than a RuntimeException is caught + * + * @return bool If the installation succeeded + */ + public function run($version, $installDir, $filename, $channel) + { + try { + $this->initTargets($installDir, $filename); + $this->initTls(); + $this->httpClient = new HttpClient($this->disableTls, $this->cafile); + $result = $this->install($version, $channel); + + // in case --1 or --2 is passed, we leave the default channel for next self-update to stable + if (is_numeric($channel)) { + $channel = 'stable'; + } + + if ($result && $channel !== 'stable' && !$version && defined('PHP_BINARY')) { + $null = (defined('PHP_WINDOWS_VERSION_MAJOR') ? 'NUL' : '/dev/null'); + @exec(escapeshellarg(PHP_BINARY) .' '.escapeshellarg($this->target).' self-update --'.$channel.' --set-channel-only -q > '.$null.' 2> '.$null, $output); + } + } catch (Exception $e) { + $result = false; + } + + // Always clean up + $this->cleanUp($result); + + if (isset($e)) { + // Rethrow anything that is not a RuntimeException + if (!$e instanceof RuntimeException) { + throw $e; + } + out($e->getMessage(), 'error'); + } + return $result; + } + + /** + * Initialization methods to set the required filenames and composer url + * + * @param mixed $installDir Specific installation directory, or false + * @param string $filename Specific filename to save to, or composer.phar + * @throws RuntimeException If the installation directory is not writable + */ + protected function initTargets($installDir, $filename) + { + $this->displayPath = ($installDir ? rtrim($installDir, '/').'/' : '').$filename; + $installDir = $installDir ? realpath($installDir) : getcwd(); + + if (!is_writeable($installDir)) { + throw new RuntimeException('The installation directory "'.$installDir.'" is not writable'); + } + + $this->target = $installDir.DIRECTORY_SEPARATOR.$filename; + $this->tmpFile = $installDir.DIRECTORY_SEPARATOR.basename($this->target, '.phar').'-temp.phar'; + + $uriScheme = $this->disableTls ? 'http' : 'https'; + $this->baseUrl = $uriScheme.'://getcomposer.org'; + } + + /** + * A wrapper around methods to check tls and write public keys + * @throws RuntimeException If SHA384 is not supported + */ + protected function initTls() + { + if ($this->disableTls) { + return; + } + + if (!in_array('sha384', array_map('strtolower', openssl_get_md_methods()))) { + throw new RuntimeException('SHA384 is not supported by your openssl extension'); + } + + $this->algo = defined('OPENSSL_ALGO_SHA384') ? OPENSSL_ALGO_SHA384 : 'SHA384'; + $home = $this->getComposerHome(); + + $this->pubKeys = array( + 'dev' => $this->installKey(self::getPKDev(), $home, 'keys.dev.pub'), + 'tags' => $this->installKey(self::getPKTags(), $home, 'keys.tags.pub') + ); + + if (empty($this->cafile) && !HttpClient::getSystemCaRootBundlePath()) { + $this->cafile = $this->tmpCafile = $this->installKey(HttpClient::getPackagedCaFile(), $home, 'cacert-temp.pem'); + } + } + + /** + * Returns the Composer home directory, creating it if required + * @throws RuntimeException If the directory cannot be created + * + * @return string + */ + protected function getComposerHome() + { + $home = getHomeDir(); + + if (!is_dir($home)) { + $this->errHandler->start(); + + if (!mkdir($home, 0777, true)) { + throw new RuntimeException(sprintf( + 'Unable to create Composer home directory "%s": %s', + $home, + $this->errHandler->message + )); + } + $this->installs[] = $home; + $this->errHandler->stop(); + } + return $home; + } + + /** + * Writes public key data to disc + * + * @param string $data The public key(s) in pem format + * @param string $path The directory to write to + * @param string $filename The name of the file + * @throws RuntimeException If the file cannot be written + * + * @return string The path to the saved data + */ + protected function installKey($data, $path, $filename) + { + $this->errHandler->start(); + + $target = $path.DIRECTORY_SEPARATOR.$filename; + $installed = file_exists($target); + $write = file_put_contents($target, $data, LOCK_EX); + @chmod($target, 0644); + + $this->errHandler->stop(); + + if (!$write) { + throw new RuntimeException(sprintf('Unable to write %s to: %s', $filename, $path)); + } + + if (!$installed) { + $this->installs[] = $target; + } + + return $target; + } + + /** + * The main install function + * + * @param mixed $version Specific version to install, or false + * @param string $channel Version channel to use + * + * @return bool If the installation succeeded + */ + protected function install($version, $channel) + { + $retries = 3; + $result = false; + $infoMsg = 'Downloading...'; + $infoType = 'info'; + + while ($retries--) { + if (!$this->quiet) { + out($infoMsg, $infoType); + $infoMsg = 'Retrying...'; + $infoType = 'error'; + } + + if (!$this->getVersion($channel, $version, $url, $error)) { + out($error, 'error'); + continue; + } + + if (!$this->downloadToTmp($url, $signature, $error)) { + out($error, 'error'); + continue; + } + + if (!$this->verifyAndSave($version, $signature, $error)) { + out($error, 'error'); + continue; + } + + $result = true; + break; + } + + if (!$this->quiet) { + if ($result) { + out(PHP_EOL."Composer (version {$version}) successfully installed to: {$this->target}", 'success'); + out("Use it: php {$this->displayPath}", 'info'); + out(''); + } else { + out('The download failed repeatedly, aborting.', 'error'); + } + } + return $result; + } + + /** + * Sets the version url, downloading version data if required + * + * @param string $channel Version channel to use + * @param false|string $version Version to install, or set by method + * @param null|string $url The versioned url, set by method + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function getVersion($channel, &$version, &$url, &$error) + { + $error = ''; + + if ($version) { + if (empty($url)) { + $url = $this->baseUrl."/download/{$version}/composer.phar"; + } + return true; + } + + $this->errHandler->start(); + + if ($this->downloadVersionData($data, $error)) { + $this->parseVersionData($data, $channel, $version, $url); + } + + $this->errHandler->stop(); + return empty($error); + } + + /** + * Downloads and json-decodes version data + * + * @param null|array $data Downloaded version data, set by method + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function downloadVersionData(&$data, &$error) + { + $url = $this->baseUrl.'/versions'; + $errFmt = 'The "%s" file could not be %s: %s'; + + if (!$json = $this->httpClient->get($url)) { + $error = sprintf($errFmt, $url, 'downloaded', $this->errHandler->message); + return false; + } + + if (!$data = json_decode($json, true)) { + $error = sprintf($errFmt, $url, 'json-decoded', $this->getJsonError()); + return false; + } + return true; + } + + /** + * A wrapper around the methods needed to download and save the phar + * + * @param string $url The versioned download url + * @param null|string $signature Set by method on successful download + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function downloadToTmp($url, &$signature, &$error) + { + $error = ''; + $errFmt = 'The "%s" file could not be downloaded: %s'; + $sigUrl = $url.'.sig'; + $this->errHandler->start(); + + if (!$fh = fopen($this->tmpFile, 'w')) { + $error = sprintf('Could not create file "%s": %s', $this->tmpFile, $this->errHandler->message); + + } elseif (!$this->getSignature($sigUrl, $signature)) { + $error = sprintf($errFmt, $sigUrl, $this->errHandler->message); + + } elseif (!fwrite($fh, $this->httpClient->get($url))) { + $error = sprintf($errFmt, $url, $this->errHandler->message); + } + + if (is_resource($fh)) { + fclose($fh); + } + $this->errHandler->stop(); + return empty($error); + } + + /** + * Verifies the downloaded file and saves it to the target location + * + * @param string $version The composer version downloaded + * @param string $signature The digital signature to check + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function verifyAndSave($version, $signature, &$error) + { + $error = ''; + + if (!$this->validatePhar($this->tmpFile, $pharError)) { + $error = 'The download is corrupt: '.$pharError; + + } elseif (!$this->verifySignature($version, $signature, $this->tmpFile)) { + $error = 'Signature mismatch, could not verify the phar file integrity'; + + } else { + $this->errHandler->start(); + + if (!rename($this->tmpFile, $this->target)) { + $error = sprintf('Could not write to file "%s": %s', $this->target, $this->errHandler->message); + } + chmod($this->target, 0755); + $this->errHandler->stop(); + } + + return empty($error); + } + + /** + * Parses an array of version data to match the required channel + * + * @param array $data Downloaded version data + * @param mixed $channel Version channel to use + * @param false|string $version Set by method + * @param mixed $url The versioned url, set by method + */ + protected function parseVersionData(array $data, $channel, &$version, &$url) + { + foreach ($data[$channel] as $candidate) { + if ($candidate['min-php'] <= PHP_VERSION_ID) { + $version = $candidate['version']; + $url = $this->baseUrl.$candidate['path']; + break; + } + } + + if (!$version) { + $error = sprintf( + 'None of the %d %s version(s) of Composer matches your PHP version (%s / ID: %d)', + count($data[$channel]), + $channel, + PHP_VERSION, + PHP_VERSION_ID + ); + throw new RuntimeException($error); + } + } + + /** + * Downloads the digital signature of required phar file + * + * @param string $url The signature url + * @param null|string $signature Set by method on success + * + * @return bool If the download succeeded + */ + protected function getSignature($url, &$signature) + { + if (!$result = $this->disableTls) { + $signature = $this->httpClient->get($url); + + if ($signature) { + $signature = json_decode($signature, true); + $signature = base64_decode($signature['sha384']); + $result = true; + } + } + + return $result; + } + + /** + * Verifies the signature of the downloaded phar + * + * @param string $version The composer versione + * @param string $signature The downloaded digital signature + * @param string $file The temp phar file + * + * @return bool If the operation succeeded + */ + protected function verifySignature($version, $signature, $file) + { + if (!$result = $this->disableTls) { + $path = preg_match('{^[0-9a-f]{40}$}', $version) ? $this->pubKeys['dev'] : $this->pubKeys['tags']; + $pubkeyid = openssl_pkey_get_public('file://'.$path); + + $result = 1 === openssl_verify( + file_get_contents($file), + $signature, + $pubkeyid, + $this->algo + ); + + // PHP 8 automatically frees the key instance and deprecates the function + if (PHP_VERSION_ID < 80000) { + openssl_free_key($pubkeyid); + } + } + + return $result; + } + + /** + * Validates the downloaded phar file + * + * @param string $pharFile The temp phar file + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function validatePhar($pharFile, &$error) + { + if (ini_get('phar.readonly')) { + return true; + } + + try { + // Test the phar validity + $phar = new Phar($pharFile); + // Free the variable to unlock the file + unset($phar); + $result = true; + + } catch (Exception $e) { + if (!$e instanceof UnexpectedValueException && !$e instanceof PharException) { + throw $e; + } + $error = $e->getMessage(); + $result = false; + } + return $result; + } + + /** + * Returns a string representation of the last json error + * + * @return string The error string or code + */ + protected function getJsonError() + { + if (function_exists('json_last_error_msg')) { + return json_last_error_msg(); + } else { + return 'json_last_error = '.json_last_error(); + } + } + + /** + * Cleans up resources at the end of the installation + * + * @param bool $result If the installation succeeded + */ + protected function cleanUp($result) + { + if (!$result) { + // Output buffered errors + if ($this->quiet) { + $this->outputErrors(); + } + // Clean up stuff we created + $this->uninstall(); + } elseif ($this->tmpCafile) { + @unlink($this->tmpCafile); + } + } + + /** + * Outputs unique errors when in quiet mode + * + */ + protected function outputErrors() + { + $errors = explode(PHP_EOL, ob_get_clean()); + $shown = array(); + + foreach ($errors as $error) { + if ($error && !in_array($error, $shown)) { + out($error, 'error'); + $shown[] = $error; + } + } + } + + /** + * Uninstalls newly-created files and directories on failure + * + */ + protected function uninstall() + { + foreach (array_reverse($this->installs) as $target) { + if (is_file($target)) { + @unlink($target); + } elseif (is_dir($target)) { + @rmdir($target); + } + } + + if (file_exists($this->tmpFile)) { + @unlink($this->tmpFile); + } + } + + public static function getPKDev() + { + return <<message) { + $this->message .= PHP_EOL; + } + $this->message .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg); + } + + /** + * Starts error-handling if not already active + * + * Any message is cleared + */ + public function start() + { + if (!$this->active) { + set_error_handler(array($this, 'handleError')); + $this->active = true; + } + $this->message = ''; + } + + /** + * Stops error-handling if active + * + * Any message is preserved until the next call to start() + */ + public function stop() + { + if ($this->active) { + restore_error_handler(); + $this->active = false; + } + } +} + +class NoProxyPattern +{ + private $composerInNoProxy = false; + private $rulePorts = array(); + + public function __construct($pattern) + { + $rules = preg_split('{[\s,]+}', $pattern, null, PREG_SPLIT_NO_EMPTY); + + if ($matches = preg_grep('{getcomposer\.org(?::\d+)?}i', $rules)) { + $this->composerInNoProxy = true; + + foreach ($matches as $match) { + if (strpos($match, ':') !== false) { + list(, $port) = explode(':', $match); + $this->rulePorts[] = (int) $port; + } + } + } + } + + /** + * Returns true if NO_PROXY contains getcomposer.org + * + * @param string $url http(s)://getcomposer.org + * + * @return bool + */ + public function test($url) + { + if (!$this->composerInNoProxy) { + return false; + } + + if (empty($this->rulePorts)) { + return true; + } + + if (strpos($url, 'http://') === 0) { + $port = 80; + } else { + $port = 443; + } + + return in_array($port, $this->rulePorts); + } +} + +class HttpClient { + + private $options = array('http' => array()); + private $disableTls = false; + + public function __construct($disableTls = false, $cafile = false) + { + $this->disableTls = $disableTls; + if ($this->disableTls === false) { + if (!empty($cafile) && !is_dir($cafile)) { + if (!is_readable($cafile) || !validateCaFile(file_get_contents($cafile))) { + throw new RuntimeException('The configured cafile (' .$cafile. ') was not valid or could not be read.'); + } + } + $options = $this->getTlsStreamContextDefaults($cafile); + $this->options = array_replace_recursive($this->options, $options); + } + } + + public function get($url) + { + $context = $this->getStreamContext($url); + $result = file_get_contents($url, false, $context); + + if ($result && extension_loaded('zlib')) { + $decode = false; + foreach ($http_response_header as $header) { + if (preg_match('{^content-encoding: *gzip *$}i', $header)) { + $decode = true; + continue; + } elseif (preg_match('{^HTTP/}i', $header)) { + $decode = false; + } + } + + if ($decode) { + if (version_compare(PHP_VERSION, '5.4.0', '>=')) { + $result = zlib_decode($result); + } else { + // work around issue with gzuncompress & co that do not work with all gzip checksums + $result = file_get_contents('compress.zlib://data:application/octet-stream;base64,'.base64_encode($result)); + } + + if (!$result) { + throw new RuntimeException('Failed to decode zlib stream'); + } + } + } + + return $result; + } + + protected function getStreamContext($url) + { + if ($this->disableTls === false) { + if (PHP_VERSION_ID < 50600) { + $this->options['ssl']['SNI_server_name'] = parse_url($url, PHP_URL_HOST); + } + } + // Keeping the above mostly isolated from the code copied from Composer. + return $this->getMergedStreamContext($url); + } + + protected function getTlsStreamContextDefaults($cafile) + { + $ciphers = implode(':', array( + 'ECDHE-RSA-AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES128-GCM-SHA256', + 'ECDHE-RSA-AES256-GCM-SHA384', + 'ECDHE-ECDSA-AES256-GCM-SHA384', + 'DHE-RSA-AES128-GCM-SHA256', + 'DHE-DSS-AES128-GCM-SHA256', + 'kEDH+AESGCM', + 'ECDHE-RSA-AES128-SHA256', + 'ECDHE-ECDSA-AES128-SHA256', + 'ECDHE-RSA-AES128-SHA', + 'ECDHE-ECDSA-AES128-SHA', + 'ECDHE-RSA-AES256-SHA384', + 'ECDHE-ECDSA-AES256-SHA384', + 'ECDHE-RSA-AES256-SHA', + 'ECDHE-ECDSA-AES256-SHA', + 'DHE-RSA-AES128-SHA256', + 'DHE-RSA-AES128-SHA', + 'DHE-DSS-AES128-SHA256', + 'DHE-RSA-AES256-SHA256', + 'DHE-DSS-AES256-SHA', + 'DHE-RSA-AES256-SHA', + 'AES128-GCM-SHA256', + 'AES256-GCM-SHA384', + 'AES128-SHA256', + 'AES256-SHA256', + 'AES128-SHA', + 'AES256-SHA', + 'AES', + 'CAMELLIA', + 'DES-CBC3-SHA', + '!aNULL', + '!eNULL', + '!EXPORT', + '!DES', + '!RC4', + '!MD5', + '!PSK', + '!aECDH', + '!EDH-DSS-DES-CBC3-SHA', + '!EDH-RSA-DES-CBC3-SHA', + '!KRB5-DES-CBC3-SHA', + )); + + /** + * CN_match and SNI_server_name are only known once a URL is passed. + * They will be set in the getOptionsForUrl() method which receives a URL. + * + * cafile or capath can be overridden by passing in those options to constructor. + */ + $options = array( + 'ssl' => array( + 'ciphers' => $ciphers, + 'verify_peer' => true, + 'verify_depth' => 7, + 'SNI_enabled' => true, + ) + ); + + /** + * Attempt to find a local cafile or throw an exception. + * The user may go download one if this occurs. + */ + if (!$cafile) { + $cafile = self::getSystemCaRootBundlePath(); + } + if (is_dir($cafile)) { + $options['ssl']['capath'] = $cafile; + } elseif ($cafile) { + $options['ssl']['cafile'] = $cafile; + } else { + throw new RuntimeException('A valid cafile could not be located automatically.'); + } + + /** + * Disable TLS compression to prevent CRIME attacks where supported. + */ + if (version_compare(PHP_VERSION, '5.4.13') >= 0) { + $options['ssl']['disable_compression'] = true; + } + + return $options; + } + + /** + * function copied from Composer\Util\StreamContextFactory::initOptions + * + * Any changes should be applied there as well, or backported here. + * + * @param string $url URL the context is to be used for + * @return resource Default context + * @throws \RuntimeException if https proxy required and OpenSSL uninstalled + */ + protected function getMergedStreamContext($url) + { + $options = $this->options; + + // Handle HTTP_PROXY/http_proxy on CLI only for security reasons + if ((PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') && (!empty($_SERVER['HTTP_PROXY']) || !empty($_SERVER['http_proxy']))) { + $proxy = parse_url(!empty($_SERVER['http_proxy']) ? $_SERVER['http_proxy'] : $_SERVER['HTTP_PROXY']); + } + + // Prefer CGI_HTTP_PROXY if available + if (!empty($_SERVER['CGI_HTTP_PROXY'])) { + $proxy = parse_url($_SERVER['CGI_HTTP_PROXY']); + } + + // Override with HTTPS proxy if present and URL is https + if (preg_match('{^https://}i', $url) && (!empty($_SERVER['HTTPS_PROXY']) || !empty($_SERVER['https_proxy']))) { + $proxy = parse_url(!empty($_SERVER['https_proxy']) ? $_SERVER['https_proxy'] : $_SERVER['HTTPS_PROXY']); + } + + // Remove proxy if URL matches no_proxy directive + if (!empty($_SERVER['NO_PROXY']) || !empty($_SERVER['no_proxy']) && parse_url($url, PHP_URL_HOST)) { + $pattern = new NoProxyPattern(!empty($_SERVER['no_proxy']) ? $_SERVER['no_proxy'] : $_SERVER['NO_PROXY']); + if ($pattern->test($url)) { + unset($proxy); + } + } + + if (!empty($proxy)) { + $proxyURL = isset($proxy['scheme']) ? $proxy['scheme'] . '://' : ''; + $proxyURL .= isset($proxy['host']) ? $proxy['host'] : ''; + + if (isset($proxy['port'])) { + $proxyURL .= ":" . $proxy['port']; + } elseif (strpos($proxyURL, 'http://') === 0) { + $proxyURL .= ":80"; + } elseif (strpos($proxyURL, 'https://') === 0) { + $proxyURL .= ":443"; + } + + // check for a secure proxy + if (strpos($proxyURL, 'https://') === 0) { + if (!extension_loaded('openssl')) { + throw new RuntimeException('You must enable the openssl extension to use a secure proxy.'); + } + if (strpos($url, 'https://') === 0) { + throw new RuntimeException('PHP does not support https requests through a secure proxy.'); + } + } + + // http(s):// is not supported in proxy + $proxyURL = str_replace(array('http://', 'https://'), array('tcp://', 'ssl://'), $proxyURL); + + $options['http'] = array( + 'proxy' => $proxyURL, + ); + + // add request_fulluri for http requests + if ('http' === parse_url($url, PHP_URL_SCHEME)) { + $options['http']['request_fulluri'] = true; + } + + // handle proxy auth if present + if (isset($proxy['user'])) { + $auth = rawurldecode($proxy['user']); + if (isset($proxy['pass'])) { + $auth .= ':' . rawurldecode($proxy['pass']); + } + $auth = base64_encode($auth); + + $options['http']['header'] = "Proxy-Authorization: Basic {$auth}\r\n"; + } + } + + if (isset($options['http']['header'])) { + $options['http']['header'] .= "Connection: close\r\n"; + } else { + $options['http']['header'] = "Connection: close\r\n"; + } + if (extension_loaded('zlib')) { + $options['http']['header'] .= "Accept-Encoding: gzip\r\n"; + } + $options['http']['header'] .= "User-Agent: ".COMPOSER_INSTALLER."\r\n"; + $options['http']['protocol_version'] = 1.1; + $options['http']['timeout'] = 600; + + return stream_context_create($options); + } + + /** + * This method was adapted from Sslurp. + * https://github.com/EvanDotPro/Sslurp + * + * (c) Evan Coury + * + * For the full copyright and license information, please see below: + * + * Copyright (c) 2013, Evan Coury + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + public static function getSystemCaRootBundlePath() + { + static $caPath = null; + + if ($caPath !== null) { + return $caPath; + } + + // If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that. + // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. + $envCertFile = getenv('SSL_CERT_FILE'); + if ($envCertFile && is_readable($envCertFile) && validateCaFile(file_get_contents($envCertFile))) { + return $caPath = $envCertFile; + } + + // If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that. + // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. + $envCertDir = getenv('SSL_CERT_DIR'); + if ($envCertDir && is_dir($envCertDir) && is_readable($envCertDir)) { + return $caPath = $envCertDir; + } + + $configured = ini_get('openssl.cafile'); + if ($configured && strlen($configured) > 0 && is_readable($configured) && validateCaFile(file_get_contents($configured))) { + return $caPath = $configured; + } + + $configured = ini_get('openssl.capath'); + if ($configured && is_dir($configured) && is_readable($configured)) { + return $caPath = $configured; + } + + $caBundlePaths = array( + '/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package) + '/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package) + '/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package) + '/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package) + '/usr/ssl/certs/ca-bundle.crt', // Cygwin + '/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package + '/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option) + '/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat? + '/etc/ssl/cert.pem', // OpenBSD + '/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x + '/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package + '/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package + ); + + foreach ($caBundlePaths as $caBundle) { + if (@is_readable($caBundle) && validateCaFile(file_get_contents($caBundle))) { + return $caPath = $caBundle; + } + } + + foreach ($caBundlePaths as $caBundle) { + $caBundle = dirname($caBundle); + if (is_dir($caBundle) && glob($caBundle.'/*')) { + return $caPath = $caBundle; + } + } + + return $caPath = false; + } + + public static function getPackagedCaFile() + { + return <<label{margin-right:15px}.mr20{margin-right:20px}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px}.mb20,.product-detail .right .options>*{margin-bottom:20px}.mb25{margin-bottom:25px}.mb30,.product-detail .right .customer-reviews .row{margin-bottom:30px}.ml0,.product-detail .right>div:not(:first-child){margin-left:0!important}.ml5{margin-left:5px}.ml10{margin-left:10px!important}.ml15{margin-left:15px!important}.ml30{margin-left:30px!important}.w-0{width:0!important}.w-5{width:5px!important}.w-10{width:10px!important}.w-15{width:15px!important}.body-blur{filter:blur(4px);-webkit-filter:blur(4px)}.no-margin{margin:0!important}.flex-wrap{flex-wrap:nowrap}.category-list-container .category,.cursor-pointer,.qty-btn>:not(:nth-child(2)){cursor:pointer}.cursor-not-allowed{cursor:not-allowed!important}.cursor-default{cursor:default}.grey{color:#9e9e9e}.clr-light{color:rgba(0,0,0,.53)}.clr-dark,.footer .footer-content .footer-statics .software-description p{color:hsla(0,0%,100%,.52)}.font-clr{color:rgba(0,0,0,.83)}.display-inbl,.product-detail .right .options .quantity>label{display:inline-block!important}.display-block,.product-detail .right .options label{display:block!important}.align-vertical-middle{vertical-align:middle}.full-width{width:100%}.full-image{height:100%;width:100%}.card-product-image-container .background-image-group,.full-back-size{background-size:100% 100%!important}.max-width-100{max-width:100%!important}.no-border{border:none!important}.back-pos-rt{background-position:100%}.account-content .account-layout .bottom-toolbar .pagination .page-item,.cart-details .continue-shopping-btn,.theme-btn{background-color:#26a37c!important;border:1px solid transparent;color:#fff!important;cursor:pointer;font-weight:600;padding:10px 20px;vertical-align:top;z-index:10}.account-content .account-layout .bottom-toolbar .pagination .page-item:focus,.account-content .account-layout .bottom-toolbar .pagination .page-item:hover,.cart-details .continue-shopping-btn:focus,.cart-details .continue-shopping-btn:hover,.theme-btn:focus,.theme-btn:hover{background-color:#26a37c!important;border:1px solid #247959;box-shadow:none;outline:none}.account-content .account-layout .bottom-toolbar .pagination .cart-details .continue-shopping-btn.page-item,.account-content .account-layout .bottom-toolbar .pagination .light.page-item,.account-content .account-layout .bottom-toolbar .pagination .page-item,.account-content .account-layout .bottom-toolbar .pagination .theme-btn.page-item,.cart-details .account-content .account-layout .bottom-toolbar .pagination .continue-shopping-btn.page-item,.cart-details .light.continue-shopping-btn,.theme-btn.light{background-color:#fff!important;border:1px solid rgba(0,0,0,.12);box-shadow:0 1px 0 0 #cfcfcf;color:#26a37c!important}.account-content .account-layout .bottom-toolbar .pagination .page-item:focus,.account-content .account-layout .bottom-toolbar .pagination .page-item:hover,.cart-details .light.continue-shopping-btn:focus,.cart-details .light.continue-shopping-btn:hover,.theme-btn.light:focus,.theme-btn.light:hover{background-color:#f5f5f5!important;border:1px solid #247959;box-shadow:none;outline:none}.account-content .account-layout .bottom-toolbar .pagination .page-item:hover,.btn-add-to-cart:hover,.cart-details .continue-shopping-btn:hover,.theme-btn:hover{background-color:#247959!important;border-color:#247959!important;text-decoration:none}.account-content .account-layout .bottom-toolbar .pagination .page-item:hover,.btn-add-to-cart:hover.light,.cart-details .continue-shopping-btn:hover.light,.theme-btn:hover.light{border:1px solid rgba(0,0,0,.12)!important}.norm-btn{background-color:#fff!important;border:1px solid #ccc;border-radius:2px;color:#111!important;font-size:14px;padding:9px 20px;vertical-align:top}.sale-btn{background-color:#26a37c;border:none;border-radius:12px;color:#fff;font-size:14px;padding:3px 10px;position:absolute;z-index:10}.bg-image,.small-card-container .product-image{background-position:top;background-repeat:no-repeat;background-size:contain;width:100%}#top #account .welcome-content *,.material-icons,.unselectable *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.card-arrow-container .card-arrow{background-color:#2b2b2b;box-shadow:0 0 0 1px rgba(39,44,48,.05),0 2px 7px 1px rgba(39,44,48,.16);display:block;height:20px;position:absolute;transform:rotate(45deg);-webkit-transform:rotate(45deg);width:20px;z-index:10}.card-arrow-container .card-arrow-tp{left:50%;top:-10px}.card-arrow-container .card-arrow-rt{right:-10px;top:50%}.card-arrow-container .card-arrow-bt{left:50%;top:calc(100% - 10px)}.card-arrow-container .card-arrow-lt{left:-7px;top:50%}.lg-card-container{cursor:pointer}.lg-card-container a{color:rgba(0,0,0,.83);text-decoration:none}.lg-card-container #quick-view-btn-container :hover{color:#fff!important}.lg-card-container .background-image-group{background-size:contain!important}.lg-card-container.grid-card .wishlist-icon i,.lg-card-container.list-card .wishlist-icon i{padding-left:10px}.lg-card-container.grid-card .product-price span:first-child,.lg-card-container.grid-card .product-price span:last-child,.lg-card-container.list-card .product-price span:first-child,.lg-card-container.list-card .product-price span:last-child{font-size:18px;font-weight:600}.lg-card-container.grid-card .card-current-price,.lg-card-container.list-card .card-current-price{font-size:18px}.lg-card-container.grid-card .product-rating .stars,.lg-card-container.list-card .product-rating .stars{display:inline-block}.lg-card-container.grid-card .product-rating span,.lg-card-container.list-card .product-rating span{vertical-align:middle}.lg-card-container.grid-card .product-information>div:not(:last-child),.lg-card-container.list-card .product-information>div:not(:last-child){margin-bottom:5px}.lg-card-container.grid-card img,.lg-card-container.list-card img{width:100%}.lg-card-container.list-card{margin-left:0;padding-left:0}.lg-card-container.list-card .background-image-group{height:100%}.lg-card-container.list-card .product-image{float:left;height:270px;max-height:200px;max-width:200px;position:relative;width:30%}.lg-card-container.list-card .product-image .quick-view-btn-container button{left:calc(50% - 40px)}.lg-card-container.list-card .product-information{float:right;padding-left:20px;width:70%}.lg-card-container.list-card .product-rating .stars{display:inline-block}.lg-card-container.list-card .product-rating span{vertical-align:top}.lg-card-container.list-card .product-information{display:table;height:200px}.lg-card-container.list-card .product-information>div{display:table-cell}.lg-card-container.list-card .product-price .sticker{display:block}.lg-card-container.list-card .wishlist-icon{display:inline-table;height:40px;padding-left:0!important;vertical-align:top}.lg-card-container.list-card .wishlist-icon i{display:table-cell;padding-left:0!important;vertical-align:middle}.lg-card-container.list-card .compare-icon{display:inline-table;padding-left:0}.lg-card-container.list-card .add-to-cart-btn{display:inline-block;float:left}.lg-card-container.grid-card{padding:15px}.lg-card-container.grid-card .product-image{background:#f2f2f2;margin-bottom:10px;max-height:350px;max-width:280px}.lg-card-container.grid-card .product-image img{display:block;height:100%}.lg-card-container.list-card:not(:first-child){margin-top:20px}.carousel-products.with-recent-viewed .btn-add-to-cart,.small-padding{padding:3px 4px!important}.medium-padding{padding:3px 10px!important}.general-container{cursor:pointer}.lg-card-container>.product-card{border:none}.general-container:hover,.lg-card-container:hover,.product-card-new:hover{box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.lg-card-container:hover .quick-view-btn-container{display:block}.product-card-new .product-rating,.text-nowrap{color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.small-card-container{cursor:pointer;margin-bottom:10px;margin-left:0!important;margin-right:0!important}.small-card-container .material-icons{font-size:16px}.small-card-container .product-image-container{display:inline-block;padding:0}.small-card-container .product-image{background-position:50%;height:70px;width:70px}.small-card-container .card-body{display:inline-block;padding:10px 0!important;width:50%}.small-card-container .card-body .product-name{color:#000;font-size:18px;margin-bottom:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.small-card-container .regular-price,.small-card-container .sticker{display:none}.small-card-container:hover{box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.text-down-3{position:relative;top:3px}.text-down-4{position:relative;top:4px}.text-down-6{position:relative;top:6px}.text-up-1{position:relative;top:-1px}.text-up-4{position:relative;top:-4px}.text-up-14{position:relative;top:-14px}ul.circle-list{padding-top:10px;text-align:center}ul.circle-list li.circle{border:1px solid #d8d8d8;border-radius:50%;cursor:pointer;display:inline-block;height:10px;width:10px}ul.circle-list li.circle.fill{background:#d8d8d8}ul.circle-list li.circle:not(:last-child){margin-right:6px}.hide{display:none}.category-breadcrumb{font-size:16px}.link-color{color:#4d7ea8}.account-content .account-layout .bottom-toolbar .pagination a.page-item,a.unset{color:unset!important;text-decoration:none!important}a.active-hover:hover{color:#4d7ea8!important;text-decoration:underline!important}a.remove-decoration,a.remove-decoration:active,a.remove-decoration:focus,a.remove-decoration:hover{text-decoration:none!important}.dropdown-icon:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;content:"";display:inline-block;margin-left:1rem;vertical-align:middle}.disable-box-shadow,.disable-box-shadow:active,.disable-box-shadow:focus,input:focus,select:focus{box-shadow:none!important;-o-box-shadow:0 5px 15px transparent;box-shadow:0 5px 15px transparent;outline:none!important}.control-error{color:#f05153}.mandatory,.required{width:100%}.mandatory:after,.required:after{color:#f05153;content:"*";font-size:16px;margin-left:-1px}a.default{color:rgba(0,0,0,.83)!important;text-decoration:none!important}.VueCarousel{cursor:pointer;width:100%}.VueCarousel .VueCarousel-inner{padding-top:5px}.VueCarousel .VueCarousel-slide:first-of-type .product-card-new{margin-left:5px}.VueCarousel .VueCarousel-navigation .VueCarousel-navigation-prev{left:10px}.VueCarousel .VueCarousel-navigation .VueCarousel-navigation-next{right:12px}.VueCarousel .VueCarousel-navigation span{font-size:32px}.navigation-hide .VueCarousel-navigation,.pagination-hide .VueCarousel-pagination{display:none}.layered-filter-wrapper,.scrollable{-ms-overflow-style:none;max-height:100%;overflow-y:scroll;scrollbar-width:none}.layered-filter-wrapper::-webkit-scrollbar,.scrollable::-webkit-scrollbar{width:0!important}button[disabled]{cursor:not-allowed;opacity:.5}.max-sm-img-dimension{max-height:110px;max-width:110px}.max-sm-img-dimension img{width:100%}.max-width{margin:0 auto!important;width:1440px!important}.styled-select{appearance:none;-moz-appearance:none;-webkit-appearance:none}.styled-select+.select-icon-container{position:relative}.styled-select+.select-icon-container .select-icon{font-size:16px;left:unset;pointer-events:none;position:absolute;right:10px;top:-24px}.down-arrow-container{color:rgba(0,0,0,.83);display:inline-block;position:relative;vertical-align:top}.down-arrow-container .rango-arrow-down{font-size:16px;left:-5px;position:absolute;top:10px}.select-icon{font-size:16px;left:-7px;position:relative;top:5px}.normal-text{color:#141516}.normal-white-text{color:hsla(0,0%,100%,.83)}.display-table{display:table}.display-table .cell{display:table-cell;vertical-align:middle}.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-left-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-right-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-left-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-right-icon,.account-content .sidebar .customer-sidebar .navigation li i.icon,.pagination .page-item.next .angle-left-icon,.pagination .page-item.next .angle-right-icon,.pagination .page-item.previous .angle-left-icon,.pagination .page-item.previous .angle-right-icon,.rango-default{speak:none;-webkit-font-smoothing:antialiased;font-family:Webkul Rango!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.max-height-350{max-height:350px}.border-normal{border:1px solid #dcdcdc}.has-error input,.has-error select,.has-error textarea{border-color:#f05153!important}.modal-parent{background:rgba(0,0,0,.7);height:100%;position:fixed;top:0;width:100%;z-index:1001}.compare-icon,.wishlist-icon{cursor:pointer;display:table;height:38px;margin-left:10px}.compare-icon i,.wishlist-icon i{display:table-cell;vertical-align:middle}.qty-btn,.qty-btn>*{display:inline-block;height:36px}.qty-btn>*{border:1px solid #ccc;line-height:3.5rem;padding:0 10px;vertical-align:top}.qty-btn>:not(:first-child){border-left:none;position:relative}.qty-btn>:nth-child(2){left:-4px}.qty-btn>:nth-child(3){left:-7px}.btn-add-to-cart{background-color:#26a37c!important;border-color:#26a37c!important;border-radius:0!important;color:#fff!important;padding:3px 14px!important}.btn-add-to-cart.large{padding:12px 18px}.btn-add-to-cart .rango-cart-1{padding-right:5px}.accordian .accordian-header{border-bottom:1px solid #d3d3d3;color:#3a3a3a;cursor:pointer;display:inline-block;font-size:18px;padding:20px 0;width:100%}.accordian .accordian-header i.rango-arrow{float:right;font-size:24px}.accordian .accordian-header i.rango-arrow:before{content:""}.accordian .accordian-content{display:none;padding-bottom:20px;width:100%}.accordian.active .accordian-header{border-bottom:0}.accordian.active .accordian-header i.rango-arrow:before{content:""}.accordian.active .accordian-content{border-bottom:1px solid #d3d3d3;display:inline-block}#date-of-birth:after{background-image:url(../images/icon-calendar.svg);content:"";display:inline-block;height:24px;margin-left:-34px;pointer-events:none;position:absolute;top:14%;vertical-align:middle;width:24px}.rtl #date-of-birth:after{left:54px}.review-page-container{padding:20px;position:relative}.review-page-container>div:first-child{height:-webkit-max-content;height:-moz-max-content;height:max-content;position:-webkit-sticky;position:sticky;top:40px}.review-page-container .category-breadcrumb{margin-bottom:30px}.review-page-container h2{font-size:24px;font-weight:600}.review-page-container h3{font-size:20px;font-weight:600}.review-page-container h4{font-size:16px;font-weight:600}.review-page-container .customer-reviews>div.row{display:block;padding-bottom:30px}.review-page-container .submit-btn{font-weight:600}.review-page-container .submit-btn button{padding:10px 15px}.customer-rating .rating-container{padding:30px 0}.customer-rating a{color:#4d7ea8}.customer-rating a:hover{text-decoration:none}.customer-rating .col-lg-6:first-child{border-right:1px solid #ccc}.customer-rating .rating-bar{background-color:#f7f7f9;height:5px;padding:0;position:relative;top:12px}.customer-rating .rating-bar>div{background-color:#111;height:100%;width:0}.account-content .account-layout .bottom-toolbar .pagination .customer-rating .page-item,.cart-details .customer-rating .light.continue-shopping-btn,.customer-rating .account-content .account-layout .bottom-toolbar .pagination .page-item,.customer-rating .cart-details .light.continue-shopping-btn,.customer-rating .theme-btn.light{margin-top:10px}.review-form{width:80%}.review-form>div{padding-top:30px}.review-form>div label{display:block;font-size:14px;font-weight:500}.review-form>div input,.review-form>div textarea{border:1px solid #ccc;border-radius:1px;font-size:16px;padding:5px 16px;resize:none;width:100%}.filters-container{margin:20px 0}.filters-container .toolbar-wrapper>div{display:inline-block;margin:0 20px 0 0}.filters-container .toolbar-wrapper>div label{font-weight:500;margin-right:10px}.filters-container .toolbar-wrapper>div select{padding:6px 16px}.filters-container .toolbar-wrapper>div .down-icon-position{background-color:#fff;pointer-events:none}.filters-container .toolbar-wrapper>div:not(:first-child){vertical-align:super}.filters-container .toolbar-wrapper .limiter:after{margin-left:10px}.view-mode{margin-bottom:20px}.view-mode .rango-view-grid-container{color:rgba(0,0,0,.83);cursor:pointer;display:inline-block;height:36px;padding:6px 0 0 5px;width:36px}.view-mode .rango-view-grid-container.active{background-color:#26a37c;color:#fff}.view-mode .rango-view-list-container{color:rgba(0,0,0,.83);cursor:pointer;display:inline-block;height:36px;padding:6px 0 0 5px;width:36px}.view-mode .rango-view-list-container.active{background-color:#26a37c;color:#fff}.modal-container{-webkit-animation:jelly .5s ease-in-out;animation:jelly .5s ease-in-out;-webkit-animation:fade-in-white .3s ease-in-out;animation:fade-in-white .3s ease-in-out;background:#fff;border-radius:5px;box-shadow:0 15px 25px 0 rgba(0,0,0,.03),0 20px 45px 5px rgba(0,0,0,.2);font-size:14px;left:50%;margin-left:-300px;max-height:80%;max-width:80%;overflow-y:auto;position:fixed;top:100px;width:600px;z-index:11}.modal-container .modal-header h3{color:rgba(0,0,0,.83);display:inline-block;font-size:20px;margin:0}.modal-container .modal-header .icon{cursor:pointer}.modal-container .modal-header .icon.remove-icon{background-image:url(../images/Icon-remove.svg);height:24px;width:24px}.modal-container .modal-body{padding:20px}.modal-container .modal-body .control-group .control{width:100%}.product-card-new{border:none!important;height:385px;margin:0 5px 10px 10px;width:12rem}.product-card-new .category-product-image-container{height:190px;margin:0 auto;position:relative}.product-card-new .category-product-image-container img{max-height:100%;max-width:100%}.product-card-new .product-image-container{max-height:190px;position:relative}.product-card-new .product-image-container img{max-height:190px;min-height:190px;width:100%}.product-card-new .card-current-price{font-size:18px}.product-card-new .product-rating .stars{display:inline-block}.product-card-new .product-rating span{font-size:14px;vertical-align:middle}.product-card-new .product-rating .material-icons{font-size:16px}.product-card-new .card-body{cursor:default}.product-card-new .card-body>div:last-child{margin-top:10px}.product-card-new .card-body .product-name,.product-card-new .card-body .product-rating{margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:15rem}.product-card-new .card-body .product-price{margin-bottom:15px}.product-card-new .sticker{display:block}.product-card-new .card-body .compare-icon,.product-card-new .card-body .wishlist-icon{display:none;left:0;margin-left:5px;margin-right:5px;position:absolute;top:10px}.product-card-new .card-body .compare-icon{left:unset;right:0}.product-card-new .card-body .add-to-cart-btn{position:relative;width:100%}.product-card-new .card-body .add-to-cart-btn .btn-add-to-cart{max-width:140px;max-width:100%!important;width:100%}.carousel-products.with-recent-viewed .product-card-new .card-body .add-to-cart-btn .btn-add-to-cart,.product-card-new .card-body .add-to-cart-btn .btn-add-to-cart.small-padding,.product-card-new .card-body .add-to-cart-btn .carousel-products.with-recent-viewed .btn-add-to-cart{max-width:130px}.quick-view-btn-container{bottom:10px;display:none;left:-20px;position:absolute;width:100%}.quick-view-btn-container span{color:#fff;font-size:16px;left:32%;position:absolute;top:-28px;z-index:1}.quick-view-btn-container button{background-color:#0d2438;border:none;color:#fff;font-size:16px;left:30%;opacity:.8;padding:5px 10px 7px 24px;position:absolute;top:-36px}.product-card-new:hover #quick-view-btn-container{display:block}.product-card-new:hover .category-product-image-container,.product-card-new:hover .product-image-container{overflow:hidden}.product-card-new:hover .category-product-image-container img,.product-card-new:hover .product-image-container img{transform:scale(1.05);transition:all .5s}.product-card-new:hover .compare-icon,.product-card-new:hover .wishlist-icon{display:block}.product-card-new:hover .sticker{display:none}.lg-card-container:hover .product-image{overflow:hidden}.lg-card-container:hover .product-image img{transform:scale(1.05);transition:all .5s}.quantity label{float:left;padding:5px 15px 10px 0}.quantity .input-btn-group button{background:transparent;border:1px solid #dcdcdc;height:38px;padding:7px;text-align:center}.quantity .input-btn-group button.decrease{border-right:0}.quantity .input-btn-group button.increase{border-left:0}.quantity .input-btn-group button:active,.quantity .input-btn-group button:focus,.quantity .input-btn-group button:hover{outline:none}.quantity .input-btn-group button .rango-minus,.quantity .input-btn-group button .rango-plus{font-size:20px;vertical-align:middle}.quantity .input-btn-group input{border:1px solid #dcdcdc;border-left:0;border-right:0;font-size:16px;font-weight:600;height:38px;margin-left:-5px;margin-right:-5px;max-width:50px;text-align:center;vertical-align:top}.quantity.has-error button{border-color:#fc6868;color:#fc6868}.quantity .control-error{display:block}.form-container .container{margin:0 auto;padding-top:30px;width:65%}.form-container .container .heading{display:inline-block;margin-bottom:28px;width:100%}.form-container .container .heading h2{display:inline-block;line-height:4rem}.form-container .container .heading .btn-new-customer{float:right;font-size:16px}.form-container .container .body{border:1px solid #ccc;font-size:16px;margin-bottom:60px;padding:35px 55px}.form-container .container .body .form-header{margin-bottom:20px}.form-container .container .body form>div{padding-bottom:20px}.form-container .back-button{float:right}.container-right>.recently-viewed{padding-top:20px}.rango-star{cursor:default}.customer-options{float:right;padding:20px;top:40px;width:200px!important}.customer-options .customer-session{padding:10px 20px 0}.customer-options .customer-session label{color:#9e9e9e;font-size:18px;text-transform:uppercase}.customer-options li{height:unset!important;padding:3px 0}.customer-options li a{display:block;padding:0 20px!important}.customer-options a{font-size:16px}.cart-btn-collection button[type=button].btn-secondary{background-color:#fff;border:none;color:#111;font-size:16px}.cart-btn-collection button[type=button].btn-secondary :hover{background-color:#fff!important;color:#111!important}.cart-btn-collection button[type=button].btn-secondary :active,.cart-btn-collection button[type=button].btn-secondary :focus{box-shadow:none;outline:none}.cart-btn-collection button[type=button].btn-secondary #cart-count{background:#21a179;border-radius:50%;color:#fff;left:-20px;min-width:20px;padding:4px;position:relative;top:-15px}.dropdown-icon-custom:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;color:#000;content:"";display:inline-block;font-size:16px;margin-left:1rem;position:relative;top:-5px;vertical-align:middle}#cart-modal-content{border-top:4px solid #26a37c;position:absolute;right:0;top:40px;width:350px;z-index:100}#cart-modal-content .close{padding:0;position:relative;right:15px;top:12px}#cart-modal-content .mini-cart-container{font-size:14px;height:100%;max-height:200px;overflow-y:scroll;padding:10px 15px 0 20px;width:100%}#cart-modal-content .small-card-container{margin:0;padding:0;width:100%}#cart-modal-content .small-card-container .product-image-container{border:1px solid #ececec;margin:10px 10px 10px 0}#cart-modal-content .small-card-container label{float:left;margin-top:7px}#cart-modal-content .small-card-container input{border:1px solid #ececec;font-weight:500;height:36px;text-align:center;width:40px}#cart-modal-content .small-card-container .card-total-price{float:right}#cart-modal-content .small-card-container .remove-item{background:#111;border-radius:50%;color:#fff;left:-10px;padding:0 4px;position:absolute;top:-10px}#cart-modal-content .small-card-container .remove-item .rango-close{font-size:12px;font-weight:600;padding:0}#cart-modal-content .small-card-container:hover{box-shadow:none}#cart-modal-content .modal-footer{padding-right:15px}.cart-details{padding:40px 0}.cart-details h1{margin-bottom:30px}.cart-details h2{margin-bottom:25px}.cart-details .cart-details-header .cart-header{border-bottom:2px solid #e5e5e5;margin-bottom:20px;max-height:45px;padding-bottom:20px!important}.cart-details .cart-details-header .cart-header>h3{font-size:16px;font-weight:600}.cart-details .cart-content{padding:0}.cart-details .cart-content .product-quantity .quantity{display:inline-block;float:right;width:unset}.cart-details .cart-content .product-quantity .quantity label{display:none!important}.cart-details .cart-content .destop-cart-view{display:block}.cart-details .cart-content .mobile-view{display:none}.cart-details .cart-content .cart-item-list>.row{margin-bottom:40px}.cart-details .cart-content .cart-item-list>.row:last-child{border-bottom:2px solid #e5e5e5;margin-bottom:20px;padding-bottom:20px}.cart-details .cart-content .cart-item-list .product-image-container{max-height:110px;max-width:110px;padding:0}.cart-details .cart-content .cart-item-list .wishlist-icon{display:inline;margin:0}.cart-details .cart-content .product-details-content{padding-left:20px}.cart-details .cart-content .product-details-content .row{font-size:16px}.cart-details .cart-content .product-details-content .row .card-current-price{font-size:18px}.cart-details .cart-content .product-details-content .row>a{line-height:20px}.cart-details .cart-content .product-details-content .item-price{font-size:18px;font-weight:600;margin-top:12px!important}.cart-details .cart-content .product-details-content .item-actions{margin-top:12px!important}.cart-details .cart-content .product-details-content .item-actions .d-inline-block{float:left}.cart-details .cart-content .product-details-content .item-actions .d-inline-block:first-child{margin-right:30px}.cart-details .cart-content .product-details-content .item-actions .d-inline-block .material-icons{float:left;margin-left:-2px;margin-right:5px}.cart-details .cart-content .product-details-content .item-actions .d-inline-block .rango-delete{margin-left:-2px}.cart-details .cart-content .product-quantity .quantity{position:relative;top:-8px}.cart-details .cart-content .misc{display:flex;justify-content:space-between}.cart-details .continue-shopping-btn{margin-left:15px;margin-top:20px;max-width:156px}.cart-details .coupon-container{margin-top:20px}.cart-details .coupon-container .control-error{padding:10px 0}@media only screen and (max-width:375px){.cart-details .cart-content .misc{flex-direction:column}.cart-details .cart-content .misc button{margin-top:10px}}.account-content{min-height:100vh}.account-content ol.breadcrumb{background-color:transparent;list-style:none;margin:0 0 2;padding:0}.account-content ol.breadcrumb li.breadcrumb-item{display:inline-block}.account-content ol.breadcrumb li.breadcrumb-item+.breadcrumb-item:before{content:"/";display:inline-block;padding-left:5px;padding-right:5px}.account-content .sidebar{border-right:1px solid #e5e5e5;height:100%}.account-content .sidebar .customer-sidebar .account-details{padding:25px 20px;text-align:center}.account-content .sidebar .customer-sidebar .account-details .customer-name{display:inline-block;font-size:24px;height:60px;margin:0 auto 5px;width:60px}.account-content .sidebar .customer-sidebar .account-details .customer-name-text{color:rgba(0,0,0,.83)}.account-content .sidebar .customer-sidebar .account-details .customer-email{color:#9e9e9e}.account-content .sidebar .customer-sidebar .navigation,.account-content .sidebar .customer-sidebar .navigation li{width:100%}.account-content .sidebar .customer-sidebar .navigation li.active,.account-content .sidebar .customer-sidebar .navigation li:hover{background-color:#ececec;color:#28557b}.account-content .sidebar .customer-sidebar .navigation li i.icon{font-size:18px;padding-right:5px}.account-content .sidebar .customer-sidebar .navigation li i.icon.profile:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.address:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.reviews:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.wishlist:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.orders:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.downloadables:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.compare:before{content:""}.account-content .sidebar .customer-sidebar .navigation li a{display:block;padding:10px 15px}.account-content .sidebar .customer-sidebar .navigation li:last-child{margin-bottom:0}.account-content .account-layout{color:rgba(0,0,0,.83);padding:15px 20px 60px}.account-content .account-layout .account-table-content.profile-page-content .table{width:100%!important}.account-content .account-layout .table table tr{border:1px solid #ccc;height:auto!important}.account-content .account-layout .table table tr td{border-right:1px solid #ccc!important;border-top:none;width:auto}.account-content .account-layout.right{padding-left:250px!important}.account-content .account-layout .account-head{display:flex;justify-content:space-between;margin-bottom:20px}.account-content .account-layout .account-heading{font-size:24px;font-weight:600}.account-content .account-layout .account-table-content .control-group,.account-content .account-layout .account-table-content>.row{margin-bottom:30px}.account-content .account-layout .account-table-content label{font-weight:500}.account-content .account-layout .account-table-content input,.account-content .account-layout .account-table-content select,.account-content .account-layout .account-table-content textarea{background:#fff;border:1px solid #ccc;border-radius:1px;font-size:16px;padding:5px 16px;resize:none;width:100%}.account-content .account-layout .account-table-content input[type=search]{padding-left:35px}.account-content .account-layout .account-table-content input:active,.account-content .account-layout .account-table-content input:focus,.account-content .account-layout .account-table-content select:active,.account-content .account-layout .account-table-content select:focus,.account-content .account-layout .account-table-content textarea:active,.account-content .account-layout .account-table-content textarea:focus{border-color:#26a37c}.account-content .account-layout .account-table-content .address-holder{margin-top:30px}.account-content .account-layout .account-table-content .address-holder>div{margin:5px 0;padding-left:0}.account-content .account-layout .account-table-content .address-holder .card{height:100%}.account-content .account-layout .account-table-content .account-items-list{margin-bottom:40px}.account-content .account-layout .account-table-content.profile-page-content .table{margin-bottom:15px;padding:0;width:800px}.account-content .account-layout .account-table-content.profile-page-content .table>table{border:1px solid rgba(0,0,0,.125);color:#5e5e5e;width:100%}.account-content .account-layout .account-table-content.profile-page-content .table td{border:unset;padding:6px 12px}.account-content .account-layout .account-table-content .image-wrapper{display:inline-block;margin-bottom:20px;margin-top:10px;width:100%}.account-content .account-layout .account-table-content .image-wrapper .image-item{background:#f8f9fa;background-image:url(/vendor/webkul/ui/assets/images/placeholder-icon.svg);background-position:50%;background-repeat:no-repeat;border-radius:3px;display:inline-block;height:200px;margin-bottom:20px;margin-right:20px;position:relative;width:200px}.account-content .account-layout .account-table-content .image-wrapper .image-item .remove-image{background-image:linear-gradient(-180deg,rgba(0,0,0,.08),rgba(0,0,0,.24));border-radius:0 0 4px 4px;bottom:0;color:#fff;cursor:pointer;left:0;margin-bottom:0;margin-right:20px;padding:10px;position:absolute;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.24);width:100%}.account-content .account-layout .account-table-content .image-wrapper .image-item input{display:none}.account-content .account-layout .account-table-content .image-wrapper .image-item img.preview{height:100%;width:100%}.account-content .account-layout .account-items-list.wishlist-container{margin:0 auto;width:100%}.account-content .account-layout .account-items-list.wishlist-container .product-card-new{width:19rem}.account-content .account-layout .reviews-container>.row{margin-bottom:40px}.account-content .account-layout .bottom-toolbar .pagination{margin:0}.account-content .account-layout .bottom-toolbar .pagination a:not([href]).next,.account-content .account-layout .bottom-toolbar .pagination a:not([href]).previous{color:#9e9e9e!important;cursor:not-allowed}.account-content .account-layout .bottom-toolbar .pagination .page-item{border:none!important;box-shadow:unset!important;-webkit-box-shadow:unset!important}.account-content .account-layout .bottom-toolbar .pagination .page-item.active{border:1px solid #26a37c;color:#26a37c!important}.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-left-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-right-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-left-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-right-icon{background:unset;font-size:24px;margin:0;text-align:center}.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-right-icon:before{content:""}.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-left-icon:before{content:""}.account-content .account-layout .sale-container{font-size:16px}.account-content .account-layout .sale-container .tabs ul{font-size:20px;font-weight:600;list-style-type:none}.account-content .account-layout .sale-container .tabs ul li{border-bottom:2px solid transparent;cursor:pointer;display:inline-block;padding:10px 15px}.account-content .account-layout .sale-container .tabs ul li.active{border-bottom:2px solid #26a37c;cursor:default}.account-content .account-layout .sale-container .tabs-content .sale-section{border-bottom:1px solid #ccc;padding:20px 0 10px}.account-content .account-layout .sale-container .tabs-content .sale-section .section-title{color:#9e9e9e;font-size:18px;font-weight:600;padding-bottom:10px}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content label+span{color:#9e9e9e;font-weight:600}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content .totals{display:inline-block;width:100%}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content .totals .sale-summary{float:right}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content .totals .sale-summary tbody tr td:first-child{width:200px}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content .table table{width:100%}.account-content .account-layout .sale-container .order-box-container{padding:10px 0}.account-content .account-layout .sale-container .order-box-container .box{display:inline-block;vertical-align:top;width:calc(25% - 5px)}.account-content .account-layout .sale-container .order-box-container .box .box-title{color:#9e9e9e;font-size:18px;font-weight:600;padding:10px 0}.account-content .select-icon{font-size:22px;left:95%;position:relative;top:-28px}#alert-container{font-size:16px;position:fixed;right:15px;top:50px;z-index:100}#alert-container .alert{max-height:100px!important;max-width:400px!important;min-height:45px!important}#alert-container .alert.alert-dismissible .close{font-size:23px;padding:.3rem 1.25rem}.wishlist-icon{vertical-align:middle}.wishlist-icon i{color:#111}.checkout-process{padding:40px 20px}.checkout-process .accordian-header h3{margin-bottom:0!important}.checkout-process .coupon-container{margin-top:20px}.checkout-process h1{font-weight:600;margin-bottom:30px}.checkout-process .layered-filter-wrapper,.checkout-process .scrollable{padding-top:25px}.checkout-process .order-summary-container{top:75px}.account-content .account-layout .bottom-toolbar .pagination .checkout-process .order-summary-container .page-item,.cart-details .checkout-process .order-summary-container .continue-shopping-btn,.checkout-process .order-summary-container .account-content .account-layout .bottom-toolbar .pagination .page-item,.checkout-process .order-summary-container .cart-details .continue-shopping-btn,.checkout-process .order-summary-container .theme-btn,.checkout-process .order-summary-container.bottom h3{display:none}.checkout-process input[type=radio]{transform:scale(1.3);-ms-transform:scale(1.3);-webkit-transform:scale(1.3)}.checkout-process .styled-select{cursor:pointer}.checkout-process .styled-select+.select-icon{font-size:20px;left:92%;position:absolute;top:55%}.checkout-process .coupon-container input{max-width:200px}.checkout-process .coupon-container button{margin:20px 0 30px}.checkout-process .coupon-container .applied-coupon-details{font-size:16px;margin-bottom:10px}.checkout-process .coupon-container .applied-coupon-details label:first-of-type{color:#26a37c}.checkout-process .coupon-container .rango-close{cursor:pointer;margin-left:5px}.address-container .address-holder{margin-top:15px}.address-container .address-holder>div{margin:5px 0;padding-left:0}.address-container .address-holder .card{height:100%}.address-container .address-holder .card h5{font-size:14px}.address-container .address-holder .card .add-address-button{display:table;height:100%;text-align:center}.address-container .address-holder .card .add-address-button>div{display:table-cell;vertical-align:middle}.address-container .address-holder .card .add-address-button>div span{vertical-align:super}.custom-form .form-field{margin-bottom:30px;padding:0}.custom-form label{font-size:16px;font-weight:500;margin-bottom:5px}.custom-form input[type=password],.custom-form input[type=search],.custom-form input[type=text],.custom-form select{background:#fff;border:1px solid #ccc;border-radius:1px;font-size:16px;height:36px;padding:5px 16px;resize:none;width:100%}.custom-form input[type=checkbox]{position:relative;top:3px}.custom-form input:active,.custom-form input:focus,.custom-form select:active,.custom-form select:focus{border-color:#26a37c}.payment-form .payment-methods>.row,.payment-form .shipping-methods>.row,.payment-form h3,.review-checkout-conainer .payment-methods>.row,.review-checkout-conainer .shipping-methods>.row,.review-checkout-conainer h3,.shipping-form .payment-methods>.row,.shipping-form .shipping-methods>.row,.shipping-form h3{margin-bottom:20px}.payment-form .payment-methods .instructions,.payment-form .shipping-methods .instructions,.review-checkout-conainer .payment-methods .instructions,.review-checkout-conainer .shipping-methods .instructions,.shipping-form .payment-methods .instructions,.shipping-form .shipping-methods .instructions{margin-left:-13px;margin-top:5px}.payment-form .payment-methods .instructions label,.payment-form .shipping-methods .instructions label,.review-checkout-conainer .payment-methods .instructions label,.review-checkout-conainer .shipping-methods .instructions label,.shipping-form .payment-methods .instructions label,.shipping-form .shipping-methods .instructions label{font-size:14px;font-weight:600}.payment-form .payment-methods .instructions p,.payment-form .shipping-methods .instructions p,.review-checkout-conainer .payment-methods .instructions p,.review-checkout-conainer .shipping-methods .instructions p,.shipping-form .payment-methods .instructions p,.shipping-form .shipping-methods .instructions p{color:#777;font-size:14px;font-style:italic;margin:0}.payment-form .address-summary li,.review-checkout-conainer .address-summary li,.shipping-form .address-summary li{display:inline-block}.payment-form .cart-item-list,.review-checkout-conainer .cart-item-list,.shipping-form .cart-item-list{border-bottom:1px solid #e5e5e5;padding:20px 0}.payment-form .cart-item-list h4,.review-checkout-conainer .cart-item-list h4,.shipping-form .cart-item-list h4{border-bottom:1px solid #e5e5e5;margin-bottom:20px!important;padding-bottom:20px}.payment-form .cart-item-list>.row:first-child,.review-checkout-conainer .cart-item-list>.row:first-child,.shipping-form .cart-item-list>.row:first-child{margin-top:50px}.payment-form .cart-item-list>.row,.review-checkout-conainer .cart-item-list>.row,.shipping-form .cart-item-list>.row{margin-bottom:20px}.payment-form .cart-details,.review-checkout-conainer .cart-details,.shipping-form .cart-details{padding:40px 0}.order-summary-container{height:-webkit-max-content;height:-moz-max-content;height:max-content;max-width:500px!important;padding-top:25px;position:-webkit-sticky!important;position:sticky!important;top:50px}.order-summary-container>div{width:100%}.order-summary-container .order-summary{border:1px solid #e5e5e5;padding:25px 30px}.order-summary-container .order-summary>h3{margin-bottom:20px}.order-summary-container .order-summary>.row:not(:last-child){margin-bottom:10px}.order-summary-container .order-summary #grand-total-detail{border-top:1px solid #e5e5e5;margin-bottom:25px;margin-top:15px;padding-top:15px}.order-success-content{font-size:16px;padding:40px 20px}.search-result-status{align-items:center;display:flex;flex-direction:column;justify-content:center;width:100%}#address-section .form-header h3{margin-bottom:20px}.attached-products-wrapper{margin-top:20px}#related-products-carousel .product-card-new:first-child{margin-left:0!important}.price-label{margin-right:6px}.product-price{display:inline-block}.product-price .price-label{margin-right:6px}.product-price .regular-price{display:inline-block;font-size:14px;font-weight:500;text-decoration:line-through}.product-price .special-price{display:inline-block;float:left;margin-right:10px}.product-price .price-from .bundle-regular-price{font-size:12px!important;font-weight:500;margin-right:10px;text-decoration:line-through}.product-price .price-from .bundle-special-price{font-size:15px!important;font-weight:600}.product-price .price-from .bundle-to{display:block;font-size:15px!important;font-weight:500;margin-bottom:1px;margin-top:1px}.product-price span.price-label{font-size:14px!important;font-weight:500!important}.product-price span.final-price{font-size:18px;font-weight:600}.sticker{border:none;border-radius:12px;color:#fff;display:none;font-size:14px;font-weight:600;left:8px;padding:2px 10px;position:absolute;top:8px}.sticker.sale{background-color:#f05153;padding:2px 14px}.sticker.new{background-color:#26a37c;display:block}#app{min-height:65vh;position:relative}.main-container-wrapper .sticky-header{background:#fff;height:56px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.main-container-wrapper .sticky-header.header-shadow{box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.search-container{padding:30px 20px}.search-container .lg-card-container.list-card{margin:0 15px}.search-container :first-child{margin-top:0}.method-sticker{background-color:#141516;border-radius:1px;color:#cfcfd0;display:inline-block;font-size:13px;margin-bottom:3px;margin-right:3px;padding:4px 8px;text-align:center}.sidebar{width:230px;z-index:1000000}.sidebar .category-content .category-title{font-weight:600;position:relative;top:-1px}.sidebar .category-content .rango-arrow-right{position:relative;top:4px}.sidebar .category-content .category-icon{display:inline-block;height:20px;padding-right:5px;width:25px}.sidebar .category-content .category-icon img{height:100%;vertical-align:text-top;width:100%}.sidebar li:hover>a>span{color:#28557b}.sidebar .sub-categories{display:none}.sidebar .sub-categories .category{padding:5px 0 4px 15px}.sidebar .sub-categories .category+.nested{color:rgba(0,0,0,.83)}.sidebar .sub-categories .category+.nested li a{padding-top:0}.sidebar .sub-categories .category+.nested li a .category-title{font-weight:500;padding-left:28px}.sidebar .sub-categories .category .category-title{vertical-align:top}.category-list-container{background:#fff;box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);padding:0!important;position:absolute!important;z-index:10}.category-list-container .category{display:inline-block;line-height:2.5rem;width:100%}.category-list-container .category span{position:relative;top:-4px}.category-list-container li a{padding:7px 0 5px 15px}.category-list-container li a:hover{background:#ececec}.category-list-container .sub-categories{background:#fff;border-left:1px solid #ccc;box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);height:100%;left:100%;min-height:330px;overflow-y:scroll;padding-top:10px;position:absolute;top:-1px;z-index:100}.category-list-container .sub-categories li:last-of-type{margin-bottom:10px}#sidebar-level-0{border-top:1px solid #ccc;display:none;z-index:100000}.grouped-product-container .grouped-product-list ul li{display:inline-block;font-size:18px;margin-bottom:10px;width:100%}.grouped-product-container .grouped-product-list ul li:last-child{margin-bottom:0}.grouped-product-container .grouped-product-list ul li:first-child span{font-weight:600}.grouped-product-container .grouped-product-list ul li:first-child span:last-child{float:right;text-align:left;width:50px}.grouped-product-container .grouped-product-list ul li .name{display:inline-block;font-size:16px;vertical-align:middle}.grouped-product-container .grouped-product-list ul li .qty{float:right}.grouped-product-container .grouped-product-list ul li .qty .control-group{border-top:0;height:45px;margin-bottom:0;max-width:none;padding-top:0;text-align:center;width:auto}.grouped-product-container .grouped-product-list ul li .qty .control-group label{display:none}.grouped-product-container .grouped-product-list ul li .qty .control-group .control{line-height:38px;text-align:center;width:60px}.grouped-product-container .grouped-product-list ul li .qty .control-group>*{height:100%}.bundle-options-wrapper .bundle-option-list{border-top:1px solid hsla(0,0%,64%,.2);padding:15px 0}.bundle-options-wrapper .bundle-option-list h3{color:#242424;font-size:16px;margin:0}.bundle-options-wrapper .bundle-option-list .bundle-option-item{border-bottom:1px solid hsla(0,0%,64%,.2);display:inline-block;padding:15px 0;width:100%}.bundle-options-wrapper .bundle-option-list .bundle-option-item:last-child{border-bottom:0;padding-bottom:0}.bundle-options-wrapper .bundle-option-list .bundle-option-item .control-group{color:#5e5e5e;margin-bottom:0}.bundle-options-wrapper .bundle-option-list .bundle-option-item .control-group label{color:#242424}.bundle-options-wrapper .bundle-option-list .bundle-option-item .control-group .control{color:#5e5e5e}.bundle-options-wrapper .bundle-option-list .bundle-option-item .quantity{border-top:0}.bundle-options-wrapper .bundle-option-list .bundle-option-item .control-error{float:left;width:100%}.bundle-options-wrapper .bundle-option-list .bundle-option-item.has-error button{border-color:#fc6868;color:#fc6868}.bundle-options-wrapper .bundle-summary{border-top:1px solid hsla(0,0%,64%,.2);padding:15px 0}.bundle-options-wrapper .bundle-summary h3{color:#242424;font-size:16px;margin:0}.bundle-options-wrapper .bundle-summary .quantity{border-top:0}.bundle-options-wrapper .bundle-summary .bundle-price{color:#ff6472;font-size:24px;font-weight:600;margin-top:10px}.bundle-options-wrapper .bundle-summary ul.bundle-items li{margin-bottom:20px}.bundle-options-wrapper .bundle-summary ul.bundle-items li:last-child{margin-bottom:0}.bundle-options-wrapper .bundle-summary ul.bundle-items li .selected-products{color:#5e5e5e}.category-container .grid-card,.search-container .grid-card{width:15rem}.downloadable-container .sample-list{padding:5px 0}.downloadable-container .sample-list h3{font-size:16px;margin-top:0}.downloadable-container .sample-list ul li{margin-bottom:5px}.downloadable-container .sample-list ul li:last-child{margin-bottom:0}.downloadable-container .link-list{padding:5px 0}.downloadable-container .link-list h3{font-size:16px;margin-top:0}.downloadable-container .link-list h3.required:after{color:#f05153;content:"*";font-size:16px;margin-left:-1px}.downloadable-container .link-list ul li{margin-bottom:15px}.downloadable-container .link-list ul li:last-child{margin-bottom:0}.downloadable-container .link-list ul li .checkbox input[type=checkbox]{height:15px!important;margin-left:-10px;width:15px!important}.downloadable-container .link-list ul li a{float:right;margin-top:3px}.category-container{margin-left:15px;min-height:670px;padding:40px 15px!important}.category-container .hero-image{display:inline-block}.category-container .hero-image img{height:100%;margin-bottom:30px;max-height:500px;width:100%}.vue-slider .vue-slider-rail{background-color:#ccc}.vue-slider .vue-slider-dot-handle{background-color:#fff;border-radius:50%;box-shadow:.5px .5px 2px 1px rgba(0,0,0,.32);height:100%;width:100%}.vue-slider .vue-slider-dot-tooltip-inner,.vue-slider .vue-slider-dot-tooltip-text{background-color:#26a37c!important;border-color:#26a37c!important}.vue-slider .vue-slider-dot-tooltip-text{border-radius:5px;color:#fff;display:block;font-size:14px;min-width:20px;padding:2px 5px;text-align:center;white-space:nowrap}.vue-slider .vue-slider-dot-tooltip-text:before{border:6px solid transparent\0;border-top-color:inherit;bottom:-10px;content:"";height:0;left:50%;position:absolute;transform:translate(-50%);width:0}.vue-slider .vue-slider-process{background-color:#26a37c!important}.full-content-wrapper>.container-fluid{margin-bottom:60px!important;padding:0!important}.full-content-wrapper>.container-fluid>.row{padding:0 15px!important}.full-content-wrapper div>.container-fluid,.full-content-wrapper p>.container-fluid{margin-bottom:60px!important;padding:0!important}.full-content-wrapper div>.container-fluid>.row,.full-content-wrapper p>.container-fluid>.row{padding:0 15px!important}.slides-container{position:relative}.slides-container .VueCarousel-pagination{display:none}.slides-container .VueCarousel-pagination button:active,.slides-container .VueCarousel-pagination button:focus{box-shadow:none;outline:none}.slides-container .VueCarousel-pagination .VueCarousel-dot{padding:5px!important}.slides-container .VueCarousel-dot--active{background-color:#26a37c!important}.slides-container .VueCarousel .VueCarousel-inner{padding-top:0}.slides-container .VueCarousel .VueCarousel-slide{position:relative}.slides-container .VueCarousel .VueCarousel-slide .show-content{display:table;height:100%;left:0;position:absolute;text-align:center;top:0;width:100%}.slides-container .VueCarousel .VueCarousel-slide .show-content p{display:table-cell;vertical-align:middle}.filter-attributes-item{border-bottom:1px solid #ccc;margin-bottom:10px}.filter-attributes-item.active .filter-attributes-content{display:block}.filter-attributes-item .filter-input{margin:10px 15px 13px -4px}.filter-attributes-item .filter-input input[type=text]{background-color:#fff;border:1px solid #26a37c;text-align:center;width:30%}.filter-attributes-item input[type=checkbox]+span{margin-left:10px!important}.filter-attributes-content{display:none;margin-left:7px}.layered-filter-wrapper{margin-bottom:42px;max-height:670px;overflow-x:hidden;padding:42px 10px 0}.layered-filter-wrapper .recently-viewed{margin-top:20px}.layered-filter-wrapper .recently-viewed h2{font-size:18px}.selective-div{-webkit-appearance:none;width:150px}.select-icon-margin{margin-left:96px;margin-top:10px}.down-icon-position{position:absolute}.select-icon-show-margin{margin-left:35px;margin-top:10px}.down-arrow-margin{margin-left:75px;margin-top:8px}.vc-header{box-shadow:0 1px 3px rgba(0,0,0,.16),0 1px 3px rgba(0,0,0,.23);margin:0!important;padding:0!important;z-index:10}.new-products-recent{position:relative;top:-44px}.recently-viewed-products-wrapper{padding:2px}.recently-viewed-products-wrapper .price-from .bundle-regular-price{display:none}.recently-viewed-products-wrapper .price-from .bundle-special-price{font-size:15px!important;font-weight:600}.recently-viewed-products-wrapper .price-from .bundle-to{display:unset;font-size:15px!important;font-weight:500;margin:0 2px}.pagination{width:100%}.pagination .page-item{padding:0 10px}.pagination .page-item.active{border-bottom:2px solid #26a37c;color:#26a37c!important;font-weight:600}.pagination .page-item.next .angle-left-icon,.pagination .page-item.next .angle-right-icon,.pagination .page-item.previous .angle-left-icon,.pagination .page-item.previous .angle-right-icon{background:unset;font-size:24px;margin:0;text-align:center}.pagination .page-item.next .angle-right-icon:before{content:""}.pagination .page-item.previous .angle-left-icon:before{content:""}.pagination a{color:unset!important;text-decoration:none!important}.pagination a i{font-size:18px;position:relative;top:2px}.pagination .angle-left-icon,.pagination .angle-right-icon{speak:none;-webkit-font-smoothing:antialiased;background:unset;font-family:Webkul Rango!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.pagination .angle-right-icon:before{content:""}.pagination .angle-left-icon:before{content:""}.full-content-wrapper .container-fluid .row.carousel-products-header{padding-right:75px!important}.carousel-products+.recently-viewed{position:relative;top:-40px}.carousel-products .VueCarousel-slide{cursor:default}.carousel-products .VueCarousel-navigation{position:absolute;right:12px;top:-49px}.carousel-products .VueCarousel-navigation .VueCarousel-navigation-button{margin:0!important;padding:0!important;position:unset!important;transform:none!important}.carousel-products .VueCarousel-navigation .VueCarousel-navigation-button span{font-size:24px}.vue-slider{max-width:97%}.profile-update-form{width:800px}.compare-products{cursor:pointer;margin-left:0!important;margin-right:10px!important;overflow-x:auto;padding-bottom:20px;width:100%;word-break:break-word}.compare-products .active{cursor:grabbing;cursor:-webkit-grabbing;transform:scale(1)}.compare-products tr{width:100%}.compare-products td{max-width:250px;min-width:250px;padding:15px;vertical-align:top}.compare-products .header{min-width:150px}.compare-products .image-wrapper{width:100%}.compare-products .stars i{font-size:16px}.compare-products .action{position:relative}.compare-products .action .btn-add-to-cart{white-space:pre-wrap;width:125px!important}.compare-products .action .close-btn{display:inline-block;position:absolute;right:0;top:6px}.compare-products .action .close-btn:hover{font-weight:600}.compare-products .action .compare-icon{display:none}.compare-products .material-icons.cross{cursor:pointer;position:absolute;right:20px;top:5px}.compare-products .wishlist-icon{display:inline-block;position:absolute;right:60px;top:5px}.compare-container .cart-details{padding:unset}.compare-container .cart-details h2{padding:0}.compare-container .compare-products .col,.compare-container .compare-products .col-2{max-width:25%}.compare-products::-webkit-scrollbar{display:none}.compare-products{-ms-overflow-style:none;scrollbar-width:none}.cp-spinner{box-sizing:border-box;display:inline-block;height:48px;left:calc(50% - 24px);margin-top:calc(40% - 24px);position:absolute;width:48px}.overlay-loader{left:50%;margin-left:-24px;margin-top:-24px;position:fixed;top:50%;z-index:11}@media only screen and (max-width:720px){.product-quantity .input-btn-group{display:flex}.cp-spinner{left:50%;margin-left:-24px;margin-top:-24px;top:50%}}@media only screen and (max-width:425px){.cart-details .cart-content .product-quantity{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.cart-details .cart-content .product-quantity .quantity{display:flex;width:100%}.cart-details .cart-content .product-price.col-1{flex:0 0 100%;max-width:100%}.cart-details .cart-content .product-price.col-1 .card-current-price.fw6,.cart-details .cart-content .product-price.col-1 .product-detail .right .info .card-current-price.price,.cart-details .cart-content .product-price.col-1 .product-detail .right .info h2.card-current-price,.cart-details .cart-content .product-price.col-1 .product-detail .right h3.card-current-price,.cart-details .cart-content .product-price.col-1 .product-detail .right h4.card-current-price,.product-detail .right .cart-details .cart-content .product-price.col-1 h3.card-current-price,.product-detail .right .cart-details .cart-content .product-price.col-1 h4.card-current-price,.product-detail .right .info .cart-details .cart-content .product-price.col-1 .card-current-price.price,.product-detail .right .info .cart-details .cart-content .product-price.col-1 h2.card-current-price{float:right}}.cp-round:before{border:6px solid gray;border-radius:50%}.cp-round:after,.cp-round:before{box-sizing:border-box;content:" ";display:inline-block;height:48px;left:0;position:absolute;top:0;width:48px}.cp-round:after{-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;border:6px solid transparent;border-radius:50%;border-top-color:#26a37c}.image-search-container{background:#fff;cursor:pointer;height:24px!important;position:absolute;right:45px;top:9px;z-index:10}.image-search-result{background-color:rgba(0,65,255,.1);border:1px solid #0041ff;border-radius:2px;display:inline-block;margin-bottom:20px;padding:20px;width:100%}.image-search-result .searched-image{float:left}.image-search-result .searched-image img{box-shadow:1px 1px 3px 0 rgba(0,0,0,.32);height:auto;width:150px}.image-search-result .searched-terms{display:inline-block;margin-left:20px}.image-search-result .searched-terms .term-list a{background:#fff;margin-right:10px;margin-top:10px;padding:5px 8px}.filtered-tags{margin-bottom:20px}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}body{scroll-behavior:smooth}body .container-margin{margin:auto 20px}.root-category-menu{border-bottom:1px solid #d8e6ed}.angle-right-icon{background-image:url(../images/Icon-Arrow-Right.svg);float:right;height:20px;margin-right:10px;width:22px}.card-product-image-container{height:300px;max-height:300px;min-height:100px}.card-product-image-container img{height:100%;width:100%}.card-product-image-container .background-image-group{background-position:50%;background-repeat:no-repeat;height:100%;width:100%}.hide-text{display:inline-block;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap;width:100%}.card-bottom-container{margin-top:12px}.card-actual-price{text-decoration:line-through}.card-discount{color:rgba(38,163,124,.83)}.no-border-shadow{border:none!important;box-shadow:none!important;-webkit-box-shadow:none!important}.card-bottom-container .rango-heart{cursor:pointer;float:right;font-size:20px;margin-top:8px}.disable-active:active,.disable-active:focus,header #search-form>:focus{box-shadow:none;outline:none}.container-margin>.container-fluid{margin-bottom:60px}.v-mr-20{margin-right:2rem}.popular-product-categories .active{border-bottom:2px solid;color:#4d7ea8;display:inline-block;padding:0 10px 5px}.popular-product-categories .switch-buttons{position:relative;top:-3px}.align-vertical-super{vertical-align:super}.align-vertical-top{vertical-align:top}.card-sale-btn{top:5px}.star-rating>*{font-size:14px}.advertisement-four-container .offers-ct-panel>.row{padding:0 10px}.advertisement-four-container .offers-ct-panel a:first-child{padding-bottom:15px!important}.advertisement-four-container .offers-ct-panel .offers-ct-top{height:180px}.advertisement-four-container .offers-ct-panel .offers-ct-bottom{height:220px}.advertisement-four-container>.row:first-child{padding:0 10px!important}.advertisement-four-container .col-4:nth-child(2){padding-left:10px;padding-right:10px}.advertisement-four-container img{height:100%;max-height:425px;width:100%}.advertisement-four-container img:first-of-type,.advertisement-four-container img:last-child{padding:0}.advertisement-two-container img{width:100%}.advertisement-three-container img{height:100%}.advertisement-three-container .bottom-container img,.advertisement-three-container .top-container img{height:225px}.advertisement-three-container .bottom-container{padding-top:15px}.recently-viewed-items{padding:0!important}.product-policy-container .card{background:#fff;border:none;box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);padding:20px 10px}.product-policy-container .card .policy{display:table;padding:0 10px}.product-policy-container .card .policy .left{display:inline-block;margin-right:10px}.product-policy-container .card .policy .right{display:table-cell;vertical-align:middle}.product-policy-container .product-policy-wrapper:first-of-type{padding-left:0}.product-policy-container .product-policy-wrapper:last-of-type{padding-right:0}.category-with-custom-options img{height:100%;max-height:100%;max-width:100%;width:100%}.category-with-custom-options .row:first-child{margin-bottom:0}.category-with-custom-options .row:first-child .category-image{height:350px}.category-with-custom-options .row:first-child>div{background-repeat:no-repeat;padding:0}.category-with-custom-options .row:first-child>div:first-child(),.category-with-custom-options .row:first-child>div:nth-child(3){max-height:345px}.category-with-custom-options .row:nth-child(2) .category-image{height:350px}.category-with-custom-options .row:nth-child(2)>div{background-repeat:no-repeat;padding:0}.category-with-custom-options .row:nth-child(2)>div:nth-child(2),.category-with-custom-options .row:nth-child(2)>div:nth-child(4){max-height:345px}.category-with-custom-options .categories-collection{background:#2b2b2b;display:table;height:100%;max-height:345px;min-height:310px;padding-left:36px;width:100%}.category-with-custom-options .categories-collection h2{color:#fff}.category-with-custom-options .categories-collection li{color:hsla(0,0%,100%,.83)}.category-with-custom-options .categories-collection .category-text-content{display:table-cell;height:100%;vertical-align:middle}.hot-categories-container .hot-category-wrapper{padding:0 10px 0 0}.hot-categories-container .hot-category-wrapper .card{border:none;height:100%;padding:20px}.hot-categories-container .hot-category-wrapper .velocity-divide-page .left{height:30px;margin-left:10px;width:30px}.hot-categories-container .hot-category-wrapper .velocity-divide-page .left img{height:100%;width:100%}.hot-categories-container .hot-category-wrapper .velocity-divide-page .right{padding-left:50px!important}.hot-categories-container .hot-category-wrapper:nth-last-child(2){padding:0}.hot-categories-container .hot-category-wrapper:last-child{padding:0 0 0 10px}.hot-categories-container ul,.popular-categories-container ul{line-height:2.5rem}.hot-categories-container li,.popular-categories-container li{font-size:16px}.popular-categories-container .popular-category-wrapper{padding:0 8px}.popular-categories-container .popular-category-wrapper .card{border:none;height:100%}.popular-categories-container .popular-category-wrapper .card .category-image{height:180px}.popular-categories-container .popular-category-wrapper .card .category-image img{height:100%;width:100%}.popular-categories-container .popular-category-wrapper .card-image{background-image:url(../images/man.png);background-size:100% 100%;height:180px}.popular-categories-container .popular-category-wrapper .card-description{padding:10px 20px}.popular-categories-container .popular-category-wrapper:first-child{padding-left:0}.popular-categories-container .popular-category-wrapper:nth-last-child(2){padding-right:0}.popular-categories-container .popular-category-wrapper:last-child{padding-left:16px;padding-right:0}.reviews-container .review-wrapper:first-of-type{padding:0 8px 0 0}.reviews-container .review-wrapper{padding:0 8px}.reviews-container .review-wrapper:nth-last-of-type(2){padding:0 0 0 8px}.reviews-container .review-wrapper:last-of-type{padding:0 0 0 16px}.reviews-container .card{border:none;box-shadow:0 4px 17px 0 rgba(0,0,0,.11);height:100%;padding:20px 15px}.reviews-container .card .customer-info>div{display:inline-block;padding:0}.reviews-container .card .customer-info>div:first-child(){margin-right:10px;width:60px}.reviews-container .card .customer-info>div:last-child(){width:calc(100% - 75px)}.reviews-container .card .review-info{box-shadow:0 4px 17px 0 rgba(0,0,0,.11);height:100%;padding:20px 15px}.reviews-container .card .review-info>div:not(:last-child){margin-bottom:10px}.reviews-container .card .review-info .star-ratings{margin-bottom:5px!important}.main-content-wrapper,.reviews-container .product-info{display:inline-block}.main-content-wrapper>.row.disabled{cursor:not-allowed}.main-content-wrapper .main-category{border-top:1px solid #ccc;padding:10px 15px}.main-content-wrapper .main-category .pl5{vertical-align:top}.main-content-wrapper .content-list{display:inline-block;height:42px;list-style:none;margin:0;position:relative;text-align:left;vertical-align:top;width:100%}.main-content-wrapper .content-list ul{background-color:#4d7ea8;display:inline-flex;height:100%;overflow-x:auto;white-space:nowrap;width:100%}.main-content-wrapper .content-list ul li a{color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:600;letter-spacing:0;padding:11px 15px;position:relative;text-decoration:none}.main-content-wrapper .content-list ul li:hover{background-color:#42719a}.velocity-divide-page{position:relative}.velocity-divide-page .left{position:absolute;width:230px;z-index:1}.velocity-divide-page .right{padding-left:230px!important;width:100%}.container-right{display:inline-block;width:100%}.container-right>:first-child(){width:100%}.home-base{margin-bottom:60px}.broken-image{background-image:url(../images/static/broken-clock.png);height:160px;width:320px}.velocity-icon{background-image:url(../images/static/v-icon.png);height:150px;width:150px}.error-page{padding-top:30vh}.custom-circle{background:#fff;border:2px solid #21a179;border-radius:50%;color:#21a179;display:inline-block;font-size:20px;font:18px josefin sans,arial;height:54px;padding:14px;text-align:center;vertical-align:middle;width:56px}body:after{background:rgba(71,55,78,.8);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s 0s,visibility 0s .3s;width:100%}.cd-quick-view{backface-visibility:hidden;-webkit-backface-visibility:hidden;background-color:#fff;box-shadow:0 0 30px rgba(0,0,0,.2);display:none;left:calc(50% - 350px);margin-bottom:50px;padding:40px;position:absolute;top:100px;transform:translateZ(0);width:700px;will-change:left,top,width;z-index:101}.cd-quick-view .cd-slider li.selected img{display:inline-block!important;height:100%;width:100%}.cd-quick-view .cd-slider img{display:none}.cd-quick-view .close-btn{font-weight:600;position:absolute;right:20px;top:15px}.cd-quick-view .action-buttons{margin-left:118px;padding-top:10px}.cd-quick-view .action-buttons>span{font-size:24px;margin-left:24px}.cd-quick-view .product-actions{display:inline-block}.cd-quick-view .product-actions .compare-icon,.cd-quick-view .product-actions .wishlist-icon{cursor:pointer;display:inline-table;height:38px;margin-left:10px}.cd-quick-view .product-actions .compare-icon i,.cd-quick-view .product-actions .wishlist-icon i{display:table-cell;vertical-align:middle}.cd-quick-view .product-actions .wishlist-icon{float:right}.cd-quick-view .product-actions .add-to-cart-btn{float:left}.cd-quick-view .quick-view-name{font-size:24px;line-height:25px}.cd-quick-view .product-price{margin-top:10px}.cd-quick-view .product-rating{display:table;margin:10px 0}.cd-quick-view .product-rating a,.cd-quick-view .product-rating span{display:table-cell;vertical-align:top}.cd-quick-view .product-gallery{position:-webkit-sticky;position:sticky;top:10px}.cd-quick-view .product-gallery .VueCarousel-pagination button{background-color:#fff!important;border:1px solid #dcdcdc!important;margin:3px!important;padding:0!important}.cd-quick-view .product-gallery .VueCarousel-pagination button.VueCarousel-dot--active{background-color:#dcdcdc!important}.cd-quick-view .product-gallery .VueCarousel-pagination button.VueCarousel-dot--active:focus{outline:none}.cd-quick-view .description-text{overflow:auto;word-break:break-word}.container{max-width:1300px!important}.slider-container{margin-bottom:20px;min-height:400px}.category-page-wrapper,.remove-padding-margin{margin:0!important;padding:0!important;width:100%!important}.demo{border:1px solid red}.quick-addtocart-btn{margin-left:-82px;margin-top:306px}.model-display-block{display:block}.footer{background-color:#fff;display:inline-block;width:100%}.footer .footer-content .newsletter-subscription{background-color:#4d7ea8;color:#fff;padding:10px 130px}.footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field{border:none;color:rgba(0,0,0,.83);font-size:18px;height:38px;max-width:250px;padding:10px 20px;width:300px}.footer .footer-content .newsletter-subscription .newsletter-wrapper button.subscribe-btn{font-size:18px;height:38px;left:-2px;line-height:10px;position:relative}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons{color:#fff;height:100%;padding:20px 0}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons i{cursor:pointer;margin:0}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons .within-circle{background:#4d7ea8;border:1px solid hsla(0,0%,100%,.52);margin-right:2px}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons .within-circle:hover{opacity:.5}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons img{background:#4d7ea8;border:1px solid hsla(0,0%,100%,.52);padding-left:15px;padding-right:15px}.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter{padding:25px 0 30px;text-align:right}.footer .footer-content>.row{background:#30383f;padding:60px 130px}.footer .footer-content>.row .logo{max-height:40px;width:auto}.footer .footer-content>.row .footer-ct-content>div{font-size:14px;line-height:2.5rem;margin:0;padding:0}.footer .footer-content>.row .footer-ct-content>div ul{margin-bottom:0}.footer .footer-content>.row .footer-ct-content>div ul li{margin-bottom:5px}.footer .footer-content>.row .footer-ct-content>div ul li a{color:hsla(0,0%,100%,.83)}.footer .footer-content>.row .footer-rt-content{padding-right:0}.footer .footer-content>.row .footer-rt-content .row>div{display:block;width:100%}.footer .footer-content>.row .footer-rt-content .row .bg-image,.footer .footer-content>.row .footer-rt-content .row .small-card-container .product-image,.small-card-container .footer .footer-content>.row .footer-rt-content .row .product-image{background-position:0;display:inline-block;height:30px;width:42px}.footer .footer-content>.row .footer-rt-content .row .bg-image:not(:last-child),.footer .footer-content>.row .footer-rt-content .row .small-card-container .product-image:not(:last-child),.small-card-container .footer .footer-content>.row .footer-rt-content .row .product-image:not(:last-child){margin-right:3px}.footer .footer-content>.row .footer-rt-content .row .cash{background-image:url(../images/static/cash.png)}.footer .footer-content>.row .footer-rt-content .row .cheque{background-image:url(../images/static/cheque.png);width:57px!important}.footer .footer-content>.row .footer-rt-content .row .visa{background-image:url(../images/static/visa.png)}.footer .footer-content>.row .footer-rt-content .row .master-card{background-image:url(../images/static/master-card.png)}.footer .footer-content>.row .footer-rt-content .row .paypal{background-image:url(../images/static/paypal.png)}.footer .footer-content>.row .footer-rt-content .row .discover{background-image:url(../images/static/discover.png)}.footer .footer-content>.row .footer-rt-content .row:not(:last-child){padding-bottom:20px}.footer .footer-content>.row .footer-rt-content h3{color:hsla(0,0%,100%,.52);font-size:14px}.footer .footer-content .footer-statics .software-description{padding-left:0}.footer .footer-content .footer-statics .software-description p{font-size:14px}.footer .top-brands{padding:30px 130px}.footer .top-brands .top-brands-body ul{display:inline-block;width:85%}.footer .top-brands .top-brands-body ul li{display:inline-block;font-size:16px;margin-left:0;padding:15px 0 0}.footer .footer-copy-right{background:#30383f;color:hsla(0,0%,100%,.83);font-size:16px;height:60px;line-height:6rem;text-align:center;width:100%}.footer .footer-copy-right p{padding:0 20px}.footer .footer-copy-right a{color:unset}.footer .footer-copy-right a:hover{color:#4d7ea8}.product-detail{padding-left:0!important;padding-right:0!important;padding-top:20px}.product-detail,.product-detail .right>div.attributes .attribute{margin-bottom:20px}.product-detail .right>div.attributes .attribute:last-child{margin-bottom:30px}.product-detail .right .category-breadcrumb{margin-left:0;padding:0 15px}.product-detail .right .reviews{vertical-align:top}.product-detail .right .reviews .stars{margin-bottom:-6px;vertical-align:middle}.product-detail .right .reviews>div{display:inline-block;vertical-align:middle}.product-detail .right .info{border-bottom:1px solid #d3d3d3;margin-left:0}.product-detail .right .info div,.product-detail .right .info>h2{padding-left:0}.product-detail .right .info>*{margin-bottom:14px}.product-detail .right .info .availability label{background:#f05153;border:none;color:#fff;cursor:default;font-weight:600;margin:0;padding:1px 8px 3px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.product-detail .right .info .availability label.active{background:#4d7ea8}.product-detail .right .options .box{background-color:#ccc;display:inline-block;height:32px;width:32px}.product-detail .right h3{margin-bottom:0}.product-detail .right .row.reviews .reviews-text{line-height:3rem}.product-detail .right .add-to-cart-btn{padding:0}.product-detail .right .add-to-cart-btn button{padding:9px 15px!important;text-transform:uppercase}.product-detail .right .add-to-cart-btn button span{font-size:16px;top:0}.product-detail .right .product-price{line-height:38px}.product-detail .right .product-price .price-from .bundle-regular-price{font-size:20px!important;font-weight:500;margin-right:10px;text-decoration:line-through}.product-detail .right .product-price .price-from .bundle-special-price{font-size:20px!important;font-weight:600}.product-detail .right .product-price .price-from .bundle-to{display:block;font-size:20px!important;font-weight:500;margin-bottom:1px;margin-top:1px}.product-detail .right .quantity{width:unset}.product-detail .right .form-group label{display:block}.product-detail .right .form-group .radio{margin-right:10px}.product-detail .right .form-group .radio input[type=radio]{margin-left:0;position:static}.product-detail .right .form-group .radio .radio-view{display:none}.product-detail .thumb-list{left:15px;margin-top:10px;overflow:hidden;padding:0;position:relative;z-index:99}.product-detail .thumb-list .arrow{align-items:center;background:#dcdcdc;cursor:pointer;display:flex;height:100%;left:0;line-height:13em;margin-top:5px;opacity:.5;position:absolute;z-index:1001}.product-detail .thumb-list .arrow.right{left:unset;line-height:13rem;right:0}.product-detail .thumb-list .thumb-frame{border:1px solid transparent;padding:1px}.product-detail .thumb-list .thumb-frame.active{border:1px solid #26a37c}.product-detail .thumb-list .small-card-container .thumb-frame>.product-image,.product-detail .thumb-list .thumb-frame>.bg-image,.small-card-container .product-detail .thumb-list .thumb-frame>.product-image{background-position-y:center;background-size:100% 100%;height:110px;width:100%}.product-detail .product-actions>div{display:inline-block}.product-detail .product-actions>div .add-to-cart-btn{float:left}.product-detail .product-actions>div .compare-icon,.product-detail .product-actions>div .wishlist-icon{height:46px;margin-left:0;padding-left:10px}.product-detail .product-actions>div .compare-icon i,.product-detail .product-actions>div .wishlist-icon i{display:table-cell;vertical-align:middle}.product-detail .product-actions>div .compare-icon{display:inline-table}.product-detail .product-actions>div .wishlist-icon{float:right}.product-detail #product-form,.product-detail .layouter{height:100%}.product-detail #product-form .form-container{height:100%;position:relative}.product-detail #product-form .form-container div.left{padding:0;position:-webkit-sticky;position:sticky;top:60px}.product-detail #product-form .form-container div.left .product-image-group{position:-webkit-sticky;position:sticky;top:70px}.product-detail #product-form .form-container div.left .product-image-group>div{margin:0;padding:0}.product-detail #product-form .form-container .right .swatch-container{display:block;margin-top:10px}.product-detail #product-form .form-container .right .swatch-container .swatch{display:inline-block;height:40px;margin-right:5px;min-width:40px}.product-detail #product-form .form-container .right .swatch-container .swatch span{border:1px solid #c7c7c7;border-radius:3px;cursor:pointer;float:left;height:38px;line-height:36px;min-width:38px;padding:0 10px;text-align:center}.product-detail #product-form .form-container .right .swatch-container .swatch img{background:#f2f2f2;border:1px solid #c7c7c7;border-radius:3px;cursor:pointer;height:38px;width:38px}.product-detail #product-form .form-container .right .swatch-container .swatch input:checked+img,.product-detail #product-form .form-container .right .swatch-container .swatch input:checked+span{border:1px solid #242424}.product-detail #product-form .form-container .right .swatch-container .swatch input{display:none}.product-detail #product-form .form-container .right .swatch-container .no-options{color:#fb3949}.product-detail .description{overflow:auto}.product-detail .description ol,.product-detail .description ul{margin:revert;padding:revert}.product-detail .accordian-content{font-size:16px;font-weight:400}.product-detail .full-description ol,.product-detail .full-description ul{margin:revert;padding:revert}.product-detail .full-specifications{width:100%}.product-detail .full-specifications tr td:first-child(){width:100px}.product-detail select[disabled=disabled]{background-color:#dcdcdc;border-color:#dcdcdc;cursor:not-allowed}.zoomContainer,.zoomLens{z-index:99!important}.store-meta-images{margin-top:20px}.store-meta-images img{height:100%;max-height:300px;width:100%}.related-products{margin-bottom:60px}.vc-small-screen{display:none!important}@media only screen and (max-width:1192px){.sticky-header,.vc-full-screen{display:block!important}.vc-small-screen{display:none!important}#main-category{display:block!important}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons{padding:5px 0;text-align:center!important;width:100%}.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter{padding:10px 0;text-align:center;width:100%}.footer .footer-content .footer-statics>div:not(:last-child){margin-bottom:30px}.slider-container{min-height:290px}}@media only screen and (max-width:992px){body.open-hamburger{color:#7f7f7f;opacity:.8;overflow:hidden}#webheader{background-color:#fff;position:fixed}#main-category,#webheader{display:none!important}#home-right-bar-container{position:relative;top:-48px}.sticky-header,.vc-full-screen{display:none!important}.vc-small-screen{display:block!important}.force-center{margin:0 auto!important}.main-content-wrapper{background-color:#fff;margin-bottom:25px;z-index:100}.main-content-wrapper .vc-header{background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);margin:0;padding:0;top:0;width:100%}.main-content-wrapper .vc-header>div{display:none}.main-content-wrapper .vc-header>div.vc-small-screen{display:block}.main-content-wrapper .vc-header>div.vc-small-screen img{height:100%;max-height:50px;width:100%}.main-content-wrapper .vc-header>div.vc-small-screen .hamburger-wrapper{display:inline-block;height:50px}.main-content-wrapper .vc-header>div.vc-small-screen .hamburger-wrapper .hamburger{font-size:24px;position:relative;top:12px}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header{display:table;height:50px;position:relative;text-align:right;z-index:2}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header>a{display:table-cell;vertical-align:middle}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-container,.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-wrapper{left:-12px;position:relative;top:-32px}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-container .badge,.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-wrapper .badge{background:#26a37c;border-radius:50%;color:hsla(0,0%,100%,.83);position:absolute;z-index:10}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-container{left:4px;margin-right:10px}#top{display:none}.product-card-new{max-width:19rem}.product-card-new.grid-card .card-body .product-name{width:13rem}.product-card-new.grid-card .card-body .product-rating{display:none}.product-card-new.grid-card .card-body .add-to-cart-btn{display:table;padding:0}.carousel-products.with-recent-viewed .product-card-new.grid-card .card-body .add-to-cart-btn .btn-add-to-cart .btn-add-to-cart,.product-card-new.grid-card .card-body .add-to-cart-btn .btn-add-to-cart .carousel-products.with-recent-viewed .btn-add-to-cart,.product-card-new.grid-card .card-body .add-to-cart-btn .btn-add-to-cart .small-padding.btn-add-to-cart{padding:3px 14px!important}.product-card-new.grid-card .card-body .add-to-cart-btn~a{position:relative}.product-card-new.grid-card .card-body .add-to-cart-btn~a.compare-icon{right:0}.product-card-new.grid-card .card-body .add-to-cart-btn~a.wishlist-icon{left:10px;max-width:25px;padding:0}.product-card-new.grid-card #quick-view-btn-container{display:none}.advertisement-four-container .offers-ct-panel{padding:8px 0}.advertisement-four-container .offers-ct-panel a:first-child{padding-bottom:10px!important}.advertisement-three-container .bottom-container img,.advertisement-three-container .top-container img{height:unset;padding:0}.advertisement-three-container .second-panel{padding-top:10px}.advertisement-two-container a:nth-of-type(2){padding:15px 0 0}.category-with-custom-options{display:none}.category-with-custom-options.vc-small-screen{display:block}.category-with-custom-options.vc-small-screen .smart-category-container .col-12{padding:0}.category-with-custom-options.vc-small-screen .smart-category-container:not(:first-child){padding-top:20px}.footer .footer-content .newsletter-subscription{padding:10px 20px}.footer .footer-content .newsletter-subscription .newsletter-wrapper{margin:0;padding:0}.footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field{width:200px}.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter{text-align:left}.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter .subscriber-form-div{text-align:center}.footer .footer-content .footer-statics{padding:30px 50px}.footer .footer-content .footer-copy-right{font-size:14px}.popular-categories-container .popular-category-wrapper{padding:0}.popular-categories-container .popular-category-wrapper .card .category-image{height:100%}.popular-categories-container .popular-category-wrapper:last-child{padding-left:0}.slides-container .VueCarousel .VueCarousel-pagination button{height:5px!important;width:5px!important}.slides-container .VueCarousel .VueCarousel-pagination .VueCarousel-dot{padding:2px!important}.account-content .sidebar{display:none}.account-content .account-layout{padding:0}.account-content .account-layout.right{padding-left:20px!important;padding-right:20px!important}.account-content .account-layout .account-items-list.wishlist-container .product-card-new{width:calc(50% - 5px)}.account-content .account-layout .sale-container .tabs-content .totals .sale-summary{font-size:17px;width:100%}.account-content .account-layout .sale-container .tabs-content .totals .sale-summary tbody tr td{width:50%!important}.account-content .account-layout .sale-container .tabs-content .totals .sale-summary tbody tr td:last-child{text-align:right}.account-content .account-layout .sale-container .order-box-container .box{margin-bottom:20px;width:100%}.account-content .account-layout .sale-container .order-box-container .box .box-title{padding-bottom:0}.mini-cart-btn{display:none}header .vc-small-screen .searchbar{padding-left:20px!important;padding-right:20px!important}header .vc-small-screen .searchbar .compare-btn,header .vc-small-screen .searchbar .wishlist-btn{display:none}header .vc-small-screen #search-form{background:transparent;width:100%}header .vc-small-screen #search-form .selectdiv{display:none}header .vc-small-screen #search-form .selectdiv+input{border:1px solid #26a37c;width:calc(100% - 40px)}.carousel-products.vc-full-screen{display:none}.carousel-products.vc-small-screen{display:block!important}.carousel-products+.recently-viewed{position:static;top:0}.reviews-container .review-wrapper,.reviews-container .review-wrapper:first-of-type,.reviews-container .review-wrapper:last-of-type,.reviews-container .review-wrapper:nth-last-of-type(2){padding:0}.reviews-container .review-wrapper:not(:last-child){margin-bottom:10px}.product-policy-wrapper{padding:0!important}.product-policy-wrapper:not(:last-child){margin-bottom:10px}.product-detail #product-form .form-container div.left{margin-bottom:20px;position:relative;top:0}.product-detail #product-form .form-container div.left .vc-small-product-image{width:100%}.product-detail .customer-rating>.row>div{margin-bottom:30px}.product-detail .arrow.left,.product-detail .arrow.right{display:none}.product-detail .thumb-list .small-card-container .thumb-frame>.product-image,.product-detail .thumb-list .thumb-frame>.bg-image,.small-card-container .product-detail .thumb-list .thumb-frame>.product-image{background-size:contain}.review-page-container>div{padding:0}.review-page-container>div:not(:last-child){margin-bottom:60px;position:relative}.customer-rating>.row>div:not(:last-child){margin-bottom:20px}.auth-content.form-container>.container{margin:0;width:100%}.auth-content.form-container>.container>div:first-child{padding:0}.auth-content.form-container>.container>div:first-child .body{padding:20px}.category-page-wrapper .layered-filter-wrapper{display:none}.category-page-wrapper .category-container{margin:20px 0 0;padding-left:0!important;padding-right:0!important}.category-page-wrapper .category-container>div{padding:0 10px}.category-page-wrapper .category-container>div:first-child{padding:0 10px!important}.category-page-wrapper .category-container .filters-container{background-color:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,.21);left:0;padding:0 0 10px;position:fixed;top:30px;width:100%;z-index:9}.category-page-wrapper .category-container .filters-container .toolbar-wrapper>div.col-4{display:table;margin:0;padding:0;text-align:center}.category-page-wrapper .category-container .filters-container .toolbar-wrapper>div.col-4 *{display:table-cell;vertical-align:middle}.category-page-wrapper .category-container .filters-container .toolbar-wrapper>div.col-4 a{display:inline-block;text-align:center}.category-page-wrapper .category-container .filters-container .toolbar-wrapper>div.col-4 span{left:5px;position:relative}.nav-container{background-color:#fff;box-shadow:0 2px 8px 0;font-size:16px;height:100vh;left:0;opacity:1;overflow-y:scroll;position:fixed;top:0;width:75%;z-index:9999}.nav-container .wrapper{position:relative}.nav-container .wrapper .category-title{display:none;display:table;margin:13px 0;padding-left:10px;width:100%}.nav-container .wrapper .category-title>i{display:table-cell;font-size:26px;vertical-align:middle}.nav-container .wrapper .category-title span{display:table-cell;font-size:20px;vertical-align:top}.nav-container .wrapper .category-title span i{float:left!important;margin:2px 2px 0 0!important}.nav-container .wrapper .greeting{background-color:#fff;border-bottom:1px solid #ccc;color:#111;display:table;position:-webkit-sticky;position:sticky;top:0;width:100%}.nav-container .wrapper .greeting>i{display:table-cell;font-size:26px;vertical-align:middle}.nav-container .wrapper .greeting span{display:table-cell;font-size:20px;vertical-align:top}.nav-container .wrapper ul{border-top:1px solid #ccc;color:#111;font-weight:600}.nav-container .wrapper ul li{font-size:16px;padding:10px 0 10px 20px}.nav-container .wrapper ul li:hover{background-color:#ececec}.nav-container .wrapper ul li .category-logo,.nav-container .wrapper ul li .language-logo-wrapper{display:inline-block;height:18px;margin-right:5px;width:18px}.nav-container .wrapper ul li .rango-arrow-right{float:right;font-size:20px;padding-right:15px;padding-top:5px}.nav-container .wrapper ul li .nested-category{border-top:unset}.nav-container .wrapper ul li .nested-category li:last-child{padding-bottom:0}.nav-container .wrapper ul:first-of-type{border-top:unset}.nav-container .wrapper .category-wrapper li,.nav-container .wrapper .vc-customer-options li{font-size:14px}.nav-container .wrapper .category-wrapper li i.icon,.nav-container .wrapper .vc-customer-options li i.icon{speak:none;-webkit-font-smoothing:antialiased;display:contents;font-family:Webkul Rango!important;font-size:18px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;padding-right:5px;text-transform:none}.nav-container .wrapper .category-wrapper li i.icon.profile:before,.nav-container .wrapper .vc-customer-options li i.icon.profile:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.address:before,.nav-container .wrapper .vc-customer-options li i.icon.address:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.reviews:before,.nav-container .wrapper .vc-customer-options li i.icon.reviews:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.wishlist:before,.nav-container .wrapper .vc-customer-options li i.icon.wishlist:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.compare:before,.nav-container .wrapper .vc-customer-options li i.icon.compare:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.orders:before,.nav-container .wrapper .vc-customer-options li i.icon.orders:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.downloadables:before,.nav-container .wrapper .vc-customer-options li i.icon.downloadables:before{content:""}.nav-container .drawer-section{padding:15px}.nav-container .header.drawer-section{display:table;width:100%}.nav-container .header.drawer-section>*{display:table-cell;vertical-align:middle}.nav-container .header.drawer-section i{padding-right:10px;width:25px}.nav-container .layered-filter-wrapper{display:block;margin-bottom:0;padding-top:0;width:100%}.category-container .grid-card,.search-container .grid-card{width:45%}.category-container .grid-card:nth-child(odd),.search-container .grid-card:nth-child(odd){float:left}.category-container .grid-card:nth-child(2n),.search-container .grid-card:nth-child(2n){float:right}.cart-details .order-summary-container.offset-1,.cart-details.offset-1{margin-left:0;padding-left:0;padding-right:0}.cart-details .cart-details-header,.cart-details h1{padding:0}.cart-details h1{margin-bottom:20px}.cart-details .cart-header{display:none}.cart-details .cart-item-list>div{margin:0;padding:0}.cart-details .product-price .special-price,.cart-details .product-price span:first-child{font-size:18px}.cart-details .actions{margin-top:7px!important}.cart-details .continue-shopping,.cart-details .empty-cart-message{padding:0}.checkout-process{margin-left:0!important;padding-left:0!important;padding-right:0!important}.checkout-process h1,.checkout-process>div{padding:0}.checkout-process .billing-address{margin-bottom:20px}.address-holder>div{padding-bottom:15px;padding-right:0}.wishlist-container{margin:0!important;padding:0!important;width:100%!important}.wishlist-container .product-card-new{margin-left:0}.compare-products{padding:0!important}.compare-products .col,.compare-products .col-2{max-width:unset}.compare-icon,.wishlist-icon{margin-left:0}.image-search-result .searched-terms{margin-left:0;margin-top:20px}.image-search-result .searched-terms .term-list a{line-height:40px}#sort-by.sorter select{display:inline-block;left:25px;padding:0 10px;position:absolute;top:2px}.slider-container{min-height:220px}}@media only screen and (max-width:768px){.sticky-header{display:none!important}#home-right-bar-container{position:unset;top:unset}.modal-container{left:10%;margin-left:0;max-width:80%}.footer .footer-list-container{padding-left:0!important}.footer .currency{display:block!important}button.btn.btn-sm.btn-primary.apply-filter{margin-top:10px}.quick-view-btn-container span{font-size:13px;left:24%;top:-24px}.quick-view-in-list{display:none}.product-card-new{max-width:18rem}.slider-container{min-height:220px}}@media only screen and (max-width:420px){.sticky-header{display:none!important}#home-right-bar-container{position:unset;top:unset}.slider-container{min-height:100px}.advertisement-four-container{min-height:992px}.advertisement-four-container .advertisement-container-block,.advertisement-four-container .offers-ct-panel{min-height:425px}}@media only screen and (max-width:320px){.sticky-header{display:none!important}#home-right-bar-container{position:unset;top:unset}.quick-view-in-list{display:none}.slider-container{min-height:100px}.advertisement-four-container{min-height:992px}.advertisement-four-container .advertisement-container-block,.advertisement-four-container .offers-ct-panel{min-height:425px}}body.rtl{text-align:right}.account-content .account-layout .bottom-toolbar .pagination body.rtl .page-item,.product-detail body.rtl .right,body.rtl .account-content .account-layout .bottom-toolbar .pagination .page-item,body.rtl .fs16,body.rtl .product-detail .right{font-size:14px!important}body.rtl .order-summary-container{margin-left:0;margin-right:130px}body.rtl .velocity-divide-page .right{padding-left:0!important;padding-right:230px!important}body.rtl header #search-form #header-search-icon{border-radius:2px 0 0 2px;float:right}body.rtl header #search-form .btn-group select,body.rtl header #search-form .quantity select{border-left:0;border-right:1px solid #26a37c}body.rtl header #search-form .btn-group .selectdiv select,body.rtl header #search-form .quantity .selectdiv select{float:unset}body.rtl header #search-form .btn-group .selectdiv select~.select-icon-container,body.rtl header #search-form .quantity .selectdiv select~.select-icon-container{position:absolute;right:100px;top:0}body.rtl header #search-form .btn-group .selectdiv .select-icon,body.rtl header #search-form .quantity .selectdiv .select-icon{left:8px;top:12px}body.rtl header.sticky-header img{float:right}body.rtl header .left-wrapper{float:left}body.rtl header .left-wrapper .compare-btn .badge-container .badge,body.rtl header .left-wrapper .wishlist-btn .badge-container .badge{left:-2px;top:-28px}body.rtl header .left-wrapper .mini-cart-btn{margin-left:0;margin-right:16px}body.rtl header .left-wrapper .mini-cart-btn .mini-cart-content{margin-left:7px;margin-right:0!important}body.rtl header .left-wrapper .mini-cart-btn .mini-cart-content .badge-container .badge{left:unset;right:-15px}body.rtl header .left-wrapper .mini-cart-btn #cart-modal-content{left:0}body.rtl header .left-wrapper .mini-cart-btn #cart-modal-content .small-card-container .remove-item{left:unset;right:-10px}body.rtl header .left-wrapper .mini-cart-btn #cart-modal-content .small-card-container .card-total-price{float:left}body.rtl header .left-wrapper .mini-cart-btn .dropdown-list{right:unset!important}body.rtl .main-content-wrapper .main-category{text-align:right}body.rtl .main-content-wrapper .main-category i{float:right;margin-left:10px}body.rtl .main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-container{left:-4px}body.rtl .form-container .container .heading h2{float:right}body.rtl .form-container .back-button,body.rtl .form-container .container .heading a{float:left}body.rtl .sticker{left:unset;right:8px}body.rtl .subscriber-form-div{text-align:left}body.rtl .footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field{left:-4px;position:relative}body.rtl .lg-card-container.list-card .add-to-cart-btn{float:right;margin-left:20px}body.rtl #top #account .welcome-content{float:left}body.rtl #top #account .welcome-content i{text-align:left}body.rtl #top .locale-icon~.select-icon-container{right:20px}body.rtl .category-list-container .sub-categories{left:-100%}body.rtl .category-list-container li a{padding:7px 15px 5px}body.rtl .category-list-container li ul.nested li a{padding-right:25px}body.rtl .filters-container .view-mode>div{padding-right:6px}body.rtl .filters-container .toolbar-wrapper>div label{margin-left:10px;margin-right:0}body.rtl .filter-attributes-content{margin-left:7px;margin-right:0}body.rtl .filter-attributes-item input[type=checkbox]+span{margin-right:10px}body.rtl .filter-attributes-item .filter-input{margin-right:0}body.rtl .product-card-new .card-body .cart-wish-wrap{margin-right:0!important}body.rtl .product-card-new .card-body .cart-wish-wrap .add-to-cart-btn{padding-left:35px!important}body.rtl .product-card-new .card-body .wishlist-icon{left:0;right:unset}body.rtl .product-card-new .card-body .product-name{width:unset}body.rtl .account-content{min-height:100vh}body.rtl .account-content .account-layout.right{padding-right:250px!important;width:calc(100% - 20px)}body.rtl .account-content .account-layout .account-table-content .address-holder .card-link+.card-link{margin-right:1.25rem}body.rtl .account-content .account-layout .account-table-content .address-holder>div{padding-left:15px;padding-right:0}body.rtl .account-content .sidebar{border-left:1px solid #e5e5e5}body.rtl .account-content .sidebar .customer-sidebar .navigation li i.icon{padding-left:5px;padding-right:0}body.rtl .product-detail .right .info{margin-right:0}body.rtl .product-detail .right .info div,body.rtl .product-detail .right .info>h2{padding-right:0}body.rtl .product-detail .right .info .buynow{float:left;margin-right:10px}body.rtl .product-detail .thumb-list{left:0;margin-right:0}body.rtl .product-detail .wishlist-icon{padding-right:10px}body.rtl .zoomWindow{right:100%!important}body.rtl .modal-footer>:not(:last-child){margin-left:.25rem}body.rtl .compare-products .wishlist-icon{left:52px;right:unset}body.rtl .compare-products .material-icons.cross{left:20px;right:unset}body.rtl #alert-container{left:15px;right:unset}body.rtl .alert-dismissible .close{left:-8px}body.rtl .booking-information .book-slots .control-group-container .form-group:not(.quantity).date:after{left:40px;right:unset}body.rtl .full-content-wrapper>.container-fluid>.row.pl-26{padding-right:26%!important}body.rtl .image-search-container{left:45px;right:unset}body.rtl .product-policy-container .card .policy .left{margin-left:10px}body.rtl .advertisement-three-container .second-panel{padding-right:30px}body.rtl .advertisement-two-container .row{padding:0!important}body.rtl .advertisement-two-container .row .pr0{padding-right:15px!important}body.rtl .downloadable-container .link-list ul li a{float:left;margin-top:3px}body.rtl .text-right{text-align:left!important}body.rtl .text-left{text-align:right!important}body.rtl .pr0{padding-left:0!important;padding-right:15px!important}body.rtl .pl0{padding-right:0!important}body.rtl .pl10{padding-right:10px!important}body.rtl .rango-arrow-right:before{content:""}body.rtl .styled-select+.select-icon-container .select-icon{left:6px;right:unset}body.rtl .ml15{margin-right:15px!important}body.rtl .pl30{padding-right:30px}body.rtl .ml-5{margin-right:3rem!important}.product-detail .right .options .buttons body.rtl :not(:last-child),.product-detail .right .options body.rtl .quantity>label,body.rtl .mr15,body.rtl .product-detail .right .options .buttons :not(:last-child),body.rtl .product-detail .right .options .quantity>label{margin-left:15px!important}body.rtl .ml5{margin-right:5px}body.rtl .payment-methods .pl40{padding-left:0!important;padding-right:40px!important}body.rtl #top #account .dropdown-list{left:10px;right:unset!important;text-align:right}body.rtl .VueCarousel .VueCarousel-inner{flex-direction:row-reverse}body.rtl .quantity .input-btn-group button.increase{border-left:1px solid #dcdcdc;border-right:0}body.rtl .quantity .input-btn-group button.decrease{border-left:0;border-right:1px solid #dcdcdc}@media only screen and (max-width:992px){body.rtl .order-summary-container{margin-right:0}body.rtl .nav-container ul li{padding:10px 20px 10px 0}body.rtl .nav-container ul li .rango-arrow-right{float:left;padding-left:40px}body.rtl .nav-container .wrapper .vc-customer-options li i.icon{float:right;padding-left:5px}body.rtl .account-content .account-layout.right,body.rtl .full-content-wrapper>.container-fluid>.row.pl-26{padding-right:20px!important}body.rtl .velocity-divide-page .left{right:35px;top:4px;width:150px}body.rtl .velocity-divide-page .right{padding:0 20px!important}body.rtl .checkout-process{margin-right:0!important;padding-left:0!important;padding-right:0!important}}@media only screen and (max-width:425px){.account-content .account-layout .bottom-toolbar .pagination body.rtl .page-item,.product-detail body.rtl .right,body.rtl .account-content .account-layout .bottom-toolbar .pagination .page-item,body.rtl .fs16,body.rtl .product-detail .right{font-size:12px!important}body.rtl .velocity-divide-page .right{padding:0 20px!important}}@media only screen and (max-width:375px){.account-content .account-layout .bottom-toolbar .pagination body.rtl .page-item,.product-detail body.rtl .right,body.rtl .account-content .account-layout .bottom-toolbar .pagination .page-item,body.rtl .fs16,body.rtl .product-detail .right{font-size:10px!important}body.rtl .velocity-divide-page .right{padding:0 20px!important}}@media only screen and (max-width:320px){.account-content .account-layout .bottom-toolbar .pagination body.rtl .page-item,.product-detail body.rtl .right,body.rtl .account-content .account-layout .bottom-toolbar .pagination .page-item,body.rtl .fs16,body.rtl .product-detail .right{font-size:8px!important}body.rtl .velocity-divide-page .right{padding:0 20px!important}}.table{width:100%}.table .table-responsive{overflow-x:auto;width:100%}.table .table-responsive::-webkit-scrollbar{height:5px!important}.table .table-responsive::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px #c8c8c8!important}.table .table-responsive::-webkit-scrollbar-thumb{background-color:#fff!important;border-radius:10px!important;-webkit-box-shadow:inset 0 0 6px rgba(90,90,90,.7)!important}.table table{border-collapse:collapse;text-align:left;width:100%}.table table thead th{background:#f8f9fa;border-right:1px solid #ccc!important;color:rgba(0,0,0,.83);font-weight:700;padding:12px 10px}.table table thead th:last-child{border-right:none}.table table tbody td{border-bottom:1px solid #d3d3d3;color:rgba(0,0,0,.83);padding:10px;vertical-align:top}.table table tbody td.actions .action{display:inline-flex}.table table tbody td.actions .icon{cursor:pointer;display:block}.table table tbody td.empty{text-align:center}.table table tbody tr:last-child td{border-bottom:none}.table .control-group{margin-bottom:0;min-width:140px;width:100%}.table .control-group .control{margin:0;width:100%}.grid-container{display:block;width:100%}.grid-container .grid-top{align-items:center;display:grid;grid-template-rows:auto auto auto;row-gap:8px}.grid-container .grid-top .datagrid-filters,.grid-container .grid-top .datagrid-filters .grid-right{-moz-column-gap:10px;column-gap:10px;display:grid;grid-template-columns:auto auto}.grid-container .grid-top .datagrid-filters .grid-right{align-items:end;justify-self:end}.grid-container .grid-top .datagrid-filters .dropdown-filters{display:inline-block}.grid-container .grid-top .datagrid-filters .dropdown-filters.per-page .control-group{margin-bottom:0}.grid-container .grid-top .datagrid-filters .dropdown-filters.per-page .control-group label{flex:auto;margin-right:10px;margin-top:7px}.grid-container .grid-top .datagrid-filters .dropdown-filters.per-page .control-group .control{flex:1;margin:0;width:100%}.grid-container .datagrid-filters,.grid-container .datagrid-filters .filter-right{align-items:end;-moz-column-gap:10px;column-gap:10px;display:grid;grid-template-columns:auto auto}.grid-container .datagrid-filters .filter-right{justify-self:end}.grid-container .datagrid-filters .filter-right .control-group .control{margin-bottom:0}.filtered-tags{align-items:flex-start;display:inline-flex;flex-wrap:wrap;margin-bottom:10px}.search-filter{border-radius:3px;height:36px;max-width:300px}.search-filter .control{-webkit-appearance:none;border:1px solid #c7c7c7;border-bottom-left-radius:3px;border-right:none;border-top-left-radius:3px;font-size:15px;height:36px;padding-left:10px;width:calc(100% - 36px)}.search-filter:hover{box-shadow:0 0 0 1px rgba(0,64,255,.6)}.search-filter .contorl:focus{border-color:#0041ff}.search-filter .icon-wrapper{border:1px solid #c7c7c7;border-radius:3px;border-bottom-left-radius:0;border-top-left-radius:0;display:none;float:right;height:36px;padding:5px;width:36px}.grid-dropdown-header{align-items:center;background-color:#fff;border:1px solid #c7c7c7;border-radius:3px;display:inline-flex;height:36px;justify-content:space-between;min-width:200px;padding:0 5px;width:100%}.grid-dropdown-header .arrow-icon-down{float:right}.dropdown-toggle:after{display:none}.dropdown-list{background-color:#fff;border-radius:3px;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 0 9px 0 rgba(0,0,0,.16);display:none;margin-bottom:20px;position:absolute;text-align:left;width:200px;z-index:1000}.dropdown-list.bottom-left{left:0;top:42px}.dropdown-list.bottom-right{right:0;top:42px}.dropdown-list.top-left{bottom:0;left:42px}.dropdown-list.top-right{bottom:0;right:42px}.dropdown-list .dropdown-label{border-bottom:1px solid #c1c2c3;color:rgba(0,0,0,.53);cursor:default;display:block;font-size:18px;font-weight:600;padding:8px 12px}.dropdown-list .dropdown-container{overflow-y:auto}.dropdown-list .dropdown-container label{color:#9e9e9e;display:inline-block;font-size:15px;font-weight:700;padding-bottom:5px;text-transform:uppercase}.dropdown-list .dropdown-container ul{list-style-type:none;margin:0;padding:0}.dropdown-list .dropdown-container ul li a{font-size:16px;padding:8px 12px}.dropdown-list .dropdown-container ul li a:active,.dropdown-list .dropdown-container ul li a:focus,.dropdown-list .dropdown-container ul li a:link,.dropdown-list .dropdown-container ul li a:visited{color:rgba(0,0,0,.83);display:block}.dropdown-list .dropdown-container ul li a:hover{background-color:#ececec}.dropdown-list .dropdown-container ul li .control-group label{color:rgba(0,0,0,.83);font-size:15px;font-weight:500;text-transform:capitalize;width:100%}.dropdown-list .dropdown-container .btn{margin-top:10px;width:100%}.filter-advance{display:flex;justify-content:space-between}.filter-tag{border-radius:2px;justify-content:space-between;margin-right:20px}.filter-tag,.filter-tag .wrapper{align-items:center;display:flex;flex-direction:row;font-size:14px;height:40px}.filter-tag .wrapper{background:#e7e7e7;border:1px solid #e7e7e7;border-radius:24px;color:#000311;letter-spacing:-.22px;margin-left:4px;padding:5px 10px 5px 16px}.filter-tag .wrapper .icon.cross-icon{cursor:pointer;margin-left:10px}.filter-tag .wrapper:hover{background:#fff;border:1px solid #e7e7e7}.rtl .search-filter .control{border-bottom-left-radius:0;border-bottom-right-radius:3px;border-left:0;border-right:1px solid #c7c7c7;border-top-left-radius:0;border-top-right-radius:3px;padding-right:10px}.rtl .search-filter .icon-wrapper{border-bottom-left-radius:3px;border-bottom-right-radius:0;border-top-left-radius:3px;border-top-right-radius:0;float:left}.rtl .search-filter:hover{box-shadow:0 0 0 1px rgba(0,64,255,.6)}.rtl .dropdown-filters{display:inline-block}.rtl .dropdown-filters.per-page{margin-left:10px;margin-right:10px}.rtl .filtered-tags .filter-tag .cross-icon,.rtl .filtered-tags .filter-tag .wrapper{margin-left:0;margin-right:10px}@media only screen and (max-width:768px){.grid-container .grid-top .datagrid-filters{grid-template-columns:100%;row-gap:0}.grid-container .grid-top .datagrid-filters .search-filter{max-width:100%!important}.grid-container .grid-top .datagrid-filters .filter-left,.grid-container .grid-top .datagrid-filters .filter-right{-moz-column-gap:5px;column-gap:5px;display:grid;grid-template-columns:49.5% 49%}.grid-container .grid-top .datagrid-filters .filter-right{width:100%}.grid-dropdown-header{min-width:122px}.dropdown-list.dropdown-container{padding:10px}}@font-face{font-display:swap;font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Outlined;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsoutlined/v14/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Round;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v14/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmP.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Sharp;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconssharp/v15/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvR.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Two Tone;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconstwotone/v13/hESh6WRmNCxEqUmNyh3JDeGxjVVyMg4tHGctNCu0.woff2) format("woff2")}.material-icons{-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-family:Material Icons}.material-icons,.material-icons-outlined{word-wrap:normal;direction:ltr;display:inline-block;font-size:24px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1;max-width:30px;overflow:hidden;text-transform:none;white-space:nowrap}.material-icons-outlined{-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-family:Material Icons Outlined}.material-icons-round{-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-family:Material Icons Round}.material-icons-round,.material-icons-sharp{word-wrap:normal;direction:ltr;display:inline-block;font-size:24px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap}.material-icons-sharp{-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-family:Material Icons Sharp}.material-icons-two-tone{word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;display:inline-block;font-family:Material Icons Two Tone;font-size:24px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap}*{font-family:Source Sans Pro,sans-serif;margin:0;padding:0}*,:after,:before{box-sizing:inherit}::-webkit-scrollbar{height:5px;width:3px}::-webkit-scrollbar-track{background:#d8d8d8}::-webkit-scrollbar-thumb{background:#666}::-webkit-input-placeholder{font-family:Source Sans Pro,sans-serif}input[type=checkbox]{height:15px;margin-right:10px;width:24px}.form-control:focus{box-shadow:0 0 8px 1px rgba(105,221,157,.25)}button,input,optgroup,select,textarea{color:rgba(0,0,0,.83);font-family:Source Sans Pro,sans-serif}textarea{resize:none}html{box-sizing:border-box}body{background:#fff;color:rgba(0,0,0,.83);font-family:Source Sans Pro,sans-serif;font-size:12px;font-weight:400;line-height:20px;padding:0;width:100%}body,label{margin:0}.btn:hover{text-decoration:none}.btn:active:hover,.btn:focus{outline:none;outline-offset:0}.btn-link{color:rgba(0,0,0,.83);padding:6px 5px}.btn-link:focus,.btn-link:hover{color:rgba(0,0,0,.83);text-decoration:none}#top{border-bottom:1px solid #ccc;box-shadow:0 0 0 0 rgba(0,0,0,.24);color:rgba(0,0,0,.83);margin:0;min-height:32px}#top .btn{border-radius:0;font-family:Source Sans Pro,sans-serif;font-size:14px;letter-spacing:0;text-align:center}#top .btn,#top .btn:hover{text-decoration:none}#top .btn:active:hover,#top .btn:focus{outline:none;outline-offset:0}#top .btn-normal{background:#21a179;border-color:#269c77;color:#fff;font-weight:600}#top .btn-normal:active:focus,#top .btn-normal:active:hover,#top .btn-normal:hover{background:#fff;border-color:#21a179;color:#21a179}#top .btn-link{color:rgba(0,0,0,.83)}#top .dropdown-menu-large{left:-100px;min-width:250px}#top .customer-name{color:rgba(0,0,0,.83);font-size:16px;font-weight:600;padding:0 10px}#top #account{font-size:14px}#top #account .select-icon{left:0;padding-left:5px;top:0}#top #account .welcome-content{cursor:pointer;display:table;float:right;min-width:150px;padding-top:5px;text-align:right}#top #account .welcome-content *{display:table-cell;vertical-align:middle}#top #account .dropdown-list{right:10px;top:40px}#top #account .dropdown-list .modal-header{padding:20px}#top #account .dropdown-list .content{padding:5px 20px 15px}#top #account .dropdown-list .modal-footer .account-content .account-layout .bottom-toolbar .pagination .page-item,#top #account .dropdown-list .modal-footer .cart-details .continue-shopping-btn,#top #account .dropdown-list .modal-footer .theme-btn,.account-content .account-layout .bottom-toolbar .pagination #top #account .dropdown-list .modal-footer .page-item,.cart-details #top #account .dropdown-list .modal-footer .continue-shopping-btn{text-align:center;width:50%}#top>div:last-child{height:32px}#top>div .default{font-size:14px;padding:5px}#top .locale-icon{display:inline-block;width:20px}#top .locale-icon img{width:100%}#top .locale-switcher{padding-left:5px;padding-right:15px;position:relative;text-align:left}#top .dropdown{margin-right:15px}#top .dropdown .select-icon-container .select-icon{right:0}.dropdown-menu{background:#fff;border-radius:0;border-top:3px solid #269c77;box-shadow:11px 10px 17px 0 rgba(0,0,0,.21)}.dropdown-menu li a .dropdown-menu li a:focus,.dropdown-menu li a:focus,.dropdown-menu li a:hover{background:#21a179;color:#fff}.no-padding,.product-detail .right h3{padding:0!important}.btn-normal{background:#21a179;border-color:#269c77;border-radius:0;color:#fff;font-weight:600}.btn-normal:active:focus,.btn-normal:active:hover,.btn-normal:hover{background:#fff;border-color:#21a179;color:#21a179}.btn-secondary{background:#fff;border-color:#fff;color:#21a179}.btn-secondary:active:focus,.btn-secondary:active:hover,.btn-secondary:focus,.btn-secondary:hover{background:#21a179;border-color:#21a179}.btn-danger{color:#fff}.btn-danger,.btn-danger:active:focus,.btn-danger:active:hover,.btn-danger:focus,.btn-danger:hover{background:#f05153;border-color:#f05153}header .logo{height:46px;padding-left:10px}header #search-form{background:#fff;height:40px;margin:8px 0}header #search-form *{height:100%}header #search-form .btn-group,header #search-form .quantity{max-width:550px}header #search-form .btn-group .selectdiv,header #search-form .quantity .selectdiv{width:210px}header #search-form .btn-group .selectdiv .select-icon,header #search-form .quantity .selectdiv .select-icon{background-color:#fff;font-size:18px;height:20px;right:8px;top:-30px;z-index:10}header #search-form .btn-group select,header #search-form .quantity select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #26a37c;border-radius:2px 0 0 2px;border-right:0;cursor:pointer;font-family:Source Sans Pro,sans-serif;height:100%;width:100%}header #search-form .btn-group select::-ms-expand,header #search-form .quantity select::-ms-expand{display:none}header #search-form input{border:1px solid #26a37c;border-left-color:#ccc;border-radius:0;font-size:14px;height:100%;letter-spacing:0;line-height:20px;padding:0 10px}header #search-form .btn:hover{text-decoration:none}header #search-form .btn:active:hover,header #search-form .btn:focus{outline:none;outline-offset:0}header #search-form #header-search-icon{background-color:#26a37c;border-radius:0 2px 2px 0;min-width:40px}header #search-form #header-search-icon i{color:#fff}header .left-wrapper{float:right}header .left-wrapper .compare-btn,header .left-wrapper .mini-cart-btn,header .left-wrapper .wishlist-btn{cursor:pointer;display:inline-block;font-size:18px;font-weight:600;margin:16px}header .left-wrapper .compare-btn.mini-cart-btn,header .left-wrapper .mini-cart-btn.mini-cart-btn,header .left-wrapper .wishlist-btn.mini-cart-btn{margin-right:0}header .left-wrapper .compare-btn i,header .left-wrapper .mini-cart-btn i,header .left-wrapper .wishlist-btn i{margin-right:5px;vertical-align:middle}header .left-wrapper .compare-btn .badge-container,header .left-wrapper .mini-cart-btn .badge-container,header .left-wrapper .wishlist-btn .badge-container{display:inline-block;position:relative}header .left-wrapper .compare-btn .badge-container .badge,header .left-wrapper .mini-cart-btn .badge-container .badge,header .left-wrapper .wishlist-btn .badge-container .badge{background:#21a179;border-radius:50%;color:hsla(0,0%,100%,.83);left:-15px;min-width:20px;padding:4px;position:absolute;top:-23px}header .left-wrapper .compare-btn span,header .left-wrapper .mini-cart-btn span,header .left-wrapper .wishlist-btn span{padding-left:0;position:relative}header .left-wrapper .compare-btn #mini-cart,header .left-wrapper .mini-cart-btn #mini-cart,header .left-wrapper .wishlist-btn #mini-cart{line-height:inherit;padding:0}header .left-wrapper .compare-btn #mini-cart .mini-cart-content,header .left-wrapper .mini-cart-btn #mini-cart .mini-cart-content,header .left-wrapper .wishlist-btn #mini-cart .mini-cart-content{color:rgba(0,0,0,.83);display:inline-block;font-size:16px;font-weight:600;letter-spacing:0;margin-right:7px;position:relative;text-align:right}header .left-wrapper .compare-btn #mini-cart .mini-cart-content i+span.cart-text,header .left-wrapper .mini-cart-btn #mini-cart .mini-cart-content i+span.cart-text,header .left-wrapper .wishlist-btn #mini-cart .mini-cart-content i+span.cart-text{padding-left:0;vertical-align:text-bottom}header .left-wrapper .compare-btn #mini-cart .mini-cart-content+.down-arrow-container,header .left-wrapper .compare-btn #mini-cart .mini-cart-content+.down-arrow-container .rango-arrow-down,header .left-wrapper .mini-cart-btn #mini-cart .mini-cart-content+.down-arrow-container,header .left-wrapper .mini-cart-btn #mini-cart .mini-cart-content+.down-arrow-container .rango-arrow-down,header .left-wrapper .wishlist-btn #mini-cart .mini-cart-content+.down-arrow-container,header .left-wrapper .wishlist-btn #mini-cart .mini-cart-content+.down-arrow-container .rango-arrow-down{top:0}header .dropdown-menu-large{left:-180px;min-width:280px}header .dropdown-menu-large .dropdown-content{max-height:300px;overflow-y:auto;width:100%}header .dropdown-menu-large .dropdown-content .item{display:flex;padding:10px}header .dropdown-menu-large .dropdown-content .item .item-image{position:relative}header .dropdown-menu-large .dropdown-content .item .item-image .material-icons{cursor:pointer;font-size:16px;left:-6px;position:absolute;top:-6px}header .dropdown-menu-large .dropdown-content .item .item-image .thumbnail{border:1px solid #ccc;border-radius:0;height:75px;margin:0;width:75px}header .dropdown-menu-large .dropdown-content .item .item-name{color:rgba(0,0,0,.83);font-size:18px;font-weight:600;letter-spacing:0}header .dropdown-menu-large .dropdown-content .item .item-details{height:auto;padding:0 10px}header .dropdown-menu-large .dropdown-content .item .item-details .item-options{color:rgba(0,0,0,.83);font-family:Source Sans Pro,sans-serif;font-size:13px;letter-spacing:0}header .dropdown-menu-large .dropdown-content .item .item-details .item-qty-price{display:inline-block;padding:5px 0}header .dropdown-menu-large .dropdown-content .item .item-details .item-qty-price .item-qty{color:rgba(0,0,0,.83);font-size:16px;letter-spacing:0;text-align:left}header .dropdown-menu-large .dropdown-content .item .item-details .item-qty-price .item-price{color:rgba(0,0,0,.83);font-size:16px;font-weight:600;letter-spacing:0;text-align:right}header .dropdown-menu-large .dropdown-header{border-top:1px solid #ccc;padding:10px 10px 5px}header .dropdown-menu-large .dropdown-header .sub-total-text{color:rgba(0,0,0,.83);font-size:16px;font-weight:600;letter-spacing:0}header .dropdown-menu-large .dropdown-header .cart-sub-total{color:rgba(0,0,0,.83);font-size:16px;font-weight:700;letter-spacing:0;text-align:right}header .dropdown-menu-large .dropdown-footer{border-top:1px solid #ccc;color:rgba(0,0,0,.83);font-size:16px;font-weight:700;letter-spacing:0;padding:10px 10px 0}header .dropdown-menu-large .dropdown-footer .cart-link{text-align:left}header .dropdown-menu-large .dropdown-footer .cart-link a{vertical-align:middle}header .dropdown-menu-large .dropdown-footer .checkout-link{text-align:right}#nav-menu{background-color:#fff;box-shadow:0 0 0 0 rgba(0,0,0,.24);margin:0}#nav-menu .navbar{color:rgba(0,0,0,.83);cursor:pointer;font-family:SourceSansPro-Semibold;font-size:16px;letter-spacing:0;margin:0;min-height:40px;position:relative}#nav-menu .navbar .navbar-header{display:inline-block;width:100%}#nav-menu .navbar .navbar-header .main-category{display:inline-block;overflow:hidden;padding:5px 5px 5px 35px;position:relative;width:100%}#nav-menu .navbar .navbar-header .main-category .material-icons{font-size:28px;left:0;position:absolute;top:2px}#nav-menu .navbar .category-dropdown{background:#fff;height:525px;left:0;position:absolute;top:40px;width:100%}#nav-menu .navbar .category-dropdown li.category-list{background:#fff;display:inline-block;position:relative;width:100%}#nav-menu .navbar .category-dropdown li.category-list a{color:rgba(0,0,0,.83);display:block;font-size:14px;font-weight:600;letter-spacing:0;padding:10px 0;position:relative}#nav-menu .navbar .category-dropdown li.category-list a .material-icons{position:absolute;right:0;top:8px}#nav-menu .navbar .category-dropdown li.category-list a:hover{background-color:#f7f7f9;color:#28557b;text-decoration:none}#nav-menu .navbar .category-dropdown li.category-list .child-container{background-color:#ccc;height:350px;left:283px;position:absolute;top:0;width:250px}#nav-menu .secondary-navbar{background-color:#4d7ea8;display:inline-block;height:auto;list-style:none;margin:0;min-height:40px;padding:5px;text-align:left;vertical-align:middle;width:100%}#nav-menu .secondary-navbar li{float:left}#nav-menu .secondary-navbar li a{color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:600;letter-spacing:0;padding:5px 20px 5px 5px;position:relative;text-decoration:none}.viewed-products .viewed-products-listing{background-color:#f6f6f6;border:1px solid #fff}.viewed-products .viewed-products-listing .product-description,.viewed-products .viewed-products-listing .product-image{display:inline-block}.viewed-products .viewed-products-listing .product-description div{padding-top:2px}.customer-reviews .first-row{display:flex;justify-content:space-between}.customer-reviews .second-row{display:inline-block;width:100%}.customer-reviews .second-row .reviews-listing{background:#fff;box-shadow:0 4px 17px 0 rgba(0,0,0,.11);padding-right:10px}.customer-reviews .second-row .review-grid{display:grid;height:262px;padding-left:10px;padding-right:10px;padding-top:40px;width:345px}.categories-grid-customizable .category-grid{padding-bottom:10px;padding-left:5px;padding-right:5px}.categories-grid-customizable .category-grid .category-image{border:1px solid red}.categories-grid-customizable .category-grid .category-details{border:1px solid blue}.categories-grid-customizable .category-grid .category-details h3{color:#fff;text-align:center}.categories-grid-customizable .category-grid .category-details li{color:#fff;list-style-type:none;text-align:center}.product-policy{border:1px solid maroon;padding:30px 0 50px;text-align:center}.popular-products{height:auto;padding-right:10px;width:100%}.popular-products .second-row .popular-products-listing{border:1px solid red}.popular-products .second-row .popular-products-listing .product-buttons .add-to-cart-button .btn-primary{border:#26a37c!important;border-radius:0}.popular-products .second-row .popular-products-listing .product-buttons .add-to-cart-button .addtocart{background-color:#26a37c;text-transform:uppercase}.customer-name{background:#21a179;border-radius:50%;color:#fff;display:table-cell;font:18px josefin sans,arial;height:54px;padding:16px;text-align:center;vertical-align:middle;width:56px}.spacing{margin:5px 0}i.within-circle{border-radius:50%;box-shadow:0 0 2px #888;display:inline-block;height:50px;margin:15px 0;padding:12px;width:50px}.center_div{margin:0 auto;width:80%}.form-style{background-color:#fff;background-image:none;border:1px solid #dcdcdc;border-radius:0;color:rgba(0,0,0,.83);display:block;font-size:16px;height:36px;line-height:1.42857143;padding:6px 12px;width:100%}.label-style{display:inline-block!important;font-size:16px!important;font-weight:100!important;margin-bottom:5px!important;max-width:100%!important}.btn-white{color:#fff;height:36px;width:133px}.w3-card-2{width:133px}.w3-card-2,.w3-card-login{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);float:right;height:36px}.w3-card-login{width:71px}.btn-new-customer-login{color:#26a37c!important;font-size:16px;padding:11px;text-decoration:none!important}.btn-dark-green{background-color:#26a37c;border-color:#26a37c;border-radius:0!important;color:#fff;height:36px}.login-text{border:1px #e5e5e5;height:65px;margin:0 auto;width:575px}.row:after,.row:before{display:none!important}.image-wrapper{display:inline-block;margin-bottom:20px;margin-top:10px;width:100%}.image-wrapper .image-item{background:#f8f9fa;background-image:url(../images/placeholder-icon.svg);background-position:50%;background-repeat:no-repeat;background-size:75%;border-radius:3px;display:inline-block;float:left;height:150px;margin-bottom:20px;margin-right:20px;position:relative;width:150px}.image-wrapper .image-item img.preview{height:100%;width:100%}.image-wrapper .image-item input{display:none}.image-wrapper .image-item .remove-image{background-image:linear-gradient(-180deg,rgba(0,0,0,.08),rgba(0,0,0,.24));border-radius:0 0 4px 4px;bottom:0;color:#fff;cursor:pointer;margin-right:20px;padding:10px;position:absolute;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.24);width:100%}.image-wrapper .image-item:hover .remove-image{display:block}.image-wrapper .image-item.has-image{background-image:none}.btn-primary{background-color:#26a37c!important;border-color:#26a37c!important}.category-page-wrapper .category-container .filters-container{background-color:#fff;box-shadow:none;left:0;margin-left:7px;padding:0 0 7px;position:unset;top:30px;width:96%;z-index:9}.filters-container .toolbar-wrapper>div select{background-color:#fff;color:rgba(0,0,0,.83);cursor:pointer;padding:6px 8px}.filters-container .toolbar-wrapper>div{margin:0 8px 0 0}@media(max-width:600px){.selective-div{-webkit-appearance:none;width:97px}.nav-container{background-color:#fff;box-shadow:5px 0 5px -5px #333;font-size:16px;height:100vh;left:0;opacity:1;overflow-y:scroll;position:fixed!important;top:0;width:75%;z-index:9999}}.velocity-divide-page .right{width:99%!important}.main-content-wrapper .content-list ul{width:101.2%!important}.show-password{margin-top:10px!important} +.velocity-icon{height:55px;width:60px}@font-face{font-display:swap;font-family:Webkul Rango;font-style:normal;font-weight:400;src:url(../fonts/font-rango/rango.eot?o0evyv);src:url(../fonts/font-rango/rango.eot?o0evyv#iefix) format("embedded-opentype"),url(../fonts/font-rango/rango.ttf?o0evyv) format("truetype"),url(../fonts/font-rango/rango.woff?o0evyv) format("woff"),url(../fonts/font-rango/rango.svg?o0evyv#rango) format("svg")}.wk-icon{color:#0041ff;font-size:20px;font-weight:400;text-align:center}[class*=" rango-"],[class^=rango-]{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Webkul Rango!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.rango-activity:before{content:""}.rango-announcement:before{content:""}.rango-arrow-circle-down:before{content:""}.rango-arrow-circle-left:before{content:""}.rango-arrow-circle-right:before{content:""}.rango-arrow-circle-up:before{content:""}.rango-arrow-down:before{content:""}.rango-arrow-left:before{content:""}.rango-arrow-right:before{content:""}.rango-arrow-up:before{content:""}.rango-auction:before{content:""}.rango-baby:before{content:""}.rango-bag:before{content:""}.rango-ball-2:before{content:""}.rango-bar-code:before{content:""}.rango-batch:before{content:""}.rango-book:before{content:""}.rango-calender:before{content:""}.rango-camera:before{content:""}.rango-car:before{content:""}.rango-card:before{content:""}.rango-cart-1:before{content:""}.rango-cart-2:before{content:""}.rango-cart-3:before{content:""}.rango-circel-1:before{content:""}.rango-circel:before{content:""}.rango-circle-1:before{content:""}.rango-circle-2:before{content:""}.rango-circle-check:before{content:""}.rango-clear:before{content:""}.rango-close-2:before{content:""}.rango-close:before{content:""}.rango-cloth:before{content:""}.rango-coin:before{content:""}.rango-copy:before{content:""}.rango-currency:before{content:""}.rango-delete:before{content:""}.rango-donwload-1:before{content:""}.rango-download-1:before{content:""}.rango-edit-pencil:before{content:""}.rango-ellipse:before{content:""}.rango-envelop:before{content:""}.rango-exchange:before{content:""}.rango-exchnage:before{content:""}.rango-expend-collaps:before{content:""}.rango-expend:before{content:""}.rango-eye-hide:before{content:""}.rango-eye-visible:before{content:""}.rango-facebook:before{content:""}.rango-file:before{content:""}.rango-filter:before{content:""}.rango-flag:before{content:""}.rango-folder:before{content:""}.rango-food:before{content:""}.rango-furniture:before{content:""}.rango-gift:before{content:""}.rango-globe:before{content:""}.rango-google-plus:before{content:""}.rango-gps:before{content:""}.rango-graph-1:before{content:""}.rango-graph:before{content:""}.rango-heart-fill:before{content:""}.rango-heart:before{content:""}.rango-hold-cart:before{content:""}.rango-home:before{content:""}.rango-info:before{content:""}.rango-instagram:before{content:""}.rango-language-1:before{content:""}.rango-language:before{content:""}.rango-laptop:before{content:""}.rango-limit:before{content:""}.rango-linked-in:before{content:""}.rango-lipstick:before{content:""}.rango-location:before{content:""}.rango-lock-1:before{content:""}.rango-lock-2:before{content:""}.rango-map:before{content:""}.rango-message-1:before{content:""}.rango-message:before{content:""}.rango-minus:before{content:""}.rango-mobile:before{content:""}.rango-more:before{content:""}.rango-neckless:before{content:""}.rango-next:before{content:""}.rango-notification:before{content:""}.rango-num-pad:before{content:""}.rango-percentage:before{content:""}.rango-phone:before{content:""}.rango-picture:before{content:""}.rango-pintrest:before{content:""}.rango-play:before{content:""}.rango-plus:before{content:""}.rango-pos:before{content:""}.rango-power:before{content:""}.rango-previous:before{content:""}.rango-printer:before{content:""}.rango-product-add:before{content:""}.rango-product-retrun:before{content:""}.rango-product:before{content:""}.rango-produt-group:before{content:""}.rango-push:before{content:""}.rango-quotation:before{content:""}.rango-refresh:before{content:""}.rango-refrigrator:before{content:""}.rango-return-credit:before{content:""}.rango-return:before{content:""}.rango-search:before{content:""}.rango-security:before{content:""}.rango-setting-cog:before{content:""}.rango-setting-reset:before{content:""}.rango-share-1:before{content:""}.rango-share-2:before{content:""}.rango-shoes:before{content:""}.rango-shop:before{content:""}.rango-sign-in:before{content:""}.rango-sign-out:before{content:""}.rango-sort-1:before{content:""}.rango-sort-2:before{content:""}.rango-square-1:before{content:""}.rango-square-3:before{content:""}.rango-square-4:before{content:""}.rango-square-tick-fill:before{content:""}.rango-square:before{content:""}.rango-star-fill:before{content:""}.rango-star:before{content:""}.rango-stat-down:before{content:""}.rango-stat-up:before{content:""}.rango-support-head:before{content:""}.rango-t-shirt:before{content:""}.rango-table:before{content:""}.rango-tag-1:before{content:""}.rango-tag-2:before{content:""}.rango-tag-3:before{content:""}.rango-tag-4:before{content:""}.rango-tick-2:before{content:""}.rango-tick-square:before{content:""}.rango-tick:before{content:""}.rango-toggle:before{content:""}.rango-trophy:before{content:""}.rango-twitter:before{content:""}.rango-upload-2:before{content:""}.rango-upload:before{content:""}.rango-user-add:before{content:""}.rango-user-cash:before{content:""}.rango-user-group:before{content:""}.rango-user-info:before{content:""}.rango-user-owner:before{content:""}.rango-user-shop:before{content:""}.rango-user:before{content:""}.rango-van-ship:before{content:""}.rango-video-camera:before{content:""}.rango-video:before{content:""}.rango-view-grid:before{content:""}.rango-view-list:before{content:""}.rango-wifi-on:before{content:""}.rango-wifi:before{content:""}.rango-youtube:before{content:""}.rango-zoom-minus:before{content:""}.rango-zoom-plus:before{content:""}.velocity-icon{background-image:url(../images/Icon-Velocity.svg);height:48px;width:48px}.camera-icon,.velocity-icon{background-size:cover;display:inline-block}.camera-icon{background-image:url(../images/icon-camera.svg);width:24px}.active .velocity-icon,.active.velocity-icon,.router-link-active .velocity-icon,.router-link-active.velocity-icon{background-image:url(../images/Icon-Velocity-Active.svg)}.eye-icon{background-image:url(../images/icon-eye.svg);height:24px;width:24px}.cross-icon{background-image:url(../images/icon-crossed.svg);height:18px;width:18px}.ltr{direction:ltr}.rtl{direction:rtl}.padding-10,.padding-15{padding:15px}.fw5{font-weight:500}.fw6,.product-detail .right .info .price,.product-detail .right .info h2,.product-detail .right h3,.product-detail .right h4{font-weight:600}.fw7{font-weight:700}.fs13{font-size:13px!important}.fs14,.main-content-wrapper{font-size:14px}.fs15{font-size:15px}.account-content .account-layout .bottom-toolbar .pagination .page-item,.fs16,.product-detail .right{font-size:16px}.fs16i{font-size:16px!important}.fs17{font-size:17px}.fs18,.product-detail .right h3{font-size:18px}.fs19{font-size:19px}.fs20,.product-detail .right .info .price{font-size:20px}.fs24,.product-detail .right .info h2{font-size:24px}.fs30,.product-detail .right .info .price .card-current-price{font-size:30px}.fs40{font-size:40px}.pt0{padding-top:0!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt20{padding-top:20px!important}.pl0{padding-left:0!important}.pl5{padding-left:5px!important}.pl15{padding-left:15px!important}.pl10{padding-left:10px!important}.pl20{padding-left:20px!important}.pl30{padding-left:30px!important}.pl40{padding-left:40px!important}.pr0{padding-right:0!important}.pr5{padding-right:5px!important}.pr15{padding-right:15px!important}.pr40{padding-right:40px!important}.pb0{padding-bottom:0!important}.pb10{padding-bottom:10px!important}.pb15{padding-bottom:15px!important}.pb30{padding-bottom:30px!important}.mt5{margin-top:5px!important}.mt10{margin-top:10px}.mt15{margin-top:15px!important}.mr5{margin-right:5px}.mr7{margin-right:7px}.mr10{margin-right:10px}.mr15,.product-detail .right .options .buttons :not(:last-child),.product-detail .right .options .quantity>label{margin-right:15px}.mr20{margin-right:20px}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px}.mb20,.product-detail .right .options>*{margin-bottom:20px}.mb25{margin-bottom:25px}.mb30,.product-detail .right .customer-reviews .row{margin-bottom:30px}.ml0,.product-detail .right>div:not(:first-child){margin-left:0!important}.ml5{margin-left:5px}.ml10{margin-left:10px!important}.ml15{margin-left:15px!important}.ml30{margin-left:30px!important}.w-0{width:0!important}.w-5{width:5px!important}.w-10{width:10px!important}.w-15{width:15px!important}.body-blur{filter:blur(4px);-webkit-filter:blur(4px)}.no-margin{margin:0!important}.flex-wrap{flex-wrap:nowrap}.category-list-container .category,.cursor-pointer,.qty-btn>:not(:nth-child(2)){cursor:pointer}.cursor-not-allowed{cursor:not-allowed!important}.cursor-default{cursor:default}.grey{color:#9e9e9e}.clr-light{color:rgba(0,0,0,.53)}.clr-dark,.footer .footer-content .footer-statics .software-description p{color:hsla(0,0%,100%,.52)}.font-clr{color:rgba(0,0,0,.83)}.display-inbl,.product-detail .right .options .quantity>label{display:inline-block!important}.display-block,.product-detail .right .options label{display:block!important}.align-vertical-middle{vertical-align:middle}.full-width{width:100%}.full-image{height:100%;width:100%}.card-product-image-container .background-image-group,.full-back-size{background-size:100% 100%!important}.max-width-100{max-width:100%!important}.no-border{border:none!important}.back-pos-rt{background-position:100%}.account-content .account-layout .bottom-toolbar .pagination .page-item,.cart-details .continue-shopping-btn,.theme-btn{background-color:#26a37c!important;border:1px solid transparent;color:#fff!important;cursor:pointer;font-weight:600;padding:10px 20px;vertical-align:top;z-index:10}.account-content .account-layout .bottom-toolbar .pagination .page-item:focus,.account-content .account-layout .bottom-toolbar .pagination .page-item:hover,.cart-details .continue-shopping-btn:focus,.cart-details .continue-shopping-btn:hover,.theme-btn:focus,.theme-btn:hover{background-color:#26a37c!important;border:1px solid #247959;box-shadow:none;outline:none}.account-content .account-layout .bottom-toolbar .pagination .cart-details .continue-shopping-btn.page-item,.account-content .account-layout .bottom-toolbar .pagination .light.page-item,.account-content .account-layout .bottom-toolbar .pagination .page-item,.account-content .account-layout .bottom-toolbar .pagination .theme-btn.page-item,.cart-details .account-content .account-layout .bottom-toolbar .pagination .continue-shopping-btn.page-item,.cart-details .light.continue-shopping-btn,.theme-btn.light{background-color:#fff!important;border:1px solid rgba(0,0,0,.12);box-shadow:0 1px 0 0 #cfcfcf;color:#26a37c!important}.account-content .account-layout .bottom-toolbar .pagination .page-item:focus,.account-content .account-layout .bottom-toolbar .pagination .page-item:hover,.cart-details .light.continue-shopping-btn:focus,.cart-details .light.continue-shopping-btn:hover,.theme-btn.light:focus,.theme-btn.light:hover{background-color:#f5f5f5!important;border:1px solid #247959;box-shadow:none;outline:none}.account-content .account-layout .bottom-toolbar .pagination .page-item:hover,.btn-add-to-cart:hover,.cart-details .continue-shopping-btn:hover,.theme-btn:hover{background-color:#247959!important;border-color:#247959!important;text-decoration:none}.account-content .account-layout .bottom-toolbar .pagination .page-item:hover,.btn-add-to-cart:hover.light,.cart-details .continue-shopping-btn:hover.light,.theme-btn:hover.light{border:1px solid rgba(0,0,0,.12)!important}.norm-btn{background-color:#fff!important;border:1px solid #ccc;border-radius:2px;color:#111!important;font-size:14px;padding:9px 20px;vertical-align:top}.sale-btn{background-color:#26a37c;border:none;border-radius:12px;color:#fff;font-size:14px;padding:3px 10px;position:absolute;z-index:10}.bg-image,.small-card-container .product-image{background-position:top;background-repeat:no-repeat;background-size:contain;width:100%}#top #account .welcome-content *,.material-icons,.unselectable *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.card-arrow-container .card-arrow{background-color:#2b2b2b;box-shadow:0 0 0 1px rgba(39,44,48,.05),0 2px 7px 1px rgba(39,44,48,.16);display:block;height:20px;position:absolute;transform:rotate(45deg);-webkit-transform:rotate(45deg);width:20px;z-index:10}.card-arrow-container .card-arrow-tp{left:50%;top:-10px}.card-arrow-container .card-arrow-rt{right:-10px;top:50%}.card-arrow-container .card-arrow-bt{left:50%;top:calc(100% - 10px)}.card-arrow-container .card-arrow-lt{left:-7px;top:50%}.lg-card-container{cursor:pointer}.lg-card-container a{color:rgba(0,0,0,.83);text-decoration:none}.lg-card-container #quick-view-btn-container :hover{color:#fff!important}.lg-card-container .background-image-group{background-size:contain!important}.lg-card-container.grid-card .wishlist-icon i,.lg-card-container.list-card .wishlist-icon i{padding-left:10px}.lg-card-container.grid-card .product-price span:first-child,.lg-card-container.grid-card .product-price span:last-child,.lg-card-container.list-card .product-price span:first-child,.lg-card-container.list-card .product-price span:last-child{font-size:18px;font-weight:600}.lg-card-container.grid-card .card-current-price,.lg-card-container.list-card .card-current-price{font-size:18px}.lg-card-container.grid-card .product-rating .stars,.lg-card-container.list-card .product-rating .stars{display:inline-block}.lg-card-container.grid-card .product-rating span,.lg-card-container.list-card .product-rating span{vertical-align:middle}.lg-card-container.grid-card .product-information>div:not(:last-child),.lg-card-container.list-card .product-information>div:not(:last-child){margin-bottom:5px}.lg-card-container.grid-card img,.lg-card-container.list-card img{width:100%}.lg-card-container.list-card{margin-left:0;padding-left:0}.lg-card-container.list-card .background-image-group{height:100%}.lg-card-container.list-card .product-image{float:left;height:270px;max-height:200px;max-width:200px;position:relative;width:30%}.lg-card-container.list-card .product-image .quick-view-btn-container button{left:calc(50% - 40px)}.lg-card-container.list-card .product-information{float:right;padding-left:20px;width:70%}.lg-card-container.list-card .product-rating .stars{display:inline-block}.lg-card-container.list-card .product-rating span{vertical-align:top}.lg-card-container.list-card .product-information{display:table;height:200px}.lg-card-container.list-card .product-information>div{display:table-cell}.lg-card-container.list-card .product-price .sticker{display:block}.lg-card-container.list-card .wishlist-icon{display:inline-table;height:40px;padding-left:0!important;vertical-align:top}.lg-card-container.list-card .wishlist-icon i{display:table-cell;padding-left:0!important;vertical-align:middle}.lg-card-container.list-card .compare-icon{display:inline-table;padding-left:0}.lg-card-container.list-card .add-to-cart-btn{display:inline-block;float:left}.lg-card-container.grid-card{padding:15px}.lg-card-container.grid-card .product-image{background:#f2f2f2;margin-bottom:10px;max-height:350px;max-width:280px}.lg-card-container.grid-card .product-image img{display:block;height:100%}.lg-card-container.list-card:not(:first-child){margin-top:20px}.carousel-products.with-recent-viewed .btn-add-to-cart,.small-padding{padding:3px 4px!important}.medium-padding{padding:3px 10px!important}.general-container{cursor:pointer}.lg-card-container>.product-card{border:none}.general-container:hover,.lg-card-container:hover,.product-card-new:hover{box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.lg-card-container:hover .quick-view-btn-container{display:block}.product-card-new .product-rating,.text-nowrap{color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.small-card-container{cursor:pointer;margin-bottom:10px;margin-left:0!important;margin-right:0!important}.small-card-container .material-icons{font-size:16px}.small-card-container .product-image-container{display:inline-block;padding:0}.small-card-container .product-image{background-position:50%;height:70px;width:70px}.small-card-container .card-body{display:inline-block;padding:10px 0!important;width:50%}.small-card-container .card-body .product-name{color:#000;font-size:18px;margin-bottom:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.small-card-container .regular-price,.small-card-container .sticker{display:none}.small-card-container:hover{box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.text-down-3{position:relative;top:3px}.text-down-4{position:relative;top:4px}.text-down-6{position:relative;top:6px}.text-up-1{position:relative;top:-1px}.text-up-4{position:relative;top:-4px}.text-up-14{position:relative;top:-14px}ul.circle-list{padding-top:10px;text-align:center}ul.circle-list li.circle{border:1px solid #d8d8d8;border-radius:50%;cursor:pointer;display:inline-block;height:10px;width:10px}ul.circle-list li.circle.fill{background:#d8d8d8}ul.circle-list li.circle:not(:last-child){margin-right:6px}.hide{display:none}.category-breadcrumb{font-size:16px}.link-color{color:#4d7ea8}.account-content .account-layout .bottom-toolbar .pagination a.page-item,a.unset{color:unset!important;text-decoration:none!important}a.active-hover:hover{color:#4d7ea8!important;text-decoration:underline!important}a.remove-decoration,a.remove-decoration:active,a.remove-decoration:focus,a.remove-decoration:hover{text-decoration:none!important}.dropdown-icon:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;content:"";display:inline-block;margin-left:1rem;vertical-align:middle}.disable-box-shadow,.disable-box-shadow:active,.disable-box-shadow:focus,input:focus,select:focus{box-shadow:none!important;-o-box-shadow:0 5px 15px transparent;box-shadow:0 5px 15px transparent;outline:none!important}.control-error{color:#f05153}.mandatory,.required{width:100%}.mandatory:after,.required:after{color:#f05153;content:"*";font-size:16px;margin-left:-1px}a.default{color:rgba(0,0,0,.83)!important;text-decoration:none!important}.VueCarousel{cursor:pointer;width:100%}.VueCarousel .VueCarousel-inner{padding-top:5px}.VueCarousel .VueCarousel-slide:first-of-type .product-card-new{margin-left:5px}.VueCarousel .VueCarousel-navigation .VueCarousel-navigation-prev{left:10px}.VueCarousel .VueCarousel-navigation .VueCarousel-navigation-next{right:12px}.VueCarousel .VueCarousel-navigation span{font-size:32px}.navigation-hide .VueCarousel-navigation,.pagination-hide .VueCarousel-pagination{display:none}.layered-filter-wrapper,.scrollable{-ms-overflow-style:none;max-height:100%;overflow-y:scroll;scrollbar-width:none}.layered-filter-wrapper::-webkit-scrollbar,.scrollable::-webkit-scrollbar{width:0!important}button[disabled]{cursor:not-allowed;opacity:.5}.max-sm-img-dimension{max-height:110px;max-width:110px}.max-sm-img-dimension img{width:100%}.max-width{margin:0 auto!important;width:1440px!important}.styled-select{appearance:none;-moz-appearance:none;-webkit-appearance:none}.styled-select+.select-icon-container{position:relative}.styled-select+.select-icon-container .select-icon{font-size:16px;left:unset;pointer-events:none;position:absolute;right:10px;top:-24px}.down-arrow-container{color:rgba(0,0,0,.83);display:inline-block;position:relative;vertical-align:top}.down-arrow-container .rango-arrow-down{font-size:16px;left:-5px;position:absolute;top:10px}.select-icon{font-size:16px;left:-7px;position:relative;top:5px}.normal-text{color:#141516}.normal-white-text{color:hsla(0,0%,100%,.83)}.display-table{display:table}.display-table .cell{display:table-cell;vertical-align:middle}.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-left-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-right-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-left-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-right-icon,.account-content .sidebar .customer-sidebar .navigation li i.icon,.pagination .page-item.next .angle-left-icon,.pagination .page-item.next .angle-right-icon,.pagination .page-item.previous .angle-left-icon,.pagination .page-item.previous .angle-right-icon,.rango-default{speak:none;-webkit-font-smoothing:antialiased;font-family:Webkul Rango!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.max-height-350{max-height:350px}.border-normal{border:1px solid #dcdcdc}.has-error input,.has-error select,.has-error textarea{border-color:#f05153!important}.modal-parent{background:rgba(0,0,0,.7);height:100%;position:fixed;top:0;width:100%;z-index:1001}.compare-icon,.wishlist-icon{cursor:pointer;display:table;height:38px;margin-left:10px}.compare-icon i,.wishlist-icon i{display:table-cell;vertical-align:middle}.qty-btn,.qty-btn>*{display:inline-block;height:36px}.qty-btn>*{border:1px solid #ccc;line-height:3.5rem;padding:0 10px;vertical-align:top}.qty-btn>:not(:first-child){border-left:none;position:relative}.qty-btn>:nth-child(2){left:-4px}.qty-btn>:nth-child(3){left:-7px}.btn-add-to-cart{background-color:#26a37c!important;border-color:#26a37c!important;border-radius:0!important;color:#fff!important;padding:3px 14px!important}.btn-add-to-cart.large{padding:12px 18px}.btn-add-to-cart .rango-cart-1{padding-right:5px}.accordian .accordian-header{border-bottom:1px solid #d3d3d3;color:#3a3a3a;cursor:pointer;display:inline-block;font-size:18px;padding:20px 0;width:100%}.accordian .accordian-header i.rango-arrow{float:right;font-size:24px}.accordian .accordian-header i.rango-arrow:before{content:""}.accordian .accordian-content{display:none;padding-bottom:20px;width:100%}.accordian.active .accordian-header{border-bottom:0}.accordian.active .accordian-header i.rango-arrow:before{content:""}.accordian.active .accordian-content{border-bottom:1px solid #d3d3d3;display:inline-block}#date-of-birth:after{background-image:url(../images/icon-calendar.svg);content:"";display:inline-block;height:24px;margin-left:-34px;pointer-events:none;position:absolute;top:14%;vertical-align:middle;width:24px}.rtl #date-of-birth:after{left:54px}.review-page-container{padding:20px;position:relative}.review-page-container>div:first-child{height:-webkit-max-content;height:-moz-max-content;height:max-content;position:-webkit-sticky;position:sticky;top:40px}.review-page-container .category-breadcrumb{margin-bottom:30px}.review-page-container h2{font-size:24px;font-weight:600}.review-page-container h3{font-size:20px;font-weight:600}.review-page-container h4{font-size:16px;font-weight:600}.review-page-container .customer-reviews>div.row{display:block;padding-bottom:30px}.review-page-container .submit-btn{font-weight:600}.review-page-container .submit-btn button{padding:10px 15px}.customer-rating .rating-container{padding:30px 0}.customer-rating a{color:#4d7ea8}.customer-rating a:hover{text-decoration:none}.customer-rating .col-lg-6:first-child{border-right:1px solid #ccc}.customer-rating .rating-bar{background-color:#f7f7f9;height:5px;padding:0;position:relative;top:12px}.customer-rating .rating-bar>div{background-color:#111;height:100%;width:0}.account-content .account-layout .bottom-toolbar .pagination .customer-rating .page-item,.cart-details .customer-rating .light.continue-shopping-btn,.customer-rating .account-content .account-layout .bottom-toolbar .pagination .page-item,.customer-rating .cart-details .light.continue-shopping-btn,.customer-rating .theme-btn.light{margin-top:10px}.review-form{width:80%}.review-form>div{padding-top:30px}.review-form>div label{display:block;font-size:14px;font-weight:500}.review-form>div input,.review-form>div textarea{border:1px solid #ccc;border-radius:1px;font-size:16px;padding:5px 16px;resize:none;width:100%}.filters-container{margin:20px 0}.filters-container .toolbar-wrapper>div{display:inline-block;margin:0 20px 0 0}.filters-container .toolbar-wrapper>div label{font-weight:500;margin-right:10px}.filters-container .toolbar-wrapper>div select{padding:6px 16px}.filters-container .toolbar-wrapper>div .down-icon-position{background-color:#fff;pointer-events:none}.filters-container .toolbar-wrapper>div:not(:first-child){vertical-align:super}.filters-container .toolbar-wrapper .limiter:after{margin-left:10px}.view-mode{margin-bottom:20px}.view-mode .rango-view-grid-container{color:rgba(0,0,0,.83);cursor:pointer;display:inline-block;height:36px;padding:6px 0 0 5px;width:36px}.view-mode .rango-view-grid-container.active{background-color:#26a37c;color:#fff}.view-mode .rango-view-list-container{color:rgba(0,0,0,.83);cursor:pointer;display:inline-block;height:36px;padding:6px 0 0 5px;width:36px}.view-mode .rango-view-list-container.active{background-color:#26a37c;color:#fff}.modal-container{-webkit-animation:jelly .5s ease-in-out;animation:jelly .5s ease-in-out;-webkit-animation:fade-in-white .3s ease-in-out;animation:fade-in-white .3s ease-in-out;background:#fff;border-radius:5px;box-shadow:0 15px 25px 0 rgba(0,0,0,.03),0 20px 45px 5px rgba(0,0,0,.2);font-size:14px;left:50%;margin-left:-300px;max-height:80%;max-width:80%;overflow-y:auto;position:fixed;top:100px;width:600px;z-index:11}.modal-container .modal-header h3{color:rgba(0,0,0,.83);display:inline-block;font-size:20px;margin:0}.modal-container .modal-header .icon{cursor:pointer}.modal-container .modal-header .icon.remove-icon{background-image:url(../images/Icon-remove.svg);height:24px;width:24px}.modal-container .modal-body{padding:20px}.modal-container .modal-body .control-group .control{width:100%}.product-card-new{border:none!important;height:385px;margin:0 5px 10px 10px;width:12rem}.product-card-new .category-product-image-container{height:190px;margin:0 auto;position:relative}.product-card-new .category-product-image-container img{max-height:100%;max-width:100%}.product-card-new .product-image-container{max-height:190px;position:relative}.product-card-new .product-image-container img{max-height:190px;min-height:190px;width:100%}.product-card-new .card-current-price{font-size:18px}.product-card-new .product-rating .stars{display:inline-block}.product-card-new .product-rating span{font-size:14px;vertical-align:middle}.product-card-new .product-rating .material-icons{font-size:16px}.product-card-new .card-body{cursor:default}.product-card-new .card-body>div:last-child{margin-top:10px}.product-card-new .card-body .product-name,.product-card-new .card-body .product-rating{margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:15rem}.product-card-new .card-body .product-price{margin-bottom:15px}.product-card-new .sticker{display:block}.product-card-new .card-body .compare-icon,.product-card-new .card-body .wishlist-icon{display:none;left:0;margin-left:5px;margin-right:5px;position:absolute;top:10px}.product-card-new .card-body .compare-icon{left:unset;right:0}.product-card-new .card-body .add-to-cart-btn{position:relative;width:100%}.product-card-new .card-body .add-to-cart-btn .btn-add-to-cart{max-width:140px;max-width:100%!important;width:100%}.carousel-products.with-recent-viewed .product-card-new .card-body .add-to-cart-btn .btn-add-to-cart,.product-card-new .card-body .add-to-cart-btn .btn-add-to-cart.small-padding,.product-card-new .card-body .add-to-cart-btn .carousel-products.with-recent-viewed .btn-add-to-cart{max-width:130px}.quick-view-btn-container{bottom:10px;display:none;left:-20px;position:absolute;width:100%}.quick-view-btn-container span{color:#fff;font-size:16px;left:32%;position:absolute;top:-28px;z-index:1}.quick-view-btn-container button{background-color:#0d2438;border:none;color:#fff;font-size:16px;left:30%;opacity:.8;padding:5px 10px 7px 24px;position:absolute;top:-36px}.product-card-new:hover #quick-view-btn-container{display:block}.product-card-new:hover .category-product-image-container,.product-card-new:hover .product-image-container{overflow:hidden}.product-card-new:hover .category-product-image-container img,.product-card-new:hover .product-image-container img{transform:scale(1.05);transition:all .5s}.product-card-new:hover .compare-icon,.product-card-new:hover .wishlist-icon{display:block}.product-card-new:hover .sticker{display:none}.lg-card-container:hover .product-image{overflow:hidden}.lg-card-container:hover .product-image img{transform:scale(1.05);transition:all .5s}.quantity label{float:left;padding:5px 15px 10px 0}.quantity .input-btn-group button{background:transparent;border:1px solid #dcdcdc;height:38px;padding:7px;text-align:center}.quantity .input-btn-group button.decrease{border-right:0}.quantity .input-btn-group button.increase{border-left:0}.quantity .input-btn-group button:active,.quantity .input-btn-group button:focus,.quantity .input-btn-group button:hover{outline:none}.quantity .input-btn-group button .rango-minus,.quantity .input-btn-group button .rango-plus{font-size:20px;vertical-align:middle}.quantity .input-btn-group input{border:1px solid #dcdcdc;border-left:0;border-right:0;font-size:16px;font-weight:600;height:38px;margin-left:-5px;margin-right:-5px;max-width:50px;text-align:center;vertical-align:top}.quantity.has-error button{border-color:#fc6868;color:#fc6868}.quantity .control-error{display:block}.form-container .container{margin:0 auto;padding-top:30px;width:65%}.form-container .container .heading{display:inline-block;margin-bottom:28px;width:100%}.form-container .container .heading h2{display:inline-block;line-height:4rem}.form-container .container .heading .btn-new-customer{float:right;font-size:16px}.form-container .container .body{border:1px solid #ccc;font-size:16px;margin-bottom:60px;padding:35px 55px}.form-container .container .body .form-header{margin-bottom:20px}.form-container .container .body form>div{padding-bottom:20px}.form-container .back-button{float:right}.container-right>.recently-viewed{padding-top:20px}.rango-star{cursor:default}.customer-options{float:right;padding:20px;top:40px;width:200px!important}.customer-options .customer-session{padding:10px 20px 0}.customer-options .customer-session label{color:#9e9e9e;font-size:18px;text-transform:uppercase}.customer-options li{height:unset!important;padding:3px 0}.customer-options li a{display:block;padding:0 20px!important}.customer-options a{font-size:16px}.cart-btn-collection button[type=button].btn-secondary{background-color:#fff;border:none;color:#111;font-size:16px}.cart-btn-collection button[type=button].btn-secondary :hover{background-color:#fff!important;color:#111!important}.cart-btn-collection button[type=button].btn-secondary :active,.cart-btn-collection button[type=button].btn-secondary :focus{box-shadow:none;outline:none}.cart-btn-collection button[type=button].btn-secondary #cart-count{background:#21a179;border-radius:50%;color:#fff;left:-20px;min-width:20px;padding:4px;position:relative;top:-15px}.dropdown-icon-custom:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;color:#000;content:"";display:inline-block;font-size:16px;margin-left:1rem;position:relative;top:-5px;vertical-align:middle}#cart-modal-content{border-top:4px solid #26a37c;position:absolute;right:0;top:40px;width:350px;z-index:100}#cart-modal-content .close{padding:0;position:relative;right:15px;top:12px}#cart-modal-content .mini-cart-container{font-size:14px;height:100%;max-height:200px;overflow-y:scroll;padding:10px 15px 0 20px;width:100%}#cart-modal-content .small-card-container{margin:0;padding:0;width:100%}#cart-modal-content .small-card-container .product-image-container{border:1px solid #ececec;margin:10px 10px 10px 0}#cart-modal-content .small-card-container label{float:left;margin-top:7px}#cart-modal-content .small-card-container input{border:1px solid #ececec;font-weight:500;height:36px;text-align:center;width:40px}#cart-modal-content .small-card-container .card-total-price{float:right}#cart-modal-content .small-card-container .remove-item{background:#111;border-radius:50%;color:#fff;left:-10px;padding:0 4px;position:absolute;top:-10px}#cart-modal-content .small-card-container .remove-item .rango-close{font-size:12px;font-weight:600;padding:0}#cart-modal-content .small-card-container:hover{box-shadow:none}#cart-modal-content .modal-footer{padding-right:15px}.cart-details{padding:40px 0}.cart-details h1{margin-bottom:30px}.cart-details h2{margin-bottom:25px}.cart-details .cart-details-header .cart-header{border-bottom:2px solid #e5e5e5;margin-bottom:20px;max-height:45px;padding-bottom:20px!important}.cart-details .cart-details-header .cart-header>h3{font-size:16px;font-weight:600}.cart-details .cart-content{padding:0}.cart-details .cart-content .product-quantity .quantity{display:inline-block;float:right;width:unset}.cart-details .cart-content .product-quantity .quantity label{display:none!important}.cart-details .cart-content .destop-cart-view{display:block}.cart-details .cart-content .mobile-view{display:none}.cart-details .cart-content .cart-item-list>.row{margin-bottom:40px}.cart-details .cart-content .cart-item-list>.row:last-child{border-bottom:2px solid #e5e5e5;margin-bottom:20px;padding-bottom:20px}.cart-details .cart-content .cart-item-list .product-image-container{max-height:110px;max-width:110px;padding:0}.cart-details .cart-content .cart-item-list .wishlist-icon{display:inline;margin:0}.cart-details .cart-content .product-details-content{padding-left:20px}.cart-details .cart-content .product-details-content .row{font-size:16px}.cart-details .cart-content .product-details-content .row .card-current-price{font-size:18px}.cart-details .cart-content .product-details-content .row>a{line-height:20px}.cart-details .cart-content .product-details-content .item-price{font-size:18px;font-weight:600;margin-top:12px!important}.cart-details .cart-content .product-details-content .item-actions{margin-top:12px!important}.cart-details .cart-content .product-details-content .item-actions .d-inline-block{float:left}.cart-details .cart-content .product-details-content .item-actions .d-inline-block:first-child{margin-right:30px}.cart-details .cart-content .product-details-content .item-actions .d-inline-block .material-icons{float:left;margin-left:-2px;margin-right:5px}.cart-details .cart-content .product-details-content .item-actions .d-inline-block .rango-delete{margin-left:-2px}.cart-details .cart-content .product-quantity .quantity{position:relative;top:-8px}.cart-details .cart-content .misc{display:flex;justify-content:space-between}.cart-details .continue-shopping-btn{margin-left:15px;margin-top:20px;max-width:156px}.cart-details .coupon-container{margin-top:20px}.cart-details .coupon-container .control-error{padding:10px 0}@media only screen and (max-width:375px){.cart-details .cart-content .misc{flex-direction:column}.cart-details .cart-content .misc button{margin-top:10px}}.account-content{min-height:100vh}.account-content ol.breadcrumb{background-color:transparent;list-style:none;margin:0 0 2;padding:0}.account-content ol.breadcrumb li.breadcrumb-item{display:inline-block}.account-content ol.breadcrumb li.breadcrumb-item+.breadcrumb-item:before{content:"/";display:inline-block;padding-left:5px;padding-right:5px}.account-content .sidebar{border-right:1px solid #e5e5e5;height:100%}.account-content .sidebar .customer-sidebar .account-details{padding:25px 20px;text-align:center}.account-content .sidebar .customer-sidebar .account-details .customer-name{display:inline-block;font-size:24px;height:60px;margin:0 auto 5px;width:60px}.account-content .sidebar .customer-sidebar .account-details .customer-name-text{color:rgba(0,0,0,.83)}.account-content .sidebar .customer-sidebar .account-details .customer-email{color:#9e9e9e}.account-content .sidebar .customer-sidebar .navigation,.account-content .sidebar .customer-sidebar .navigation li{width:100%}.account-content .sidebar .customer-sidebar .navigation li.active,.account-content .sidebar .customer-sidebar .navigation li:hover{background-color:#ececec;color:#28557b}.account-content .sidebar .customer-sidebar .navigation li i.icon{font-size:18px;padding-right:5px}.account-content .sidebar .customer-sidebar .navigation li i.icon.profile:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.address:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.reviews:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.wishlist:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.orders:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.downloadables:before{content:""}.account-content .sidebar .customer-sidebar .navigation li i.icon.compare:before{content:""}.account-content .sidebar .customer-sidebar .navigation li a{display:block;padding:10px 15px}.account-content .sidebar .customer-sidebar .navigation li:last-child{margin-bottom:0}.account-content .account-layout{color:rgba(0,0,0,.83);padding:15px 20px 60px}.account-content .account-layout .account-table-content.profile-page-content .table{width:100%!important}.account-content .account-layout .table table tr{border:1px solid #ccc;height:auto!important}.account-content .account-layout .table table tr td{border-right:1px solid #ccc!important;border-top:none;width:auto}.account-content .account-layout.right{padding-left:250px!important}.account-content .account-layout .account-head{display:flex;justify-content:space-between;margin-bottom:20px}.account-content .account-layout .account-heading{font-size:24px;font-weight:600}.account-content .account-layout .account-table-content .control-group,.account-content .account-layout .account-table-content>.row{margin-bottom:30px}.account-content .account-layout .account-table-content label{font-weight:500}.account-content .account-layout .account-table-content input,.account-content .account-layout .account-table-content select,.account-content .account-layout .account-table-content textarea{background:#fff;border:1px solid #ccc;border-radius:1px;font-size:16px;padding:5px 16px;resize:none;width:100%}.account-content .account-layout .account-table-content input[type=search]{padding-left:35px}.account-content .account-layout .account-table-content input:active,.account-content .account-layout .account-table-content input:focus,.account-content .account-layout .account-table-content select:active,.account-content .account-layout .account-table-content select:focus,.account-content .account-layout .account-table-content textarea:active,.account-content .account-layout .account-table-content textarea:focus{border-color:#26a37c}.account-content .account-layout .account-table-content .address-holder{margin-top:30px}.account-content .account-layout .account-table-content .address-holder>div{margin:5px 0;padding-left:0}.account-content .account-layout .account-table-content .address-holder .card{height:100%}.account-content .account-layout .account-table-content .account-items-list{margin-bottom:40px}.account-content .account-layout .account-table-content.profile-page-content .table{margin-bottom:15px;padding:0;width:800px}.account-content .account-layout .account-table-content.profile-page-content .table>table{border:1px solid rgba(0,0,0,.125);color:#5e5e5e;width:100%}.account-content .account-layout .account-table-content.profile-page-content .table td{border:unset;padding:6px 12px}.account-content .account-layout .account-table-content .image-wrapper{display:inline-block;margin-bottom:20px;margin-top:10px;width:100%}.account-content .account-layout .account-table-content .image-wrapper .image-item{background:#f8f9fa;background-image:url(/vendor/webkul/ui/assets/images/placeholder-icon.svg);background-position:50%;background-repeat:no-repeat;border-radius:3px;display:inline-block;height:200px;margin-bottom:20px;margin-right:20px;position:relative;width:200px}.account-content .account-layout .account-table-content .image-wrapper .image-item .remove-image{background-image:linear-gradient(-180deg,rgba(0,0,0,.08),rgba(0,0,0,.24));border-radius:0 0 4px 4px;bottom:0;color:#fff;cursor:pointer;left:0;margin-bottom:0;margin-right:20px;padding:10px;position:absolute;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.24);width:100%}.account-content .account-layout .account-table-content .image-wrapper .image-item input{display:none}.account-content .account-layout .account-table-content .image-wrapper .image-item img.preview{height:100%;width:100%}.account-content .account-layout .account-items-list.wishlist-container{margin:0 auto;width:100%}.account-content .account-layout .account-items-list.wishlist-container .product-card-new{width:19rem}.account-content .account-layout .reviews-container>.row{margin-bottom:40px}.account-content .account-layout .bottom-toolbar .pagination{margin:0}.account-content .account-layout .bottom-toolbar .pagination a:not([href]).next,.account-content .account-layout .bottom-toolbar .pagination a:not([href]).previous{color:#9e9e9e!important;cursor:not-allowed}.account-content .account-layout .bottom-toolbar .pagination .page-item{border:none!important;box-shadow:unset!important;-webkit-box-shadow:unset!important}.account-content .account-layout .bottom-toolbar .pagination .page-item.active{border:1px solid #26a37c;color:#26a37c!important}.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-left-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-right-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-left-icon,.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-right-icon{background:unset;font-size:24px;margin:0;text-align:center}.account-content .account-layout .bottom-toolbar .pagination .page-item.next .angle-right-icon:before{content:""}.account-content .account-layout .bottom-toolbar .pagination .page-item.previous .angle-left-icon:before{content:""}.account-content .account-layout .sale-container{font-size:16px}.account-content .account-layout .sale-container .tabs ul{font-size:20px;font-weight:600;list-style-type:none}.account-content .account-layout .sale-container .tabs ul li{border-bottom:2px solid transparent;cursor:pointer;display:inline-block;padding:10px 15px}.account-content .account-layout .sale-container .tabs ul li.active{border-bottom:2px solid #26a37c;cursor:default}.account-content .account-layout .sale-container .tabs-content .sale-section{border-bottom:1px solid #ccc;padding:20px 0 10px}.account-content .account-layout .sale-container .tabs-content .sale-section .section-title{color:#9e9e9e;font-size:18px;font-weight:600;padding-bottom:10px}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content label+span{color:#9e9e9e;font-weight:600}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content .totals{display:inline-block;width:100%}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content .totals .sale-summary{float:right}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content .totals .sale-summary tbody tr td:first-child{width:200px}.account-content .account-layout .sale-container .tabs-content .sale-section .section-content .table table{width:100%}.account-content .account-layout .sale-container .order-box-container{padding:10px 0}.account-content .account-layout .sale-container .order-box-container .box{display:inline-block;vertical-align:top;width:calc(25% - 5px)}.account-content .account-layout .sale-container .order-box-container .box .box-title{color:#9e9e9e;font-size:18px;font-weight:600;padding:10px 0}.account-content .select-icon{font-size:22px;left:95%;position:relative;top:-28px}#alert-container{font-size:16px;position:fixed;right:15px;top:50px;z-index:100}#alert-container .alert{max-height:100px!important;max-width:400px!important;min-height:45px!important}#alert-container .alert.alert-dismissible .close{font-size:23px;padding:.3rem 1.25rem}.wishlist-icon{vertical-align:middle}.wishlist-icon i{color:#111}.checkout-process{padding:40px 20px}.checkout-process .accordian-header h3{margin-bottom:0!important}.checkout-process .coupon-container{margin-top:20px}.checkout-process h1{font-weight:600;margin-bottom:30px}.checkout-process .layered-filter-wrapper,.checkout-process .scrollable{padding-top:25px}.checkout-process .order-summary-container{top:75px}.account-content .account-layout .bottom-toolbar .pagination .checkout-process .order-summary-container .page-item,.cart-details .checkout-process .order-summary-container .continue-shopping-btn,.checkout-process .order-summary-container .account-content .account-layout .bottom-toolbar .pagination .page-item,.checkout-process .order-summary-container .cart-details .continue-shopping-btn,.checkout-process .order-summary-container .theme-btn,.checkout-process .order-summary-container.bottom h3{display:none}.checkout-process input[type=radio]{transform:scale(1.3);-ms-transform:scale(1.3);-webkit-transform:scale(1.3)}.checkout-process .styled-select{cursor:pointer}.checkout-process .styled-select+.select-icon{font-size:20px;left:92%;position:absolute;top:55%}.checkout-process .coupon-container input{max-width:200px}.checkout-process .coupon-container button{margin:20px 0 30px}.checkout-process .coupon-container .applied-coupon-details{font-size:16px;margin-bottom:10px}.checkout-process .coupon-container .applied-coupon-details label:first-of-type{color:#26a37c}.checkout-process .coupon-container .rango-close{cursor:pointer;margin-left:5px}.address-container .address-holder{margin-top:15px}.address-container .address-holder>div{margin:5px 0;padding-left:0}.address-container .address-holder .card{height:100%}.address-container .address-holder .card h5{font-size:14px}.address-container .address-holder .card .add-address-button{display:table;height:100%;text-align:center}.address-container .address-holder .card .add-address-button>div{display:table-cell;vertical-align:middle}.address-container .address-holder .card .add-address-button>div span{vertical-align:super}.custom-form .form-field{margin-bottom:30px;padding:0}.custom-form label{font-size:16px;font-weight:500;margin-bottom:5px}.custom-form input[type=password],.custom-form input[type=search],.custom-form input[type=text],.custom-form select{background:#fff;border:1px solid #ccc;border-radius:1px;font-size:16px;height:36px;padding:5px 16px;resize:none;width:100%}.custom-form input[type=checkbox]{position:relative;top:3px}.custom-form input:active,.custom-form input:focus,.custom-form select:active,.custom-form select:focus{border-color:#26a37c}.payment-form .payment-methods>.row,.payment-form .shipping-methods>.row,.payment-form h3,.review-checkout-conainer .payment-methods>.row,.review-checkout-conainer .shipping-methods>.row,.review-checkout-conainer h3,.shipping-form .payment-methods>.row,.shipping-form .shipping-methods>.row,.shipping-form h3{margin-bottom:20px}.payment-form .payment-methods .instructions,.payment-form .shipping-methods .instructions,.review-checkout-conainer .payment-methods .instructions,.review-checkout-conainer .shipping-methods .instructions,.shipping-form .payment-methods .instructions,.shipping-form .shipping-methods .instructions{margin-left:-13px;margin-top:5px}.payment-form .payment-methods .instructions label,.payment-form .shipping-methods .instructions label,.review-checkout-conainer .payment-methods .instructions label,.review-checkout-conainer .shipping-methods .instructions label,.shipping-form .payment-methods .instructions label,.shipping-form .shipping-methods .instructions label{font-size:14px;font-weight:600}.payment-form .payment-methods .instructions p,.payment-form .shipping-methods .instructions p,.review-checkout-conainer .payment-methods .instructions p,.review-checkout-conainer .shipping-methods .instructions p,.shipping-form .payment-methods .instructions p,.shipping-form .shipping-methods .instructions p{color:#777;font-size:14px;font-style:italic;margin:0}.payment-form .address-summary li,.review-checkout-conainer .address-summary li,.shipping-form .address-summary li{display:inline-block}.payment-form .cart-item-list,.review-checkout-conainer .cart-item-list,.shipping-form .cart-item-list{border-bottom:1px solid #e5e5e5;padding:20px 0}.payment-form .cart-item-list h4,.review-checkout-conainer .cart-item-list h4,.shipping-form .cart-item-list h4{border-bottom:1px solid #e5e5e5;margin-bottom:20px!important;padding-bottom:20px}.payment-form .cart-item-list>.row:first-child,.review-checkout-conainer .cart-item-list>.row:first-child,.shipping-form .cart-item-list>.row:first-child{margin-top:50px}.payment-form .cart-item-list>.row,.review-checkout-conainer .cart-item-list>.row,.shipping-form .cart-item-list>.row{margin-bottom:20px}.payment-form .cart-details,.review-checkout-conainer .cart-details,.shipping-form .cart-details{padding:40px 0}.order-summary-container{height:-webkit-max-content;height:-moz-max-content;height:max-content;max-width:500px!important;padding-top:25px;position:-webkit-sticky!important;position:sticky!important;top:50px}.order-summary-container>div{width:100%}.order-summary-container .order-summary{border:1px solid #e5e5e5;padding:25px 30px}.order-summary-container .order-summary>h3{margin-bottom:20px}.order-summary-container .order-summary>.row:not(:last-child){margin-bottom:10px}.order-summary-container .order-summary #grand-total-detail{border-top:1px solid #e5e5e5;margin-bottom:25px;margin-top:15px;padding-top:15px}.order-success-content{font-size:16px;padding:40px 20px}.search-result-status{align-items:center;display:flex;flex-direction:column;justify-content:center;width:100%}#address-section .form-header h3{margin-bottom:20px}.attached-products-wrapper{margin-top:20px}#related-products-carousel .product-card-new:first-child{margin-left:0!important}.price-label{margin-right:6px}.product-price{display:inline-block}.product-price .price-label{margin-right:6px}.product-price .regular-price{display:inline-block;font-size:14px;font-weight:500;text-decoration:line-through}.product-price .special-price{display:inline-block;float:left;margin-right:10px}.product-price .price-from .bundle-regular-price{font-size:12px!important;font-weight:500;margin-right:10px;text-decoration:line-through}.product-price .price-from .bundle-special-price{font-size:15px!important;font-weight:600}.product-price .price-from .bundle-to{display:block;font-size:15px!important;font-weight:500;margin-bottom:1px;margin-top:1px}.product-price span.price-label{font-size:14px!important;font-weight:500!important}.product-price span.final-price{font-size:18px;font-weight:600}.sticker{border:none;border-radius:12px;color:#fff;display:none;font-size:14px;font-weight:600;left:8px;padding:2px 10px;position:absolute;top:8px}.sticker.sale{background-color:#f05153;padding:2px 14px}.sticker.new{background-color:#26a37c;display:block}#app{min-height:65vh;position:relative}.main-container-wrapper .sticky-header{background:#fff;height:56px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.main-container-wrapper .sticky-header.header-shadow{box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.search-container{padding:30px 20px}.search-container .lg-card-container.list-card{margin:0 15px}.search-container :first-child{margin-top:0}.method-sticker{background-color:#141516;border-radius:1px;color:#cfcfd0;display:inline-block;font-size:13px;margin-bottom:3px;margin-right:3px;padding:4px 8px;text-align:center}.sidebar{width:230px;z-index:1000000}.sidebar .category-content .category-title{font-weight:600;position:relative;top:-1px}.sidebar .category-content .rango-arrow-right{position:relative;top:4px}.sidebar .category-content .category-icon{display:inline-block;height:20px;padding-right:5px;width:25px}.sidebar .category-content .category-icon img{height:100%;vertical-align:text-top;width:100%}.sidebar li:hover>a>span{color:#28557b}.sidebar .sub-categories{display:none}.sidebar .sub-categories .category{padding:5px 0 4px 15px}.sidebar .sub-categories .category+.nested{color:rgba(0,0,0,.83)}.sidebar .sub-categories .category+.nested li a{padding-top:0}.sidebar .sub-categories .category+.nested li a .category-title{font-weight:500;padding-left:28px}.sidebar .sub-categories .category .category-title{vertical-align:top}.category-list-container{background:#fff;box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);padding:0!important;position:absolute!important;z-index:10}.category-list-container .category{display:inline-block;line-height:2.5rem;width:100%}.category-list-container .category span{position:relative;top:-4px}.category-list-container li a{padding:7px 0 5px 15px}.category-list-container li a:hover{background:#ececec}.category-list-container .sub-categories{background:#fff;border-left:1px solid #ccc;box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);height:100%;left:100%;min-height:330px;overflow-y:scroll;padding-top:10px;position:absolute;top:-1px;z-index:100}.category-list-container .sub-categories li:last-of-type{margin-bottom:10px}#sidebar-level-0{border-top:1px solid #ccc;display:none;z-index:100000}.grouped-product-container .grouped-product-list ul li{display:inline-block;font-size:18px;margin-bottom:10px;width:100%}.grouped-product-container .grouped-product-list ul li:last-child{margin-bottom:0}.grouped-product-container .grouped-product-list ul li:first-child span{font-weight:600}.grouped-product-container .grouped-product-list ul li:first-child span:last-child{float:right;text-align:left;width:50px}.grouped-product-container .grouped-product-list ul li .name{display:inline-block;font-size:16px;vertical-align:middle}.grouped-product-container .grouped-product-list ul li .qty{float:right}.grouped-product-container .grouped-product-list ul li .qty .control-group{border-top:0;height:45px;margin-bottom:0;max-width:none;padding-top:0;text-align:center;width:auto}.grouped-product-container .grouped-product-list ul li .qty .control-group label{display:none}.grouped-product-container .grouped-product-list ul li .qty .control-group .control{line-height:38px;text-align:center;width:60px}.grouped-product-container .grouped-product-list ul li .qty .control-group>*{height:100%}.bundle-options-wrapper .bundle-option-list{border-top:1px solid hsla(0,0%,64%,.2);padding:15px 0}.bundle-options-wrapper .bundle-option-list h3{color:#242424;font-size:16px;margin:0}.bundle-options-wrapper .bundle-option-list .bundle-option-item{border-bottom:1px solid hsla(0,0%,64%,.2);display:inline-block;padding:15px 0;width:100%}.bundle-options-wrapper .bundle-option-list .bundle-option-item:last-child{border-bottom:0;padding-bottom:0}.bundle-options-wrapper .bundle-option-list .bundle-option-item .control-group{color:#5e5e5e;margin-bottom:0}.bundle-options-wrapper .bundle-option-list .bundle-option-item .control-group label{color:#242424}.bundle-options-wrapper .bundle-option-list .bundle-option-item .control-group .control{color:#5e5e5e}.bundle-options-wrapper .bundle-option-list .bundle-option-item .quantity{border-top:0}.bundle-options-wrapper .bundle-option-list .bundle-option-item .control-error{float:left;width:100%}.bundle-options-wrapper .bundle-option-list .bundle-option-item.has-error button{border-color:#fc6868;color:#fc6868}.bundle-options-wrapper .bundle-summary{border-top:1px solid hsla(0,0%,64%,.2);padding:15px 0}.bundle-options-wrapper .bundle-summary h3{color:#242424;font-size:16px;margin:0}.bundle-options-wrapper .bundle-summary .quantity{border-top:0}.bundle-options-wrapper .bundle-summary .bundle-price{color:#ff6472;font-size:24px;font-weight:600;margin-top:10px}.bundle-options-wrapper .bundle-summary ul.bundle-items li{margin-bottom:20px}.bundle-options-wrapper .bundle-summary ul.bundle-items li:last-child{margin-bottom:0}.bundle-options-wrapper .bundle-summary ul.bundle-items li .selected-products{color:#5e5e5e}.category-container .grid-card,.search-container .grid-card{width:15rem}.downloadable-container .sample-list{padding:5px 0}.downloadable-container .sample-list h3{font-size:16px;margin-top:0}.downloadable-container .sample-list ul li{margin-bottom:5px}.downloadable-container .sample-list ul li:last-child{margin-bottom:0}.downloadable-container .link-list{padding:5px 0}.downloadable-container .link-list h3{font-size:16px;margin-top:0}.downloadable-container .link-list h3.required:after{color:#f05153;content:"*";font-size:16px;margin-left:-1px}.downloadable-container .link-list ul li{margin-bottom:15px}.downloadable-container .link-list ul li:last-child{margin-bottom:0}.downloadable-container .link-list ul li .checkbox input[type=checkbox]{height:15px!important;margin-left:-10px;width:15px!important}.downloadable-container .link-list ul li a{float:right;margin-top:3px}.category-container{margin-left:15px;min-height:670px;padding:40px 15px!important}.category-container .hero-image{display:inline-block}.category-container .hero-image img{height:100%;margin-bottom:30px;max-height:500px;width:100%}.vue-slider .vue-slider-rail{background-color:#ccc}.vue-slider .vue-slider-dot-handle{background-color:#fff;border-radius:50%;box-shadow:.5px .5px 2px 1px rgba(0,0,0,.32);height:100%;width:100%}.vue-slider .vue-slider-dot-tooltip-inner,.vue-slider .vue-slider-dot-tooltip-text{background-color:#26a37c!important;border-color:#26a37c!important}.vue-slider .vue-slider-dot-tooltip-text{border-radius:5px;color:#fff;display:block;font-size:14px;min-width:20px;padding:2px 5px;text-align:center;white-space:nowrap}.vue-slider .vue-slider-dot-tooltip-text:before{border:6px solid transparent\0;border-top-color:inherit;bottom:-10px;content:"";height:0;left:50%;position:absolute;transform:translate(-50%);width:0}.vue-slider .vue-slider-process{background-color:#26a37c!important}.full-content-wrapper>.container-fluid{margin-bottom:60px!important;padding:0!important}.full-content-wrapper>.container-fluid>.row{padding:0 15px!important}.full-content-wrapper div>.container-fluid,.full-content-wrapper p>.container-fluid{margin-bottom:60px!important;padding:0!important}.full-content-wrapper div>.container-fluid>.row,.full-content-wrapper p>.container-fluid>.row{padding:0 15px!important}.slides-container{position:relative}.slides-container .VueCarousel-pagination{display:none}.slides-container .VueCarousel-pagination button:active,.slides-container .VueCarousel-pagination button:focus{box-shadow:none;outline:none}.slides-container .VueCarousel-pagination .VueCarousel-dot{padding:5px!important}.slides-container .VueCarousel-dot--active{background-color:#26a37c!important}.slides-container .VueCarousel .VueCarousel-inner{padding-top:0}.slides-container .VueCarousel .VueCarousel-slide{position:relative}.slides-container .VueCarousel .VueCarousel-slide .show-content{display:table;height:100%;left:0;position:absolute;text-align:center;top:0;width:100%}.slides-container .VueCarousel .VueCarousel-slide .show-content p{display:table-cell;vertical-align:middle}.filter-attributes-item{border-bottom:1px solid #ccc;margin-bottom:10px}.filter-attributes-item.active .filter-attributes-content{display:block}.filter-attributes-item .filter-input{margin:10px 15px 13px -4px}.filter-attributes-item .filter-input input[type=text]{background-color:#fff;border:1px solid #26a37c;text-align:center;width:30%}.filter-attributes-item input[type=checkbox]+span{margin-left:10px!important}.filter-attributes-content{display:none;margin-left:7px}.layered-filter-wrapper{margin-bottom:42px;max-height:670px;overflow-x:hidden;padding:42px 10px 0}.layered-filter-wrapper .recently-viewed{margin-top:20px}.layered-filter-wrapper .recently-viewed h2{font-size:18px}.selective-div{-webkit-appearance:none;width:150px}.select-icon-margin{margin-left:96px;margin-top:10px}.down-icon-position{position:absolute}.select-icon-show-margin{margin-left:35px;margin-top:10px}.down-arrow-margin{margin-left:75px;margin-top:8px}.vc-header{box-shadow:0 1px 3px rgba(0,0,0,.16),0 1px 3px rgba(0,0,0,.23);margin:0!important;padding:0!important;z-index:10}.new-products-recent{position:relative;top:-44px}.recently-viewed-products-wrapper{padding:2px}.recently-viewed-products-wrapper .price-from .bundle-regular-price{display:none}.recently-viewed-products-wrapper .price-from .bundle-special-price{font-size:15px!important;font-weight:600}.recently-viewed-products-wrapper .price-from .bundle-to{display:unset;font-size:15px!important;font-weight:500;margin:0 2px}.pagination{width:100%}.pagination .page-item{padding:0 10px}.pagination .page-item.active{border-bottom:2px solid #26a37c;color:#26a37c!important;font-weight:600}.pagination .page-item.next .angle-left-icon,.pagination .page-item.next .angle-right-icon,.pagination .page-item.previous .angle-left-icon,.pagination .page-item.previous .angle-right-icon{background:unset;font-size:24px;margin:0;text-align:center}.pagination .page-item.next .angle-right-icon:before{content:""}.pagination .page-item.previous .angle-left-icon:before{content:""}.pagination a{color:unset!important;text-decoration:none!important}.pagination a i{font-size:18px;position:relative;top:2px}.pagination .angle-left-icon,.pagination .angle-right-icon{speak:none;-webkit-font-smoothing:antialiased;background:unset;font-family:Webkul Rango!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.pagination .angle-right-icon:before{content:""}.pagination .angle-left-icon:before{content:""}.full-content-wrapper .container-fluid .row.carousel-products-header{padding-right:75px!important}.carousel-products+.recently-viewed{position:relative;top:-40px}.carousel-products .VueCarousel-slide{cursor:default}.carousel-products .VueCarousel-navigation{position:absolute;right:12px;top:-49px}.carousel-products .VueCarousel-navigation .VueCarousel-navigation-button{margin:0!important;padding:0!important;position:unset!important;transform:none!important}.carousel-products .VueCarousel-navigation .VueCarousel-navigation-button span{font-size:24px}.vue-slider{max-width:97%}.profile-update-form{width:800px}.compare-products{cursor:pointer;margin-left:0!important;margin-right:10px!important;overflow-x:auto;padding-bottom:20px;width:100%;word-break:break-word}.compare-products .active{cursor:grabbing;cursor:-webkit-grabbing;transform:scale(1)}.compare-products tr{width:100%}.compare-products td{max-width:250px;min-width:250px;padding:15px;vertical-align:top}.compare-products .header{min-width:150px}.compare-products .image-wrapper{width:100%}.compare-products .stars i{font-size:16px}.compare-products .action{position:relative}.compare-products .action .btn-add-to-cart{white-space:pre-wrap;width:125px!important}.compare-products .action .close-btn{display:inline-block;position:absolute;right:0;top:6px}.compare-products .action .close-btn:hover{font-weight:600}.compare-products .action .compare-icon{display:none}.compare-products .material-icons.cross{cursor:pointer;position:absolute;right:20px;top:5px}.compare-products .wishlist-icon{display:inline-block;position:absolute;right:60px;top:5px}.compare-container .cart-details{padding:unset}.compare-container .cart-details h2{padding:0}.compare-container .compare-products .col,.compare-container .compare-products .col-2{max-width:25%}.compare-products::-webkit-scrollbar{display:none}.compare-products{-ms-overflow-style:none;scrollbar-width:none}.cp-spinner{box-sizing:border-box;display:inline-block;height:48px;left:calc(50% - 24px);margin-top:calc(40% - 24px);position:absolute;width:48px}.overlay-loader{left:50%;margin-left:-24px;margin-top:-24px;position:fixed;top:50%;z-index:11}@media only screen and (max-width:720px){.product-quantity .input-btn-group{display:flex}.cp-spinner{left:50%;margin-left:-24px;margin-top:-24px;top:50%}}@media only screen and (max-width:425px){.cart-details .cart-content .product-quantity{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.cart-details .cart-content .product-quantity .quantity{display:flex;width:100%}.cart-details .cart-content .product-price.col-1{flex:0 0 100%;max-width:100%}.cart-details .cart-content .product-price.col-1 .card-current-price.fw6,.cart-details .cart-content .product-price.col-1 .product-detail .right .info .card-current-price.price,.cart-details .cart-content .product-price.col-1 .product-detail .right .info h2.card-current-price,.cart-details .cart-content .product-price.col-1 .product-detail .right h3.card-current-price,.cart-details .cart-content .product-price.col-1 .product-detail .right h4.card-current-price,.product-detail .right .cart-details .cart-content .product-price.col-1 h3.card-current-price,.product-detail .right .cart-details .cart-content .product-price.col-1 h4.card-current-price,.product-detail .right .info .cart-details .cart-content .product-price.col-1 .card-current-price.price,.product-detail .right .info .cart-details .cart-content .product-price.col-1 h2.card-current-price{float:right}}.cp-round:before{border:6px solid gray;border-radius:50%}.cp-round:after,.cp-round:before{box-sizing:border-box;content:" ";display:inline-block;height:48px;left:0;position:absolute;top:0;width:48px}.cp-round:after{-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;border:6px solid transparent;border-radius:50%;border-top-color:#26a37c}.image-search-container{background:#fff;cursor:pointer;height:24px!important;position:absolute;right:45px;top:9px;z-index:10}.image-search-result{background-color:rgba(0,65,255,.1);border:1px solid #0041ff;border-radius:2px;display:inline-block;margin-bottom:20px;padding:20px;width:100%}.image-search-result .searched-image{float:left}.image-search-result .searched-image img{box-shadow:1px 1px 3px 0 rgba(0,0,0,.32);height:auto;width:150px}.image-search-result .searched-terms{display:inline-block;margin-left:20px}.image-search-result .searched-terms .term-list a{background:#fff;margin-right:10px;margin-top:10px;padding:5px 8px}.filtered-tags{margin-bottom:20px}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}body{scroll-behavior:smooth}body .container-margin{margin:auto 20px}.root-category-menu{border-bottom:1px solid #d8e6ed}.angle-right-icon{background-image:url(../images/Icon-Arrow-Right.svg);float:right;height:20px;margin-right:10px;width:22px}.card-product-image-container{height:300px;max-height:300px;min-height:100px}.card-product-image-container img{height:100%;width:100%}.card-product-image-container .background-image-group{background-position:50%;background-repeat:no-repeat;height:100%;width:100%}.hide-text{display:inline-block;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap;width:100%}.card-bottom-container{margin-top:12px}.card-actual-price{text-decoration:line-through}.card-discount{color:rgba(38,163,124,.83)}.no-border-shadow{border:none!important;box-shadow:none!important;-webkit-box-shadow:none!important}.card-bottom-container .rango-heart{cursor:pointer;float:right;font-size:20px;margin-top:8px}.disable-active:active,.disable-active:focus,header #search-form>:focus{box-shadow:none;outline:none}.container-margin>.container-fluid{margin-bottom:60px}.v-mr-20{margin-right:2rem}.popular-product-categories .active{border-bottom:2px solid;color:#4d7ea8;display:inline-block;padding:0 10px 5px}.popular-product-categories .switch-buttons{position:relative;top:-3px}.align-vertical-super{vertical-align:super}.align-vertical-top{vertical-align:top}.card-sale-btn{top:5px}.star-rating>*{font-size:14px}.advertisement-four-container .offers-ct-panel>.row{padding:0 10px}.advertisement-four-container .offers-ct-panel a:first-child{padding-bottom:15px!important}.advertisement-four-container .offers-ct-panel .offers-ct-top{height:180px}.advertisement-four-container .offers-ct-panel .offers-ct-bottom{height:220px}.advertisement-four-container>.row:first-child{padding:0 10px!important}.advertisement-four-container .col-4:nth-child(2){padding-left:10px;padding-right:10px}.advertisement-four-container img{height:100%;max-height:425px;width:100%}.advertisement-four-container img:first-of-type,.advertisement-four-container img:last-child{padding:0}.advertisement-two-container img{width:100%}.advertisement-three-container img{height:100%}.advertisement-three-container .bottom-container img,.advertisement-three-container .top-container img{height:225px}.advertisement-three-container .bottom-container{padding-top:15px}.recently-viewed-items{padding:0!important}.product-policy-container .card{background:#fff;border:none;box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);padding:20px 10px}.product-policy-container .card .policy{display:table;padding:0 10px}.product-policy-container .card .policy .left{display:inline-block;margin-right:10px}.product-policy-container .card .policy .right{display:table-cell;vertical-align:middle}.product-policy-container .product-policy-wrapper:first-of-type{padding-left:0}.product-policy-container .product-policy-wrapper:last-of-type{padding-right:0}.category-with-custom-options img{height:100%;max-height:100%;max-width:100%;width:100%}.category-with-custom-options .row:first-child{margin-bottom:0}.category-with-custom-options .row:first-child .category-image{height:350px}.category-with-custom-options .row:first-child>div{background-repeat:no-repeat;padding:0}.category-with-custom-options .row:first-child>div:first-child(),.category-with-custom-options .row:first-child>div:nth-child(3){max-height:345px}.category-with-custom-options .row:nth-child(2) .category-image{height:350px}.category-with-custom-options .row:nth-child(2)>div{background-repeat:no-repeat;padding:0}.category-with-custom-options .row:nth-child(2)>div:nth-child(2),.category-with-custom-options .row:nth-child(2)>div:nth-child(4){max-height:345px}.category-with-custom-options .categories-collection{background:#2b2b2b;display:table;height:100%;max-height:345px;min-height:310px;padding-left:36px;width:100%}.category-with-custom-options .categories-collection h2{color:#fff}.category-with-custom-options .categories-collection li{color:hsla(0,0%,100%,.83)}.category-with-custom-options .categories-collection .category-text-content{display:table-cell;height:100%;vertical-align:middle}.hot-categories-container .hot-category-wrapper{padding:0 10px 0 0}.hot-categories-container .hot-category-wrapper .card{border:none;height:100%;padding:20px}.hot-categories-container .hot-category-wrapper .velocity-divide-page .left{height:30px;margin-left:10px;width:30px}.hot-categories-container .hot-category-wrapper .velocity-divide-page .left img{height:100%;width:100%}.hot-categories-container .hot-category-wrapper .velocity-divide-page .right{padding-left:50px!important}.hot-categories-container .hot-category-wrapper:nth-last-child(2){padding:0}.hot-categories-container .hot-category-wrapper:last-child{padding:0 0 0 10px}.hot-categories-container ul,.popular-categories-container ul{line-height:2.5rem}.hot-categories-container li,.popular-categories-container li{font-size:16px}.popular-categories-container .popular-category-wrapper{padding:0 8px}.popular-categories-container .popular-category-wrapper .card{border:none;height:100%}.popular-categories-container .popular-category-wrapper .card .category-image{height:180px}.popular-categories-container .popular-category-wrapper .card .category-image img{height:100%;width:100%}.popular-categories-container .popular-category-wrapper .card-image{background-image:url(../images/man.png);background-size:100% 100%;height:180px}.popular-categories-container .popular-category-wrapper .card-description{padding:10px 20px}.popular-categories-container .popular-category-wrapper:first-child{padding-left:0}.popular-categories-container .popular-category-wrapper:nth-last-child(2){padding-right:0}.popular-categories-container .popular-category-wrapper:last-child{padding-left:16px;padding-right:0}.reviews-container .review-wrapper:first-of-type{padding:0 8px 0 0}.reviews-container .review-wrapper{padding:0 8px}.reviews-container .review-wrapper:nth-last-of-type(2){padding:0 0 0 8px}.reviews-container .review-wrapper:last-of-type{padding:0 0 0 16px}.reviews-container .card{border:none;box-shadow:0 4px 17px 0 rgba(0,0,0,.11);height:100%;padding:20px 15px}.reviews-container .card .customer-info>div{display:inline-block;padding:0}.reviews-container .card .customer-info>div:first-child(){margin-right:10px;width:60px}.reviews-container .card .customer-info>div:last-child(){width:calc(100% - 75px)}.reviews-container .card .review-info{box-shadow:0 4px 17px 0 rgba(0,0,0,.11);height:100%;padding:20px 15px}.reviews-container .card .review-info>div:not(:last-child){margin-bottom:10px}.reviews-container .card .review-info .star-ratings{margin-bottom:5px!important}.main-content-wrapper,.reviews-container .product-info{display:inline-block}.main-content-wrapper>.row.disabled{cursor:not-allowed}.main-content-wrapper .main-category{border-top:1px solid #ccc;padding:10px 15px}.main-content-wrapper .main-category .pl5{vertical-align:top}.main-content-wrapper .content-list{display:inline-block;height:42px;list-style:none;margin:0;position:relative;text-align:left;vertical-align:top;width:100%}.main-content-wrapper .content-list ul{background-color:#4d7ea8;display:inline-flex;height:100%;overflow-x:auto;white-space:nowrap;width:100%}.main-content-wrapper .content-list ul li a{color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:600;letter-spacing:0;padding:11px 15px;position:relative;text-decoration:none}.main-content-wrapper .content-list ul li:hover{background-color:#42719a}.velocity-divide-page{position:relative}.velocity-divide-page .left{position:absolute;width:230px;z-index:1}.velocity-divide-page .right{padding-left:230px!important;width:100%}.container-right{display:inline-block;width:100%}.container-right>:first-child(){width:100%}.home-base{margin-bottom:60px}.broken-image{background-image:url(../images/static/broken-clock.png);height:160px;width:320px}.velocity-icon{background-image:url(../images/static/v-icon.png);height:150px;width:150px}.error-page{padding-top:30vh}.custom-circle{background:#fff;border:2px solid #21a179;border-radius:50%;color:#21a179;display:inline-block;font-size:20px;font:18px josefin sans,arial;height:54px;padding:14px;text-align:center;vertical-align:middle;width:56px}body:after{background:rgba(71,55,78,.8);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s 0s,visibility 0s .3s;width:100%}.cd-quick-view{backface-visibility:hidden;-webkit-backface-visibility:hidden;background-color:#fff;box-shadow:0 0 30px rgba(0,0,0,.2);display:none;left:calc(50% - 350px);margin-bottom:50px;padding:40px;position:absolute;top:100px;transform:translateZ(0);width:700px;will-change:left,top,width;z-index:101}.cd-quick-view .cd-slider li.selected img{display:inline-block!important;height:100%;width:100%}.cd-quick-view .cd-slider img{display:none}.cd-quick-view .close-btn{font-weight:600;position:absolute;right:20px;top:15px}.cd-quick-view .action-buttons{margin-left:118px;padding-top:10px}.cd-quick-view .action-buttons>span{font-size:24px;margin-left:24px}.cd-quick-view .product-actions{display:inline-block}.cd-quick-view .product-actions .compare-icon,.cd-quick-view .product-actions .wishlist-icon{cursor:pointer;display:inline-table;height:38px;margin-left:10px}.cd-quick-view .product-actions .compare-icon i,.cd-quick-view .product-actions .wishlist-icon i{display:table-cell;vertical-align:middle}.cd-quick-view .product-actions .wishlist-icon{float:right}.cd-quick-view .product-actions .add-to-cart-btn{float:left}.cd-quick-view .quick-view-name{font-size:24px;line-height:25px}.cd-quick-view .product-price{margin-top:10px}.cd-quick-view .product-rating{display:table;margin:10px 0}.cd-quick-view .product-rating a,.cd-quick-view .product-rating span{display:table-cell;vertical-align:top}.cd-quick-view .product-gallery{position:-webkit-sticky;position:sticky;top:10px}.cd-quick-view .product-gallery .VueCarousel-pagination button{background-color:#fff!important;border:1px solid #dcdcdc!important;margin:3px!important;padding:0!important}.cd-quick-view .product-gallery .VueCarousel-pagination button.VueCarousel-dot--active{background-color:#dcdcdc!important}.cd-quick-view .product-gallery .VueCarousel-pagination button.VueCarousel-dot--active:focus{outline:none}.cd-quick-view .description-text{overflow:auto;word-break:break-word}.container{max-width:1300px!important}.slider-container{margin-bottom:20px;min-height:400px}.category-page-wrapper,.remove-padding-margin{margin:0!important;padding:0!important;width:100%!important}.demo{border:1px solid red}.quick-addtocart-btn{margin-left:-82px;margin-top:306px}.model-display-block{display:block}.footer{background-color:#fff;display:inline-block;width:100%}.footer .footer-content .newsletter-subscription{background-color:#4d7ea8;color:#fff;padding:10px 130px}.footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field{border:none;color:rgba(0,0,0,.83);font-size:18px;height:38px;max-width:250px;padding:10px 20px;width:300px}.footer .footer-content .newsletter-subscription .newsletter-wrapper button.subscribe-btn{font-size:18px;height:38px;left:-2px;line-height:10px;position:relative}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons{color:#fff;height:100%;padding:20px 0}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons i{cursor:pointer;margin:0}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons .within-circle{background:#4d7ea8;border:1px solid hsla(0,0%,100%,.52);margin-right:2px}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons .within-circle:hover{opacity:.5}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons img{background:#4d7ea8;border:1px solid hsla(0,0%,100%,.52);padding-left:15px;padding-right:15px}.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter{padding:25px 0 30px;text-align:right}.footer .footer-content>.row{background:#30383f;padding:60px 130px}.footer .footer-content>.row .logo{max-height:40px;width:auto}.footer .footer-content>.row .footer-ct-content>div{font-size:14px;line-height:2.5rem;margin:0;padding:0}.footer .footer-content>.row .footer-ct-content>div ul{margin-bottom:0}.footer .footer-content>.row .footer-ct-content>div ul li{margin-bottom:5px}.footer .footer-content>.row .footer-ct-content>div ul li a{color:hsla(0,0%,100%,.83)}.footer .footer-content>.row .footer-rt-content{padding-right:0}.footer .footer-content>.row .footer-rt-content .row>div{display:block;width:100%}.footer .footer-content>.row .footer-rt-content .row .bg-image,.footer .footer-content>.row .footer-rt-content .row .small-card-container .product-image,.small-card-container .footer .footer-content>.row .footer-rt-content .row .product-image{background-position:0;display:inline-block;height:30px;width:42px}.footer .footer-content>.row .footer-rt-content .row .bg-image:not(:last-child),.footer .footer-content>.row .footer-rt-content .row .small-card-container .product-image:not(:last-child),.small-card-container .footer .footer-content>.row .footer-rt-content .row .product-image:not(:last-child){margin-right:3px}.footer .footer-content>.row .footer-rt-content .row .cash{background-image:url(../images/static/cash.png)}.footer .footer-content>.row .footer-rt-content .row .cheque{background-image:url(../images/static/cheque.png);width:57px!important}.footer .footer-content>.row .footer-rt-content .row .visa{background-image:url(../images/static/visa.png)}.footer .footer-content>.row .footer-rt-content .row .master-card{background-image:url(../images/static/master-card.png)}.footer .footer-content>.row .footer-rt-content .row .paypal{background-image:url(../images/static/paypal.png)}.footer .footer-content>.row .footer-rt-content .row .discover{background-image:url(../images/static/discover.png)}.footer .footer-content>.row .footer-rt-content .row:not(:last-child){padding-bottom:20px}.footer .footer-content>.row .footer-rt-content h3{color:hsla(0,0%,100%,.52);font-size:14px}.footer .footer-content .footer-statics .software-description{padding-left:0}.footer .footer-content .footer-statics .software-description p{font-size:14px}.footer .top-brands{padding:30px 130px}.footer .top-brands .top-brands-body ul{display:inline-block;width:85%}.footer .top-brands .top-brands-body ul li{display:inline-block;font-size:16px;margin-left:0;padding:15px 0 0}.footer .footer-copy-right{background:#30383f;color:hsla(0,0%,100%,.83);font-size:16px;height:60px;line-height:6rem;text-align:center;width:100%}.footer .footer-copy-right p{padding:0 20px}.footer .footer-copy-right a{color:unset}.footer .footer-copy-right a:hover{color:#4d7ea8}.product-detail{padding-left:0!important;padding-right:0!important;padding-top:20px}.product-detail,.product-detail .right>div.attributes .attribute{margin-bottom:20px}.product-detail .right>div.attributes .attribute:last-child{margin-bottom:30px}.product-detail .right .category-breadcrumb{margin-left:0;padding:0 15px}.product-detail .right .reviews{vertical-align:top}.product-detail .right .reviews .stars{margin-bottom:-6px;vertical-align:middle}.product-detail .right .reviews>div{display:inline-block;vertical-align:middle}.product-detail .right .info{border-bottom:1px solid #d3d3d3;margin-left:0}.product-detail .right .info div,.product-detail .right .info>h2{padding-left:0}.product-detail .right .info>*{margin-bottom:14px}.product-detail .right .info .availability label{background:#f05153;border:none;color:#fff;cursor:default;font-weight:600;margin:0;padding:1px 8px 3px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.product-detail .right .info .availability label.active{background:#4d7ea8}.product-detail .right .options .box{background-color:#ccc;display:inline-block;height:32px;width:32px}.product-detail .right h3{margin-bottom:0}.product-detail .right .row.reviews .reviews-text{line-height:3rem}.product-detail .right .add-to-cart-btn{padding:0}.product-detail .right .add-to-cart-btn button{padding:9px 15px!important;text-transform:uppercase}.product-detail .right .add-to-cart-btn button span{font-size:16px;top:0}.product-detail .right .product-price{line-height:38px}.product-detail .right .product-price .price-from .bundle-regular-price{font-size:20px!important;font-weight:500;margin-right:10px;text-decoration:line-through}.product-detail .right .product-price .price-from .bundle-special-price{font-size:20px!important;font-weight:600}.product-detail .right .product-price .price-from .bundle-to{display:block;font-size:20px!important;font-weight:500;margin-bottom:1px;margin-top:1px}.product-detail .right .quantity{width:unset}.product-detail .right .form-group label{display:block}.product-detail .right .form-group .radio{margin-right:10px}.product-detail .right .form-group .radio input[type=radio]{margin-left:0;position:static}.product-detail .right .form-group .radio .radio-view{display:none}.product-detail .thumb-list{left:15px;margin-top:10px;overflow:hidden;padding:0;position:relative;z-index:99}.product-detail .thumb-list .arrow{align-items:center;background:#dcdcdc;cursor:pointer;display:flex;height:100%;left:0;line-height:13em;margin-top:5px;opacity:.5;position:absolute;z-index:1001}.product-detail .thumb-list .arrow.right{left:unset;line-height:13rem;right:0}.product-detail .thumb-list .thumb-frame{border:1px solid transparent;padding:1px}.product-detail .thumb-list .thumb-frame.active{border:1px solid #26a37c}.product-detail .thumb-list .small-card-container .thumb-frame>.product-image,.product-detail .thumb-list .thumb-frame>.bg-image,.small-card-container .product-detail .thumb-list .thumb-frame>.product-image{background-position-y:center;background-size:100% 100%;height:110px;width:100%}.product-detail .product-actions>div{display:inline-block}.product-detail .product-actions>div .add-to-cart-btn{float:left}.product-detail .product-actions>div .compare-icon,.product-detail .product-actions>div .wishlist-icon{height:46px;margin-left:0;padding-left:10px}.product-detail .product-actions>div .compare-icon i,.product-detail .product-actions>div .wishlist-icon i{display:table-cell;vertical-align:middle}.product-detail .product-actions>div .compare-icon{display:inline-table}.product-detail .product-actions>div .wishlist-icon{float:right}.product-detail #product-form,.product-detail .layouter{height:100%}.product-detail #product-form .form-container{height:100%;position:relative}.product-detail #product-form .form-container div.left{padding:0;position:-webkit-sticky;position:sticky;top:60px}.product-detail #product-form .form-container div.left .product-image-group{position:-webkit-sticky;position:sticky;top:70px}.product-detail #product-form .form-container div.left .product-image-group>div{margin:0;padding:0}.product-detail #product-form .form-container .right .swatch-container{display:block;margin-top:10px}.product-detail #product-form .form-container .right .swatch-container .swatch{display:inline-block;height:40px;margin-right:5px;min-width:40px}.product-detail #product-form .form-container .right .swatch-container .swatch span{border:1px solid #c7c7c7;border-radius:3px;cursor:pointer;float:left;height:38px;line-height:36px;min-width:38px;padding:0 10px;text-align:center}.product-detail #product-form .form-container .right .swatch-container .swatch img{background:#f2f2f2;border:1px solid #c7c7c7;border-radius:3px;cursor:pointer;height:38px;width:38px}.product-detail #product-form .form-container .right .swatch-container .swatch input:checked+img,.product-detail #product-form .form-container .right .swatch-container .swatch input:checked+span{border:1px solid #242424}.product-detail #product-form .form-container .right .swatch-container .swatch input{display:none}.product-detail #product-form .form-container .right .swatch-container .no-options{color:#fb3949}.product-detail .description{overflow:auto}.product-detail .description ol,.product-detail .description ul{margin:revert;padding:revert}.product-detail .accordian-content{font-size:16px;font-weight:400}.product-detail .full-description ol,.product-detail .full-description ul{margin:revert;padding:revert}.product-detail .full-specifications{width:100%}.product-detail .full-specifications tr td:first-child(){width:100px}.product-detail select[disabled=disabled]{background-color:#dcdcdc;border-color:#dcdcdc;cursor:not-allowed}.zoomContainer,.zoomLens{z-index:99!important}.store-meta-images{margin-top:20px}.store-meta-images img{height:100%;max-height:300px;width:100%}.related-products{margin-bottom:60px}.vc-small-screen{display:none!important}@media only screen and (max-width:1192px){.sticky-header,.vc-full-screen{display:block!important}.vc-small-screen{display:none!important}#main-category{display:block!important}.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons{padding:5px 0;text-align:center!important;width:100%}.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter{padding:10px 0;text-align:center;width:100%}.footer .footer-content .footer-statics>div:not(:last-child){margin-bottom:30px}.slider-container{min-height:290px}}@media only screen and (max-width:992px){body.open-hamburger{color:#7f7f7f;opacity:.8;overflow:hidden}#webheader{background-color:#fff;position:fixed}#main-category,#webheader{display:none!important}#home-right-bar-container{position:relative;top:-48px}.sticky-header,.vc-full-screen{display:none!important}.vc-small-screen{display:block!important}.force-center{margin:0 auto!important}.main-content-wrapper{background-color:#fff;margin-bottom:25px;z-index:100}.main-content-wrapper .vc-header{background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);margin:0;padding:0;top:0;width:100%}.main-content-wrapper .vc-header>div{display:none}.main-content-wrapper .vc-header>div.vc-small-screen{display:block}.main-content-wrapper .vc-header>div.vc-small-screen img{height:100%;max-height:50px;width:100%}.main-content-wrapper .vc-header>div.vc-small-screen .hamburger-wrapper{display:inline-block;height:50px}.main-content-wrapper .vc-header>div.vc-small-screen .hamburger-wrapper .hamburger{font-size:24px;position:relative;top:12px}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header{display:table;height:50px;position:relative;text-align:right;z-index:2}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header>a{display:table-cell;vertical-align:middle}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-container,.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-wrapper{left:-12px;position:relative;top:-32px}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-container .badge,.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-wrapper .badge{background:#26a37c;border-radius:50%;color:hsla(0,0%,100%,.83);position:absolute;z-index:10}.main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-container{left:4px;margin-right:10px}#top{display:none}.product-card-new{max-width:19rem}.product-card-new.grid-card .card-body .product-name{width:13rem}.product-card-new.grid-card .card-body .product-rating{display:none}.product-card-new.grid-card .card-body .add-to-cart-btn{display:table;padding:0}.carousel-products.with-recent-viewed .product-card-new.grid-card .card-body .add-to-cart-btn .btn-add-to-cart .btn-add-to-cart,.product-card-new.grid-card .card-body .add-to-cart-btn .btn-add-to-cart .carousel-products.with-recent-viewed .btn-add-to-cart,.product-card-new.grid-card .card-body .add-to-cart-btn .btn-add-to-cart .small-padding.btn-add-to-cart{padding:3px 14px!important}.product-card-new.grid-card .card-body .add-to-cart-btn~a{position:relative}.product-card-new.grid-card .card-body .add-to-cart-btn~a.compare-icon{right:0}.product-card-new.grid-card .card-body .add-to-cart-btn~a.wishlist-icon{left:10px;max-width:25px;padding:0}.product-card-new.grid-card #quick-view-btn-container{display:none}.advertisement-four-container .offers-ct-panel{padding:8px 0}.advertisement-four-container .offers-ct-panel a:first-child{padding-bottom:10px!important}.advertisement-three-container .bottom-container img,.advertisement-three-container .top-container img{height:unset;padding:0}.advertisement-three-container .second-panel{padding-top:10px}.advertisement-two-container a:nth-of-type(2){padding:15px 0 0}.category-with-custom-options{display:none}.category-with-custom-options.vc-small-screen{display:block}.category-with-custom-options.vc-small-screen .smart-category-container .col-12{padding:0}.category-with-custom-options.vc-small-screen .smart-category-container:not(:first-child){padding-top:20px}.footer .footer-content .newsletter-subscription{padding:10px 20px}.footer .footer-content .newsletter-subscription .newsletter-wrapper{margin:0;padding:0}.footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field{width:200px}.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter{text-align:left}.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter .subscriber-form-div{text-align:center}.footer .footer-content .footer-statics{padding:30px 50px}.footer .footer-content .footer-copy-right{font-size:14px}.popular-categories-container .popular-category-wrapper{padding:0}.popular-categories-container .popular-category-wrapper .card .category-image{height:100%}.popular-categories-container .popular-category-wrapper:last-child{padding-left:0}.slides-container .VueCarousel .VueCarousel-pagination button{height:5px!important;width:5px!important}.slides-container .VueCarousel .VueCarousel-pagination .VueCarousel-dot{padding:2px!important}.account-content .sidebar{display:none}.account-content .account-layout{padding:0}.account-content .account-layout.right{padding-left:20px!important;padding-right:20px!important}.account-content .account-layout .account-items-list.wishlist-container .product-card-new{width:calc(50% - 5px)}.account-content .account-layout .sale-container .tabs-content .totals .sale-summary{font-size:17px;width:100%}.account-content .account-layout .sale-container .tabs-content .totals .sale-summary tbody tr td{width:50%!important}.account-content .account-layout .sale-container .tabs-content .totals .sale-summary tbody tr td:last-child{text-align:right}.account-content .account-layout .sale-container .order-box-container .box{margin-bottom:20px;width:100%}.account-content .account-layout .sale-container .order-box-container .box .box-title{padding-bottom:0}.mini-cart-btn{display:none}header .vc-small-screen .searchbar{padding-left:20px!important;padding-right:20px!important}header .vc-small-screen .searchbar .compare-btn,header .vc-small-screen .searchbar .wishlist-btn{display:none}header .vc-small-screen #search-form{background:transparent;width:100%}header .vc-small-screen #search-form .selectdiv{display:none}header .vc-small-screen #search-form .selectdiv+input{border:1px solid #26a37c;width:calc(100% - 40px)}.carousel-products.vc-full-screen{display:none}.carousel-products.vc-small-screen{display:block!important}.carousel-products+.recently-viewed{position:static;top:0}.reviews-container .review-wrapper,.reviews-container .review-wrapper:first-of-type,.reviews-container .review-wrapper:last-of-type,.reviews-container .review-wrapper:nth-last-of-type(2){padding:0}.reviews-container .review-wrapper:not(:last-child){margin-bottom:10px}.product-policy-wrapper{padding:0!important}.product-policy-wrapper:not(:last-child){margin-bottom:10px}.product-detail #product-form .form-container div.left{margin-bottom:20px;position:relative;top:0}.product-detail #product-form .form-container div.left .vc-small-product-image{width:100%}.product-detail .customer-rating>.row>div{margin-bottom:30px}.product-detail .arrow.left,.product-detail .arrow.right{display:none}.product-detail .thumb-list .small-card-container .thumb-frame>.product-image,.product-detail .thumb-list .thumb-frame>.bg-image,.small-card-container .product-detail .thumb-list .thumb-frame>.product-image{background-size:contain}.review-page-container>div{padding:0}.review-page-container>div:not(:last-child){margin-bottom:60px;position:relative}.customer-rating>.row>div:not(:last-child){margin-bottom:20px}.auth-content.form-container>.container{margin:0;width:100%}.auth-content.form-container>.container>div:first-child{padding:0}.auth-content.form-container>.container>div:first-child .body{padding:20px}.category-page-wrapper .layered-filter-wrapper{display:none}.category-page-wrapper .category-container{margin:20px 0 0;padding-left:0!important;padding-right:0!important}.category-page-wrapper .category-container>div{padding:0 10px}.category-page-wrapper .category-container>div:first-child{padding:0 10px!important}.category-page-wrapper .category-container .filters-container{background-color:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,.21);left:0;padding:0 0 10px;position:fixed;top:30px;width:100%;z-index:9}.category-page-wrapper .category-container .filters-container .toolbar-wrapper>div.col-4{display:table;margin:0;padding:0;text-align:center}.category-page-wrapper .category-container .filters-container .toolbar-wrapper>div.col-4 *{display:table-cell;vertical-align:middle}.category-page-wrapper .category-container .filters-container .toolbar-wrapper>div.col-4 a{display:inline-block;text-align:center}.category-page-wrapper .category-container .filters-container .toolbar-wrapper>div.col-4 span{left:5px;position:relative}.nav-container{background-color:#fff;box-shadow:0 2px 8px 0;font-size:16px;height:100vh;left:0;opacity:1;overflow-y:scroll;position:fixed;top:0;width:75%;z-index:9999}.nav-container .wrapper{position:relative}.nav-container .wrapper .category-title{display:none;display:table;margin:13px 0;padding-left:10px;width:100%}.nav-container .wrapper .category-title>i{display:table-cell;font-size:26px;vertical-align:middle}.nav-container .wrapper .category-title span{display:table-cell;font-size:20px;vertical-align:top}.nav-container .wrapper .category-title span i{float:left!important;margin:2px 2px 0 0!important}.nav-container .wrapper .greeting{background-color:#fff;border-bottom:1px solid #ccc;color:#111;display:table;position:-webkit-sticky;position:sticky;top:0;width:100%}.nav-container .wrapper .greeting>i{display:table-cell;font-size:26px;vertical-align:middle}.nav-container .wrapper .greeting span{display:table-cell;font-size:20px;vertical-align:top}.nav-container .wrapper ul{border-top:1px solid #ccc;color:#111;font-weight:600}.nav-container .wrapper ul li{font-size:16px;padding:10px 0 10px 20px}.nav-container .wrapper ul li:hover{background-color:#ececec}.nav-container .wrapper ul li .category-logo,.nav-container .wrapper ul li .language-logo-wrapper{display:inline-block;height:18px;margin-right:5px;width:18px}.nav-container .wrapper ul li .rango-arrow-right{float:right;font-size:20px;padding-right:15px;padding-top:5px}.nav-container .wrapper ul li .nested-category{border-top:unset}.nav-container .wrapper ul li .nested-category li:last-child{padding-bottom:0}.nav-container .wrapper ul:first-of-type{border-top:unset}.nav-container .wrapper .category-wrapper li,.nav-container .wrapper .vc-customer-options li{font-size:14px}.nav-container .wrapper .category-wrapper li i.icon,.nav-container .wrapper .vc-customer-options li i.icon{speak:none;-webkit-font-smoothing:antialiased;display:contents;font-family:Webkul Rango!important;font-size:18px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;padding-right:5px;text-transform:none}.nav-container .wrapper .category-wrapper li i.icon.profile:before,.nav-container .wrapper .vc-customer-options li i.icon.profile:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.address:before,.nav-container .wrapper .vc-customer-options li i.icon.address:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.reviews:before,.nav-container .wrapper .vc-customer-options li i.icon.reviews:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.wishlist:before,.nav-container .wrapper .vc-customer-options li i.icon.wishlist:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.compare:before,.nav-container .wrapper .vc-customer-options li i.icon.compare:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.orders:before,.nav-container .wrapper .vc-customer-options li i.icon.orders:before{content:""}.nav-container .wrapper .category-wrapper li i.icon.downloadables:before,.nav-container .wrapper .vc-customer-options li i.icon.downloadables:before{content:""}.nav-container .drawer-section{padding:15px}.nav-container .header.drawer-section{display:table;width:100%}.nav-container .header.drawer-section>*{display:table-cell;vertical-align:middle}.nav-container .header.drawer-section i{padding-right:10px;width:25px}.nav-container .layered-filter-wrapper{display:block;margin-bottom:0;padding-top:0;width:100%}.category-container .grid-card,.search-container .grid-card{width:45%}.category-container .grid-card:nth-child(odd),.search-container .grid-card:nth-child(odd){float:left}.category-container .grid-card:nth-child(2n),.search-container .grid-card:nth-child(2n){float:right}.cart-details .order-summary-container.offset-1,.cart-details.offset-1{margin-left:0;padding-left:0;padding-right:0}.cart-details .cart-details-header,.cart-details h1{padding:0}.cart-details h1{margin-bottom:20px}.cart-details .cart-header{display:none}.cart-details .cart-item-list>div{margin:0;padding:0}.cart-details .product-price .special-price,.cart-details .product-price span:first-child{font-size:18px}.cart-details .actions{margin-top:7px!important}.cart-details .continue-shopping,.cart-details .empty-cart-message{padding:0}.checkout-process{margin-left:0!important;padding-left:0!important;padding-right:0!important}.checkout-process h1,.checkout-process>div{padding:0}.checkout-process .billing-address{margin-bottom:20px}.address-holder>div{padding-bottom:15px;padding-right:0}.wishlist-container{margin:0!important;padding:0!important;width:100%!important}.wishlist-container .product-card-new{margin-left:0}.compare-products{padding:0!important}.compare-products .col,.compare-products .col-2{max-width:unset}.compare-icon,.wishlist-icon{margin-left:0}.image-search-result .searched-terms{margin-left:0;margin-top:20px}.image-search-result .searched-terms .term-list a{line-height:40px}#sort-by.sorter select{display:inline-block;left:25px;padding:0 10px;position:absolute;top:2px}.slider-container{min-height:220px}}@media only screen and (max-width:768px){.sticky-header{display:none!important}#home-right-bar-container{position:unset;top:unset}.modal-container{left:10%;margin-left:0;max-width:80%}.footer .footer-list-container{padding-left:0!important}.footer .currency{display:block!important}button.btn.btn-sm.btn-primary.apply-filter{margin-top:10px}.quick-view-btn-container span{font-size:13px;left:24%;top:-24px}.quick-view-in-list{display:none}.product-card-new{max-width:18rem}.slider-container{min-height:220px}}@media only screen and (max-width:420px){.sticky-header{display:none!important}#home-right-bar-container{position:unset;top:unset}.slider-container{min-height:100px}.advertisement-four-container{min-height:992px}.advertisement-four-container .advertisement-container-block,.advertisement-four-container .offers-ct-panel{min-height:425px}}@media only screen and (max-width:320px){.sticky-header{display:none!important}#home-right-bar-container{position:unset;top:unset}.quick-view-in-list{display:none}.slider-container{min-height:100px}.advertisement-four-container{min-height:992px}.advertisement-four-container .advertisement-container-block,.advertisement-four-container .offers-ct-panel{min-height:425px}}body.rtl{text-align:right}.account-content .account-layout .bottom-toolbar .pagination body.rtl .page-item,.product-detail body.rtl .right,body.rtl .account-content .account-layout .bottom-toolbar .pagination .page-item,body.rtl .fs16,body.rtl .product-detail .right{font-size:14px!important}body.rtl .order-summary-container{margin-left:0;margin-right:130px}body.rtl .velocity-divide-page .right{padding-left:0!important;padding-right:230px!important}body.rtl header #search-form #header-search-icon{border-radius:2px 0 0 2px;float:right}body.rtl header #search-form .btn-group select,body.rtl header #search-form .quantity select{border-left:0;border-right:1px solid #26a37c}body.rtl header #search-form .btn-group .selectdiv select,body.rtl header #search-form .quantity .selectdiv select{float:unset}body.rtl header #search-form .btn-group .selectdiv select~.select-icon-container,body.rtl header #search-form .quantity .selectdiv select~.select-icon-container{position:absolute;right:100px;top:0}body.rtl header #search-form .btn-group .selectdiv .select-icon,body.rtl header #search-form .quantity .selectdiv .select-icon{left:8px;top:12px}body.rtl header.sticky-header img{float:right}body.rtl header .left-wrapper{float:left}body.rtl header .left-wrapper .compare-btn .badge-container .badge,body.rtl header .left-wrapper .wishlist-btn .badge-container .badge{left:-2px;top:-28px}body.rtl header .left-wrapper .mini-cart-btn{margin-left:0;margin-right:16px}body.rtl header .left-wrapper .mini-cart-btn .mini-cart-content{margin-left:7px;margin-right:0!important}body.rtl header .left-wrapper .mini-cart-btn .mini-cart-content .badge-container .badge{left:unset;right:-15px}body.rtl header .left-wrapper .mini-cart-btn #cart-modal-content{left:0}body.rtl header .left-wrapper .mini-cart-btn #cart-modal-content .small-card-container .remove-item{left:unset;right:-10px}body.rtl header .left-wrapper .mini-cart-btn #cart-modal-content .small-card-container .card-total-price{float:left}body.rtl header .left-wrapper .mini-cart-btn .dropdown-list{right:unset!important}body.rtl .main-content-wrapper .main-category{text-align:right}body.rtl .main-content-wrapper .main-category i{float:right;margin-left:10px}body.rtl .main-content-wrapper .vc-header>div.vc-small-screen .right-vc-header .badge-container{left:-4px}body.rtl .form-container .container .heading h2{float:right}body.rtl .form-container .back-button,body.rtl .form-container .container .heading a{float:left}body.rtl .sticker{left:unset;right:8px}body.rtl .subscriber-form-div{text-align:left}body.rtl .footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field{left:-4px;position:relative}body.rtl .lg-card-container.list-card .add-to-cart-btn{float:right;margin-left:20px}body.rtl #top #account .welcome-content{float:left}body.rtl #top #account .welcome-content i{text-align:left}body.rtl #top .locale-icon~.select-icon-container{right:20px}body.rtl .category-list-container .sub-categories{left:-100%}body.rtl .category-list-container li a{padding:7px 15px 5px}body.rtl .category-list-container li ul.nested li a{padding-right:25px}body.rtl .filters-container .view-mode>div{padding-right:6px}body.rtl .filters-container .toolbar-wrapper>div label{margin-left:10px;margin-right:0}body.rtl .filter-attributes-content{margin-left:7px;margin-right:0}body.rtl .filter-attributes-item input[type=checkbox]+span{margin-right:10px}body.rtl .filter-attributes-item .filter-input{margin-right:0}body.rtl .product-card-new .card-body .cart-wish-wrap{margin-right:0!important}body.rtl .product-card-new .card-body .cart-wish-wrap .add-to-cart-btn{padding-left:35px!important}body.rtl .product-card-new .card-body .wishlist-icon{left:0;right:unset}body.rtl .product-card-new .card-body .product-name{width:unset}body.rtl .account-content{min-height:100vh}body.rtl .account-content .account-layout.right{padding-right:250px!important;width:calc(100% - 20px)}body.rtl .account-content .account-layout .account-table-content .address-holder .card-link+.card-link{margin-right:1.25rem}body.rtl .account-content .account-layout .account-table-content .address-holder>div{padding-left:15px;padding-right:0}body.rtl .account-content .sidebar{border-left:1px solid #e5e5e5}body.rtl .account-content .sidebar .customer-sidebar .navigation li i.icon{padding-left:5px;padding-right:0}body.rtl .product-detail .right .info{margin-right:0}body.rtl .product-detail .right .info div,body.rtl .product-detail .right .info>h2{padding-right:0}body.rtl .product-detail .right .info .buynow{float:left;margin-right:10px}body.rtl .product-detail .thumb-list{left:0;margin-right:0}body.rtl .product-detail .wishlist-icon{padding-right:10px}body.rtl .zoomWindow{right:100%!important}body.rtl .modal-footer>:not(:last-child){margin-left:.25rem}body.rtl .compare-products .wishlist-icon{left:52px;right:unset}body.rtl .compare-products .material-icons.cross{left:20px;right:unset}body.rtl #alert-container{left:15px;right:unset}body.rtl .alert-dismissible .close{left:-8px}body.rtl .booking-information .book-slots .control-group-container .form-group:not(.quantity).date:after{left:40px;right:unset}body.rtl .full-content-wrapper>.container-fluid>.row.pl-26{padding-right:26%!important}body.rtl .image-search-container{left:45px;right:unset}body.rtl .product-policy-container .card .policy .left{margin-left:10px}body.rtl .advertisement-three-container .second-panel{padding-right:30px}body.rtl .advertisement-two-container .row{padding:0!important}body.rtl .advertisement-two-container .row .pr0{padding-right:15px!important}body.rtl .downloadable-container .link-list ul li a{float:left;margin-top:3px}body.rtl .text-right{text-align:left!important}body.rtl .text-left{text-align:right!important}body.rtl .pr0{padding-left:0!important;padding-right:15px!important}body.rtl .pl0{padding-right:0!important}body.rtl .pl10{padding-right:10px!important}body.rtl .rango-arrow-right:before{content:""}body.rtl .styled-select+.select-icon-container .select-icon{left:6px;right:unset}body.rtl .ml15{margin-right:15px!important}body.rtl .pl30{padding-right:30px}body.rtl .ml-5{margin-right:3rem!important}.product-detail .right .options .buttons body.rtl :not(:last-child),.product-detail .right .options body.rtl .quantity>label,body.rtl .mr15,body.rtl .product-detail .right .options .buttons :not(:last-child),body.rtl .product-detail .right .options .quantity>label{margin-left:15px!important}body.rtl .ml5{margin-right:5px}body.rtl .payment-methods .pl40{padding-left:0!important;padding-right:40px!important}body.rtl #top #account .dropdown-list{left:10px;right:unset!important;text-align:right}body.rtl .VueCarousel .VueCarousel-inner{flex-direction:row-reverse}body.rtl .quantity .input-btn-group button.increase{border-left:1px solid #dcdcdc;border-right:0}body.rtl .quantity .input-btn-group button.decrease{border-left:0;border-right:1px solid #dcdcdc}@media only screen and (max-width:992px){body.rtl .order-summary-container{margin-right:0}body.rtl .nav-container ul li{padding:10px 20px 10px 0}body.rtl .nav-container ul li .rango-arrow-right{float:left;padding-left:40px}body.rtl .nav-container .wrapper .vc-customer-options li i.icon{float:right;padding-left:5px}body.rtl .account-content .account-layout.right,body.rtl .full-content-wrapper>.container-fluid>.row.pl-26{padding-right:20px!important}body.rtl .velocity-divide-page .left{right:35px;top:4px;width:150px}body.rtl .velocity-divide-page .right{padding:0 20px!important}body.rtl .checkout-process{margin-right:0!important;padding-left:0!important;padding-right:0!important}}@media only screen and (max-width:425px){.account-content .account-layout .bottom-toolbar .pagination body.rtl .page-item,.product-detail body.rtl .right,body.rtl .account-content .account-layout .bottom-toolbar .pagination .page-item,body.rtl .fs16,body.rtl .product-detail .right{font-size:12px!important}body.rtl .velocity-divide-page .right{padding:0 20px!important}}@media only screen and (max-width:375px){.account-content .account-layout .bottom-toolbar .pagination body.rtl .page-item,.product-detail body.rtl .right,body.rtl .account-content .account-layout .bottom-toolbar .pagination .page-item,body.rtl .fs16,body.rtl .product-detail .right{font-size:10px!important}body.rtl .velocity-divide-page .right{padding:0 20px!important}}@media only screen and (max-width:320px){.account-content .account-layout .bottom-toolbar .pagination body.rtl .page-item,.product-detail body.rtl .right,body.rtl .account-content .account-layout .bottom-toolbar .pagination .page-item,body.rtl .fs16,body.rtl .product-detail .right{font-size:8px!important}body.rtl .velocity-divide-page .right{padding:0 20px!important}}.table{width:100%}.table .table-responsive{overflow-x:auto;width:100%}.table .table-responsive::-webkit-scrollbar{height:5px!important}.table .table-responsive::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px #c8c8c8!important}.table .table-responsive::-webkit-scrollbar-thumb{background-color:#fff!important;border-radius:10px!important;-webkit-box-shadow:inset 0 0 6px rgba(90,90,90,.7)!important}.table table{border-collapse:collapse;text-align:left;width:100%}.table table thead th{background:#f8f9fa;border-right:1px solid #ccc!important;color:rgba(0,0,0,.83);font-weight:700;padding:12px 10px}.table table thead th:last-child{border-right:none}.table table tbody td{border-bottom:1px solid #d3d3d3;color:rgba(0,0,0,.83);padding:10px;vertical-align:top}.table table tbody td.actions .action{display:inline-flex}.table table tbody td.actions .icon{cursor:pointer;display:block}.table table tbody td.empty{text-align:center}.table table tbody tr:last-child td{border-bottom:none}.table .control-group{margin-bottom:0;min-width:140px;width:100%}.table .control-group .control{margin:0;width:100%}.grid-container{display:block;width:100%}.grid-container .grid-top{align-items:center;display:grid;grid-template-rows:auto auto auto;row-gap:8px}.grid-container .grid-top .datagrid-filters,.grid-container .grid-top .datagrid-filters .grid-right{-moz-column-gap:10px;column-gap:10px;display:grid;grid-template-columns:auto auto}.grid-container .grid-top .datagrid-filters .grid-right{align-items:end;justify-self:end}.grid-container .grid-top .datagrid-filters .dropdown-filters{display:inline-block}.grid-container .grid-top .datagrid-filters .dropdown-filters.per-page .control-group{margin-bottom:0}.grid-container .grid-top .datagrid-filters .dropdown-filters.per-page .control-group label{flex:auto;margin-right:10px;margin-top:7px}.grid-container .grid-top .datagrid-filters .dropdown-filters.per-page .control-group .control{flex:1;margin:0;width:100%}.grid-container .datagrid-filters{position:relative}.grid-container .datagrid-filters,.grid-container .datagrid-filters .filter-right{align-items:end;-moz-column-gap:10px;column-gap:10px;display:grid;grid-template-columns:auto auto}.grid-container .datagrid-filters .filter-right{justify-self:end}.grid-container .datagrid-filters .filter-right .control-group{margin-bottom:10px}.grid-container .datagrid-filters .filter-right .control-group .control{margin-bottom:0}.grid-container .datagrid-filters .filter-right .dropdown-list{padding:15px;right:0}.grid-container .datagrid-filters .filter-right .dropdown-list ul{list-style:none;margin:0;padding:0}.grid-container .datagrid-filters .filter-right .dropdown-list .apply-filter{width:100%}.filtered-tags{align-items:flex-start;display:inline-flex;flex-wrap:wrap;margin-bottom:10px}.search-filter{border-radius:3px;height:36px;max-width:300px}.search-filter .control{-webkit-appearance:none;border:1px solid #c7c7c7;border-bottom-left-radius:3px;border-right:none;border-top-left-radius:3px;font-size:15px;height:36px;padding-left:10px;width:calc(100% - 36px)}.search-filter:hover{box-shadow:0 0 0 1px rgba(0,64,255,.6)}.search-filter .contorl:focus{border-color:#0041ff}.search-filter .icon-wrapper{border:1px solid #c7c7c7;border-radius:3px;border-bottom-left-radius:0;border-top-left-radius:0;display:none;float:right;height:36px;padding:5px;width:36px}.grid-dropdown-header{align-items:center;background-color:#fff;border:1px solid #c7c7c7;border-radius:3px;display:inline-flex;height:36px;justify-content:space-between;min-width:200px;padding:0 5px;width:100%}.grid-dropdown-header .arrow-icon-down{float:right}.dropdown-toggle:after{display:none}.dropdown-list{background-color:#fff;border-radius:3px;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 0 9px 0 rgba(0,0,0,.16);display:none;margin-bottom:20px;position:absolute;text-align:left;width:200px;z-index:1000}.dropdown-list.bottom-left{left:0;top:42px}.dropdown-list.bottom-right{right:0;top:42px}.dropdown-list.top-left{bottom:0;left:42px}.dropdown-list.top-right{bottom:0;right:42px}.dropdown-list .dropdown-label{border-bottom:1px solid #c1c2c3;color:rgba(0,0,0,.53);cursor:default;display:block;font-size:18px;font-weight:600;padding:8px 12px}.dropdown-list .dropdown-container{overflow-y:auto}.dropdown-list .dropdown-container label{color:#9e9e9e;display:inline-block;font-size:15px;font-weight:700;padding-bottom:5px;text-transform:uppercase}.dropdown-list .dropdown-container ul{list-style-type:none;margin:0;padding:0}.dropdown-list .dropdown-container ul li a{font-size:16px;padding:8px 12px}.dropdown-list .dropdown-container ul li a:active,.dropdown-list .dropdown-container ul li a:focus,.dropdown-list .dropdown-container ul li a:link,.dropdown-list .dropdown-container ul li a:visited{color:rgba(0,0,0,.83);display:block}.dropdown-list .dropdown-container ul li a:hover{background-color:#ececec}.dropdown-list .dropdown-container ul li .control-group label{color:rgba(0,0,0,.83);font-size:15px;font-weight:500;text-transform:capitalize;width:100%}.dropdown-list .dropdown-container .btn{margin-top:10px;width:100%}.filter-advance{display:flex;justify-content:space-between}.filter-tag{border-radius:2px;justify-content:space-between;margin-right:20px}.filter-tag,.filter-tag .wrapper{align-items:center;display:flex;flex-direction:row;font-size:14px;height:40px}.filter-tag .wrapper{background:#e7e7e7;border:1px solid #e7e7e7;border-radius:24px;color:#000311;letter-spacing:-.22px;margin-left:4px;padding:5px 10px 5px 16px}.filter-tag .wrapper .icon.cross-icon{cursor:pointer;margin-left:10px}.filter-tag .wrapper:hover{background:#fff;border:1px solid #e7e7e7}.rtl .search-filter .control{border-bottom-left-radius:0;border-bottom-right-radius:3px;border-left:0;border-right:1px solid #c7c7c7;border-top-left-radius:0;border-top-right-radius:3px;padding-right:10px}.rtl .search-filter .icon-wrapper{border-bottom-left-radius:3px;border-bottom-right-radius:0;border-top-left-radius:3px;border-top-right-radius:0;float:left}.rtl .search-filter:hover{box-shadow:0 0 0 1px rgba(0,64,255,.6)}.rtl .dropdown-filters{display:inline-block}.rtl .dropdown-filters.per-page{margin-left:10px;margin-right:10px}.rtl .filtered-tags .filter-tag .cross-icon,.rtl .filtered-tags .filter-tag .wrapper{margin-left:0;margin-right:10px}@media only screen and (max-width:768px){.grid-container .grid-top .datagrid-filters{grid-template-columns:100%;row-gap:0}.grid-container .grid-top .datagrid-filters .search-filter{max-width:100%!important}.grid-container .grid-top .datagrid-filters .filter-left,.grid-container .grid-top .datagrid-filters .filter-right{-moz-column-gap:5px;column-gap:5px;display:grid;grid-template-columns:49.5% 49%}.grid-container .grid-top .datagrid-filters .filter-right{width:100%}.grid-dropdown-header{min-width:122px}.dropdown-list.dropdown-container{padding:10px}}@font-face{font-display:swap;font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Outlined;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsoutlined/v14/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Round;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v14/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmP.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Sharp;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconssharp/v15/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvR.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Two Tone;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconstwotone/v13/hESh6WRmNCxEqUmNyh3JDeGxjVVyMg4tHGctNCu0.woff2) format("woff2")}.material-icons{-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-family:Material Icons}.material-icons,.material-icons-outlined{word-wrap:normal;direction:ltr;display:inline-block;font-size:24px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1;max-width:30px;overflow:hidden;text-transform:none;white-space:nowrap}.material-icons-outlined{-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-family:Material Icons Outlined}.material-icons-round{-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-family:Material Icons Round}.material-icons-round,.material-icons-sharp{word-wrap:normal;direction:ltr;display:inline-block;font-size:24px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap}.material-icons-sharp{-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-family:Material Icons Sharp}.material-icons-two-tone{word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;display:inline-block;font-family:Material Icons Two Tone;font-size:24px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap}*{font-family:Source Sans Pro,sans-serif;margin:0;padding:0}*,:after,:before{box-sizing:inherit}::-webkit-scrollbar{height:5px;width:3px}::-webkit-scrollbar-track{background:#d8d8d8}::-webkit-scrollbar-thumb{background:#666}::-webkit-input-placeholder{font-family:Source Sans Pro,sans-serif}input[type=checkbox]{height:15px;margin-right:10px;width:24px}.form-control:focus{box-shadow:0 0 8px 1px rgba(105,221,157,.25)}button,input,optgroup,select,textarea{color:rgba(0,0,0,.83);font-family:Source Sans Pro,sans-serif}textarea{resize:none}html{box-sizing:border-box}body{background:#fff;color:rgba(0,0,0,.83);font-family:Source Sans Pro,sans-serif;font-size:12px;font-weight:400;line-height:20px;padding:0;width:100%}body,label{margin:0}.btn:hover{text-decoration:none}.btn:active:hover,.btn:focus{outline:none;outline-offset:0}.btn-link{color:rgba(0,0,0,.83);padding:6px 5px}.btn-link:focus,.btn-link:hover{color:rgba(0,0,0,.83);text-decoration:none}#top{border-bottom:1px solid #ccc;box-shadow:0 0 0 0 rgba(0,0,0,.24);color:rgba(0,0,0,.83);margin:0;min-height:32px}#top .btn{border-radius:0;font-family:Source Sans Pro,sans-serif;font-size:14px;letter-spacing:0;text-align:center}#top .btn,#top .btn:hover{text-decoration:none}#top .btn:active:hover,#top .btn:focus{outline:none;outline-offset:0}#top .btn-normal{background:#21a179;border-color:#269c77;color:#fff;font-weight:600}#top .btn-normal:active:focus,#top .btn-normal:active:hover,#top .btn-normal:hover{background:#fff;border-color:#21a179;color:#21a179}#top .btn-link{color:rgba(0,0,0,.83)}#top .dropdown-menu-large{left:-100px;min-width:250px}#top .customer-name{color:rgba(0,0,0,.83);font-size:16px;font-weight:600;padding:0 10px}#top #account{font-size:14px}#top #account .select-icon{left:0;padding-left:5px;top:0}#top #account .welcome-content{cursor:pointer;display:table;float:right;min-width:150px;padding-top:5px;text-align:right}#top #account .welcome-content *{display:table-cell;vertical-align:middle}#top #account .dropdown-list{right:10px;top:40px}#top #account .dropdown-list .modal-header{padding:20px}#top #account .dropdown-list .content{padding:5px 20px 15px}#top #account .dropdown-list .modal-footer .account-content .account-layout .bottom-toolbar .pagination .page-item,#top #account .dropdown-list .modal-footer .cart-details .continue-shopping-btn,#top #account .dropdown-list .modal-footer .theme-btn,.account-content .account-layout .bottom-toolbar .pagination #top #account .dropdown-list .modal-footer .page-item,.cart-details #top #account .dropdown-list .modal-footer .continue-shopping-btn{text-align:center;width:50%}#top>div:last-child{height:32px}#top>div .default{font-size:14px;padding:5px}#top .locale-icon{display:inline-block;width:20px}#top .locale-icon img{width:100%}#top .locale-switcher{padding-left:5px;padding-right:15px;position:relative;text-align:left}#top .dropdown{margin-right:15px}#top .dropdown .select-icon-container .select-icon{right:0}.dropdown-menu{background:#fff;border-radius:0;border-top:3px solid #269c77;box-shadow:11px 10px 17px 0 rgba(0,0,0,.21)}.dropdown-menu li a .dropdown-menu li a:focus,.dropdown-menu li a:focus,.dropdown-menu li a:hover{background:#21a179;color:#fff}.no-padding,.product-detail .right h3{padding:0!important}.btn-normal{background:#21a179;border-color:#269c77;border-radius:0;color:#fff;font-weight:600}.btn-normal:active:focus,.btn-normal:active:hover,.btn-normal:hover{background:#fff;border-color:#21a179;color:#21a179}.btn-secondary{background:#fff;border-color:#fff;color:#21a179}.btn-secondary:active:focus,.btn-secondary:active:hover,.btn-secondary:focus,.btn-secondary:hover{background:#21a179;border-color:#21a179}.btn-danger{color:#fff}.btn-danger,.btn-danger:active:focus,.btn-danger:active:hover,.btn-danger:focus,.btn-danger:hover{background:#f05153;border-color:#f05153}header .logo{height:46px;padding-left:10px}header #search-form{background:#fff;height:40px;margin:8px 0}header #search-form *{height:100%}header #search-form .btn-group,header #search-form .quantity{max-width:550px}header #search-form .btn-group .selectdiv,header #search-form .quantity .selectdiv{width:210px}header #search-form .btn-group .selectdiv .select-icon,header #search-form .quantity .selectdiv .select-icon{background-color:#fff;font-size:18px;height:20px;right:8px;top:-30px;z-index:10}header #search-form .btn-group select,header #search-form .quantity select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #26a37c;border-radius:2px 0 0 2px;border-right:0;cursor:pointer;font-family:Source Sans Pro,sans-serif;height:100%;width:100%}header #search-form .btn-group select::-ms-expand,header #search-form .quantity select::-ms-expand{display:none}header #search-form input{border:1px solid #26a37c;border-left-color:#ccc;border-radius:0;font-size:14px;height:100%;letter-spacing:0;line-height:20px;padding:0 10px}header #search-form .btn:hover{text-decoration:none}header #search-form .btn:active:hover,header #search-form .btn:focus{outline:none;outline-offset:0}header #search-form #header-search-icon{background-color:#26a37c;border-radius:0 2px 2px 0;min-width:40px}header #search-form #header-search-icon i{color:#fff}header .left-wrapper{float:right}header .left-wrapper .compare-btn,header .left-wrapper .mini-cart-btn,header .left-wrapper .wishlist-btn{cursor:pointer;display:inline-block;font-size:18px;font-weight:600;margin:16px}header .left-wrapper .compare-btn.mini-cart-btn,header .left-wrapper .mini-cart-btn.mini-cart-btn,header .left-wrapper .wishlist-btn.mini-cart-btn{margin-right:0}header .left-wrapper .compare-btn i,header .left-wrapper .mini-cart-btn i,header .left-wrapper .wishlist-btn i{margin-right:5px;vertical-align:middle}header .left-wrapper .compare-btn .badge-container,header .left-wrapper .mini-cart-btn .badge-container,header .left-wrapper .wishlist-btn .badge-container{display:inline-block;position:relative}header .left-wrapper .compare-btn .badge-container .badge,header .left-wrapper .mini-cart-btn .badge-container .badge,header .left-wrapper .wishlist-btn .badge-container .badge{background:#21a179;border-radius:50%;color:hsla(0,0%,100%,.83);left:-15px;min-width:20px;padding:4px;position:absolute;top:-23px}header .left-wrapper .compare-btn span,header .left-wrapper .mini-cart-btn span,header .left-wrapper .wishlist-btn span{padding-left:0;position:relative}header .left-wrapper .compare-btn #mini-cart,header .left-wrapper .mini-cart-btn #mini-cart,header .left-wrapper .wishlist-btn #mini-cart{line-height:inherit;padding:0}header .left-wrapper .compare-btn #mini-cart .mini-cart-content,header .left-wrapper .mini-cart-btn #mini-cart .mini-cart-content,header .left-wrapper .wishlist-btn #mini-cart .mini-cart-content{color:rgba(0,0,0,.83);display:inline-block;font-size:16px;font-weight:600;letter-spacing:0;margin-right:7px;position:relative;text-align:right}header .left-wrapper .compare-btn #mini-cart .mini-cart-content i+span.cart-text,header .left-wrapper .mini-cart-btn #mini-cart .mini-cart-content i+span.cart-text,header .left-wrapper .wishlist-btn #mini-cart .mini-cart-content i+span.cart-text{padding-left:0;vertical-align:text-bottom}header .left-wrapper .compare-btn #mini-cart .mini-cart-content+.down-arrow-container,header .left-wrapper .compare-btn #mini-cart .mini-cart-content+.down-arrow-container .rango-arrow-down,header .left-wrapper .mini-cart-btn #mini-cart .mini-cart-content+.down-arrow-container,header .left-wrapper .mini-cart-btn #mini-cart .mini-cart-content+.down-arrow-container .rango-arrow-down,header .left-wrapper .wishlist-btn #mini-cart .mini-cart-content+.down-arrow-container,header .left-wrapper .wishlist-btn #mini-cart .mini-cart-content+.down-arrow-container .rango-arrow-down{top:0}header .dropdown-menu-large{left:-180px;min-width:280px}header .dropdown-menu-large .dropdown-content{max-height:300px;overflow-y:auto;width:100%}header .dropdown-menu-large .dropdown-content .item{display:flex;padding:10px}header .dropdown-menu-large .dropdown-content .item .item-image{position:relative}header .dropdown-menu-large .dropdown-content .item .item-image .material-icons{cursor:pointer;font-size:16px;left:-6px;position:absolute;top:-6px}header .dropdown-menu-large .dropdown-content .item .item-image .thumbnail{border:1px solid #ccc;border-radius:0;height:75px;margin:0;width:75px}header .dropdown-menu-large .dropdown-content .item .item-name{color:rgba(0,0,0,.83);font-size:18px;font-weight:600;letter-spacing:0}header .dropdown-menu-large .dropdown-content .item .item-details{height:auto;padding:0 10px}header .dropdown-menu-large .dropdown-content .item .item-details .item-options{color:rgba(0,0,0,.83);font-family:Source Sans Pro,sans-serif;font-size:13px;letter-spacing:0}header .dropdown-menu-large .dropdown-content .item .item-details .item-qty-price{display:inline-block;padding:5px 0}header .dropdown-menu-large .dropdown-content .item .item-details .item-qty-price .item-qty{color:rgba(0,0,0,.83);font-size:16px;letter-spacing:0;text-align:left}header .dropdown-menu-large .dropdown-content .item .item-details .item-qty-price .item-price{color:rgba(0,0,0,.83);font-size:16px;font-weight:600;letter-spacing:0;text-align:right}header .dropdown-menu-large .dropdown-header{border-top:1px solid #ccc;padding:10px 10px 5px}header .dropdown-menu-large .dropdown-header .sub-total-text{color:rgba(0,0,0,.83);font-size:16px;font-weight:600;letter-spacing:0}header .dropdown-menu-large .dropdown-header .cart-sub-total{color:rgba(0,0,0,.83);font-size:16px;font-weight:700;letter-spacing:0;text-align:right}header .dropdown-menu-large .dropdown-footer{border-top:1px solid #ccc;color:rgba(0,0,0,.83);font-size:16px;font-weight:700;letter-spacing:0;padding:10px 10px 0}header .dropdown-menu-large .dropdown-footer .cart-link{text-align:left}header .dropdown-menu-large .dropdown-footer .cart-link a{vertical-align:middle}header .dropdown-menu-large .dropdown-footer .checkout-link{text-align:right}#nav-menu{background-color:#fff;box-shadow:0 0 0 0 rgba(0,0,0,.24);margin:0}#nav-menu .navbar{color:rgba(0,0,0,.83);cursor:pointer;font-family:SourceSansPro-Semibold;font-size:16px;letter-spacing:0;margin:0;min-height:40px;position:relative}#nav-menu .navbar .navbar-header{display:inline-block;width:100%}#nav-menu .navbar .navbar-header .main-category{display:inline-block;overflow:hidden;padding:5px 5px 5px 35px;position:relative;width:100%}#nav-menu .navbar .navbar-header .main-category .material-icons{font-size:28px;left:0;position:absolute;top:2px}#nav-menu .navbar .category-dropdown{background:#fff;height:525px;left:0;position:absolute;top:40px;width:100%}#nav-menu .navbar .category-dropdown li.category-list{background:#fff;display:inline-block;position:relative;width:100%}#nav-menu .navbar .category-dropdown li.category-list a{color:rgba(0,0,0,.83);display:block;font-size:14px;font-weight:600;letter-spacing:0;padding:10px 0;position:relative}#nav-menu .navbar .category-dropdown li.category-list a .material-icons{position:absolute;right:0;top:8px}#nav-menu .navbar .category-dropdown li.category-list a:hover{background-color:#f7f7f9;color:#28557b;text-decoration:none}#nav-menu .navbar .category-dropdown li.category-list .child-container{background-color:#ccc;height:350px;left:283px;position:absolute;top:0;width:250px}#nav-menu .secondary-navbar{background-color:#4d7ea8;display:inline-block;height:auto;list-style:none;margin:0;min-height:40px;padding:5px;text-align:left;vertical-align:middle;width:100%}#nav-menu .secondary-navbar li{float:left}#nav-menu .secondary-navbar li a{color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:600;letter-spacing:0;padding:5px 20px 5px 5px;position:relative;text-decoration:none}.viewed-products .viewed-products-listing{background-color:#f6f6f6;border:1px solid #fff}.viewed-products .viewed-products-listing .product-description,.viewed-products .viewed-products-listing .product-image{display:inline-block}.viewed-products .viewed-products-listing .product-description div{padding-top:2px}.customer-reviews .first-row{display:flex;justify-content:space-between}.customer-reviews .second-row{display:inline-block;width:100%}.customer-reviews .second-row .reviews-listing{background:#fff;box-shadow:0 4px 17px 0 rgba(0,0,0,.11);padding-right:10px}.customer-reviews .second-row .review-grid{display:grid;height:262px;padding-left:10px;padding-right:10px;padding-top:40px;width:345px}.categories-grid-customizable .category-grid{padding-bottom:10px;padding-left:5px;padding-right:5px}.categories-grid-customizable .category-grid .category-image{border:1px solid red}.categories-grid-customizable .category-grid .category-details{border:1px solid blue}.categories-grid-customizable .category-grid .category-details h3{color:#fff;text-align:center}.categories-grid-customizable .category-grid .category-details li{color:#fff;list-style-type:none;text-align:center}.product-policy{border:1px solid maroon;padding:30px 0 50px;text-align:center}.popular-products{height:auto;padding-right:10px;width:100%}.popular-products .second-row .popular-products-listing{border:1px solid red}.popular-products .second-row .popular-products-listing .product-buttons .add-to-cart-button .btn-primary{border:#26a37c!important;border-radius:0}.popular-products .second-row .popular-products-listing .product-buttons .add-to-cart-button .addtocart{background-color:#26a37c;text-transform:uppercase}.customer-name{background:#21a179;border-radius:50%;color:#fff;display:table-cell;font:18px josefin sans,arial;height:54px;padding:16px;text-align:center;vertical-align:middle;width:56px}.spacing{margin:5px 0}i.within-circle{border-radius:50%;box-shadow:0 0 2px #888;display:inline-block;height:50px;margin:15px 0;padding:12px;width:50px}.center_div{margin:0 auto;width:80%}.form-style{background-color:#fff;background-image:none;border:1px solid #dcdcdc;border-radius:0;color:rgba(0,0,0,.83);display:block;font-size:16px;height:36px;line-height:1.42857143;padding:6px 12px;width:100%}.label-style{display:inline-block!important;font-size:16px!important;font-weight:100!important;margin-bottom:5px!important;max-width:100%!important}.btn-white{color:#fff;height:36px;width:133px}.w3-card-2{width:133px}.w3-card-2,.w3-card-login{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);float:right;height:36px}.w3-card-login{width:71px}.btn-new-customer-login{color:#26a37c!important;font-size:16px;padding:11px;text-decoration:none!important}.btn-dark-green{background-color:#26a37c;border-color:#26a37c;border-radius:0!important;color:#fff;height:36px}.login-text{border:1px #e5e5e5;height:65px;margin:0 auto;width:575px}.row:after,.row:before{display:none!important}.image-wrapper{display:inline-block;margin-bottom:20px;margin-top:10px;width:100%}.image-wrapper .image-item{background:#f8f9fa;background-image:url(../images/placeholder-icon.svg);background-position:50%;background-repeat:no-repeat;background-size:75%;border-radius:3px;display:inline-block;float:left;height:150px;margin-bottom:20px;margin-right:20px;position:relative;width:150px}.image-wrapper .image-item img.preview{height:100%;width:100%}.image-wrapper .image-item input{display:none}.image-wrapper .image-item .remove-image{background-image:linear-gradient(-180deg,rgba(0,0,0,.08),rgba(0,0,0,.24));border-radius:0 0 4px 4px;bottom:0;color:#fff;cursor:pointer;margin-right:20px;padding:10px;position:absolute;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.24);width:100%}.image-wrapper .image-item:hover .remove-image{display:block}.image-wrapper .image-item.has-image{background-image:none}.btn-primary{background-color:#26a37c!important;border-color:#26a37c!important}.category-page-wrapper .category-container .filters-container{background-color:#fff;box-shadow:none;left:0;margin-left:7px;padding:0 0 7px;position:unset;top:30px;width:96%;z-index:9}.filters-container .toolbar-wrapper>div select{background-color:#fff;color:rgba(0,0,0,.83);cursor:pointer;padding:6px 8px}.filters-container .toolbar-wrapper>div{margin:0 8px 0 0}@media(max-width:600px){.selective-div{-webkit-appearance:none;width:97px}.nav-container{background-color:#fff;box-shadow:5px 0 5px -5px #333;font-size:16px;height:100vh;left:0;opacity:1;overflow-y:scroll;position:fixed!important;top:0;width:75%;z-index:9999}}.velocity-divide-page .right{width:99%!important}.main-content-wrapper .content-list ul{width:101.2%!important}.show-password{margin-top:10px!important} diff --git a/packages/Webkul/Velocity/publishable/assets/mix-manifest.json b/packages/Webkul/Velocity/publishable/assets/mix-manifest.json index 449561c86..5a80a5086 100644 --- a/packages/Webkul/Velocity/publishable/assets/mix-manifest.json +++ b/packages/Webkul/Velocity/publishable/assets/mix-manifest.json @@ -4,7 +4,7 @@ "/js/velocity.js": "/js/velocity.js?id=f655ac65cbd1aa549cba57f77b9a4344", "/js/manifest.js": "/js/manifest.js?id=e069a8f952a02ea0f290bcca8fab930e", "/js/components.js": "/js/components.js?id=13ebf112e40292178d2386143e9d75cd", - "/css/velocity.css": "/css/velocity.css?id=2176075c2608c92bc0e640d405bb852b", + "/css/velocity.css": "/css/velocity.css?id=7290c10f17cb95070a07ca5b052fd1c8", "/css/velocity-admin.css": "/css/velocity-admin.css?id=b67a82956e53163b5e3ff45a44f9778f", "/images/icon-calendar.svg": "/images/icon-calendar.svg?id=870d0f733a58377422766f3152e15486", "/images/icon-camera.svg": "/images/icon-camera.svg?id=b2fd2f9e17e1ccee96e29f6c6cec91e8", diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/datagrid.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/datagrid.scss index 0457dd1e9..9082afbd6 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/components/datagrid.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/datagrid.scss @@ -131,6 +131,7 @@ grid-template-columns: auto auto; column-gap: 10px; align-items: end; + position: relative; .filter-right { justify-self: end; @@ -140,10 +141,27 @@ align-items: end; .control-group { + margin-bottom: 10px; + .control { margin-bottom: 0px; } } + + .dropdown-list { + right: 0; + padding: 15px; + + ul { + margin: 0; + padding: 0; + list-style: none; + } + + .apply-filter { + width: 100%; + } + } } } } From 241d6c6edc5ad706e70cc307c1cb0c5b546e1e42 Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 31 Mar 2022 11:30:39 +0530 Subject: [PATCH 2/2] Remove composer-setup.php file --- composer-setup.php | 1738 -------------------------------------------- 1 file changed, 1738 deletions(-) delete mode 100644 composer-setup.php diff --git a/composer-setup.php b/composer-setup.php deleted file mode 100644 index 856bccafb..000000000 --- a/composer-setup.php +++ /dev/null @@ -1,1738 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -setupEnvironment(); -process(is_array($argv) ? $argv : array()); - -/** - * Initializes various values - * - * @throws RuntimeException If uopz extension prevents exit calls - */ -function setupEnvironment() -{ - ini_set('display_errors', 1); - - if (extension_loaded('uopz') && !(ini_get('uopz.disable') || ini_get('uopz.exit'))) { - // uopz works at opcode level and disables exit calls - if (function_exists('uopz_allow_exit')) { - @uopz_allow_exit(true); - } else { - throw new RuntimeException('The uopz extension ignores exit calls and breaks this installer.'); - } - } - - $installer = 'ComposerInstaller'; - - if (defined('PHP_WINDOWS_VERSION_MAJOR')) { - if ($version = getenv('COMPOSERSETUP')) { - $installer = sprintf('Composer-Setup.exe/%s', $version); - } - } - - define('COMPOSER_INSTALLER', $installer); -} - -/** - * Processes the installer - */ -function process($argv) -{ - // Determine ANSI output from --ansi and --no-ansi flags - setUseAnsi($argv); - - if (in_array('--help', $argv)) { - displayHelp(); - exit(0); - } - - $check = in_array('--check', $argv); - $help = in_array('--help', $argv); - $force = in_array('--force', $argv); - $quiet = in_array('--quiet', $argv); - $channel = 'stable'; - if (in_array('--snapshot', $argv)) { - $channel = 'snapshot'; - } elseif (in_array('--preview', $argv)) { - $channel = 'preview'; - } elseif (in_array('--1', $argv)) { - $channel = '1'; - } elseif (in_array('--2', $argv)) { - $channel = '2'; - } - $disableTls = in_array('--disable-tls', $argv); - $installDir = getOptValue('--install-dir', $argv, false); - $version = getOptValue('--version', $argv, false); - $filename = getOptValue('--filename', $argv, 'composer.phar'); - $cafile = getOptValue('--cafile', $argv, false); - - if (!checkParams($installDir, $version, $cafile)) { - exit(1); - } - - $ok = checkPlatform($warnings, $quiet, $disableTls, true); - - if ($check) { - // Only show warnings if we haven't output any errors - if ($ok) { - showWarnings($warnings); - showSecurityWarning($disableTls); - } - exit($ok ? 0 : 1); - } - - if ($ok || $force) { - $installer = new Installer($quiet, $disableTls, $cafile); - if ($installer->run($version, $installDir, $filename, $channel)) { - showWarnings($warnings); - showSecurityWarning($disableTls); - exit(0); - } - } - - exit(1); -} - -/** - * Displays the help - */ -function displayHelp() -{ - echo << $value) { - $next = $key + 1; - if (0 === strpos($value, $opt)) { - if ($optLength === strlen($value) && isset($argv[$next])) { - return trim($argv[$next]); - } else { - return trim(substr($value, $optLength + 1)); - } - } - } - - return $default; -} - -/** - * Checks that user-supplied params are valid - * - * @param mixed $installDir The required istallation directory - * @param mixed $version The required composer version to install - * @param mixed $cafile Certificate Authority file - * - * @return bool True if the supplied params are okay - */ -function checkParams($installDir, $version, $cafile) -{ - $result = true; - - if (false !== $installDir && !is_dir($installDir)) { - out("The defined install dir ({$installDir}) does not exist.", 'info'); - $result = false; - } - - if (false !== $version && 1 !== preg_match('/^\d+\.\d+\.\d+(\-(alpha|beta|RC)\d*)*$/', $version)) { - out("The defined install version ({$version}) does not match release pattern.", 'info'); - $result = false; - } - - if (false !== $cafile && (!file_exists($cafile) || !is_readable($cafile))) { - out("The defined Certificate Authority (CA) cert file ({$cafile}) does not exist or is not readable.", 'info'); - $result = false; - } - return $result; -} - -/** - * Checks the platform for possible issues running Composer - * - * Errors are written to the output, warnings are saved for later display. - * - * @param array $warnings Populated by method, to be shown later - * @param bool $quiet Quiet mode - * @param bool $disableTls Bypass tls - * @param bool $install If we are installing, rather than diagnosing - * - * @return bool True if there are no errors - */ -function checkPlatform(&$warnings, $quiet, $disableTls, $install) -{ - getPlatformIssues($errors, $warnings, $install); - - // Make openssl warning an error if tls has not been specifically disabled - if (isset($warnings['openssl']) && !$disableTls) { - $errors['openssl'] = $warnings['openssl']; - unset($warnings['openssl']); - } - - if (!empty($errors)) { - // Composer-Setup.exe uses "Some settings" to flag platform errors - out('Some settings on your machine make Composer unable to work properly.', 'error'); - out('Make sure that you fix the issues listed below and run this script again:', 'error'); - outputIssues($errors); - return false; - } - - if (empty($warnings) && !$quiet) { - out('All settings correct for using Composer', 'success'); - } - return true; -} - -/** - * Checks platform configuration for common incompatibility issues - * - * @param array $errors Populated by method - * @param array $warnings Populated by method - * @param bool $install If we are installing, rather than diagnosing - * - * @return bool If any errors or warnings have been found - */ -function getPlatformIssues(&$errors, &$warnings, $install) -{ - $errors = array(); - $warnings = array(); - - if ($iniPath = php_ini_loaded_file()) { - $iniMessage = PHP_EOL.'The php.ini used by your command-line PHP is: ' . $iniPath; - } else { - $iniMessage = PHP_EOL.'A php.ini file does not exist. You will have to create one.'; - } - $iniMessage .= PHP_EOL.'If you can not modify the ini file, you can also run `php -d option=value` to modify ini values on the fly. You can use -d multiple times.'; - - if (ini_get('detect_unicode')) { - $errors['unicode'] = array( - 'The detect_unicode setting must be disabled.', - 'Add the following to the end of your `php.ini`:', - ' detect_unicode = Off', - $iniMessage - ); - } - - if (extension_loaded('suhosin')) { - $suhosin = ini_get('suhosin.executor.include.whitelist'); - $suhosinBlacklist = ini_get('suhosin.executor.include.blacklist'); - if (false === stripos($suhosin, 'phar') && (!$suhosinBlacklist || false !== stripos($suhosinBlacklist, 'phar'))) { - $errors['suhosin'] = array( - 'The suhosin.executor.include.whitelist setting is incorrect.', - 'Add the following to the end of your `php.ini` or suhosin.ini (Example path [for Debian]: /etc/php5/cli/conf.d/suhosin.ini):', - ' suhosin.executor.include.whitelist = phar '.$suhosin, - $iniMessage - ); - } - } - - if (!function_exists('json_decode')) { - $errors['json'] = array( - 'The json extension is missing.', - 'Install it or recompile php without --disable-json' - ); - } - - if (!extension_loaded('Phar')) { - $errors['phar'] = array( - 'The phar extension is missing.', - 'Install it or recompile php without --disable-phar' - ); - } - - if (!extension_loaded('filter')) { - $errors['filter'] = array( - 'The filter extension is missing.', - 'Install it or recompile php without --disable-filter' - ); - } - - if (!extension_loaded('hash')) { - $errors['hash'] = array( - 'The hash extension is missing.', - 'Install it or recompile php without --disable-hash' - ); - } - - if (!extension_loaded('iconv') && !extension_loaded('mbstring')) { - $errors['iconv_mbstring'] = array( - 'The iconv OR mbstring extension is required and both are missing.', - 'Install either of them or recompile php without --disable-iconv' - ); - } - - if (!ini_get('allow_url_fopen')) { - $errors['allow_url_fopen'] = array( - 'The allow_url_fopen setting is incorrect.', - 'Add the following to the end of your `php.ini`:', - ' allow_url_fopen = On', - $iniMessage - ); - } - - if (extension_loaded('ionCube Loader') && ioncube_loader_iversion() < 40009) { - $ioncube = ioncube_loader_version(); - $errors['ioncube'] = array( - 'Your ionCube Loader extension ('.$ioncube.') is incompatible with Phar files.', - 'Upgrade to ionCube 4.0.9 or higher or remove this line (path may be different) from your `php.ini` to disable it:', - ' zend_extension = /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so', - $iniMessage - ); - } - - if (version_compare(PHP_VERSION, '5.3.2', '<')) { - $errors['php'] = array( - 'Your PHP ('.PHP_VERSION.') is too old, you must upgrade to PHP 5.3.2 or higher.' - ); - } - - if (version_compare(PHP_VERSION, '5.3.4', '<')) { - $warnings['php'] = array( - 'Your PHP ('.PHP_VERSION.') is quite old, upgrading to PHP 5.3.4 or higher is recommended.', - 'Composer works with 5.3.2+ for most people, but there might be edge case issues.' - ); - } - - if (!extension_loaded('openssl')) { - $warnings['openssl'] = array( - 'The openssl extension is missing, which means that secure HTTPS transfers are impossible.', - 'If possible you should enable it or recompile php with --with-openssl' - ); - } - - if (extension_loaded('openssl') && OPENSSL_VERSION_NUMBER < 0x1000100f) { - // Attempt to parse version number out, fallback to whole string value. - $opensslVersion = trim(strstr(OPENSSL_VERSION_TEXT, ' ')); - $opensslVersion = substr($opensslVersion, 0, strpos($opensslVersion, ' ')); - $opensslVersion = $opensslVersion ? $opensslVersion : OPENSSL_VERSION_TEXT; - - $warnings['openssl_version'] = array( - 'The OpenSSL library ('.$opensslVersion.') used by PHP does not support TLSv1.2 or TLSv1.1.', - 'If possible you should upgrade OpenSSL to version 1.0.1 or above.' - ); - } - - if (!defined('HHVM_VERSION') && !extension_loaded('apcu') && ini_get('apc.enable_cli')) { - $warnings['apc_cli'] = array( - 'The apc.enable_cli setting is incorrect.', - 'Add the following to the end of your `php.ini`:', - ' apc.enable_cli = Off', - $iniMessage - ); - } - - if (!$install && extension_loaded('xdebug')) { - $warnings['xdebug_loaded'] = array( - 'The xdebug extension is loaded, this can slow down Composer a little.', - 'Disabling it when using Composer is recommended.' - ); - - if (ini_get('xdebug.profiler_enabled')) { - $warnings['xdebug_profile'] = array( - 'The xdebug.profiler_enabled setting is enabled, this can slow down Composer a lot.', - 'Add the following to the end of your `php.ini` to disable it:', - ' xdebug.profiler_enabled = 0', - $iniMessage - ); - } - } - - if (!extension_loaded('zlib')) { - $warnings['zlib'] = array( - 'The zlib extension is not loaded, this can slow down Composer a lot.', - 'If possible, install it or recompile php with --with-zlib', - $iniMessage - ); - } - - if (defined('PHP_WINDOWS_VERSION_BUILD') - && (version_compare(PHP_VERSION, '7.2.23', '<') - || (version_compare(PHP_VERSION, '7.3.0', '>=') - && version_compare(PHP_VERSION, '7.3.10', '<')))) { - $warnings['onedrive'] = array( - 'The Windows OneDrive folder is not supported on PHP versions below 7.2.23 and 7.3.10.', - 'Upgrade your PHP ('.PHP_VERSION.') to use this location with Composer.' - ); - } - - if (extension_loaded('uopz') && !(ini_get('uopz.disable') || ini_get('uopz.exit'))) { - $warnings['uopz'] = array( - 'The uopz extension ignores exit calls and may not work with all Composer commands.', - 'Disabling it when using Composer is recommended.' - ); - } - - ob_start(); - phpinfo(INFO_GENERAL); - $phpinfo = ob_get_clean(); - if (preg_match('{Configure Command(?: *| *=> *)(.*?)(?:|$)}m', $phpinfo, $match)) { - $configure = $match[1]; - - if (false !== strpos($configure, '--enable-sigchild')) { - $warnings['sigchild'] = array( - 'PHP was compiled with --enable-sigchild which can cause issues on some platforms.', - 'Recompile it without this flag if possible, see also:', - ' https://bugs.php.net/bug.php?id=22999' - ); - } - - if (false !== strpos($configure, '--with-curlwrappers')) { - $warnings['curlwrappers'] = array( - 'PHP was compiled with --with-curlwrappers which will cause issues with HTTP authentication and GitHub.', - 'Recompile it without this flag if possible' - ); - } - } - - // Stringify the message arrays - foreach ($errors as $key => $value) { - $errors[$key] = PHP_EOL.implode(PHP_EOL, $value); - } - - foreach ($warnings as $key => $value) { - $warnings[$key] = PHP_EOL.implode(PHP_EOL, $value); - } - - return !empty($errors) || !empty($warnings); -} - - -/** - * Outputs an array of issues - * - * @param array $issues - */ -function outputIssues($issues) -{ - foreach ($issues as $issue) { - out($issue, 'info'); - } - out(''); -} - -/** - * Outputs any warnings found - * - * @param array $warnings - */ -function showWarnings($warnings) -{ - if (!empty($warnings)) { - out('Some settings on your machine may cause stability issues with Composer.', 'error'); - out('If you encounter issues, try to change the following:', 'error'); - outputIssues($warnings); - } -} - -/** - * Outputs an end of process warning if tls has been bypassed - * - * @param bool $disableTls Bypass tls - */ -function showSecurityWarning($disableTls) -{ - if ($disableTls) { - out('You have instructed the Installer not to enforce SSL/TLS security on remote HTTPS requests.', 'info'); - out('This will leave all downloads during installation vulnerable to Man-In-The-Middle (MITM) attacks', 'info'); - } -} - -/** - * colorize output - */ -function out($text, $color = null, $newLine = true) -{ - $styles = array( - 'success' => "\033[0;32m%s\033[0m", - 'error' => "\033[31;31m%s\033[0m", - 'info' => "\033[33;33m%s\033[0m" - ); - - $format = '%s'; - - if (isset($styles[$color]) && USE_ANSI) { - $format = $styles[$color]; - } - - if ($newLine) { - $format .= PHP_EOL; - } - - printf($format, $text); -} - -/** - * Returns the system-dependent Composer home location, which may not exist - * - * @return string - */ -function getHomeDir() -{ - $home = getenv('COMPOSER_HOME'); - if ($home) { - return $home; - } - - $userDir = getUserDir(); - - if (defined('PHP_WINDOWS_VERSION_MAJOR')) { - return $userDir.'/Composer'; - } - - $dirs = array(); - - if (useXdg()) { - // XDG Base Directory Specifications - $xdgConfig = getenv('XDG_CONFIG_HOME'); - if (!$xdgConfig) { - $xdgConfig = $userDir . '/.config'; - } - - $dirs[] = $xdgConfig . '/composer'; - } - - $dirs[] = $userDir . '/.composer'; - - // select first dir which exists of: $XDG_CONFIG_HOME/composer or ~/.composer - foreach ($dirs as $dir) { - if (is_dir($dir)) { - return $dir; - } - } - - // if none exists, we default to first defined one (XDG one if system uses it, or ~/.composer otherwise) - return $dirs[0]; -} - -/** - * Returns the location of the user directory from the environment - * @throws RuntimeException If the environment value does not exists - * - * @return string - */ -function getUserDir() -{ - $userEnv = defined('PHP_WINDOWS_VERSION_MAJOR') ? 'APPDATA' : 'HOME'; - $userDir = getenv($userEnv); - - if (!$userDir) { - throw new RuntimeException('The '.$userEnv.' or COMPOSER_HOME environment variable must be set for composer to run correctly'); - } - - return rtrim(strtr($userDir, '\\', '/'), '/'); -} - -/** - * @return bool - */ -function useXdg() -{ - foreach (array_keys($_SERVER) as $key) { - if (strpos($key, 'XDG_') === 0) { - return true; - } - } - - if (is_dir('/etc/xdg')) { - return true; - } - - return false; -} - -function validateCaFile($contents) -{ - // assume the CA is valid if php is vulnerable to - // https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html - if ( - PHP_VERSION_ID <= 50327 - || (PHP_VERSION_ID >= 50400 && PHP_VERSION_ID < 50422) - || (PHP_VERSION_ID >= 50500 && PHP_VERSION_ID < 50506) - ) { - return !empty($contents); - } - - return (bool) openssl_x509_parse($contents); -} - -class Installer -{ - private $quiet; - private $disableTls; - private $cafile; - private $displayPath; - private $target; - private $tmpFile; - private $tmpCafile; - private $baseUrl; - private $algo; - private $errHandler; - private $httpClient; - private $pubKeys = array(); - private $installs = array(); - - /** - * Constructor - must not do anything that throws an exception - * - * @param bool $quiet Quiet mode - * @param bool $disableTls Bypass tls - * @param mixed $cafile Path to CA bundle, or false - */ - public function __construct($quiet, $disableTls, $caFile) - { - if (($this->quiet = $quiet)) { - ob_start(); - } - $this->disableTls = $disableTls; - $this->cafile = $caFile; - $this->errHandler = new ErrorHandler(); - } - - /** - * Runs the installer - * - * @param mixed $version Specific version to install, or false - * @param mixed $installDir Specific installation directory, or false - * @param string $filename Specific filename to save to, or composer.phar - * @param string $channel Specific version channel to use - * @throws Exception If anything other than a RuntimeException is caught - * - * @return bool If the installation succeeded - */ - public function run($version, $installDir, $filename, $channel) - { - try { - $this->initTargets($installDir, $filename); - $this->initTls(); - $this->httpClient = new HttpClient($this->disableTls, $this->cafile); - $result = $this->install($version, $channel); - - // in case --1 or --2 is passed, we leave the default channel for next self-update to stable - if (is_numeric($channel)) { - $channel = 'stable'; - } - - if ($result && $channel !== 'stable' && !$version && defined('PHP_BINARY')) { - $null = (defined('PHP_WINDOWS_VERSION_MAJOR') ? 'NUL' : '/dev/null'); - @exec(escapeshellarg(PHP_BINARY) .' '.escapeshellarg($this->target).' self-update --'.$channel.' --set-channel-only -q > '.$null.' 2> '.$null, $output); - } - } catch (Exception $e) { - $result = false; - } - - // Always clean up - $this->cleanUp($result); - - if (isset($e)) { - // Rethrow anything that is not a RuntimeException - if (!$e instanceof RuntimeException) { - throw $e; - } - out($e->getMessage(), 'error'); - } - return $result; - } - - /** - * Initialization methods to set the required filenames and composer url - * - * @param mixed $installDir Specific installation directory, or false - * @param string $filename Specific filename to save to, or composer.phar - * @throws RuntimeException If the installation directory is not writable - */ - protected function initTargets($installDir, $filename) - { - $this->displayPath = ($installDir ? rtrim($installDir, '/').'/' : '').$filename; - $installDir = $installDir ? realpath($installDir) : getcwd(); - - if (!is_writeable($installDir)) { - throw new RuntimeException('The installation directory "'.$installDir.'" is not writable'); - } - - $this->target = $installDir.DIRECTORY_SEPARATOR.$filename; - $this->tmpFile = $installDir.DIRECTORY_SEPARATOR.basename($this->target, '.phar').'-temp.phar'; - - $uriScheme = $this->disableTls ? 'http' : 'https'; - $this->baseUrl = $uriScheme.'://getcomposer.org'; - } - - /** - * A wrapper around methods to check tls and write public keys - * @throws RuntimeException If SHA384 is not supported - */ - protected function initTls() - { - if ($this->disableTls) { - return; - } - - if (!in_array('sha384', array_map('strtolower', openssl_get_md_methods()))) { - throw new RuntimeException('SHA384 is not supported by your openssl extension'); - } - - $this->algo = defined('OPENSSL_ALGO_SHA384') ? OPENSSL_ALGO_SHA384 : 'SHA384'; - $home = $this->getComposerHome(); - - $this->pubKeys = array( - 'dev' => $this->installKey(self::getPKDev(), $home, 'keys.dev.pub'), - 'tags' => $this->installKey(self::getPKTags(), $home, 'keys.tags.pub') - ); - - if (empty($this->cafile) && !HttpClient::getSystemCaRootBundlePath()) { - $this->cafile = $this->tmpCafile = $this->installKey(HttpClient::getPackagedCaFile(), $home, 'cacert-temp.pem'); - } - } - - /** - * Returns the Composer home directory, creating it if required - * @throws RuntimeException If the directory cannot be created - * - * @return string - */ - protected function getComposerHome() - { - $home = getHomeDir(); - - if (!is_dir($home)) { - $this->errHandler->start(); - - if (!mkdir($home, 0777, true)) { - throw new RuntimeException(sprintf( - 'Unable to create Composer home directory "%s": %s', - $home, - $this->errHandler->message - )); - } - $this->installs[] = $home; - $this->errHandler->stop(); - } - return $home; - } - - /** - * Writes public key data to disc - * - * @param string $data The public key(s) in pem format - * @param string $path The directory to write to - * @param string $filename The name of the file - * @throws RuntimeException If the file cannot be written - * - * @return string The path to the saved data - */ - protected function installKey($data, $path, $filename) - { - $this->errHandler->start(); - - $target = $path.DIRECTORY_SEPARATOR.$filename; - $installed = file_exists($target); - $write = file_put_contents($target, $data, LOCK_EX); - @chmod($target, 0644); - - $this->errHandler->stop(); - - if (!$write) { - throw new RuntimeException(sprintf('Unable to write %s to: %s', $filename, $path)); - } - - if (!$installed) { - $this->installs[] = $target; - } - - return $target; - } - - /** - * The main install function - * - * @param mixed $version Specific version to install, or false - * @param string $channel Version channel to use - * - * @return bool If the installation succeeded - */ - protected function install($version, $channel) - { - $retries = 3; - $result = false; - $infoMsg = 'Downloading...'; - $infoType = 'info'; - - while ($retries--) { - if (!$this->quiet) { - out($infoMsg, $infoType); - $infoMsg = 'Retrying...'; - $infoType = 'error'; - } - - if (!$this->getVersion($channel, $version, $url, $error)) { - out($error, 'error'); - continue; - } - - if (!$this->downloadToTmp($url, $signature, $error)) { - out($error, 'error'); - continue; - } - - if (!$this->verifyAndSave($version, $signature, $error)) { - out($error, 'error'); - continue; - } - - $result = true; - break; - } - - if (!$this->quiet) { - if ($result) { - out(PHP_EOL."Composer (version {$version}) successfully installed to: {$this->target}", 'success'); - out("Use it: php {$this->displayPath}", 'info'); - out(''); - } else { - out('The download failed repeatedly, aborting.', 'error'); - } - } - return $result; - } - - /** - * Sets the version url, downloading version data if required - * - * @param string $channel Version channel to use - * @param false|string $version Version to install, or set by method - * @param null|string $url The versioned url, set by method - * @param null|string $error Set by method on failure - * - * @return bool If the operation succeeded - */ - protected function getVersion($channel, &$version, &$url, &$error) - { - $error = ''; - - if ($version) { - if (empty($url)) { - $url = $this->baseUrl."/download/{$version}/composer.phar"; - } - return true; - } - - $this->errHandler->start(); - - if ($this->downloadVersionData($data, $error)) { - $this->parseVersionData($data, $channel, $version, $url); - } - - $this->errHandler->stop(); - return empty($error); - } - - /** - * Downloads and json-decodes version data - * - * @param null|array $data Downloaded version data, set by method - * @param null|string $error Set by method on failure - * - * @return bool If the operation succeeded - */ - protected function downloadVersionData(&$data, &$error) - { - $url = $this->baseUrl.'/versions'; - $errFmt = 'The "%s" file could not be %s: %s'; - - if (!$json = $this->httpClient->get($url)) { - $error = sprintf($errFmt, $url, 'downloaded', $this->errHandler->message); - return false; - } - - if (!$data = json_decode($json, true)) { - $error = sprintf($errFmt, $url, 'json-decoded', $this->getJsonError()); - return false; - } - return true; - } - - /** - * A wrapper around the methods needed to download and save the phar - * - * @param string $url The versioned download url - * @param null|string $signature Set by method on successful download - * @param null|string $error Set by method on failure - * - * @return bool If the operation succeeded - */ - protected function downloadToTmp($url, &$signature, &$error) - { - $error = ''; - $errFmt = 'The "%s" file could not be downloaded: %s'; - $sigUrl = $url.'.sig'; - $this->errHandler->start(); - - if (!$fh = fopen($this->tmpFile, 'w')) { - $error = sprintf('Could not create file "%s": %s', $this->tmpFile, $this->errHandler->message); - - } elseif (!$this->getSignature($sigUrl, $signature)) { - $error = sprintf($errFmt, $sigUrl, $this->errHandler->message); - - } elseif (!fwrite($fh, $this->httpClient->get($url))) { - $error = sprintf($errFmt, $url, $this->errHandler->message); - } - - if (is_resource($fh)) { - fclose($fh); - } - $this->errHandler->stop(); - return empty($error); - } - - /** - * Verifies the downloaded file and saves it to the target location - * - * @param string $version The composer version downloaded - * @param string $signature The digital signature to check - * @param null|string $error Set by method on failure - * - * @return bool If the operation succeeded - */ - protected function verifyAndSave($version, $signature, &$error) - { - $error = ''; - - if (!$this->validatePhar($this->tmpFile, $pharError)) { - $error = 'The download is corrupt: '.$pharError; - - } elseif (!$this->verifySignature($version, $signature, $this->tmpFile)) { - $error = 'Signature mismatch, could not verify the phar file integrity'; - - } else { - $this->errHandler->start(); - - if (!rename($this->tmpFile, $this->target)) { - $error = sprintf('Could not write to file "%s": %s', $this->target, $this->errHandler->message); - } - chmod($this->target, 0755); - $this->errHandler->stop(); - } - - return empty($error); - } - - /** - * Parses an array of version data to match the required channel - * - * @param array $data Downloaded version data - * @param mixed $channel Version channel to use - * @param false|string $version Set by method - * @param mixed $url The versioned url, set by method - */ - protected function parseVersionData(array $data, $channel, &$version, &$url) - { - foreach ($data[$channel] as $candidate) { - if ($candidate['min-php'] <= PHP_VERSION_ID) { - $version = $candidate['version']; - $url = $this->baseUrl.$candidate['path']; - break; - } - } - - if (!$version) { - $error = sprintf( - 'None of the %d %s version(s) of Composer matches your PHP version (%s / ID: %d)', - count($data[$channel]), - $channel, - PHP_VERSION, - PHP_VERSION_ID - ); - throw new RuntimeException($error); - } - } - - /** - * Downloads the digital signature of required phar file - * - * @param string $url The signature url - * @param null|string $signature Set by method on success - * - * @return bool If the download succeeded - */ - protected function getSignature($url, &$signature) - { - if (!$result = $this->disableTls) { - $signature = $this->httpClient->get($url); - - if ($signature) { - $signature = json_decode($signature, true); - $signature = base64_decode($signature['sha384']); - $result = true; - } - } - - return $result; - } - - /** - * Verifies the signature of the downloaded phar - * - * @param string $version The composer versione - * @param string $signature The downloaded digital signature - * @param string $file The temp phar file - * - * @return bool If the operation succeeded - */ - protected function verifySignature($version, $signature, $file) - { - if (!$result = $this->disableTls) { - $path = preg_match('{^[0-9a-f]{40}$}', $version) ? $this->pubKeys['dev'] : $this->pubKeys['tags']; - $pubkeyid = openssl_pkey_get_public('file://'.$path); - - $result = 1 === openssl_verify( - file_get_contents($file), - $signature, - $pubkeyid, - $this->algo - ); - - // PHP 8 automatically frees the key instance and deprecates the function - if (PHP_VERSION_ID < 80000) { - openssl_free_key($pubkeyid); - } - } - - return $result; - } - - /** - * Validates the downloaded phar file - * - * @param string $pharFile The temp phar file - * @param null|string $error Set by method on failure - * - * @return bool If the operation succeeded - */ - protected function validatePhar($pharFile, &$error) - { - if (ini_get('phar.readonly')) { - return true; - } - - try { - // Test the phar validity - $phar = new Phar($pharFile); - // Free the variable to unlock the file - unset($phar); - $result = true; - - } catch (Exception $e) { - if (!$e instanceof UnexpectedValueException && !$e instanceof PharException) { - throw $e; - } - $error = $e->getMessage(); - $result = false; - } - return $result; - } - - /** - * Returns a string representation of the last json error - * - * @return string The error string or code - */ - protected function getJsonError() - { - if (function_exists('json_last_error_msg')) { - return json_last_error_msg(); - } else { - return 'json_last_error = '.json_last_error(); - } - } - - /** - * Cleans up resources at the end of the installation - * - * @param bool $result If the installation succeeded - */ - protected function cleanUp($result) - { - if (!$result) { - // Output buffered errors - if ($this->quiet) { - $this->outputErrors(); - } - // Clean up stuff we created - $this->uninstall(); - } elseif ($this->tmpCafile) { - @unlink($this->tmpCafile); - } - } - - /** - * Outputs unique errors when in quiet mode - * - */ - protected function outputErrors() - { - $errors = explode(PHP_EOL, ob_get_clean()); - $shown = array(); - - foreach ($errors as $error) { - if ($error && !in_array($error, $shown)) { - out($error, 'error'); - $shown[] = $error; - } - } - } - - /** - * Uninstalls newly-created files and directories on failure - * - */ - protected function uninstall() - { - foreach (array_reverse($this->installs) as $target) { - if (is_file($target)) { - @unlink($target); - } elseif (is_dir($target)) { - @rmdir($target); - } - } - - if (file_exists($this->tmpFile)) { - @unlink($this->tmpFile); - } - } - - public static function getPKDev() - { - return <<message) { - $this->message .= PHP_EOL; - } - $this->message .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg); - } - - /** - * Starts error-handling if not already active - * - * Any message is cleared - */ - public function start() - { - if (!$this->active) { - set_error_handler(array($this, 'handleError')); - $this->active = true; - } - $this->message = ''; - } - - /** - * Stops error-handling if active - * - * Any message is preserved until the next call to start() - */ - public function stop() - { - if ($this->active) { - restore_error_handler(); - $this->active = false; - } - } -} - -class NoProxyPattern -{ - private $composerInNoProxy = false; - private $rulePorts = array(); - - public function __construct($pattern) - { - $rules = preg_split('{[\s,]+}', $pattern, null, PREG_SPLIT_NO_EMPTY); - - if ($matches = preg_grep('{getcomposer\.org(?::\d+)?}i', $rules)) { - $this->composerInNoProxy = true; - - foreach ($matches as $match) { - if (strpos($match, ':') !== false) { - list(, $port) = explode(':', $match); - $this->rulePorts[] = (int) $port; - } - } - } - } - - /** - * Returns true if NO_PROXY contains getcomposer.org - * - * @param string $url http(s)://getcomposer.org - * - * @return bool - */ - public function test($url) - { - if (!$this->composerInNoProxy) { - return false; - } - - if (empty($this->rulePorts)) { - return true; - } - - if (strpos($url, 'http://') === 0) { - $port = 80; - } else { - $port = 443; - } - - return in_array($port, $this->rulePorts); - } -} - -class HttpClient { - - private $options = array('http' => array()); - private $disableTls = false; - - public function __construct($disableTls = false, $cafile = false) - { - $this->disableTls = $disableTls; - if ($this->disableTls === false) { - if (!empty($cafile) && !is_dir($cafile)) { - if (!is_readable($cafile) || !validateCaFile(file_get_contents($cafile))) { - throw new RuntimeException('The configured cafile (' .$cafile. ') was not valid or could not be read.'); - } - } - $options = $this->getTlsStreamContextDefaults($cafile); - $this->options = array_replace_recursive($this->options, $options); - } - } - - public function get($url) - { - $context = $this->getStreamContext($url); - $result = file_get_contents($url, false, $context); - - if ($result && extension_loaded('zlib')) { - $decode = false; - foreach ($http_response_header as $header) { - if (preg_match('{^content-encoding: *gzip *$}i', $header)) { - $decode = true; - continue; - } elseif (preg_match('{^HTTP/}i', $header)) { - $decode = false; - } - } - - if ($decode) { - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - $result = zlib_decode($result); - } else { - // work around issue with gzuncompress & co that do not work with all gzip checksums - $result = file_get_contents('compress.zlib://data:application/octet-stream;base64,'.base64_encode($result)); - } - - if (!$result) { - throw new RuntimeException('Failed to decode zlib stream'); - } - } - } - - return $result; - } - - protected function getStreamContext($url) - { - if ($this->disableTls === false) { - if (PHP_VERSION_ID < 50600) { - $this->options['ssl']['SNI_server_name'] = parse_url($url, PHP_URL_HOST); - } - } - // Keeping the above mostly isolated from the code copied from Composer. - return $this->getMergedStreamContext($url); - } - - protected function getTlsStreamContextDefaults($cafile) - { - $ciphers = implode(':', array( - 'ECDHE-RSA-AES128-GCM-SHA256', - 'ECDHE-ECDSA-AES128-GCM-SHA256', - 'ECDHE-RSA-AES256-GCM-SHA384', - 'ECDHE-ECDSA-AES256-GCM-SHA384', - 'DHE-RSA-AES128-GCM-SHA256', - 'DHE-DSS-AES128-GCM-SHA256', - 'kEDH+AESGCM', - 'ECDHE-RSA-AES128-SHA256', - 'ECDHE-ECDSA-AES128-SHA256', - 'ECDHE-RSA-AES128-SHA', - 'ECDHE-ECDSA-AES128-SHA', - 'ECDHE-RSA-AES256-SHA384', - 'ECDHE-ECDSA-AES256-SHA384', - 'ECDHE-RSA-AES256-SHA', - 'ECDHE-ECDSA-AES256-SHA', - 'DHE-RSA-AES128-SHA256', - 'DHE-RSA-AES128-SHA', - 'DHE-DSS-AES128-SHA256', - 'DHE-RSA-AES256-SHA256', - 'DHE-DSS-AES256-SHA', - 'DHE-RSA-AES256-SHA', - 'AES128-GCM-SHA256', - 'AES256-GCM-SHA384', - 'AES128-SHA256', - 'AES256-SHA256', - 'AES128-SHA', - 'AES256-SHA', - 'AES', - 'CAMELLIA', - 'DES-CBC3-SHA', - '!aNULL', - '!eNULL', - '!EXPORT', - '!DES', - '!RC4', - '!MD5', - '!PSK', - '!aECDH', - '!EDH-DSS-DES-CBC3-SHA', - '!EDH-RSA-DES-CBC3-SHA', - '!KRB5-DES-CBC3-SHA', - )); - - /** - * CN_match and SNI_server_name are only known once a URL is passed. - * They will be set in the getOptionsForUrl() method which receives a URL. - * - * cafile or capath can be overridden by passing in those options to constructor. - */ - $options = array( - 'ssl' => array( - 'ciphers' => $ciphers, - 'verify_peer' => true, - 'verify_depth' => 7, - 'SNI_enabled' => true, - ) - ); - - /** - * Attempt to find a local cafile or throw an exception. - * The user may go download one if this occurs. - */ - if (!$cafile) { - $cafile = self::getSystemCaRootBundlePath(); - } - if (is_dir($cafile)) { - $options['ssl']['capath'] = $cafile; - } elseif ($cafile) { - $options['ssl']['cafile'] = $cafile; - } else { - throw new RuntimeException('A valid cafile could not be located automatically.'); - } - - /** - * Disable TLS compression to prevent CRIME attacks where supported. - */ - if (version_compare(PHP_VERSION, '5.4.13') >= 0) { - $options['ssl']['disable_compression'] = true; - } - - return $options; - } - - /** - * function copied from Composer\Util\StreamContextFactory::initOptions - * - * Any changes should be applied there as well, or backported here. - * - * @param string $url URL the context is to be used for - * @return resource Default context - * @throws \RuntimeException if https proxy required and OpenSSL uninstalled - */ - protected function getMergedStreamContext($url) - { - $options = $this->options; - - // Handle HTTP_PROXY/http_proxy on CLI only for security reasons - if ((PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') && (!empty($_SERVER['HTTP_PROXY']) || !empty($_SERVER['http_proxy']))) { - $proxy = parse_url(!empty($_SERVER['http_proxy']) ? $_SERVER['http_proxy'] : $_SERVER['HTTP_PROXY']); - } - - // Prefer CGI_HTTP_PROXY if available - if (!empty($_SERVER['CGI_HTTP_PROXY'])) { - $proxy = parse_url($_SERVER['CGI_HTTP_PROXY']); - } - - // Override with HTTPS proxy if present and URL is https - if (preg_match('{^https://}i', $url) && (!empty($_SERVER['HTTPS_PROXY']) || !empty($_SERVER['https_proxy']))) { - $proxy = parse_url(!empty($_SERVER['https_proxy']) ? $_SERVER['https_proxy'] : $_SERVER['HTTPS_PROXY']); - } - - // Remove proxy if URL matches no_proxy directive - if (!empty($_SERVER['NO_PROXY']) || !empty($_SERVER['no_proxy']) && parse_url($url, PHP_URL_HOST)) { - $pattern = new NoProxyPattern(!empty($_SERVER['no_proxy']) ? $_SERVER['no_proxy'] : $_SERVER['NO_PROXY']); - if ($pattern->test($url)) { - unset($proxy); - } - } - - if (!empty($proxy)) { - $proxyURL = isset($proxy['scheme']) ? $proxy['scheme'] . '://' : ''; - $proxyURL .= isset($proxy['host']) ? $proxy['host'] : ''; - - if (isset($proxy['port'])) { - $proxyURL .= ":" . $proxy['port']; - } elseif (strpos($proxyURL, 'http://') === 0) { - $proxyURL .= ":80"; - } elseif (strpos($proxyURL, 'https://') === 0) { - $proxyURL .= ":443"; - } - - // check for a secure proxy - if (strpos($proxyURL, 'https://') === 0) { - if (!extension_loaded('openssl')) { - throw new RuntimeException('You must enable the openssl extension to use a secure proxy.'); - } - if (strpos($url, 'https://') === 0) { - throw new RuntimeException('PHP does not support https requests through a secure proxy.'); - } - } - - // http(s):// is not supported in proxy - $proxyURL = str_replace(array('http://', 'https://'), array('tcp://', 'ssl://'), $proxyURL); - - $options['http'] = array( - 'proxy' => $proxyURL, - ); - - // add request_fulluri for http requests - if ('http' === parse_url($url, PHP_URL_SCHEME)) { - $options['http']['request_fulluri'] = true; - } - - // handle proxy auth if present - if (isset($proxy['user'])) { - $auth = rawurldecode($proxy['user']); - if (isset($proxy['pass'])) { - $auth .= ':' . rawurldecode($proxy['pass']); - } - $auth = base64_encode($auth); - - $options['http']['header'] = "Proxy-Authorization: Basic {$auth}\r\n"; - } - } - - if (isset($options['http']['header'])) { - $options['http']['header'] .= "Connection: close\r\n"; - } else { - $options['http']['header'] = "Connection: close\r\n"; - } - if (extension_loaded('zlib')) { - $options['http']['header'] .= "Accept-Encoding: gzip\r\n"; - } - $options['http']['header'] .= "User-Agent: ".COMPOSER_INSTALLER."\r\n"; - $options['http']['protocol_version'] = 1.1; - $options['http']['timeout'] = 600; - - return stream_context_create($options); - } - - /** - * This method was adapted from Sslurp. - * https://github.com/EvanDotPro/Sslurp - * - * (c) Evan Coury - * - * For the full copyright and license information, please see below: - * - * Copyright (c) 2013, Evan Coury - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - public static function getSystemCaRootBundlePath() - { - static $caPath = null; - - if ($caPath !== null) { - return $caPath; - } - - // If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that. - // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. - $envCertFile = getenv('SSL_CERT_FILE'); - if ($envCertFile && is_readable($envCertFile) && validateCaFile(file_get_contents($envCertFile))) { - return $caPath = $envCertFile; - } - - // If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that. - // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. - $envCertDir = getenv('SSL_CERT_DIR'); - if ($envCertDir && is_dir($envCertDir) && is_readable($envCertDir)) { - return $caPath = $envCertDir; - } - - $configured = ini_get('openssl.cafile'); - if ($configured && strlen($configured) > 0 && is_readable($configured) && validateCaFile(file_get_contents($configured))) { - return $caPath = $configured; - } - - $configured = ini_get('openssl.capath'); - if ($configured && is_dir($configured) && is_readable($configured)) { - return $caPath = $configured; - } - - $caBundlePaths = array( - '/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package) - '/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package) - '/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package) - '/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package) - '/usr/ssl/certs/ca-bundle.crt', // Cygwin - '/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package - '/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option) - '/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat? - '/etc/ssl/cert.pem', // OpenBSD - '/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x - '/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package - '/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package - ); - - foreach ($caBundlePaths as $caBundle) { - if (@is_readable($caBundle) && validateCaFile(file_get_contents($caBundle))) { - return $caPath = $caBundle; - } - } - - foreach ($caBundlePaths as $caBundle) { - $caBundle = dirname($caBundle); - if (is_dir($caBundle) && glob($caBundle.'/*')) { - return $caPath = $caBundle; - } - } - - return $caPath = false; - } - - public static function getPackagedCaFile() - { - return <<