├── static ├── bg.jpg ├── dots.png ├── skills_bg.jpg ├── counterup.min.js ├── move-top.js ├── icons.svg ├── demo1-search.js ├── owl.carousel.css ├── owl.theme.css ├── classie-search.js ├── minimal-slider.js ├── style6.css ├── easing.js ├── waypoints.min.js ├── swipebox.css ├── minimal-slider.css ├── jquery.swipebox.min.js ├── modernizr-2.6.2.min.js ├── SmoothScroll.min.js ├── style.css └── fontawesome-all.css ├── webfonts ├── fa-brands-400.eot ├── fa-brands-400.ttf ├── fa-solid-900.eot ├── fa-solid-900.ttf ├── fa-solid-900.woff ├── fa-brands-400.woff ├── fa-brands-400.woff2 ├── fa-regular-400.eot ├── fa-regular-400.ttf ├── fa-regular-400.woff ├── fa-solid-900.woff2 └── fa-regular-400.woff2 ├── bot_config.json ├── Pipfile ├── LICENSE ├── README.md ├── .gitignore ├── web_app.py ├── work_webchat_robot.py └── templates └── index.html /static/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/static/bg.jpg -------------------------------------------------------------------------------- /static/dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/static/dots.png -------------------------------------------------------------------------------- /static/skills_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/static/skills_bg.jpg -------------------------------------------------------------------------------- /webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crisschan/work_wechat_bot/HEAD/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /bot_config.json: -------------------------------------------------------------------------------- 1 | [{"botname":"bot","webhook":"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b425177c-3eee-48c4-82a0-"}] -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | 10 | [requires] 11 | python_version = "3.7" 12 | -------------------------------------------------------------------------------- /static/counterup.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jquery.counterup.js 1.0 3 | * 4 | * Copyright 2013, Benjamin Intal http://gambit.ph @bfintal 5 | * Released under the GPL v2 License 6 | * 7 | * Date: Nov 26, 2013 8 | */(function(e){"use strict";e.fn.counterUp=function(t){var n=e.extend({time:400,delay:10},t);return this.each(function(){var t=e(this),r=n,i=function(){var e=[],n=r.time/r.delay,i=t.text(),s=/[0-9]+,[0-9]+/.test(i);i=i.replace(/,/g,"");var o=/^[0-9]+$/.test(i),u=/^[0-9]+\.[0-9]+$/.test(i),a=u?(i.split(".")[1]||[]).length:0;for(var f=n;f>=1;f--){var l=parseInt(i/n*f);u&&(l=parseFloat(i/n*f).toFixed(a));if(s)while(/(\d+)(\d{3})/.test(l.toString()))l=l.toString().replace(/(\d+)(\d{3})/,"$1,$2");e.unshift(l)}t.data("counterup-nums",e);t.text("0");var c=function(){t.text(t.data("counterup-nums").shift());if(t.data("counterup-nums").length)setTimeout(t.data("counterup-func"),r.delay);else{delete t.data("counterup-nums");t.data("counterup-nums",null);t.data("counterup-func",null)}};t.data("counterup-func",c);setTimeout(t.data("counterup-func"),r.delay)};t.waypoint(i,{offset:"100%",triggerOnce:!0})})}})(jQuery); -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 crisschan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 企业微信群机器人消息发送和管理 2 | 3 | ## 使用方法 4 | 5 | 在bot_config配置机器人的回调地址和机器人别名,运行web_app后,会在8080启动服务,访问127.0.0.1:8080就可以访问了 6 | 其中机器人的配置如下: 7 | 8 | [{"botname":"bot","webhook":"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b425177c-3eee-48c4-82a0-"}] 9 | 10 | ## 简介 11 | 12 | 基于flask做了web的封装,可以发送文本、markdown、微信文章类型的消息,提供了ui的发送消息的方式,同时也提供了接口访问。 13 | 14 | ![](https://raw.githubusercontent.com/crisschan/pic_down/master/20191105150214.png) 15 | ![](https://raw.githubusercontent.com/crisschan/pic_down/master/20191105150242.png) 16 | ## 接口说明 17 | 18 | { 19 | "articletype":"文章类型,可以指定text、markdown和news,必须小写其中text是文本类型消息、markdown是markdown类型消息,news是微信文章", 20 | "phone":"要@的人通过电话标记,如果没有需要传入@all参数", 21 | "robot":"webhook的回调地址", 22 | "detail":"文章的详细信息" 23 | } 24 | 25 | 其中,robot的webhook要现在企业微信里面建立一个群,然后点击右上角的图标后,点击群机器人,添加完成后,可以看到一个webook地址,这个参数就是这个地址。 26 | detail:如果articletype是text,这里面就是string;如果articletype,那么这里就要写markdown文本;如果articletype是news,那么detail要遵循如下格式: 27 | 28 | { 29 | "title" : "测者陈磊", 30 | "description" : "测者陈磊的blog", 31 | "url" : "https://blog.csdn.net/crisschan/article/details/100922668", 32 | "picurl" : "https://i.loli.net/2019/09/17/4wPgvOm72Q9zT8K.png" 33 | } -------------------------------------------------------------------------------- /static/move-top.js: -------------------------------------------------------------------------------- 1 | /* UItoTop jQuery Plugin 1.2 | Matt Varone | http://www.mattvarone.com/web-design/uitotop-jquery-plugin */ 2 | (function($){$.fn.UItoTop=function(options){var defaults={text:'To Top',min:200,inDelay:600,outDelay:400,containerID:'toTop',containerHoverID:'toTopHover',scrollSpeed:1000,easingType:'linear'},settings=$.extend(defaults,options),containerIDhash='#'+settings.containerID,containerHoverIDHash='#'+settings.containerHoverID;$('body').append(''+settings.text+'');$(containerIDhash).hide().on('click.UItoTop',function(){$('html, body').animate({scrollTop:0},settings.scrollSpeed,settings.easingType);$('#'+settings.containerHoverID,this).stop().animate({'opacity':0},settings.inDelay,settings.easingType);return false;}).prepend('').hover(function(){$(containerHoverIDHash,this).stop().animate({'opacity':1},600,'linear');},function(){$(containerHoverIDHash,this).stop().animate({'opacity':0},700,'linear');});$(window).scroll(function(){var sd=$(window).scrollTop();if(typeof document.body.style.maxHeight==="undefined"){$(containerIDhash).css({'position':'absolute','top':sd+$(window).height()-50});} 3 | if(sd>settings.min) 4 | $(containerIDhash).fadeIn(settings.inDelay);else 5 | $(containerIDhash).fadeOut(settings.Outdelay);});};})(jQuery); -------------------------------------------------------------------------------- /static/icons.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/demo1-search.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var triggerBttn = document.getElementById( 'trigger-overlay' ), 3 | overlay = document.querySelector( 'div.overlay' ), 4 | closeBttn = overlay.querySelector( 'button.overlay-close' ); 5 | transEndEventNames = { 6 | 'WebkitTransition': 'webkitTransitionEnd', 7 | 'MozTransition': 'transitionend', 8 | 'OTransition': 'oTransitionEnd', 9 | 'msTransition': 'MSTransitionEnd', 10 | 'transition': 'transitionend' 11 | }, 12 | transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ], 13 | support = { transitions : Modernizr.csstransitions }; 14 | 15 | function toggleOverlay() { 16 | if( classie.has( overlay, 'open' ) ) { 17 | classie.remove( overlay, 'open' ); 18 | classie.add( overlay, 'close' ); 19 | var onEndTransitionFn = function( ev ) { 20 | if( support.transitions ) { 21 | if( ev.propertyName !== 'visibility' ) return; 22 | this.removeEventListener( transEndEventName, onEndTransitionFn ); 23 | } 24 | classie.remove( overlay, 'close' ); 25 | }; 26 | if( support.transitions ) { 27 | overlay.addEventListener( transEndEventName, onEndTransitionFn ); 28 | } 29 | else { 30 | onEndTransitionFn(); 31 | } 32 | } 33 | else if( !classie.has( overlay, 'close' ) ) { 34 | classie.add( overlay, 'open' ); 35 | } 36 | } 37 | 38 | triggerBttn.addEventListener( 'click', toggleOverlay ); 39 | closeBttn.addEventListener( 'click', toggleOverlay ); 40 | })(); -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | MANIFEST 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | .pytest_cache/ 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | local_settings.py 57 | db.sqlite3 58 | 59 | # Flask stuff: 60 | instance/ 61 | .webassets-cache 62 | 63 | # Scrapy stuff: 64 | .scrapy 65 | 66 | # Sphinx documentation 67 | docs/_build/ 68 | 69 | # PyBuilder 70 | target/ 71 | 72 | # Jupyter Notebook 73 | .ipynb_checkpoints 74 | 75 | # pyenv 76 | .python-version 77 | 78 | # celery beat schedule file 79 | celerybeat-schedule 80 | 81 | # SageMath parsed files 82 | *.sage.py 83 | 84 | # Environments 85 | .env 86 | .venv 87 | env/ 88 | venv/ 89 | ENV/ 90 | env.bak/ 91 | venv.bak/ 92 | 93 | # Spyder project settings 94 | .spyderproject 95 | .spyproject 96 | 97 | # Rope project settings 98 | .ropeproject 99 | 100 | # mkdocs documentation 101 | /site 102 | 103 | # mypy 104 | .mypy_cache/ 105 | -------------------------------------------------------------------------------- /static/owl.carousel.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Core Owl Carousel CSS File 3 | * v1.3.3 4 | */ 5 | 6 | /* clearfix */ 7 | .owl-carousel .owl-wrapper:after { 8 | content: "."; 9 | display: block; 10 | clear: both; 11 | visibility: hidden; 12 | line-height: 0; 13 | height: 0; 14 | } 15 | /* display none until init */ 16 | .owl-carousel{ 17 | display: none; 18 | position: relative; 19 | width: 100%; 20 | -ms-touch-action: pan-y; 21 | } 22 | .owl-carousel .owl-wrapper{ 23 | display: none; 24 | position: relative; 25 | -webkit-transform: translate3d(0px, 0px, 0px); 26 | } 27 | .owl-carousel .owl-wrapper-outer{ 28 | overflow: hidden; 29 | position: relative; 30 | width: 100%; 31 | } 32 | .owl-carousel .owl-wrapper-outer.autoHeight{ 33 | -webkit-transition: height 500ms ease-in-out; 34 | -moz-transition: height 500ms ease-in-out; 35 | -ms-transition: height 500ms ease-in-out; 36 | -o-transition: height 500ms ease-in-out; 37 | transition: height 500ms ease-in-out; 38 | } 39 | 40 | .owl-carousel .owl-item{ 41 | float: left; 42 | } 43 | .owl-controls .owl-page, 44 | .owl-controls .owl-buttons div{ 45 | cursor: pointer; 46 | } 47 | .owl-controls { 48 | -webkit-user-select: none; 49 | -khtml-user-select: none; 50 | -moz-user-select: none; 51 | -ms-user-select: none; 52 | user-select: none; 53 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 54 | } 55 | 56 | /* mouse grab icon */ 57 | .grabbing { 58 | cursor:url(grabbing.png) 8 8, move; 59 | } 60 | 61 | /* fix */ 62 | .owl-carousel .owl-wrapper, 63 | .owl-carousel .owl-item{ 64 | -webkit-backface-visibility: hidden; 65 | -moz-backface-visibility: hidden; 66 | -ms-backface-visibility: hidden; 67 | -webkit-transform: translate3d(0,0,0); 68 | -moz-transform: translate3d(0,0,0); 69 | -ms-transform: translate3d(0,0,0); 70 | } 71 | 72 | -------------------------------------------------------------------------------- /static/owl.theme.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Owl Carousel Owl Demo Theme 3 | * v1.3.3 4 | */ 5 | 6 | .owl-theme .owl-controls{ 7 | margin-top: 20px; 8 | text-align: center; 9 | } 10 | 11 | /* Styling Next and Prev buttons */ 12 | 13 | .owl-theme .owl-controls .owl-buttons div{ 14 | color: #FFF; 15 | display: inline-block; 16 | zoom: 1; 17 | *display: inline;/*IE7 life-saver */ 18 | margin: 5px; 19 | padding: 3px 10px; 20 | font-size: 12px; 21 | -webkit-border-radius: 30px; 22 | -moz-border-radius: 30px; 23 | border-radius: 30px; 24 | background: #869791; 25 | filter: Alpha(Opacity=50);/*IE7 fix*/ 26 | opacity: 0.5; 27 | } 28 | /* Clickable class fix problem with hover on touch devices */ 29 | /* Use it for non-touch hover action */ 30 | .owl-theme .owl-controls.clickable .owl-buttons div:hover{ 31 | filter: Alpha(Opacity=100);/*IE7 fix*/ 32 | opacity: 1; 33 | text-decoration: none; 34 | } 35 | 36 | /* Styling Pagination*/ 37 | 38 | .owl-theme .owl-controls .owl-page{ 39 | display: inline-block; 40 | zoom: 1; 41 | *display: inline;/*IE7 life-saver */ 42 | } 43 | .owl-theme .owl-controls .owl-page span{ 44 | display: block; 45 | width: 11px; 46 | height: 11px; 47 | margin: 5px 3px; 48 | filter: Alpha(Opacity=50); 49 | opacity: 0.5; 50 | -webkit-border-radius: 20px; 51 | -moz-border-radius: 20px; 52 | border-radius: 20px; 53 | background:#333; 54 | } 55 | 56 | .owl-theme .owl-controls .owl-page.active span, 57 | .owl-theme .owl-controls.clickable .owl-page:hover span{ 58 | filter: Alpha(Opacity=100);/*IE7 fix*/ 59 | opacity: 1; 60 | } 61 | 62 | /* If PaginationNumbers is true */ 63 | 64 | .owl-theme .owl-controls .owl-page span.owl-numbers{ 65 | height: auto; 66 | width: auto; 67 | color: #FFF; 68 | padding: 2px 10px; 69 | font-size: 12px; 70 | -webkit-border-radius: 30px; 71 | -moz-border-radius: 30px; 72 | border-radius: 30px; 73 | } 74 | 75 | /* preloading images */ 76 | .owl-item.loading{ 77 | min-height: 150px; 78 | background: url(AjaxLoader.gif) no-repeat center center 79 | } -------------------------------------------------------------------------------- /web_app.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | # @Time : 2019/11/1 3:54 PM 4 | # @Author : Criss Chan 5 | # @Site : https://blog.csdn.net/crisschan 6 | # @File : web_app.py.py 7 | # @Software: PyCharm 8 | # @instruction: 9 | 10 | from flask import Flask, render_template, request, abort, jsonify 11 | from work_webchat_robot import workWechat, MSGTYPE 12 | import json 13 | 14 | app = Flask(__name__) 15 | 16 | 17 | @app.route('/', methods=['GET', 'POST']) 18 | def index(): 19 | rfjson = open('bot_config.json', 'r') 20 | 21 | bots = json.loads(rfjson.readline()) 22 | if request.method == 'GET': 23 | 24 | # print(bots) 25 | return render_template('index.html', bots=bots) 26 | elif request.method == 'POST': 27 | article_type = request.form['articletype'] 28 | phone = request.form['phone'] 29 | robot = request.form['robot'] 30 | detail = request.form['detail'] 31 | 32 | wwc = workWechat(str(robot), 33 | MSGTYPE(article_type.lower()), 34 | str(detail), 35 | mentioned_mobile_list=str(phone)) 36 | return render_template('index.html', bots=bots) 37 | 38 | 39 | @app.route('/webotapi/', methods=['POST']) 40 | def webotapi(): 41 | if not request.json or 'articletype' not in request.json or 'phone' not in request.json or 'robot' not in request.json or 'detail' not in request.json: 42 | return jsonify({'code': '9999', 'mesg': 'faile parms'}) 43 | else: 44 | 45 | article_type = request.args['articletype'] 46 | phone = request.args['phone'] 47 | robot = request.args['robot'] 48 | detail = request.args['detail'] 49 | 50 | wwc = workWechat(str(robot), 51 | MSGTYPE(article_type.lower()), 52 | str(detail), 53 | mentioned_mobile_list=str(phone)) 54 | return jsonify({'code': '0000', 'mesg': 'sucess'}) 55 | 56 | 57 | if __name__ == "__main__": 58 | app.run(debug=True, port=8080) 59 | -------------------------------------------------------------------------------- /static/classie-search.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * classie - class helper functions 3 | * from bonzo https://github.com/ded/bonzo 4 | * 5 | * classie.has( elem, 'my-class' ) -> true/false 6 | * classie.add( elem, 'my-new-class' ) 7 | * classie.remove( elem, 'my-unwanted-class' ) 8 | * classie.toggle( elem, 'my-class' ) 9 | */ 10 | 11 | /*jshint browser: true, strict: true, undef: true */ 12 | /*global define: false */ 13 | 14 | (function (window) { 15 | 16 | 'use strict'; 17 | 18 | // class helper functions from bonzo https://github.com/ded/bonzo 19 | 20 | function classReg(className) { 21 | return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); 22 | } 23 | 24 | // classList support for class management 25 | // altho to be fair, the api sucks because it won't accept multiple classes at once 26 | var hasClass, addClass, removeClass; 27 | 28 | if ('classList' in document.documentElement) { 29 | hasClass = function (elem, c) { 30 | return elem.classList.contains(c); 31 | }; 32 | addClass = function (elem, c) { 33 | elem.classList.add(c); 34 | }; 35 | removeClass = function (elem, c) { 36 | elem.classList.remove(c); 37 | }; 38 | } else { 39 | hasClass = function (elem, c) { 40 | return classReg(c).test(elem.className); 41 | }; 42 | addClass = function (elem, c) { 43 | if (!hasClass(elem, c)) { 44 | elem.className = elem.className + ' ' + c; 45 | } 46 | }; 47 | removeClass = function (elem, c) { 48 | elem.className = elem.className.replace(classReg(c), ' '); 49 | }; 50 | } 51 | 52 | function toggleClass(elem, c) { 53 | var fn = hasClass(elem, c) ? removeClass : addClass; 54 | fn(elem, c); 55 | } 56 | 57 | var classie = { 58 | // full names 59 | hasClass: hasClass, 60 | addClass: addClass, 61 | removeClass: removeClass, 62 | toggleClass: toggleClass, 63 | // short names 64 | has: hasClass, 65 | add: addClass, 66 | remove: removeClass, 67 | toggle: toggleClass 68 | }; 69 | 70 | // transport 71 | if (typeof define === 'function' && define.amd) { 72 | // AMD 73 | define(classie); 74 | } else { 75 | // browser global 76 | window.classie = classie; 77 | } 78 | 79 | })(window); 80 | -------------------------------------------------------------------------------- /work_webchat_robot.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | # @Time : 2019/9/18 2:35 PM 4 | # @Author : Criss Chan 5 | # @Site : https://blog.csdn.net/crisschan 6 | # @File : work_webchat.py 7 | # @Software: PyCharm 8 | # @instruction:使用企业微信的机器人群发消息,在企业微信群里面,选择添加一个机器人,然后复制对应的webhook地址 9 | # 每个机器人发送的消息不能超过20条/分钟。 10 | 11 | from enum import Enum 12 | import requests 13 | import json 14 | 15 | class MSGTYPE(Enum): 16 | TEXT = 'text' # 文本类型。对应消息的限制:文本内容,最长不超过2048个字节,必须是utf8编码 17 | MARKDOWN = 'markdown' # markdown类型,对应消息内容限制:markdown内容,最长不超过4096个字节,必须是utf8编码 18 | NEWS = 'news' # 图文消息,限制:图文消息,一个图文消息支持1到8条图文 19 | # title 是标题,不超过128个字节,超过会自动截断 20 | # description,描述不超过512个字节,超过会自动截断 21 | # url,点击后跳转的链接。 22 | # picurl图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068*455,小图150*150。 23 | 24 | 25 | class workWechat(object): 26 | 27 | def __init__(self, webhook, msgtype, dictdetail, mentioned_mobile_list=''): 28 | ''' 29 | 30 | :param webhook: 机器人的webhook地址 31 | :param msgtype: 消息类型,具体参见MSGTYPE枚举类型 32 | :param dictdetail: 消息主体内容 33 | :param mentioned_mobile_list: 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人(该参数只在消息类型为text的时候有效 34 | ''' 35 | self.webhook = webhook 36 | self.msgtype = msgtype 37 | self.mentioned_mobile_list = mentioned_mobile_list 38 | 39 | self.detail = dictdetail 40 | 41 | self._send_msg() 42 | 43 | def _send_msg(self): 44 | headers = {'Content-Type': 'application/json'} 45 | payload = self._payload() 46 | 47 | res = requests.post(self.webhook, data=payload.encode('utf-8'), headers=headers) 48 | 49 | if json.loads(res.text)['errmsg']=='ok': 50 | print('scuccess') 51 | else: 52 | print('faile') 53 | 54 | def _payload(self): 55 | payload = '' 56 | 57 | mentioned_mobile = self.mentioned_mobile_list 58 | 59 | mentioned_mobile = '"mentioned_mobile_list":["' + mentioned_mobile + '"],' 60 | 61 | 62 | if self.msgtype is MSGTYPE.NEWS: 63 | payload = '{"msgtype": "' + self.msgtype.value + '","' + self.msgtype.value + '": { ' + mentioned_mobile + ' "articles" : [' + self.detail + ']}}' 64 | elif self.msgtype is MSGTYPE.MARKDOWN: 65 | payload = '{"msgtype": "' + self.msgtype.value + '","' + self.msgtype.value + '": { ' + mentioned_mobile + '"content":"' + self.detail + '"}}' 66 | elif self.msgtype is MSGTYPE.TEXT: 67 | payload = '{"msgtype": "' + self.msgtype.value + '","' + self.msgtype.value + '": { ' + mentioned_mobile + '"content":"' + self.detail + '"}}' 68 | else: 69 | payload = '' 70 | 71 | return payload 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /static/minimal-slider.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | if ($('.slide-window')) { 3 | 4 | var slideNum = $('.slide').length - 1 5 | var maxSlideNum = $('.slide').length - 1 6 | var slideWidth = $('.slide-window').outerWidth() 7 | var slideSetWidth = slideWidth * slideNum 8 | var controlSlideBtnLeft = '.slide-control-left' 9 | var controlSlideBtnRight = '.slide-control-right' 10 | var controlSlideBtnList = '.slide-control-btn ul li a' 11 | 12 | addSlideCtlBtn() 13 | 14 | var slideCurrent = 0 15 | var slideActiveBtn = 0 16 | var rotationInterval = setInterval(function(){ 17 | slideCurrent++ 18 | if (slideCurrent > maxSlideNum) { 19 | slideCurrent = 0 20 | } 21 | activation() 22 | sliding() 23 | }, 10000) 24 | 25 | $(controlSlideBtnLeft).on('click', function(){ 26 | resetInterval() 27 | slideCurrent-- 28 | if (slideCurrent < 0) { 29 | slideCurrent = maxSlideNum 30 | } 31 | activation() 32 | rotateArrow('left') 33 | sliding() 34 | }) 35 | $(controlSlideBtnRight).on('click', function(){ 36 | resetInterval() 37 | slideCurrent++ 38 | if (slideCurrent > maxSlideNum) { 39 | slideCurrent = 0 40 | } 41 | activation() 42 | rotateArrow('right') 43 | sliding() 44 | }) 45 | $(controlSlideBtnList).on('click', function(){ 46 | resetInterval() 47 | slideCurrent = $(controlSlideBtnList).index(this) 48 | activation() 49 | sliding() 50 | }) 51 | 52 | function addSlideCtlBtn() { 53 | var slideCtlBtn = '
' 63 | $('.slide-controller').append(slideCtlBtn) 64 | } 65 | function resetInterval() { 66 | clearInterval(rotationInterval) 67 | rotationInterval = setInterval(function(){ 68 | slideCurrent++ 69 | if (slideCurrent > maxSlideNum) { 70 | slideCurrent = 0 71 | } 72 | activation() 73 | sliding() 74 | }, 10000) 75 | } 76 | function activation() { 77 | slideActiveBtn = slideCurrent + 1 78 | $( controlSlideBtnList + '.active' ).removeClass() 79 | $('.slide-control-btn ul li:nth-child(' + slideActiveBtn + ') a').addClass('active') 80 | } 81 | function rotateArrow(direction) { 82 | var slideCtlLine1 = '.slide-control-' + direction + ' .slide-control-line:nth-child(1)' 83 | var slideCtlLine2 = '.slide-control-' + direction + ' .slide-control-line:nth-child(2)' 84 | $(slideCtlLine1).removeClass('rotate-' + direction + '-top') 85 | $(slideCtlLine2).removeClass('rotate-' + direction + '-down') 86 | $(slideCtlLine1).outerWidth() 87 | $(slideCtlLine2).outerWidth() 88 | $(slideCtlLine1).addClass('rotate-' + direction + '-top') 89 | $(slideCtlLine2).addClass('rotate-' + direction + '-down') 90 | } 91 | function sliding() { 92 | $('.slide-wrapper').css('left', slideCurrent * -slideWidth) 93 | } 94 | } 95 | }) 96 | -------------------------------------------------------------------------------- /static/style6.css: -------------------------------------------------------------------------------- 1 | .btn_login{ 2 | background-color:transparent; 3 | border-style:none; 4 | } 5 | .mobile-nav-button { 6 | position: absolute; 7 | right:55px; 8 | top: 0px; 9 | z-index: 9; 10 | } 11 | /* Overlay style */ 12 | .overlay { 13 | position: fixed; 14 | width: 100%; 15 | height: 100%; 16 | top: 0; 17 | left: 0; 18 | background: rgba(12, 12, 12, 0.98); 19 | z-index: 99; 20 | } 21 | 22 | /* Overlay closing cross */ 23 | .overlay .overlay-close { 24 | width: 40px; 25 | height: 40px; 26 | position: absolute; 27 | right: 50px; 28 | top: 50px; 29 | overflow: hidden; 30 | background: none; 31 | color: #fff; 32 | border: 2px solid #7a7f7f; 33 | cursor: pointer; 34 | } 35 | 36 | /* Menu style */ 37 | .overlay form { 38 | text-align: center; 39 | position: relative; 40 | top: 50%; 41 | height:auto; 42 | -webkit-transform: translateY(-50%); 43 | transform: translateY(-50%); 44 | } 45 | button#trigger-overlay { 46 | outline: none; 47 | border: none; 48 | background: none; 49 | text-align: center; 50 | color: #ffffff; 51 | font-size: 1.2em; 52 | cursor: pointer; 53 | } 54 | 55 | .search form input[type="search"] { 56 | width: 100%; 57 | padding: 1em 1.5em; 58 | font-size: 17px; 59 | color: #fff; 60 | outline: none; 61 | background: none; 62 | -webkit-appearance: none; 63 | border: 2px solid #fff; 64 | -webkit-appearance: none; 65 | letter-spacing: 4px; 66 | border-radius:0; 67 | } 68 | .search button.btn.btn-primary.submit{ 69 | color: #fff; 70 | font-size: 15px; 71 | font-weight: 600; 72 | text-transform: uppercase; 73 | outline: none; 74 | letter-spacing: 2px; 75 | padding: 0.9em 3em; 76 | border: none; 77 | cursor: pointer; 78 | transition: 0.5s all; 79 | -webkit-transition: 0.5s all; 80 | -moz-transition: 0.5s all; 81 | -webkit-appearance: none; 82 | background: #4c6ef5; 83 | border-radius:0; 84 | } 85 | /* Menu style * 86 | .overlay ul { 87 | list-style: none; 88 | padding: 0; 89 | margin: 0 auto; 90 | display: inline-block; 91 | height: 100%; 92 | position: relative; 93 | } 94 | 95 | .overlay ul li { 96 | display: block; 97 | height: 20%; 98 | height: calc(100% / 5); 99 | min-height: 54px; 100 | -webkit-backface-visibility: hidden; 101 | backface-visibility: hidden; 102 | } 103 | 104 | .overlay ul li a { 105 | font-size: 54px; 106 | font-weight: 300; 107 | display: block; 108 | color: #fff; 109 | -webkit-transition: color 0.2s; 110 | transition: color 0.2s; 111 | } 112 | 113 | .overlay ul li a:hover, 114 | .overlay ul li a:focus { 115 | color: #f0f0f0; 116 | } 117 | 118 | /* Effects */ 119 | .overlay-door { 120 | visibility: hidden; 121 | width: 0; 122 | left:49.99%; 123 | -webkit-transform: translateX(-50%); 124 | transform: translateX(-50%); 125 | -webkit-transition: width 0.5s 0.3s, visibility 0s 0.8s; 126 | transition: width 0.5s 0.3s, visibility 0s 0.8s; 127 | } 128 | 129 | .overlay-door.open { 130 | visibility: visible; 131 | width: 100%; 132 | -webkit-transition: width 0.5s; 133 | transition: width 0.5s; 134 | } 135 | 136 | .overlay-door form { 137 | position: absolute; 138 | left: 50%; 139 | -webkit-transform: translateY(-50%) translateX(-50%); 140 | transform: translateY(-50%) translateX(-50%); 141 | width: 45%; 142 | } 143 | 144 | .overlay-door form, 145 | .overlay-door .overlay-close { 146 | opacity: 0; 147 | -webkit-transition: opacity 0.3s 0.5s; 148 | transition: opacity 0.3s 0.5s; 149 | } 150 | 151 | .overlay-door.open form, 152 | .overlay-door.open .overlay-close { 153 | opacity: 1; 154 | -webkit-transition-delay: 0.5s; 155 | transition-delay: 0.5s; 156 | } 157 | 158 | .overlay-door.close form, 159 | .overlay-door.close .overlay-close { 160 | -webkit-transition-delay: 0s; 161 | transition-delay: 0s; 162 | } 163 | 164 | @media screen and (max-height: 30.5em) { 165 | .overlay form { 166 | font-size: 34px; 167 | } 168 | .overlay ul li { 169 | min-height: 34px; 170 | } 171 | } 172 | @media(max-width:767px) { 173 | 174 | } 175 | @media(max-width:600px) { 176 | .overlay-door form { 177 | width: 90%; 178 | } 179 | .search button.btn.btn-primary.submit { 180 | letter-spacing: 2px; 181 | padding: 0.9em 2em; 182 | } 183 | } 184 | @media(max-width:384px) { 185 | .overlay-door form { 186 | width: 90%; 187 | } 188 | .search button.btn.btn-primary.submit { 189 | letter-spacing: 2px; 190 | padding: 0.9em 2em; 191 | } 192 | } 193 | @media(max-width:375px) { 194 | 195 | } -------------------------------------------------------------------------------- /static/easing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php 3 | * 4 | * Uses the built In easIng capabilities added In jQuery 1.1 5 | * to offer multiple easIng options 6 | * 7 | * Copyright (c) 2007 George Smith 8 | * Licensed under the MIT License: 9 | * http://www.opensource.org/licenses/mit-license.php 10 | */ 11 | 12 | // t: current time, b: begInnIng value, c: change In value, d: duration 13 | 14 | jQuery.extend( jQuery.easing, 15 | { 16 | easeInQuad: function (x, t, b, c, d) { 17 | return c*(t/=d)*t + b; 18 | }, 19 | easeOutQuad: function (x, t, b, c, d) { 20 | return -c *(t/=d)*(t-2) + b; 21 | }, 22 | easeInOutQuad: function (x, t, b, c, d) { 23 | if ((t/=d/2) < 1) return c/2*t*t + b; 24 | return -c/2 * ((--t)*(t-2) - 1) + b; 25 | }, 26 | easeInCubic: function (x, t, b, c, d) { 27 | return c*(t/=d)*t*t + b; 28 | }, 29 | easeOutCubic: function (x, t, b, c, d) { 30 | return c*((t=t/d-1)*t*t + 1) + b; 31 | }, 32 | easeInOutCubic: function (x, t, b, c, d) { 33 | if ((t/=d/2) < 1) return c/2*t*t*t + b; 34 | return c/2*((t-=2)*t*t + 2) + b; 35 | }, 36 | easeInQuart: function (x, t, b, c, d) { 37 | return c*(t/=d)*t*t*t + b; 38 | }, 39 | easeOutQuart: function (x, t, b, c, d) { 40 | return -c * ((t=t/d-1)*t*t*t - 1) + b; 41 | }, 42 | easeInOutQuart: function (x, t, b, c, d) { 43 | if ((t/=d/2) < 1) return c/2*t*t*t*t + b; 44 | return -c/2 * ((t-=2)*t*t*t - 2) + b; 45 | }, 46 | easeInQuint: function (x, t, b, c, d) { 47 | return c*(t/=d)*t*t*t*t + b; 48 | }, 49 | easeOutQuint: function (x, t, b, c, d) { 50 | return c*((t=t/d-1)*t*t*t*t + 1) + b; 51 | }, 52 | easeInOutQuint: function (x, t, b, c, d) { 53 | if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; 54 | return c/2*((t-=2)*t*t*t*t + 2) + b; 55 | }, 56 | easeInSine: function (x, t, b, c, d) { 57 | return -c * Math.cos(t/d * (Math.PI/2)) + c + b; 58 | }, 59 | easeOutSine: function (x, t, b, c, d) { 60 | return c * Math.sin(t/d * (Math.PI/2)) + b; 61 | }, 62 | easeInOutSine: function (x, t, b, c, d) { 63 | return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; 64 | }, 65 | easeInExpo: function (x, t, b, c, d) { 66 | return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; 67 | }, 68 | easeOutExpo: function (x, t, b, c, d) { 69 | return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; 70 | }, 71 | easeInOutExpo: function (x, t, b, c, d) { 72 | if (t==0) return b; 73 | if (t==d) return b+c; 74 | if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; 75 | return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; 76 | }, 77 | easeInCirc: function (x, t, b, c, d) { 78 | return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; 79 | }, 80 | easeOutCirc: function (x, t, b, c, d) { 81 | return c * Math.sqrt(1 - (t=t/d-1)*t) + b; 82 | }, 83 | easeInOutCirc: function (x, t, b, c, d) { 84 | if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; 85 | return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; 86 | }, 87 | easeInElastic: function (x, t, b, c, d) { 88 | var s=1.70158;var p=0;var a=c; 89 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; 90 | if (a < Math.abs(c)) { a=c; var s=p/4; } 91 | else var s = p/(2*Math.PI) * Math.asin (c/a); 92 | return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; 93 | }, 94 | easeOutElastic: function (x, t, b, c, d) { 95 | var s=1.70158;var p=0;var a=c; 96 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; 97 | if (a < Math.abs(c)) { a=c; var s=p/4; } 98 | else var s = p/(2*Math.PI) * Math.asin (c/a); 99 | return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; 100 | }, 101 | easeInOutElastic: function (x, t, b, c, d) { 102 | var s=1.70158;var p=0;var a=c; 103 | if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); 104 | if (a < Math.abs(c)) { a=c; var s=p/4; } 105 | else var s = p/(2*Math.PI) * Math.asin (c/a); 106 | if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; 107 | return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; 108 | }, 109 | easeInBack: function (x, t, b, c, d, s) { 110 | if (s == undefined) s = 1.70158; 111 | return c*(t/=d)*t*((s+1)*t - s) + b; 112 | }, 113 | easeOutBack: function (x, t, b, c, d, s) { 114 | if (s == undefined) s = 1.70158; 115 | return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; 116 | }, 117 | easeInOutBack: function (x, t, b, c, d, s) { 118 | if (s == undefined) s = 1.70158; 119 | if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; 120 | return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; 121 | }, 122 | easeInBounce: function (x, t, b, c, d) { 123 | return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; 124 | }, 125 | easeOutBounce: function (x, t, b, c, d) { 126 | if ((t/=d) < (1/2.75)) { 127 | return c*(7.5625*t*t) + b; 128 | } else if (t < (2/2.75)) { 129 | return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; 130 | } else if (t < (2.5/2.75)) { 131 | return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; 132 | } else { 133 | return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; 134 | } 135 | }, 136 | easeInOutBounce: function (x, t, b, c, d) { 137 | if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; 138 | return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; 139 | } 140 | }); 141 | -------------------------------------------------------------------------------- /static/waypoints.min.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.6.2 2 | /* 3 | jQuery Waypoints - v2.0.3 4 | Copyright (c) 2011-2013 Caleb Troughton 5 | Dual licensed under the MIT license and GPL license. 6 | https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt 7 | */ 8 | (function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e=0;s={horizontal:{},vertical:{}};f=1;a={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};t.data(u,this.id);a[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||c)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(c&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete a[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=t.data(w))!=null?o:[];i.push(this.id);t.data(w,i)}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=n(t).data(w);if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=a[i.data(u)];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(et.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=a[n(t).data(u)];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this); -------------------------------------------------------------------------------- /static/swipebox.css: -------------------------------------------------------------------------------- 1 | /*! Swipebox v1.2.8 | Constantin Saguin csag.co | MIT License | github.com/brutaldesign/swipebox */ 2 | html.swipebox-html.swipebox-touch { 3 | overflow: hidden !important; 4 | } 5 | 6 | #swipebox-overlay img { 7 | border: none !important; 8 | } 9 | 10 | #swipebox-overlay { 11 | width: 100%; 12 | height: 100%; 13 | position: fixed; 14 | top: 0; 15 | left: 0; 16 | z-index: 99999 !important; 17 | overflow: hidden; 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | user-select: none; 22 | } 23 | 24 | #swipebox-container { 25 | position: relative; 26 | width: 100%; 27 | height: 100%; 28 | } 29 | 30 | #swipebox-slider { 31 | -webkit-transition: -webkit-transform 0.4s ease; 32 | transition: transform 0.4s ease; 33 | height: 100%; 34 | left: 0; 35 | top: 0; 36 | width: 100%; 37 | white-space: nowrap; 38 | position: absolute; 39 | display: none; 40 | cursor: pointer; 41 | } 42 | #swipebox-slider .slide { 43 | height: 100%; 44 | width: 100%; 45 | line-height: 1px; 46 | text-align: center; 47 | display: inline-block; 48 | background: none; 49 | } 50 | #swipebox-slider .slide:before { 51 | content: ""; 52 | display: inline-block; 53 | height: 43%; 54 | width: 1px; 55 | margin-right: -1px; 56 | } 57 | #swipebox-slider .slide img, #swipebox-slider .slide .swipebox-video-container { 58 | display: inline-block; 59 | max-height: 100%; 60 | max-width: 100%; 61 | margin: 0; 62 | padding: 0; 63 | width: auto; 64 | height: auto; 65 | vertical-align: middle; 66 | } 67 | #swipebox-slider .slide .swipebox-video-container { 68 | background: none; 69 | max-width: 1140px; 70 | max-height: 100%; 71 | width: 100%; 72 | padding: 5%; 73 | -webkit-box-sizing: border-box; 74 | box-sizing: border-box; 75 | -moz-box-sizing: border-box; 76 | } 77 | #swipebox-slider .slide .swipebox-video-container .swipebox-video { 78 | width: 100%; 79 | height: 0; 80 | padding-bottom: 56.25%; 81 | overflow: hidden; 82 | position: relative; 83 | } 84 | #swipebox-slider .slide .swipebox-video-container .swipebox-video iframe { 85 | width: 100% !important; 86 | height: 100% !important; 87 | position: absolute; 88 | top: 0; 89 | left: 0; 90 | } 91 | #swipebox-slider .slide-loading { 92 | background: url(../static/loader.gif) no-repeat center center; 93 | } 94 | 95 | #swipebox-bottom-bar, 96 | #swipebox-top-bar { 97 | -webkit-transition: 0.5s all; 98 | transition: 0.5s all; 99 | -moz-transition: 0.5s all; 100 | position: absolute; 101 | left: 0; 102 | z-index: 999; 103 | height: 50px; 104 | width: 100%; 105 | } 106 | 107 | #swipebox-bottom-bar { 108 | bottom: -50px; 109 | } 110 | #swipebox-bottom-bar.visible-bars { 111 | -webkit-transform: translate3d(0, -50px, 0); 112 | transform: translate3d(0, -50px, 0); 113 | -moz-transform: translate3d(0, -50px, 0); 114 | -o-transform: translate3d(0, -50px, 0); 115 | -ms-transform: translate3d(0, -50px, 0); 116 | } 117 | 118 | #swipebox-top-bar { 119 | bottom: 14%; 120 | } 121 | #swipebox-title { 122 | display: block; 123 | width: 45%; 124 | text-align: center; 125 | margin: 0 auto !important; 126 | } 127 | #swipebox-prev, 128 | #swipebox-next, 129 | #swipebox-close { 130 | background-image: url(../static/icons.png); 131 | background-repeat: no-repeat; 132 | border: none !important; 133 | text-decoration: none !important; 134 | cursor: pointer; 135 | width: 50px; 136 | height: 50px; 137 | top: 0; 138 | } 139 | 140 | #swipebox-arrows { 141 | display: block; 142 | margin: 0 auto; 143 | width: 100%; 144 | height: 50px; 145 | } 146 | 147 | #swipebox-prev { 148 | background-position: -32px 13px; 149 | float: left; 150 | } 151 | 152 | #swipebox-next { 153 | background-position: -78px 13px; 154 | float: right; 155 | } 156 | #swipebox-close { 157 | right: 50px; 158 | top: 12px; 159 | position: absolute; 160 | z-index: 9999; 161 | background-position: 15px 12px; 162 | } 163 | .swipebox-no-close-button #swipebox-close { 164 | display: none; 165 | } 166 | 167 | #swipebox-prev.disabled, 168 | #swipebox-next.disabled { 169 | opacity: 0.3; 170 | } 171 | 172 | .swipebox-no-touch #swipebox-overlay.rightSpring #swipebox-slider { 173 | -webkit-animation: rightSpring 0.3s; 174 | animation: rightSpring 0.3s; 175 | -moz-animation: rightSpring 0.3s; 176 | } 177 | .swipebox-no-touch #swipebox-overlay.leftSpring #swipebox-slider { 178 | -webkit-animation: leftSpring 0.3s; 179 | animation: leftSpring 0.3s; 180 | -moz-animation: leftSpring 0.3s; 181 | } 182 | 183 | .swipebox-touch #swipebox-container:before, .swipebox-touch #swipebox-container:after { 184 | -webkit-backface-visibility: hidden; 185 | backface-visibility: hidden; 186 | -webkit-transition: all .3s ease; 187 | transition: all .3s ease; 188 | -moz-transition: all .3s ease; 189 | content: ' '; 190 | position: absolute; 191 | z-index: 999; 192 | top: 0; 193 | height: 100%; 194 | width: 20px; 195 | opacity: 0; 196 | } 197 | .swipebox-touch #swipebox-container:before { 198 | left: 0; 199 | -webkit-box-shadow: inset 10px 0px 10px -8px #656565; 200 | box-shadow: inset 10px 0px 10px -8px #656565; 201 | -moz-box-shadow: inset 10px 0px 10px -8px #656565; 202 | } 203 | .swipebox-touch #swipebox-container:after { 204 | right: 0; 205 | -webkit-box-shadow: inset -10px 0px 10px -8px #656565; 206 | box-shadow: inset -10px 0px 10px -8px #656565; 207 | -moz-box-shadow: inset -10px 0px 10px -8px #656565; 208 | } 209 | .swipebox-touch #swipebox-overlay.leftSpringTouch #swipebox-container:before { 210 | opacity: 1; 211 | } 212 | .swipebox-touch #swipebox-overlay.rightSpringTouch #swipebox-container:after { 213 | opacity: 1; 214 | } 215 | 216 | @-webkit-keyframes rightSpring { 217 | 0% { 218 | left: 0; 219 | } 220 | 221 | 50% { 222 | left: -30px; 223 | } 224 | 225 | 100% { 226 | left: 0; 227 | } 228 | } 229 | 230 | @keyframes rightSpring { 231 | 0% { 232 | left: 0; 233 | } 234 | 235 | 50% { 236 | left: -30px; 237 | } 238 | 239 | 100% { 240 | left: 0; 241 | } 242 | } 243 | @-webkit-keyframes leftSpring { 244 | 0% { 245 | left: 0; 246 | } 247 | 248 | 50% { 249 | left: 30px; 250 | } 251 | 252 | 100% { 253 | left: 0; 254 | } 255 | } 256 | @keyframes leftSpring { 257 | 0% { 258 | left: 0; 259 | } 260 | 261 | 50% { 262 | left: 30px; 263 | } 264 | 265 | 100% { 266 | left: 0; 267 | } 268 | } 269 | @media screen and (min-width: 800px) { 270 | #swipebox-close { 271 | right: 50px; 272 | top: 12px; 273 | } 274 | 275 | #swipebox-arrows { 276 | width: 80%; 277 | max-width: 800px; 278 | } 279 | } 280 | /* Skin 281 | --------------------------*/ 282 | #swipebox-overlay { 283 | background: #0d0d0d; 284 | } 285 | 286 | #swipebox-bottom-bar, 287 | #swipebox-top-bar { 288 | opacity: 1; 289 | } 290 | 291 | #swipebox-top-bar { 292 | color: white !important; 293 | font-size: 15px; 294 | line-height: 30px; 295 | } 296 | @media(max-width:1366px){ 297 | #swipebox-top-bar { 298 | bottom: 20%; 299 | } 300 | } 301 | @media(max-width:1080px){ 302 | #swipebox-title { 303 | width: 61%; 304 | line-height: 1.8em; 305 | margin: 1em auto 0 !important; 306 | } 307 | } 308 | @media(max-width:768px){ 309 | #swipebox-title { 310 | width: 75%; 311 | } 312 | #swipebox-arrows { 313 | width: 83%; 314 | } 315 | } 316 | @media(max-width:667px){ 317 | #swipebox-slider .slide img, #swipebox-slider .slide .swipebox-video-container { 318 | max-width: 80%; 319 | } 320 | #swipebox-title { 321 | width: 82%; 322 | font-size: 14px; 323 | font-weight: 300; 324 | } 325 | } 326 | @media(max-width:640px){ 327 | #swipebox-title { 328 | width: 82%; 329 | font-size: .9em; 330 | } 331 | #swipebox-arrows { 332 | width: 80%; 333 | } 334 | } 335 | @media(max-width:480px){ 336 | #swipebox-title { 337 | width: 85%; 338 | } 339 | #swipebox-close { 340 | right: 30px; 341 | } 342 | #swipebox-slider .slide img, #swipebox-slider .slide .swipebox-video-container { 343 | max-width: 100%; 344 | } 345 | #swipebox-container { 346 | width: 97%; 347 | } 348 | } 349 | @media(max-width:414px){ 350 | #swipebox-container { 351 | width: 96%; 352 | } 353 | } 354 | @media(max-width:384px){ 355 | #swipebox-top-bar { 356 | bottom: 23%; 357 | } 358 | } -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 企业微信机器人管理 6 | 7 | 8 | 9 | 10 | 11 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 65 | 66 | 67 | 68 | 69 | 70 |
71 |
72 | 73 |
74 | 75 | 76 |
77 |
78 | 79 | 80 | 81 |
82 |
83 |

企业微信机器人管理

84 | 支持 文本格式/ 微信文章格式/ MarkDown格式消息 85 |
86 |
87 | 88 | 89 | 90 |
91 |
92 |
93 |

消息 发送

94 |

选择对应的机器人发送消息

95 |
96 |
97 |
98 |
99 | 100 | 101 | 102 | 103 | 104 | 105 |

 

106 | 107 | 108 | 109 | 110 | 111 |

 

112 | 113 | 114 | {% for abot in bots %} 115 | 117 | {% endfor %} 118 | 121 | 122 | 123 | 124 | 125 |
126 | 127 |
128 |
129 |
130 |
131 |
132 | 133 |

必填:文本格式/ 微信文章格式/ MarkDown格式消息

134 |
135 |
136 | 137 |

非必填:输入@用户电话号码,多个用户用英文逗号,分割,all会在消息发出后提醒所有

138 | 139 |
140 |
141 | 142 |

必填:选择要发消息的机器人

143 | 144 |
145 |
146 | 147 |

必填一种:
1、文本直接输入文本内容
2、MARKDOWN直接输入文本内容
3、微信文章格式:
{ 148 | "title" : "文章标题", 149 | "description" : "文章高腰", 150 | "url" : "文章详情地址", 151 | "picurl" : "文章图片地址" 152 | }

153 |
154 |
155 |
156 |
157 |
158 | 159 | 160 | 161 | 162 | 163 | 164 |
165 |
166 |
167 | 168 | 169 |
170 |

这是一个好玩的工具

171 |
172 | 173 |
174 |
175 | 176 |
177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | -------------------------------------------------------------------------------- /static/minimal-slider.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Simple and clean slider v1.0 (https://hodalog.com) 3 | * Copyright 2018 Hodaka Sakamoto 4 | * Licensed under MIT (https://gitlab.com/hodanov/simple-and-clean-slider/tree/master/LICENSE.md) 5 | */ 6 | 7 | /* -----Container----- */ 8 | 9 | @media screen and (max-width: 767px) { 10 | 11 | .container { 12 | width: 95%; 13 | } 14 | } 15 | 16 | /* -----Slider----- */ 17 | 18 | .slide-window { 19 | width: 100%; 20 | position: relative; 21 | overflow: hidden; 22 | } 23 | 24 | .slide-window .slide-wrapper { 25 | position: relative; 26 | left: 0; 27 | display: flex; 28 | -webkit-transition: right 0.5s; 29 | transition: right 0.5s; 30 | -webkit-transition: left 0.5s; 31 | transition: left 0.5s; 32 | } 33 | 34 | .slide-window .slide-wrapper .slide { 35 | position: relative; 36 | width: 100%; 37 | } 38 | 39 | .slide-window .slide-wrapper .slide:before { 40 | content: ""; 41 | display: block; 42 | padding-top: 41.17%; 43 | } 44 | 45 | .slide-window .slide-wrapper .slide .slide-image { 46 | background-size: cover; 47 | background-position: 50% 50%; 48 | overflow: hidden; 49 | position: absolute; 50 | top: 0; 51 | left: 0; 52 | bottom: 0; 53 | right: 0; 54 | } 55 | 56 | .slide-window .slide-wrapper .slide .slide-caption { 57 | position: absolute; 58 | bottom: 22%; 59 | left: 25%; 60 | width: 50%; 61 | color: #fff; 62 | /*background: rgba(0, 0, 0, 0.1); */ 63 | padding: 3em 3em; 64 | } 65 | 66 | 67 | @media screen and (max-width: 767px) { 68 | 69 | } 70 | 71 | .slide-window:hover .slide-control-left { 72 | left: 1%; 73 | opacity: 1; 74 | } 75 | 76 | .slide-window:hover .slide-control-right { 77 | right: 1%; 78 | opacity: 1; 79 | } 80 | 81 | .slide-control-left { 82 | position: absolute; 83 | margin: auto; 84 | top: 0; 85 | bottom: 0; 86 | width: 40px; 87 | height: 40px; 88 | border-radius: 50%; 89 | border: 2px solid #fff; 90 | color: #fff; 91 | cursor: pointer; 92 | opacity: 0; 93 | -webkit-transition: all 0.3s; 94 | transition: all 0.3s; 95 | left: 10%; 96 | right: auto; 97 | } 98 | 99 | .slide-control-left .slide-control-line { 100 | position: absolute; 101 | top: 50%; 102 | width: 2px; 103 | height: 14px; 104 | -webkit-transform-origin: 50% 0; 105 | transform-origin: 50% 0; 106 | left: 12px; 107 | -webkit-transform: rotate(-45deg); 108 | transform: rotate(-45deg); 109 | } 110 | 111 | .slide-control-left .slide-control-line:nth-child(2) { 112 | -webkit-transform: translateY(1px) rotate(-135deg); 113 | transform: translateY(1px) rotate(-135deg); 114 | } 115 | 116 | .slide-control-left .slide-control-line:after { 117 | content: ""; 118 | position: absolute; 119 | left: 0; 120 | top: 0; 121 | width: 100%; 122 | height: 100%; 123 | background-color: #fff; 124 | -webkit-transition: background-color 0.3s; 125 | transition: background-color 0.3s; 126 | } 127 | 128 | .slide-control-left:hover { 129 | background-color: #fff; 130 | } 131 | 132 | .slide-control-left:hover .slide-control-line:after { 133 | background-color: #aaa; 134 | } 135 | 136 | .slide-control-left .rotate-left-top:after { 137 | animation: arrowLineRotation 0.49s; 138 | } 139 | 140 | .slide-control-left .rotate-left-down:after { 141 | animation: arrowLineRotationRev 0.49s; 142 | } 143 | 144 | @media screen and (max-width: 767px) { 145 | 146 | .slide-control-left { 147 | height: 30px; 148 | width: 30px; 149 | opacity: 1; 150 | } 151 | 152 | .slide-control-left .slide-control-line { 153 | left: 9px; 154 | height: 10px; 155 | } 156 | } 157 | 158 | @media screen and (max-width: 1023px) { 159 | 160 | .slide-control-left { 161 | opacity: 1; 162 | left: 1%; 163 | } 164 | } 165 | 166 | .slide-control-right { 167 | position: absolute; 168 | margin: auto; 169 | top: 0; 170 | bottom: 0; 171 | width: 40px; 172 | height: 40px; 173 | border-radius: 50%; 174 | border: 2px solid #fff; 175 | color: #fff; 176 | cursor: pointer; 177 | opacity: 0; 178 | -webkit-transition: all 0.3s; 179 | transition: all 0.3s; 180 | right: 10%; 181 | left: auto; 182 | } 183 | 184 | .slide-control-right .slide-control-line { 185 | position: absolute; 186 | top: 50%; 187 | width: 2px; 188 | height: 14px; 189 | -webkit-transform-origin: 50% 0; 190 | transform-origin: 50% 0; 191 | right: 12px; 192 | -webkit-transform: rotate(45deg); 193 | transform: rotate(45deg); 194 | } 195 | 196 | .slide-control-right .slide-control-line:nth-child(2) { 197 | -webkit-transform: translateY(1px) rotate(135deg); 198 | transform: translateY(1px) rotate(135deg); 199 | } 200 | 201 | .slide-control-right .slide-control-line:after { 202 | content: ""; 203 | position: absolute; 204 | left: 0; 205 | top: 0; 206 | width: 100%; 207 | height: 100%; 208 | background-color: #fff; 209 | -webkit-transition: background-color 0.3s; 210 | transition: background-color 0.3s; 211 | } 212 | 213 | .slide-control-right:hover { 214 | background-color: #fff; 215 | } 216 | 217 | .slide-control-right:hover .slide-control-line:after { 218 | background-color: #aaa; 219 | } 220 | 221 | .slide-control-right .rotate-right-down:after { 222 | animation: arrowLineRotation 0.49s; 223 | } 224 | 225 | .slide-control-right .rotate-right-top:after { 226 | animation: arrowLineRotationRev 0.49s; 227 | } 228 | 229 | @media screen and (max-width: 767px) { 230 | 231 | .slide-control-right { 232 | height: 30px; 233 | width: 30px; 234 | opacity: 1; 235 | } 236 | 237 | .slide-control-right .slide-control-line { 238 | right: 9px; 239 | height: 10px; 240 | } 241 | } 242 | 243 | @media screen and (max-width: 1023px) { 244 | 245 | .slide-control-right { 246 | opacity: 1; 247 | right: 1%; 248 | } 249 | } 250 | 251 | @keyframes arrowLineRotation { 252 | to { 253 | transform: rotate(180deg); 254 | } 255 | } 256 | 257 | @keyframes arrowLineRotationRev { 258 | to { 259 | transform: rotate(-180deg); 260 | } 261 | } 262 | 263 | .slide-control-btn ul { 264 | position: absolute; 265 | padding: 0; 266 | bottom: 10%; 267 | width: 100%; 268 | display: flex; 269 | justify-content: left; 270 | left: 15%; 271 | display: none; 272 | 273 | } 274 | 275 | .slide-control-btn ul li { 276 | margin: 0 5px; 277 | list-style: none; 278 | } 279 | 280 | .slide-control-btn ul li a { 281 | display: block; 282 | width: 15px; 283 | height: 15px; 284 | border-radius: 50%; 285 | border: 1px solid #fff; 286 | cursor: pointer; 287 | -webkit-transition: all 0.2s; 288 | transition: all 0.2s; 289 | } 290 | 291 | .slide-control-btn ul li a.active, 292 | .slide-control-btn ul li a:hover { 293 | background-color: #fff; 294 | } 295 | 296 | @media screen and (max-width:1080px) { 297 | 298 | } 299 | 300 | @media screen and (max-width:1050px) { 301 | .slide-window .slide-wrapper .slide .slide-caption { 302 | position: absolute; 303 | bottom: 30%; 304 | left: 20%; 305 | width: 58%; 306 | padding: 3em 1em; 307 | } 308 | } 309 | @media screen and (max-width:1024px) { 310 | } 311 | @media screen and (max-width:991px) { 312 | 313 | .slide-window .slide-wrapper .slide .slide-caption { 314 | bottom: 27%; 315 | } 316 | } 317 | @media screen and (max-width:800px) { 318 | 319 | } 320 | 321 | @media screen and (max-width: 768px) { 322 | 323 | } 324 | @media screen and (max-width: 767px) { 325 | 326 | .slide-control-btn ul { 327 | margin: .5rem 0; 328 | } 329 | 330 | .slide-control-btn ul li a { 331 | width: 10px; 332 | height: 10px; 333 | } 334 | 335 | } 336 | @media screen and (max-width:667px) { 337 | .slide-window .slide-wrapper .slide .slide-caption { 338 | position: absolute; 339 | bottom: 26%; 340 | left:15%; 341 | width: 70%; 342 | padding: 2em 1em; 343 | } 344 | } 345 | @media screen and (max-width:600px) { 346 | 347 | } 348 | @media screen and (max-width:480px) { 349 | 350 | } 351 | @media screen and (max-width:414px) { 352 | 353 | .slide-window .slide-wrapper .slide .slide-caption { 354 | position: absolute; 355 | left: 17%; 356 | width: 66%; 357 | padding: 1.5em 0em; 358 | } 359 | } 360 | @media screen and (max-width:375px) { 361 | 362 | .slide-control-right { 363 | opacity: 1; 364 | right: 2%; 365 | } 366 | .slide-window .slide-wrapper .slide .slide-caption { 367 | bottom: 21%; 368 | } 369 | } 370 | /*# sourceMappingURL=style.css.map */ -------------------------------------------------------------------------------- /static/jquery.swipebox.min.js: -------------------------------------------------------------------------------- 1 | /*! Swipebox v1.3.0 | Constantin Saguin csag.co | MIT License | github.com/brutaldesign/swipebox */ 2 | !function(a,b,c,d){c.swipebox=function(e,f){var g,h,i={useCSS:!0,useSVG:!0,initialIndexOnArray:0,hideCloseButtonOnMobile:!1,hideBarsDelay:3e3,videoMaxWidth:1140,vimeoColor:"cccccc",beforeOpen:null,afterOpen:null,afterClose:null,loopAtEnd:!1},j=this,k=[],l=e.selector,m=c(l),n=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i),o=null!==n||b.createTouch!==d||"ontouchstart"in a||"onmsgesturechange"in a||navigator.msMaxTouchPoints,p=!!b.createElementNS&&!!b.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,q=a.innerWidth?a.innerWidth:c(a).width(),r=a.innerHeight?a.innerHeight:c(a).height(),s=0,t='
';j.settings={},c.swipebox.close=function(){g.closeSlide()},c.swipebox.extend=function(){return g},j.init=function(){j.settings=c.extend({},i,f),c.isArray(e)?(k=e,g.target=c(a),g.init(j.settings.initialIndexOnArray)):c(b).on("click",l,function(a){if("slide current"===a.target.parentNode.className)return!1;c.isArray(e)||(g.destroy(),h=c(l),g.actions()),k=[];var b,d,f;f||(d="data-rel",f=c(this).attr(d)),f||(d="rel",f=c(this).attr(d)),h=f&&""!==f&&"nofollow"!==f?m.filter("["+d+'="'+f+'"]'):c(l),h.each(function(){var a=null,b=null;c(this).attr("title")&&(a=c(this).attr("title")),c(this).attr("href")&&(b=c(this).attr("href")),k.push({href:b,title:a})}),b=h.index(c(this)),a.preventDefault(),a.stopPropagation(),g.target=c(a.target),g.init(b)})},g={init:function(a){j.settings.beforeOpen&&j.settings.beforeOpen(),this.target.trigger("swipebox-start"),c.swipebox.isOpen=!0,this.build(),this.openSlide(a),this.openMedia(a),this.preloadMedia(a+1),this.preloadMedia(a-1),j.settings.afterOpen&&j.settings.afterOpen()},build:function(){var a,b=this;c("body").append(t),p&&j.settings.useSVG===!0&&(a=c("#swipebox-close").css("background-image"),a=a.replace("png","svg"),c("#swipebox-prev, #swipebox-next, #swipebox-close").css({"background-image":a})),n&&c("#swipebox-bottom-bar, #swipebox-top-bar").remove(),c.each(k,function(){c("#swipebox-slider").append('
')}),b.setDim(),b.actions(),o&&b.gesture(),b.keyboard(),b.animBars(),b.resize()},setDim:function(){var b,d,e={};"onorientationchange"in a?a.addEventListener("orientationchange",function(){0===a.orientation?(b=q,d=r):(90===a.orientation||-90===a.orientation)&&(b=r,d=q)},!1):(b=a.innerWidth?a.innerWidth:c(a).width(),d=a.innerHeight?a.innerHeight:c(a).height()),e={width:b,height:d},c("#swipebox-overlay").css(e)},resize:function(){var b=this;c(a).resize(function(){b.setDim()}).resize()},supportTransition:function(){var a,c="transition WebkitTransition MozTransition OTransition msTransition KhtmlTransition".split(" ");for(a=0;a=m||i)){var p=.75-Math.abs(d)/r.height();r.css({top:d+"px"}),r.css({opacity:p}),i=!0}e=b,b=o.pageX-n.pageX,g=100*b/q,!j&&!i&&Math.abs(b)>=l&&(c("#swipebox-slider").css({"-webkit-transition":"",transition:""}),j=!0),j&&(b>0?0===a?c("#swipebox-overlay").addClass("leftSpringTouch"):(c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c("#swipebox-slider").css({"-webkit-transform":"translate3d("+(s+g)+"%, 0, 0)",transform:"translate3d("+(s+g)+"%, 0, 0)"})):0>b&&(k.length===a+1?c("#swipebox-overlay").addClass("rightSpringTouch"):(c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c("#swipebox-slider").css({"-webkit-transform":"translate3d("+(s+g)+"%, 0, 0)",transform:"translate3d("+(s+g)+"%, 0, 0)"}))))}),!1}).bind("touchend",function(a){if(a.preventDefault(),a.stopPropagation(),c("#swipebox-slider").css({"-webkit-transition":"-webkit-transform 0.4s ease",transition:"transform 0.4s ease"}),d=o.pageY-n.pageY,b=o.pageX-n.pageX,g=100*b/q,i)if(i=!1,Math.abs(d)>=2*m&&Math.abs(d)>Math.abs(f)){var k=d>0?r.height():-r.height();r.animate({top:k+"px",opacity:0},300,function(){h.closeSlide()})}else r.animate({top:0,opacity:1},300);else j?(j=!1,b>=l&&b>=e?h.getPrev():-l>=b&&e>=b&&h.getNext()):p.hasClass("visible-bars")?(h.clearTimeout(),h.hideBars()):(h.showBars(),h.setTimeout());c("#swipebox-slider").css({"-webkit-transform":"translate3d("+s+"%, 0, 0)",transform:"translate3d("+s+"%, 0, 0)"}),c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c(".touching").off("touchmove").removeClass("touching")})},setTimeout:function(){if(j.settings.hideBarsDelay>0){var b=this;b.clearTimeout(),b.timeout=a.setTimeout(function(){b.hideBars()},j.settings.hideBarsDelay)}},clearTimeout:function(){a.clearTimeout(this.timeout),this.timeout=null},showBars:function(){var a=c("#swipebox-top-bar, #swipebox-bottom-bar");this.doCssTrans()?a.addClass("visible-bars"):(c("#swipebox-top-bar").animate({top:0},500),c("#swipebox-bottom-bar").animate({bottom:0},500),setTimeout(function(){a.addClass("visible-bars")},1e3))},hideBars:function(){var a=c("#swipebox-top-bar, #swipebox-bottom-bar");this.doCssTrans()?a.removeClass("visible-bars"):(c("#swipebox-top-bar").animate({top:"-50px"},500),c("#swipebox-bottom-bar").animate({bottom:"-50px"},500),setTimeout(function(){a.removeClass("visible-bars")},1e3))},animBars:function(){var a=this,b=c("#swipebox-top-bar, #swipebox-bottom-bar");b.addClass("visible-bars"),a.setTimeout(),c("#swipebox-slider").click(function(){b.hasClass("visible-bars")||(a.showBars(),a.setTimeout())}),c("#swipebox-bottom-bar").hover(function(){a.showBars(),b.addClass("visible-bars"),a.clearTimeout()},function(){j.settings.hideBarsDelay>0&&(b.removeClass("visible-bars"),a.setTimeout())})},keyboard:function(){var b=this;c(a).bind("keyup",function(a){a.preventDefault(),a.stopPropagation(),37===a.keyCode?b.getPrev():39===a.keyCode?b.getNext():27===a.keyCode&&b.closeSlide()})},actions:function(){var a=this,b="touchend click";k.length<2?(c("#swipebox-bottom-bar").hide(),d===k[1]&&c("#swipebox-top-bar").hide()):(c("#swipebox-prev").bind(b,function(b){b.preventDefault(),b.stopPropagation(),a.getPrev(),a.setTimeout()}),c("#swipebox-next").bind(b,function(b){b.preventDefault(),b.stopPropagation(),a.getNext(),a.setTimeout()})),c("#swipebox-close").bind(b,function(){a.closeSlide()})},setSlide:function(a,b){b=b||!1;var d=c("#swipebox-slider");s=100*-a,this.doCssTrans()?d.css({"-webkit-transform":"translate3d("+100*-a+"%, 0, 0)",transform:"translate3d("+100*-a+"%, 0, 0)"}):d.animate({left:100*-a+"%"}),c("#swipebox-slider .slide").removeClass("current"),c("#swipebox-slider .slide").eq(a).addClass("current"),this.setTitle(a),b&&d.fadeIn(),c("#swipebox-prev, #swipebox-next").removeClass("disabled"),0===a?c("#swipebox-prev").addClass("disabled"):a===k.length-1&&j.settings.loopAtEnd!==!0&&c("#swipebox-next").addClass("disabled")},openSlide:function(b){c("html").addClass("swipebox-html"),o?(c("html").addClass("swipebox-touch"),j.settings.hideCloseButtonOnMobile&&c("html").addClass("swipebox-no-close-button")):c("html").addClass("swipebox-no-touch"),c(a).trigger("resize"),this.setSlide(b,!0)},preloadMedia:function(a){var b=this,c=null;k[a]!==d&&(c=k[a].href),b.isVideo(c)?b.openMedia(a):setTimeout(function(){b.openMedia(a)},1e3)},openMedia:function(a){var b,e,f=this;return k[a]!==d&&(b=k[a].href),0>a||a>=k.length?!1:(e=c("#swipebox-slider .slide").eq(a),void(f.isVideo(b)?e.html(f.getVideo(b)):(e.addClass("slide-loading"),f.loadMedia(b,function(){e.removeClass("slide-loading"),e.html(this)}))))},setTitle:function(a){var b=null;c("#swipebox-title").empty(),k[a]!==d&&(b=k[a].title),b?(c("#swipebox-top-bar").show(),c("#swipebox-title").append(b)):c("#swipebox-top-bar").hide()},isVideo:function(a){if(a){if(a.match(/youtube\.com\/watch\?v=([a-zA-Z0-9\-_]+)/)||a.match(/vimeo\.com\/([0-9]*)/)||a.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/))return!0;if(a.toLowerCase().indexOf("swipeboxvideo=1")>=0)return!0}},getVideo:function(a){var b="",c=a.match(/watch\?v=([a-zA-Z0-9\-_]+)/),d=a.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/),e=a.match(/vimeo\.com\/([0-9]*)/);return c||d?(d&&(c=d),b=''):e&&(b=''),d||d||e||(b=''),'
'+b+"
"},loadMedia:function(a,b){if(!this.isVideo(a)){var d=c("").on("load",function(){b.call(d)});d.attr("src",a)}},getNext:function(){var a,b=this,d=c("#swipebox-slider .slide").index(c("#swipebox-slider .slide.current"));d+10?(a=c("#swipebox-slider .slide").eq(b).contents().find("iframe").attr("src"),c("#swipebox-slider .slide").eq(b).contents().find("iframe").attr("src",a),b--,this.setSlide(b),this.preloadMedia(b-1)):(c("#swipebox-overlay").addClass("leftSpring"),setTimeout(function(){c("#swipebox-overlay").removeClass("leftSpring")},500))},closeSlide:function(){c("html").removeClass("swipebox-html"),c("html").removeClass("swipebox-touch"),c(a).trigger("resize"),this.destroy()},destroy:function(){c(a).unbind("keyup"),c("body").unbind("touchstart"),c("body").unbind("touchmove"),c("body").unbind("touchend"),c("#swipebox-slider").unbind(),c("#swipebox-overlay").remove(),c.isArray(e)||e.removeData("_swipebox"),this.target&&this.target.trigger("swipebox-destroy"),c.swipebox.isOpen=!1,j.settings.afterClose&&j.settings.afterClose()}},j.init()},c.fn.swipebox=function(a){if(!c.data(this,"_swipebox")){var b=new c.swipebox(this,a);this.data("_swipebox",b)}return this.data("_swipebox")}}(window,document,jQuery); -------------------------------------------------------------------------------- /static/modernizr-2.6.2.min.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load 3 | */ 4 | ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f= 0) ? html : body; 97 | activeElement = body; 98 | 99 | initTest(); 100 | initDone = true; 101 | 102 | // Checks if this script is running in a frame 103 | if (top != self) { 104 | isFrame = true; 105 | } 106 | 107 | /** 108 | * This fixes a bug where the areas left and right to 109 | * the content does not trigger the onmousewheel event 110 | * on some pages. e.g.: html, body { height: 100% } 111 | */ 112 | else if (scrollHeight > windowHeight && 113 | (body.offsetHeight <= windowHeight || 114 | html.offsetHeight <= windowHeight)) { 115 | 116 | html.style.height = 'auto'; 117 | //setTimeout(refresh, 10); 118 | 119 | // clearfix 120 | if (root.offsetHeight <= windowHeight) { 121 | var underlay = document.createElement("div"); 122 | underlay.style.clear = "both"; 123 | body.appendChild(underlay); 124 | } 125 | } 126 | 127 | // disable fixed background 128 | if (!options.fixedBackground && !isExcluded) { 129 | body.style.backgroundAttachment = "scroll"; 130 | html.style.backgroundAttachment = "scroll"; 131 | } 132 | } 133 | 134 | 135 | /************************************************ 136 | * SCROLLING 137 | ************************************************/ 138 | 139 | var que = []; 140 | var pending = false; 141 | var lastScroll = +new Date; 142 | 143 | /** 144 | * Pushes scroll actions to the scrolling queue. 145 | */ 146 | function scrollArray(elem, left, top, delay) { 147 | 148 | delay || (delay = 1000); 149 | directionCheck(left, top); 150 | 151 | if (options.accelerationMax != 1) { 152 | var now = +new Date; 153 | var elapsed = now - lastScroll; 154 | if (elapsed < options.accelerationDelta) { 155 | var factor = (1 + (30 / elapsed)) / 2; 156 | if (factor > 1) { 157 | factor = Math.min(factor, options.accelerationMax); 158 | left *= factor; 159 | top *= factor; 160 | } 161 | } 162 | lastScroll = +new Date; 163 | } 164 | 165 | // push a scroll command 166 | que.push({ 167 | x: left, 168 | y: top, 169 | lastX: (left < 0) ? 0.99 : -0.99, 170 | lastY: (top < 0) ? 0.99 : -0.99, 171 | start: +new Date 172 | }); 173 | 174 | // don't act if there's a pending queue 175 | if (pending) { 176 | return; 177 | } 178 | 179 | var scrollWindow = (elem === document.body); 180 | 181 | var step = function (time) { 182 | 183 | var now = +new Date; 184 | var scrollX = 0; 185 | var scrollY = 0; 186 | 187 | for (var i = 0; i < que.length; i++) { 188 | 189 | var item = que[i]; 190 | var elapsed = now - item.start; 191 | var finished = (elapsed >= options.animationTime); 192 | 193 | // scroll position: [0, 1] 194 | var position = (finished) ? 1 : elapsed / options.animationTime; 195 | 196 | // easing [optional] 197 | if (options.pulseAlgorithm) { 198 | position = pulse(position); 199 | } 200 | 201 | // only need the difference 202 | var x = (item.x * position - item.lastX) >> 0; 203 | var y = (item.y * position - item.lastY) >> 0; 204 | 205 | // add this to the total scrolling 206 | scrollX += x; 207 | scrollY += y; 208 | 209 | // update last values 210 | item.lastX += x; 211 | item.lastY += y; 212 | 213 | // delete and step back if it's over 214 | if (finished) { 215 | que.splice(i, 1); i--; 216 | } 217 | } 218 | 219 | // scroll left and top 220 | if (scrollWindow) { 221 | window.scrollBy(scrollX, scrollY); 222 | } 223 | else { 224 | if (scrollX) elem.scrollLeft += scrollX; 225 | if (scrollY) elem.scrollTop += scrollY; 226 | } 227 | 228 | // clean up if there's nothing left to do 229 | if (!left && !top) { 230 | que = []; 231 | } 232 | 233 | if (que.length) { 234 | requestFrame(step, elem, (delay / options.frameRate + 1)); 235 | } else { 236 | pending = false; 237 | } 238 | }; 239 | 240 | // start a new queue of actions 241 | requestFrame(step, elem, 0); 242 | pending = true; 243 | } 244 | 245 | 246 | /*********************************************** 247 | * EVENTS 248 | ***********************************************/ 249 | 250 | /** 251 | * Mouse wheel handler. 252 | * @param {Object} event 253 | */ 254 | function wheel(event) { 255 | 256 | if (!initDone) { 257 | init(); 258 | } 259 | 260 | var target = event.target; 261 | var overflowing = overflowingAncestor(target); 262 | 263 | // use default if there's no overflowing 264 | // element or default action is prevented 265 | if (!overflowing || event.defaultPrevented || 266 | isNodeName(activeElement, "embed") || 267 | (isNodeName(target, "embed") && /\.pdf/i.test(target.src))) { 268 | return true; 269 | } 270 | 271 | var deltaX = event.wheelDeltaX || 0; 272 | var deltaY = event.wheelDeltaY || 0; 273 | 274 | // use wheelDelta if deltaX/Y is not available 275 | if (!deltaX && !deltaY) { 276 | deltaY = event.wheelDelta || 0; 277 | } 278 | 279 | // check if it's a touchpad scroll that should be ignored 280 | if (!options.touchpadSupport && isTouchpad(deltaY)) { 281 | return true; 282 | } 283 | 284 | // scale by step size 285 | // delta is 120 most of the time 286 | // synaptics seems to send 1 sometimes 287 | if (Math.abs(deltaX) > 1.2) { 288 | deltaX *= options.stepSize / 120; 289 | } 290 | if (Math.abs(deltaY) > 1.2) { 291 | deltaY *= options.stepSize / 120; 292 | } 293 | 294 | scrollArray(overflowing, -deltaX, -deltaY); 295 | event.preventDefault(); 296 | } 297 | 298 | /** 299 | * Keydown event handler. 300 | * @param {Object} event 301 | */ 302 | function keydown(event) { 303 | 304 | var target = event.target; 305 | var modifier = event.ctrlKey || event.altKey || event.metaKey || 306 | (event.shiftKey && event.keyCode !== key.spacebar); 307 | 308 | // do nothing if user is editing text 309 | // or using a modifier key (except shift) 310 | // or in a dropdown 311 | if ( /input|textarea|select|embed/i.test(target.nodeName) || 312 | target.isContentEditable || 313 | event.defaultPrevented || 314 | modifier ) { 315 | return true; 316 | } 317 | // spacebar should trigger button press 318 | if (isNodeName(target, "button") && 319 | event.keyCode === key.spacebar) { 320 | return true; 321 | } 322 | 323 | var shift, x = 0, y = 0; 324 | var elem = overflowingAncestor(activeElement); 325 | var clientHeight = elem.clientHeight; 326 | 327 | if (elem == document.body) { 328 | clientHeight = window.innerHeight; 329 | } 330 | 331 | switch (event.keyCode) { 332 | case key.up: 333 | y = -options.arrowScroll; 334 | break; 335 | case key.down: 336 | y = options.arrowScroll; 337 | break; 338 | case key.spacebar: // (+ shift) 339 | shift = event.shiftKey ? 1 : -1; 340 | y = -shift * clientHeight * 0.9; 341 | break; 342 | case key.pageup: 343 | y = -clientHeight * 0.9; 344 | break; 345 | case key.pagedown: 346 | y = clientHeight * 0.9; 347 | break; 348 | case key.home: 349 | y = -elem.scrollTop; 350 | break; 351 | case key.end: 352 | var damt = elem.scrollHeight - elem.scrollTop - clientHeight; 353 | y = (damt > 0) ? damt+10 : 0; 354 | break; 355 | case key.left: 356 | x = -options.arrowScroll; 357 | break; 358 | case key.right: 359 | x = options.arrowScroll; 360 | break; 361 | default: 362 | return true; // a key we don't care about 363 | } 364 | 365 | scrollArray(elem, x, y); 366 | event.preventDefault(); 367 | } 368 | 369 | /** 370 | * Mousedown event only for updating activeElement 371 | */ 372 | function mousedown(event) { 373 | activeElement = event.target; 374 | } 375 | 376 | 377 | /*********************************************** 378 | * OVERFLOW 379 | ***********************************************/ 380 | 381 | var cache = {}; // cleared out every once in while 382 | setInterval(function () { cache = {}; }, 10 * 1000); 383 | 384 | var uniqueID = (function () { 385 | var i = 0; 386 | return function (el) { 387 | return el.uniqueID || (el.uniqueID = i++); 388 | }; 389 | })(); 390 | 391 | function setCache(elems, overflowing) { 392 | for (var i = elems.length; i--;) 393 | cache[uniqueID(elems[i])] = overflowing; 394 | return overflowing; 395 | } 396 | 397 | function overflowingAncestor(el) { 398 | var elems = []; 399 | var rootScrollHeight = root.scrollHeight; 400 | do { 401 | var cached = cache[uniqueID(el)]; 402 | if (cached) { 403 | return setCache(elems, cached); 404 | } 405 | elems.push(el); 406 | if (rootScrollHeight === el.scrollHeight) { 407 | if (!isFrame || root.clientHeight + 10 < rootScrollHeight) { 408 | return setCache(elems, document.body); // scrolling root in WebKit 409 | } 410 | } else if (el.clientHeight + 10 < el.scrollHeight) { 411 | overflow = getComputedStyle(el, "").getPropertyValue("overflow-y"); 412 | if (overflow === "scroll" || overflow === "auto") { 413 | return setCache(elems, el); 414 | } 415 | } 416 | } while (el = el.parentNode); 417 | } 418 | 419 | 420 | /*********************************************** 421 | * HELPERS 422 | ***********************************************/ 423 | 424 | function addEvent(type, fn, bubble) { 425 | window.addEventListener(type, fn, (bubble||false)); 426 | } 427 | 428 | function removeEvent(type, fn, bubble) { 429 | window.removeEventListener(type, fn, (bubble||false)); 430 | } 431 | 432 | function isNodeName(el, tag) { 433 | return (el.nodeName||"").toLowerCase() === tag.toLowerCase(); 434 | } 435 | 436 | function directionCheck(x, y) { 437 | x = (x > 0) ? 1 : -1; 438 | y = (y > 0) ? 1 : -1; 439 | if (direction.x !== x || direction.y !== y) { 440 | direction.x = x; 441 | direction.y = y; 442 | que = []; 443 | lastScroll = 0; 444 | } 445 | } 446 | 447 | var deltaBufferTimer; 448 | 449 | function isTouchpad(deltaY) { 450 | if (!deltaY) return; 451 | deltaY = Math.abs(deltaY) 452 | deltaBuffer.push(deltaY); 453 | deltaBuffer.shift(); 454 | clearTimeout(deltaBufferTimer); 455 | 456 | var allEquals = (deltaBuffer[0] == deltaBuffer[1] && 457 | deltaBuffer[1] == deltaBuffer[2]); 458 | var allDivisable = (isDivisible(deltaBuffer[0], 120) && 459 | isDivisible(deltaBuffer[1], 120) && 460 | isDivisible(deltaBuffer[2], 120)); 461 | return !(allEquals || allDivisable); 462 | } 463 | 464 | function isDivisible(n, divisor) { 465 | return (Math.floor(n / divisor) == n / divisor); 466 | } 467 | 468 | var requestFrame = (function () { 469 | return window.requestAnimationFrame || 470 | window.webkitRequestAnimationFrame || 471 | function (callback, element, delay) { 472 | window.setTimeout(callback, delay || (1000/60)); 473 | }; 474 | })(); 475 | 476 | 477 | /*********************************************** 478 | * PULSE 479 | ***********************************************/ 480 | 481 | /** 482 | * Viscous fluid with a pulse for part and decay for the rest. 483 | * - Applies a fixed force over an interval (a damped acceleration), and 484 | * - Lets the exponential bleed away the velocity over a longer interval 485 | * - Michael Herf, http://stereopsis.com/stopping/ 486 | */ 487 | function pulse_(x) { 488 | var val, start, expx; 489 | // test 490 | x = x * options.pulseScale; 491 | if (x < 1) { // acceleartion 492 | val = x - (1 - Math.exp(-x)); 493 | } else { // tail 494 | // the previous animation ended here: 495 | start = Math.exp(-1); 496 | // simple viscous drag 497 | x -= 1; 498 | expx = 1 - Math.exp(-x); 499 | val = start + (expx * (1 - start)); 500 | } 501 | return val * options.pulseNormalize; 502 | } 503 | 504 | function pulse(x) { 505 | if (x >= 1) return 1; 506 | if (x <= 0) return 0; 507 | 508 | if (options.pulseNormalize == 1) { 509 | options.pulseNormalize /= pulse_(1); 510 | } 511 | return pulse_(x); 512 | } 513 | 514 | var isChrome = /chrome/i.test(window.navigator.userAgent); 515 | var isMouseWheelSupported = 'onmousewheel' in document; 516 | 517 | if (isMouseWheelSupported && isChrome) { 518 | addEvent("mousedown", mousedown); 519 | addEvent("mousewheel", wheel); 520 | addEvent("load", init); 521 | }; 522 | 523 | })(); -------------------------------------------------------------------------------- /static/style.css: -------------------------------------------------------------------------------- 1 | body{ 2 | padding:0; 3 | margin:0; 4 | background:#fff; 5 | position:relative; 6 | font-family: 'Raleway', sans-serif; 7 | } 8 | body a{ 9 | transition:0.5s all; 10 | -webkit-transition:0.5s all; 11 | -moz-transition:0.5s all; 12 | -o-transition:0.5s all; 13 | -ms-transition:0.5s all; 14 | } 15 | a:hover{ 16 | text-decoration:none; 17 | } 18 | input[type="button"],input[type="submit"],.contact-form input[type="submit"]{ 19 | transition:0.5s all; 20 | -webkit-transition:0.5s all; 21 | -moz-transition:0.5s all; 22 | -o-transition:0.5s all; 23 | -ms-transition:0.5s all; 24 | } 25 | h1,h2,h3,h4,h5,h6{ 26 | margin:0; 27 | } 28 | p{ 29 | margin:0; 30 | } 31 | ul{ 32 | margin:0; 33 | padding:0; 34 | } 35 | label{ 36 | margin:0; 37 | } 38 | img{ 39 | width:100%; 40 | } 41 | 42 | 43 | /*--/header --*/ 44 | .header-top { 45 | background: #00000047; 46 | position: absolute; 47 | width: 100%; 48 | z-index: 9; 49 | padding: .5em 0; 50 | } 51 | /*--/navbar--*/ 52 | 53 | .navbar { 54 | padding: 0.5em 2em; 55 | } 56 | 57 | a.navbar-brand { 58 | font-size: 1em; 59 | text-shadow: 0 1px 2px rgba(0, 0, 0, 0.37); 60 | color: #fff; 61 | } 62 | 63 | .navbar-light .navbar-brand { 64 | color: #fff; 65 | font-weight: 600; 66 | letter-spacing: 1px; 67 | } 68 | .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { 69 | color: #fff; 70 | } 71 | .logo i { 72 | color: #4c6ef5; 73 | text-shadow: none; 74 | } 75 | 76 | li.nav-item { 77 | margin: 0 15px; 78 | } 79 | 80 | .navbar-light .navbar-nav .nav-link { 81 | padding: 0.3em 0em; 82 | color: #fff; 83 | background: transparent; 84 | letter-spacing: 1px; 85 | } 86 | 87 | .navbar-light .navbar-nav .show > .nav-link, 88 | .navbar-light .navbar-nav .active > .nav-link, 89 | .navbar-light .navbar-nav .nav-link.show, 90 | .navbar-light .navbar-nav .nav-link.active, 91 | .navbar-light .navbar-nav .nav-link:hover, 92 | .navbar-light .navbar-nav .nav-link:focus { 93 | background: transparent; 94 | color: #fff; 95 | } 96 | 97 | .dropdown-item { 98 | padding: 0.5em 1.5rem; 99 | margin: 0; 100 | } 101 | 102 | .dropdown-menu { 103 | margin: 0; 104 | padding: 0; 105 | } 106 | 107 | /*---*/ 108 | .tlinks{text-indent:-9999px;height:0;line-height:0;font-size:0;overflow:hidden;} 109 | /*---*/ 110 | 111 | .dropdown-toggle::after { 112 | width: 0; 113 | height: 0; 114 | margin-left: 0; 115 | content: ""; 116 | border-top: 0.3em solid; 117 | border-right: 0.3em solid transparent; 118 | border: 0px; 119 | } 120 | 121 | li.nav-item.active,li.nav-item:hover { 122 | border-bottom: 2px solid #4c6ef5; 123 | } 124 | 125 | .dropdown-item:hover, 126 | .dropdown-item:focus { 127 | color: #4c6ef5; 128 | text-decoration: none; 129 | background-color: #f0f0f1; 130 | } 131 | 132 | /*-- //header --*/ 133 | .top-head { 134 | width: 40%; 135 | padding-top: 1em; 136 | } 137 | 138 | .top-head span { 139 | color: #ffff; 140 | letter-spacing: 4px; 141 | } 142 | 143 | .top-head a { 144 | color: #ffff; 145 | letter-spacing: 2px; 146 | } 147 | 148 | /*--model-forms--*/ 149 | 150 | .modal-header { 151 | border: none; 152 | padding-bottom: 0; 153 | } 154 | 155 | .login h5 { 156 | font-size: 2em; 157 | color: #333; 158 | } 159 | 160 | .login button.btn.btn-primary.submit { 161 | background: #1e1f1f; 162 | padding: 0.5em 2em; 163 | letter-spacing: 1px; 164 | border: none; 165 | } 166 | 167 | .login button.btn.btn-primary.submit:hover { 168 | background: #2529d8; 169 | } 170 | 171 | .login a { 172 | color: #97989a; 173 | } 174 | 175 | .login label { 176 | font-weight: 400; 177 | color: #5a5757; 178 | font-size: 1em; 179 | letter-spacing: 1px; 180 | } 181 | 182 | /*--//model-forms--*/ 183 | 184 | /*-- modal --*/ 185 | .modal-body { 186 | font-size: 15px; 187 | line-height: 28px; 188 | color: #2a2a2a; 189 | } 190 | .modal-title { 191 | font-size: 28px !important; 192 | font-weight: 700; 193 | padding: 0 !important; 194 | letter-spacing: 2px; 195 | color: #333; 196 | } 197 | .modal-title span{ 198 | color: #dc3545; 199 | } 200 | .modal-title i{ 201 | color: #4c6ef5; 202 | text-shadow: none; 203 | } 204 | /*-- //modal --*/ 205 | 206 | /*--/banner-info--*/ 207 | 208 | .slide { 209 | background: url(../static/bg.jpg) no-repeat center; 210 | background-size: cover; 211 | -webkit-background-size: cover; 212 | -moz-background-size: cover; 213 | -o-background-size: cover; 214 | -ms-background-size: cover; 215 | height: 49vw; 216 | } 217 | 218 | .slide2 { 219 | background: url(../static/bg1.jpg) no-repeat center; 220 | background-size: cover; 221 | -webkit-background-size: cover; 222 | -moz-background-size: cover; 223 | -o-background-size: cover; 224 | -ms-background-size: cover; 225 | height: 49vw; 226 | } 227 | 228 | .slide3 { 229 | background: url(../static/bg2.jpg) no-repeat center; 230 | background-size: cover; 231 | -webkit-background-size: cover; 232 | -moz-background-size: cover; 233 | -o-background-size: cover; 234 | -ms-background-size: cover; 235 | height: 49vw; 236 | } 237 | .slide-caption h2,.slide-caption h3 { 238 | font-size: 4em; 239 | letter-spacing: 10px; 240 | text-shadow: 0 1px 2px rgba(0, 0, 0, .6); 241 | } 242 | .slide-caption p { 243 | font-size: 16px; 244 | letter-spacing: 1px; 245 | line-height: 33px; 246 | } 247 | /*--//banner-info--*/ 248 | 249 | /*-- welcome --*/ 250 | .welcome-grids p { 251 | margin: 0; 252 | color: #666; 253 | line-height: 28px; 254 | letter-spacing: .5px; 255 | } 256 | .welcome-grids h3 { 257 | font-size: 30px; 258 | text-transform: uppercase; 259 | color: #202020; 260 | font-weight:600; 261 | letter-spacing: 2px; 262 | line-height: 42px; 263 | } 264 | .read a { 265 | background: #4c6ef5; 266 | color: #fff; 267 | padding: 12px 60px 12px 30px; 268 | display: inline-block; 269 | letter-spacing: 1px; 270 | border-radius: 35px; 271 | font-weight: 300; 272 | } 273 | .read { 274 | position: relative; 275 | display: inline-block; 276 | } 277 | .read .btn { 278 | position: absolute; 279 | right: 1px; 280 | top: 1px; 281 | color: #4c6ef5; 282 | border: none; 283 | outline: none; 284 | text-align: center; 285 | text-decoration: none; 286 | background: #fff; 287 | border-radius: 50%; 288 | -webkit-transition: 0.5s all; 289 | -moz-transition: 0.5s all; 290 | -o-transition: 0.5s all; 291 | -ms-transition: 0.5s all; 292 | transition: 0.5s all; 293 | float: right; 294 | width: 46px; 295 | height: 46px; 296 | line-height: 35px; 297 | cursor: pointer; 298 | } 299 | 300 | /*-- // welcome --*/ 301 | 302 | /*-- welcome bottom --*/ 303 | 304 | .Welcome-bottom { 305 | background: url(../images/b.jpg) no-repeat 0px 0px; 306 | background-size: cover; 307 | } 308 | .welcome_left { 309 | background: rgba(0, 0, 0, 0.00); 310 | } 311 | .welcome_left_inner { 312 | background: rgba(0, 0, 0, 0.2); 313 | } 314 | .welcome-image img { 315 | border-radius: 5px; 316 | } 317 | .agileits_w3layouts_about_counter_left span { 318 | font-size: 25px; 319 | width: 60px; 320 | height: 60px; 321 | line-height: 60px; 322 | background: #4c6ef5; 323 | color: #fff; 324 | border-radius: 50%; 325 | text-align: center; 326 | float: left; 327 | transition: 0.5s all; 328 | -webkit-transition: 0.5s all; 329 | -moz-transition: 0.5s all; 330 | -ms-transition: 0.5s all; 331 | -o-transition: 0.5s all; 332 | } 333 | .agileits_w3layouts_about_counter_left span:hover { 334 | background: #ff4f81; 335 | transition: 0.5s all; 336 | -webkit-transition: 0.5s all; 337 | -moz-transition: 0.5s all; 338 | -ms-transition: 0.5s all; 339 | -o-transition: 0.5s all; 340 | } 341 | .agileits_w3layouts_about_counter_left p { 342 | font-size: 3em; 343 | font-weight: normal; 344 | color: #eee; 345 | } 346 | .agileits_w3layouts_about_counter_left h3 { 347 | color: #ccc; 348 | font-size: 18px; 349 | text-transform: capitalize; 350 | letter-spacing: 2px; 351 | float: left; 352 | font-weight: normal; 353 | margin: 1em 0 0 1em; 354 | } 355 | .countericon { 356 | float: left; 357 | } 358 | .counterinfo { 359 | float: right; 360 | } 361 | .welcome_bottom_right h3 { 362 | font-size: 30px; 363 | text-transform: uppercase; 364 | color: #fff; 365 | letter-spacing: 2px; 366 | font-weight: 600; 367 | line-height: 42px; 368 | } 369 | .welcome_bottom_right p { 370 | margin: 0; 371 | color: #ccc; 372 | line-height: 30px; 373 | letter-spacing: .5px; 374 | } 375 | /*-- //welcome bottom --*/ 376 | 377 | /*-- team --*/ 378 | 379 | .team { 380 | position: relative; 381 | } 382 | 383 | .our-team .team-row { 384 | margin-left: -40px; 385 | margin-right: -40px; 386 | } 387 | 388 | .our-team .team-wrap { 389 | padding: 0 40px; 390 | } 391 | 392 | .our-team .container-fluid { 393 | padding: 0 50px; 394 | } 395 | 396 | .team-img img { 397 | -webkit-transition: all .2s ease-in-out; 398 | -moz-transition: all .2s ease-in-out; 399 | -o-transition: all .2s ease-in-out; 400 | transition: all .2s ease-in-out; 401 | overflow: hidden; 402 | width: 100%; 403 | } 404 | 405 | .team-member, 406 | .team-img { 407 | position: relative; 408 | overflow: hidden; 409 | } 410 | 411 | .team-title { 412 | margin: 30px 0 7px; 413 | font-size: 20px; 414 | color: #333; 415 | letter-spacing: 2px; 416 | text-transform: uppercase; 417 | font-weight: 600; 418 | } 419 | 420 | .team-member span { 421 | font-size: 16px; 422 | color: #999; 423 | font-weight: 400; 424 | text-transform: capitalize; 425 | } 426 | 427 | .overlay-team { 428 | background-color: rgba(20, 20, 20, .7); 429 | position: absolute; 430 | top: 0; 431 | width: 100%; 432 | height: 100%; 433 | opacity: 0; 434 | -webkit-transition: all .2s ease-in-out; 435 | -moz-transition: all .2s ease-in-out; 436 | -o-transition: all .2s ease-in-out; 437 | transition: all .2s ease-in-out; 438 | } 439 | 440 | .team-details { 441 | opacity: 0; 442 | position: absolute; 443 | top: 50%; 444 | left: 0; 445 | padding: 5%; 446 | overflow: hidden; 447 | width: 100%; 448 | z-index: 2; 449 | -webkit-transition: all .4s ease-in-out; 450 | -moz-transition: all .4s ease-in-out; 451 | -o-transition: all .4s ease-in-out; 452 | transition: all .4s ease-in-out; 453 | } 454 | 455 | .team-img:hover .team-details { 456 | opacity: 1; 457 | margin-top: -80px; 458 | } 459 | 460 | .team-img:hover .overlay-team { 461 | opacity: 1; 462 | } 463 | 464 | .team-member:hover h6 { 465 | color: #4c6ef5; 466 | } 467 | 468 | .socials a { 469 | display: inline-block; 470 | margin-top: 40px; 471 | margin-right: 5px; 472 | } 473 | 474 | .socials a i { 475 | color: #fff; 476 | font-size: 18px; 477 | display: block; 478 | width: 42px; 479 | height: 42px; 480 | border-radius: 50%; 481 | line-height: 44px; 482 | text-align: center; 483 | transition: all .3s ease 0s; 484 | background: rgba(255, 255, 255, 0.5); 485 | } 486 | 487 | .team-details .socials i { 488 | color: #fff; 489 | } 490 | 491 | .socials a:hover i { 492 | color: #fff; 493 | background: #4c6ef5; 494 | } 495 | 496 | /*-- //team --*/ 497 | 498 | /*-- brands --*/ 499 | .partner-grids i.fab { 500 | font-size: 80px; 501 | color: #ccc; 502 | transition: 0.5s all; 503 | -webkit-transition: 0.5s all; 504 | -moz-transition: 0.5s all; 505 | -ms-transition: 0.5s all; 506 | -o-transition: 0.5s all; 507 | } 508 | .partner-grids i.fab:hover { 509 | color: #ff4f81; 510 | transition: 0.5s all; 511 | -webkit-transition: 0.5s all; 512 | -moz-transition: 0.5s all; 513 | -ms-transition: 0.5s all; 514 | -o-transition: 0.5s all; 515 | } 516 | .brand { 517 | box-shadow: 7px 7px 10px 0 rgba(76, 110, 245, .1); 518 | border-radius: 5px; 519 | -webkit-border-radius: 5px; 520 | -moz-border-radius: 5px; 521 | -ms-border-radius: 5px; 522 | -o-border-radius: 5px; 523 | } 524 | /*-- //brands --*/ 525 | 526 | /*-- features --*/ 527 | h3.heading { 528 | text-transform: uppercase; 529 | font-size: 45px; 530 | letter-spacing: 7px; 531 | color: #191919; 532 | font-weight: 600; 533 | } 534 | p.para{ 535 | position: relative; 536 | color: #999; 537 | } 538 | p.para:after { 539 | position: absolute; 540 | content: ''; 541 | background: #bbb; 542 | width: 10%; 543 | height: 3px; 544 | left: 45%; 545 | bottom: -80%; 546 | } 547 | h3.heading span { 548 | color: #4c6ef5; 549 | } 550 | .f1 i,.f2-active i { 551 | font-size: 20px; 552 | background: #4c6ef5; 553 | color: #fff; 554 | width: 60px; 555 | height: 60px; 556 | line-height: 60px; 557 | text-align: center; 558 | border-radius: 50%; 559 | } 560 | .feature-grids h3 { 561 | font-size: 24px; 562 | text-transform: capitalize; 563 | color: #000; 564 | letter-spacing: 2px; 565 | } 566 | .feature-grids p { 567 | margin: 0; 568 | color: #666; 569 | line-height: 28px; 570 | letter-spacing: .5px; 571 | } 572 | .f1,.f2-active{ 573 | background: #f8f9fa; 574 | border-radius: 5px; 575 | -webkit-border-radius: 5px; 576 | -moz-border-radius: 5px; 577 | -ms-border-radius: 5px; 578 | -o-border-radius: 5px; 579 | transition: 2s all; 580 | -webkit-transition: 2s all; 581 | -moz-transition: 2s all; 582 | -ms-transition: 2s all; 583 | -o-transition: 2s all; 584 | box-shadow: 7px 7px 10px 0 rgba(76, 110, 245, .1); 585 | } 586 | .f1:hover,.f2-active{ 587 | background: #4c6ef5 !important; 588 | transition: 2s all; 589 | -webkit-transition: 2s all; 590 | -moz-transition: 2s all; 591 | -ms-transition: 2s all; 592 | -o-transition: 2s all; 593 | } 594 | .f1:hover.f1 i,.f2-active i { 595 | background: #ff4f81; 596 | color: #fff; 597 | } 598 | .f1:hover.f1 p,.f2-active p { 599 | color: #fff; 600 | font-weight: 300; 601 | } 602 | .f1:hover h3,.f2-active h3{ 603 | color:#fff; 604 | } 605 | /*-- //features --*/ 606 | 607 | 608 | /*--bottom-last--*/ 609 | 610 | .bottom-last { 611 | background: url(../static/skills_bg.jpg) no-repeat 0px 0px; 612 | background-size: cover; 613 | -webkit-background-size: cover; 614 | -moz-background-size: cover; 615 | -o-background-size: cover; 616 | -ms-background-size: cover; 617 | } 618 | 619 | section.bottom-last h4.title { 620 | font-size: 1.8em; 621 | letter-spacing: 2px; 622 | color: #fff; 623 | text-shadow: 2px 2px 2px rgba(29, 28, 28, 0.15); 624 | } 625 | 626 | .bottom-bg p { 627 | font-size: 16px; 628 | letter-spacing: .5px; 629 | line-height: 30px; 630 | color: #ccc; 631 | } 632 | .bs-slider-overlay { 633 | width: 100%; 634 | height: 100%; 635 | background: url(../static/dots.png)repeat 0px 0px; 636 | background-size: 2px; 637 | -webkit-background-size: 2px; 638 | -moz-background-size: 2px; 639 | -o-background-size: 2px; 640 | -ms-background-size: 2px; 641 | } 642 | 643 | button.btn.btn-primary.play { 644 | width: 50px; 645 | height: 50px; 646 | border-radius: 50%; 647 | -webkit-border-radius: 50%; 648 | -moz-border-radius: 50%; 649 | -o-border-radius: 50%; 650 | -ms-border-radius: 50%; 651 | outline: none; 652 | cursor: pointer; 653 | color: #fff; 654 | background-color: #ff4f81; 655 | border: none; 656 | } 657 | .bnr-button span { 658 | letter-spacing: 1px; 659 | } 660 | h4.progress-tittle { 661 | color: #eee; 662 | font-size: 0.85em; 663 | text-transform: uppercase; 664 | margin-bottom: 1em; 665 | letter-spacing: 1px; 666 | } 667 | .progress-one .progress { 668 | height: 0.5rem; 669 | background: #e1e2e2; 670 | } 671 | .modal-body.video iframe { 672 | border: none; 673 | width: 100%; 674 | min-height: 250px; 675 | } 676 | 677 | h5#exampleModalLabel { 678 | font-size: 1.2em; 679 | } 680 | 681 | /*--bottom-last--*/ 682 | 683 | /*-- footer --*/ 684 | 685 | .footer { 686 | background: #4c6ef5; 687 | } 688 | 689 | /* footer grids */ 690 | 691 | .footerv3-top h3 { 692 | font-size: 1.3em; 693 | color: #fff; 694 | text-transform: uppercase; 695 | margin-bottom: 1.5em; 696 | } 697 | 698 | .fv3-contact span { 699 | color: #4c6ef5; 700 | background: #fff; 701 | width: 36px; 702 | height: 36px; 703 | line-height: 36px; 704 | text-align: center; 705 | border-radius: 50%; 706 | font-size: 14px; 707 | } 708 | 709 | .footer-top input[type="email"] { 710 | outline: none; 711 | padding: 13px 20px; 712 | color: #fff; 713 | font-size: 14px; 714 | width: 85%; 715 | border: none; 716 | background: none; 717 | letter-spacing: 1px; 718 | } 719 | 720 | .newsletter { 721 | position: relative; 722 | margin-top: 2em; 723 | } 724 | 725 | .footer-top form { 726 | width: 90%; 727 | background: #587aff; 728 | margin-top: 20px; 729 | border-radius: 35px; 730 | -webkit-border-radius: 35px; 731 | -moz-border-radius: 35px; 732 | -ms-border-radius: 35px; 733 | -o-border-radius: 35px; 734 | } 735 | button.btn1 { 736 | color: #4c6ef5; 737 | border: none; 738 | outline: none; 739 | text-align: center; 740 | text-decoration: none; 741 | background: #fff; 742 | border-radius: 50%; 743 | -webkit-transition: 0.5s all; 744 | -moz-transition: 0.5s all; 745 | -o-transition: 0.5s all; 746 | -ms-transition: 0.5s all; 747 | transition: 0.5s all; 748 | float: right; 749 | width: 46px; 750 | height: 46px; 751 | cursor: pointer; 752 | } 753 | .footv3-left h4 a { 754 | font-size: 1.3em; 755 | letter-spacing: 0.5px; 756 | color: #fff !important; 757 | padding: 14px 0 0; 758 | position: relative; 759 | text-transform: capitalize; 760 | } 761 | 762 | h4.footer-title { 763 | color: #fff; 764 | text-transform: capitalize; 765 | } 766 | 767 | .footerv3-top p { 768 | font-size: 1em; 769 | color: #a3b1bf; 770 | margin: 1em 0; 771 | line-height: 1.5em; 772 | } 773 | 774 | .footer p a { 775 | color: #eee; 776 | } 777 | 778 | .footer p a:hover { 779 | color: #ED4F2E; 780 | } 781 | 782 | 783 | .fv3-contact p { 784 | display: inline-block; 785 | vertical-align: middle; 786 | color: #eee; 787 | letter-spacing: .5px; 788 | line-height: 28px; 789 | } 790 | 791 | .footer-top p,.footerv2-w3ls p { 792 | max-width: 400px; 793 | color: #eee; 794 | letter-spacing: .5px; 795 | line-height: 28px; 796 | } 797 | 798 | .fv3-contact p a:hover { 799 | color: #fff; 800 | } 801 | 802 | .list-agileits li a { 803 | color: #eee; 804 | letter-spacing: .5px; 805 | } 806 | 807 | h3.w3f_title { 808 | font-size: 1.3em; 809 | letter-spacing: 2px; 810 | color: #fff; 811 | text-transform: uppercase; 812 | border-bottom: 1px solid #ccc; 813 | } 814 | .list-agileits li { 815 | list-style-type: none; 816 | } 817 | footer ::-webkit-input-placeholder { /* Chrome/Opera/Safari */ 818 | color: #eee; 819 | } 820 | footer ::-moz-placeholder { /* Firefox 19+ */ 821 | color: #eee; 822 | } 823 | footer :-ms-input-placeholder { /* IE 10+ */ 824 | color: #eee; 825 | } 826 | footer :-moz-placeholder { /* Firefox 18- */ 827 | color: #eee; 828 | } 829 | 830 | .cpy-right p { 831 | color: #ccc; 832 | font-size: 1em; 833 | letter-spacing: 1px; 834 | font-weight: 300; 835 | } 836 | 837 | .cpy-right p a { 838 | color: #4c6ef5; 839 | font-size: 1em; 840 | } 841 | .cpy-right p a:hover{ 842 | color: #fff; 843 | } 844 | 845 | .cpy-right { 846 | background: #587aff; 847 | background: #191d20; 848 | padding: 1.2em 1vw; 849 | } 850 | 851 | /* footer grids */ 852 | 853 | footer-top p { 854 | max-width: 500px; 855 | } 856 | 857 | .footerv2-w3ls ul.social-iconsv2 li { 858 | display: inline-block; 859 | margin-right: 6px; 860 | background: #587aff; 861 | border-radius: 50%; 862 | -webkit-border-radius: 50%; 863 | -moz-border-radius: 50%; 864 | -ms-border-radius: 50%; 865 | -o-border-radius: 50%; 866 | } 867 | 868 | .footerv2-w3ls ul.social-iconsv2 li a { 869 | text-decoration: none; 870 | font-size: 16px; 871 | color: #fff; 872 | } 873 | 874 | .footerv2-w3ls ul.social-iconsv2 li a i.fab { 875 | font-size: 14px; 876 | line-height: 38px; 877 | width: 38px; 878 | height: 38px; 879 | text-align: center; 880 | background-color: transparent; 881 | transition: all 0.5s ease-in-out; 882 | -webkit-transition: all 0.5s ease-in-out; 883 | -moz-transition: all 0.5s ease-in-out; 884 | -o-transition: all 0.5s ease-in-out; 885 | -ms-transition: all 0.5s ease-in-out; 886 | } 887 | 888 | .footerv2-w3ls ul.social-iconsv2 li:first-child:hover { 889 | background: #3b5998; 890 | color: #fff; 891 | border-radius: 50%; 892 | -webkit-border-radius: 50%; 893 | -moz-border-radius: 50%; 894 | -ms-border-radius: 50%; 895 | -o-border-radius: 50%; 896 | } 897 | 898 | .footerv2-w3ls ul.social-iconsv2 li:last-child:hover { 899 | background: #287bbc; 900 | color: #000; 901 | border-radius: 50%; 902 | -webkit-border-radius: 50%; 903 | -moz-border-radius: 50%; 904 | -ms-border-radius: 50%; 905 | -o-border-radius: 50%; 906 | } 907 | 908 | .footerv2-w3ls ul.social-iconsv2 li:nth-child(3):hover { 909 | background: #dd4b39; 910 | color: #000; 911 | border-radius: 50%; 912 | -webkit-border-radius: 50%; 913 | -moz-border-radius: 50%; 914 | -ms-border-radius: 50%; 915 | -o-border-radius: 50%; 916 | } 917 | 918 | .footerv2-w3ls ul.social-iconsv2 li:nth-child(2):hover { 919 | background: #1da1f2; 920 | color: #000; 921 | border-radius: 50%; 922 | -webkit-border-radius: 50%; 923 | -moz-border-radius: 50%; 924 | -ms-border-radius: 50%; 925 | -o-border-radius: 50%; 926 | } 927 | 928 | .footerv2-w3ls ul.social-iconsv2 li a:hover { 929 | color: #fff; 930 | } 931 | 932 | /* //footer */ 933 | 934 | /*-- features page --*/ 935 | .inner-page-banner { 936 | background: url(../static/bg.jpg) no-repeat 0px 0px; 937 | background-size: cover; 938 | min-height: 370px; 939 | } 940 | .inner-page-banner h2 { 941 | font-size: 40px; 942 | color: #eee; 943 | text-transform: uppercase; 944 | letter-spacing: 5px; 945 | } 946 | .page-heading { 947 | padding-top: 200px; 948 | } 949 | span.section_1-breadcrumbs, span.section_1-breadcrumbs a { 950 | color: #fff; 951 | font-size: 16px; 952 | letter-spacing: 2px; 953 | font-weight: 300; 954 | margin-top: 5px; 955 | display: inline-block; 956 | } 957 | 958 | /* testimonals */ 959 | .testimonal img { 960 | border-radius: 50%; 961 | width: 100px; 962 | } 963 | .testimonals { 964 | padding: 5em 0; 965 | } 966 | .first-grid { 967 | text-align: center; 968 | padding: 40px 20px; 969 | margin-right: 10px; 970 | background: #f8f9fa; 971 | box-shadow: 7px 7px 10px 0 rgba(76, 110, 245, .1); 972 | } 973 | .first-grid h3 { 974 | text-transform: uppercase; 975 | color: #4c6ef5; 976 | font-size: 20px; 977 | font-weight: 600; 978 | margin: 20px 0 0; 979 | } 980 | .first-grid h4 { 981 | margin: 5px 0; 982 | text-transform: capitalize; 983 | } 984 | .first-grid p { 985 | color: #666; 986 | margin: 20px 0 0; 987 | letter-spacing: 1px; 988 | line-height: 28px; 989 | } 990 | .owl-theme .item { 991 | padding: 0 5px; 992 | } 993 | /*-- testimonials --*/ 994 | /*-- explore --*/ 995 | 996 | .serv_bottom { 997 | background: #222; 998 | background: url(../images/bg1.jpg) no-repeat 0px 0px; 999 | background-size: cover; 1000 | -webkit-background-size: cover; 1001 | -moz-background-size: cover; 1002 | -o-background-size: cover; 1003 | -ms-background-size: cover; 1004 | } 1005 | 1006 | h4.agile-ser_bot { 1007 | font-size: 2.2em; 1008 | letter-spacing: 4px; 1009 | word-spacing: 3px; 1010 | font-weight: 300; 1011 | } 1012 | 1013 | a.serv_link { 1014 | color: #000; 1015 | font-weight: bold; 1016 | letter-spacing: 1px; 1017 | word-spacing: 3px; 1018 | } 1019 | 1020 | .serv_bottom h5 { 1021 | letter-spacing: 5px; 1022 | word-spacing: 3px; 1023 | font-weight: 300; 1024 | } 1025 | 1026 | .serv_bottom h5 { 1027 | letter-spacing: 10px; 1028 | word-spacing: 23px; 1029 | } 1030 | hr { 1031 | border-top: 1px solid rgba(255, 255, 255, 0.1); 1032 | } 1033 | /*-- //explore --*/ 1034 | 1035 | /*-- //features page --*/ 1036 | 1037 | /*-- contact page --*/ 1038 | .address.address-mdl { 1039 | margin: 2em 0; 1040 | } 1041 | .address h5 { 1042 | font-size: 1.2em; 1043 | color: #000; 1044 | text-transform: uppercase; 1045 | letter-spacing: 2px; 1046 | } 1047 | .address p { 1048 | margin-top: 1em; 1049 | font-size: 16px; 1050 | letter-spacing: .5px; 1051 | color: #777; 1052 | } 1053 | .address p span { 1054 | color: #ff4f81; 1055 | width: 30px; 1056 | font-size: 17px; 1057 | } 1058 | .address p a { 1059 | color: #525252; 1060 | font-size: 16px; 1061 | } 1062 | .address p a:hover{ 1063 | color: #4c6ef5; 1064 | } 1065 | .contact-agileinfo input[type="text"],.contact-agileinfo input[type="email"] { 1066 | width: 100%; 1067 | color: #999; 1068 | background: none; 1069 | outline: none; 1070 | font-size: 14px; 1071 | padding: 1em; 1072 | letter-spacing: 1px; 1073 | border: solid 1px #ddd; 1074 | -webkit-appearance: none; 1075 | display: inline-block; 1076 | } 1077 | input.email { 1078 | margin: 1em 0; 1079 | } 1080 | .contact-agileinfo textarea { 1081 | resize: none; 1082 | width: 100%; 1083 | background: none; 1084 | color: #999; 1085 | font-size: 14px; 1086 | padding: 1em; 1087 | outline: none; 1088 | letter-spacing: 1px; 1089 | border: solid 1px #ddd; 1090 | min-height: 10em; 1091 | -webkit-appearance: none; 1092 | margin-top: 1em; 1093 | } 1094 | .contact-agileinfo input[type="submit"]:hover { 1095 | background: #333; 1096 | } 1097 | .agileits-w3layouts-map iframe { 1098 | width: 100%; 1099 | min-height: 400px; 1100 | border: none; 1101 | border: 4px solid #eee; 1102 | } 1103 | .contact { 1104 | padding: 5em 0; 1105 | } 1106 | /*-- //contact page--*/ 1107 | 1108 | /*-- pricing page --*/ 1109 | 1110 | .price-main-info .card-body { 1111 | background: #333; 1112 | padding: 4em 1em; 1113 | } 1114 | 1115 | .pricing-card-title span { 1116 | font-size: .5em; 1117 | display: inline-block; 1118 | color: #ccc; 1119 | font-weight: 300; 1120 | } 1121 | 1122 | .price-main-info small.text-muted { 1123 | font-size: 0.5em; 1124 | } 1125 | 1126 | ul.list-unstyled li { 1127 | font-size: 16px; 1128 | color: #7d7d7d; 1129 | line-height: 2.5em; 1130 | } 1131 | 1132 | .price-main-info h5.card-title { 1133 | font-size: 3em; 1134 | color: #ccc; 1135 | font-weight: 700; 1136 | } 1137 | 1138 | .card-deck .card { 1139 | padding: 0px; 1140 | } 1141 | 1142 | .price-inner .log-in a { 1143 | font-size: 0.9em; 1144 | } 1145 | 1146 | .price-inner.card h4 { 1147 | color: #4c6ef5; 1148 | font-size: 1.1em; 1149 | } 1150 | 1151 | .price-main-info.card { 1152 | border-radius: 0; 1153 | border: none; 1154 | background: none; 1155 | } 1156 | 1157 | /*-- //pricing page --*/ 1158 | 1159 | /*-- erroe page --*/ 1160 | .error_content span{ 1161 | font-size: 80px; 1162 | color: #ff4f81; 1163 | } 1164 | .error_content h3 { 1165 | font-size: 30px; 1166 | text-transform: capitalize; 1167 | margin: 0; 1168 | color: #333; 1169 | } 1170 | .error_content p { 1171 | color: #777; 1172 | letter-spacing: .5px; 1173 | line-height: 1.8em; 1174 | font-weight: 400; 1175 | margin: 1.5em 0; 1176 | } 1177 | .error_content { 1178 | border: 10px solid #eee; 1179 | padding: 2em 4em; 1180 | } 1181 | .error_content form { 1182 | width: 40%; 1183 | } 1184 | .error_content input[type="search"] { 1185 | outline: none; 1186 | border: 1px solid #c4c5c5; 1187 | background: none; 1188 | color: #212121; 1189 | padding: 13px 15px; 1190 | width: 80%; 1191 | float: left; 1192 | font-size: 13px; 1193 | letter-spacing: 2px; 1194 | } 1195 | .error_content button.btn1 { 1196 | color: #fff; 1197 | border: none; 1198 | padding: 14px 0; 1199 | text-align: center; 1200 | cursor: pointer; 1201 | text-decoration: none; 1202 | background: #333; 1203 | -webkit-transition: 0.5s all; 1204 | -moz-transition: 0.5s all; 1205 | -o-transition: 0.5s all; 1206 | -ms-transition: 0.5s all; 1207 | transition: 0.5s all; 1208 | float: right; 1209 | width: 20%; 1210 | border-radius: 0%; 1211 | } 1212 | 1213 | .error_content a.b-home { 1214 | background: #4c6ef5; 1215 | padding: 1em 2em; 1216 | border-radius: 35px; 1217 | display: inline-block; 1218 | color: #FFF; 1219 | text-decoration: none; 1220 | font-size: 0.95em; 1221 | margin-top: 2em; 1222 | } 1223 | .error_content a.b-home:hover { 1224 | background: #333; 1225 | } 1226 | /*-- //erroe page --*/ 1227 | 1228 | 1229 | /* -- about page --*/ 1230 | .about-right h3 { 1231 | color: #5c5f5e; 1232 | font-weight: 600; 1233 | font-size: 1rem; 1234 | letter-spacing: 1px; 1235 | text-transform: uppercase; 1236 | } 1237 | 1238 | .about-right h4 { 1239 | font-size: 28px; 1240 | text-transform: uppercase; 1241 | color: #202020; 1242 | letter-spacing: 2px; 1243 | line-height: 42px; 1244 | } 1245 | .about-right p { 1246 | color: #666; 1247 | line-height: 28px; 1248 | letter-spacing: .5px; 1249 | } 1250 | .about-in .card { 1251 | border: none; 1252 | background: none; 1253 | box-shadow: 7px 7px 10px 0 rgba(76, 110, 245, .1); 1254 | border-radius: 5px; 1255 | -webkit-border-radius: 5px; 1256 | -moz-border-radius: 5px; 1257 | -ms-border-radius: 5px; 1258 | -o-border-radius: 5px; 1259 | } 1260 | 1261 | 1262 | .about-in h5.card-title { 1263 | font-weight: 600; 1264 | font-size: 1rem; 1265 | letter-spacing: 1px; 1266 | color: #444; 1267 | text-transform: uppercase; 1268 | } 1269 | 1270 | .about-in .card i { 1271 | font-size: 1.5em; 1272 | margin-bottom: 0.7em; 1273 | color: #4c6ef5; 1274 | } 1275 | .about-in.middle-grid-info .card { 1276 | padding: 2.5em 2em; 1277 | background: #f8f9fa; 1278 | border-bottom: 4px solid #f8f8fa; 1279 | box-shadow: 7px 7px 10px 0 rgba(76, 110, 245, .1); 1280 | } 1281 | .about-in.middle-grid-info .card:hover { 1282 | background: #fff; 1283 | } 1284 | 1285 | .about-in.middle-grid-info .card-body { 1286 | padding: 0; 1287 | } 1288 | 1289 | .about-in.middle-grid-info h5.card-title { 1290 | font-size: 1.3em; 1291 | line-height: 1.4em; 1292 | } 1293 | 1294 | .about-in.middle-grid-info:hover .card, 1295 | .about-in.middle-grid-info.active .card { 1296 | box-shadow: 7px 7px 10px 0 rgba(76, 110, 245, .1); 1297 | } 1298 | .middle-grids .card { 1299 | border-radius: 50%; 1300 | } 1301 | .middle-grids .card p{ 1302 | color: #666; 1303 | line-height: 28px; 1304 | letter-spacing: .5px; 1305 | } 1306 | /* --// about page --*/ 1307 | 1308 | /*-- Projects page --*/ 1309 | #portfolio p { 1310 | line-height: 1.8em; 1311 | margin: 25px 0 0 0; 1312 | font-size:1.1; 1313 | color: #ffffff; 1314 | font-weight: 300; 1315 | } 1316 | .Projects-section h3{ 1317 | margin: 0; 1318 | color: #ffffff; 1319 | font-size: 36px; 1320 | font-weight: 500; 1321 | letter-spacing: 18px; 1322 | } 1323 | .Projects-grid { 1324 | padding: 0; 1325 | border: 3px solid #fff; 1326 | } 1327 | .Projects1 { 1328 | position:relative; 1329 | } 1330 | .Projects1 .textbox { 1331 | width:100%; 1332 | height:100%; 1333 | position:absolute; 1334 | top:0; 1335 | left:0; 1336 | -webkit-transform: scale(0); 1337 | transform: scale(0); 1338 | background-color: rgba(0, 0, 0, 0.5); 1339 | } 1340 | .Projects1:hover .textbox { 1341 | -webkit-transform: scale(1); 1342 | transform: scale(1); 1343 | } 1344 | .Projects-grid img{ 1345 | width:100%; 1346 | } 1347 | 1348 | .textbox { 1349 | -webkit-transition: all 0.7s ease; 1350 | transition: all 0.7s ease; 1351 | text-align:center; 1352 | } 1353 | .textbox h4 { 1354 | font-size: 1.8em; 1355 | color: #FFF; 1356 | margin-top: 2.7em; 1357 | text-transform: uppercase; 1358 | letter-spacing: 5px; 1359 | } 1360 | .textbox p { 1361 | font-size: 26px !important; 1362 | color: #fff; 1363 | background: rgba(0, 0, 0, 0.83); 1364 | margin: 6px 0 0 0!important; 1365 | padding: 3px 0; 1366 | } 1367 | .Projects-grids { 1368 | margin-top: 50px; 1369 | } 1370 | /*-- //Projects page --*/ 1371 | 1372 | /*-- to-top --*/ 1373 | #toTop { 1374 | display: none; 1375 | text-decoration: none; 1376 | position: fixed; 1377 | bottom: 20px; 1378 | right: 2%; 1379 | overflow: hidden; 1380 | z-index: 999; 1381 | width: 40px; 1382 | height: 40px; 1383 | border: none; 1384 | text-indent: 100%; 1385 | background: url(../static/arr.png) no-repeat 0px 0px; 1386 | } 1387 | #toTopHover { 1388 | width: 40px; 1389 | height: 40px; 1390 | display: block; 1391 | overflow: hidden; 1392 | float: right; 1393 | opacity: 0; 1394 | -moz-opacity: 0; 1395 | filter: alpha(opacity=0); 1396 | } 1397 | /*-- //to-top --*/ 1398 | 1399 | /*-- Responsive design --*/ 1400 | 1401 | @media screen and (max-width: 1440px) { 1402 | .slide-window .slide-wrapper .slide .slide-caption { 1403 | bottom: 17%; 1404 | } 1405 | } 1406 | @media screen and (max-width: 1366px) { 1407 | .slide-window .slide-wrapper .slide .slide-caption { 1408 | left: 20%; 1409 | width: 60%; 1410 | } 1411 | } 1412 | @media screen and (max-width: 1280px) { 1413 | .slide-window .slide-wrapper .slide .slide-caption { 1414 | left: 16%; 1415 | width: 68%; 1416 | bottom: 14%; 1417 | } 1418 | .slide-caption h2, .slide-caption h3 { 1419 | font-size: 3.2em; 1420 | } 1421 | .top-head { 1422 | width: 45%; 1423 | } 1424 | } 1425 | @media screen and (max-width: 1080px) { 1426 | .slide-window .slide-wrapper .slide .slide-caption { 1427 | left: 12%; 1428 | width: 75%; 1429 | bottom: 10%; 1430 | padding: 3em 2em; 1431 | } 1432 | .slide,.slide2,.slide3 { 1433 | height: 54vw; 1434 | } 1435 | .top-head { 1436 | width: 50%; 1437 | } 1438 | .welcome-grids h3,.welcome_bottom_right h3 { 1439 | font-size: 26px; 1440 | } 1441 | .agileits_w3layouts_about_counter_left p { 1442 | font-size: 2.3em; 1443 | } 1444 | .agileits_w3layouts_about_counter_left h3 { 1445 | font-size: 17px; 1446 | letter-spacing: 1px; 1447 | } 1448 | .feature-grids p { 1449 | font-size: 14.5px; 1450 | } 1451 | .footer-top input[type="email"] { 1452 | width: 81%; 1453 | } 1454 | h3.w3f_title { 1455 | font-size: 1.1em; 1456 | } 1457 | a.navbar-brand { 1458 | font-size: .9em; 1459 | } 1460 | .about-right p { 1461 | font-size: 15px; 1462 | } 1463 | .about-right h4 { 1464 | font-size: 27px; 1465 | line-height: 38px; 1466 | } 1467 | .about-in.middle-grid-info .card { 1468 | padding: 1.5em 1em; 1469 | } 1470 | .about-in.middle-grid-info h5.card-title { 1471 | font-size: 1.2em; 1472 | } 1473 | .textbox h4 { 1474 | font-size: 1.6em; 1475 | margin-top: 2.4em; 1476 | letter-spacing: 4px; 1477 | } 1478 | } 1479 | @media screen and (max-width: 1024px) { 1480 | .top-head { 1481 | width: 55%; 1482 | } 1483 | .partner-grids i.fab { 1484 | font-size: 60px; 1485 | } 1486 | .error_content form { 1487 | width: 60%; 1488 | } 1489 | .agileits-w3layouts-map iframe { 1490 | min-height: 350px; 1491 | } 1492 | } 1493 | @media screen and (max-width: 991px) { 1494 | .top-head { 1495 | margin: auto; 1496 | } 1497 | .navbar-light .navbar-toggler-icon { 1498 | background-image: none; 1499 | } 1500 | .navbar-light .navbar-toggler { 1501 | color: #fff; 1502 | padding: 10px 10px 0; 1503 | border-color: transparent; 1504 | } 1505 | .navbar-toggler { 1506 | font-size: 1.25rem; 1507 | background-color: #4c6ef5; 1508 | border-radius: 0; 1509 | } 1510 | .navbar-nav { 1511 | background: #111; 1512 | padding: 1em 0; 1513 | } 1514 | li.nav-item { 1515 | display: inline-block; 1516 | width: 22%; 1517 | margin: auto; 1518 | border: 2px solid transparent; 1519 | } 1520 | .navbar-light .navbar-nav .nav-link { 1521 | padding: 0.5em 0em; 1522 | } 1523 | .socials a i { 1524 | font-size: 15px; 1525 | width: 37px; 1526 | height: 37px; 1527 | line-height: 37px; 1528 | } 1529 | .inner-page-banner { 1530 | min-height: 325px; 1531 | } 1532 | .page-heading { 1533 | padding-top: 170px; 1534 | } 1535 | h4.agile-ser_bot { 1536 | font-size: 2em; 1537 | letter-spacing: 1px; 1538 | } 1539 | .serv_bottom h5 { 1540 | letter-spacing: 7px; 1541 | word-spacing: 20px; 1542 | font-size: 19px; 1543 | } 1544 | .about-in.middle-grid-info .card { 1545 | padding: 4em 1em; 1546 | } 1547 | .price-main-info { 1548 | padding: 0 2px; 1549 | } 1550 | .agileits-w3layouts-map iframe { 1551 | min-height: 300px; 1552 | } 1553 | } 1554 | @media screen and (max-width: 900px) { 1555 | .top-head { 1556 | width: 60%; 1557 | } 1558 | .slide-caption h2, .slide-caption h3 { 1559 | font-size: 2.8em; 1560 | letter-spacing: 8px; 1561 | } 1562 | .slide-caption p { 1563 | font-size: 15px; 1564 | } 1565 | .slide-window .slide-wrapper .slide .slide-caption { 1566 | bottom: 8%; 1567 | padding: 3em 0em; 1568 | } 1569 | .slide, .slide2, .slide3 { 1570 | height: 58vw; 1571 | } 1572 | } 1573 | @media screen and (max-width: 800px) { 1574 | .top-head { 1575 | width: 65%; 1576 | } 1577 | .slide-window .slide-wrapper .slide .slide-caption { 1578 | bottom: 6%; 1579 | left: 10%; 1580 | width: 81%; 1581 | } 1582 | .slide, .slide2, .slide3 { 1583 | height: 64vw; 1584 | } 1585 | .inner-page-banner { 1586 | min-height: 300px; 1587 | } 1588 | .page-heading { 1589 | padding-top: 160px; 1590 | } 1591 | } 1592 | @media screen and (max-width: 768px) { 1593 | .top-head { 1594 | width: 70%; 1595 | } 1596 | .slide-window .slide-wrapper .slide .slide-caption { 1597 | bottom: 5%; 1598 | } 1599 | .slide, .slide2, .slide3 { 1600 | height: 70vw; 1601 | } 1602 | .slide-caption p { 1603 | letter-spacing: .5px; 1604 | } 1605 | } 1606 | @media screen and (max-width: 736px) { 1607 | li.nav-item { 1608 | width: 27%; 1609 | } 1610 | h3.heading { 1611 | font-size: 36px; 1612 | letter-spacing: 4px; 1613 | } 1614 | .serv_bottom h5 { 1615 | letter-spacing: 6px; 1616 | word-spacing: 10px; 1617 | font-size: 18px; 1618 | } 1619 | .read { 1620 | margin-top: 1em; 1621 | } 1622 | .about-in.middle-grid-info .card { 1623 | padding: 2em 1em; 1624 | } 1625 | .textbox h4 { 1626 | margin-top: 3em; 1627 | } 1628 | .error_content { 1629 | border: 7px solid #eee; 1630 | padding: 2em 2em; 1631 | } 1632 | } 1633 | @media screen and (max-width: 667px) { 1634 | a.navbar-brand { 1635 | font-size: .8em; 1636 | } 1637 | .top-head a { 1638 | font-size: 15px; 1639 | } 1640 | .slide-caption h2, .slide-caption h3 { 1641 | font-size: 2.4em; 1642 | letter-spacing: 6px; 1643 | } 1644 | .slide, .slide2, .slide3 { 1645 | height: 78vw; 1646 | } 1647 | .read a { 1648 | font-size: 14px; 1649 | } 1650 | .read .btn { 1651 | width: 43px; 1652 | height: 43px; 1653 | line-height: 33px; 1654 | } 1655 | section.bottom-last h4.title { 1656 | font-size: 1.5em; 1657 | } 1658 | .inner-page-banner h2 { 1659 | font-size: 35px; 1660 | letter-spacing: 3px; 1661 | } 1662 | } 1663 | @media screen and (max-width: 600px) { 1664 | 1665 | .slide-window .slide-wrapper .slide .slide-caption { 1666 | bottom: 2%; 1667 | } 1668 | .fv3-contact p { 1669 | font-size: 15px; 1670 | } 1671 | li.nav-item { 1672 | width: 32%; 1673 | } 1674 | .navbar-light .navbar-nav .nav-link { 1675 | font-size: 15px; 1676 | } 1677 | h3.heading { 1678 | font-size: 40px; 1679 | letter-spacing: 5px; 1680 | } 1681 | .feature-grids h3 { 1682 | font-size: 20px; 1683 | } 1684 | .team-title { 1685 | font-size: 18px; 1686 | } 1687 | } 1688 | @media screen and (max-width: 568px) { 1689 | .slide, .slide2, .slide3 { 1690 | height: 82vw; 1691 | } 1692 | .slide-window .slide-wrapper .slide .slide-caption { 1693 | bottom: 0%; 1694 | } 1695 | .team-row { 1696 | width: 70%; 1697 | margin: auto; 1698 | } 1699 | li.nav-item { 1700 | width: 35%; 1701 | } 1702 | .about-right h4,.welcome-grids h3, .welcome_bottom_right h3 { 1703 | font-size: 24px; 1704 | } 1705 | .middle-grids { 1706 | width: 60%; 1707 | margin: auto; 1708 | } 1709 | .about-in.middle-grid-info .card { 1710 | padding: 3em 2em; 1711 | } 1712 | .inner_w3l_agile_grids-1 { 1713 | width: 70%; 1714 | margin: auto; 1715 | } 1716 | .error_content span { 1717 | font-size: 60px; 1718 | } 1719 | .error_content h3 { 1720 | font-size: 26px; 1721 | } 1722 | .error_content p { 1723 | font-size: 15px; 1724 | } 1725 | .menu-grids { 1726 | width: 60%; 1727 | margin: auto; 1728 | } 1729 | } 1730 | @media screen and (max-width: 480px) { 1731 | .top-head { 1732 | width: 85%; 1733 | } 1734 | .slide, .slide2, .slide3 { 1735 | height: 105vw; 1736 | } 1737 | .slide-caption h2, .slide-caption h3 { 1738 | font-size: 2em; 1739 | letter-spacing: 4px; 1740 | } 1741 | .slide-window .slide-wrapper .slide .slide-caption { 1742 | left: 8%; 1743 | width: 84%; 1744 | } 1745 | li.nav-item { 1746 | width: 40%; 1747 | } 1748 | .cpy-right p { 1749 | font-size: 15px; 1750 | } 1751 | .navbar { 1752 | padding: 0.5em 1em; 1753 | } 1754 | h4.agile-ser_bot { 1755 | font-size: 1.8em; 1756 | letter-spacing: 1px; 1757 | } 1758 | .serv_bottom h5 { 1759 | letter-spacing: 4px; 1760 | word-spacing: 5px; 1761 | font-size: 17px; 1762 | } 1763 | .middle-grids { 1764 | width: 70%; 1765 | } 1766 | .error_content form { 1767 | width: 80%; 1768 | } 1769 | .menu-grids { 1770 | width: 70%; 1771 | } 1772 | } 1773 | @media screen and (max-width: 414px) { 1774 | .top-head { 1775 | width: 100%; 1776 | } 1777 | .slide, .slide2, .slide3 { 1778 | height: 125vw; 1779 | } 1780 | a.navbar-brand { 1781 | font-size: .7em; 1782 | } 1783 | .navbar-light .navbar-toggler { 1784 | padding: 8px 8px 0; 1785 | font-size: 19px; 1786 | } 1787 | li.nav-item { 1788 | width: 50%; 1789 | } 1790 | .welcome-grids h3, .welcome_bottom_right h3 { 1791 | font-size: 23px; 1792 | letter-spacing: 1px; 1793 | } 1794 | .team-row { 1795 | width: 80%; 1796 | } 1797 | .agileits_w3layouts_about_counter_left span { 1798 | font-size: 18px; 1799 | width: 50px; 1800 | height: 50px; 1801 | line-height: 50px; 1802 | } 1803 | h3.heading { 1804 | font-size: 36px; 1805 | letter-spacing: 3px; 1806 | } 1807 | .inner-page-banner { 1808 | min-height: 250px; 1809 | } 1810 | .middle-grids { 1811 | width: 80%; 1812 | } 1813 | .inner_w3l_agile_grids-1 { 1814 | width: 80%; 1815 | } 1816 | .error_content form { 1817 | width: 90%; 1818 | } 1819 | .menu-grids { 1820 | width: 80%; 1821 | } 1822 | ul.list-unstyled li { 1823 | font-size: 15px; 1824 | line-height: 2.2em; 1825 | } 1826 | .price-main-info .card-body { 1827 | padding: 3em 1em; 1828 | } 1829 | .agileits-w3layouts-map iframe { 1830 | min-height: 250px; 1831 | } 1832 | .address h5 { 1833 | font-size: 1em; 1834 | letter-spacing: 1px; 1835 | } 1836 | .address p { 1837 | font-size: 15px; 1838 | } 1839 | } 1840 | @media screen and (max-width: 384px) { 1841 | .slide, .slide2, .slide3 { 1842 | height: 135vw; 1843 | } 1844 | li.nav-item { 1845 | width: 55%; 1846 | } 1847 | .welcome-grids p,.welcome_bottom_right p,p.para { 1848 | font-size: 15px; 1849 | } 1850 | .partner-grids i.fab { 1851 | font-size: 50px; 1852 | } 1853 | h4.progress-tittle { 1854 | font-size: 0.75em; 1855 | } 1856 | .inner-page-banner h2 { 1857 | font-size: 30px; 1858 | letter-spacing: 2px; 1859 | } 1860 | span.section_1-breadcrumbs, span.section_1-breadcrumbs a { 1861 | font-size: 15px; 1862 | letter-spacing: 1px; 1863 | } 1864 | h4.agile-ser_bot { 1865 | font-size: 1.5em; 1866 | letter-spacing: 0px; 1867 | } 1868 | .serv_bottom h5 { 1869 | letter-spacing: 3px; 1870 | word-spacing: 3px; 1871 | font-size: 15px; 1872 | } 1873 | .middle-grids { 1874 | width: 90%; 1875 | } 1876 | .error_content h3 { 1877 | font-size: 22px; 1878 | } 1879 | .error_content span { 1880 | font-size: 50px; 1881 | } 1882 | .error_content form { 1883 | width: 100%; 1884 | } 1885 | } 1886 | @media screen and (max-width: 375px) { 1887 | .sign-btn { 1888 | padding: 0; 1889 | } 1890 | .top-head a { 1891 | letter-spacing: 1px; 1892 | } 1893 | .slide-caption h2, .slide-caption h3 { 1894 | font-size: 1.8em; 1895 | letter-spacing: 2px; 1896 | } 1897 | .slide-caption p { 1898 | font-size: 14px; 1899 | } 1900 | .cpy-right p { 1901 | font-size: 14px; 1902 | } 1903 | .middle-grids { 1904 | width: 100%; 1905 | } 1906 | .menu-grids { 1907 | width: 95%; 1908 | } 1909 | .slide, .slide2, .slide3 { 1910 | height: 140vw; 1911 | } 1912 | } 1913 | @media screen and (max-width: 320px) { 1914 | .slide, .slide2, .slide3 { 1915 | height: 170vw; 1916 | } 1917 | .slide-caption p { 1918 | font-size: 13.5px; 1919 | } 1920 | li.nav-item { 1921 | width: 60%; 1922 | } 1923 | .countericon, .counterinfo { 1924 | float: none; 1925 | } 1926 | h3.heading { 1927 | font-size: 30px; 1928 | letter-spacing: 2px; 1929 | } 1930 | .team-row { 1931 | width: 100%; 1932 | } 1933 | .inner_w3l_agile_grids-1 { 1934 | width: 100%; 1935 | } 1936 | } 1937 | /*-- //Responsive design --*/ -------------------------------------------------------------------------------- /static/fontawesome-all.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.0.8 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | .fa, 6 | .fas, 7 | .far, 8 | .fal, 9 | .fab { 10 | -moz-osx-font-smoothing: grayscale; 11 | -webkit-font-smoothing: antialiased; 12 | display: inline-block; 13 | font-style: normal; 14 | font-variant: normal; 15 | text-rendering: auto; 16 | line-height: 1; } 17 | 18 | .fa-lg { 19 | font-size: 1.33333em; 20 | line-height: 0.75em; 21 | vertical-align: -.0667em; } 22 | 23 | .fa-xs { 24 | font-size: .75em; } 25 | 26 | .fa-sm { 27 | font-size: .875em; } 28 | 29 | .fa-1x { 30 | font-size: 1em; } 31 | 32 | .fa-2x { 33 | font-size: 2em; } 34 | 35 | .fa-3x { 36 | font-size: 3em; } 37 | 38 | .fa-4x { 39 | font-size: 4em; } 40 | 41 | .fa-5x { 42 | font-size: 5em; } 43 | 44 | .fa-6x { 45 | font-size: 6em; } 46 | 47 | .fa-7x { 48 | font-size: 7em; } 49 | 50 | .fa-8x { 51 | font-size: 8em; } 52 | 53 | .fa-9x { 54 | font-size: 9em; } 55 | 56 | .fa-10x { 57 | font-size: 10em; } 58 | 59 | .fa-fw { 60 | text-align: center; 61 | width: 1.25em; } 62 | 63 | .fa-ul { 64 | list-style-type: none; 65 | margin-left: 2.5em; 66 | padding-left: 0; } 67 | .fa-ul > li { 68 | position: relative; } 69 | 70 | .fa-li { 71 | left: -2em; 72 | position: absolute; 73 | text-align: center; 74 | width: 2em; 75 | line-height: inherit; } 76 | 77 | .fa-border { 78 | border: solid 0.08em #eee; 79 | border-radius: .1em; 80 | padding: .2em .25em .15em; } 81 | 82 | .fa-pull-left { 83 | float: left; } 84 | 85 | .fa-pull-right { 86 | float: right; } 87 | 88 | .fa.fa-pull-left, 89 | .fas.fa-pull-left, 90 | .far.fa-pull-left, 91 | .fal.fa-pull-left, 92 | .fab.fa-pull-left { 93 | margin-right: .3em; } 94 | 95 | .fa.fa-pull-right, 96 | .fas.fa-pull-right, 97 | .far.fa-pull-right, 98 | .fal.fa-pull-right, 99 | .fab.fa-pull-right { 100 | margin-left: .3em; } 101 | 102 | .fa-spin { 103 | -webkit-animation: fa-spin 2s infinite linear; 104 | animation: fa-spin 2s infinite linear; } 105 | 106 | .fa-pulse { 107 | -webkit-animation: fa-spin 1s infinite steps(8); 108 | animation: fa-spin 1s infinite steps(8); } 109 | 110 | @-webkit-keyframes fa-spin { 111 | 0% { 112 | -webkit-transform: rotate(0deg); 113 | transform: rotate(0deg); } 114 | 100% { 115 | -webkit-transform: rotate(360deg); 116 | transform: rotate(360deg); } } 117 | 118 | @keyframes fa-spin { 119 | 0% { 120 | -webkit-transform: rotate(0deg); 121 | transform: rotate(0deg); } 122 | 100% { 123 | -webkit-transform: rotate(360deg); 124 | transform: rotate(360deg); } } 125 | 126 | .fa-rotate-90 { 127 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; 128 | -webkit-transform: rotate(90deg); 129 | transform: rotate(90deg); } 130 | 131 | .fa-rotate-180 { 132 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; 133 | -webkit-transform: rotate(180deg); 134 | transform: rotate(180deg); } 135 | 136 | .fa-rotate-270 { 137 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; 138 | -webkit-transform: rotate(270deg); 139 | transform: rotate(270deg); } 140 | 141 | .fa-flip-horizontal { 142 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; 143 | -webkit-transform: scale(-1, 1); 144 | transform: scale(-1, 1); } 145 | 146 | .fa-flip-vertical { 147 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 148 | -webkit-transform: scale(1, -1); 149 | transform: scale(1, -1); } 150 | 151 | .fa-flip-horizontal.fa-flip-vertical { 152 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 153 | -webkit-transform: scale(-1, -1); 154 | transform: scale(-1, -1); } 155 | 156 | :root .fa-rotate-90, 157 | :root .fa-rotate-180, 158 | :root .fa-rotate-270, 159 | :root .fa-flip-horizontal, 160 | :root .fa-flip-vertical { 161 | -webkit-filter: none; 162 | filter: none; } 163 | 164 | .fa-stack { 165 | display: inline-block; 166 | height: 2em; 167 | line-height: 2em; 168 | position: relative; 169 | vertical-align: middle; 170 | width: 2em; } 171 | 172 | .fa-stack-1x, 173 | .fa-stack-2x { 174 | left: 0; 175 | position: absolute; 176 | text-align: center; 177 | width: 100%; } 178 | 179 | .fa-stack-1x { 180 | line-height: inherit; } 181 | 182 | .fa-stack-2x { 183 | font-size: 2em; } 184 | 185 | .fa-inverse { 186 | color: #fff; } 187 | 188 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen 189 | readers do not read off random characters that represent icons */ 190 | .fa-500px:before { 191 | content: "\f26e"; } 192 | 193 | .fa-accessible-icon:before { 194 | content: "\f368"; } 195 | 196 | .fa-accusoft:before { 197 | content: "\f369"; } 198 | 199 | .fa-address-book:before { 200 | content: "\f2b9"; } 201 | 202 | .fa-address-card:before { 203 | content: "\f2bb"; } 204 | 205 | .fa-adjust:before { 206 | content: "\f042"; } 207 | 208 | .fa-adn:before { 209 | content: "\f170"; } 210 | 211 | .fa-adversal:before { 212 | content: "\f36a"; } 213 | 214 | .fa-affiliatetheme:before { 215 | content: "\f36b"; } 216 | 217 | .fa-algolia:before { 218 | content: "\f36c"; } 219 | 220 | .fa-align-center:before { 221 | content: "\f037"; } 222 | 223 | .fa-align-justify:before { 224 | content: "\f039"; } 225 | 226 | .fa-align-left:before { 227 | content: "\f036"; } 228 | 229 | .fa-align-right:before { 230 | content: "\f038"; } 231 | 232 | .fa-amazon:before { 233 | content: "\f270"; } 234 | 235 | .fa-amazon-pay:before { 236 | content: "\f42c"; } 237 | 238 | .fa-ambulance:before { 239 | content: "\f0f9"; } 240 | 241 | .fa-american-sign-language-interpreting:before { 242 | content: "\f2a3"; } 243 | 244 | .fa-amilia:before { 245 | content: "\f36d"; } 246 | 247 | .fa-anchor:before { 248 | content: "\f13d"; } 249 | 250 | .fa-android:before { 251 | content: "\f17b"; } 252 | 253 | .fa-angellist:before { 254 | content: "\f209"; } 255 | 256 | .fa-angle-double-down:before { 257 | content: "\f103"; } 258 | 259 | .fa-angle-double-left:before { 260 | content: "\f100"; } 261 | 262 | .fa-angle-double-right:before { 263 | content: "\f101"; } 264 | 265 | .fa-angle-double-up:before { 266 | content: "\f102"; } 267 | 268 | .fa-angle-down:before { 269 | content: "\f107"; } 270 | 271 | .fa-angle-left:before { 272 | content: "\f104"; } 273 | 274 | .fa-angle-right:before { 275 | content: "\f105"; } 276 | 277 | .fa-angle-up:before { 278 | content: "\f106"; } 279 | 280 | .fa-angrycreative:before { 281 | content: "\f36e"; } 282 | 283 | .fa-angular:before { 284 | content: "\f420"; } 285 | 286 | .fa-app-store:before { 287 | content: "\f36f"; } 288 | 289 | .fa-app-store-ios:before { 290 | content: "\f370"; } 291 | 292 | .fa-apper:before { 293 | content: "\f371"; } 294 | 295 | .fa-apple:before { 296 | content: "\f179"; } 297 | 298 | .fa-apple-pay:before { 299 | content: "\f415"; } 300 | 301 | .fa-archive:before { 302 | content: "\f187"; } 303 | 304 | .fa-arrow-alt-circle-down:before { 305 | content: "\f358"; } 306 | 307 | .fa-arrow-alt-circle-left:before { 308 | content: "\f359"; } 309 | 310 | .fa-arrow-alt-circle-right:before { 311 | content: "\f35a"; } 312 | 313 | .fa-arrow-alt-circle-up:before { 314 | content: "\f35b"; } 315 | 316 | .fa-arrow-circle-down:before { 317 | content: "\f0ab"; } 318 | 319 | .fa-arrow-circle-left:before { 320 | content: "\f0a8"; } 321 | 322 | .fa-arrow-circle-right:before { 323 | content: "\f0a9"; } 324 | 325 | .fa-arrow-circle-up:before { 326 | content: "\f0aa"; } 327 | 328 | .fa-arrow-down:before { 329 | content: "\f063"; } 330 | 331 | .fa-arrow-left:before { 332 | content: "\f060"; } 333 | 334 | .fa-arrow-right:before { 335 | content: "\f061"; } 336 | 337 | .fa-arrow-up:before { 338 | content: "\f062"; } 339 | 340 | .fa-arrows-alt:before { 341 | content: "\f0b2"; } 342 | 343 | .fa-arrows-alt-h:before { 344 | content: "\f337"; } 345 | 346 | .fa-arrows-alt-v:before { 347 | content: "\f338"; } 348 | 349 | .fa-assistive-listening-systems:before { 350 | content: "\f2a2"; } 351 | 352 | .fa-asterisk:before { 353 | content: "\f069"; } 354 | 355 | .fa-asymmetrik:before { 356 | content: "\f372"; } 357 | 358 | .fa-at:before { 359 | content: "\f1fa"; } 360 | 361 | .fa-audible:before { 362 | content: "\f373"; } 363 | 364 | .fa-audio-description:before { 365 | content: "\f29e"; } 366 | 367 | .fa-autoprefixer:before { 368 | content: "\f41c"; } 369 | 370 | .fa-avianex:before { 371 | content: "\f374"; } 372 | 373 | .fa-aviato:before { 374 | content: "\f421"; } 375 | 376 | .fa-aws:before { 377 | content: "\f375"; } 378 | 379 | .fa-backward:before { 380 | content: "\f04a"; } 381 | 382 | .fa-balance-scale:before { 383 | content: "\f24e"; } 384 | 385 | .fa-ban:before { 386 | content: "\f05e"; } 387 | 388 | .fa-band-aid:before { 389 | content: "\f462"; } 390 | 391 | .fa-bandcamp:before { 392 | content: "\f2d5"; } 393 | 394 | .fa-barcode:before { 395 | content: "\f02a"; } 396 | 397 | .fa-bars:before { 398 | content: "\f0c9"; } 399 | 400 | .fa-baseball-ball:before { 401 | content: "\f433"; } 402 | 403 | .fa-basketball-ball:before { 404 | content: "\f434"; } 405 | 406 | .fa-bath:before { 407 | content: "\f2cd"; } 408 | 409 | .fa-battery-empty:before { 410 | content: "\f244"; } 411 | 412 | .fa-battery-full:before { 413 | content: "\f240"; } 414 | 415 | .fa-battery-half:before { 416 | content: "\f242"; } 417 | 418 | .fa-battery-quarter:before { 419 | content: "\f243"; } 420 | 421 | .fa-battery-three-quarters:before { 422 | content: "\f241"; } 423 | 424 | .fa-bed:before { 425 | content: "\f236"; } 426 | 427 | .fa-beer:before { 428 | content: "\f0fc"; } 429 | 430 | .fa-behance:before { 431 | content: "\f1b4"; } 432 | 433 | .fa-behance-square:before { 434 | content: "\f1b5"; } 435 | 436 | .fa-bell:before { 437 | content: "\f0f3"; } 438 | 439 | .fa-bell-slash:before { 440 | content: "\f1f6"; } 441 | 442 | .fa-bicycle:before { 443 | content: "\f206"; } 444 | 445 | .fa-bimobject:before { 446 | content: "\f378"; } 447 | 448 | .fa-binoculars:before { 449 | content: "\f1e5"; } 450 | 451 | .fa-birthday-cake:before { 452 | content: "\f1fd"; } 453 | 454 | .fa-bitbucket:before { 455 | content: "\f171"; } 456 | 457 | .fa-bitcoin:before { 458 | content: "\f379"; } 459 | 460 | .fa-bity:before { 461 | content: "\f37a"; } 462 | 463 | .fa-black-tie:before { 464 | content: "\f27e"; } 465 | 466 | .fa-blackberry:before { 467 | content: "\f37b"; } 468 | 469 | .fa-blind:before { 470 | content: "\f29d"; } 471 | 472 | .fa-blogger:before { 473 | content: "\f37c"; } 474 | 475 | .fa-blogger-b:before { 476 | content: "\f37d"; } 477 | 478 | .fa-bluetooth:before { 479 | content: "\f293"; } 480 | 481 | .fa-bluetooth-b:before { 482 | content: "\f294"; } 483 | 484 | .fa-bold:before { 485 | content: "\f032"; } 486 | 487 | .fa-bolt:before { 488 | content: "\f0e7"; } 489 | 490 | .fa-bomb:before { 491 | content: "\f1e2"; } 492 | 493 | .fa-book:before { 494 | content: "\f02d"; } 495 | 496 | .fa-bookmark:before { 497 | content: "\f02e"; } 498 | 499 | .fa-bowling-ball:before { 500 | content: "\f436"; } 501 | 502 | .fa-box:before { 503 | content: "\f466"; } 504 | 505 | .fa-boxes:before { 506 | content: "\f468"; } 507 | 508 | .fa-braille:before { 509 | content: "\f2a1"; } 510 | 511 | .fa-briefcase:before { 512 | content: "\f0b1"; } 513 | 514 | .fa-btc:before { 515 | content: "\f15a"; } 516 | 517 | .fa-bug:before { 518 | content: "\f188"; } 519 | 520 | .fa-building:before { 521 | content: "\f1ad"; } 522 | 523 | .fa-bullhorn:before { 524 | content: "\f0a1"; } 525 | 526 | .fa-bullseye:before { 527 | content: "\f140"; } 528 | 529 | .fa-buromobelexperte:before { 530 | content: "\f37f"; } 531 | 532 | .fa-bus:before { 533 | content: "\f207"; } 534 | 535 | .fa-buysellads:before { 536 | content: "\f20d"; } 537 | 538 | .fa-calculator:before { 539 | content: "\f1ec"; } 540 | 541 | .fa-calendar:before { 542 | content: "\f133"; } 543 | 544 | .fa-calendar-alt:before { 545 | content: "\f073"; } 546 | 547 | .fa-calendar-check:before { 548 | content: "\f274"; } 549 | 550 | .fa-calendar-minus:before { 551 | content: "\f272"; } 552 | 553 | .fa-calendar-plus:before { 554 | content: "\f271"; } 555 | 556 | .fa-calendar-times:before { 557 | content: "\f273"; } 558 | 559 | .fa-camera:before { 560 | content: "\f030"; } 561 | 562 | .fa-camera-retro:before { 563 | content: "\f083"; } 564 | 565 | .fa-car:before { 566 | content: "\f1b9"; } 567 | 568 | .fa-caret-down:before { 569 | content: "\f0d7"; } 570 | 571 | .fa-caret-left:before { 572 | content: "\f0d9"; } 573 | 574 | .fa-caret-right:before { 575 | content: "\f0da"; } 576 | 577 | .fa-caret-square-down:before { 578 | content: "\f150"; } 579 | 580 | .fa-caret-square-left:before { 581 | content: "\f191"; } 582 | 583 | .fa-caret-square-right:before { 584 | content: "\f152"; } 585 | 586 | .fa-caret-square-up:before { 587 | content: "\f151"; } 588 | 589 | .fa-caret-up:before { 590 | content: "\f0d8"; } 591 | 592 | .fa-cart-arrow-down:before { 593 | content: "\f218"; } 594 | 595 | .fa-cart-plus:before { 596 | content: "\f217"; } 597 | 598 | .fa-cc-amazon-pay:before { 599 | content: "\f42d"; } 600 | 601 | .fa-cc-amex:before { 602 | content: "\f1f3"; } 603 | 604 | .fa-cc-apple-pay:before { 605 | content: "\f416"; } 606 | 607 | .fa-cc-diners-club:before { 608 | content: "\f24c"; } 609 | 610 | .fa-cc-discover:before { 611 | content: "\f1f2"; } 612 | 613 | .fa-cc-jcb:before { 614 | content: "\f24b"; } 615 | 616 | .fa-cc-mastercard:before { 617 | content: "\f1f1"; } 618 | 619 | .fa-cc-paypal:before { 620 | content: "\f1f4"; } 621 | 622 | .fa-cc-stripe:before { 623 | content: "\f1f5"; } 624 | 625 | .fa-cc-visa:before { 626 | content: "\f1f0"; } 627 | 628 | .fa-centercode:before { 629 | content: "\f380"; } 630 | 631 | .fa-certificate:before { 632 | content: "\f0a3"; } 633 | 634 | .fa-chart-area:before { 635 | content: "\f1fe"; } 636 | 637 | .fa-chart-bar:before { 638 | content: "\f080"; } 639 | 640 | .fa-chart-line:before { 641 | content: "\f201"; } 642 | 643 | .fa-chart-pie:before { 644 | content: "\f200"; } 645 | 646 | .fa-check:before { 647 | content: "\f00c"; } 648 | 649 | .fa-check-circle:before { 650 | content: "\f058"; } 651 | 652 | .fa-check-square:before { 653 | content: "\f14a"; } 654 | 655 | .fa-chess:before { 656 | content: "\f439"; } 657 | 658 | .fa-chess-bishop:before { 659 | content: "\f43a"; } 660 | 661 | .fa-chess-board:before { 662 | content: "\f43c"; } 663 | 664 | .fa-chess-king:before { 665 | content: "\f43f"; } 666 | 667 | .fa-chess-knight:before { 668 | content: "\f441"; } 669 | 670 | .fa-chess-pawn:before { 671 | content: "\f443"; } 672 | 673 | .fa-chess-queen:before { 674 | content: "\f445"; } 675 | 676 | .fa-chess-rook:before { 677 | content: "\f447"; } 678 | 679 | .fa-chevron-circle-down:before { 680 | content: "\f13a"; } 681 | 682 | .fa-chevron-circle-left:before { 683 | content: "\f137"; } 684 | 685 | .fa-chevron-circle-right:before { 686 | content: "\f138"; } 687 | 688 | .fa-chevron-circle-up:before { 689 | content: "\f139"; } 690 | 691 | .fa-chevron-down:before { 692 | content: "\f078"; } 693 | 694 | .fa-chevron-left:before { 695 | content: "\f053"; } 696 | 697 | .fa-chevron-right:before { 698 | content: "\f054"; } 699 | 700 | .fa-chevron-up:before { 701 | content: "\f077"; } 702 | 703 | .fa-child:before { 704 | content: "\f1ae"; } 705 | 706 | .fa-chrome:before { 707 | content: "\f268"; } 708 | 709 | .fa-circle:before { 710 | content: "\f111"; } 711 | 712 | .fa-circle-notch:before { 713 | content: "\f1ce"; } 714 | 715 | .fa-clipboard:before { 716 | content: "\f328"; } 717 | 718 | .fa-clipboard-check:before { 719 | content: "\f46c"; } 720 | 721 | .fa-clipboard-list:before { 722 | content: "\f46d"; } 723 | 724 | .fa-clock:before { 725 | content: "\f017"; } 726 | 727 | .fa-clone:before { 728 | content: "\f24d"; } 729 | 730 | .fa-closed-captioning:before { 731 | content: "\f20a"; } 732 | 733 | .fa-cloud:before { 734 | content: "\f0c2"; } 735 | 736 | .fa-cloud-download-alt:before { 737 | content: "\f381"; } 738 | 739 | .fa-cloud-upload-alt:before { 740 | content: "\f382"; } 741 | 742 | .fa-cloudscale:before { 743 | content: "\f383"; } 744 | 745 | .fa-cloudsmith:before { 746 | content: "\f384"; } 747 | 748 | .fa-cloudversify:before { 749 | content: "\f385"; } 750 | 751 | .fa-code:before { 752 | content: "\f121"; } 753 | 754 | .fa-code-branch:before { 755 | content: "\f126"; } 756 | 757 | .fa-codepen:before { 758 | content: "\f1cb"; } 759 | 760 | .fa-codiepie:before { 761 | content: "\f284"; } 762 | 763 | .fa-coffee:before { 764 | content: "\f0f4"; } 765 | 766 | .fa-cog:before { 767 | content: "\f013"; } 768 | 769 | .fa-cogs:before { 770 | content: "\f085"; } 771 | 772 | .fa-columns:before { 773 | content: "\f0db"; } 774 | 775 | .fa-comment:before { 776 | content: "\f075"; } 777 | 778 | .fa-comment-alt:before { 779 | content: "\f27a"; } 780 | 781 | .fa-comments:before { 782 | content: "\f086"; } 783 | 784 | .fa-compass:before { 785 | content: "\f14e"; } 786 | 787 | .fa-compress:before { 788 | content: "\f066"; } 789 | 790 | .fa-connectdevelop:before { 791 | content: "\f20e"; } 792 | 793 | .fa-contao:before { 794 | content: "\f26d"; } 795 | 796 | .fa-copy:before { 797 | content: "\f0c5"; } 798 | 799 | .fa-copyright:before { 800 | content: "\f1f9"; } 801 | 802 | .fa-cpanel:before { 803 | content: "\f388"; } 804 | 805 | .fa-creative-commons:before { 806 | content: "\f25e"; } 807 | 808 | .fa-credit-card:before { 809 | content: "\f09d"; } 810 | 811 | .fa-crop:before { 812 | content: "\f125"; } 813 | 814 | .fa-crosshairs:before { 815 | content: "\f05b"; } 816 | 817 | .fa-css3:before { 818 | content: "\f13c"; } 819 | 820 | .fa-css3-alt:before { 821 | content: "\f38b"; } 822 | 823 | .fa-cube:before { 824 | content: "\f1b2"; } 825 | 826 | .fa-cubes:before { 827 | content: "\f1b3"; } 828 | 829 | .fa-cut:before { 830 | content: "\f0c4"; } 831 | 832 | .fa-cuttlefish:before { 833 | content: "\f38c"; } 834 | 835 | .fa-d-and-d:before { 836 | content: "\f38d"; } 837 | 838 | .fa-dashcube:before { 839 | content: "\f210"; } 840 | 841 | .fa-database:before { 842 | content: "\f1c0"; } 843 | 844 | .fa-deaf:before { 845 | content: "\f2a4"; } 846 | 847 | .fa-delicious:before { 848 | content: "\f1a5"; } 849 | 850 | .fa-deploydog:before { 851 | content: "\f38e"; } 852 | 853 | .fa-deskpro:before { 854 | content: "\f38f"; } 855 | 856 | .fa-desktop:before { 857 | content: "\f108"; } 858 | 859 | .fa-deviantart:before { 860 | content: "\f1bd"; } 861 | 862 | .fa-digg:before { 863 | content: "\f1a6"; } 864 | 865 | .fa-digital-ocean:before { 866 | content: "\f391"; } 867 | 868 | .fa-discord:before { 869 | content: "\f392"; } 870 | 871 | .fa-discourse:before { 872 | content: "\f393"; } 873 | 874 | .fa-dna:before { 875 | content: "\f471"; } 876 | 877 | .fa-dochub:before { 878 | content: "\f394"; } 879 | 880 | .fa-docker:before { 881 | content: "\f395"; } 882 | 883 | .fa-dollar-sign:before { 884 | content: "\f155"; } 885 | 886 | .fa-dolly:before { 887 | content: "\f472"; } 888 | 889 | .fa-dolly-flatbed:before { 890 | content: "\f474"; } 891 | 892 | .fa-dot-circle:before { 893 | content: "\f192"; } 894 | 895 | .fa-download:before { 896 | content: "\f019"; } 897 | 898 | .fa-draft2digital:before { 899 | content: "\f396"; } 900 | 901 | .fa-dribbble:before { 902 | content: "\f17d"; } 903 | 904 | .fa-dribbble-square:before { 905 | content: "\f397"; } 906 | 907 | .fa-dropbox:before { 908 | content: "\f16b"; } 909 | 910 | .fa-drupal:before { 911 | content: "\f1a9"; } 912 | 913 | .fa-dyalog:before { 914 | content: "\f399"; } 915 | 916 | .fa-earlybirds:before { 917 | content: "\f39a"; } 918 | 919 | .fa-edge:before { 920 | content: "\f282"; } 921 | 922 | .fa-edit:before { 923 | content: "\f044"; } 924 | 925 | .fa-eject:before { 926 | content: "\f052"; } 927 | 928 | .fa-elementor:before { 929 | content: "\f430"; } 930 | 931 | .fa-ellipsis-h:before { 932 | content: "\f141"; } 933 | 934 | .fa-ellipsis-v:before { 935 | content: "\f142"; } 936 | 937 | .fa-ember:before { 938 | content: "\f423"; } 939 | 940 | .fa-empire:before { 941 | content: "\f1d1"; } 942 | 943 | .fa-envelope:before { 944 | content: "\f0e0"; } 945 | 946 | .fa-envelope-open:before { 947 | content: "\f2b6"; } 948 | 949 | .fa-envelope-square:before { 950 | content: "\f199"; } 951 | 952 | .fa-envira:before { 953 | content: "\f299"; } 954 | 955 | .fa-eraser:before { 956 | content: "\f12d"; } 957 | 958 | .fa-erlang:before { 959 | content: "\f39d"; } 960 | 961 | .fa-ethereum:before { 962 | content: "\f42e"; } 963 | 964 | .fa-etsy:before { 965 | content: "\f2d7"; } 966 | 967 | .fa-euro-sign:before { 968 | content: "\f153"; } 969 | 970 | .fa-exchange-alt:before { 971 | content: "\f362"; } 972 | 973 | .fa-exclamation:before { 974 | content: "\f12a"; } 975 | 976 | .fa-exclamation-circle:before { 977 | content: "\f06a"; } 978 | 979 | .fa-exclamation-triangle:before { 980 | content: "\f071"; } 981 | 982 | .fa-expand:before { 983 | content: "\f065"; } 984 | 985 | .fa-expand-arrows-alt:before { 986 | content: "\f31e"; } 987 | 988 | .fa-expeditedssl:before { 989 | content: "\f23e"; } 990 | 991 | .fa-external-link-alt:before { 992 | content: "\f35d"; } 993 | 994 | .fa-external-link-square-alt:before { 995 | content: "\f360"; } 996 | 997 | .fa-eye:before { 998 | content: "\f06e"; } 999 | 1000 | .fa-eye-dropper:before { 1001 | content: "\f1fb"; } 1002 | 1003 | .fa-eye-slash:before { 1004 | content: "\f070"; } 1005 | 1006 | .fa-facebook:before { 1007 | content: "\f09a"; } 1008 | 1009 | .fa-facebook-f:before { 1010 | content: "\f39e"; } 1011 | 1012 | .fa-facebook-messenger:before { 1013 | content: "\f39f"; } 1014 | 1015 | .fa-facebook-square:before { 1016 | content: "\f082"; } 1017 | 1018 | .fa-fast-backward:before { 1019 | content: "\f049"; } 1020 | 1021 | .fa-fast-forward:before { 1022 | content: "\f050"; } 1023 | 1024 | .fa-fax:before { 1025 | content: "\f1ac"; } 1026 | 1027 | .fa-female:before { 1028 | content: "\f182"; } 1029 | 1030 | .fa-fighter-jet:before { 1031 | content: "\f0fb"; } 1032 | 1033 | .fa-file:before { 1034 | content: "\f15b"; } 1035 | 1036 | .fa-file-alt:before { 1037 | content: "\f15c"; } 1038 | 1039 | .fa-file-archive:before { 1040 | content: "\f1c6"; } 1041 | 1042 | .fa-file-audio:before { 1043 | content: "\f1c7"; } 1044 | 1045 | .fa-file-code:before { 1046 | content: "\f1c9"; } 1047 | 1048 | .fa-file-excel:before { 1049 | content: "\f1c3"; } 1050 | 1051 | .fa-file-image:before { 1052 | content: "\f1c5"; } 1053 | 1054 | .fa-file-pdf:before { 1055 | content: "\f1c1"; } 1056 | 1057 | .fa-file-powerpoint:before { 1058 | content: "\f1c4"; } 1059 | 1060 | .fa-file-video:before { 1061 | content: "\f1c8"; } 1062 | 1063 | .fa-file-word:before { 1064 | content: "\f1c2"; } 1065 | 1066 | .fa-film:before { 1067 | content: "\f008"; } 1068 | 1069 | .fa-filter:before { 1070 | content: "\f0b0"; } 1071 | 1072 | .fa-fire:before { 1073 | content: "\f06d"; } 1074 | 1075 | .fa-fire-extinguisher:before { 1076 | content: "\f134"; } 1077 | 1078 | .fa-firefox:before { 1079 | content: "\f269"; } 1080 | 1081 | .fa-first-aid:before { 1082 | content: "\f479"; } 1083 | 1084 | .fa-first-order:before { 1085 | content: "\f2b0"; } 1086 | 1087 | .fa-firstdraft:before { 1088 | content: "\f3a1"; } 1089 | 1090 | .fa-flag:before { 1091 | content: "\f024"; } 1092 | 1093 | .fa-flag-checkered:before { 1094 | content: "\f11e"; } 1095 | 1096 | .fa-flask:before { 1097 | content: "\f0c3"; } 1098 | 1099 | .fa-flickr:before { 1100 | content: "\f16e"; } 1101 | 1102 | .fa-flipboard:before { 1103 | content: "\f44d"; } 1104 | 1105 | .fa-fly:before { 1106 | content: "\f417"; } 1107 | 1108 | .fa-folder:before { 1109 | content: "\f07b"; } 1110 | 1111 | .fa-folder-open:before { 1112 | content: "\f07c"; } 1113 | 1114 | .fa-font:before { 1115 | content: "\f031"; } 1116 | 1117 | .fa-font-awesome:before { 1118 | content: "\f2b4"; } 1119 | 1120 | .fa-font-awesome-alt:before { 1121 | content: "\f35c"; } 1122 | 1123 | .fa-font-awesome-flag:before { 1124 | content: "\f425"; } 1125 | 1126 | .fa-fonticons:before { 1127 | content: "\f280"; } 1128 | 1129 | .fa-fonticons-fi:before { 1130 | content: "\f3a2"; } 1131 | 1132 | .fa-football-ball:before { 1133 | content: "\f44e"; } 1134 | 1135 | .fa-fort-awesome:before { 1136 | content: "\f286"; } 1137 | 1138 | .fa-fort-awesome-alt:before { 1139 | content: "\f3a3"; } 1140 | 1141 | .fa-forumbee:before { 1142 | content: "\f211"; } 1143 | 1144 | .fa-forward:before { 1145 | content: "\f04e"; } 1146 | 1147 | .fa-foursquare:before { 1148 | content: "\f180"; } 1149 | 1150 | .fa-free-code-camp:before { 1151 | content: "\f2c5"; } 1152 | 1153 | .fa-freebsd:before { 1154 | content: "\f3a4"; } 1155 | 1156 | .fa-frown:before { 1157 | content: "\f119"; } 1158 | 1159 | .fa-futbol:before { 1160 | content: "\f1e3"; } 1161 | 1162 | .fa-gamepad:before { 1163 | content: "\f11b"; } 1164 | 1165 | .fa-gavel:before { 1166 | content: "\f0e3"; } 1167 | 1168 | .fa-gem:before { 1169 | content: "\f3a5"; } 1170 | 1171 | .fa-genderless:before { 1172 | content: "\f22d"; } 1173 | 1174 | .fa-get-pocket:before { 1175 | content: "\f265"; } 1176 | 1177 | .fa-gg:before { 1178 | content: "\f260"; } 1179 | 1180 | .fa-gg-circle:before { 1181 | content: "\f261"; } 1182 | 1183 | .fa-gift:before { 1184 | content: "\f06b"; } 1185 | 1186 | .fa-git:before { 1187 | content: "\f1d3"; } 1188 | 1189 | .fa-git-square:before { 1190 | content: "\f1d2"; } 1191 | 1192 | .fa-github:before { 1193 | content: "\f09b"; } 1194 | 1195 | .fa-github-alt:before { 1196 | content: "\f113"; } 1197 | 1198 | .fa-github-square:before { 1199 | content: "\f092"; } 1200 | 1201 | .fa-gitkraken:before { 1202 | content: "\f3a6"; } 1203 | 1204 | .fa-gitlab:before { 1205 | content: "\f296"; } 1206 | 1207 | .fa-gitter:before { 1208 | content: "\f426"; } 1209 | 1210 | .fa-glass-martini:before { 1211 | content: "\f000"; } 1212 | 1213 | .fa-glide:before { 1214 | content: "\f2a5"; } 1215 | 1216 | .fa-glide-g:before { 1217 | content: "\f2a6"; } 1218 | 1219 | .fa-globe:before { 1220 | content: "\f0ac"; } 1221 | 1222 | .fa-gofore:before { 1223 | content: "\f3a7"; } 1224 | 1225 | .fa-golf-ball:before { 1226 | content: "\f450"; } 1227 | 1228 | .fa-goodreads:before { 1229 | content: "\f3a8"; } 1230 | 1231 | .fa-goodreads-g:before { 1232 | content: "\f3a9"; } 1233 | 1234 | .fa-google:before { 1235 | content: "\f1a0"; } 1236 | 1237 | .fa-google-drive:before { 1238 | content: "\f3aa"; } 1239 | 1240 | .fa-google-play:before { 1241 | content: "\f3ab"; } 1242 | 1243 | .fa-google-plus:before { 1244 | content: "\f2b3"; } 1245 | 1246 | .fa-google-plus-g:before { 1247 | content: "\f0d5"; } 1248 | 1249 | .fa-google-plus-square:before { 1250 | content: "\f0d4"; } 1251 | 1252 | .fa-google-wallet:before { 1253 | content: "\f1ee"; } 1254 | 1255 | .fa-graduation-cap:before { 1256 | content: "\f19d"; } 1257 | 1258 | .fa-gratipay:before { 1259 | content: "\f184"; } 1260 | 1261 | .fa-grav:before { 1262 | content: "\f2d6"; } 1263 | 1264 | .fa-gripfire:before { 1265 | content: "\f3ac"; } 1266 | 1267 | .fa-grunt:before { 1268 | content: "\f3ad"; } 1269 | 1270 | .fa-gulp:before { 1271 | content: "\f3ae"; } 1272 | 1273 | .fa-h-square:before { 1274 | content: "\f0fd"; } 1275 | 1276 | .fa-hacker-news:before { 1277 | content: "\f1d4"; } 1278 | 1279 | .fa-hacker-news-square:before { 1280 | content: "\f3af"; } 1281 | 1282 | .fa-hand-lizard:before { 1283 | content: "\f258"; } 1284 | 1285 | .fa-hand-paper:before { 1286 | content: "\f256"; } 1287 | 1288 | .fa-hand-peace:before { 1289 | content: "\f25b"; } 1290 | 1291 | .fa-hand-point-down:before { 1292 | content: "\f0a7"; } 1293 | 1294 | .fa-hand-point-left:before { 1295 | content: "\f0a5"; } 1296 | 1297 | .fa-hand-point-right:before { 1298 | content: "\f0a4"; } 1299 | 1300 | .fa-hand-point-up:before { 1301 | content: "\f0a6"; } 1302 | 1303 | .fa-hand-pointer:before { 1304 | content: "\f25a"; } 1305 | 1306 | .fa-hand-rock:before { 1307 | content: "\f255"; } 1308 | 1309 | .fa-hand-scissors:before { 1310 | content: "\f257"; } 1311 | 1312 | .fa-hand-spock:before { 1313 | content: "\f259"; } 1314 | 1315 | .fa-handshake:before { 1316 | content: "\f2b5"; } 1317 | 1318 | .fa-hashtag:before { 1319 | content: "\f292"; } 1320 | 1321 | .fa-hdd:before { 1322 | content: "\f0a0"; } 1323 | 1324 | .fa-heading:before { 1325 | content: "\f1dc"; } 1326 | 1327 | .fa-headphones:before { 1328 | content: "\f025"; } 1329 | 1330 | .fa-heart:before { 1331 | content: "\f004"; } 1332 | 1333 | .fa-heartbeat:before { 1334 | content: "\f21e"; } 1335 | 1336 | .fa-hips:before { 1337 | content: "\f452"; } 1338 | 1339 | .fa-hire-a-helper:before { 1340 | content: "\f3b0"; } 1341 | 1342 | .fa-history:before { 1343 | content: "\f1da"; } 1344 | 1345 | .fa-hockey-puck:before { 1346 | content: "\f453"; } 1347 | 1348 | .fa-home:before { 1349 | content: "\f015"; } 1350 | 1351 | .fa-hooli:before { 1352 | content: "\f427"; } 1353 | 1354 | .fa-hospital:before { 1355 | content: "\f0f8"; } 1356 | 1357 | .fa-hospital-symbol:before { 1358 | content: "\f47e"; } 1359 | 1360 | .fa-hotjar:before { 1361 | content: "\f3b1"; } 1362 | 1363 | .fa-hourglass:before { 1364 | content: "\f254"; } 1365 | 1366 | .fa-hourglass-end:before { 1367 | content: "\f253"; } 1368 | 1369 | .fa-hourglass-half:before { 1370 | content: "\f252"; } 1371 | 1372 | .fa-hourglass-start:before { 1373 | content: "\f251"; } 1374 | 1375 | .fa-houzz:before { 1376 | content: "\f27c"; } 1377 | 1378 | .fa-html5:before { 1379 | content: "\f13b"; } 1380 | 1381 | .fa-hubspot:before { 1382 | content: "\f3b2"; } 1383 | 1384 | .fa-i-cursor:before { 1385 | content: "\f246"; } 1386 | 1387 | .fa-id-badge:before { 1388 | content: "\f2c1"; } 1389 | 1390 | .fa-id-card:before { 1391 | content: "\f2c2"; } 1392 | 1393 | .fa-image:before { 1394 | content: "\f03e"; } 1395 | 1396 | .fa-images:before { 1397 | content: "\f302"; } 1398 | 1399 | .fa-imdb:before { 1400 | content: "\f2d8"; } 1401 | 1402 | .fa-inbox:before { 1403 | content: "\f01c"; } 1404 | 1405 | .fa-indent:before { 1406 | content: "\f03c"; } 1407 | 1408 | .fa-industry:before { 1409 | content: "\f275"; } 1410 | 1411 | .fa-info:before { 1412 | content: "\f129"; } 1413 | 1414 | .fa-info-circle:before { 1415 | content: "\f05a"; } 1416 | 1417 | .fa-instagram:before { 1418 | content: "\f16d"; } 1419 | 1420 | .fa-internet-explorer:before { 1421 | content: "\f26b"; } 1422 | 1423 | .fa-ioxhost:before { 1424 | content: "\f208"; } 1425 | 1426 | .fa-italic:before { 1427 | content: "\f033"; } 1428 | 1429 | .fa-itunes:before { 1430 | content: "\f3b4"; } 1431 | 1432 | .fa-itunes-note:before { 1433 | content: "\f3b5"; } 1434 | 1435 | .fa-jenkins:before { 1436 | content: "\f3b6"; } 1437 | 1438 | .fa-joget:before { 1439 | content: "\f3b7"; } 1440 | 1441 | .fa-joomla:before { 1442 | content: "\f1aa"; } 1443 | 1444 | .fa-js:before { 1445 | content: "\f3b8"; } 1446 | 1447 | .fa-js-square:before { 1448 | content: "\f3b9"; } 1449 | 1450 | .fa-jsfiddle:before { 1451 | content: "\f1cc"; } 1452 | 1453 | .fa-key:before { 1454 | content: "\f084"; } 1455 | 1456 | .fa-keyboard:before { 1457 | content: "\f11c"; } 1458 | 1459 | .fa-keycdn:before { 1460 | content: "\f3ba"; } 1461 | 1462 | .fa-kickstarter:before { 1463 | content: "\f3bb"; } 1464 | 1465 | .fa-kickstarter-k:before { 1466 | content: "\f3bc"; } 1467 | 1468 | .fa-korvue:before { 1469 | content: "\f42f"; } 1470 | 1471 | .fa-language:before { 1472 | content: "\f1ab"; } 1473 | 1474 | .fa-laptop:before { 1475 | content: "\f109"; } 1476 | 1477 | .fa-laravel:before { 1478 | content: "\f3bd"; } 1479 | 1480 | .fa-lastfm:before { 1481 | content: "\f202"; } 1482 | 1483 | .fa-lastfm-square:before { 1484 | content: "\f203"; } 1485 | 1486 | .fa-leaf:before { 1487 | content: "\f06c"; } 1488 | 1489 | .fa-leanpub:before { 1490 | content: "\f212"; } 1491 | 1492 | .fa-lemon:before { 1493 | content: "\f094"; } 1494 | 1495 | .fa-less:before { 1496 | content: "\f41d"; } 1497 | 1498 | .fa-level-down-alt:before { 1499 | content: "\f3be"; } 1500 | 1501 | .fa-level-up-alt:before { 1502 | content: "\f3bf"; } 1503 | 1504 | .fa-life-ring:before { 1505 | content: "\f1cd"; } 1506 | 1507 | .fa-lightbulb:before { 1508 | content: "\f0eb"; } 1509 | 1510 | .fa-line:before { 1511 | content: "\f3c0"; } 1512 | 1513 | .fa-link:before { 1514 | content: "\f0c1"; } 1515 | 1516 | .fa-linkedin:before { 1517 | content: "\f08c"; } 1518 | 1519 | .fa-linkedin-in:before { 1520 | content: "\f0e1"; } 1521 | 1522 | .fa-linode:before { 1523 | content: "\f2b8"; } 1524 | 1525 | .fa-linux:before { 1526 | content: "\f17c"; } 1527 | 1528 | .fa-lira-sign:before { 1529 | content: "\f195"; } 1530 | 1531 | .fa-list:before { 1532 | content: "\f03a"; } 1533 | 1534 | .fa-list-alt:before { 1535 | content: "\f022"; } 1536 | 1537 | .fa-list-ol:before { 1538 | content: "\f0cb"; } 1539 | 1540 | .fa-list-ul:before { 1541 | content: "\f0ca"; } 1542 | 1543 | .fa-location-arrow:before { 1544 | content: "\f124"; } 1545 | 1546 | .fa-lock:before { 1547 | content: "\f023"; } 1548 | 1549 | .fa-lock-open:before { 1550 | content: "\f3c1"; } 1551 | 1552 | .fa-long-arrow-alt-down:before { 1553 | content: "\f309"; } 1554 | 1555 | .fa-long-arrow-alt-left:before { 1556 | content: "\f30a"; } 1557 | 1558 | .fa-long-arrow-alt-right:before { 1559 | content: "\f30b"; } 1560 | 1561 | .fa-long-arrow-alt-up:before { 1562 | content: "\f30c"; } 1563 | 1564 | .fa-low-vision:before { 1565 | content: "\f2a8"; } 1566 | 1567 | .fa-lyft:before { 1568 | content: "\f3c3"; } 1569 | 1570 | .fa-magento:before { 1571 | content: "\f3c4"; } 1572 | 1573 | .fa-magic:before { 1574 | content: "\f0d0"; } 1575 | 1576 | .fa-magnet:before { 1577 | content: "\f076"; } 1578 | 1579 | .fa-male:before { 1580 | content: "\f183"; } 1581 | 1582 | .fa-map:before { 1583 | content: "\f279"; } 1584 | 1585 | .fa-map-marker:before { 1586 | content: "\f041"; } 1587 | 1588 | .fa-map-marker-alt:before { 1589 | content: "\f3c5"; } 1590 | 1591 | .fa-map-pin:before { 1592 | content: "\f276"; } 1593 | 1594 | .fa-map-signs:before { 1595 | content: "\f277"; } 1596 | 1597 | .fa-mars:before { 1598 | content: "\f222"; } 1599 | 1600 | .fa-mars-double:before { 1601 | content: "\f227"; } 1602 | 1603 | .fa-mars-stroke:before { 1604 | content: "\f229"; } 1605 | 1606 | .fa-mars-stroke-h:before { 1607 | content: "\f22b"; } 1608 | 1609 | .fa-mars-stroke-v:before { 1610 | content: "\f22a"; } 1611 | 1612 | .fa-maxcdn:before { 1613 | content: "\f136"; } 1614 | 1615 | .fa-medapps:before { 1616 | content: "\f3c6"; } 1617 | 1618 | .fa-medium:before { 1619 | content: "\f23a"; } 1620 | 1621 | .fa-medium-m:before { 1622 | content: "\f3c7"; } 1623 | 1624 | .fa-medkit:before { 1625 | content: "\f0fa"; } 1626 | 1627 | .fa-medrt:before { 1628 | content: "\f3c8"; } 1629 | 1630 | .fa-meetup:before { 1631 | content: "\f2e0"; } 1632 | 1633 | .fa-meh:before { 1634 | content: "\f11a"; } 1635 | 1636 | .fa-mercury:before { 1637 | content: "\f223"; } 1638 | 1639 | .fa-microchip:before { 1640 | content: "\f2db"; } 1641 | 1642 | .fa-microphone:before { 1643 | content: "\f130"; } 1644 | 1645 | .fa-microphone-slash:before { 1646 | content: "\f131"; } 1647 | 1648 | .fa-microsoft:before { 1649 | content: "\f3ca"; } 1650 | 1651 | .fa-minus:before { 1652 | content: "\f068"; } 1653 | 1654 | .fa-minus-circle:before { 1655 | content: "\f056"; } 1656 | 1657 | .fa-minus-square:before { 1658 | content: "\f146"; } 1659 | 1660 | .fa-mix:before { 1661 | content: "\f3cb"; } 1662 | 1663 | .fa-mixcloud:before { 1664 | content: "\f289"; } 1665 | 1666 | .fa-mizuni:before { 1667 | content: "\f3cc"; } 1668 | 1669 | .fa-mobile:before { 1670 | content: "\f10b"; } 1671 | 1672 | .fa-mobile-alt:before { 1673 | content: "\f3cd"; } 1674 | 1675 | .fa-modx:before { 1676 | content: "\f285"; } 1677 | 1678 | .fa-monero:before { 1679 | content: "\f3d0"; } 1680 | 1681 | .fa-money-bill-alt:before { 1682 | content: "\f3d1"; } 1683 | 1684 | .fa-moon:before { 1685 | content: "\f186"; } 1686 | 1687 | .fa-motorcycle:before { 1688 | content: "\f21c"; } 1689 | 1690 | .fa-mouse-pointer:before { 1691 | content: "\f245"; } 1692 | 1693 | .fa-music:before { 1694 | content: "\f001"; } 1695 | 1696 | .fa-napster:before { 1697 | content: "\f3d2"; } 1698 | 1699 | .fa-neuter:before { 1700 | content: "\f22c"; } 1701 | 1702 | .fa-newspaper:before { 1703 | content: "\f1ea"; } 1704 | 1705 | .fa-nintendo-switch:before { 1706 | content: "\f418"; } 1707 | 1708 | .fa-node:before { 1709 | content: "\f419"; } 1710 | 1711 | .fa-node-js:before { 1712 | content: "\f3d3"; } 1713 | 1714 | .fa-npm:before { 1715 | content: "\f3d4"; } 1716 | 1717 | .fa-ns8:before { 1718 | content: "\f3d5"; } 1719 | 1720 | .fa-nutritionix:before { 1721 | content: "\f3d6"; } 1722 | 1723 | .fa-object-group:before { 1724 | content: "\f247"; } 1725 | 1726 | .fa-object-ungroup:before { 1727 | content: "\f248"; } 1728 | 1729 | .fa-odnoklassniki:before { 1730 | content: "\f263"; } 1731 | 1732 | .fa-odnoklassniki-square:before { 1733 | content: "\f264"; } 1734 | 1735 | .fa-opencart:before { 1736 | content: "\f23d"; } 1737 | 1738 | .fa-openid:before { 1739 | content: "\f19b"; } 1740 | 1741 | .fa-opera:before { 1742 | content: "\f26a"; } 1743 | 1744 | .fa-optin-monster:before { 1745 | content: "\f23c"; } 1746 | 1747 | .fa-osi:before { 1748 | content: "\f41a"; } 1749 | 1750 | .fa-outdent:before { 1751 | content: "\f03b"; } 1752 | 1753 | .fa-page4:before { 1754 | content: "\f3d7"; } 1755 | 1756 | .fa-pagelines:before { 1757 | content: "\f18c"; } 1758 | 1759 | .fa-paint-brush:before { 1760 | content: "\f1fc"; } 1761 | 1762 | .fa-palfed:before { 1763 | content: "\f3d8"; } 1764 | 1765 | .fa-pallet:before { 1766 | content: "\f482"; } 1767 | 1768 | .fa-paper-plane:before { 1769 | content: "\f1d8"; } 1770 | 1771 | .fa-paperclip:before { 1772 | content: "\f0c6"; } 1773 | 1774 | .fa-paragraph:before { 1775 | content: "\f1dd"; } 1776 | 1777 | .fa-paste:before { 1778 | content: "\f0ea"; } 1779 | 1780 | .fa-patreon:before { 1781 | content: "\f3d9"; } 1782 | 1783 | .fa-pause:before { 1784 | content: "\f04c"; } 1785 | 1786 | .fa-pause-circle:before { 1787 | content: "\f28b"; } 1788 | 1789 | .fa-paw:before { 1790 | content: "\f1b0"; } 1791 | 1792 | .fa-paypal:before { 1793 | content: "\f1ed"; } 1794 | 1795 | .fa-pen-square:before { 1796 | content: "\f14b"; } 1797 | 1798 | .fa-pencil-alt:before { 1799 | content: "\f303"; } 1800 | 1801 | .fa-percent:before { 1802 | content: "\f295"; } 1803 | 1804 | .fa-periscope:before { 1805 | content: "\f3da"; } 1806 | 1807 | .fa-phabricator:before { 1808 | content: "\f3db"; } 1809 | 1810 | .fa-phoenix-framework:before { 1811 | content: "\f3dc"; } 1812 | 1813 | .fa-phone:before { 1814 | content: "\f095"; } 1815 | 1816 | .fa-phone-square:before { 1817 | content: "\f098"; } 1818 | 1819 | .fa-phone-volume:before { 1820 | content: "\f2a0"; } 1821 | 1822 | .fa-php:before { 1823 | content: "\f457"; } 1824 | 1825 | .fa-pied-piper:before { 1826 | content: "\f2ae"; } 1827 | 1828 | .fa-pied-piper-alt:before { 1829 | content: "\f1a8"; } 1830 | 1831 | .fa-pied-piper-pp:before { 1832 | content: "\f1a7"; } 1833 | 1834 | .fa-pills:before { 1835 | content: "\f484"; } 1836 | 1837 | .fa-pinterest:before { 1838 | content: "\f0d2"; } 1839 | 1840 | .fa-pinterest-p:before { 1841 | content: "\f231"; } 1842 | 1843 | .fa-pinterest-square:before { 1844 | content: "\f0d3"; } 1845 | 1846 | .fa-plane:before { 1847 | content: "\f072"; } 1848 | 1849 | .fa-play:before { 1850 | content: "\f04b"; } 1851 | 1852 | .fa-play-circle:before { 1853 | content: "\f144"; } 1854 | 1855 | .fa-playstation:before { 1856 | content: "\f3df"; } 1857 | 1858 | .fa-plug:before { 1859 | content: "\f1e6"; } 1860 | 1861 | .fa-plus:before { 1862 | content: "\f067"; } 1863 | 1864 | .fa-plus-circle:before { 1865 | content: "\f055"; } 1866 | 1867 | .fa-plus-square:before { 1868 | content: "\f0fe"; } 1869 | 1870 | .fa-podcast:before { 1871 | content: "\f2ce"; } 1872 | 1873 | .fa-pound-sign:before { 1874 | content: "\f154"; } 1875 | 1876 | .fa-power-off:before { 1877 | content: "\f011"; } 1878 | 1879 | .fa-print:before { 1880 | content: "\f02f"; } 1881 | 1882 | .fa-product-hunt:before { 1883 | content: "\f288"; } 1884 | 1885 | .fa-pushed:before { 1886 | content: "\f3e1"; } 1887 | 1888 | .fa-puzzle-piece:before { 1889 | content: "\f12e"; } 1890 | 1891 | .fa-python:before { 1892 | content: "\f3e2"; } 1893 | 1894 | .fa-qq:before { 1895 | content: "\f1d6"; } 1896 | 1897 | .fa-qrcode:before { 1898 | content: "\f029"; } 1899 | 1900 | .fa-question:before { 1901 | content: "\f128"; } 1902 | 1903 | .fa-question-circle:before { 1904 | content: "\f059"; } 1905 | 1906 | .fa-quidditch:before { 1907 | content: "\f458"; } 1908 | 1909 | .fa-quinscape:before { 1910 | content: "\f459"; } 1911 | 1912 | .fa-quora:before { 1913 | content: "\f2c4"; } 1914 | 1915 | .fa-quote-left:before { 1916 | content: "\f10d"; } 1917 | 1918 | .fa-quote-right:before { 1919 | content: "\f10e"; } 1920 | 1921 | .fa-random:before { 1922 | content: "\f074"; } 1923 | 1924 | .fa-ravelry:before { 1925 | content: "\f2d9"; } 1926 | 1927 | .fa-react:before { 1928 | content: "\f41b"; } 1929 | 1930 | .fa-rebel:before { 1931 | content: "\f1d0"; } 1932 | 1933 | .fa-recycle:before { 1934 | content: "\f1b8"; } 1935 | 1936 | .fa-red-river:before { 1937 | content: "\f3e3"; } 1938 | 1939 | .fa-reddit:before { 1940 | content: "\f1a1"; } 1941 | 1942 | .fa-reddit-alien:before { 1943 | content: "\f281"; } 1944 | 1945 | .fa-reddit-square:before { 1946 | content: "\f1a2"; } 1947 | 1948 | .fa-redo:before { 1949 | content: "\f01e"; } 1950 | 1951 | .fa-redo-alt:before { 1952 | content: "\f2f9"; } 1953 | 1954 | .fa-registered:before { 1955 | content: "\f25d"; } 1956 | 1957 | .fa-rendact:before { 1958 | content: "\f3e4"; } 1959 | 1960 | .fa-renren:before { 1961 | content: "\f18b"; } 1962 | 1963 | .fa-reply:before { 1964 | content: "\f3e5"; } 1965 | 1966 | .fa-reply-all:before { 1967 | content: "\f122"; } 1968 | 1969 | .fa-replyd:before { 1970 | content: "\f3e6"; } 1971 | 1972 | .fa-resolving:before { 1973 | content: "\f3e7"; } 1974 | 1975 | .fa-retweet:before { 1976 | content: "\f079"; } 1977 | 1978 | .fa-road:before { 1979 | content: "\f018"; } 1980 | 1981 | .fa-rocket:before { 1982 | content: "\f135"; } 1983 | 1984 | .fa-rocketchat:before { 1985 | content: "\f3e8"; } 1986 | 1987 | .fa-rockrms:before { 1988 | content: "\f3e9"; } 1989 | 1990 | .fa-rss:before { 1991 | content: "\f09e"; } 1992 | 1993 | .fa-rss-square:before { 1994 | content: "\f143"; } 1995 | 1996 | .fa-ruble-sign:before { 1997 | content: "\f158"; } 1998 | 1999 | .fa-rupee-sign:before { 2000 | content: "\f156"; } 2001 | 2002 | .fa-safari:before { 2003 | content: "\f267"; } 2004 | 2005 | .fa-sass:before { 2006 | content: "\f41e"; } 2007 | 2008 | .fa-save:before { 2009 | content: "\f0c7"; } 2010 | 2011 | .fa-schlix:before { 2012 | content: "\f3ea"; } 2013 | 2014 | .fa-scribd:before { 2015 | content: "\f28a"; } 2016 | 2017 | .fa-search:before { 2018 | content: "\f002"; } 2019 | 2020 | .fa-search-minus:before { 2021 | content: "\f010"; } 2022 | 2023 | .fa-search-plus:before { 2024 | content: "\f00e"; } 2025 | 2026 | .fa-searchengin:before { 2027 | content: "\f3eb"; } 2028 | 2029 | .fa-sellcast:before { 2030 | content: "\f2da"; } 2031 | 2032 | .fa-sellsy:before { 2033 | content: "\f213"; } 2034 | 2035 | .fa-server:before { 2036 | content: "\f233"; } 2037 | 2038 | .fa-servicestack:before { 2039 | content: "\f3ec"; } 2040 | 2041 | .fa-share:before { 2042 | content: "\f064"; } 2043 | 2044 | .fa-share-alt:before { 2045 | content: "\f1e0"; } 2046 | 2047 | .fa-share-alt-square:before { 2048 | content: "\f1e1"; } 2049 | 2050 | .fa-share-square:before { 2051 | content: "\f14d"; } 2052 | 2053 | .fa-shekel-sign:before { 2054 | content: "\f20b"; } 2055 | 2056 | .fa-shield-alt:before { 2057 | content: "\f3ed"; } 2058 | 2059 | .fa-ship:before { 2060 | content: "\f21a"; } 2061 | 2062 | .fa-shipping-fast:before { 2063 | content: "\f48b"; } 2064 | 2065 | .fa-shirtsinbulk:before { 2066 | content: "\f214"; } 2067 | 2068 | .fa-shopping-bag:before { 2069 | content: "\f290"; } 2070 | 2071 | .fa-shopping-basket:before { 2072 | content: "\f291"; } 2073 | 2074 | .fa-shopping-cart:before { 2075 | content: "\f07a"; } 2076 | 2077 | .fa-shower:before { 2078 | content: "\f2cc"; } 2079 | 2080 | .fa-sign-in-alt:before { 2081 | content: "\f2f6"; } 2082 | 2083 | .fa-sign-language:before { 2084 | content: "\f2a7"; } 2085 | 2086 | .fa-sign-out-alt:before { 2087 | content: "\f2f5"; } 2088 | 2089 | .fa-signal:before { 2090 | content: "\f012"; } 2091 | 2092 | .fa-simplybuilt:before { 2093 | content: "\f215"; } 2094 | 2095 | .fa-sistrix:before { 2096 | content: "\f3ee"; } 2097 | 2098 | .fa-sitemap:before { 2099 | content: "\f0e8"; } 2100 | 2101 | .fa-skyatlas:before { 2102 | content: "\f216"; } 2103 | 2104 | .fa-skype:before { 2105 | content: "\f17e"; } 2106 | 2107 | .fa-slack:before { 2108 | content: "\f198"; } 2109 | 2110 | .fa-slack-hash:before { 2111 | content: "\f3ef"; } 2112 | 2113 | .fa-sliders-h:before { 2114 | content: "\f1de"; } 2115 | 2116 | .fa-slideshare:before { 2117 | content: "\f1e7"; } 2118 | 2119 | .fa-smile:before { 2120 | content: "\f118"; } 2121 | 2122 | .fa-snapchat:before { 2123 | content: "\f2ab"; } 2124 | 2125 | .fa-snapchat-ghost:before { 2126 | content: "\f2ac"; } 2127 | 2128 | .fa-snapchat-square:before { 2129 | content: "\f2ad"; } 2130 | 2131 | .fa-snowflake:before { 2132 | content: "\f2dc"; } 2133 | 2134 | .fa-sort:before { 2135 | content: "\f0dc"; } 2136 | 2137 | .fa-sort-alpha-down:before { 2138 | content: "\f15d"; } 2139 | 2140 | .fa-sort-alpha-up:before { 2141 | content: "\f15e"; } 2142 | 2143 | .fa-sort-amount-down:before { 2144 | content: "\f160"; } 2145 | 2146 | .fa-sort-amount-up:before { 2147 | content: "\f161"; } 2148 | 2149 | .fa-sort-down:before { 2150 | content: "\f0dd"; } 2151 | 2152 | .fa-sort-numeric-down:before { 2153 | content: "\f162"; } 2154 | 2155 | .fa-sort-numeric-up:before { 2156 | content: "\f163"; } 2157 | 2158 | .fa-sort-up:before { 2159 | content: "\f0de"; } 2160 | 2161 | .fa-soundcloud:before { 2162 | content: "\f1be"; } 2163 | 2164 | .fa-space-shuttle:before { 2165 | content: "\f197"; } 2166 | 2167 | .fa-speakap:before { 2168 | content: "\f3f3"; } 2169 | 2170 | .fa-spinner:before { 2171 | content: "\f110"; } 2172 | 2173 | .fa-spotify:before { 2174 | content: "\f1bc"; } 2175 | 2176 | .fa-square:before { 2177 | content: "\f0c8"; } 2178 | 2179 | .fa-square-full:before { 2180 | content: "\f45c"; } 2181 | 2182 | .fa-stack-exchange:before { 2183 | content: "\f18d"; } 2184 | 2185 | .fa-stack-overflow:before { 2186 | content: "\f16c"; } 2187 | 2188 | .fa-star:before { 2189 | content: "\f005"; } 2190 | 2191 | .fa-star-half:before { 2192 | content: "\f089"; } 2193 | 2194 | .fa-staylinked:before { 2195 | content: "\f3f5"; } 2196 | 2197 | .fa-steam:before { 2198 | content: "\f1b6"; } 2199 | 2200 | .fa-steam-square:before { 2201 | content: "\f1b7"; } 2202 | 2203 | .fa-steam-symbol:before { 2204 | content: "\f3f6"; } 2205 | 2206 | .fa-step-backward:before { 2207 | content: "\f048"; } 2208 | 2209 | .fa-step-forward:before { 2210 | content: "\f051"; } 2211 | 2212 | .fa-stethoscope:before { 2213 | content: "\f0f1"; } 2214 | 2215 | .fa-sticker-mule:before { 2216 | content: "\f3f7"; } 2217 | 2218 | .fa-sticky-note:before { 2219 | content: "\f249"; } 2220 | 2221 | .fa-stop:before { 2222 | content: "\f04d"; } 2223 | 2224 | .fa-stop-circle:before { 2225 | content: "\f28d"; } 2226 | 2227 | .fa-stopwatch:before { 2228 | content: "\f2f2"; } 2229 | 2230 | .fa-strava:before { 2231 | content: "\f428"; } 2232 | 2233 | .fa-street-view:before { 2234 | content: "\f21d"; } 2235 | 2236 | .fa-strikethrough:before { 2237 | content: "\f0cc"; } 2238 | 2239 | .fa-stripe:before { 2240 | content: "\f429"; } 2241 | 2242 | .fa-stripe-s:before { 2243 | content: "\f42a"; } 2244 | 2245 | .fa-studiovinari:before { 2246 | content: "\f3f8"; } 2247 | 2248 | .fa-stumbleupon:before { 2249 | content: "\f1a4"; } 2250 | 2251 | .fa-stumbleupon-circle:before { 2252 | content: "\f1a3"; } 2253 | 2254 | .fa-subscript:before { 2255 | content: "\f12c"; } 2256 | 2257 | .fa-subway:before { 2258 | content: "\f239"; } 2259 | 2260 | .fa-suitcase:before { 2261 | content: "\f0f2"; } 2262 | 2263 | .fa-sun:before { 2264 | content: "\f185"; } 2265 | 2266 | .fa-superpowers:before { 2267 | content: "\f2dd"; } 2268 | 2269 | .fa-superscript:before { 2270 | content: "\f12b"; } 2271 | 2272 | .fa-supple:before { 2273 | content: "\f3f9"; } 2274 | 2275 | .fa-sync:before { 2276 | content: "\f021"; } 2277 | 2278 | .fa-sync-alt:before { 2279 | content: "\f2f1"; } 2280 | 2281 | .fa-syringe:before { 2282 | content: "\f48e"; } 2283 | 2284 | .fa-table:before { 2285 | content: "\f0ce"; } 2286 | 2287 | .fa-table-tennis:before { 2288 | content: "\f45d"; } 2289 | 2290 | .fa-tablet:before { 2291 | content: "\f10a"; } 2292 | 2293 | .fa-tablet-alt:before { 2294 | content: "\f3fa"; } 2295 | 2296 | .fa-tachometer-alt:before { 2297 | content: "\f3fd"; } 2298 | 2299 | .fa-tag:before { 2300 | content: "\f02b"; } 2301 | 2302 | .fa-tags:before { 2303 | content: "\f02c"; } 2304 | 2305 | .fa-tasks:before { 2306 | content: "\f0ae"; } 2307 | 2308 | .fa-taxi:before { 2309 | content: "\f1ba"; } 2310 | 2311 | .fa-telegram:before { 2312 | content: "\f2c6"; } 2313 | 2314 | .fa-telegram-plane:before { 2315 | content: "\f3fe"; } 2316 | 2317 | .fa-tencent-weibo:before { 2318 | content: "\f1d5"; } 2319 | 2320 | .fa-terminal:before { 2321 | content: "\f120"; } 2322 | 2323 | .fa-text-height:before { 2324 | content: "\f034"; } 2325 | 2326 | .fa-text-width:before { 2327 | content: "\f035"; } 2328 | 2329 | .fa-th:before { 2330 | content: "\f00a"; } 2331 | 2332 | .fa-th-large:before { 2333 | content: "\f009"; } 2334 | 2335 | .fa-th-list:before { 2336 | content: "\f00b"; } 2337 | 2338 | .fa-themeisle:before { 2339 | content: "\f2b2"; } 2340 | 2341 | .fa-thermometer:before { 2342 | content: "\f491"; } 2343 | 2344 | .fa-thermometer-empty:before { 2345 | content: "\f2cb"; } 2346 | 2347 | .fa-thermometer-full:before { 2348 | content: "\f2c7"; } 2349 | 2350 | .fa-thermometer-half:before { 2351 | content: "\f2c9"; } 2352 | 2353 | .fa-thermometer-quarter:before { 2354 | content: "\f2ca"; } 2355 | 2356 | .fa-thermometer-three-quarters:before { 2357 | content: "\f2c8"; } 2358 | 2359 | .fa-thumbs-down:before { 2360 | content: "\f165"; } 2361 | 2362 | .fa-thumbs-up:before { 2363 | content: "\f164"; } 2364 | 2365 | .fa-thumbtack:before { 2366 | content: "\f08d"; } 2367 | 2368 | .fa-ticket-alt:before { 2369 | content: "\f3ff"; } 2370 | 2371 | .fa-times:before { 2372 | content: "\f00d"; } 2373 | 2374 | .fa-times-circle:before { 2375 | content: "\f057"; } 2376 | 2377 | .fa-tint:before { 2378 | content: "\f043"; } 2379 | 2380 | .fa-toggle-off:before { 2381 | content: "\f204"; } 2382 | 2383 | .fa-toggle-on:before { 2384 | content: "\f205"; } 2385 | 2386 | .fa-trademark:before { 2387 | content: "\f25c"; } 2388 | 2389 | .fa-train:before { 2390 | content: "\f238"; } 2391 | 2392 | .fa-transgender:before { 2393 | content: "\f224"; } 2394 | 2395 | .fa-transgender-alt:before { 2396 | content: "\f225"; } 2397 | 2398 | .fa-trash:before { 2399 | content: "\f1f8"; } 2400 | 2401 | .fa-trash-alt:before { 2402 | content: "\f2ed"; } 2403 | 2404 | .fa-tree:before { 2405 | content: "\f1bb"; } 2406 | 2407 | .fa-trello:before { 2408 | content: "\f181"; } 2409 | 2410 | .fa-tripadvisor:before { 2411 | content: "\f262"; } 2412 | 2413 | .fa-trophy:before { 2414 | content: "\f091"; } 2415 | 2416 | .fa-truck:before { 2417 | content: "\f0d1"; } 2418 | 2419 | .fa-tty:before { 2420 | content: "\f1e4"; } 2421 | 2422 | .fa-tumblr:before { 2423 | content: "\f173"; } 2424 | 2425 | .fa-tumblr-square:before { 2426 | content: "\f174"; } 2427 | 2428 | .fa-tv:before { 2429 | content: "\f26c"; } 2430 | 2431 | .fa-twitch:before { 2432 | content: "\f1e8"; } 2433 | 2434 | .fa-twitter:before { 2435 | content: "\f099"; } 2436 | 2437 | .fa-twitter-square:before { 2438 | content: "\f081"; } 2439 | 2440 | .fa-typo3:before { 2441 | content: "\f42b"; } 2442 | 2443 | .fa-uber:before { 2444 | content: "\f402"; } 2445 | 2446 | .fa-uikit:before { 2447 | content: "\f403"; } 2448 | 2449 | .fa-umbrella:before { 2450 | content: "\f0e9"; } 2451 | 2452 | .fa-underline:before { 2453 | content: "\f0cd"; } 2454 | 2455 | .fa-undo:before { 2456 | content: "\f0e2"; } 2457 | 2458 | .fa-undo-alt:before { 2459 | content: "\f2ea"; } 2460 | 2461 | .fa-uniregistry:before { 2462 | content: "\f404"; } 2463 | 2464 | .fa-universal-access:before { 2465 | content: "\f29a"; } 2466 | 2467 | .fa-university:before { 2468 | content: "\f19c"; } 2469 | 2470 | .fa-unlink:before { 2471 | content: "\f127"; } 2472 | 2473 | .fa-unlock:before { 2474 | content: "\f09c"; } 2475 | 2476 | .fa-unlock-alt:before { 2477 | content: "\f13e"; } 2478 | 2479 | .fa-untappd:before { 2480 | content: "\f405"; } 2481 | 2482 | .fa-upload:before { 2483 | content: "\f093"; } 2484 | 2485 | .fa-usb:before { 2486 | content: "\f287"; } 2487 | 2488 | .fa-user:before { 2489 | content: "\f007"; } 2490 | 2491 | .fa-user-circle:before { 2492 | content: "\f2bd"; } 2493 | 2494 | .fa-user-md:before { 2495 | content: "\f0f0"; } 2496 | 2497 | .fa-user-plus:before { 2498 | content: "\f234"; } 2499 | 2500 | .fa-user-secret:before { 2501 | content: "\f21b"; } 2502 | 2503 | .fa-user-times:before { 2504 | content: "\f235"; } 2505 | 2506 | .fa-users:before { 2507 | content: "\f0c0"; } 2508 | 2509 | .fa-ussunnah:before { 2510 | content: "\f407"; } 2511 | 2512 | .fa-utensil-spoon:before { 2513 | content: "\f2e5"; } 2514 | 2515 | .fa-utensils:before { 2516 | content: "\f2e7"; } 2517 | 2518 | .fa-vaadin:before { 2519 | content: "\f408"; } 2520 | 2521 | .fa-venus:before { 2522 | content: "\f221"; } 2523 | 2524 | .fa-venus-double:before { 2525 | content: "\f226"; } 2526 | 2527 | .fa-venus-mars:before { 2528 | content: "\f228"; } 2529 | 2530 | .fa-viacoin:before { 2531 | content: "\f237"; } 2532 | 2533 | .fa-viadeo:before { 2534 | content: "\f2a9"; } 2535 | 2536 | .fa-viadeo-square:before { 2537 | content: "\f2aa"; } 2538 | 2539 | .fa-viber:before { 2540 | content: "\f409"; } 2541 | 2542 | .fa-video:before { 2543 | content: "\f03d"; } 2544 | 2545 | .fa-vimeo:before { 2546 | content: "\f40a"; } 2547 | 2548 | .fa-vimeo-square:before { 2549 | content: "\f194"; } 2550 | 2551 | .fa-vimeo-v:before { 2552 | content: "\f27d"; } 2553 | 2554 | .fa-vine:before { 2555 | content: "\f1ca"; } 2556 | 2557 | .fa-vk:before { 2558 | content: "\f189"; } 2559 | 2560 | .fa-vnv:before { 2561 | content: "\f40b"; } 2562 | 2563 | .fa-volleyball-ball:before { 2564 | content: "\f45f"; } 2565 | 2566 | .fa-volume-down:before { 2567 | content: "\f027"; } 2568 | 2569 | .fa-volume-off:before { 2570 | content: "\f026"; } 2571 | 2572 | .fa-volume-up:before { 2573 | content: "\f028"; } 2574 | 2575 | .fa-vuejs:before { 2576 | content: "\f41f"; } 2577 | 2578 | .fa-warehouse:before { 2579 | content: "\f494"; } 2580 | 2581 | .fa-weibo:before { 2582 | content: "\f18a"; } 2583 | 2584 | .fa-weight:before { 2585 | content: "\f496"; } 2586 | 2587 | .fa-weixin:before { 2588 | content: "\f1d7"; } 2589 | 2590 | .fa-whatsapp:before { 2591 | content: "\f232"; } 2592 | 2593 | .fa-whatsapp-square:before { 2594 | content: "\f40c"; } 2595 | 2596 | .fa-wheelchair:before { 2597 | content: "\f193"; } 2598 | 2599 | .fa-whmcs:before { 2600 | content: "\f40d"; } 2601 | 2602 | .fa-wifi:before { 2603 | content: "\f1eb"; } 2604 | 2605 | .fa-wikipedia-w:before { 2606 | content: "\f266"; } 2607 | 2608 | .fa-window-close:before { 2609 | content: "\f410"; } 2610 | 2611 | .fa-window-maximize:before { 2612 | content: "\f2d0"; } 2613 | 2614 | .fa-window-minimize:before { 2615 | content: "\f2d1"; } 2616 | 2617 | .fa-window-restore:before { 2618 | content: "\f2d2"; } 2619 | 2620 | .fa-windows:before { 2621 | content: "\f17a"; } 2622 | 2623 | .fa-won-sign:before { 2624 | content: "\f159"; } 2625 | 2626 | .fa-wordpress:before { 2627 | content: "\f19a"; } 2628 | 2629 | .fa-wordpress-simple:before { 2630 | content: "\f411"; } 2631 | 2632 | .fa-wpbeginner:before { 2633 | content: "\f297"; } 2634 | 2635 | .fa-wpexplorer:before { 2636 | content: "\f2de"; } 2637 | 2638 | .fa-wpforms:before { 2639 | content: "\f298"; } 2640 | 2641 | .fa-wrench:before { 2642 | content: "\f0ad"; } 2643 | 2644 | .fa-xbox:before { 2645 | content: "\f412"; } 2646 | 2647 | .fa-xing:before { 2648 | content: "\f168"; } 2649 | 2650 | .fa-xing-square:before { 2651 | content: "\f169"; } 2652 | 2653 | .fa-y-combinator:before { 2654 | content: "\f23b"; } 2655 | 2656 | .fa-yahoo:before { 2657 | content: "\f19e"; } 2658 | 2659 | .fa-yandex:before { 2660 | content: "\f413"; } 2661 | 2662 | .fa-yandex-international:before { 2663 | content: "\f414"; } 2664 | 2665 | .fa-yelp:before { 2666 | content: "\f1e9"; } 2667 | 2668 | .fa-yen-sign:before { 2669 | content: "\f157"; } 2670 | 2671 | .fa-yoast:before { 2672 | content: "\f2b1"; } 2673 | 2674 | .fa-youtube:before { 2675 | content: "\f167"; } 2676 | 2677 | .fa-youtube-square:before { 2678 | content: "\f431"; } 2679 | 2680 | .sr-only { 2681 | border: 0; 2682 | clip: rect(0, 0, 0, 0); 2683 | height: 1px; 2684 | margin: -1px; 2685 | overflow: hidden; 2686 | padding: 0; 2687 | position: absolute; 2688 | width: 1px; } 2689 | 2690 | .sr-only-focusable:active, .sr-only-focusable:focus { 2691 | clip: auto; 2692 | height: auto; 2693 | margin: 0; 2694 | overflow: visible; 2695 | position: static; 2696 | width: auto; } 2697 | @font-face { 2698 | font-family: 'Font Awesome 5 Brands'; 2699 | font-style: normal; 2700 | font-weight: normal; 2701 | src: url("../webfonts/fa-brands-400.eot"); 2702 | src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } 2703 | 2704 | .fab { 2705 | font-family: 'Font Awesome 5 Brands'; } 2706 | @font-face { 2707 | font-family: 'Font Awesome 5 Free'; 2708 | font-style: normal; 2709 | font-weight: 400; 2710 | src: url("../webfonts/fa-regular-400.eot"); 2711 | src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } 2712 | 2713 | .far { 2714 | font-family: 'Font Awesome 5 Free'; 2715 | font-weight: 400; } 2716 | @font-face { 2717 | font-family: 'Font Awesome 5 Free'; 2718 | font-style: normal; 2719 | font-weight: 900; 2720 | src: url("../webfonts/fa-solid-900.eot"); 2721 | src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } 2722 | 2723 | .fa, 2724 | .fas { 2725 | font-family: 'Font Awesome 5 Free'; 2726 | font-weight: 900; } 2727 | --------------------------------------------------------------------------------