Stand up Print Forge as a 3D-printed toy shop with color variants and printer photography.
Replaces the client_site template branding, adds shop/shipping, and points beta CI at master for easy deploy. Closes #1
No files matched your search
@@ -5,7 +5,8 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Sign in · Portal · {{ SITE_NAME }}</title>
|
||||
<link rel="icon" href="{% static 'brand/favicon-32.png' %}" type="image/png">
|
||||
<link rel="icon" href="{% static 'brand/favicon.ico' %}" type="image/x-icon">
|
||||
<link rel="apple-touch-icon" href="{% static 'brand/apple-touch-icon.png' %}">
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Work+Sans:300,400,500,700%7CPoppins:400,600,700">
|
||||
<link rel="stylesheet" href="{% static 'css/portal.css' %}">
|
||||
</head>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
@@ -1,6 +0,0 @@
|
||||
/*!
|
||||
* Bootstrap v4.0.0 (https://getbootstrap.com)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--breakpoint-xxl: 1600px;
--font-family-sans-serif: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
--font-family-monospace: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-ms-overflow-style: scrollbar;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@-ms-viewport {
width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 16px;
font-weight: 300;
line-height: 1.5;
color: #74757f;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: inherit;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
dfn {
font-style: italic;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #0045b6;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:hover {
color: #00286a;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-ms-overflow-style: scrollbar;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: .5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
margin-bottom: 0.5rem;
font-family: "Poppins", sans-serif;
font-weight: 400;
line-height: 1.1;
color: #151515;
}
h1,Line truncated
|
||||
@@ -1,18 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* Fonts
|
||||
*/␍/*
|
||||
*
|
||||
* Font Awesome Icons 4.7.0
|
||||
* --------------------------------------------------
|
||||
*/␍@font-face {␍ font-family: 'FontAwesome';␍ src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");␍ src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");␍ font-weight: normal;␍ font-style: normal;␍}␍␍.fa {␍ display: inline-block;␍ font-family: 'FontAwesome';␍ font-size: inherit;␍ text-rendering: auto;␍ -webkit-font-smoothing: antialiased;␍ -moz-osx-font-smoothing: grayscale;␍}␍␍[class*='fa-']:before {␍ font-weight: 400;␍ font-family: 'FontAwesome';␍}␍␍/* makes the font 33% larger relative to the icon container */␍.fa-lg {␍ font-size: 1.33333333em;␍ line-height: 0.75em;␍ vertical-align: -15%;␍}␍␍.fa-2x {␍ font-size: 2em;␍}␍␍.fa-3x {␍ font-size: 3em;␍}␍␍.fa-4x {␍ font-size: 4em;␍}␍␍.fa-5x {␍ font-size: 5em;␍}␍␍.fa-fw {␍ width: 1.28571429em;␍ text-align: center;␍}␍␍.fa-ul {␍ padding-left: 0;␍ margin-left: 2.14285714em;␍ list-style-type: none;␍}␍␍.fa-ul > li {␍ position: relative;␍}␍␍.fa-li {␍ position: absolute;␍ left: -2.14285714em;␍ width: 2.14285714em;␍ top: 0.14285714em;␍ text-align: center;␍}␍␍.fa-li.fa-lg {␍ left: -1.85714286em;␍}␍␍.fa-border {␍ padding: .2em .25em .15em;␍ border: solid 0.08em #eeeeee;␍ border-radius: .1em;␍}␍␍.fa-pull-left {␍ float: left;␍}␍␍.fa-pull-right {␍ float: right;␍}␍␍.fa.fa-pull-left {␍ margin-right: .3em;␍}␍␍.fa.fa-pull-right {␍ margin-left: .3em;␍}␍␍/* Deprecated as of 4.4.0 */␍.pull-right {␍ float: right;␍}␍␍.pull-left {␍ float: left;␍}␍␍.fa.pull-left {␍ margin-right: .3em;␍}␍␍.fa.pull-right {␍ margin-left: .3em;␍}␍␍.fa-spin {␍ -webkit-animation: fa-spin 2s infinite linear;␍ animation: fa-spin 2s infinite linear;␍}␍␍.fa-pulse {␍ -webkit-animation: fa-spin 1s infinite steps(8);␍ animation: fa-spin 1s infinite steps(8);␍}␍␍@-webkit-keyframes fa-spin {␍ 0% {␍ -webkit-transform: rotate(0deg);␍ transform: rotate(0deg);␍ }␍ 100% {␍ -webkit-transform: rotate(359deg);␍ transform: rotate(359deg);␍ }␍}␍␍@keyframes fa-spin {␍ 0% {␍ -webkit-transform: rotate(0deg);␍ transform: rotate(0deg);␍ }␍ 100% {␍ -webkit-transform: rotate(359deg);␍ transform: rotate(359deg);␍ }␍}␍␍.fa-rotate-90 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";␍ -webkit-transform: rotate(90deg);␍ -ms-transform: rotate(90deg);␍ transform: rotate(90deg);␍}␍␍.fa-rotate-180 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";␍ -webkit-transform: rotate(180deg);␍ -ms-transform: rotate(180deg);␍ transform: rotate(180deg);␍}␍␍.fa-rotate-270 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";␍ -webkit-transform: rotate(270deg);␍ -ms-transform: rotate(270deg);␍ transform: rotate(270deg);␍}␍␍.fa-flip-horizontal {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";␍ -webkit-transform: scale(-1, 1);␍ -ms-transform: scale(-1, 1);␍ transform: scale(-1, 1);␍}␍␍.fa-flip-vertical {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";␍ -webkit-transform: scale(1, -1);␍ -ms-transform: scale(1, -1);␍ transform: scale(1, -1);␍}␍␍:root .fa-rotate-90,␍:root .fa-rotate-180,␍:root .fa-rotate-270,␍:root .fa-flip-horizontal,␍:root .fa-flip-vertical {␍ filter: none;␍}␍␍.fa-stack {␍ position: relative;␍ display: inline-block;␍ width: 2em;␍ height: 2em;␍ line-height: 2em;␍ vertical-align: middle;␍}␍␍.fa-stack-1x,␍.fa-stack-2x {␍ position: absolute;␍ left: 0;␍ width: 100%;␍ text-align: center;␍}␍␍.fa-stack-1x {␍ line-height: inherit;␍}␍␍.fa-stack-2x {␍ font-size: 2em;␍}␍␍.fa-inverse {␍ color: #ffffff;␍}␍␍/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:Line truncated
|
||||
*
|
||||
* Material Design Icons
|
||||
* --------------------------------------------------
|
||||
*/
@font-face {
font-family: "Material Design Icons";
src: url("../fonts/materialdesignicons-webfont.eot?v=1.4.57");
src: url("../fonts/materialdesignicons-webfont.eot?#iefix&v=1.4.57") format("embedded-opentype"), url("../fonts/materialdesignicons-webfont.woff2?v=1.4.57") format("woff2"), url("../fonts/materialdesignicons-webfont.woff?v=1.4.57") format("woff"), url("../fonts/materialdesignicons-webfont.ttf?v=1.4.57") format("truetype"), url("../fonts/materialdesignicons-webfont.svg?v=1.4.57#materialdesigniconsregular") format("svg");
font-weight: normal;
font-style: normal;
}
.mdi {
display: inline-block;
font: normal normal normal 24px/1 "Material Design Icons";
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
}
.mdi-access-point:before {
content: "\f101";
}
.mdi-access-point-network:before {
content: "\f102";
}
.mdi-account:before {
content: "\f103";
}
.mdi-account-alert:before {
content: "\f104";
}
.mdi-account-box:before {
content: "\f105";
}
.mdi-account-box-outline:before {
content: "\f106";
}
.mdi-account-check:before {
content: "\f107";
}
.mdi-account-circle:before {
content: "\f108";
}
.mdi-account-convert:before {
content: "\f109";
}
.mdi-account-key:before {
content: "\f10a";
}
.mdi-account-location:before {
content: "\f10b";
}
.mdi-account-minus:before {
content: "\f10c";
}
.mdi-account-multiple:before {
content: "\f10d";
}
.mdi-account-multiple-outline:before {
content: "\f10e";
}
.mdi-account-multiple-plus:before {
content: "\f10f";
}
.mdi-account-network:before {
content: "\f110";
}
.mdi-account-off:before {
content: "\f111";
}
.mdi-account-outline:before {
content: "\f112";
}
.mdi-account-plus:before {
content: "\f113";
}
.mdi-account-remove:before {
content: "\f114";
}
.mdi-account-search:before {
content: "\f115";
}
.mdi-account-star:before {
content: "\f116";
}
.mdi-account-star-variant:before {
content: "\f117";
}
.mdi-account-switch:before {
content: "\f118";
}
.mdi-adjust:before {
content: "\f119";
}
.mdi-air-conditioner:before {
content: "\f11a";
}
.mdi-airballoon:before {
content: "\f11b";
}
.mdi-airplane:before {
content: "\f11c";
}
.mdi-airplane-off:before {
content: "\f11d";
}
.mdi-airplay:before {
content: "\f11e";
}
.mdi-alarm:before {
content: "\f11f";
}
.mdi-alarm-check:before {
content: "\f120";
}
.mdi-alarm-multiple:before {
content: "\f121";
}
.mdi-alarm-off:before {
content: "\f122";
}
.mdi-alarm-plus:before {
content: "\f123";
}
.mdi-album:before {
content: "\f124";
}
.mdi-alert:before {
content: "\f125";
}
.mdi-alert-box:before {
content: "\f126";
}
.mdi-alert-circle:before {
content: "\f127";
}
.mdi-alert-octagon:before {
content: "\f128";
}
.mdi-alert-outline:before {
content: "\f129";
}
.mdi-alpha:before {
content: "\f12a";
}
.mdi-alphabetical:before {
content: "\f12b";
}
.mdi-amazon:before {
content: "\f12c";
}
.mdi-amazon-clouddrive:before {
content: "\f12d";
}
.mdi-ambulance:before {
content: "\f12e";
}
.mdi-anchor:before {
content: "\f12f";
}
.mdi-android:before {
content: "\f130";
}
.mdi-android-debug-bridge:before {
content: "\f131";
}
.mdi-android-studio:before {
content: "\f132";
}
.mdi-apple:before {
content: "\f133";
}
.mdi-apple-finder:before {
content: "\f134";
}
.mdi-apple-ios:before {
content: "\f135";
}
.mdi-apple-mobileme:before {
content: "\f136";
}
.mdi-apple-safari:before {
content: "\f137";
}
.mdi-appnet:before {
content: "\f138";
}
.mdi-apps:before {
content: "\f139";
}
.mdi-archive:before {
content: "\f13a";
}
.mdi-arrange-bring-forward:before {
content: "\f13b";
}
.mdi-arrange-bring-to-front:before {
content: "\f13c";
}
.mdi-arrange-send-backward:before {
content: "\f13d";
}
.mdi-arrange-send-to-back:before {
content: "\f13e";
}
.mdi-arrow-all:before {
content: "\f13f";
}
.mdi-arrow-bottom-drop-circle:before {
content: "\f140";
}
.mdi-arrow-bottom-left:before {
content: "\f141";
}
.mdi-arrow-bottom-right:before {
content: "\f142";
}
.mdi-arrow-collapse:before {
content: "\f143";
}
.mdi-arrow-down:before {
content: "\f144";
}
.mdi-arrow-down-bold:before {
content: "\f145";
}
.mdi-arrow-down-bold-circle:before {
content: "\f146";
}
.mdi-arrow-down-bold-circle-outline:before {
content: "\f147";
}
.mdi-arrow-down-bold-hexagon-outline:before {
content: "\f148";
}
.mdi-arrow-expand:before {
content: "\f149";
}
.mdi-arrow-left:before {
content: "\f14a";
}
.mdi-arrow-left-bold:before {
content: "\f14b";
}
.mdi-arrow-left-bold-circle:before {
content: "\f14c";
}
.mdi-arrow-left-bold-circle-outline:before {
content: "\f14d";
}
.mdi-arrow-left-bold-hexagon-outline:before {
content: "\f14e";
}
.mdi-arrow-right:before {
content: "\f14f";
}
.mdi-arrow-right-bold:before {
content: "\f150";
}
.mdi-arrow-right-bold-circle:before {
content: "\f151";
}
.mdi-arrow-right-bold-circle-outline:before {Line truncated
|
||||
* Title: Bigmug Line Flaticon Pack
|
||||
* Author: Catalin Fertu
|
||||
* Source: http://www.flaticon.com/packs/bigmug-line
|
||||
* License: CC BY 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
||||
*/
@font-face {
font-family: "fl-bigmug-line";
src: url("../fonts/fl-bigmug-line.eot");
src: url("../fonts/fl-bigmug-line.eot#iefix") format("embedded-opentype"), url("../fonts/fl-bigmug-line.woff") format("woff"), url("../fonts/fl-bigmug-line.ttf") format("truetype"), url("../fonts/fl-bigmug-line.svg") format("svg");
font-weight: normal;
font-style: normal;
}
.fl-bigmug-line-ico,
[class^="fl-bigmug-line-"]:before, [class*=" fl-bigmug-line-"]:before,
[class^="fl-bigmug-line-"]:after, [class*=" fl-bigmug-line-"]:after {
font-family: 'fl-bigmug-line';
font-size: inherit;
font-weight: 400;
font-style: normal;
}
.fl-bigmug-line-add137:before {
content: "\e000";
}
.fl-bigmug-line-add139:before {
content: "\e001";
}
.fl-bigmug-line-add149:before {
content: "\e002";
}
.fl-bigmug-line-airplane86:before {
content: "\e003";
}
.fl-bigmug-line-alarm31:before {
content: "\e004";
}
.fl-bigmug-line-arrow592:before {
content: "\e005";
}
.fl-bigmug-line-attach8:before {
content: "\e006";
}
.fl-bigmug-line-attachment15:before {
content: "\e007";
}
.fl-bigmug-line-audio46:before {
content: "\e008";
}
.fl-bigmug-line-back44:before {
content: "\e009";
}
.fl-bigmug-line-back46:before {
content: "\e00a";
}
.fl-bigmug-line-big104:before {
content: "\e00b";
}
.fl-bigmug-line-book188:before {
content: "\e00c";
}
.fl-bigmug-line-bookmark28:before {
content: "\e00d";
}
.fl-bigmug-line-bottle34:before {
content: "\e00e";
}
.fl-bigmug-line-button5:before {
content: "\e00f";
}
.fl-bigmug-line-buttons5:before {
content: "\e010";
}
.fl-bigmug-line-cellphone55:before {
content: "\e011";
}
.fl-bigmug-line-cellular9:before {
content: "\e012";
}
.fl-bigmug-line-center10:before {
content: "\e013";
}
.fl-bigmug-line-chat51:before {
content: "\e014";
}
.fl-bigmug-line-chat55:before {
content: "\e015";
}
.fl-bigmug-line-checkmark14:before {
content: "\e016";
}
.fl-bigmug-line-checkmark15:before {
content: "\e017";
}
.fl-bigmug-line-checkmark16:before {
content: "\e018";
}
.fl-bigmug-line-circular220:before {
content: "\e019";
}
.fl-bigmug-line-circular224:before {
content: "\e01a";
}
.fl-bigmug-line-circular228:before {
content: "\e01b";
}
.fl-bigmug-line-circular229:before {
content: "\e01c";
}
.fl-bigmug-line-clipboard68:before {
content: "\e01d";
}
.fl-bigmug-line-close42:before {
content: "\e01e";
}
.fl-bigmug-line-cloud255:before {
content: "\e01f";
}
.fl-bigmug-line-cloud260:before {
content: "\e020";
}
.fl-bigmug-line-cocktail26:before {
content: "\e021";
}
.fl-bigmug-line-code30:before {
content: "\e022";
}
.fl-bigmug-line-collapse5:before {
content: "\e023";
}
.fl-bigmug-line-comment45:before {
content: "\e024";
}
.fl-bigmug-line-compass80:before {
content: "\e025";
}
.fl-bigmug-line-contract5:before {
content: "\e026";
}
.fl-bigmug-line-copy23:before {
content: "\e027";
}
.fl-bigmug-line-crescent23:before {
content: "\e028";
}
.fl-bigmug-line-cropping1:before {
content: "\e029";
}
.fl-bigmug-line-cross81:before {
content: "\e02a";
}
.fl-bigmug-line-cross83:before {
content: "\e02b";
}
.fl-bigmug-line-cube29:before {
content: "\e02c";
}
.fl-bigmug-line-double97:before {
content: "\e02d";
}
.fl-bigmug-line-double98:before {
content: "\e02e";
}
.fl-bigmug-line-double99:before {
content: "\e02f";
}
.fl-bigmug-line-down55:before {
content: "\e030";
}
.fl-bigmug-line-down56:before {
content: "\e031";
}
.fl-bigmug-line-down58:before {
content: "\e032";
}
.fl-bigmug-line-down59:before {
content: "\e033";
}
.fl-bigmug-line-down64:before {
content: "\e034";
}
.fl-bigmug-line-download136:before {
content: "\e035";
}
.fl-bigmug-line-download142:before {
content: "\e036";
}
.fl-bigmug-line-download146:before {
content: "\e037";
}
.fl-bigmug-line-download147:before {
content: "\e038";
}
.fl-bigmug-line-download148:before {
content: "\e039";
}
.fl-bigmug-line-electrical17:before {
content: "\e03a";
}
.fl-bigmug-line-electronic57:before {
content: "\e03b";
}
.fl-bigmug-line-email64:before {
content: "\e03c";
}
.fl-bigmug-line-email67:before {
content: "\e03d";
}
.fl-bigmug-line-equalization3:before {
content: "\e03e";
}
.fl-bigmug-line-equalizer26:before {
content: "\e03f";
}
.fl-bigmug-line-event6:before {
content: "\e040";
}
.fl-bigmug-line-expand25:before {
content: "\e041";
}
.fl-bigmug-line-expanding2:before {
content: "\e042";
}
.fl-bigmug-line-fast33:before {
content: "\e043";
}
.fl-bigmug-line-favourites5:before {
content: "\e044";
}
.fl-bigmug-line-file68:before {
content: "\e045";
}
.fl-bigmug-line-file69:before {
content: "\e046";
}
.fl-bigmug-line-film57:before {
content: "\e047";
}
.fl-bigmug-line-flag53:before {
content: "\e048";
}
.fl-bigmug-line-fog10:before {
content: "\e049";
}
.fl-bigmug-line-foggy3:before {
content: "\e04a";
}
.fl-bigmug-line-folder173:before {
content: "\e04b";
}
.fl-bigmug-line-fork34:before {
content: "\e04c";
}
.fl-bigmug-line-four87:before {
conteLine truncated
|
||||
@@ -1,239 +0,0 @@
|
||||
@charset "UTF-8";
/*
|
||||
* Trunk version 2.0.0
|
||||
*/
a:focus,
button:focus {
outline: none !important;
}
button::-moz-focus-inner {
border: 0;
}
*:focus {
outline: none;
}
blockquote {
padding: 0;
margin: 0;
}
input,
button,
select,
textarea {
outline: none;
}
label {
margin-bottom: 0;
}
p {
margin: 0;
}
ul,
ol {
list-style: none;
padding: 0;
margin: 0;
}
ul li,
ol li {
display: block;
}
dl {
margin: 0;
}
dt,
dd {
line-height: inherit;
}
dt {
font-weight: inherit;
}
dd {
margin-bottom: 0;
}
cite {
font-style: normal;
}
form {
margin-bottom: 0;
}
blockquote {
padding-left: 0;
border-left: 0;
}
address {
margin-top: 0;
margin-bottom: 0;
}
figure {
margin-bottom: 0;
}
html p a:hover {
text-decoration: none;
}
/*
|
||||
*
|
||||
* Typography
|
||||
*/
body {
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 14px;
line-height: 1.7;
font-weight: 300;
color: #74757f;
background-color: #fff;
-webkit-text-size-adjust: none;
-webkit-font-smoothing: subpixel-antialiased;
letter-spacing: .03em;
}
@media (min-width: 768px) {
body {
font-size: 16px;
line-height: 1.5;
}
}
h1, h2, h3, h4, h5, h6, [class^='heading-'] {
margin-top: 0;
margin-bottom: 0;
color: #151515;
}
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, [class^='heading-'] a:hover {
color: #0045b6;
}
h1 span, h2 span, h3 span, h4 span, h5 span, h6 span, [class^='heading-'] span {
display: inline-block;
}
h1 span[data-toggle='modal'], h2 span[data-toggle='modal'], h3 span[data-toggle='modal'], h4 span[data-toggle='modal'], h5 span[data-toggle='modal'], h6 span[data-toggle='modal'], [class^='heading-'] span[data-toggle='modal'] {
border-bottom: 2px dashed rgba(0, 69, 182, 0.3);
cursor: pointer;
}
h1 > span.icon, h2 > span.icon, h3 > span.icon, h4 > span.icon, h5 > span.icon, h6 > span.icon, [class^='heading-'] > span.icon {
display: inline-block;
margin-right: 5px;
}
h1,
.heading-1 {
font-size: 30px;
line-height: 1.15;
letter-spacing: 0;
}
@media (min-width: 576px) {
h1,
.heading-1 {
font-size: 32px;
}
}
@media (min-width: 768px) {
h1,
.heading-1 {
font-size: 46px;
line-height: 1.25;
}
}
@media (min-width: 992px) {
h1,
.heading-1 {
font-size: 54px;
}
}
@media (min-width: 1200px) {
h1,
.heading-1 {
font-size: 58px;
}
}
@media (min-width: 1600px) {
h1,
.heading-1 {
font-size: 90px;
line-height: 0.88889;
}
}
h2,
.heading-2 {
font-family: "Poppins", sans-serif;
font-size: 28px;
line-height: 1.4;
letter-spacing: 0;
}
@media (min-width: 576px) {
h2,
.heading-2 {
font-size: 30px;
}
}
@media (min-width: 768px) {
h2,
.heading-2 {
font-size: 44px;
}
}
@media (min-width: 1200px) {
h2,
.heading-2 {
font-size: 50px;
line-height: 1.4;
}
}
h3,
.heading-3 {
font-size: 24px;
line-height: 1.3;
letter-spacing: 0;
}
@media (min-width: 768px) {
h3,
.heading-3 {
font-size: 30px;
line-height: 1.4;
}
}
@media (min-width: 1200px) {
h3,
.heading-3 {
font-size: 38px;
line-height: 1.21053;
}
}
h3 .big,
.heading-3 .big {
font-size: 2em;
line-height: 1;
}
h4,
.heading-4 {
font-size: 18px;
line-height: 1.5;
letter-spacing: 0;
}
@media (min-width: 1200px) {
h4,
.heading-4 {
font-size: 24px;
line-height: 1.33333;
}
}
h4.h4-smaller,
.heading-4.h4-smaller {
font-size: 19px;
}
@media (min-width: 1200px) {
h4.h4-smaller,
.heading-4.h4-smaller {
font-size: 22px;
line-height: 1.45455;
}
}
h5,
.heading-5 {
font-size: 16px;
line-height: 1.5;
letter-spacing: .01em;
}
@media (min-width: 768px) {
h5,
.heading-5 {
font-size: 22px;
line-height: 1.27273;
}
}
h6,
.heading-6 {
font-family: "Poppins", sans-serif;
font-size: 14px;
line-height: 1.8;
letter-spacing: .2em;
text-transform: uppercase;
}
@media (min-width: 768px) {
h6,
.heading-6 {
font-size: 16px;
line-height: 1.5;
font-weight: 700;
}
}
.title-decorated {
position: relative;
padding-left: 40px;
text-align: left;
}
.title-decorated::before {
content: '';
position: absolute;
left: 0;
top: 12px;
width: 30px;
border-bottom: 1px solid;
}
.title-docor-text {
font-size: 20px;
color: #fff;
}
@media (min-width: 576px) {
.title-docor-text {
font-size: 24px;
}
}
@media (min-width: 768px) {
.title-docor-text {
padding-left: 96px;
font-size: 37px;
}
.title-docor-text::before {
width: 74px;
border-bottom-width: 2px;
}
}
@media (min-width: 768px) {
.title-decorated-lg {
padding-left: 80px;
}
.title-decorated-lg::before {
width: 62px;
}
.title-decorated-lg + p {
margin-top: 32px;
}
}
small,
.small {
display: block;
font-size: 12px;
line-height: 1.5;
}
mark,
.mark {
padding: 3px 5px;
color: #fff;
background: #0045b6;
}
strong {
font-weight: 700;
color: #74757f;
}
.big {
font-size: 16px;
line-height: 1.55;
}
@media (min-width: 768px) {
.big {
font-size: 20px;
line-height: 1.6;
}
}
.lead {
font-size: 24px;
line-height: 34px;
font-weight: 300;
}
code {
padding: 4px 5px;
border-radius: 0;
font-size: 90%;
color: #111111;
background: #f5f6fa;
}
.text-large {
font-family: "Poppins", sans-serif;
font-size: 30px;
font-weight: 500;
letter-spacing: 0;
line-height: 1.2;
text-transform: uppercase;
}
@media (min-width: 576px) {
.text-large {
font-size: 55px;
}
}
@media (min-width: 768px) {
.text-large {
font-size: 68px;
}
}
@media (min-width: 992px) {
.text-large {
font-size: 80px;
}
}
@media (min-width: 1200px) {
.text-large {
font-size: 100px;
}
}
.context-dark .text-large, .bg-gray-700 .text-large, .bg-gray-800 .text-large, .bg-primary .text-large, .bg-primary-darker .text-large {
color: #fff;
}
.text-extra-large {
font-size: 100px;
line-height: .8Line truncated
|
||||
*
|
||||
* Brand
|
||||
*/
.brand {
display: inline-block;
}
.brand .brand-logo-light {
display: none;
}
.brand .brand-logo-dark {
display: block;
}
/*
|
||||
*
|
||||
* Links
|
||||
*/
a {
transition: all 0.3s ease-in-out;
}
a, a:focus, a:active, a:hover {
text-decoration: none;
}
a, a:focus, a:active {
color: #0045b6;
}
a:hover {
color: #00286a;
}
a[href*='tel'], a[href*='mailto'] {
white-space: nowrap;
}
.link-hover {
color: #343db0;
}
.link-default, .link-default:active, .link-default:focus {
color: #74757f;
}
.link-default:hover {
color: #0045b6;
}
.context-dark .link-default, .bg-gray-700 .link-default, .bg-gray-800 .link-default, .bg-primary .link-default, .bg-primary-darker .link-default {
color: #aeb1be;
}
.context-dark .link-default:hover, .bg-gray-700 .link-default:hover, .bg-gray-800 .link-default:hover, .bg-primary .link-default:hover, .bg-primary-darker .link-default:hover {
color: #fff;
}
.link-image {
display: block;
max-width: 75%;
margin-left: auto;
margin-right: auto;
opacity: .45;
transition: all 0.3s ease-in-out;
}
.link-image:hover {
opacity: 1;
}
.privacy-link {
display: inline-block;
color: #4854ed;
}
* + .privacy-link {
margin-top: 25px;
}
/*
|
||||
*
|
||||
* Blocks
|
||||
*/
.block-center, .block-sm, .block-lg {
margin-left: auto;
margin-right: auto;
}
.block-sm {
max-width: 560px;
}
.block-lg {
max-width: 768px;
}
.block-center {
padding: 10px;
}
.block-center:hover .block-center-header {
background-color: #0045b6;
}
.block-center-title {
background-color: #fff;
}
@media (max-width: 1599.98px) {
.block-center {
padding: 20px;
}
.block-center:hover .block-center-header {
background-color: #fff;
}
.block-center-header {
background-color: #0045b6;
}
}
/*
|
||||
*
|
||||
* Boxes
|
||||
*/
.box-minimal {
display: flex;
margin-left: -15px;
text-align: left;
}
.box-minimal > * {
margin-left: 15px;
}
.box-chloe__icon {
font-size: 26px;
}
.box-minimal-icon .box-chloe__icon {
position: relative;
top: 4px;
min-width: 26px;
font-size: 24px;
line-height: 1;
color: #0045b6;
}
.box-minimal-icon .box-chloe__icon.fl-bigmug-line-checkmark14 {
font-size: 20px;
}
.box-minimal-icon .box-chloe__icon .box-chloe__icon {
position: relative;
top: 4px;
min-width: 26px;
font-size: 24px;
line-height: 1;
}
.box-minimal-text {
width: 100%;
max-width: 320px;
margin-left: auto;
margin-right: auto;
}
* + .box-minimal {
margin-top: 30px;
}
* + .box-minimal-title {
margin-top: 10px;
}
* + .box-minimal-text {
margin-top: 15px;
}
@media (max-width: 575.98px) {
.box-minimal {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (max-width: 767.98px) {
.box-minimal * + p {
margin-top: 7px;
}
}
@media (min-width: 768px) {
.box-minimal {
padding-right: 15px;
margin-left: -30px;
}
.box-minimal > * {
margin-left: 30px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.box-minimal {
padding-right: 0;
}
.box-minimal-title {
font-size: 22px;
}
}
@media (min-width: 1200px) {
.box-minimal-icon, .box-chloe__icon {
top: 0;
font-size: 36px;
}
.box-minimal-icon .box-chloe__icon, .box-chloe__icon .box-chloe__icon {
font-size: 32px;
top: 0;
}
.box-minimal-icon.fl-bigmug-line-checkmark14, .box-chloe__icon.fl-bigmug-line-checkmark14 {
font-size: 30px;
}
}
.box-light {
text-align: left;
}
.box-light-icon {
font-size: 30px;
line-height: 1;
color: #0045b6;
}
* + .box-light-title {
margin-top: 10px;
}
@media (max-width: 575.98px) {
.box-light {
max-width: 300px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 768px) {
.box-light {
max-width: 240px;
}
.box-chloe__icon {
font-size: 32px;
}
* + .box-light-title {
margin-top: 16px;
}
}
@media (min-width: 768px) and (max-width: 1199.98px) {
.box-light-title {
font-size: 20px;
}
}
@media (min-width: 992px) {
.box-light-icon {
font-size: 32px;
}
* + .box-light-title {
margin-top: 25px;
}
}
@media (min-width: 1200px) {
.box-light-icon {
font-size: 40px;
}
}
.box-creative {
max-width: 330px;
margin-left: auto;
margin-right: auto;
text-align: center;
cursor: default;
}
.box-creative:hover .box-creative-icon {
color: #fff;
}
.box-creative:hover .box-creative-icon::after {
opacity: 1;
visibility: visible;
transform: translate3d(0, 0, 0);
}
.box-creative-shadow .box-creative-icon {
background: #fff;
border: 0;
box-shadow: 0 17px 24px 0 rgba(0, 0, 0, 0.05);
}
.box-creative-icon {
position: relative;
z-index: 0;
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.8em;
height: 2.8em;
border: 2px solid #e8e9ee;
border-radius: 50%;
font-size: 24px;
line-height: 1;
color: #0045b6;
}
.box-creative-icon::before {
position: relative;
z-index: 2;
}
.box-creative-icon::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
border-radius: inherit;
background: #0045b6;
border-color: #0045b6;
pointer-events: none;
opacity: 0;
visibility: hidden;
transition: .15s ease-in;
transform: scale3d(1.05, 1.05, 1.05);
}
* + .box-creative-icon {
margin-top: 10px;
}
* + .box-creative-title {
margin-top: 10px;
}
@media (min-width: 768px) {
.box-creative-icon {
font-size: 30px;
}
* + .box-creative-title {
margin-top: 15px;
}
}
@media (max-width: 991.98px) {
.box-creative * + p {
margin-top: 10px;
}
}
@media (min-width: 1200px) {
.box-creative-icon {
width: 2.4em;
height: 2.4em;
font-size: 40px;
}
* + .box-creative-title {
margin-top: 24px;
}
}
.box-1 {
max-width: 280px;
margin-left: auto;
margin-right: auto;
}
@media (min-width: 768px) {
.box-2 {
padding-right: 30px;
}
}
@media (min-width: 992px) {
.box-2 {
padding-right: 35px;
}
}
@media (min-width: 1200px) {
.box-2 {
padding-right: 100px;
}
}
@media (min-width: 992px) {
.box-3 {
padding-left: 10px;
}
}
@media (min-width: 1200px) {
.box-3 {
padding-left: 70px;
}
}
div.box-cta-1 {
display: inline-table;
text-align: center;
vertical-align: middle;
margin-bottom: -25px;
margin-left: -40px;
}
div.box-cta-1:empty {
margin-bottom: 0;
margin-left: 0;
}
div.box-cta-1 > * {
display: inline-block;
margin: 0 0 25px 40px;
}
div.box-cta-1 > * {
margin-top: 0;
vertical-align: middle;
}
div.box-cta-thin {
display: inline-table;
text-align: center;
vertical-align: middle;
margin-bottom: -25px;
margin-left: -30px;
}
div.box-cta-thin:empty {
margin-bottom: 0;
margin-left: 0;
}
div.box-cta-thin > * {
display: inline-block;
margin: 0 0 25px 30px;
}
div.box-cta-thin > * {
margin-top: 0;
vertical-align: middle;
}
@media (min-width: 768px) and (max-width: 991.98px) {
div.box-cta-thin > * {
max-width: 500px;
}
}
.box-indigo {
positionLine truncated
|
||||
* Element groups
|
||||
*/
html .group {
margin-bottom: -15px;
margin-left: -20px;
}
html .group:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group > * {
display: inline-block;
margin: 0 0 15px 20px;
}
@media (min-width: 992px) {
html .group {
margin-left: -30px;
}
html .group > * {
margin-left: 30px;
}
}
html .group-xs {
margin-bottom: -7px;
margin-left: -7px;
}
html .group-xs:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group-xs > * {
display: inline-block;
margin: 0 0 7px 7px;
}
html .group-sm {
margin-bottom: -10px;
margin-left: -10px;
}
html .group-sm:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group-sm > * {
display: inline-block;
margin: 0 0 10px 10px;
}
html .group-lg {
margin-bottom: -25px;
margin-left: -40px;
}
html .group-lg:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group-lg > * {
display: inline-block;
margin: 0 0 25px 40px;
}
html .group-xl {
margin-bottom: -20px;
margin-left: -30px;
}
html .group-xl:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group-xl > * {
display: inline-block;
margin: 0 0 20px 30px;
}
@media (min-width: 992px) {
html .group-xl {
margin-bottom: -20px;
margin-left: -45px;
}
html .group-xl > * {
margin-bottom: 20px;
margin-left: 45px;
}
}
html .group-sm-justify .button {
padding-left: 20px;
padding-right: 20px;
}
@media (min-width: 768px) {
html .group-sm-justify {
display: flex;
align-items: center;
justify-content: center;
}
html .group-sm-justify > * {
flex-grow: 1;
flex-shrink: 0;
}
html .group-sm-justify .button {
min-width: 130px;
padding-left: 20px;
padding-right: 20px;
}
}
html .group-middle {
display: table;
vertical-align: middle;
}
html .group-middle > * {
vertical-align: middle;
}
* + .group {
margin-top: 30px;
}
* + .group-xs {
margin-top: 35px;
}
* + .group-sm {
margin-top: 30px;
}
* + .group-xl {
margin-top: 20px;
}
/*
|
||||
*
|
||||
* Responsive units
|
||||
*/
.unit {
display: flex;
flex: 0 1 100%;
margin-bottom: -30px;
margin-left: -20px;
}
.unit > * {
margin-bottom: 30px;
margin-left: 20px;
}
.unit:empty {
margin-bottom: 0;
margin-left: 0;
}
.unit-body {
flex: 0 1 auto;
}
.unit-left,
.unit-right {
flex: 0 0 auto;
max-width: 100%;
}
.unit-spacing-xs {
margin-bottom: -15px;
margin-left: -7px;
}
.unit-spacing-xs > * {
margin-bottom: 15px;
margin-left: 7px;
}
/*
|
||||
*
|
||||
* Lists
|
||||
*/
.list > li + li {
margin-top: 10px;
}
.list-xs > li + li {
margin-top: 8px;
}
.list-sm > li + li {
margin-top: 15px;
}
.list-md > li + li {
margin-top: 18px;
}
.list-lg > li + li {
margin-top: 25px;
}
.list-xl li + li {
margin-top: 30px;
}
@media (min-width: 1200px) {
.list-xl * + p {
margin-top: 18px;
}
}
@media (min-width: 1600px) {
.list-xl * + p {
margin-top: 24px;
}
}
@media (min-width: 768px) {
.list-xl > li + li {
margin-top: 60px;
}
}
@media (min-width: 1600px) {
.list-xl > li + li {
margin-top: 78px;
}
}
.list-inline > li {
display: inline-block;
}
html .list-inline-md {
transform: translate3d(0, -8px, 0);
margin-bottom: -8px;
margin-left: -10px;
margin-right: -10px;
}
html .list-inline-md > * {
margin-top: 8px;
padding-left: 10px;
padding-right: 10px;
}
@media (min-width: 992px) {
html .list-inline-md {
margin-left: -14px;
margin-right: -14px;
}
html .list-inline-md > * {
padding-left: 14px;
padding-right: 14px;
}
}
.list-terms dt {
font-size: 20px;
line-height: 1.3;
font-weight: 700;
letter-spacing: 0;
color: #495057;
}
.list-terms dt + dd {
margin-top: 8px;
}
.list-terms dd + dt {
margin-top: 25px;
}
* + .list-terms {
margin-top: 25px;
}
.list-terms + .privacy-link {
margin-top: 20px;
}
@media (min-width: 768px) {
.list-terms dt {
font-size: 24px;
}
.list-terms dd + dt {
margin-top: 40px;
}
}
@media (min-width: 992px) {
.list-terms dt + dd {
margin-top: 18px;
}
.list-terms dd + dt {
margin-top: 55px;
}
}
@media (min-width: 1200px) {
.list-terms dt {
max-width: 85%;
}
}
@media (min-width: 1600px) {
.list-terms dd + dt {
margin-top: 75px;
}
.list-terms + .privacy-link {
margin-top: 75px;
}
}
.index-list {
counter-reset: li;
}
.index-list > li .list-index-counter:before {
content: counter(li, decimal-leading-zero);
counter-increment: li;
}
.list-marked {
text-align: left;
}
.list-marked > li::before {
position: relative;
top: 1px;
display: inline-block;
min-width: 25px;
content: '\f14f';
font: 400 14px 'Material Design Icons';
line-height: inherit;
color: #aeb1be;
}
.list-marked > li + li {
margin-top: 9px;
}
* + .list-marked {
margin-top: 15px;
}
.list-ordered {
counter-reset: li;
text-align: left;
}
.list-ordered > li {
position: relative;
padding-left: 25px;
}
.list-ordered > li:before {
content: counter(li, decimal) ".";
counter-increment: li;
position: absolute;
top: 0;
left: 0;
display: inline-block;
width: 15px;
color: #aeb1be;
}
.list-ordered > li + li {
margin-top: 9px;
}
* + .list-ordered {
margin-top: 15px;
}
.list-nav {
transform: translate3d(0, -10px, 0);
margin-bottom: -10px;
margin-left: -10px;
margin-right: -10px;
font-family: "Poppins", sans-serif;
font-weight: 400;
font-size: .875em;
letter-spacing: .08em;
text-transform: uppercase;
color: #495057;
}
.list-nav > * {
margin-top: 10px;
padding-left: 10px;
padding-right: 10px;
}
.list-nav li {
display: inline-block;
vertical-align: middle;
}
.list-nav a {
color: inherit;
}
.list-nav a:hover {
color: #0045b6;
}
@media (min-width: 768px) {
.list-nav {
margin-left: -13px;
margin-right: -13px;
}
.list-nav > * {
padding-left: 13px;
padding-right: 13px;
}
}
@media (min-width: 992px) {
.list-nav {
margin-left: -28px;
margin-right: -28px;
}
.list-nav > * {
padding-left: 28px;
padding-right: 28px;
}
}
.context-dark .list-nav, .bg-gray-700 .list-nav, .bg-gray-800 .list-nav, .bg-primary .list-nav, .bg-primary-darker .list-nav {
color: #fff;
}
.context-dark .list-nav a:hover, .bg-gray-700 .list-nav a:hover, .bg-gray-800 .list-nav a:hover, .bg-primary .list-nav a:hover, .bg-primary-darker .list-nav a:hover {
color: #aeb1be;
}
.list-inline-bordered {
margin-left: -18px;
margin-right: -18px;
color: #495057;
}
.list-inline-bordered > * {
padding-left: 18px;
padding-right: 18px;
}
.list-inline-bordered * {
color: inherit;
}
.list-inline-bordered > li > button {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
transition: .22s;
}
.list-inline-bordered > li > button::-moz-focus-inner {
border: none;
padding: 0;
}
.list-inline-bordered > li {
display: inline-block;
line-height: 24px;
}
.list-inline-bordered > li:not(:last-child) {
border-right: 1px solid #74757f;
}
.context-dark .list-inline-bordered, .bg-gray-700 .list-inline-bordered, .bg-gray-800 .list-inline-bordered, .bg-primary .list-inline-bordered, .bg-primary-darker .list-inline-bordered {
color: #fff;
}
.context-dark .list-inline-bordered button.active, .bg-gray-700 .list-inline-bordered button.active, .bg-gray-800 .list-inline-bordered button.active, .bg-primary .list-inline-bordered button.active, .bg-primary-darker .list-inline-bordered button.active,
.context-dark .list-inline-bordered button:hover,
.bg-gray-700 .list-inline-bordered button:hover,
.bg-gray-800 .list-inline-bLine truncated
|
||||
*
|
||||
* Images
|
||||
*/
img {
display: inline-block;
max-width: 100%;
height: auto;
}
.img-responsive {
width: 100%;
}
/*
|
||||
*
|
||||
* Icons
|
||||
*/
.icon {
display: inline-block;
font-size: 16px;
line-height: 1;
}
.icon::before {
position: relative;
display: inline-block;
font-weight: 400;
font-style: normal;
speak: none;
text-transform: none;
}
.icon-creative {
display: inline-block;
text-align: center;
width: 2em;
height: 2em;
line-height: 2em;
border-radius: 50%;
}
.icon-creative, .icon-creative:active, .icon-creative:focus {
color: #aeb1be;
}
.icon-creative::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
border-radius: inherit;
pointer-events: none;
opacity: 0;
transform: scale3d(0, 0, 0);
transition: .22s;
}
.icon-creative:hover {
color: #fff;
}
.icon-creative:hover::after {
opacity: 1;
transform: scale3d(1, 1, 1);
}
.icon-creative[class*='facebook']::after {
background: #2059a0;
}
.icon-creative[class*='twitter']::after {
background: #00aae6;
}
.icon-creative[class*='instagram']::after {
background: linear-gradient(to top, #f15823 0%, #a7058e 100%);
}
.icon-creative[class*='google']::after {
background: #ff3807;
}
.icon-creative[class*='linkedin']::after {
background: #2881a8;
}
.icon-modern {
width: 2em;
height: 2em;
line-height: 2em;
text-align: center;
border-radius: 50%;
border: 1px solid #e8e9ee;
color: #151515;
}
.icon-circle {
border-radius: 50%;
}
.icon-sm {
font-size: 20px;
}
.icon-md {
font-size: 1.5em;
}
.icon-lg {
font-size: 1.875em;
}
/*
|
||||
*
|
||||
* Tables custom
|
||||
*/
.table {
width: 100%;
max-width: 100%;
text-align: left;
background: #fff;
border-collapse: collapse;
}
.table th,
.table td {
color: #495057;
vertical-align: middle;
}
.table th {
padding: 13px 24px;
border-top: 0;
font-size: 16px;
font-weight: 300;
}
.table thead th {
border-bottom: 1px solid #aeb1be;
}
.table td {
padding: 23px 24px;
}
.table tbody tr:first-child td {
border-top: 0;
}
.table tr td {
border-bottom: 1px solid #e8e9ee;
}
.table tfoot td {
font-weight: 700;
}
* + .table-responsive {
margin-top: 30px;
}
@media (min-width: 768px) {
* + .table-responsive {
margin-top: 40px;
}
}
.table-hover tbody tr {
transition: .55s;
}
.table-hover tbody tr:hover {
background: #f5f6fa;
}
.table-job-positions th,
.table-job-positions td {
white-space: nowrap;
}
.table-job-positions td:first-child {
width: 8%;
padding-right: 6px;
text-align: center;
}
.table-job-positions .position {
color: #0045b6;
}
.table-job-positions time {
display: block;
white-space: nowrap;
}
@media (max-width: 575.98px) {
.table-job-positions th,
.table-job-positions td {
padding-left: 12px;
padding-right: 12px;
}
.table-job-positions td {
padding-top: 10px;
padding-bottom: 10px;
}
}
.table-responsive + .button-lg {
margin-top: 30px;
}
@media (min-width: 1200px) {
.table-responsive + .button-lg {
margin-top: 40px;
}
}
@media (min-width: 1600px) {
.table-responsive + .button-lg {
margin-top: 55px;
}
}
/*
|
||||
*
|
||||
* Dividers
|
||||
*/
hr {
margin-top: 0;
margin-bottom: 0;
border-top: 1px solid #e8e9ee;
}
.context-dark hr, .bg-gray-700 hr, .bg-gray-800 hr, .bg-primary hr, .bg-primary-darker hr {
border-top-color: #74757f;
}
.divider-small {
font-size: 0;
line-height: 0;
}
.divider-small::after {
content: '';
display: inline-block;
width: 70px;
height: 2px;
background-color: #0045b6;
}
.divider-small + h3, .divider-small + .heading-3,
.divider-small-outer + h3, .divider-small-outer + .heading-3 {
margin-top: 20px;
}
/*
|
||||
*
|
||||
* Buttons
|
||||
*/
.button {
position: relative;
overflow: hidden;
display: inline-block;
padding: 13px 35px;
font-size: 14px;
line-height: 1.25;
border: 2px solid;
border-radius: 6px;
font-family: "Poppins", sans-serif;
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
white-space: nowrap;
text-overflow: ellipsis;
text-align: center;
cursor: pointer;
vertical-align: middle;
user-select: none;
transition: 0.25s cubic-bezier(0.2, 1, 0.3, 1);
}
.form-btn {
display: block;
width: 100%;
height: 100%;
}
.button-block {
display: block;
width: 100%;
}
.button-default, .button-default:focus {
color: #aeb1be;
background-color: #495057;
border-color: #495057;
}
.button-default:hover, .button-default:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button.button-primary, .button.button-primary:focus {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button.button-primary:hover, .button.button-primary:active {
color: #fff;
background-color: #232426;
border-color: #232426;
}
html .button.button-primary-lighten, html .button.button-primary-lighten:focus {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
html .button.button-primary-lighten:hover, html .button.button-primary-lighten:active {
color: #fff;
background-color: #232426;
border-color: #232426;
}
.button-accent-outline, .button-accent-outline:focus {
color: #151515;
background-color: transparent;
border-color: #0045b6;
}
.button-accent-outline:hover, .button-accent-outline:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button-primary-outline, .button-primary-outline:focus {
color: #151515;
background-color: transparent;
border-color: #151515;
}
.button-primary-outline:hover, .button-primary-outline:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button-gray-bordered {
border-width: 1px;
}
.button-gray-bordered, .button-gray-bordered:focus {
color: #151515;
background-color: transparent;
border-color: #aeb1be;
}
.button-gray-bordered:hover, .button-gray-bordered:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button-primary-white, .button-primary-white:focus {
color: #111111;
background-color: #fff;
border-color: transparent;
}
.button-primary-white:hover, .button-primary-white:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button.button-facebook, .button.button-facebook:focus {
color: #fff;
background-color: #2059a0;
border-color: #2059a0;
}
.button.button-facebook:hover, .button.button-facebook:active {
color: #fff;
background-color: #2465b5;
border-color: #2465b5;
}
.button.button-twitter, .button.button-twitter:focus {
color: #fff;
background-color: #00aae6;
border-color: #00aae6;
}
.button.button-twitter:hover, .button.button-twitter:active {
color: #fff;
background-color: #01bdff;
border-color: #01bdff;
}
.button.button-google, .button.button-google:focus {
color: #fff;
background-color: #ff3807;
border-color: #ff3807;
}
.button.button-google:hover, .button.button-google:active {
color: #fff;
background-color: #ff4c21;
border-color: #ff4c21;
}
.button-winona {
position: relative;
overflow: hidden;
display: inline-block;
vertical-align: middle;
text-align: center;
}
.button-winona .content-original,
.button-winona .content-dubbed {
vertical-align: middle;
transition: transform 0.3s cubic-bezier(0.2, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.2, 1, 0.3, 1);
}
.button-winona .content-original {
display: block;
}
.button-winona .content-dubbed {
position: absolute;
width: 100%;
top: 50%;
left: 0;
opacity: 0;
transform: translate3d(0, 0, 0);
}
.button-winona:hover .content-original {
opacity: 0;
transform: translate3d(0, -30%, 0);
}
.button-winona:hover .content-dubbed {
opacity: 1;
transform: translate3d(0, 0, 0) translateY(-50%);
}
.button-sm {
padding: 9px 32px;
font-size: 12px;
line-height: 1.5;
}
.button-lg {
padding: 14px 35px;
font-size: 15px;
line-height: 1.5;
}
@media (min-width: 576px) {
.button-lg {
font-size: 16px;
padding-left: 55px;
padding-right: 55px;
}
}
.button-lg--smaller {
padding-left: 35px;
padding-right: 35px;
}
html .button.button-icon {
display: inline-flex;
}
.button-icon {
justify-content: center;
align-items: center;
vertical-align: middle;
}
.button-icon .icon {
position: relative;
top: -1px;
display: inline-block;
vertical-align: middle;
color: inherit;
font-size: 1.55em;
line-height: 1em;
transition: none;
}
.button-icon:hover .icon {
color: inherit;
}
.button-icon-left .icon {
padding-right: 5px;
}
.button-icon-right {
flex-direction: row-reverse;
}
.button-icon-right .icon {
padding-left: 8px;
}
.button-icon.button-icon-only {
padding-left: 20px;
padding-right: 20px;
}
.button-icon.button-lg .icon {
padding-right: 8px;
}
.button-icon.button-lg.button-icon-right .icon {
padding: 0 0 0 8pxLine truncated
|
||||
*
|
||||
* Form styles
|
||||
*/
.rd-form {
position: relative;
text-align: left;
}
.rd-form .button {
min-height: 48px;
}
.rd-form .button-icon-only {
padding-top: 11px;
padding-bottom: 11px;
}
* + .rd-form {
margin-top: 20px;
}
input:-webkit-autofill ~ label,
input:-webkit-autofill ~ .form-validation {
color: #000 !important;
}
.form-wrap {
position: relative;
}
.form-wrap.has-error .form-input {
border-color: #dc0000;
}
.form-wrap.has-focus .form-input {
border-color: #0045b6;
}
* + .form-wrap {
margin-top: 24px;
}
.form-input {
display: block;
width: 100%;
min-height: 48px;
padding: 11px 19px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-image: none;
border-radius: 6px;
-webkit-appearance: none;
transition: .3s ease-in-out;
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
border: 1px solid #c5c6cd;
}
.form-input:focus {
outline: 0;
}
textarea.form-input {
height: 150px;
min-height: 48px;
max-height: 255px;
resize: vertical;
}
.form-label,
.form-label-outside {
margin-bottom: 0;
font-weight: 300;
}
.form-label {
position: absolute;
top: 24px;
left: 0;
right: 0;
padding-left: 19px;
padding-right: 19px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #495057;
pointer-events: none;
text-align: left;
z-index: 9;
transition: .25s;
will-change: transform;
transform: translateY(-50%);
}
.form-label.focus {
opacity: 0;
}
.form-label.auto-fill {
color: #495057;
}
.form-label-outside {
width: 100%;
padding-right: 150px;
margin-bottom: 4px;
font-size: 14px;
color: #aeb1be;
cursor: pointer;
}
.form-label-outside ~ .form-validation {
top: 10px;
}
[data-x-mode='true'] .form-label {
pointer-events: auto;
}
.form-validation {
position: absolute;
right: 15px;
top: 0;
z-index: 11;
margin-top: 3px;
font-size: 10px;
font-weight: 500;
line-height: 12px;
letter-spacing: 0;
color: #dc0000;
transition: .3s;
transform: scale3d(1, 1, 1);
}
.form-validation:empty {
transform: scale3d(1, 0, 1);
}
.form-validation-left .form-validation {
top: 2px;
bottom: auto;
right: auto;
left: 14px;
}
#form-output-global {
position: fixed;
bottom: 30px;
left: 15px;
z-index: 2000;
visibility: hidden;
transform: translate3d(-500px, 0, 0);
transition: .3s all ease;
}
#form-output-global.active {
visibility: visible;
transform: translate3d(0, 0, 0);
}
@media (min-width: 576px) {
#form-output-global {
left: 30px;
}
}
.form-output {
position: absolute;
top: 100%;
left: 0;
font-size: 10px;
font-weight: 400;
line-height: 1.2;
margin-top: 2px;
transition: .3s;
opacity: 0;
visibility: hidden;
}
.form-output.active {
opacity: 1;
visibility: visible;
}
.form-output.error {
color: #dc0000;
}
.form-output.success {
color: #98bf44;
}
.radio .radio-custom,
.radio-inline .radio-custom,
.checkbox .checkbox-custom,
.checkbox-inline .checkbox-custom {
opacity: 0;
}
.radio .radio-custom, .radio .radio-custom-dummy,
.radio-inline .radio-custom,
.radio-inline .radio-custom-dummy,
.checkbox .checkbox-custom,
.checkbox .checkbox-custom-dummy,
.checkbox-inline .checkbox-custom,
.checkbox-inline .checkbox-custom-dummy {
position: absolute;
left: 0;
width: 14px;
height: 14px;
outline: none;
cursor: pointer;
}
.radio .radio-custom-dummy,
.radio-inline .radio-custom-dummy,
.checkbox .checkbox-custom-dummy,
.checkbox-inline .checkbox-custom-dummy {
pointer-events: none;
background: #fff;
}
.radio .radio-custom-dummy::after,
.radio-inline .radio-custom-dummy::after,
.checkbox .checkbox-custom-dummy::after,
.checkbox-inline .checkbox-custom-dummy::after {
position: absolute;
opacity: 0;
transition: .22s;
}
.radio .radio-custom:focus,
.radio-inline .radio-custom:focus,
.checkbox .checkbox-custom:focus,
.checkbox-inline .checkbox-custom:focus {
outline: none;
}
.radio input,
.radio-inline input,
.checkbox input,
.checkbox-inline input {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
clip-path: inset(50%);
border: 0;
}
.radio-custom:checked + .radio-custom-dummy:after,
.checkbox-custom:checked + .checkbox-custom-dummy:after {
opacity: 1;
}
.radio,
.radio-inline {
padding-left: 28px;
}
.radio .radio-custom-dummy,
.radio-inline .radio-custom-dummy {
top: 1px;
left: 0;
width: 18px;
height: 18px;
border-radius: 50%;
border: 1px solid #74757f;
}
.radio .radio-custom-dummy::after,
.radio-inline .radio-custom-dummy::after {
content: '';
top: 3px;
right: 3px;
bottom: 3px;
left: 3px;
background: #495057;
border-radius: inherit;
}
.checkbox,
.checkbox-inline {
padding-left: 28px;
}
.checkbox .checkbox-custom-dummy,
.checkbox-inline .checkbox-custom-dummy {
left: 0;
width: 18px;
height: 18px;
margin: 0;
border: 1px solid #74757f;
}
.checkbox .checkbox-custom-dummy::after,
.checkbox-inline .checkbox-custom-dummy::after {
contentLine truncated
|
||||
*
|
||||
* Posts
|
||||
*/
.post-inline {
max-width: 313px;
}
.post-inline-title a {
color: inherit;
}
.post-inline-meta {
transform: translate3d(0, -5px, 0);
margin-bottom: -5px;
margin-left: -10px;
margin-right: -10px;
color: rgba(255, 255, 255, 0.3);
}
.post-inline-meta > * {
margin-top: 5px;
padding-left: 10px;
padding-right: 10px;
}
.post-inline-meta > li {
position: relative;
display: inline-block;
}
.post-inline-meta > li:not(:last-child)::after {
content: '';
position: absolute;
right: 0;
top: 50%;
width: 1px;
height: 1px;
border-radius: 50%;
background: #495057;
}
.post-inline-meta a {
color: inherit;
}
* + .post-inline {
margin-top: 15px;
}
* + .post-inline-meta {
margin-top: 5px;
}
@media (min-width: 768px) {
* + .post-inline {
margin-top: 22px;
}
}
.context-dark .post-inline-title, .bg-gray-700 .post-inline-title, .bg-gray-800 .post-inline-title, .bg-primary .post-inline-title, .bg-primary-darker .post-inline-title {
color: #fff;
}
.context-dark .post-inline-title a:hover, .bg-gray-700 .post-inline-title a:hover, .bg-gray-800 .post-inline-title a:hover, .bg-primary .post-inline-title a:hover, .bg-primary-darker .post-inline-title a:hover {
color: #aeb1be;
}
.context-dark .post-inline-meta > li:not(:last-child)::after, .bg-gray-700 .post-inline-meta > li:not(:last-child)::after, .bg-gray-800 .post-inline-meta > li:not(:last-child)::after, .bg-primary .post-inline-meta > li:not(:last-child)::after, .bg-primary-darker .post-inline-meta > li:not(:last-child)::after {
background: #aeb1be;
}
.context-dark .post-inline-meta a:hover, .bg-gray-700 .post-inline-meta a:hover, .bg-gray-800 .post-inline-meta a:hover, .bg-primary .post-inline-meta a:hover, .bg-primary-darker .post-inline-meta a:hover {
color: #fff;
}
.post-classic {
text-align: left;
}
.post-classic-media {
position: relative;
display: block;
}
.post-classic-media::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(73, 80, 87, 0.4);
transition: .4s ease-in-out;
opacity: 0;
visibility: hidden;
pointer-events: none;
}
.post-classic-media img {
width: 100%;
}
.post-classic-media:hover::before {
opacity: 1;
visibility: visible;
}
.post-classic-meta {
transform: translate3d(0, -3px, 0);
margin-bottom: -3px;
margin-left: -14px;
margin-right: -14px;
color: #aeb1be;
}
.post-classic-meta > * {
margin-top: 3px;
padding-left: 14px;
padding-right: 14px;
}
.post-classic-meta > li {
position: relative;
display: inline-block;
}
.post-classic-meta > li:not(:last-child)::after {
content: '';
position: absolute;
right: 0;
top: 50%;
width: 2px;
height: 2px;
background: #aeb1be;
transform: translate3d(0, -50%, 0);
}
.post-classic-meta a:hover {
color: #343db0;
}
* + .post-classic-meta {
margin-top: 15px;
}
* + .post-classic-title {
margin-top: 9px;
}
@media (max-width: 575.98px) {
.post-classic {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 576px) and (max-width: 767.98px) {
.post-classic-title {
font-size: 17px;
}
}
@media (min-width: 768px) {
.post-classic-meta {
transform: translate3d(0, -5px, 0);
margin-bottom: -5px;
margin-left: -20px;
margin-right: -20px;
}
.post-classic-meta > * {
margin-top: 5px;
padding-left: 20px;
padding-right: 20px;
}
* + .post-classic-meta {
margin-top: 25px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.post-classic-meta {
margin-left: -15px;
margin-right: -15px;
font-size: 14px;
}
.post-classic-meta > * {
padding-left: 15px;
padding-right: 15px;
}
}
.post-modern {
text-align: left;
}
.post-modern-title {
color: #151515;
font-weight: 400;
}
.post-modern-title a:hover {
color: #0045b6;
}
.post-modern-media {
position: relative;
display: block;
}
.post-modern-media::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(73, 80, 87, 0.4);
transition: .22s ease-in-out;
opacity: 0;
visibility: hidden;
pointer-events: none;
}
.post-modern-media img {
width: 100%;
}
.post-modern-media:hover::before {
opacity: 1;
visibility: visible;
}
.post-modern-meta {
transform: translate3d(0, -5px, 0);
margin-bottom: -5px;
margin-left: -15px;
margin-right: -15px;
color: #495057;
font-weight: 500;
}
.post-modern-meta > * {
margin-top: 5px;
padding-left: 15px;
padding-right: 15px;
}
.post-modern-meta > li {
position: relative;
display: inline-block;
line-height: 24px;
font-size: 18px;
}
.post-modern-meta > li:not(:last-child)::after {
content: '';
position: absolute;
right: 0;
top: 50%;
width: 1px;
height: 1.5em;
background: #e8e9ee;
transform: translate3d(0, -50%, 0);
}
.post-modern-meta a:hover {
color: #343db0;
}
.post-modern-meta + p {
color: #151515;
}
* + .post-modern-title {
margin-top: 9px;
}
* + .post-modern-meta {
margin-top: 10px;
}
@media (max-width: 575.98px) {
.post-modern {
max-width: 430px;
margin-left: auto;
marginLine truncated
|
||||
*
|
||||
* Quotes
|
||||
*/
.quote-light-mark {
fill: #aeb1be;
}
.quote-light-cite {
font-size: 20px;
color: #0045b6;
}
.quote-light-caption {
line-height: 1.2;
}
.quote-light-text {
font-size: 16px;
line-height: 1.5;
letter-spacing: 0;
color: #495057;
}
html img.quote-light-image {
display: inline-block;
}
* + .quote-light {
margin-top: 30px;
}
* + .quote-light-caption {
margin-top: 3px;
}
* + .quote-light-mark {
margin-top: 15px;
}
* + .quote-light-text {
margin-top: 8px;
}
* + .quote-light-footer {
margin-top: 20px;
}
@media (min-width: 576px) {
.quote-light-cite {
font-size: 20px;
}
}
@media (min-width: 768px) {
.quote-light-cite {
font-size: 24px;
}
.quote-light-text {
font-size: 21px;
line-height: 1.45;
}
* + .quote-light {
margin-top: 40px;
}
* + .quote-light-mark {
margin-top: 35px;
}
* + .quote-light-text {
margin-top: 15px;
}
* + .quote-light-footer {
margin-top: 30px;
}
}
@media (min-width: 1600px) {
.quote-light-text {
font-size: 24px;
line-height: 1.33333;
}
* + .quote-light {
margin-top: 50px;
}
* + .quote-light-mark {
margin-top: 50px;
}
* + .quote-light-footer {
margin-top: 45px;
}
}
.quote-classic {
text-align: left;
}
.quote-classic-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
margin-bottom: -20px;
margin-left: -20px;
}
.quote-classic-meta:empty {
margin-bottom: 0;
margin-left: 0;
}
.quote-classic-meta > * {
display: inline-block;
margin: 0 0 20px 20px;
}
.quote-classic-avatar {
position: relative;
overflow: hidden;
width: 50px;
height: 50px;
border-radius: 50%;
flex-shrink: 0;
}
.quote-classic-avatar img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.quote-classic-avatar img {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.quote-classic-cite {
font-size: 24px;
line-height: 1.2;
color: #151515;
font-family: "Poppins", sans-serif;
}
.quote-classic-caption {
color: #151515;
}
* + .quote-classic-text {
margin-top: 25px;
}
* + .quote-classic-caption {
margin-top: 0;
}
@media (max-width: 575.98px) {
.quote-classic {
margin-left: auto;
margin-right: auto;
}
}
.quote-modern {
text-align: left;
}
.quote-modern-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
margin-bottom: -20px;
margin-left: -20px;
}
.quote-modern-meta:empty {
margin-bottom: 0;
margin-left: 0;
}
.quote-modern-meta > * {
display: inline-block;
margin: 0 0 20px 20px;
}
.quote-modern-avatar {
position: relative;
overflow: hidden;
z-index: 2;
width: 50px;
height: 50px;
border-radius: 50%;
flex-shrink: 0;
}
.quote-modern-avatar img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.quote-modern-avatar img {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.quote-modern-cite {
font-size: 20px;
line-height: 1.2;
color: #0045b6;
}
.quote-modern-caption {
color: #aeb1be;
}
.quote-modern-mark {
fill: #aeb1be;
}
* + .quote-modern-meta {
margin-top: 25px;
}
* + .quote-modern-caption {
margin-top: 0;
}
* + .quote-modern-text {
margin-top: 10px;
}
.quote-modern-big .quote-modern-text {
font-size: 18px;
line-height: 1.5;
color: #495057;
}
@media (min-width: 992px) {
.quote-modern-big .quote-modern-text {
font-size: 20px;
}
}
@media (min-width: 1200px) {
.quote-modern-big .quote-modern-text {
font-size: 24px;
line-height: 1.33333;
}
.quote-modern-big * + .quote-modern-text {
margin-top: 20px;
}
}
/*
|
||||
*
|
||||
* Thumbnails
|
||||
*/
.video-overlay {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-position: center center;
background-size: cover;
cursor: pointer;
}
.figure-light figcaption {
padding-top: 15px;
color: #74757f;
}
* + .figure-light {
margin-top: 20px;
}
@media (min-width: 1200px) {
* + .figure-light {
margin-top: 40px;
}
}
.figure-card {
position: relative;
overflow: hidden;
display: flex;
}
.figure-card .figure-card-sizer {
display: block;
width: 100%;
}
.figure-card .figure-card-sizer::before {
display: block;
content: '';
visibility: hidden;
padding-bottom: 56.25%;
}
.figure-card img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.figure-card img {
height: 100%;
width: 100%;
left: 0;
top: 0;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.thumbnail-video-1 {
position: relative;
text-align: center;
}
.thumbnail-video-1 .embed-responsive::before {
min-height: 250px;
}
.thumbnail-video-1 .video-overlay {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20px;
z-index: 1;
background-position: 80% center;
}
.thumbnail-video-1 .video-overlay::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.4);
z-index: -1;
}
.thumbnail-video-1 * + .button-video {
margin-top: 25px;
}
.thumbnail-minimal {
position: relative;
overflow: hidden;
display: block;
}
.thumbnail-minimal::before {
content: '';
display: block;
padding-bottom: 100%;
}
.thumbnail-minimal-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.thumbnail-minimal-image {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.thumbnail-minimal-caption {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
background: rgba(0, 69, 182, 0.6);
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease-in-out;
}
.thumbnail-minimal-caption::before {
content: '\f504';
font-family: 'Material Design Icons';
font-size: 30px;
line-height: 1;
color: #fff;
}
.thumbnail-minimal:hover .thumbnail-minimal-caption {
opacity: 1;
visibility: visible;
}
.thumbnail-classic {
position: relative;
overflow: hidden;
display: flex;
text-align: left;
}
.thumbnail-classic * {
color: inherit;
}
.thumbnail-classic, .thumbnail-classic:active, .thumbnail-classic:focus, .thumbnail-classic:hover {
color: #fff;
}
.thumbnail-classic:hover {
color: #fff;
}
.thumbnail-classic > * {
width: 100%;
flex-shrink: 0;
}
.thumbnail-classic-sm .thumbnail-classic-dummy::before {
padding-bottom: 69.18919%;
}
.thumbnail-classic-dummy {
width: 100%;
}
.thumbnail-classic-dummy::before {
content: '';
display: block;
visibility: hidden;
pointer-events: none;
padding-bottom: 73.84615%;
}
.thumbnail-classic-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.thumbnail-classic-image {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.thumbnail-classic-caption {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
justify-content: flex-end;
width: 100%;
padding: 20px;
background: rgba(73, 80, 87, 0.4);
font-size: 14px;
}
.thumbnail-classic-caption * + p {
margin-top: 5px;
}
.thumbnail-classic-title {
font-size: 20px;
line-height: 1.3;
}
@media (max-width: 575.98px) {
.thumbnail-classic {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 768px) {
.thumbnail-classic-caption {
padding: 25px 20px;
}
}
@media (min-width: 992px) {
.thumbnail-classic-lg .thumbnail-classic-dummy::before {
padding-bottom: 147.69231%;
}
}
@media (min-width: 1200px) {
.thumbnail-classic-caption {
padding: 30px 40px;
font-size: 16px;
}
.thumbnail-classic-caption * + p {
margin-top: 8px;
}
.thumbnail-classic-title {
font-size: 24px;
}
}
html:not(.tablet):not(.mobile) .thumbnail-classic-caption {
opacity: 0;
visibility: hidden;
transition: .3s all linear;
background: rgba(73, 80, 87, 0.6);
}
html:not(.tablet):not(.mobile) .thumbnail-classic:hover .thumbnail-classic-caption {
opacity: 1;
visibility: visible;
}
html:not(.tablet):not(.mobile) .hoverdir-item .thumbnail-classic-caption {
opacity: 1;
visibility: visible;
transform: translate(-100%, 0);
}
html:not(.tablet):not(.mobile)[data-x-mode='true'] .Line truncated
|
||||
*
|
||||
* Breadcrumbs
|
||||
*/
.breadcrumbs-custom {
position: relative;
display: flex;
background-color: #495057;
background-position: 20% 20%;
}
.breadcrumbs-custom .breadcrumbs-custom-subtitle {
color: #aeb1be;
}
@media (min-width: 576px) {
.breadcrumbs-custom {
padding: 60px 0;
}
}
@media (min-width: 1200px) {
.breadcrumbs-custom {
padding: 0;
}
}
.breadcrumbs-custom-inner {
display: flex;
min-height: inherit;
width: 100%;
padding: 50px 0 25px;
}
.breadcrumbs-custom-container {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.breadcrumbs-custom-container::before {
content: '';
display: block;
}
.breadcrumbs-custom-path {
margin-left: -15px;
margin-right: -15px;
}
.breadcrumbs-custom-path > * {
padding-left: 15px;
padding-right: 15px;
}
.breadcrumbs-custom-path li {
position: relative;
display: inline-block;
vertical-align: middle;
color: #aeb1be;
}
.breadcrumbs-custom-path li::after {
content: "";
font-family: "FontAwesome";
position: absolute;
top: 51%;
right: -5px;
display: inline-block;
font-size: inherit;
font-style: normal;
color: rgba(255, 255, 255, 0.5);
transform: translate3d(0, -50%, 0);
}
.breadcrumbs-custom-path li:last-child:after {
display: none;
}
.breadcrumbs-custom-path a {
display: inline;
vertical-align: middle;
}
.breadcrumbs-custom-path a, .breadcrumbs-custom-path a:active, .breadcrumbs-custom-path a:focus {
color: #aeb1be;
}
.breadcrumbs-custom-path a:hover {
color: #fff;
}
* + .breadcrumbs-custom-path {
margin-top: 25px;
}
.breadcrumbs-custom-subtitle + .breadcrumbs-custom-title {
margin-top: 15px;
}
@media (min-width: 576px) {
.breadcrumbs-custom-path {
margin-left: -30px;
margin-right: -30px;
}
.breadcrumbs-custom-path > * {
padding-left: 30px;
padding-right: 30px;
}
* + .breadcrumbs-custom-path {
margin-top: 30px;
}
}
@media (min-width: 768px) {
.breadcrumbs-custom {
min-height: 23.75vw;
}
.breadcrumbs-custom-inner {
padding: 80px 0 30px;
}
.breadcrumbs-custom-subtitle + .breadcrumbs-custom-title {
margin-top: 5px;
}
}
@media (min-width: 992px) {
.breadcrumbs-custom-inner {
padding-bottom: 40px;
}
.breadcrumbs-custom-subtitle + .breadcrumbs-custom-title {
margin-top: 10px;
}
}
@media (min-width: 1600px) {
.breadcrumbs-custom {
min-height: 520px;
}
.breadcrumbs-custom-inner {
padding: 130px 0 40px 0;
}
.breadcrumbs-custom-subtitle + .breadcrumbs-custom-title {
margin-top: 20px;
}
}
/*
|
||||
*
|
||||
* Pagination custom
|
||||
*/
.pagination {
font-size: 0;
line-height: 0;
margin-bottom: -10px;
margin-left: -10px;
}
.pagination:empty {
margin-bottom: 0;
margin-left: 0;
}
.pagination > * {
display: inline-block;
margin: 0 0 10px 10px;
}
.page-item {
display: inline-block;
vertical-align: middle;
text-align: center;
font-weight: 700;
}
.page-link {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 48px;
min-height: 48px;
padding: 10px 10px;
border: 0;
border-radius: 6px;
font-family: "Poppins", sans-serif;
font-size: 14px;
font-weight: 500;
line-height: 1.71429;
background-color: #0045b6;
color: #fff;
transition: all 0.3s ease-in-out;
}
.page-link.button-winona * {
line-height: inherit;
}
.page-link.button-winona .content-dubbed {
margin-top: -1px;
}
.page-link:hover, .page-link:focus, .page-link:active {
color: #fff;
background-color: #151515;
}
.page-item.active > .page-link, .page-item.active > .page-link:hover, .page-item.active > .page-link:focus, .page-item.active > .page-link:active {
color: #fff;
background-color: #151515;
}
.page-item.disabled > .page-link, .page-item.disabled > .page-link:hover, .page-item.disabled > .page-link:focus, .page-item.disabled > .page-link:active {
color: #74757f;
background-color: #e8e9ee;
}
.page-item-control .icon::before {
font-family: 'FontAwesome';
font-size: 11px;
line-height: 24px;
}
.page-item-control:first-child .icon::before {
content: '\f053';
margin-left: -1px;
}
.page-item-control:last-child .icon::before {
content: '\f054';
margin-right: -1px;
}
* + .pagination {
margin-top: 35px;
}
@media (min-width: 992px) {
* + .pagination {
margin-top: 55px;
}
}
@media (min-width: 1600px) {
* + .pagination {
margin-top: 70px;
}
}
/*
|
||||
*
|
||||
* Snackbars
|
||||
*/
.snackbars {
padding: 9px 16px;
margin-left: auto;
margin-right: auto;
color: #fff;
text-align: left;
background-color: #0045b6;
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.15);
border-radius: 6px;
font-size: 14px;
}
.snackbars .icon-xxs {
font-size: 18px;
}
.snackbars p span:last-child {
padding-left: 14px;
}
.snackbars-left {
display: inline-block;
margin-bottom: 0;
}
.snackbars-right {
display: inline-block;
float: right;
text-transform: uppercase;
}
.snackbars-right:hover {
text-decoration: underline;
}
@media (min-width: 576px) {
.snackbars {
max-width: 540px;
padding: 12px 15px;
font-size: 15px;
}
}
/*
|
||||
*
|
||||
* Footers
|
||||
*/
.footer-standard h4 + *,
.footer-standard .heading-4 + * {
margin-top: 14px;
}
.footer-standard-main {
padding: 35px 0 15px;
}
.footer-standard-aside {
padding: 30px 0;
}
.footer-standard-aside {
margin-bottom: -18px;
text-align: center;
}
.footer-standard-aside > * {
margin-bottom: 18px;
}
.footer-standard-aside > * {
margin-top: 0;
}
@media (max-width: 575.98px) {
.footer-standard .box-1 {
margin-left: 0;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
.footer-standard .box-1 {
margin-left: 0;
}
}
@media (min-width: 768px) {
.footer-standard h4 + *,
.footer-standard .heading-4 + * {
margin-top: 25px;
}
.footer-standard-main {
padding: 55px 0 20px;
}
.footer-standard-aside {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
margin-left: -20px;
}
.footer-standard-aside > * {
margin-left: 20px;
}
}
@media (min-width: 1200px) {
.footer-standard-main {
padding: 80px 0 50px;
}
}
.footer-minimal {
padding: 30px 0;
}
.footer-minimal-inner {
margin-bottom: -18px;
text-align: center;
}
.footer-minimal-inner > * {
margin-bottom: 18px;
}
.footer-minimal-inner > * {
margin-top: 0;
}
.footer-minimal-inner .rights a {
padding-bottom: 2px;
position: relative;
}
.footer-minimal-inner .rights a:before {
content: '';
position: absolute;
left: 0;
height: 1px;
bottom: 0;
width: 0;
display: block;
transition: all ease .35s;
background-color: #fff;
}
.footer-minimal-inner .rights a:hover {
color: #fff;
}
.footer-minimal-inner .rights a:hover:before {
content: '';
width: 100%;
transition: all ease .35s;
}
@media (min-width: 768px) {
.footer-minimal-inner {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
margin-left: -20px;
}
.footer-minimal-inner > * {
margin-left: 20px;
}
}
.footer-advanced.bg-gray-700 h1, .footer-advanced.bg-gray-700 h2, .footer-advanced.bg-gray-700 h3, .footer-advanced.bg-gray-700 h4, .footer-advanced.bg-gray-700 h5, .footer-advanced.bg-gray-700 h6, .footer-advanced.bg-gray-700 [class^='heading-'] {
color: #aeb1be;
}
.footer-advanced h4 + *,
.footer-advanced .heading-4 + * {
margin-top: 14px;
}
.footer-advanced-main {
padding: 35px 0 15px;
}
.footer-advanced-aside {
padding: 30px 0;
}
.footer-advanced-layout {
margin-bottom: -18px;
text-align: center;
}
.footer-advanced-layout > * {
margin-bottom: 18px;
}
.footer-advanced-layout > * {
margin-top: 0;
}
@media (min-width: 768px) and (max-width: 991.98px) {
.footer-advanced .box-1 {
margin-left: 0;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.footer-advanced-text {
font-size: 14px;
line-height: 1.7;
}
}
.footer-advanced-text {
color: rgba(255, 255, 255, 0.3);
}
@media (min-width: 768px) {
.footer-advanced-main {
padding: 55px 0 20px;
}
.footer-advanced-aside {
padding: 35px 0;
}
.footer-advanced-layout {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
margin-left: -20px;
}
.footer-advanced-layout > * {
margin-left: 20px;
}
.footer-advanced-aside + .container {
margin-top: 10px;
}
}
@media (min-width: 1200px) {
.footer-advanced h4 + *,
.footer-advanced .heading-4 + * {
margin-top: 35px;
}
.footer-advanced-main {
padding: 80px 0 60px;
}
.footer-advanced-aside + .container {
margin-top: 20px;
}
}
.footer-linked.bg-gray-700 h1, .footer-linked.bg-gray-700 h2, .footer-linked.bg-gray-700 h3, .footer-linked.bg-gray-700 h4, .footer-linked.bg-gray-700 h5, .footer-linked.bg-gray-700 h6, .footer-linked.bg-gray-700 [class^='heading-'] {
color: #aeb1be;
}
.footer-linked.bg-gray-700 .list {
color: #fff;
}
.footer-linked.bg-gray-700 .list a:hover {
color: rgba(255, 255, 255, 0.6);
}
.footer-linked h4 + *,
.footer-linked .heading-4 + * {
margin-top: 14px;
}
.footer-linked h4 + hr,
.footer-linked .heading-4 + hr {
margin-top: 15px;
}
.footer-linked * + .row {
margin-top: 25px;
}
.footer-linked-main {
padding: 35px 0 15px;
}
.footer-linked-aside {
padding: 30px 0;
}
.footer-linked-layout {
margin-bottom: -18px;
text-align: center;
}
.footer-linked-layout > * {
margin-bottom: 18px;
}
.footer-linked-layout > * {
margin-top: 0;
}
@media (min-width: 768px) and (max-width: 991.98px) {
.footer-linked .box-1 {
margin-left: 0;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.footer-linked-text {
font-size: 14px;
line-height: 1.7;
}
}
@media (min-width: 768px) {
.footer-linked-main {
padding: 65px 0 40px;
}
.footer-linked-aside {
padding: 30px 0;
}
.footer-linked-layout {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
margin-left: -20px;
}
.footer-linked-layout > * {
margin-left: 20px;
}
.footer-linked-aside + .container {
margin-top: 10px;
}
}
@media (min-width: 1200px) {
.footer-linked Line truncated
|
||||
*
|
||||
* Pricing tables
|
||||
*/
.pricing-minimal {
position: relative;
z-index: 1;
padding: 25px 20px;
border: 1px solid #aeb1be;
border-radius: 6px;
text-align: left;
transition: .22s;
cursor: default;
}
.pricing-minimal:hover {
border-color: #0045b6;
}
.pricing-minimal:hover::before {
visibility: visible;
transform: translate3d(0, 0, 0);
}
.pricing-minimal-price {
font-size: 26px;
line-height: 1;
font-weight: 700;
letter-spacing: 0;
color: #495057;
}
.pricing-minimal-price span {
display: inline;
}
.pricing-minimal-price-currency {
font-size: .65em;
vertical-align: top;
}
.pricing-minimal-divider {
border-bottom: 1px solid #aeb1be;
}
* + .pricing-minimal-price {
margin-top: 10px;
}
* + .pricing-minimal-divider {
margin-top: 20px;
}
@media (max-width: 575.98px) {
.pricing-minimal {
max-width: 350px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 576px) {
.pricing-minimal {
padding: 20px;
}
}
@media (min-width: 768px) {
.pricing-minimal-price {
font-size: 36px;
}
}
@media (min-width: 768px) {
.pricing-minimal {
padding: 30px 38px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.pricing-minimal {
padding: 25px 20px;
}
}
@media (min-width: 1200px) {
.pricing-minimal {
padding: 38px 40px;
}
}
.pricing-modern {
padding: 35px 20px;
border: 1px solid #aeb1be;
border-radius: 6px;
text-align: center;
}
.pricing-modern * + .button {
margin-top: 20px;
}
.pricing-group-modern {
border: 1px solid #aeb1be;
border-radius: 6px;
}
.pricing-group-modern .pricing-modern {
border: 0;
border-radius: 0;
}
.pricing-modern-rating {
color: #0045b6;
}
.pricing-modern-rating > li {
display: inline-block;
width: 26px;
font-size: 30px;
line-height: .9;
}
.pricing-modern-title {
font-weight: 700;
}
.pricing-modern-table {
display: inline-table;
}
.pricing-modern-table td {
padding: 3px 8px;
color: #74757f;
}
.pricing-modern-table td:first-child {
text-align: right;
color: #495057;
}
.pricing-modern-table td:last-child {
text-align: left;
}
.pricing-modern-price {
font-size: 24px;
font-weight: 300;
line-height: 1.2;
}
.pricing-modern-price span {
display: inline;
}
.pricing-modern-price-currency {
font-size: .65em;
vertical-align: top;
}
* + .pricing-group-modern {
margin-top: 35px;
}
* + .pricing-modern-title {
margin-top: 5px;
}
* + .pricing-modern-table {
margin-top: 20px;
}
* + .pricing-modern-price {
margin-top: 15px;
}
@media (max-width: 575.98px) {
.pricing-group-modern {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
.pricing-group-modern .pricing-modern + .pricing-modern {
border-top: 1px solid #aeb1be;
}
}
@media (min-width: 576px) and (max-width: 991.98px) {
.pricing-group-modern .pricing-modern:nth-child(odd) {
border-right: 1px solid #aeb1be;
}
.pricing-group-modern .pricing-modern:nth-child(n + 3) {
border-top: 1px solid #aeb1be;
}
}
@media (min-width: 576px) {
.pricing-group-modern {
display: flex;
flex-wrap: wrap;
}
.pricing-group-modern .pricing-modern {
width: 100%;
max-width: 50%;
}
.pricing-modern {
padding: 55px 20px;
}
* + .pricing-group-modern {
margin-top: 50px;
}
* + .pricing-modern-table {
margin-top: 25px;
}
* + .pricing-modern-price {
margin-top: 30px;
}
}
@media (min-width: 768px) {
.pricing-modern-price {
font-size: 30px;
}
}
@media (min-width: 992px) {
.pricing-group-modern .pricing-modern {
max-width: 25%;
border-right: 1px solid #aeb1be;
}
.pricing-group-modern .pricing-modern:nth-child(4n) {
border-right: 0;
}
.pricing-group-modern .pricing-modern:nth-child(n + 5) {
border-top: 1px solid #aeb1be;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.pricing-modern .button {
display: block;
padding-left: 15px;
padding-right: 15px;
}
}
@media (min-width: 1200px) {
.pricing-modern-price {
font-size: 36px;
}
* + .pricing-modern-table {
margin-top: 35px;
}
* + .pricing-modern-price {
margin-top: 40px;
}
}
@media (min-width: 1600px) {
* + .pricing-group-modern {
margin-top: 75px;
}
}
/*
|
||||
*
|
||||
* Profiles
|
||||
*/
.profile-classic {
text-align: left;
}
.profile-classic-main {
position: relative;
overflow: hidden;
z-index: 1;
border-radius: 6px;
}
.profile-classic-image {
min-width: 100%;
}
.profile-classic-caption {
position: absolute;
left: 0;
right: 0;
bottom: 0;
padding: 10px;
background: rgba(0, 69, 182, 0.6);
}
.profile-classic-caption .icon-creative {
color: #fff;
}
.profile-classic-title {
color: #0045b6;
}
.profile-classic-title a:hover {
color: #343db0;
}
.profile-classic-position {
color: #aeb1be;
}
* + .profile-classic-title {
margin-top: 15px;
}
* + .profile-classic-position {
margin-top: 5px;
}
@media (max-width: 575.98px) {
.profile-classic {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 576px) and (max-width: 767.98px) {
.profile-classic-caption {
padding-left: 5px;
padding-right: 5px;
}
.profile-classic-caption .icon-sm {
font-size: 18px;
}
.profile-classic-caption .group {
margin-left: -3px;
}
.profile-classic-caption .group > * {
margin-left: 3px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.profile-classic-caption {
padding-left: 5px;
padding-right: 5px;
}
.profile-classic-caption .icon-sm {
font-size: 18px;
}
.profile-classic-caption .group {
margin-left: -3px;
}
.profile-classic-caption .group > * {
margin-left: 3px;
}
}
@media (min-width: 1200px) {
* + .profile-classic-title {
margin-top: 20px;
}
}
html:not(.tablet):not(.mobile) .profile-classic:hover .profile-classic-caption {
opacity: 1;
visibility: visible;
}
html:not(.tablet):not(.mobile) .profile-classic-caption {
top: 0;
display: flex;
flex-direction: column;
justify-content: flex-end;
opacity: 0;
visibility: hidden;
transition: .33s ease-in-out;
}
.profile-creative {
display: flex;
margin-left: -15px;
text-align: left;
color: #74757f;
}
.profile-creative > * {
margin-left: 15px;
}
.profile-creative-figure {
position: relative;
overflow: hidden;
max-width: 80px;
flex-shrink: 0;
}
.profile-creative-image {
width: 100%;
border-radius: 6px;
}
.profile-creative-main {
flex-grow: 1;
}
.profile-creative-title a {
color: #151515;
font-weight: 300;
}
.profile-creative-title a:hover {
color: #0045b6;
}
.profile-creative-position {
color: #151515;
}
.profile-creative-contacts {
color: #151515;
}
.profile-creative-contacts a {
color: inherit;
font-weight: 400;
}
.profile-creative-contacts a:hover {
color: #0045b6;
}
* + .profile-creative-position {
margin-top: 0;
}
* + .profile-creative-contacts {
margin-top: 15px;
}
@media (min-width: 576px) {
.profile-creative {
margin-left: -30px;
}
.profile-creative > * {
margin-left: 30px;
}
.profile-creative-figure {
max-width: 22%;
}
}
@media (min-width: 768px) {
.profile-creative-figure {
max-width: 29%;
}
.profile-creative-main {
padding-right: 30px;
}
* + .profile-creative-contacts {
margin-top: 22px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.profile-creative {
margin-left: -20px;
}
.profile-creative > * {
margin-left: 20px;
}
.profile-creative-figure {
max-width: 25%;
}
.profile-creative-main {
padding-right: 10px;
}
}
.profile-minimal {
position: relative;
overflow: hidden;
border-radius: 6px;
color: #fff;
text-align: left;
}
.profile-minimal::before {
content: '';
display: block;
padding-bottom: 100%;
}
.profile-minimal-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.profile-minimal-image {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.profile-minimal-caption {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 25px;
background: rgba(73, 80, 87, 0.4);
}
.profile-minimal-title {
color: #fff;
}
* + .profile-minimal-position {
margin-top: 5px;
}
@media (max-width: 575.98px) {
.profile-minimal {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 1200px) {
.profile-minimal-caption {
padding: 35px;
}
* + .profile-minimal-position {
margin-top: 10px;
}
}
html:not(.tablet):not(.mobile) .profile-minimal:hover .profile-minimal-caption {
opacity: 1;
visibility: visible;
}
html:not(.tablet):not(.mobile) .profile-minimal-caption {
opacity: 0;
visibility: hidden;
transition: .35s ease-in;
background: rgba(73, 80, 87, 0.6);
}
.profile-modern {
text-align: left;
}
.profile-modern > * + * {
margin-top: 35px;
}
.profile-modern-header {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
margin-bottom: -10px;
margin-left: -20px;
}
.profile-modern-header:empty {
margin-bottom: 0;
margin-left: 0;
}
.profile-modern-header > * {
display: inline-block;
margin: 0 0 Line truncated
|
||||
*
|
||||
* Counters
|
||||
*/
.counter-minimal {
position: relative;
text-align: center;
color: #495057;
}
.counter-minimal-icon {
font-size: 24px;
line-height: 1;
color: #0045b6;
}
.counter-minimal-main {
font-family: "Poppins", sans-serif;
font-size: 36px;
font-weight: 500;
line-height: 1.2;
letter-spacing: 0;
}
.counter-minimal-main > * {
display: inline;
font: inherit;
}
.counter-minimal-main span {
display: inline;
}
* + .counter-minimal-title {
margin-top: 10px;
}
* + .counter-minimal-main {
margin-top: 15px;
}
@media (max-width: 575.98px) {
.counter-minimal-title {
font-size: 16px;
line-height: 1.4;
}
}
@media (min-width: 768px) {
.counter-minimal-icon {
font-size: 28px;
}
}
@media (min-width: 768px) {
.counter-minimal-title {
font-size: 18px;
}
.counter-minimal-main {
font-size: 48px;
}
}
@media (min-width: 1200px) {
* + .counter-minimal-main {
margin-top: 25px;
}
* + .counter-minimal-title {
margin-top: 18px;
}
}
/*
|
||||
*
|
||||
* Layouts
|
||||
*/
.layout-bordered {
text-align: center;
}
.layout-bordered-item {
border: 0 solid #d3d5db;
}
.layout-bordered-item-inner {
display: flex;
flex-direction: column;
justify-content: center;
max-width: 290px;
padding: 0 15px;
margin-left: auto;
margin-right: auto;
}
.layout-bordered-item-inner a {
color: #151515;
}
.layout-bordered-item-inner > * + * {
margin-top: 10px;
}
@media (max-width: 767.98px) {
.layout-bordered-item {
padding: 30px 0;
}
.layout-bordered-item:first-child {
padding-top: 0;
}
.layout-bordered-item:last-child {
padding-bottom: 0;
}
.layout-bordered-item + .layout-bordered-item {
border-top-width: 1px;
}
}
@media (min-width: 768px) {
.layout-bordered {
display: flex;
}
.layout-bordered-item {
flex-grow: 1;
}
.layout-bordered-item-inner > * + * {
margin-top: 15px;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
.layout-bordered-item {
font-size: 15px;
}
}
@media (min-width: 768px) {
.layout-bordered-item {
flex-basis: 33.333%;
border-right-width: 1px;
}
.layout-bordered-item:first-child {
border-left-width: 1px;
}
}
.layout-navbar-demo {
position: relative;
overflow: hidden;
min-height: 400px;
background: #e8e9ee;
}
.layout-navbar-demo.layout-navbar-demo-lg {
min-height: 650px;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-panel {
position: relative;
z-index: 10;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-nav-wrap {
position: absolute;
z-index: 9;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-main-outer,
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-main-element {
position: static;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-search {
position: static;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-panel .rd-navbar-search-toggle {
position: static;
z-index: 10;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-block {
top: -1px;
right: 10px;
white-space: nowrap;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-block > * {
display: inline-block;
margin-top: 0;
white-space: normal;
vertical-align: middle;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-block > * + * {
margin-left: 8px;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-block .rd-navbar-search-toggle {
margin-top: 6px;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-popup {
position: absolute;
}
.layout-navbar-demo .rd-navbar-fixed.rd-navbar [class*='rd-navbar-fixed-element'] {
position: absolute;
z-index: 1000;
}
.layout-navbar-demo .rd-navbar-fixed.rd-navbar .rd-search {
position: absolute;
z-index: 1;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-collapse-content {
position: absolute;
z-index: 1;
}
@media (min-width: 1200px) {
.layout-navbar-demo {
min-height: 550px;
}
.layout-navbar-demo.layout-navbar-demo-lg {
min-height: 650px;
}
}
.container + .layout-navbar-demo {
margin-top: 20px;
}
.blog-layout-aside {
padding: 4px 0;
background: #f5f6fa;
}
.blog-layout-aside .rd-search .form-input {
border-color: transparent;
}
.blog-layout-aside-item {
padding: 25px 30px;
}
.blog-layout-aside-item .blog-layout-aside-title + * {
margin-top: 15px;
}
.blog-layout-aside-item a {
color: #151515;
}
.blog-layout-aside-title {
font-size: 22px;
line-height: 1.5;
}
* + .blog-layout-aside {
margin-top: 55px;
}
@media (min-width: 768px) {
* + .blog-layout-aside {
margin-top: 70px;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
.blog-layout-aside {
columns: 2;
break-inside: avoid;
}
.blog-layout-aside-item {
display: inline-block;
width: 100%;
}
}
@media (min-width: 992px) {
.blog-layout {
display: flex;
align-items: flex-start;
margin-left: -30px;
}
.blog-layout > * {
margin-left: 30px;
}
.blog-layout-main {
flex-grow: 1;
max-width: 66.66667%;
}
.blog-layout-aside {
flex-shrink: 0;
max-width: 33.33333%;
}
* + .blog-layout-aside {
margin-top: 0;
}
}
@media (min-width: 1200px) {
.blog-layout-aside-item {
padding: 35px 40px;
}
}
.blog-layout-aside .list-marked * > a {
transition: all ease .35s;
display: inline-block;
}
.blog-layout-aside .list-marked * > a:hover {
text-indent: 5px;
transition: all ease .35s;
}
/*
|
||||
*
|
||||
* Timeline
|
||||
*/
.timeline-classic {
text-align: left;
}
.timeline-classic-item {
position: relative;
overflow: hidden;
padding: 0 0 70px 35px;
margin-bottom: -25px;
}
.timeline-classic-item:last-child {
padding-bottom: 0;
margin-bottom: 0;
}
.timeline-classic-item-image {
width: 100%;
}
.timeline-classic-item-title {
font-family: "Poppins", sans-serif;
font-size: 24px;
line-height: 1.2;
font-weight: 300;
letter-spacing: 0;
text-transform: uppercase;
}
.thumbnail-classic-item-subtitle {
font-size: 16px;
line-height: 1.5;
color: #151515;
}
.timeline-classic-item-divider {
position: absolute;
top: 0;
left: 0;
display: flex;
flex-grow: 1;
flex-direction: column;
align-items: center;
padding-top: 25px;
}
.timeline-classic-item-divider::before {
content: '';
display: block;
width: 15px;
height: 15px;
border: 2px solid #0045b6;
border-radius: 50%;
}
.timeline-classic-item-divider::after {
content: '';
position: absolute;
top: 40px;
left: 50%;
margin-left: -1px;
width: 2px;
height: 300vh;
background: #0045b6;
min-height: 100px;
}
* + .timeline-classic-item-main {
margin-top: 20px;
}
.context-dark .timeline-classic-item-divider::before, .bg-gray-700 .timeline-classic-item-divider::before, .bg-gray-800 .timeline-classic-item-divider::before, .bg-primary .timeline-classic-item-divider::before, .bg-primary-darker .timeline-classic-item-divider::before {
border-color: #fff;
}
.context-dark .timeline-classic-item-divider::after, .bg-gray-700 .timeline-classic-item-divider::after, .bg-gray-800 .timeline-classic-item-divider::after, .bg-primary .timeline-classic-item-divider::after, .bg-primary-darker .timeline-classic-item-divider::after {
background: #fff;
}
.context-dark .thumbnail-classic-item-subtitle, .bg-gray-700 .thumbnail-classic-item-subtitle, .bg-gray-800 .thumbnail-classic-item-subtitle, .bg-primary .thumbnail-classic-item-subtitle, .bg-primary-darker .thumbnail-classic-item-subtitle {
color: #fff;
}
@media (max-width: 575.98px) {
.timeline-classic-item {
max-width: 450px;
margin-left: auto;
margin-right: auto;
}
}
@media (max-width: 767.98px) {
.timeline-classic-item {
flex-wrap: wrap;
}
.timeline-classic-item-main,
.timeline-classic-item-aside {
width: 100%;
}
}
@media (min-width: 768px) {
.timeline-classic-item {
display: flex;
padding-left: 0;
padding-bottom: 90px;
}
.timeline-classic-item-aside {
max-width: 33.33%;
}
.timeline-classic-item-main {
max-width: 60%;
}
.timeline-classic-item-divider {
position: relative;
padding: 25px 20px 0;
}
.timeline-classic-item-title {
font-size: 32px;
}
.thumbnail-classic-item-subtitle {
font-size: 18px;
line-height: 1.4;
}
* + .timeline-classic-item-main {
margin-top: 0;
}
}
@media (min-width: 992px) {
.timeline-classic-item * + h4,
.timeline-classic-item * + .heading-4 {
margin-top: 20px;
}
.timeline-classic-item-title {
font-size: 36px;
}
.thumbnail-classic-item-subtitle {
font-size: 20px;
line-height: 1.4;
}
.timeline-classic-item-aside {
max-width: 37%;
}
.timeline-classic-item-main {
max-width: 50%;
}
}
@media (min-width: 1200px) {
.timeline-classic-item-aside {
max-width: 33.33%;
}
.timeline-classic-item-title {
font-size: 48px;
}
}
@media (min-width: 1600px) {
.timeline-classic-item {
padding-bottom: 125px;
}
.timeline-classic-item * + h4,
.timeline-classic-item * + .heading-4 {
margin-top: 30px;
}
}
/*
|
||||
*
|
||||
* Careers
|
||||
*/
.career-classic {
text-align: left;
}
.career-classic-divider {
border-bottom: 1px solid #aeb1be;
}
.career-classic-list {
transform: translate3d(0, -10px, 0);
margin-bottom: -10px;
margin-left: -20px;
margin-right: -20px;
}
.career-classic-list > * {
margin-top: 10px;
padding-left: 20px;
padding-right: 20px;
}
.career-classic-list > li {
display: inline-block;
vertical-align: middle;
white-space: nowrap;
}
.career-classic-list > li > * {
display: inline-block;
vertical-align: middle;
}
.career-classic-list > li > * + * {
margin-left: 8px;
}
.career-classic-list .icon {
font-size: 1.25em;
color: #0045b6;
}
* + .career-classic-divider {
margin-top: 10px;
}
* + .career-classic-list {
margin-top: 15px;
}
@media (max-width: 575.98px) {
.career-classic {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 768px) {
* + .career-classic-divider {
margin-top: 20px;
}
* + .career-classic-list {
margin-top: 20px;
}
}
/*
|
||||
*
|
||||
* Comments
|
||||
*/
.comment-classic {
display: flex;
align-items: flex-start;
text-align: left;
padding-bottom: 20px;
border-bottom: 1px solid #e8e9ee;
}
.comment-classic > * + * {
margin-left: 20px;
}
.comment-classic-figure {
position: relative;
flex-shrink: 0;
width: 48px;
height: 48px;
}
.comment-classic-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
border-radius: 50%;
max-width: none;
}
@supports (object-fit: cover) {
.comment-classic-image {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.comment-classic-main {
flex-grow: 1;
}
.comment-classic-name {
color: #0045b6;
}
.comment-classic-text {
color: #495057;
}
.comment-classic-meta {
display: flex;
align-items: center;
justify-content: space-between;
}
.comment-classic-meta time {
color: #74757f;
}
.comment-classic-reply {
font-size: 24px;
line-height: 1;
color: #aeb1be;
}
.comment-classic-reply::before {
content: '\f549';
font-family: 'Material Design Icons';
}
.comment-classic-reply:hover {
color: #0045b6;
}
* + .comment-classic-text {
margin-top: 8px;
}
* + .comment-classic-meta {
margin-top: 5px;
}
@media (min-width: 576px) {
.comment-classic > * + * {
margin-left: 25px;
}
.comment-classic-reply {
font-size: 28px;
}
}
.comment-classic-group .comment-classic-group {
margin-left: 25px;
}
.comment-classic-group * + .comment-classic-group {
margin-top: 30px;
}
* + .comment-classic-group {
margin-top: 50px;
}
.comment-classic-group + .comment-classic-group {
margin-top: 30px;
}
@media (min-width: 768px) {
.comment-classic-group .comment-classic-group {
margin-left: 75px;
}
}
/*
|
||||
*
|
||||
* Jumbotron Classic
|
||||
*/
.jumbotron-classic.bg-gray-700 h6,
.jumbotron-classic.bg-gray-700 .heading-6 {
color: #fff;
}
.jumbotron-classic.parallax-container {
background-position: 60% center;
}
.jumbotron-classic .parallax-content {
width: 100%;
}
.jumbotron-classic-content {
max-width: 650px;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.jumbotron-classic-content .title-docor-text:before {
top: 50%;
}
@media (max-width: 1599.98px) {
.jumbotron-classic-content {
padding: 120px 0;
}
}
@media (max-width: 767.98px) {
.jumbotron-classic-content {
padding: 60px 0 80px 0;
}
}
@media (max-width: 1199.98px) {
.jumbotron-classic.parallax-container::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
background: linear-gradient(to right, rgba(73, 80, 87, 0.6), rgba(73, 80, 87, 0.2));
}
}
@media (min-width: 768px) {
.jumbotron-classic-inner {
padding: 200px 0 140px;
}
}
@media (min-width: 1600px) {
.jumbotron-classic-content {
padding: 200px 0 150px;
}
}
.jumbotron-modern {
position: relative;
display: flex;
text-align: center;
}
.jumbotron-modern-inner {
position: relative;
z-index: 1;
display: flex;
align-items: center;
width: 100%;
padding: 50px 0;
}
.jumbotron-modern-content {
max-width: 770px;
margin-left: auto;
margin-right: auto;
}
@media (max-width: 767.98px) {
.jumbotron-modern .form-layout-1 {
display: inline-block;
max-width: 360px;
}
}
@media (max-width: 1199.98px) {
.jumbotron-modern::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
background: linear-gradient(to bottom, rgba(73, 80, 87, 0.4), rgba(73, 80, 87, 0));
}
}
@media (min-width: 768px) {
.jumbotron-modern-inner {
padding: 100px 0 140px;
}
}
@media (min-width: 1200px) {
.jumbotron-modern-inner {
min-height: 41.66667vw;
}
}
.jumbotron-indigo-header {
padding: 40px 0;
}
.jumbotron-indigo-main {
padding: 10px 0 40px;
}
@media (min-width: 768px) {
.jumbotron-indigo-header {
padding: 50px 0;
}
.jumbotron-indigo-main {
padding: 50px 0 185px;
}
}
/*
|
||||
*
|
||||
* Page layout
|
||||
*/
.page {
position: relative;
overflow: hidden;
min-height: 100vh;
}
.page.fadeIn {
animation-timing-function: ease-out;
}
.page.fadeOut {
animation-timing-function: ease-in;
}
[data-x-mode] .page {
opacity: 1;
}
html.boxed body {
background: #f5f6fa url(../images/bg-pattern-boxed.png) repeat fixed;
}
@media (min-width: 1630px) {
html.boxed .page {
max-width: 1600px;
margin-left: auto;
margin-right: auto;
box-shadow: 0 0 23px 0 rgba(1, 1, 1, 0.1);
}
html.boxed .rd-navbar-static {
max-width: 1600px;
margin-left: auto;
margin-right: auto;
}
html.boxed .rd-navbar-static.rd-navbar--is-stuck {
max-width: 1600px;
width: 100%;
left: calc(50% - 1600px);
right: calc(50% - 1600px);
}
}
.page-header-navbar {
position: relative;
z-index: 1080;
}
.page-header-navbar .rd-navbar-wrap {
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 1080;
}
/*
|
||||
*
|
||||
* Text styling
|
||||
*/
.text-italic {
font-style: italic;
}
.text-normal {
font-style: normal;
}
.text-underline {
text-decoration: underline;
}
.text-strike {
text-decoration: line-through;
}
.font-weight-thin {
font-weight: 100;
}
.font-weight-light {
font-weight: 300;
}
.font-weight-regular {
font-weight: 400;
}
.font-weight-medium {
font-weight: 500;
}
.font-weight-sbold {
font-weight: 600;
}
.font-weight-ubold {
font-weight: 900;
}
.text-spacing-0 {
letter-spacing: 0;
}
/*
|
||||
*
|
||||
* Offsets
|
||||
*/
* + p,
* + .list-inline-comma {
margin-top: 16px;
}
h3 + p, .heading-3 + p,
h3 + .p, .heading-3 + .p {
margin-top: 18px;
}
h4 + p, .heading-4 + p,
h4 + .p, .heading-4 + .p {
margin-top: 16px;
}
* + h1,
* + .heading-1 {
margin-top: 15px;
}
h3 + h1, h3 + .heading-1,
.heading-3 + h1, .heading-3 + .heading-1 {
margin-top: 5px;
}
h6 + h1,
h6 + .heading-1,
.heading-6 + h1,
.heading-6 + .heading-1 {
margin-top: 10px;
}
* + h4,
* + .heading-4 {
margin-top: 15px;
}
* + h5,
* + .heading-5 {
margin-top: 15px;
}
h6 + p,
.heading-6 + p {
margin-top: 22px;
}
p + h2,
p + .heading-2 {
margin-top: 15px;
}
p + p {
margin-top: 14px;
}
img + p {
margin-top: 15px;
}
h3 + p {
font-size: 16px;
}
h3 + img {
margin-top: 42px;
}
p + hr {
margin-top: 35px;
}
* + .row {
margin-top: 30px;
}
* + .big {
margin-top: 20px;
}
* + .text-block {
margin-top: 25px;
}
* + .button,
* + .button-outer {
margin-top: 25px;
}
* + .list-sm {
margin-top: 25px;
}
* + form.form-inline {
margin-top: 18px;
}
* + form.rd-form-small {
margin-top: 25px;
}
html * + .offset-top-1 {
margin-top: 40px;
}
html * + .offset-top-2 {
margin-top: 50px;
}
html * + .offset-top-3 {
margin-top: 20px;
}
html * + .offset-top-4 {
margin-top: 18px;
}
html .page * + .offset-top-5 {
margin-top: 40px;
}
h3 + .row, .heading-3 + .row,
h3 + .owl-carousel, .heading-3 + .owl-carousel {
margin-top: 35px;
}
.container + .container {
margin-top: 35px;
}
.container + .section {
margin-top: 25px;
}
.row + .row {
margin-top: 35px;
}
.row + .button-lg {
margin-top: 30px;
}
.list-sm + .group-xs {
margin-top: 20px;
}
@media (min-width: 768px) {
* + p,
* + .list-inline-comma {
margin-top: 20px;
}
* + .big {
margin-top: 25px;
}
* + .button,
* + .button-outer {
margin-top: 34px;
}
* + .row {
margin-top: 40px;
}
* + .text-block {
margin-top: 30px;
}
.container + .section {
margin-top: 30px;
}
.row + .button-lg {
margin-top: 45px;
}
html * + .offset-top-2 {
margin-top: 50px;
}
}
@media (min-width: 992px) {
* + h1,
* + .heading-1 {
margin-top: 22px;
}
h3 + p, .heading-3 + p,
h3 + .p, .heading-3 + .p {
margin-top: 24px;
}
h3 + .row, .heading-3 + .row,
h3 + .owl-carousel, .heading-3 + .owl-carousel {
margin-top: 55px;
}
html * + .offset-top-1 {
margin-top: 60px;
}
html * + .offset-top-3 {
margin-top: 30px;
}
html * + .offset-top-4 {
margin-top: 24px;
}
html .page * + .offset-top-5 {
margin-top: 60px;
}
.progress-linear + .button {
margin-top: 55px;
}
.row + .group {
margin-top: 45px;
}
}
@media (min-width: 1200px) {
* + .button,
* + .button-outer {
margin-top: 40px;
}
* + .rd-form {
margin-top: 40px;
}
h3 + p, .heading-3 + p,
h3 + .p, .heading-3 + .p {
margin-top: 20px;
}
html * + .offset-top-1 {
margin-top: 70px;
}
.container + .container {
margin-top: 60px;
}
.row + .row {
margin-top: 60px;
}
}
@media (min-width: 1600px) {
h3 + .row, .heading-3 + .row,
h3 + .owl-carousel, .heading-3 + .owl-carousel {
margin-top: 75px;
}
html * + .offset-top-1 {
margin-top: 144px;
}
html * + .offset-top-2 {
margin-top: 50px;
}
.row + .button-lg {
margin-top: 70px;
}
}
.row-0 {
margin-bottom: 0px;
}
.row-0:empty {
margin-bottom: 0;
}
.row-0 > * {
margin-bottom: 0px;
}
.row-10 {
margin-bottom: -10px;
}
.row-10:empty {
margin-bottom: 0;
}
.row-10 > * {
margin-bottom: 10px;
}
.row-x-10 {
margin-bottom: -10px;
margin-left: -5px;
margin-right: -5px;
}
.row-x-10:empty {
margin-bottom: 0;
}
.row-x-10 > * {
margin-bottom: 10px;
}
.row-x-10 > [class*='col'] {
padding-left: 5px;
padding-right: 5px;
}
.row-20 {
margin-bottom: -20px;
}
.row-20:empty {
margin-bottom: 0;
}
.row-20 > * {
margin-bottom: 20px;
}
.row-30 {
margin-bottom: -30px;
}
.row-30:empty {
margin-bottom: 0;
}
.row-30 > * {
margin-bottom: 30px;
}
.row-50 {
margin-bottom: -50px;
}
.row-50:empty {
margin-bottom: 0;
}
.row-50 > * {
margin-bottom: 50px;
}
.row-60 {
margin-bottom: -50px;
}
.row-60:empty {
margin-bottom: 0;
}
.row-60 > * {
margin-bottom: 50px;
}
.row-45 {
margin-bottom: -45px;
}
.row-45:empty {
margin-bottom: 0;
}
.row-45 > * {
margin-bottom: 45px;
}
@media (min-width: 768px) {
.row-md-50 {
margin-bottom: -50px;
}
.row-md-50:empty {
margin-bottom: 0;
}
.row-md-50 > * {
margin-bottom: 50px;
}
}
@media (min-width: 992px) {
.row-md-30 {
margin-bottom: -30px;
}
.row-md-30:empty {
margin-bottom: 0;
}
.row-md-30 > * {
margin-bottom: 30px;
}
}
@media (min-width: 1600px) {
.row-xxl-70 {
margin-bottom: -70px;
}
.row-xxl-70:empty {
margin-bottom: 0;
}
.row-xxl-70 > * {
margin-bottom: 70px;
}
}
/*
|
||||
*
|
||||
* Sections
|
||||
*/
.section-xs {
padding: 30px 0;
}
.section-sm {
padding: 35px 0;
}
.section-sm.section-first {
padding-top: 65px;
}
.section-sm.section-last {
padding-bottom: 80px;
}
.section-md,
.section-lg,
.section-xl {
padding: 50px 0;
}
.section-1 {
padding: 35px 0;
}
.section-collapse + .section-collapse {
padding-top: 0;
}
.section-collapse:last-child {
padding-bottom: 0;
}
html [class*='section-'].section-bottom-0 {
padding-bottom: 0;
}
@media (min-width: 576px) {
.section-xs {
padding: 40px 0;
}
}
@media (min-width: 768px) {
.section-sm {
padding: 45px 0;
}
.section-sm.section-first {
padding-top: 90px;
}
.section-sm.section-last {
padding-bottom: 90px;
}
.section-md {
padding: 60px 0;
}
.section-lg {
padding: 72px 0;
}
.section-lg.section-first {
padding-top: 100px;
}
.section-lg.section-last {
padding-bottom: 100px;
}
.section-xl {
padding: 80px 0;
}
.section-1 {
padding: 60px 0;
}
}
@media (min-width: 992px) {
.section-md {
padding: 60px 0 70px;
}
.section-xl {
padding: 100px 0;
}
.section-1 {
padding: 80px 0;
}
}
@media (min-width: 1200px) {
.section-sm {
padding: 60px 0;
}
.section-sm.section-first {
padding-top: 80px;
}
.section-sm.section-last {
padding-bottom: 80px;
}
}
@media (min-width: 1600px) {
.section-sm.section-first {
padding-top: 120px;
}
.section-sm.section-last {
padding-bottom: 120px;
}
.section-md {
padding: 85px 0 95px;
}
.section-lg {
padding: 120px 0;
}
.section-lg.section-first {
padding-top: 120px;
}
.section-lg.section-last {
padding-bottom: 120px;
}
.section-xl {
padding: 160px 0;
}
.section-1 {
padding: 90px 0 100px;
}
}
.section-single {
display: flex;
}
.section-single::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
background: rgba(21, 21, 21, 0.4);
}
.section-single * + .rd-mailform-wrap {
margin-top: 35px;
}
.section-single * + .countdown-wrap {
margin-top: 30px;
}
.section-single .countdown-wrap + * {
margin-top: 35px;
}
.section-single-dummy {
visibility: hidden;
pointer-events: none;
}
.section-single-header {
padding: calc(1em + 3vh) 0 calc(1em + 2vh);
}
.section-single-main {
padding: calc(1em + 4vh) 0;
}
.section-single-footer {
padding: calc(1em + 2vh) 0 calc(1em + 3vh);
}
.section-single-inner {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
width: 100%;
min-height: 100vh;
padding-top: 6vh;
}
.section-single-inner > * {
width: 100%;
}
@supports (display: grid) {
.section-single-inner {
display: grid;
justify-items: center;
align-content: space-between;
grid-template-columns: 1fr;
}
}
@media (max-width: 575.98px) {
.section-single .section-single-main-content {
max-width: 240px;
margin-left: auto;
margin-right: auto;
}
}
@media (max-width: 767.98px) {
.section-single .button-lg {
font-size: 15px;
padding-left: 25px;
padding-right: 25px;
}
}
@media (min-width: 768px) {
.section-single::before {
display: none;
}
.section-single-inner {
padding-top: 7vh;
}
}
@media (min-width: 1200px) {
.section-single * + .countdown-wrap {
margin-top: 50px;
}
.section-single .countdown-wrap + * {
margin-top: 50px;
}
}
.section-overlap {
position: relative;
padding: 40px 0;
}
.section-overlap .row {
flex-wrap: nowrap;
flex-direction: column;
align-items: flex-end;
}
.section-overlap [class*='col'] {
flex-basis: auto;
}
.section-overlap * + [class*='col'] {
margin-top: 10px;
}
.section-overlap * + .col-offset-1 {
margin-top: 20px;
}
.section-overlap-image {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
}
.section-overlap-content {
position: relative;
z-index: 1;
}
@media (max-width: 767.98px) {
.section-overlap-content .container {
padding: 20px 15px;
background: linear-gradient(to right, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.8));
}
.section-overlap-content .container > * {
max-width: 380px;
}
}
@media (max-width: 767.98px) and (min-width: 576px) {
.section-overlap-content .container {
padding: 40px 50px;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
.section-overlap-image::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
pointer-events: none;
background: linear-gradient(to left, rgba(245, 246, 250, 0.4), rgba(245, 246, 250, 0));
}
}
@media (min-width: 768px) {
.section-overlap {
padding: 75px 0;
}
.section-overlap * + [class*='col'] {
margin-top: 20px;
}
.section-overlap * + .col-offset-1 {
margin-top: 40px;
}
.section-overlap-image {
background-position: 80% 50%;
width: calc(50% - 60px + 35px);
}
}
@media (min-width: 992px) {
.section-overlap {
padding: 100px 0;
}
.section-overlap-image {
width: calc(50% - -80Line truncated
|
||||
*
|
||||
* Grid modules
|
||||
*/
.range {
display: flex;
flex-wrap: wrap;
}
.cell-inner {
width: 100%;
padding-right: 15px;
padding-left: 15px;
}
.range > [class*='cell'] {
position: relative;
width: 100%;
min-height: 1px;
}
.range > [class*='cell'] > .row {
margin: 0;
}
.range > [class*='cell'].container {
padding: 0;
}
.range > [class*='col'] {
padding: 0;
}
@media (min-width: 576px) {
.cell-sm-6 {
flex: 0 0 50%;
max-width: 50%;
}
.cell-sm-6 .cell-inner {
max-width: 270px;
}
.range > [class*='cell-sm']:nth-child(odd) .cell-inner {
margin-left: auto;
}
.range.flex-sm-row-reverse > [class*='cell-sm']:nth-child(odd) .cell-inner {
margin-left: 0;
}
.range.flex-sm-row-reverse > [class*='cell-sm']:nth-child(even) .cell-inner {
margin-left: auto;
}
.range > [class*='cell-sm'].container {
margin: 0;
}
}
@media (min-width: 768px) {
.range > [class*='cell-md']:nth-child(odd) .cell-inner {
margin-left: auto;
}
.range.flex-md-row-reverse > [class*='cell-md']:nth-child(odd) .cell-inner {
margin-left: 0;
}
.range.flex-md-row-reverse > [class*='cell-md']:nth-child(even) .cell-inner {
margin-left: auto;
}
.range > [class*='cell-md'].container {
margin: 0;
}
}
@media (min-width: 992px) {
[class*='cell-lg'] > .row > [class*='col'] {
flex-basis: 100%;
}
.cell-lg-5 {
flex: 0 0 calc(50% - 80px);
max-width: calc(50% - 80px);
}
.cell-lg-5 .cell-inner {
max-width: 400px;
}
.cell-lg-6 {
flex: 0 0 50%;
max-width: 50%;
}
.cell-lg-6 .cell-inner {
max-width: 480px;
}
.range > [class*='cell-lg']:nth-child(odd) .cell-inner {
margin-left: auto;
}
.range.flex-lg-row-reverse > [class*='cell-lg']:nth-child(odd) .cell-inner {
margin-left: 0;
}
.range.flex-lg-row-reverse > [class*='cell-lg']:nth-child(even) .cell-inner {
margin-left: auto;
}
.range > [class*='cell-lg'].container {
margin: 0;
}
}
@media (min-width: 1200px) {
.range > [class*='cell-xl'].container {
margin: 0;
}
.range > [class*='cell-xl']:nth-child(odd) .cell-inner {
margin-left: auto;
}
.range .cell-inner {
flex-basis: 100%;
}
.cell-xl-7 {
flex: 0 0 calc(50% - -100px);
max-width: calc(50% - -100px);
}
.cell-xl-7 .cell-inner {
max-width: 700px;
}
.cell-lg-6,
.cell-xl-6 {
flex: 0 0 50%;
max-width: 50%;
}
.cell-lg-6 .cell-inner,
.cell-xl-6 .cell-inner {
max-width: 600px;
}
.cell-xl-5 {
flex: 0 0 calc(50% - 100px);
max-width: calc(50% - 100px);
}
.cell-xl-5 .cell-inner {
max-width: 500px;
}
.cell-xl-4 {
flex: 0 0 calc(50% - 200px);
max-width: calc(50% - 200px);
}
.cell-xl-4 .cell-inner {
max-width: 400px;
}
}
@media (min-width: 1600px) {
.cell-xxl-6 {
flex: 0 0 50%;
max-width: 50%;
}
.cell-xxl-6 .cell-inner {
max-width: 600px;
}
}
/*
|
||||
*
|
||||
* Backgrounds
|
||||
*/
.context-dark, .bg-gray-700, .bg-gray-800, .bg-primary, .bg-primary-darker,
.context-dark h1,
.bg-gray-700 h1,
.bg-gray-800 h1,
.bg-primary h1,
.bg-primary-darker h1, .context-dark h2, .bg-gray-700 h2, .bg-gray-800 h2, .bg-primary h2, .bg-primary-darker h2, .context-dark h3, .bg-gray-700 h3, .bg-gray-800 h3, .bg-primary h3, .bg-primary-darker h3, .context-dark h4, .bg-gray-700 h4, .bg-gray-800 h4, .bg-primary h4, .bg-primary-darker h4, .context-dark h5, .bg-gray-700 h5, .bg-gray-800 h5, .bg-primary h5, .bg-primary-darker h5, .context-dark h6, .bg-gray-700 h6, .bg-gray-800 h6, .bg-primary h6, .bg-primary-darker h6, .context-dark [class^='heading-'], .bg-gray-700 [class^='heading-'], .bg-gray-800 [class^='heading-'], .bg-primary [class^='heading-'], .bg-primary-darker [class^='heading-'] {
color: #fff;
}
.context-dark p a, .bg-gray-700 p a, .bg-gray-800 p a, .bg-primary p a, .bg-primary-darker p a {
color: inherit;
}
.context-dark .big, .bg-gray-700 .big, .bg-gray-800 .big, .bg-primary .big, .bg-primary-darker .big {
color: #fff;
}
.context-dark .brand .brand-logo-dark, .bg-gray-700 .brand .brand-logo-dark, .bg-gray-800 .brand .brand-logo-dark, .bg-primary .brand .brand-logo-dark, .bg-primary-darker .brand .brand-logo-dark {
display: none;
}
.context-dark .brand .brand-logo-light, .bg-gray-700 .brand .brand-logo-light, .bg-gray-800 .brand .brand-logo-light, .bg-primary .brand .brand-logo-light, .bg-primary-darker .brand .brand-logo-light {
display: block;
}
.context-dark .button-primary:hover, .bg-gray-700 .button-primary:hover, .bg-gray-800 .button-primary:hover, .bg-primary .button-primary:hover, .bg-primary-darker .button-primary:hover {
background: #4854ed;
border-color: #4854ed;
}
/**
|
||||
* Light Backgrounds
|
||||
*/
.bg-gray-100 {
background-color: #f5f6fa;
}
/**
|
||||
* Dark Backgrounds
|
||||
*/
.bg-gray-700 {
color: #aeb1be;
background-color: #232426;
}
.bg-gray-700 a {
color: inherit;
}
.bg-gray-700 a:hover {
color: #fff;
}
.bg-gray-700 p a:hover {
color: #fff;
}
.bg-gray-800 {
background-color: #151515;
}
/**
|
||||
* Accent Backgrounds
|
||||
*/
.bg-primary {
background-color: #0045b6;
}
.bg-primary-darker {
background-color: #29293a;
}
/**
|
||||
* Background Image
|
||||
*/
[class*='bg-'] {
background-size: cover;
background-position: center center;
}
@media (max-width: 1199.98px) {
.bg-image-light {
position: relative;
}
.bg-image-light::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(255, 255, 255, 0.1);
}
}
.bg-image-1 {
position: relative;
background-position: 30% 100%;
}
.bg-image-1::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: #495057;
opacity: .6;
}
.bg-image-1 > * {
position: relative;
z-index: 1;
}
@media (min-width: 576px) {
.bg-image-1 {
background-position: 72% 100%;
}
.bg-image-1::before {
opacity: .2;
}
}
@media (min-width: 768px) {
.bg-image-1 {
background-position: 54% 100%;
}
.bg-image-1::before {
display: none;
}
}
@media (min-width: 992px) {
html:not(.tablet):not(.mobile) .bg-fixed {
background-attachment: fixed;
}
}
.primary-overlay {
position: relative;
}
.primary-overlay:before {
position: absolute;
content: '';
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(21, 21, 21, 0.45);
pointer-events: none;
z-index: 1;
display: block;
}
/*
|
||||
*
|
||||
* Utilities custom
|
||||
*/
.height-fill {
position: relative;
display: flex;
flex-direction: column;
align-items: stretch;
}
.height-fill > * {
flex-grow: 1;
flex-shrink: 0;
}
.object-inline {
white-space: nowrap;
}
.object-inline > * {
display: inline-block;
min-width: 20px;
vertical-align: top;
white-space: normal;
}
.object-inline.wow span {
display: inline-block;
}
.object-inline > * + * {
margin-left: 11px;
}
.wow-outer .object-inline span {
display: inline-block;
}
.oh {
position: relative;
overflow: hidden;
}
.text-decoration-lines {
position: relative;
overflow: hidden;
width: 100%;
text-align: center;
}
.text-decoration-lines-content {
position: relative;
display: inline-block;
padding: 0 20px;
}
.text-decoration-lines-content::before, .text-decoration-lines-content::after {
content: '';
position: absolute;
height: 1px;
background: #aeb1be;
top: 50%;
width: 100vw;
}
.text-decoration-lines-content::before {
left: 0;
transform: translate3d(-100%, 0, 0);
}
.text-decoration-lines-content::after {
right: 0;
transform: translate3d(100%, 0, 0);
}
* + .text-decoration-lines {
margin-top: 30px;
}
.text-block > * {
margin-left: .125em;
margin-right: .125em;
}
@media (min-width: 992px) {
.offset-right-1 {
margin-right: 40px;
}
}
.banner {
background-position: center center;
background-size: cover;
}
.phone-frame {
max-width: 296px;
padding: 0 5px;
margin-left: auto;
margin-right: auto;
box-shadow: -46.037px 40.02px 21px 0px rgba(0, 0, 0, 0.02);
}
@media (max-width: 767.98px) {
.phone-frame {
display: none;
}
}
.tip-mark {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2em;
height: 2em;
padding-left: 2px;
margin-bottom: 5px;
font-size: 12px;
line-height: 2em;
vertical-align: middle;
text-align: center;
border-radius: 50%;
border: 1px solid #e8e9ee;
color: #0045b6;
}
/*
|
||||
*
|
||||
* Insets
|
||||
*/
@media (min-width: 576px) {
.inset-left-1 {
padding-left: 10px;
}
}
@media (min-width: 768px) {
.inset-left-1 {
padding-left: 30px;
}
}
@media (min-width: 992px) {
.inset-left-1 {
padding-left: 0;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.inset-left-2 {
padding-left: 30px;
}
}
@media (min-width: 576px) {
.inset-right-1 {
padding-right: 20px;
}
}
@media (min-width: 768px) {
.inset-right-1 {
padding-right: 30px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.inset-right-1 {
padding-right: 0;
}
}
@media (min-width: 992px) {
.inset-right-2 {
padding-right: 30px;
}
}
@media (min-width: 1200px) {
.inset-right-2 {
padding-right: 0;
}
}
@media (min-width: 992px) {
.inset-right-3 {
padding-left: 5px;
}
}
@media (min-width: 1200px) {
.inset-right-3 {
padding-right: 0;
}
}
/*
|
||||
*
|
||||
* Animate.css
|
||||
*/
.animated {
animation-duration: 1s;
animation-fill-mode: both;
opacity: 1;
}
.animated.infinite {
animation-iteration-count: infinite;
}
.animated.hinge {
animation-duration: 2s;
}
html:not(.lt-ie10) .not-animated {
opacity: 0;
}
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.fadeIn {
animation-name: fadeIn;
}
@keyframes fadeInUp {
0% {
opacity: 0;
transform: translate3d(0, 100%, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInUp {
animation-name: fadeInUp;
}
@keyframes fadeInDown {
0% {
opacity: 0;
transform: translate3d(0, -100%, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInDown {
animation-name: fadeInDown;
}
@keyframes fadeInLeft {
0% {
opacity: 0;
transform: translate3d(-100%, 0, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInLeft {
animation-name: fadeInLeft;
}
@keyframes fadeInRight {
0% {
opacity: 0;
transform: translate3d(100%, 0, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInRight {
animation-name: fadeInRight;
}
@keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
.fadeOut {
animation-name: fadeOut;
}
@keyframes slideInDown {
0% {
transform: translate3d(0, -100%, 0);
visibility: visible;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.slideInDown {
animation-name: slideInDown;
}
@keyframes slideInUp {
0% {
transform: translate3d(0, 100%, 0);
visibility: visible;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.slideInUp {
animation-name: slideInUp;
}
@keyframes slideInLeft {
0% {
transform: translate3d(-100%, 0, 0);
visibility: visible;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.slideInLeft {
animation-name: slideInLeft;
}
@keyframes slideInRight {
0% {
transform: translate3d(100%, 0, 0);
visibility: visible;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.slideInRight {
animation-name: slideInRight;
}
@keyframes slideOutDown {
0% {
transform: translate3d(0, 0, 0);
}
100% {
visibility: hidden;
transform: translate3d(0, 100%, 0);
}
}
.slideOutDown {
animation-name: slideOutDown;
}
@keyframes scaleInY {
0% {
top: 0;
bottom: 100%;
}
50% {
transform: scale3d(1, 1, 1);
}
100% {
top: 100%;
bottom: auto;
transform: scale3d(1, 0, 1);
}
}
@keyframes scaleFadeIn {
0% {
height: 0;
}
100% {
height: 100%;
}
}
.scaleFadeIn {
display: flex;
overflow: hidden;
animation-name: scaleFadeIn;
animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.scaleFadeInWrap {
display: flex;
align-items: stretch;
}
.wow-outer {
position: relative;
overflow: hidden;
}
@keyframes scaleInVertical {
0% {
transform: scale3d(1, 0, 1);
}
100% {
transform: scale3d(1, 1, 1);
}
}
.scaleInVertical {
animation-name: scaleInVertical;
}
@keyframes fadeInLeftSmall {
0% {
opacity: 0;
transform: translate3d(-20px, 0, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInLeftSmall {
animation-name: fadeInLeftSmall;
}
@keyframes fadeInUpSmall {
0% {
opacity: 0;
transform: translate3d(0, 20px, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInUpSmall {
animation-name: fadeInUpSmall;
}
@keyframes fadeSlideInDown {
0% {
opacity: 0;
transform: translate3d(0, -50%, 0);
visibility: visible;
}
10% {
opacity: 1;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.fadeSlideInDown {
animation-name: fadeSlideInDown;
}
@keyframes fadeSlideInUp {
0% {
opacity: 0;
transform: translate3d(0, 50%, 0);
visibility: visible;
}
10% {
opacity: 1;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.fadeSlideInUp {
animation-name: fadeSlideInUp;
}
.wow {
backface-visibility: hidden;
}
/*
|
||||
*
|
||||
* Preloader
|
||||
*/
.preloader {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
z-index: 10000;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 20px;
transition: .3s all ease;
pointer-events: none;
backface-visibility: hidden;
}
.preloader::before, .preloader::after {
content: '';
position: absolute;
left: 0;
right: 0;
transition: .2s linear;
transform: translateY(0);
pointer-events: none;
}
.preloader::before {
top: 0;
bottom: 50%;
background: #fff;
}
.preloader::after {
top: 50%;
bottom: 0;
background: #f5f6fa;
}
.preloader.loaded::before, .preloader.loaded::after {
transition: .4s linear;
}
.preloader.loaded::before {
transform: translateY(-100%);
}
.preloader.loaded::after {
transform: translateY(100%);
}
.preloader.loaded .preloader-logo,
.preloader.loaded .preloader-body {
opacity: 0;
visibility: hidden;
transition: 0s;
}
.preloader-logo,
.preloader-body {
transition: 0s .2s;
}
.preloader-logo {
position: relative;
z-index: 10;
transform: translate3d(0, -50%, 0);
padding: 40px;
}
.preloader-body {
position: absolute;
top: 50%;
transform: translate3d(0, -50%, 0);
left: 0;
right: 0;
z-index: 10;
text-align: center;
}
#loadingProgressG {
width: 100vw;
height: 5px;
overflow: hidden;
background: #e8e9ee;
border-radius: 6px;
margin: auto;
}
.loadingProgressG {
background: #0045b6;
margin-top: 0;
margin-left: -100vw;
animation-name: bounce_loadingProgressG;
animation-duration: 2.5s;
animation-iteration-count: infinite;
animation-timing-function: linear;
width: 100vw;
height: 5px;
transition: .5s;
}
@keyframes bounce_loadingProgressG {
0% {
margin-left: -100vw;
}
100% {
margin-left: 100vw;
}
}
/*
|
||||
*
|
||||
* ToTop
|
||||
*/
.ui-to-top {
position: fixed;
right: 15px;
bottom: 15px;
z-index: 100;
width: 48px;
height: 48px;
border-radius: 6px;
color: #fff;
background: #0045b6;
overflow: hidden;
text-align: center;
text-decoration: none;
transition: transform 0.45s ease-in-out, background 0.3s cubic-bezier(0.2, 1, 0.3, 1);
transform: translate3d(0, 100px, 0);
}
.ui-to-top::before, .ui-to-top::after {
content: '\f239';
font-family: 'Material Design Icons';
font-size: 20px;
line-height: 48px;
vertical-align: middle;
transition: transform 0.3s cubic-bezier(0.2, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.2, 1, 0.3, 1);
}
.ui-to-top::before {
display: block;
}
.ui-to-top::after {
position: absolute;
width: 100%;
top: 50%;
left: 0;
opacity: 0;
transform: translate3d(0, 0, 0);
}
.ui-to-top:hover::before {
opacity: 0;
transform: translate3d(0, -30%, 0);
}
.ui-to-top:hover::after {
opacity: 1;
transform: translate3d(0, 0, 0) translateY(-50%);
}
.ui-to-top:hover {
color: #fff;
background: #4854ed;
text-decoration: none;
}
.ui-to-top:focus {
color: #fff;
}
.ui-to-top.active {
transform: translate3d(0, 0, 0);
}
html.mobile .ui-to-top,
html.tablet .ui-to-top {
display: none !important;
}
@media (min-width: 576px) {
.ui-to-top {
right: 40px;
bottom: 40px;
}
}
/*
|
||||
*
|
||||
* RD Navbar
|
||||
*/
@keyframes rd-navbar-slide-down {
0% {
transform: translateY(-100%);
}
100% {
transform: translateY(0);
}
}
@keyframes rd-navbar-slide-up {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-100%);
}
}
.rd-navbar-wrap, .rd-navbar,
.rd-menu,
.rd-navbar-nav,
.rd-navbar-panel, .rd-navbar-static .rd-menu, .rd-navbar-fixed .rd-navbar-nav-wrap, .rd-navbar-fixed .rd-navbar-submenu {
transition: 0.35s all cubic-bezier(0.65, 0.05, 0.36, 1);
}
.rd-navbar--no-transition, .rd-navbar--no-transition * {
transition: none !important;
}
.rd-navbar,
.rd-navbar.rd-navbar--is-clone {
display: none;
}
.rd-navbar.rd-navbar-fixed + .rd-navbar.rd-navbar--is-clone,
.rd-navbar.rd-navbar-sidebar + .rd-navbar.rd-navbar--is-clone {
display: none;
}
.rd-navbar {
display: none;
background: #fff;
}
.rd-navbar-outer {
position: relative;
z-index: 1080;
}
.rd-nav-link {
font: 400 14px/20px "Poppins", sans-serif;
letter-spacing: .08em;
text-transform: uppercase;
}
.rd-navbar-toggle {
display: inline-block;
position: relative;
width: 40px;
height: 40px;
line-height: 40px;
cursor: pointer;
color: #495057;
background-color: transparent;
border: none;
display: none;
}
.rd-navbar-toggle span {
position: relative;
display: block;
margin: auto;
transition: .3s all ease;
}
.rd-navbar-toggle span::after, .rd-navbar-toggle span::before {
content: "";
position: absolute;
left: 0;
top: -6px;
transition: .3s all ease;
}
.rd-navbar-toggle span::after {
top: 5px;
}
.rd-navbar-toggle span::after, .rd-navbar-toggle span::before, .rd-navbar-toggle span {
width: 24px;
height: 2px;
background-color: #495057;
backface-visibility: hidden;
border-radius: 5;
}
.rd-navbar-toggle.active span {
background: transparent;
transition: .01s;
}
.rd-navbar-toggle.active span::before, .rd-navbar-toggle.active span::after {
transform-origin: 50% 50%;
top: 0;
}
.rd-navbar-toggle.active span::before {
transform: rotate(45deg);
}
.rd-navbar-toggle.active span::after {
transform: rotate(-45deg);
}
.rd-navbar-collapse-toggle {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
display: inline-block;
position: relative;
width: 40px;
height: 40px;
line-height: 40px;
cursor: pointer;
color: #495057;
display: none;
}
.rd-navbar-collapse-toggle::-moz-focus-inner {
border: none;
padding: 0;
}
.rd-navbar-collapse-toggle span {
top: 50%;
margin-top: -2.5px;
}
.rd-navbar-collapse-toggle span, .rd-navbar-collapse-toggle span::before, .rd-navbar-collapse-toggle span::after {
position: absolute;
width: 5px;
height: 5px;
line-height: 5px;
text-align: center;
background: #495057;
left: 50%;
margin-left: -2.5px;
border-radius: 50%;
transition: .3s all ease;
}
.rd-navbar-collapse-toggle span::before, .rd-navbar-collapse-toggle span::after {
content: '';
}
.rd-navbar-collapse-toggle span::before {
bottom: 100%;
margin-bottom: 2.5px;
}
.rd-navbar-collapse-toggle span::after {
top: 100%;
margin-top: 2.5px;
}
.rd-navbar-collapse-toggle.active span {
transform: scale(0.7);
}
.rd-navbar-collapse-toggle.active span::before {
transform: translateY(15px);
}
.rd-navbar-collapse-toggle.active span::after {
transform: translateY(-15px);
}
.rd-navbar-brand a {
display: block;
}
.rd-navbar-search {
position: relative;
display: inline-flex;
}
.rd-navbar-search .form-input {
padding-right: 50px;
}
.rd-navbar-search .rd-search-form-submit {
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 50px;
padding: 0;
margin: 0;
border: none;
cursor: pointer;
background-color: transparent;
font-size: 20px;
color: #aeb1be;
transition: .33s;
}
.rd-navbar-search .rd-search-form-submit:hover {
color: #0045b6;
}
.rd-navbar-search .rd-search-results-live {
pointer-events: none;
}
.rd-navbar-search .rd-search-results-live > * {
pointer-events: auto;
}
.rd-navbar-search-toggle {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
}
.rd-navbar-search-toggle::-moz-focus-inner {
border: none;
padding: 0;
}
.rd-navbar-dropdown {
display: none;
}
.rd-navbar-popup {
position: absolute;
padding: 15px 25px 20px 20px;
width: calc(100vw - 10px);
border-radius: 6px;
opacity: 0;
visibility: hidden;
transition: .2s;
overflow: hidden;
background-color: #495057;
}
.rd-navbar-popup::before {
content: '';
position: absolute;
right: 0;
left: 0;
top: 0;
bottom: 0;
z-index: -1;
transform: scale3d(1, 0.1, 1);
transform-origin: 50% 0;
background: #495057;
border-radius: inherit;
transition: .5s;
}
.rd-navbar-popup > * {
position: relative;
z-index: 1;
opacity: 0;
visibility: hidden;
transition: .5s;
transform-origin: 50% 0;
transform: scale3d(1, 0.9, 1);
}
.rd-navbar-popup.active {
opacity: 1;
visibility: visible;
}
.rd-navbar-popup.active > * {
opacity: Line truncated
|
||||
* @subsection RD Navbar Static
|
||||
*/
.rd-navbar-static {
display: block;
position: relative;
}
.rd-navbar-static .rd-nav-item {
display: inline-block;
}
.rd-navbar-static .rd-nav-item.focus .rd-nav-link, .rd-navbar-static .rd-nav-item.opened .rd-nav-link {
color: rgba(255, 255, 255, 0.5);
background: transparent;
}
.rd-navbar-static .rd-nav-item.focus > .rd-navbar-submenu-toggle, .rd-navbar-static .rd-nav-item.opened > .rd-navbar-submenu-toggle {
color: #fff;
}
.rd-navbar-static .rd-nav-item.active .rd-nav-link {
color: rgba(255, 255, 255, 0.5);
background: transparent;
}
.rd-navbar-static .rd-nav-item.active > .rd-navbar-submenu-toggle {
color: #fff;
}
.rd-navbar-static .rd-nav-item.focus > .rd-navbar-submenu-toggle::before,
.rd-navbar-static .rd-nav-item.opened > .rd-navbar-submenu-toggle::before,
.rd-navbar-static .rd-nav-item .rd-nav-link:hover + .rd-navbar-submenu-toggle::before {
transform: rotate(180deg);
color: rgba(255, 255, 255, 0.5);
}
.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle {
margin-left: 4px;
font-family: "Material Design Icons";
font-size: 16px;
cursor: pointer;
color: #fff;
}
.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle::before {
position: relative;
display: inline-block;
transition: .22s;
content: '\f236';
}
.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle:hover {
color: rgba(255, 255, 255, 0.4);
}
.rd-navbar-static .rd-nav-item > .rd-navbar-submenu {
margin-top: 20px;
}
.rd-navbar-static .rd-nav-item + .rd-nav-item {
margin-left: 35px;
}
.rd-navbar-static .rd-nav-link {
position: relative;
display: inline-block;
color: #fff;
transition: .25s;
padding-bottom: 2px;
}
.rd-navbar-static .rd-nav-link:hover {
color: rgba(255, 255, 255, 0.4);
}
.rd-navbar-static .rd-menu {
position: absolute;
z-index: 15;
display: block;
padding: 16px 27px;
margin-top: 22px;
margin-left: -27px;
visibility: hidden;
opacity: 0;
text-align: left;
box-shadow: 0 5px 10px 1px rgba(20, 20, 28, 0.3);
border-radius: 6px;
transform: translate3d(0, 30px, 0);
}
.rd-navbar-static .rd-dropdown-item + .rd-dropdown-item,
.rd-navbar-static .rd-megamenu-list-item + .rd-megamenu-list-item {
margin-top: 7px;
}
.rd-navbar-static .rd-navbar-dropdown {
position: absolute;
left: 0;
width: 290px;
background: #232426;
z-index: 5;
}
.rd-navbar-static .rd-navbar-dropdown .rd-navbar-dropdown {
top: -1px;
left: 100%;
z-index: 2;
margin-top: -15px;
margin-left: 15px;
transform: translate3d(30px, 0, 0);
}
.rd-navbar-static .rd-navbar-dropdown .rd-navbar-dropdown.rd-navbar-open-left {
left: auto;
right: 100%;
margin-left: 0;
margin-right: 15px;
transform: translate3d(-30px, 0, 0);
}
.rd-navbar-static .rd-dropdown-item.focus .rd-dropdown-link, .rd-navbar-static .rd-dropdown-item.opened .rd-dropdown-link {
color: #fff;
}
.rd-navbar-static .rd-dropdown-link {
color: #aeb1be;
}
.rd-navbar-static .rd-dropdown-link:hover {
color: #fff;
}
.rd-navbar-static .rd-navbar-dropdown li > a,
.rd-navbar-static .rd-megamenu-list li > a {
position: relative;
left: -13px;
display: flex;
padding: 4px 18px 4px 0;
text-align: left;
}
.rd-navbar-static .rd-navbar-dropdown li > a, .rd-navbar-static .rd-navbar-dropdown li > a:focus, .rd-navbar-static .rd-navbar-dropdown li > a:active,
.rd-navbar-static .rd-megamenu-list li > a,
.rd-navbar-static .rd-megamenu-list li > a:focus,
.rd-navbar-static .rd-megamenu-list li > a:active {
color: #aeb1be;
}
.rd-navbar-static .rd-navbar-dropdown li > a:hover,
.rd-navbar-static .rd-megamenu-list li > a:hover {
color: #fff;
}
.rd-navbar-static .rd-navbar-dropdown li > a, .rd-navbar-static .rd-navbar-dropdown li > a::before,
.rd-navbar-static .rd-megamenu-list li > a,
.rd-navbar-static .rd-megamenu-list li > a::before {
transition: all .2s ease-in-out;
}
.rd-navbar-static .rd-navbar-dropdown li > a::before,
.rd-navbar-static .rd-megamenu-list li > a::before {
position: relative;
top: -1px;
left: -6px;
display: inline-block;
content: '\f238';
font-family: 'Material Design Icons';
font-size: inherit;
line-height: inherit;
color: #fff;
opacity: 0;
visibility: hidden;
}
.rd-navbar-static .rd-navbar-dropdown li.focus > a,
.rd-navbar-static .rd-navbar-dropdown li.opened > a,
.rd-navbar-static .rd-navbar-dropdown li > a:hover,
.rd-navbar-static .rd-megamenu-list li.focus > a,
.rd-navbar-static .rd-megamenu-list li.opened > a,
.rd-navbar-static .rd-megamenu-list li > a:hover {
left: -13px;
padding-left: 18px;
padding-right: 0;
}
.rd-navbar-static .rd-navbar-dropdown li.focus > a::before,
.rd-navbar-static .rd-navbar-dropdown li.opened > a::before,
.rd-navbar-static .rd-navbar-dropdown li > a:hover::before,
.rd-navbar-static .rd-megamenu-list li.focus > a::before,
.rd-navbar-static .rd-megamenu-list li.opened > a::before,
.rd-navbar-static .rd-megamenu-list li > a:hover::before {
left: -7px;
opacity: 1;
visibility: visible;
}
.rd-navbar-static .rd-navbar-megamenu {
display: flex;
left: 0;
overflow: hidden;
max-width: 7Line truncated
|
||||
*
|
||||
* RD Navbar Fixed
|
||||
*/
.rd-navbar-fixed {
display: block;
width: 100%;
}
.rd-navbar-fixed .rd-navbar-toggle {
display: inline-block;
}
.rd-navbar-fixed .rd-navbar-brand {
position: relative;
top: -2px;
margin-left: 12px;
font-size: 0;
line-height: 0;
text-align: left;
}
.rd-navbar-fixed .rd-navbar-brand img {
max-width: 160px;
max-height: 58px;
width: auto;
height: auto;
}
.rd-navbar-fixed .rd-navbar-panel {
position: fixed;
left: 0;
top: 0;
right: 0;
z-index: 1080;
display: flex;
align-items: center;
height: 56px;
padding: 8px;
}
.rd-navbar-fixed .rd-navbar-nav-wrap {
position: fixed;
left: 0;
top: -56px;
bottom: -56px;
z-index: 1079;
width: 270px;
padding: 112px 0 81px;
overflow-y: auto;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;
font-size: 14px;
line-height: 34px;
transform: translateX(-110%);
}
.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar {
width: 4px;
}
.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar-thumb {
background: #1d73ff;
border: none;
border-radius: 0;
opacity: .2;
}
.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar-track {
background: #0045b6;
border: none;
border-radius: 0;
}
.rd-navbar-fixed .rd-navbar-nav-wrap.active {
transform: translateX(0);
}
.rd-navbar-fixed .rd-navbar-nav {
display: block;
margin: 15px 0;
height: auto;
text-align: left;
}
.rd-navbar-fixed .rd-nav-item {
text-align: left;
}
.rd-navbar-fixed .rd-nav-item + .rd-nav-item {
margin-top: 4px;
}
.rd-navbar-fixed .rd-nav-link {
display: block;
padding: 14px 56px 14px 18px;
}
.rd-navbar-fixed li.opened > .rd-navbar-dropdown {
padding: 4px 0 0;
}
.rd-navbar-fixed li.opened > .rd-navbar-megamenu {
padding-top: 15px;
padding-bottom: 15px;
}
.rd-navbar-fixed li.opened > .rd-menu {
opacity: 1;
height: auto;
}
.rd-navbar-fixed li.opened > .rd-navbar-submenu-toggle::after {
transform: rotate(180deg);
}
.rd-navbar-fixed .rd-menu {
display: none;
transition: opacity 0.3s, height 0.4s ease;
opacity: 0;
height: 0;
overflow: hidden;
}
.rd-navbar-fixed .rd-navbar-submenu {
position: relative;
}
.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown .rd-navbar-submenu-toggle:after {
height: 34px;
line-height: 34px;
}
.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown > li > a {
padding-left: 30px;
}
.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown li li > a,
.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-megamenu ul li li > a {
padding-left: 46px;
}
.rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-dropdown,
.rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-megamenu {
display: block;
}
.rd-navbar-fixed .rd-megamenu-list > li > a,
.rd-navbar-fixed .rd-navbar-dropdown > li > a {
display: block;
padding: 9px 56px 9px 16px;
font-size: 14px;
line-height: 1.5;
}
.rd-navbar-fixed .rd-megamenu-list > li + li,
.rd-navbar-fixed .rd-navbar-dropdown > li + li {
margin-top: 3px;
}
.rd-navbar-fixed .rd-megamenu-list > li > a {
padding-left: 30px;
}
.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title {
position: relative;
display: block;
padding: 0 18px 7px;
font-size: 16px;
line-height: 1.5;
}
.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title::after {
content: '';
position: absolute;
left: 20px;
right: 20px;
bottom: 0;
border-bottom: 1px solid;
}
.rd-navbar-fixed .rd-navbar-megamenu * + .rd-megamenu-list {
margin-top: 11px;
}
.rd-navbar-fixed .rd-navbar-megamenu * + .rd-megamenu-title {
margin-top: 20px;
}
.rd-navbar-fixed .rd-navbar-megamenu > li + li {
margin-top: 20px;
}
.rd-navbar-fixed .rd-navbar-submenu-toggle {
cursor: pointer;
}
.rd-navbar-fixed .rd-navbar-submenu-toggle::after {
content: '\f107';
position: absolute;
top: 0;
right: 0;
width: 56px;
height: 48px;
font: 400 14px "FontAwesome";
line-height: 48px;
text-align: center;
transition: 0.4s all ease;
z-index: 2;
cursor: pointer;
}
.rd-navbar-fixed .rd-navbar-collapse-toggle {
display: block;
top: 8px;
z-index: 1081;
}
.rd-navbar-fixed .rd-navbar-collapse-content {
position: fixed;
right: 0;
top: 56px;
z-index: 1079;
transform: translate3d(0, -10px, 0);
padding: 30px;
width: auto;
border-radius: 0 0 0 6px;
text-align: left;
font-size: 14px;
opacity: 0;
visibility: hidden;
transition: .3s;
}
.rd-navbar-fixed .rd-navbar-collapse-content.active {
transform: translate3d(0, 0, 0);
opacity: 1;
visibility: visible;
}
.rd-navbar-fixed .rd-navbar-collapse-content > * + * {
margin-top: 25px;
}
.rd-navbar-fixed .rd-navbar-main-outer,
.rd-navbar-fixed .rd-navbar-main-element {
position: absolute;
float: left;
width: 100%;
}
.rd-navbar-fixed .rd-navbar-search .rd-search {
position: fixed;
right: 0;
left: 0;
top: 56px;
z-index: 1079;
width: 100%;
opacity: 0;
visibility: hidden;
transition: .3s;
transform: translate3d(0, -100%, 0);
}
.rd-navbar-fixed .rd-navbar-search .rd-search-results-live {
display: none;
}
.rd-navbar-fixed .rd-navbar-search .form-input {
padding-right: 60px;
}
Line truncated
|
||||
*
|
||||
* RD Navbar Sidebar
|
||||
*/
.rd-navbar-sidebar {
display: block;
background: #fff;
}
.rd-navbar-sidebar .rd-navbar-main-outer {
padding-left: 15px;
padding-right: 15px;
}
.rd-navbar-sidebar .rd-navbar-main {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 22px 60px 22px 0;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
transition: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.rd-navbar-sidebar .rd-navbar-main-element {
display: flex;
align-items: center;
}
.rd-navbar-sidebar .rd-navbar-main-element > * + * {
margin-left: 20px;
}
.rd-navbar-sidebar .rd-navbar-toggle {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
display: block;
z-index: 1102;
}
.rd-navbar-sidebar .rd-navbar-panel {
min-width: 200px;
text-align: center;
}
.rd-navbar-sidebar .rd-navbar-brand img {
width: auto;
height: auto;
max-width: 200px;
max-height: 200px;
}
.rd-navbar-sidebar .rd-navbar-nav-wrap {
position: fixed;
top: 0;
bottom: 0;
right: 0;
z-index: 1101;
width: 450px;
padding: 94px 0 0 0;
background: #fff;
transition: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
transform: translateX(100%);
box-shadow: 0 0 13px 0 rgba(174, 177, 190, 0.16);
}
.rd-navbar-sidebar .rd-navbar-nav-wrap.active {
transition-delay: .1s;
transform: translateX(0);
}
.rd-navbar-sidebar .rd-navbar-nav {
height: calc(100vh - 100px);
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
border-top: 1px solid #e8e9ee;
}
.rd-navbar-sidebar .rd-nav-item {
position: relative;
display: block;
padding: 19px 30px 19px 40px;
}
.rd-navbar-sidebar .rd-nav-item.active .rd-nav-link {
color: #0045b6;
}
.rd-navbar-sidebar .rd-nav-item .rd-nav-link,
.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle {
font-size: 18px;
}
.rd-navbar-sidebar .rd-nav-item + .rd-nav-item {
border-top: 1px solid #e8e9ee;
}
.rd-navbar-sidebar .rd-nav-item:last-child {
border-bottom: 1px solid #e8e9ee;
margin-bottom: 30px;
}
.rd-navbar-sidebar .rd-nav-link {
max-width: calc(100% - 30px);
word-break: break-all;
font-size: 18px;
line-height: 1.4;
text-transform: none;
color: #aeb1be;
}
.rd-navbar-sidebar .rd-nav-link:hover {
color: #0045b6;
}
.rd-navbar-sidebar .rd-navbar-submenu .opened > .rd-navbar-submenu-toggle::after {
transform: rotate(180deg);
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-megamenu {
display: none;
opacity: 0;
visibility: hidden;
will-change: opacity, visibility;
transition: opacity .2s;
}
.rd-navbar-sidebar .rd-navbar-submenu.opened > .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-navbar-submenu.opened > .rd-navbar-megamenu {
display: block;
opacity: 1;
visibility: visible;
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu > .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu > .rd-navbar-megamenu {
transform: translateY(30px);
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu.opened > .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu.opened > .rd-navbar-megamenu {
transform: translateY(0);
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu .rd-navbar-submenu > .rd-navbar-dropdown {
transform: translateX(-20px);
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown {
transform: translateX(0);
}
.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle,
.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle {
position: absolute;
top: 0;
right: 0;
padding-top: inherit;
padding-right: inherit;
padding-left: 10px;
margin-bottom: inherit;
display: inline-block;
width: 30px;
margin-left: 5px;
text-align: center;
cursor: pointer;
color: #495057;
}
.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle:hover,
.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle:hover {
color: #0045b6;
}
.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle::after,
.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle::after {
content: '\f107';
position: relative;
display: inline-block;
font-family: "FontAwesome";
font-size: inherit;
line-height: inherit;
text-align: center;
vertical-align: middle;
transition: 0.4s all ease;
z-index: 2;
will-change: transform;
}
.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle {
font-size: 14px;
color: #aeb1be;
margin-left: 7px;
}
.rd-navbar-sidebar .rd-menu {
margin-top: 31px;
}
.rd-navbar-sidebar .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-megamenu-list {
font-size: 14px;
}
.rd-navbar-sidebar .rd-navbar-dropdown li > a,
.rd-navbar-sidebar .rd-megamenu-list li > a {
position: relative;
left: -13px;
display: flex;
padding: 4px 18px 4px 0;
text-align: left;
}
.rd-navbar-sidebar .rd-navbar-dropdown li > a, .rd-navbar-sidebar .Line truncated
|
||||
*
|
||||
* RD Navbar Minimal
|
||||
*
|
||||
*/
.rd-navbar-minimal.rd-navbar-static {
border-bottom: 1px solid transparent;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-main-outer {
padding-left: 15px;
padding-right: 15px;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-main {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1170px;
padding: 20px 0;
margin-left: auto;
margin-right: auto;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-main-element {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
min-width: 690px;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-brand img {
width: auto;
height: auto;
max-width: 200px;
max-height: 200px;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-megamenu {
margin-top: 24px;
width: calc(100% + 27px + 15px);
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-search-toggle span {
font-size: 20px;
}
@media (min-width: 1200px) {
.rd-navbar-minimal.rd-navbar-static .rd-navbar-main {
padding: 30px 0;
}
.rd-navbar-minimal.rd-navbar-static .rd-menu {
margin-top: 34px;
}
}
.rd-navbar-minimal.rd-navbar-static.rd-navbar--is-stuck, .rd-navbar-minimal.rd-navbar-static.rd-navbar--is-clone {
border-bottom-color: #e8e9ee;
}
.rd-navbar-minimal.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main, .rd-navbar-minimal.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main {
padding: 20px 0;
}
.rd-navbar-minimal.rd-navbar-static.rd-navbar--is-stuck .rd-menu, .rd-navbar-minimal.rd-navbar-static.rd-navbar--is-clone .rd-menu {
margin-top: 24px;
}
.rd-navbar-minimal.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-item > .rd-navbar-submenu, .rd-navbar-minimal.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-item > .rd-navbar-submenu {
margin-top: 17px;
}
.rd-navbar-minimal.rd-navbar-fixed .rd-navbar-search-toggle {
position: fixed;
right: 10px;
top: 5px;
}
.rd-navbar-minimal.rd-navbar-fixed .rd-navbar-search .form-input {
border-width: 1px 0 1px 0;
border-radius: 0;
}
.rd-navbar-minimal-wide.rd-navbar-static .rd-navbar-main {
padding: 54px 0;
}
.rd-navbar-minimal-wide.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main {
padding: 21px 0;
}
.context-dark .rd-navbar-minimal .rd-nav-link, .bg-gray-700 .rd-navbar-minimal .rd-nav-link, .bg-gray-800 .rd-navbar-minimal .rd-nav-link, .bg-primary .rd-navbar-minimal .rd-nav-link, .bg-primary-darker .rd-navbar-minimal .rd-nav-link,
.context-dark .rd-navbar-minimal .rd-navbar-submenu-toggle,
.bg-gray-700 .rd-navbar-minimal .rd-navbar-submenu-toggle,
.bg-gray-800 .rd-navbar-minimal .rd-navbar-submenu-toggle,
.bg-primary .rd-navbar-minimal .rd-navbar-submenu-toggle,
.bg-primary-darker .rd-navbar-minimal .rd-navbar-submenu-toggle,
.context-dark .rd-navbar-minimal .rd-navbar-search-toggle,
.bg-gray-700 .rd-navbar-minimal .rd-navbar-search-toggle,
.bg-gray-800 .rd-navbar-minimal .rd-navbar-search-toggle,
.bg-primary .rd-navbar-minimal .rd-navbar-search-toggle,
.bg-primary-darker .rd-navbar-minimal .rd-navbar-search-toggle {
color: #fff;
}
.context-dark .rd-navbar-minimal.rd-navbar-static, .bg-gray-700 .rd-navbar-minimal.rd-navbar-static, .bg-gray-800 .rd-navbar-minimal.rd-navbar-static, .bg-primary .rd-navbar-minimal.rd-navbar-static, .bg-primary-darker .rd-navbar-minimal.rd-navbar-static {
background-color: transparent;
}
.context-dark .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link, .bg-gray-700 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link, .bg-gray-800 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link, .bg-primary .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link, .bg-primary-darker .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link,
.context-dark .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.bg-gray-700 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.bg-gray-800 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.bg-primary .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.bg-primary-darker .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.context-dark .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.bg-gray-700 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.bg-gray-800 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.bg-primary .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.bg-primary-darker .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.context-dark .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.bg-gray-700 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.bg-gray-800 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.bg-primary .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.bg-primary-Line truncated
|
||||
*
|
||||
* RD Navbar Corporate
|
||||
*
|
||||
*/
.rd-navbar-corporate.rd-navbar-static .rd-navbar-aside-outer,
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main-outer {
padding-left: 15px;
padding-right: 15px;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-aside,
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main {
max-width: 1170px;
margin-left: auto;
margin-right: auto;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-aside {
display: flex;
align-items: center;
justify-content: space-between;
padding: 30px 0 40px;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main-outer {
background: rgba(51, 51, 51, 0.1);
position: absolute;
top: 100%;
z-index: 10;
width: 100%;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main {
position: relative;
padding: 16px 0;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-nav-wrap {
position: relative;
display: flex;
flex-direction: row-reverse;
align-items: center;
justify-content: space-between;
min-width: 690px;
}
.ie-10 .rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse,
.ie-11 .rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse {
width: 100%;
max-width: 870px;
}
.ie-10 .rd-navbar-corporate.rd-navbar-static .unit,
.ie-11 .rd-navbar-corporate.rd-navbar-static .unit {
flex: auto;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-panel + .rd-navbar-collapse {
margin-left: 50px;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content {
display: flex;
align-items: center;
justify-content: center;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content .button {
flex-shrink: 0;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content > * {
margin-top: 0;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content > * + * {
margin-left: 50px;
}
.rd-navbar-corporate.rd-navbar-static .rd-menu {
margin-top: 21px;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-megamenu {
margin-top: 24px;
}
@media (min-width: 1200px) {
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content > * + * {
margin-left: 92px;
}
.rd-navbar-corporate.rd-navbar-static .rd-nav-item + .rd-nav-item {
margin-left: 55px;
}
}
.rd-navbar-corporate.rd-navbar-static.rd-navbar--is-stuck, .rd-navbar-corporate.rd-navbar-static.rd-navbar--is-clone {
border-bottom-color: #e8e9ee;
}
.rd-navbar-corporate.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-aside-outer, .rd-navbar-corporate.rd-navbar-static.rd-navbar--is-clone .rd-navbar-aside-outer {
display: none;
}
.rd-navbar-corporate.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main-outer, .rd-navbar-corporate.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main-outer {
background: #232426;
box-shadow: 0 5px 10px 0px rgba(20, 20, 28, 0.3);
}
.rd-navbar-corporate.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-item > .rd-navbar-submenu, .rd-navbar-corporate.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-item > .rd-navbar-submenu {
margin-top: 17px;
}
.rd-navbar-corporate.rd-navbar-fixed .rd-navbar-search {
margin: 20px 5px;
}
.rd-navbar-corporate.rd-navbar-fixed .rd-navbar-search-toggle {
display: none;
}
.rd-navbar-corporate.rd-navbar-fixed .rd-search {
position: relative;
top: 0;
left: 0;
transform: none;
opacity: 1;
visibility: visible;
z-index: 1;
}
.rd-navbar-corporate.rd-navbar-fixed .rd-navbar-nav {
margin: 0;
}
/**
|
||||
*
|
||||
* RD Navbar Thin
|
||||
*
|
||||
*/
.rd-navbar-thin.rd-navbar-static {
background-color: #495057;
border-bottom: 1px solid transparent;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-main-outer {
padding-left: 15px;
padding-right: 15px;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-main {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1170px;
padding: 23px 0;
margin-left: auto;
margin-right: auto;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-nav-wrap {
position: absolute;
top: 0;
bottom: 0;
left: 200px;
right: 80px;
z-index: 102;
display: flex;
align-items: center;
justify-content: flex-end;
min-width: 690px;
background: #495057;
opacity: 0;
visibility: hidden;
transition: .44s ease-in-out;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-nav-wrap .rd-navbar-brand {
display: none;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-nav-wrap.active {
opacity: 1;
visibility: visible;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-panel {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding-right: 50px;
}
.ie-10 .rd-navbar-thin.rd-navbar-static .rd-navbar-panel,
.ie-11 .rd-navbar-thin.rd-navbar-static .rd-navbar-panel {
justify-content: flex-start;
}
.ie-10 .rd-navbar-thin.rd-navbar-static .rd-navbar-block,
.ie-11 .rd-navbar-thin.rd-navbar-static .rd-navbar-block {
width: 100%;
justify-content: flex-end;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-toggle {
position: absolute;
right: 0;
top: 50%;
display: block;
transform: translate3d(0, -50%, 0);
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-block {
display: flex;
align-items: center;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-brand {
max-width: 300px;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-brand img {
width: auto;
height: auto;
max-width: 200px;
max-height: 200px;
}
.rd-navbar-thin.rd-navbar-static .rd-nav-link,
.rd-navbar-thin.rd-navbar-static .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-navbar-search-toggle {
color: #fff;
}
.rd-navbar-thin.rd-navbar-static .rd-nav-item.opened .rd-nav-link,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.focus .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.active .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-nav-link:hover,
.rd-navbar-thin.rd-navbar-static .rd-nav-link:hover ~ .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-navbar-search-toggle:hover {
color: #1d73ff;
}
.rd-navbar-thin.rd-navbar-static .rd-menu {
margin-top: 27px;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-megamenu {
margin-top: 24px;
width: calc(100% + 27px + 15px);
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-search {
position: static;
}
.rd-navbar-thin.rd-navbar-static * + .rd-navbar-search-toggle {
margin-left: 60px;
}
.rd-navbar-thin.rd-navbar-static .rd-search {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
width: calc(100% - 70px);
margin: 0;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-wrap {
display: flex;
width: 100%;
background: #495057;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-wrap::before {
content: '\f43b';
position: absolute;
top: 50%;
transform: translate3d(0, -50%, 0);
font-family: 'Material Design Icons';
font-size: 30px;
line-height: 1;
color: #fff;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-input,
.rd-navbar-thin.rd-navbar-static .rd-search .form-label {
padding-left: 40px;
font-size: 30px;
color: #fff;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-input {
background-color: transparent;
border: 0;
border-radius: 0;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-label {
top: 50%;
transform: translate3d(0, -50%, 0);
}
.rd-navbar-thin.rd-navbar-static .rd-search-results-live {
height: 100vh;
margin: 1px 0 0 0;
}
.rd-navbar-thin.rd-navbar-static .search-list {
display: flex;
flex-wrap: wrap;
margin-bottom: -20px;
}
.rd-navbar-thin.rd-navbar-static .search-list-item {
width: 25%;
padding-left: 15px;
padding-right: 15px;
margin-bottom: 20px;
}
.rd-navbar-thin.rd-navbar-static .search-list-item + .search-list-item {
margin-top: 0;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-search-toggle {
position: relative;
z-index: 12;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-popup {
left: 50%;
z-index: 110;
transform: translateX(-50%);
margin-top: 30px;
}
.rd-navbar-thin.rd-navbar-static .list-inline-bordered {
position: relative;
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.rd-navbar-thin.rd-navbar-static .rd-nav-item + .rd-nav-item {
margin-left: 30px;
}
}
@media (min-width: 1200px) {
.rd-navbar-thin.rd-navbar-static .rd-navbar-panel {
padding-right: 70px;
}
.rd-navbar-thin.rd-navbar-statLine truncated
|
||||
*
|
||||
* Swiper
|
||||
*/
.swiper-container {
position: relative;
display: flex;
margin: 0 auto;
overflow: hidden;
list-style: none;
padding: 0;
/* Fix of Webkit flickering */
z-index: 1;
pointer-events: none;
}
.swiper-container, .swiper-container * {
backface-visibility: hidden;
}
.swiper-container-no-flexbox .swiper-slide {
float: left;
}
.swiper-container-vertical > .swiper-wrapper {
flex-direction: column;
}
.swiper-wrapper {
position: relative;
z-index: 1;
display: flex;
align-self: stretch;
align-items: stretch;
width: 100%;
height: auto;
min-height: inherit;
transition-property: transform;
box-sizing: content-box;
}
.swiper-container-android .swiper-slide,
.swiper-wrapper {
transform: translate3d(0px, 0, 0);
}
.swiper-container-multirow > .swiper-wrapper {
flex-wrap: wrap;
}
.swiper-container-free-mode > .swiper-wrapper {
transition-timing-function: ease-out;
margin: 0 auto;
}
.swiper-slide {
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
background-size: cover;
transition-property: transform, transform;
pointer-events: auto;
contain: paint;
}
.swiper-invisible-blank-slide {
visibility: hidden;
}
/* Auto Height */
.swiper-container-autoheight, .swiper-container-autoheight .swiper-slide {
height: auto;
}
.swiper-container-autoheight .swiper-wrapper {
align-items: flex-start;
transition-property: transform, height;
}
/* 3D Effects */
.swiper-container-3d {
perspective: 1200px;
}
.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
transform-style: preserve-3d;
}
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
.swiper-container-3d .swiper-slide-shadow-left {
background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-right {
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-top {
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-bottom {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
/* IE10 Windows Phone 8 Fixes */
.swiper-container-wp8-horizontal,
.swiper-container-wp8-horizontal > .swiper-wrapper {
touch-action: pan-y;
}
.swiper-container-wp8-vertical,
.swiper-container-wp8-vertical > .swiper-wrapper {
touch-action: pan-x;
}
.swiper-button-prev,
.swiper-button-next {
position: absolute;
top: 50%;
width: 27px;
height: 44px;
margin-top: -22px;
z-index: 10;
cursor: pointer;
background-size: 27px 44px;
background-position: center;
background-repeat: no-repeat;
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
opacity: 0.35;
cursor: auto;
pointer-events: none;
}
.swiper-button-lock {
display: none;
}
.swiper-pagination {
position: absolute;
text-align: center;
transition: 300ms opacity;
transform: translate3d(0, 0, 0);
z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
bottom: 10px;
left: 0;
width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
overflow: hidden;
font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transform: scale(0.33);
position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
transform: scale(0.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
transform: scale(0.33);
}
.swiper-pagination-bullet {
width: 8px;
height: 8px;
display: inline-block;
border-radius: 100%;
background: #000;
}
button.swiper-pagination-bullet {
border: none;
margin: 0;
padding: 0;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-bullet-active {
opacity: 1;
background: #007aff;
}
.swiper-container-vertical > .swiper-pagination-bullets {
right: 10px;
top: 50%;
transform: translate3d(0px, -50%, 0);
}
Line truncated
|
||||
*
|
||||
* RD Google Map
|
||||
*/
.google-map {
color: #000;
height: 200px;
}
.google-map img {
max-width: none !important;
}
@media (min-width: 576px) {
.google-map {
height: 250px;
}
}
@media (min-width: 768px) {
.google-map {
height: 300px;
}
}
@media (min-width: 992px) {
.google-map {
height: 350px;
}
}
@media (min-width: 1200px) {
.google-map {
height: 766px;
}
}
.ie-10 .google-map,
.ie-11 .google-map {
height: 770px;
}
.map_locations {
display: none;
}
.google-map-container, .google-map {
width: 100%;
}
.google-map-markers {
display: none;
}
/*
|
||||
*
|
||||
* Search Results
|
||||
*/
.rd-search-results-live {
position: absolute;
left: 0;
right: 0;
top: 100%;
max-height: 600px;
overflow-y: auto;
margin: -3px 0 0;
text-align: left;
z-index: 998;
}
.rd-search-results-live #search-results {
position: relative;
padding: 10px 0 0;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
color: #495057;
background: #fff;
border: 1px solid #c5c6cd;
border-top: 0;
opacity: 0;
visibility: hidden;
transform-origin: 50% 0;
transform: scale(1, 0.9);
transition: .3s all ease;
}
.rd-search-results-live #search-results.active {
opacity: 1;
visibility: visible;
transform: scale(1, 1);
}
.rd-search-results-live #search-results.active .form-input {
border-bottom-left-radius: 0;
}
.rd-search-results-live .search-quick-result {
padding-left: 15px;
padding-right: 15px;
font-family: "Poppins", sans-serif;
font-size: 14px;
font-weight: 500;
letter-spacing: .08em;
line-height: 30px;
text-transform: uppercase;
color: #151515;
}
.rd-search-results-live .search-list {
margin-top: 11px;
}
.rd-search-results-live .search-list li:only-child {
padding: 0 15px 15px;
}
.rd-search-results-live .search-link {
color: #aeb1be;
}
.rd-search-results-live .search-link:hover {
color: #0045b6;
}
.rd-search-results-live .search-error {
padding: 0 0 20px;
font-size: 14px;
line-height: 1.6;
}
.rd-search-results-live .search-title {
position: relative;
font-size: 16px;
font-weight: 400;
color: #151515;
}
.rd-search-results-live .search-title a:hover {
color: #0045b6;
}
.rd-search-results-live .search-link {
display: block;
}
.rd-search-results-live .search-list-item-all {
margin-top: 18px;
width: 100%;
}
.rd-search-results-live .search-submit {
position: relative;
overflow: hidden;
z-index: 0;
display: block;
padding: 10px 20px;
margin: 0 -1px;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
font-family: "Poppins", sans-serif;
font-size: 12px;
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
text-align: center;
color: #fff;
background: #0045b6;
}
.rd-search-results-live .search-submit:hover {
color: #fff;
background: #4854ed;
}
.rd-search-results-live .match {
display: none;
}
.not-empty ~ .rd-search-results-live {
visibility: visible;
opacity: 1;
}
.rd-search-results-live p {
font-size: 14px;
}
.rd-search-results-live .search-list-item {
padding: 0 15px;
}
.rd-search-results-live * + p {
margin-top: 3px;
}
.rd-search-results-live .search-list-item + .search-list-item {
margin-top: 17px;
}
.rd-search-results .search-list {
counter-reset: li;
text-align: left;
padding-left: 0;
font-size: 18px;
list-style-type: none;
overflow: hidden;
}
.rd-search-results .search-list li div {
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
white-space: nowrap;
}
.rd-search-results .search-list li:only-child::before {
display: none;
}
.rd-search-results .search-list-item {
position: relative;
padding-left: 40px;
font-size: 16px;
color: #9b9b9b;
}
.rd-search-results .search-list-item::before {
content: counter(li, decimal) ".";
counter-increment: li;
position: absolute;
left: 0;
top: -0.1em;
line-height: inherit;
}
.rd-search-results .search-title {
position: relative;
color: #0045b6;
}
.rd-search-results .search-title a {
color: inherit;
}
.rd-search-results .search-title a:hover {
color: #343db0;
}
.rd-search-results .search {
color: #fff;
padding: 0 .25em;
background: #0045b6;
}
.rd-search-results .match {
padding: 5px;
font-size: 12px;
line-height: 1.7;
letter-spacing: .1em;
text-transform: uppercase;
color: #000;
}
.rd-search-results .match em {
margin: 0;
font-style: normal;
}
.rd-search-results * + .match {
margin-top: 10px;
}
.rd-search-results .search-list-item + .search-list-item {
margin-top: 40px;
}
* + .rd-search-results {
margin-top: 40px;
}
@media (min-width: 768px) {
.rd-search-results .search-list-item::before {
top: 4px;
}
.rd-search-results * + p {
margin-top: 12px;
}
* + .rd-search-results {
margin-top: 55px;
}
}
@media (min-width: 992px) {
.rd-search-results .search-list-item {
padding-left: 50px;
}
.rd-search-results * + p {
margin-top: 17px;
}
.rd-search-results .search-list-item + .search-list-item {
margin-top: 50px;
}
}
@media (min-width: 1200px) {
* + .rd-search-results {
margin-top: 70px;
}
}
@media (min-width: 1600px) {
.rd-search-results .search-list-item + .search-list-item {
margin-top: 70px;
}
}
.rd-search-classic {
position: relative;
}
.rd-search-classic .form-wrap-inner {
position: relative;
}
.rd-search-classic .form-input {
padding-right: 50px;
}
.rd-search-classic .form-input,
.rd-search-classic .form-label {
letter-spacing: 0;
}
.rd-search-classic .rd-search-submit {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
position: absolute;
top: 0;
right: 0;
bottomLine truncated
|
||||
*
|
||||
* Isotope
|
||||
*/
@keyframes sprite-animation {
from {
background-position: 0 0;
}
}
[data-isotope-layout] {
z-index: 0;
display: block;
overflow: hidden;
min-height: 160px;
margin-left: -15px;
margin-right: -15px;
transition: .4s all ease;
}
[data-isotope-layout]:after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 64px;
height: 64px;
margin-top: 15px;
background-image: url("../images/isotope-loader.png");
background-position: -1152px 0;
animation: 0.7s sprite-animation steps(18) infinite;
transition: .4s all ease;
transform: translate3d(-50%, -50%, 0);
}
[data-isotope-layout] [class*="col-"] {
display: block;
opacity: 0;
will-change: transform;
backface-visibility: hidden;
transition: .1s opacity ease-in;
}
[data-isotope-layout].isotope--loaded [class*="col-"] {
opacity: 1;
}
[data-isotope-layout].isotope--loaded:after {
opacity: 0;
visibility: hidden;
}
.isotope.isotope-condensed {
margin-left: 0;
margin-right: 0;
overflow: hidden;
}
.isotope.isotope-condensed [class*='col'] {
padding: 0;
margin: 0 0 30px 0;
}
@media (min-width: 576px) {
.isotope.isotope-condensed [class*='col'] {
margin: 0 -1px -1px 0;
}
}
.isotope-filters-list {
position: relative;
font-size: 16px;
margin-left: -20px;
margin-bottom: -10px;
}
.isotope-filters-list > * {
margin-left: 20px;
}
.isotope-filters-list::after {
content: '';
position: absolute;
left: 20px;
right: 0;
bottom: 10px;
border-bottom: 1px solid #e8e9ee;
}
.isotope-filters-list li {
display: inline-block;
margin-bottom: 10px;
}
.isotope-filters-list a {
position: relative;
display: block;
z-index: 1;
padding-bottom: 10px;
color: #74757f;
}
.isotope-filters-list a::after {
content: '';
position: absolute;
right: 0;
bottom: 0;
width: 0;
height: 1px;
transition: .4s;
background: #0045b6;
}
.isotope-filters-list a:hover {
color: #495057;
}
.isotope-filters-list a.active {
color: #495057;
}
.isotope-filters-list a.active::after {
right: auto;
left: 0;
width: 100%;
}
@media (min-width: 992px) {
.isotope-filters-list {
font-size: 18px;
margin-left: -48px;
}
.isotope-filters-list > * {
margin-left: 48px;
}
.isotope-filters-list::after {
left: 45px;
}
}
@media (min-width: 1200px) {
.isotope-filters-list {
font-size: 20px;
}
}
@media (max-width: 767.98px) {
.isotope-responsive {
margin-left: -7px;
margin-right: -7px;
margin-bottom: -14px;
}
.isotope-responsive:empty {
margin-bottom: 0;
}
.isotope-responsive > * {
margin-bottom: 14px;
}
.isotope-responsive [class*='col'] {
padding-left: 7px;
padding-right: 7px;
}
}
@media (min-width: 768px) {
.isotope-responsive {
margin-bottom: -30px;
}
.isotope-responsive:empty {
margin-bottom: 0;
}
.isotope-responsive > * {
margin-bottom: 30px;
}
}
@media (max-width: 767.98px) {
.isotope-filters-modern {
position: relative;
z-index: 10;
}
.isotope-filters-toggle {
display: block;
padding: 10px 20px;
color: #fff;
background: #0045b6;
box-shadow: none;
border: 0;
}
.isotope-filters-toggle .caret {
position: relative;
display: inline-block;
margin-left: 5px;
font-family: "FontAwesome";
font-size: 14px;
transition: .22s;
will-change: transform;
}
.isotope-filters-toggle .caret::before {
content: '\f107';
}
.isotope-filters-toggle.active .caret {
transform: scale(1, -1);
}
.isotope-filters-list {
position: absolute;
top: 100%;
left: 0;
z-index: 10;
min-width: 240px;
margin: 5px 0 0 0;
padding: 20px;
border: 1px solid #e8e9ee;
opacity: 0;
visibility: hidden;
background: #fff;
transition: .3s ease-in;
}
.isotope-filters-list::after {
display: none;
}
.isotope-filters-list.active {
opacity: 1;
visibility: visible;
}
.isotope-filters-list li {
display: block;
width: 100%;
margin-left: 0;
}
.isotope-filters-list a {
padding: 0;
}
.isotope-filters-list a::after {
display: none;
}
}
@media (min-width: 768px) {
.isotope-filters-modern .isotope-filters-toggle {
display: none;
}
}
* + .isotope {
margin-top: 30px;
}
@media (min-width: 768px) {
* + .isotope {
margin-top: 47px;
}
}
.nav {
display: block;
}
.tabs-custom {
text-align: left;
}
.tabs-custom .nav-tabs {
font-size: 0;
line-height: 0;
word-spacing: 0;
border: 0;
}
.tabs-custom .nav-tabs:before, .tabs-custom .nav-tabs:after {
display: none;
}
.tabs-custom .nav-item {
float: none;
border: 0;
cursor: pointer;
transition: .33s all ease;
}
.tabs-custom .nav-link {
margin: 0;
border-radius: 0;
border: 0;
}
.tabs-custom .nav-link.active {
cursor: default;
border: 0;
}
.tab-content > .tab-pane {
display: block;
visibility: hidden;
height: 0;
overflow: hidden;
}
.tab-content > .active {
visibility: visible;
height: auto;
overflow: visible;
}
.tabs-line .nav-tabs {
position: relative;
}
.tabs-line .nav-link {
font-size: 16px;
line-height: 1.4;
text-align: center;
vertical-align: middle;
}
.tabs-line * + .tab-content {
maLine truncated
|
||||
* Card corporate
|
||||
*/
.card-corporate {
border-top: 1px solid #f5f6fa;
text-align: left;
}
.card-corporate:last-child {
border-bottom: 1px solid #f5f6fa;
}
.card-corporate .card-collapse {
background: #fff;
}
.card-corporate .card-title a {
position: relative;
z-index: 1;
padding: 15px 40px 15px 70px;
font-size: 17px;
line-height: 1.5;
letter-spacing: 0;
color: #495057;
transition: 1.3s all ease;
}
.card-corporate .card-title a[aria-expanded='true'], .card-corporate .card-title a:hover {
color: #0045b6;
}
.card-corporate .card-title a .card-arrow {
transition: .33s;
}
.card-corporate .card-title a.collapsed {
color: #495057;
border-bottom-width: 0;
}
.card-corporate .card-title a.collapsed .card-arrow::before {
opacity: 1;
}
.card-corporate .card-title a.collapsed .card-arrow::after {
opacity: 0;
}
.card-corporate .card-arrow {
position: absolute;
top: 16px;
left: 13px;
z-index: 2;
width: 20px;
height: 20px;
color: #0045b6;
transition: .33s all ease;
text-align: center;
}
.card-corporate .card-arrow::before, .card-corporate .card-arrow::after {
position: absolute;
z-index: 4;
font-family: 'Material Design Icons';
font-size: 24px;
line-height: 1;
transition: .22s;
}
.card-corporate .card-arrow::before {
content: '\f505';
opacity: 0;
}
.card-corporate .card-arrow::after {
content: '\f466';
opacity: 1;
}
.card-corporate .card-collapse {
position: relative;
z-index: 1;
color: #74757f;
}
.card-corporate .card-body {
padding: 2px 44px 25px 70px;
}
@media (max-width: 767.98px) {
.card-corporate .card-arrow {
left: 0;
}
.card-corporate .card-title a,
.card-corporate .card-body {
padding-left: 50px;
}
}
@media (min-width: 768px) {
.card-corporate .card-title a {
font-size: 20px;
line-height: 1.4;
}
.card-corporate .card-arrow {
top: 18px;
}
}
/*
|
||||
*
|
||||
* Tooltop Custom
|
||||
*/
.tooltip {
font-size: 16px;
line-height: 1.2;
}
.tooltip-inner {
background-color: #0045b6;
}
.bs-tooltip-top .arrow::before {
border-top-color: #0045b6;
}
.bs-tooltip-right .arrow::before {
border-right-color: #0045b6;
}
.bs-tooltip-bottom .arrow::before {
border-bottom-color: #0045b6;
}
.bs-tooltip-left .arrow::before {
border-left-color: #0045b6;
}
@media (min-width: 1200px) {
.tooltip-inner {
padding: 9px 18px;
}
}
/*
|
||||
*
|
||||
* Modal Custom
|
||||
*/
.modal {
display: flex !important;
padding: 30px 15px 7vh;
visibility: hidden;
}
.modal .close {
cursor: pointer;
color: #74757f;
transition: .22s;
}
.modal .close span::before {
content: '\f24c';
font-family: 'Material Design Icons';
}
.modal .close:hover {
color: #495057;
}
.modal.show {
visibility: visible;
}
.modal.fade .modal-dialog {
transform: translate3d(0, -30px, 0);
}
.modal.show .modal-dialog {
transform: translate3d(0, 0, 0);
}
.modal-dialog {
display: flex;
align-items: flex-start;
justify-content: center;
margin: 0 auto;
}
.modal-content {
height: 100%;
border-radius: 6px;
}
.modal-body {
height: 100%;
overflow-y: auto;
}
@media (min-width: 768px) {
.modal-header,
.modal-body {
padding-left: 30px;
padding-right: 30px;
}
.modal-header {
padding-top: 20px;
padding-bottom: 20px;
}
.modal-body {
padding-top: 30px;
padding-bottom: 30px;
}
.modal-dialog {
max-width: 800px;
}
}
/*
|
||||
*
|
||||
* Progress Bars
|
||||
*/
.progress-linear {
position: relative;
text-align: left;
}
.progress-linear .progress-header {
display: flex;
align-items: center;
justify-content: space-between;
transform: translate3d(0, -10px, 0);
margin-bottom: -10px;
margin-left: -5px;
margin-right: -5px;
}
.progress-linear .progress-header > * {
margin-top: 10px;
padding-left: 5px;
padding-right: 5px;
}
.progress-linear .progress-bar-linear-wrap {
height: 2px;
background: #f5f6fa;
}
.progress-linear .progress-bar-linear {
width: 0;
height: inherit;
background: #0045b6;
transition: .5s all ease-in-out;
}
.progress-linear .progress-value::after {
content: '\0025';
}
* + .progress-linear {
margin-top: 25px;
}
* + .progress-linear-outer {
margin-top: 25px;
}
* + .progress-bar-linear-wrap {
margin-top: 8px;
}
.progress-linear + .progress-linear {
margin-top: 20px;
}
.progress-linear-outer + .progress-linear-outer {
margin-top: 20px;
}
@media (min-width: 768px) {
* + .progress-linear {
margin-top: 40px;
}
* + .progress-linear-outer {
margin-top: 40px;
}
}
@media (min-width: 1200px) {
.progress-linear + .progress-linear {
margin-top: 34px;
}
.progress-linear-outer + .progress-linear-outer {
margin-top: 34px;
}
}
/*
|
||||
*
|
||||
* Time Circles
|
||||
*/
.time_circles {
position: relative;
width: 100%;
}
.time_circles > div {
position: absolute;
top: 0 !important;
bottom: 0;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: center;
margin-top: -10px;
text-align: center;
}
@media (min-width: 1200px) {
#DateCountdown {
width: 100%;
}
}
.time_circles > div > h4 {
position: absolute;
left: 0;
top: calc(100% + 14px);
right: 0;
transform: translateY(-100%);
margin: 0;
padding: 0;
text-align: center;
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 14px !important;
line-height: 1.2 !important;
color: #868e96;
}
.time_circles > div > h4 + * {
margin-top: 0;
}
@media (min-width: 576px) {
.time_circles > div > h4 {
font-size: 16px !important;
}
}
.time_circles > div > span {
display: block;
text-align: center;
letter-spacing: 0;
font-size: 24px !important;
font-weight: 700;
line-height: 1 !important;
color: #111111;
}
.context-dark .time_circles > div > span, .bg-gray-700 .time_circles > div > span, .bg-gray-800 .time_circles > div > span, .bg-primary .time_circles > div > span, .bg-primary-darker .time_circles > div > span {
color: #fff;
}
.context-dark .time_circles > div > h4, .bg-gray-700 .time_circles > div > h4, .bg-gray-800 .time_circles > div > h4, .bg-primary .time_circles > div > h4, .bg-primary-darker .time_circles > div > h4 {
color: #fff;
}
.countdown-wrap {
max-width: 530px;
padding-bottom: 20px;
}
* + .countdown-wrap {
margin-top: 35px;
}
.countdown-wrap + .button {
margin-top: 40px;
}
/*
|
||||
* jQuery mousewheel plugin
|
||||
*/
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
1. BASIC STYLE
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCustomScrollbar {
-ms-touch-action: pinch-zoom;
touch-action: pinch-zoom;
/* direct pointer events to js */
}
.mCustomScrollbar.mCS_no_scrollbar, .mCustomScrollbar.mCS_touch_action {
-ms-touch-action: auto;
touch-action: auto;
}
.mCustomScrollBox {
/* contains plugin's markup */
position: relative;
overflow: hidden;
height: 100%;
max-width: 100%;
outline: none;
direction: ltr;
}
.mCSB_container {
/* contains the original content */
overflow: hidden;
width: auto;
height: auto;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
2. VERTICAL SCROLLBAR
|
||||
y-axis
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCSB_inside > .mCSB_container {
margin-right: 30px;
}
.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden {
margin-right: 0;
}
/* non-visible scrollbar */
.mCS-dir-rtl-custom > .mCSB_inside > .mCSB_container {
/* RTL direction/left-side scrollbar */
margin-right: 0;
margin-left: 30px;
}
.mCS-dir-rtl-custom > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden {
margin-left: 0;
}
/* RTL direction/left-side scrollbar */
.mCSB_scrollTools {
/* contains scrollbar markup (draggable element, dragger rail, buttons etc.) */
position: absolute;
width: 16px;
height: auto;
left: auto;
top: 0;
right: 0;
bottom: 0;
}
.mCSB_outside + .mCSB_scrollTools {
right: -26px;
}
/* scrollbar position: outside */
.mCS-dir-rtl-custom > .mCSB_inside > .mCSB_scrollTools,
.mCS-dir-rtl-custom > .mCSB_outside + .mCSB_scrollTools {
/* RTL direction/left-side scrollbar */
right: auto;
left: 0;
}
.mCS-dir-rtl-custom > .mCSB_outside + .mCSB_scrollTools {
left: -26px;
}
/* RTL direction/left-side scrollbar (scrollbar position: outside) */
.mCSB_scrollTools .mCSB_draggerContainer {
/* contains the draggable element and dragger rail markup */
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
height: auto;
}
.mCSB_scrollTools a + .mCSB_draggerContainer {
margin: 20px 0;
}
.mCSB_scrollTools .mCSB_draggerRail {
width: 16px;
height: 100%;
margin: 0 auto;
border-radius: 0;
}
.mCSB_scrollTools .mCSB_dragger {
/* the draggable element */
cursor: pointer;
width: 100%;
height: 30px;
/* minimum dragger height */
z-index: 1;
}
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
/* the dragger element */
position: relative;
width: 16px;
height: 100%;
margin: 0 auto;
border-radius: 0;
text-align: center;
}
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar {
width: 12px;
/* auto-expanded scrollbar */
}
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
width: 8px;
/* auto-expanded scrollbar */
}
.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown {
display: block;
position: absolute;
height: 20px;
width: 100%;
overflow: hidden;
margin: 0 auto;
cursor: pointer;
}
.mCSB_scrollTools .mCSB_buttonDown {
bottom: 0;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
3. HORIZONTAL SCROLLBAR
|
||||
x-axis
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCSB_horizontal.mCSB_inside > .mCSB_container {
margin-right: 0;
margin-bottom: 30px;
}
.mCSB_horizontal.mCSB_outside > .mCSB_container {
min-height: 100%;
}
.mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden {
margin-bottom: 0;
}
/* non-visible scrollbar */
.mCSB_scrollTools.mCSB_scrollTools_horizontal {
width: auto;
height: 16px;
top: auto;
right: 0;
bottom: 0;
left: 0;
}
.mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal {
bottom: -26px;
}
/* scrollbar position: outside */
.mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer {
margin: 0 20px;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail {
width: 100%;
height: 2px;
margin: 7px 0;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger {
width: 30px;
/* minimum dragger width */
height: 100%;
left: 0;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
width: 100%;
height: 4px;
margin: 6px auto;
}
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar {
height: 12px;
/* auto-expanded scrollbar */
margin: 2px auto;
}
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
height: 8px;
/* auto-expanded scrollbar */
margin: 4px 0;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight {
display: block;
position: absolute;
width: 20px;
height: 100%;
overflow: hidden;
margin: 0 auto;
cursor: pointer;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft {
left: 0;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight {
right: 0;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
4. VERTICAL AND HORIZONTAL SCROLLBARS
|
||||
yx-axis
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCSB_container_wrapper {
position: absolute;
height: auto;
width: auto;
overflow: hidden;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin-right: 30px;
margin-bottom: 30px;
}
.mCSB_container_wrapper > .mCSB_container {
padding-right: 30px;
padding-bottom: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical {
bottom: 20px;
}
.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
right: 20px;
}
/* non-visible horizontal scrollbar */
.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical {
bottom: 0;
}
/* non-visible vertical scrollbar/RTL direction/left-side scrollbar */
.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCS-dir-rtl-custom > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
right: 0;
}
/* RTL direction/left-side scrollbar */
.mCS-dir-rtl-custom > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
left: 20px;
}
/* non-visible scrollbar/RTL direction/left-side scrollbar */
.mCS-dir-rtl-custom > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal {
left: 0;
}
.mCS-dir-rtl-custom > .mCSB_inside > .mCSB_container_wrapper {
/* RTL direction/left-side scrollbar */
margin-right: 0;
margin-left: 30px;
}
.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container {
padding-right: 0;
}
.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container {
padding-bottom: 0;
}
.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden {
margin-right: 0;
/* non-visible scrollbar */
margin-left: 0;
}
/* non-visible horizontal scrollbar */
.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden {
margin-bottom: 0;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
5. TRANSITIONS
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCSB_scrollTools,
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown,
.mCSB_scrollTools .mCSB_buttonLeft,
.mCSB_scrollTools .mCSB_buttonRight {
-webkit-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
-moz-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
-o-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
}
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail {
-webkit-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;
-moz-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;
-o-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;
transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
6. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
/*
|
||||
----------------------------------------
|
||||
6.1 THEMES
|
||||
----------------------------------------
|
||||
*/
/* default theme ("light") */
.mCSB_scrollTools .mCSB_draggerRail {
background-color: transparent;
}
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
background-color: #f2f3f8;
}
.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
background-color: #d1d4e6;
}
.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown,
.mCSB_scrollTools .mCSB_buttonLeft,
.mCSB_scrollTools .mCSB_buttonRight {
background-image: url(../images/mCSB_buttons.png);
/* css sprites */
background-repeat: no-repeat;
opacity: 0.4;
}
.mCSB_scrollTools .mCSB_buttonUp {
background-position: 0 0;
}
.mCSB_scrollTools .mCSB_buttonDown {
background-position: 0 -20px;
}
.mCSB_scrollTools .mCSB_buttonLeft {
background-position: 0 -40px;
}
.mCSB_scrollTools .mCSB_buttonRight {
background-position: 0 -56px;
}
.mCSB_scrollTools .mCSB_buttonUp:hover,
.mCSB_scrollTools .mCSB_buttonDown:hover,
.mCSB_scrollTools .mCSB_buttonLeft:hover,
.mCSB_scrollTools .mCSB_buttonRight:hover {
opacity: 0.75;
}
.mCSB_scrollTools .mCSB_buttonUp:active,
.mCSB_scrollTools .mCSB_buttonDown:active,
.mCSB_scrollTools .mCSB_buttonLeft:active,
.mCSB_scrollTools .mCSB_buttonRight:active {
opacity: 0.9;
}
/* theme: "dark" */
.mCS-dark.mCSB_scrollTools .mCSB_draggerRail {
background-color: #000000;
background-color: rgba(0, 0, 0, 0.15);
}
.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
background-color: #000000;
background-color: rgba(0, 0, 0, 0.75);
}
.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
background-color: rgba(0, 0, 0, 0.85);
}
.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
background-color: rgba(0, 0, 0, 0.9);
}
.mCS-dark.mCSB_scrollTools .mCSB_buttonUp {
background-position: -80px 0;
}
.mCS-dark.mCSB_scrollTools .mCSB_buttonDown {
background-position: -80px -20px;
}
.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft {
background-position: -80px -40px;
}
.mCS-dark.mCSB_scrollTools .mCSB_buttonRight {
background-position: -80px -56px;
}
/*
|
||||
*
|
||||
* Owl Carousel
|
||||
*/
.owl-carousel .animated {
animation-duration: 1000ms;
animation-fill-mode: both;
}
.owl-carousel .owl-animated-in {
z-index: 0;
}
.owl-carousel .owl-animated-out {
z-index: 1;
}
.owl-carousel .fadeOut {
animation-name: fadeOut;
}
@keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
/*
|
||||
* Owl Carousel - Auto Height Plugin
|
||||
*/
.owl-height {
transition: height 500ms ease-in-out;
}
/*
|
||||
* Core Owl Carousel CSS File
|
||||
*/
.owl-carousel {
display: none;
width: 100%;
-webkit-tap-highlight-color: transparent;
/* position relative and z-index fix webkit rendering fonts issue */
position: relative;
z-index: 1;
}
.owl-carousel .owl-stage {
position: relative;
-ms-touch-action: pan-Y;
}
.owl-carousel .owl-stage:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.owl-carousel .owl-stage-outer {
position: relative;
overflow: hidden;
/* fix for flashing background */
-webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-controls .owl-nav .owl-prev,
.owl-carousel .owl-controls .owl-nav .owl-next,
.owl-carousel .owl-controls .owl-dot {
cursor: pointer;
user-select: none;
}
.owl-carousel.owl-loaded {
display: block;
}
.owl-carousel.owl-loading {
opacity: 0;
display: block;
}
.owl-carousel.owl-hidden {
opacity: 0;
}
.owl-carousel .owl-refresh .owl-item {
display: none;
}
.owl-carousel .owl-item {
position: relative;
min-height: 1px;
float: left;
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none;
}
.owl-carousel .owl-grab {
cursor: move;
cursor: -webkit-grab;
cursor: grab;
}
.owl-carousel.owl-rtl {
direction: rtl;
}
.owl-carousel.owl-rtl .owl-item {
float: right;
}
/* No Js */
.no-js .owl-carousel {
display: block;
}
/*
|
||||
* Owl Carousel - Lazy Load Plugin
|
||||
*/
.owl-carousel .owl-item .owl-lazy {
opacity: 0;
transition: opacity 400ms ease;
}
/*
|
||||
* Owl Carousel - Video Plugin
|
||||
*/
.owl-carousel .owl-video-wrapper {
position: relative;
height: 100%;
background: #000000;
}
.owl-carousel .owl-video-play-icon {
position: absolute;
height: 80px;
width: 80px;
left: 50%;
top: 50%;
margin-left: -40px;
margin-top: -40px;
font: 400 40px/80px 'FontAwesome';
cursor: pointer;
z-index: 1;
transition: scale 100ms ease;
}
.owl-carousel .owl-video-play-icon:before {
content: '\f144';
}
.owl-carousel .owl-video-play-icon:hover {
transform: scale(1.3);
}
.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
display: none;
}
.owl-carousel .owl-video-tn {
opacity: 0;
height: 100%;
background-position: center center;
background-repeat: no-repeat;
background-size: contain;
transition: opacity 400ms ease;
}
.owl-carousel .owl-video-frame {
position: relative;
z-index: 1;
}
/*
|
||||
* Owl Navigation
|
||||
*/
.owl-nav.disabled {
display: none !important;
}
.owl-prev,
.owl-next {
position: absolute;
top: 50%;
transform: translateY(-50%);
font: 400 46px/50px 'FontAwesome';
color: #aeb1be;
}
.owl-prev:hover,
.owl-next:hover {
color: #0045b6;
}
.owl-prev {
left: 0;
}
.owl-prev::before {
content: '\f104';
}
.owl-next {
right: 0;
}
.owl-next::before {
content: '\f105';
}
/*
|
||||
* Owl Pagination
|
||||
*/
.owl-dots {
margin-top: 10px;
}
.owl-dots.disabled {
display: none !important;
}
@media (min-width: 576px) {
.owl-dots {
margin-top: 25px;
}
}
button.owl-dot {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
}
button.owl-dot::-moz-focus-inner {
border: none;
padding: 0;
}
.owl-dot {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
vertical-align: middle;
width: 14px;
height: 14px;
border-radius: 50%;
margin-left: 14px;
margin-right: 14px;
text-align: center;
outline: none;
cursor: pointer;
}
.owl-dot::before {
content: '';
display: block;
width: 100%;
height: 100%;
transform: scale3d(0.56, 0.56, 0.56);
background: #e8e9ee;
border-radius: inherit;
transition: .2s;
}
.owl-dot:only-child {
display: none;
}
.owl-dot:hover::before, .owl-dot.active::before {
transform: scale3d(1, 1, 1);
background-color: #0045b6;
}
* + .owl-carousel {
margin-top: 30px;
}
.owl-carousel-1 {
text-align: center;
}
.owl-carousel-1 .owl-stage {
position: relative;
display: flex;
align-items: center;
}
.owl-carousel-centered-pagination .owl-dots {
text-align: center;
}
.owl-carousel-indigo {
position: relative;
overflow: hidden;
max-width: 100vw;
padding: 0 15px;
margin-left: auto;
margin-right: auto;
pointer-events: none;
}
.owl-carousel-indigo, .owl-carousel-indigo * {
backface-visibility: hidden;
}
.owl-carousel-indigo .owl-stage-outer {
padding: 23px;
margin: -23px;
}
.owl-carousel-indigo .owl-item.active {
pointer-events: auto;
}
.owl-carousel-indigo .owl-dots {
pointer-events: auto;
}
.owl-carousel-indigo * + .owl-dots {
margin-top: 25px;
}
@media (max-width: 575.98px) {
.owl-carousel-indigo .owl-dot {
width: 11px;
height: 11px;
margin: 0 6px;
}
}
@media (min-width: 768px) {
.owl-carousel-indigo {
padding: 0 0;
}
.owl-carousel-indigo * + .owl-dots {
margin-top: 60px;
}
}
.owl-carousel-dots-space .owl-dots {
margin-bottom: 25px;
}
.lg-sub-html, .lg-toolbar {
background-color: rgba(0, 0, 0, 0.45);
}
@font-face {
font-family: lg;
src: url(../fonts/lg.eot?n1z373);
src: url(../fonts/lg.eot?#iefixn1z373) format("embedded-opentype"), url(../fonts/lg.woff?n1z373) format("woff"), url(../fonts/lg.ttf?n1z373) format("truetype"), url(../fonts/lg.svg?n1z373#lg) format("svg");
font-weight: 400;
font-style: normal;
}
.lg-icon {
font-family: lg;
speak: none;
font-style: normal;
font-weight: 400;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.lg-actions .lg-next, .lg-actions .lg-prev {
background-color: rgba(0, 0, 0, 0.45);
border-radius: 2px;
color: #999;
cursor: pointer;
display: block;
font-size: 22px;
margin-top: -10px;
padding: 8px 10px 9px;
position: absolute;
top: 50%;
z-index: 1180;
border: none;
outline: 0;
}
.lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled {
pointer-events: none;
opacity: .5;
}
.lg-actions .lg-next:hover, .lg-actions .lg-prev:hover {
color: #fff;
}
.lg-actions .lg-next {
right: 20px;
}
.lg-actions .lg-next:before {
content: "\e095";
}
.lg-actions .lg-prev {
left: 20px;
}
.lg-actions .lg-prev:after {
content: "\e094";
}
@-webkit-keyframes lg-right-end {
0%, 100% {
left: 0;
}
50% {
left: -30px;
}
}
@-moz-keyframes lg-right-end {
0%, 100% {
left: 0;
}
50% {
left: -30px;
}
}
@-ms-keyframes lg-right-end {
0%, 100% {
left: 0;
}
50% {
left: -30px;
}
}
@keyframes lg-right-end {
0%, 100% {
left: 0;
}
50% {
left: -30px;
}
}
@-webkit-keyframes lg-left-end {
0%, 100% {
left: 0;
}
50% {
left: 30px;
}
}
@-moz-keyframes lg-left-end {
0%, 100% {
left: 0;
}
50% {
left: 30px;
}
}
@-ms-keyframes lg-left-end {
0%, 100% {
left: 0;
}
50% {
left: 30px;
}
}
@keyframes lg-left-end {
0%, 100% {
left: 0;
}
50% {
left: 30px;
}
}
.lg-outer.lg-right-end .lg-object {
-webkit-animation: lg-right-end .3s;
-o-animation: lg-right-end .3s;
animation: lg-right-end .3s;
position: relative;
}
.lg-outer.lg-left-end .lg-object {
-webkit-animation: lg-left-end .3s;
-o-animation: lg-left-end .3s;
animation: lg-left-end .3s;
position: relative;
}
.lg-toolbar {
z-index: 1182;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
.lg-toolbar .lg-icon {
color: #999;
cursor: pointer;
float: right;
font-size: 24px;
height: 47px;
line-height: 27px;
padding: 10px 0;
text-align: center;
width: 50px;
text-decoration: none !important;
outline: 0;
transition: color .2s linear;
}
@media (max-width: 575.98px) {
.lg-toolbar .lg-icon {
font-size: 21px;
width: 36px;
}
}
@media (max-width: 575.98px) {
#lg-counter {
font-size: 14px;
line-height: 27px;
}
}
.lg-toolbar .lg-icon:hover {
color: #fff;
}
.lg-toolbar .lg-close:after {
content: "\e070";
}
.lg-toolbar .lg-download:after {
content: Line truncated
|
||||
*
|
||||
* Material Parallax
|
||||
*/
.parallax-content {
position: relative;
z-index: 1;
}
.parallax-container {
position: relative;
overflow: hidden;
background-position: center center;
background-size: cover;
}
.material-parallax {
position: absolute;
top: 0;
left: -1px;
right: -1px;
bottom: 0;
z-index: 0;
background-position: center center;
}
.ipad .parallax-container,
.iphone .parallax-container {
background-attachment: scroll !important;
}
.material-parallax img {
display: none;
position: absolute;
left: 50%;
bottom: 0;
min-width: 101%;
min-height: 101%;
max-width: none;
transform: translate3d(-50%, 0, 0);
}
/*
|
||||
*
|
||||
* Slick Carousel
|
||||
*/
/*rtl:begin:ignore*/
.slick-slider {
position: relative;
display: block;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list {
position: relative;
overflow: hidden;
display: block;
margin: 0;
padding: 0;
}
.slick-list:focus {
outline: none;
}
.slick-list.dragging {
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list {
transform: translate3d(0, 0, 0);
}
.slick-track {
position: relative;
left: 0;
top: 0;
display: block;
}
.slick-track::before, .slick-track::after {
content: "";
display: table;
}
.slick-track::after {
clear: both;
}
.slick-loading .slick-track {
visibility: hidden;
}
.slick-slide {
float: left;
height: 100%;
min-height: 1px;
display: none;
}
[dir="rtl"] .slick-slide {
float: right;
}
.slick-slide img {
display: block;
}
.slick-slide.slick-loading img {
display: none;
}
.slick-slide.dragging img {
pointer-events: none;
}
.slick-initialized .slick-slide {
display: block;
}
.slick-loading .slick-slide {
visibility: hidden;
}
.slick-vertical .slick-slide {
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}
.slick-loading .slick-list {
background: #fff url("./../images/ajax-loader.gif") center center no-repeat;
}
/* Icons */
/* Arrows */
.slick-prev,
.slick-next {
position: absolute;
display: block;
height: 20px;
width: 20px;
line-height: 0;
font-size: 0;
cursor: pointer;
color: transparent;
background-color: transparent;
top: 50%;
transform: translate(0, -50%);
padding: 0;
border: none;
outline: none;
z-index: 9;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
opacity: 0.25;
}
.slick-prev::before,
.slick-next::before {
font-family: "fl-bigmug-line";
font-size: 24px;
line-height: 1;
color: #0045b6;
opacity: 0.75;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transition: .22s;
}
.slick-prev:hover::before,
.slick-next:hover::before {
color: #343db0;
}
.slick-prev {
left: 0;
}
[dir="rtl"] .slick-prev {
left: auto;
right: 0;
}
.slick-prev:before {
content: "";
}
[dir="rtl"] .slick-prev:before {
content: "";
}
.slick-next {
right: 0;
}
[dir="rtl"] .slick-next {
left: 0;
right: auto;
}
.slick-next:before {
content: "";
}
[dir="rtl"] .slick-next:before {
content: "";
}
/* Dots */
.slick-dots {
position: absolute;
bottom: -45px;
list-style: none;
display: block;
text-align: center;
padding: 0;
width: 100%;
}
.slick-dots li {
position: relative;
display: inline-block;
height: 20px;
width: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button {
border: 0;
background: transparent;
display: block;
height: 20px;
width: 20px;
outline: none;
line-height: 0;
font-size: 0;
color: transparent;
padding: 5px;
cursor: pointer;
}
.slick-dots li button:hover, .slick-dots li button:focus {
outline: none;
}
.slick-dots li button:hover:before, .slick-dots li button:focus:before {
opacity: 1;
}
.slick-dots li button:before {
position: absolute;
top: 0;
left: 0;
content: "";
font-family: "fl-bigmug-line";
font-size: 6px;
line-height: 20px;
text-align: center;
color: #0045b6;
opacity: 0.25;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before {
color: #0045b6;
opacity: 0.75;
}
/*rtl:end:ignore*/
.slick-widget-testimonials .carousel-child {
max-width: 570px;
padding: 0 50px;
margin-left: auto;
margin-right: auto;
}
.slick-widget-testimonials .carousel-child .item {
border-radius: 50%;
cursor: pointer;
transform: scale3d(0.66, 0.66, 0.66);
transition: .22s;
text-align: center;
}
.slick-widget-testimonials .carousel-child .slick-center {
transform: scale3d(1, 1, 1);
}
.slick-widget-testimonials .carousel-child img {
border-radius: inherit;
max-width: 100%;
margin: 0 auto;
}
@media (max-width: 575.98px) {
.slick-widget-testimonials .carousel-child .slick-prev {
left: 30px;
}
.slick-widget-testimonials .carousel-child .slick-next {
right: 30px;
}
}
.slick-widget-testimonials .carousel-parent {
max-width: 780px;
margin-left: auto;
margin-right: auto;
}
.slick-widget-testimonials .carousel-parent .item > * {
transform-origin: 50% 0;
opacity: 0;
transition: .44s;
}
.slick-widget-testimonials .carousel-parent .slick-active > * {
opacity: 1;
}
.slick-widget-testimonials > * + * {
margin-top: 20px;
}
* + .slick-widget-testimonials {
margin-top: 30px;
}
@media (min-width: 768px) {
* + .slick-widget-testimonials {
margin-top: 55px;
}
}
@media (min-width: 1200px) {
* + .slick-widget-testimonials {
margin-top: 75px;
}
}
/*
|
||||
*
|
||||
* Select 2 v4
|
||||
*/
.select2 {
width: 100% !important;
}
.select2-container {
box-sizing: border-box;
display: inline-block;
margin: 0;
position: relative;
vertical-align: middle;
}
.select2-container .select2-container--default .select2-selection--single {
width: 100% !important;
}
.select2-container .select2-selection--single {
display: block;
cursor: pointer;
user-select: none;
}
.select2-container .select2-selection--single .select2-selection__rendered {
display: block;
padding-left: 8px;
padding-right: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.select2-container .select2-selection--single .select2-selection__clear {
position: relative;
}
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 8px;
padding-left: 20px;
}
.select2-container .select2-selection--multiple {
display: block;
cursor: pointer;
min-height: 32px;
user-select: none;
-webkit-user-select: none;
}
.select2-container .select2-selection--multiple .select2-selection__rendered {
display: inline-block;
overflow: hidden;
padding-left: 8px;
text-overflow: ellipsis;
white-space: nowrap;
}
.select2-container .select2-search--inline {
float: left;
}
.select2-container .select2-search--inline .select2-search__field {
border: none;
font-size: 100%;
margin-top: 5px;
padding: 0;
}
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none;
}
.select2-dropdown {
position: absolute;
left: -100000px;
z-index: 1051;
display: block;
overflow: hidden;
width: 100%;
border: 1px;
border-radius: 6px;
background-color: #fff;
box-shadow: 0 0 5px 0 rgba(73, 80, 87, 0.2);
}
.select2-results {
display: block;
}
.select2-results__options {
list-style: none;
margin: 0;
padding: 0;
}
.select2-results__option {
padding: 6px;
user-select: none;
-webkit-user-select: none;
}
.select2-results__option[aria-selected] {
cursor: pointer;
}
.select2-container--open .select2-dropdown {
left: 0;
}
.select2-container--open .select2-dropdown--above {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.select2-container--open .select2-dropdown--below {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.select2-search--dropdown {
display: block;
padding: 4px;
}
.select2-search--dropdown .select2-search__field {
padding: 4px;
width: 100%;
box-sizing: border-box;
}
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none;
}
.select2-search--dropdown.select2-search--hide {
display: none;
}
.select2-close-mask {
border: 0;
margin: 0;
padding: 0;
display: block;
position: fixed;
left: 0;
top: 0;
min-height: 100%;
min-width: 100%;
height: auto;
width: auto;
opacity: 0;
z-index: 99;
background-color: #fff;
filter: alpha(opacity=0);
}
.select2-hidden-accessible {
border: 0 !important;
clip: rect(0 0 0 0) !important;
height: 1px !important;
margin: -1px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
width: 1px !important;
}
.select2-container--default .select2-selection--single {
background-color: #fff;
border: 1px;
border-radius: 6px;
border-style: solid;
border-color: #aeb1be;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
display: block;
padding: 11px 29px 11px 19px;
color: #495057;
font-size: 16px;
line-height: 1.5;
font-weight: 400;
min-height: 48px;
}
.select2-container--default .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: 700;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder {
color: #74757f;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
position: absolute;
top: 50%;
transform: translate3d(0, -50%, 0);
right: 5px;
width: 20px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
pointer-events: none;
color: #495057;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b::before {
position: relative;
display: inline-block;
content: "";
font-family: "Material Design Icons";
font-size: 18px;
transform: rotate(0deg);
transition: .1s;
}
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left;
}
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
left: 1px;
right: auto;
}
.select2-container--default.select2-container--disabled .select2-selection--single {
background-color: #f5f6fa;
cursor: default;
}
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
display: none;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrowLine truncated
|
||||
*
|
||||
* D3 Charts
|
||||
*/
.c3 svg {
padding-left: 4px;
width: 100%;
-webkit-tap-highlight-color: transparent;
}
.c3 path,
.c3 line {
fill: none;
stroke: #9f9f9f;
}
.c3 text {
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 16px;
fill: #9b9b9b;
user-select: none;
}
.c3-legend-item-tile,
.c3-xgrid-focus,
.c3-ygrid,
.c3-event-rect,
.c3-bars path {
shape-rendering: crispEdges;
}
.c3-chart-arc path {
stroke: #fff;
}
.c3-chart-arc text {
fill: #fff;
font-size: 14px;
}
/*-- Axis --*/
/*-- Grid --*/
.c3-grid line {
stroke: #eaebee;
}
.c3-grid text {
fill: #aaa;
}
.c3-xgrid,
.c3-ygrid {
stroke-dasharray: 0 0;
}
/*-- Text on Chart --*/
.c3-text.c3-empty {
fill: #808080;
font-size: 2em;
}
/*-- Line --*/
.c3-line {
stroke-width: 3px;
}
/*-- Point --*/
.c3-circle._expanded_ {
stroke-width: 2px;
stroke: white;
}
.c3-selected-circle {
fill: white;
stroke-width: 2px;
}
/*-- Bar --*/
.c3-bar {
stroke-width: 0;
}
.c3-bar._expanded_ {
fill-opacity: 0.75;
}
/*-- Focus --*/
.c3-target.c3-focused {
opacity: 1;
}
.c3-target.c3-focused path.c3-line,
.c3-target.c3-focused path.c3-step {
stroke-width: 2px;
}
.c3-target.c3-defocused {
opacity: 0.3 !important;
}
/*-- Region --*/
.c3-region {
fill: steelblue;
fill-opacity: .1;
}
/*-- Brush --*/
.c3-brush .extent {
fill-opacity: .1;
fill: #000;
}
/*-- Select - Drag --*/
/*-- Legend --*/
.c3-legend-item {
font-size: 12px;
}
.c3-legend-item-hidden {
opacity: 0.15;
}
.c3-legend-background {
opacity: 0.75;
fill: white;
stroke: lightgray;
stroke-width: 1;
}
/*-- Title --*/
.c3-title {
font: 14px sans-serif;
}
/*-- Tooltip --*/
.c3-tooltip-container {
z-index: 10;
}
.c3-tooltip {
border-collapse: collapse;
border-spacing: 0;
background-color: #fff;
empty-cells: show;
opacity: 0.9;
border: 1px solid #ccc;
}
.c3-tooltip tr {
border: 1px solid #ccc;
}
.c3-tooltip th {
background-color: #aaa;
font-size: 14px;
line-height: 1.2;
padding: 2px 5px;
text-align: left;
color: #fff;
}
.c3-tooltip td {
font-size: 13px;
padding: 3px 6px;
background-color: #fff;
color: #000;
border-left: 1px dotted #999;
}
.c3-tooltip td > span {
display: inline-block;
width: 10px;
height: 10px;
margin-right: 6px;
}
.c3-tooltip td.value {
text-align: right;
}
/*-- Area --*/
.c3-area {
stroke-width: 0;
opacity: 0.2;
}
/*-- Arc --*/
.c3-chart-arcs-title {
dominant-baseline: middle;
font-size: 1.3em;
}
.c3-chart-arcs .c3-chart-arcs-background {
fill: #e0e0e0;
stroke: none;
}
.c3-chart-arcs .c3-chart-arcs-gauge-unit {
fill: #000;
font-size: 16px;
}
.c3-chart-arcs .c3-chart-arcs-gauge-max {
fill: #777;
}
.c3-chart-arcs .c3-chart-arcs-gauge-min {
fill: #777;
}
.c3-chart-arc .c3-gauge-value {
fill: #000;
}
.c3 .domain {
stroke: #c8c8c8;
}
.d3-chart .tick line {
display: none;
}
.d3-chart .c3-tooltip {
opacity: 1;
color: #fff;
background: #0045b6;
border: 1px solid #aeb1be;
}
.d3-chart .c3-tooltip tr th {
padding: 8px 10px;
color: #fff;
background: #495057;
}
.d3-chart .c3-tooltip tr td {
padding: 5px 10px;
color: #838386;
background: #fff;
}
.d3-chart .c3-tooltip .value {
border-left: 1px solid #f2f3f9;
}
#line-chart .c3-tooltip-container {
border-radius: 6px;
overflow: hidden;
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.05);
}
#line-chart .c3-tooltip-container tr {
border: 0;
}
#line-chart .c3-tooltip-container .name {
border-left: 0;
}
#line-chart .c3-tooltip-container table {
border: 0 solid transparent;
border-radius: 6px;
}
#line-chart .c3-axis-y-label {
transform: translateY(-10px);
}
#line-chart .c3-axis-y .tick text {
transform: translateX(1px);
}
#line-chart .c3-axis-x {
text-align: left;
}
#line-chart .c3-axis-x text {
transform: translateX(-1px);
text-anchor: start !important;
}
#line-chart .c3-legend-item {
display: none !important;
transform: translateY(15px);
}
#line-chart .c3-legend-item text {
font-size: 16px;
color: #29293a;
}
.d3-chart-wrap {
width: 100%;
max-width: 100%;
overflow-y: hidden;
overflow-x: auto;
padding-bottom: 30px;
}
.d3-chart-wrap > .d3-chart {
min-width: 520px;
}
.d3-chart-legend {
transform: translateY(-5px);
margin-bottom: -5px;
margin-left: -30px;
text-align: center;
}
.d3-chart-legend > * {
display: inline-block;
margin-top: 5px;
margin-left: 30px;
}
.d3-chart-legend span {
position: relative;
display: inline-block;
font-size: 16px;
color: #74757f;
cursor: pointer;
}
.d3-chart-legend span::before {
content: '';
display: inline-block;
height: 3px;
width: 30px;
margin-right: 12px;
vertical-align: middle;
}
.d3-chart-legend span:nth-child(1)::before {
background: #0045b6;
}
.d3-chart-legend span:nth-child(2)::before {
background: #aeb1be;
}
* + .d3-chart-legend {
margin-top: 20px;
}
@media (min-width: 1600px) {
.d3-chart-legend span {
font-size: 18px;
}
}
.rd-range-input {
border: none;
background: none;
width: auto;
}
.price-devider {
paddinLine truncated
|
||||
@@ -1,373 +0,0 @@
|
||||
/* EXIT Realty / MKDRealtor public brand overrides on Real Estate theme */
|
||||
|
||||
:root {
|
||||
--monica-primary: #00626c;
|
||||
--monica-primary-light: #008898;
|
||||
--monica-ink: #212121;
|
||||
--monica-muted: #6b7280;
|
||||
--monica-surface: #f4f7f7;
|
||||
--monica-border: #d9e3e4;
|
||||
}
|
||||
|
||||
.footer-brand-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.footer-brand-row img {
|
||||
height: 40px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.about-subtitle {
|
||||
font-size: 18px;
|
||||
color: var(--monica-muted);
|
||||
}
|
||||
|
||||
.page .button-primary,
|
||||
.page .button-primary:focus,
|
||||
.page .button-primary:active,
|
||||
.cookie-consent-banner .button-primary,
|
||||
.cookie-consent-banner .button-primary:focus,
|
||||
.cookie-consent-banner .button-primary:active {
|
||||
background-color: var(--monica-primary) !important;
|
||||
border-color: var(--monica-primary) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.page .button-primary:hover,
|
||||
.cookie-consent-banner .button-primary:hover {
|
||||
background-color: var(--monica-primary-light) !important;
|
||||
border-color: var(--monica-primary-light) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
/* Theme default blue (#0045b6) → EXIT Realty teal on public chrome */
|
||||
html .page .text-primary {
|
||||
color: var(--monica-primary) !important;
|
||||
}
|
||||
.page .breadcrumbs-custom-path a,
|
||||
.page a.link-default {
|
||||
color: var(--monica-primary);
|
||||
}
|
||||
.page a.link-default:hover {
|
||||
color: var(--monica-primary-light);
|
||||
}
|
||||
|
||||
.page .button-gray-bordered:hover,
|
||||
.page .button-gray-bordered:active,
|
||||
.page .button-default:hover,
|
||||
.page .button-default:active,
|
||||
.page .button-accent-outline:hover,
|
||||
.page .button-accent-outline:active,
|
||||
.page .button-primary-outline:hover,
|
||||
.page .button-primary-outline:active,
|
||||
.page .button-primary-white:hover,
|
||||
.page .button-primary-white:active,
|
||||
.page .button.button-primary-lighten,
|
||||
.page .button.button-primary-lighten:focus {
|
||||
background-color: var(--monica-primary) !important;
|
||||
border-color: var(--monica-primary) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.page .button.button-primary-lighten:hover,
|
||||
.page .button.button-primary-lighten:active {
|
||||
background-color: var(--monica-ink) !important;
|
||||
border-color: var(--monica-ink) !important;
|
||||
}
|
||||
.page .button-accent-outline,
|
||||
.page .button-accent-outline:focus {
|
||||
border-color: var(--monica-primary) !important;
|
||||
}
|
||||
.page .button-video:hover {
|
||||
color: var(--monica-primary) !important;
|
||||
}
|
||||
.page .btn-primary,
|
||||
.page .btn-primary:active,
|
||||
.page .btn-primary:focus {
|
||||
background: var(--monica-primary) !important;
|
||||
border-color: var(--monica-primary) !important;
|
||||
}
|
||||
.page .box-chloe__icon,
|
||||
.page .box-light-icon,
|
||||
.page .box-minimal-icon .box-chloe__icon {
|
||||
color: var(--monica-primary);
|
||||
}
|
||||
|
||||
/* Mobile drawer active/hover — theme uses #0045b6 */
|
||||
.rd-navbar-fixed .rd-nav-item:hover .rd-nav-link,
|
||||
.rd-navbar-fixed .rd-nav-item.focus .rd-nav-link,
|
||||
.rd-navbar-fixed .rd-nav-item.active .rd-nav-link,
|
||||
.rd-navbar-fixed .rd-nav-item.opened .rd-nav-link {
|
||||
background: var(--monica-primary) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
/* Scroll-to-top (injected outside .page) */
|
||||
.ui-to-top {
|
||||
background: var(--monica-primary) !important;
|
||||
color: #fff !important;
|
||||
box-shadow: 0 6px 16px rgba(0, 98, 108, 0.35);
|
||||
}
|
||||
.ui-to-top:hover,
|
||||
.ui-to-top:focus {
|
||||
background: var(--monica-primary-light) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
/* Django flash messages */
|
||||
.flash {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 12px 0 0;
|
||||
}
|
||||
.flash li {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto 8px;
|
||||
padding: 12px 16px;
|
||||
background: #e8f4f5;
|
||||
border-left: 3px solid #00626c;
|
||||
color: #0d4a52;
|
||||
font-size: 14px;
|
||||
}
|
||||
.flash li.error,
|
||||
.flash li.danger {
|
||||
background: #fee2e2;
|
||||
border-left-color: #b91c1c;
|
||||
color: #991b1b;
|
||||
}
|
||||
|
||||
/* Form field errors */
|
||||
.form-wrap .errorlist {
|
||||
list-style: none;
|
||||
margin: 6px 0 0;
|
||||
padding: 0;
|
||||
color: #b91c1c;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/* Cookie consent — match public EXIT Realty teal brand */
|
||||
.cookie-consent-banner {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 11000;
|
||||
padding: 1rem 1.25rem;
|
||||
background: rgba(17, 24, 28, 0.96);
|
||||
border-top: 2px solid var(--monica-primary);
|
||||
box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.28);
|
||||
font-family: "Work Sans", sans-serif;
|
||||
}
|
||||
.cookie-consent-content {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
}
|
||||
.cookie-consent-text {
|
||||
flex: 1 1 420px;
|
||||
color: #d7dee3;
|
||||
font-size: 0.9375rem;
|
||||
line-height: 1.45;
|
||||
margin: 0;
|
||||
font-family: "Work Sans", sans-serif;
|
||||
font-weight: 400;
|
||||
}
|
||||
.cookie-consent-text-short {
|
||||
display: none;
|
||||
}
|
||||
.cookie-consent-actions {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.cookie-consent-banner .button {
|
||||
min-width: 10rem;
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
font-family: "Work Sans", sans-serif;
|
||||
font-weight: 500;
|
||||
}
|
||||
.visually-hidden {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap;
|
||||
border: 0;
|
||||
}
|
||||
.footer-link-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
color: #7dd3da;
|
||||
font: inherit;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
.footer-link-btn:hover {
|
||||
text-decoration: underline;
|
||||
color: #a8e8ed;
|
||||
}
|
||||
|
||||
.cookie-consent-link {
|
||||
color: #7dd3da;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 2px;
|
||||
}
|
||||
.cookie-consent-link:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.legal-prose {
|
||||
max-width: 42rem;
|
||||
}
|
||||
.legal-prose .legal-lead {
|
||||
font-size: 1.05rem;
|
||||
color: var(--monica-ink);
|
||||
margin-bottom: 1.75rem;
|
||||
}
|
||||
.legal-prose h2 {
|
||||
font-size: 1.35rem;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 0.75rem;
|
||||
text-transform: none;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
.legal-prose p {
|
||||
margin-bottom: 1rem;
|
||||
color: #4b5563;
|
||||
line-height: 1.65;
|
||||
}
|
||||
.legal-prose .legal-updated {
|
||||
margin-top: 2.5rem;
|
||||
font-size: 0.875rem;
|
||||
color: var(--monica-muted);
|
||||
}
|
||||
|
||||
/* Contact form — breathe on narrow viewports */
|
||||
@media (max-width: 767.98px) {
|
||||
.contact-form-section > .container {
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
.contact-form-section .section-lg {
|
||||
padding-top: 2.5rem;
|
||||
padding-bottom: 2.5rem;
|
||||
}
|
||||
.contact-form-section h3 {
|
||||
margin-bottom: 1.25rem;
|
||||
padding-right: 0.25rem;
|
||||
}
|
||||
.contact-message-form .form-wrap {
|
||||
margin-bottom: 0.35rem;
|
||||
}
|
||||
.contact-message-form .form-label-outside {
|
||||
margin-bottom: 0.35rem;
|
||||
}
|
||||
.contact-message-form .row-10 {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.contact-message-form .row-10 > [class*="col-"] {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.footer-aside-copy {
|
||||
text-align: right;
|
||||
}
|
||||
.footer-aside-copy .rights {
|
||||
margin: 0;
|
||||
}
|
||||
.footer-made-by {
|
||||
margin: 6px 0 0;
|
||||
font-size: 13px;
|
||||
color: #9ca3af;
|
||||
font-family: "Work Sans", sans-serif;
|
||||
}
|
||||
.footer-made-by a {
|
||||
color: #d1d5db;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.footer-made-by a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.footer-minimal .footer-made-by {
|
||||
margin-top: 8px;
|
||||
}
|
||||
.footer-minimal-inner {
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.pref-check {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
font-size: 15px;
|
||||
color: var(--monica-ink);
|
||||
cursor: pointer;
|
||||
}
|
||||
.pref-check input {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.cookie-consent-banner {
|
||||
padding: 0.625rem 0.75rem;
|
||||
padding-bottom: max(0.625rem, env(safe-area-inset-bottom));
|
||||
}
|
||||
.cookie-consent-content {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
gap: 0.625rem;
|
||||
}
|
||||
.cookie-consent-text-short {
|
||||
display: inline;
|
||||
}
|
||||
.cookie-consent-text-full {
|
||||
display: none;
|
||||
}
|
||||
.cookie-consent-text {
|
||||
flex: none;
|
||||
font-size: 0.8125rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
.cookie-consent-actions {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Keep hero slide-2 heading visually aligned with slide-1 h1 (SEO: one h1). */
|
||||
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
|
||||
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
|
||||
font-size: 2.5rem;
|
||||
line-height: 1.15;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
|
||||
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
|
||||
font-size: 3.5rem;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
|
||||
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
|
||||
font-size: 4.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg"><defs><font id="flaticon" horiz-adv-x="512"><font-face units-per-em="512" ascent="448" descent="-64" x-height="240" cap-height="480"/><missing-glyph horiz-adv-x="512"/><glyph unicode="" glyph-name="add137" horiz-adv-x="512" d="M448 256h-128V384c0 35.344 -28.656 64 -64 64c-35.344 0 -64 -28.656 -64 -64v-128H64 c-35.344 0 -64 -28.656 -64 -64c0 -35.344 28.656 -64 64 -64h128v-128c0 -35.344 28.656 -64 64 -64c35.344 0 64 28.656 64 64v128h128c35.344 0 64 28.656 64 64 C512 227.344 483.344 256 448 256zM448 160H288v-160c0 -17.68 -14.32 -32 -32 -32s-32 14.32 -32 32V160H64c-17.68 0 -32 14.32 -32 32c0 17.68 14.32 32 32 32h160V384 c0 17.68 14.32 32 32 32s32 -14.336 32 -32v-160h160c17.68 0 32 -14.32 32 -32C480 174.32 465.68 160 448 160z"/><glyph unicode="" glyph-name="add139" horiz-adv-x="512" d="M256 448C114.608 448 0 333.392 0 192s114.608 -256 256 -256c141.392 0 256 114.624 256 256 S397.392 448 256 448zM256 -32C132.288 -32 32 68.288 32 192S132.288 416 256 416s224 -100.288 224 -224S379.712 -32 256 -32zM352 208h-80v80c0 8.832 -7.168 16 -16 16 c-8.832 0 -16 -7.168 -16 -16v-80h-80c-8.832 0 -16 -7.168 -16 -16s7.168 -16 16 -16h80v-80c0 -8.832 7.168 -16 16 -16c8.832 0 16 7.168 16 16v80h80 c8.832 0 16 7.168 16 16S360.832 208 352 208z"/><glyph unicode="" glyph-name="add149" horiz-adv-x="512" d="M352 208h-80v80c0 8.832 -7.168 16 -16 16s-16 -7.168 -16 -16v-80h-80c-8.832 0 -16 -7.168 -16 -16 c0 -8.832 7.168 -16 16 -16h80v-80c0 -8.832 7.168 -16 16 -16s16 7.168 16 16v80h80c8.832 0 16 7.168 16 16C368 200.832 360.832 208 352 208zM448 448H64 C28.656 448 0 419.344 0 384v-384c0 -35.344 28.656 -64 64 -64h384c35.344 0 64 28.656 64 64V384C512 419.344 483.344 448 448 448zM480 0c0 -17.68 -14.336 -32 -32 -32H64 c-17.68 0 -32 14.32 -32 32V384c0 17.68 14.32 32 32 32h384c17.664 0 32 -14.336 32 -32V0z"/><glyph unicode="" glyph-name="airplane86" horiz-adv-x="512" d="M499.41888892363 435.14677837872c-19.960108794198 20.008128302123 -55.014349579517 15.318223028105 -75.070497389565 -4.7859442898678l-102.05746084347 -101.83336980648 L132.95001094195 399.29221246131C114.83064995154 403.98211773533 96.567230437365 410.03257573389 74.062087723138 387.49542001438c-11.460655891456 -11.492668896739 -35.326351330228 -35.406383843436 0 -70.796761184231l129.82874292681 -106.29918404352L119.42451620971 126.10923187545l-78.816019007722 19.687998249289 c-11.700753431081 3.025228999281 -19.559946228155 0.65626660830963 -25.562384718792 -5.9544189827117c-3.025228999281 -3.7775346234408 -24.970144121049 -20.056147810048 -9.6839340982274 -35.374370838153l91.653234126364 -71.292962766124l71.276956263482 -91.653234126364 c11.076499828055 -11.092506330697 21.368681026667 -4.1776971894832 35.43839684872 9.1877325163348c8.9156219714259 8.9316284740676 6.9948416544221 13.525494732235 4.3057492106168 26.554787882577l-17.81523744021 78.255791415262l83.89008034514 84.178197392691l106.12311251446 -129.82874292681 c35.326351330228 -35.390377340795 59.192046769 -11.476662394098 70.652702660456 0c22.505142714228 22.553162222153 16.454684715666 40.848594741614 11.78078594429 58.9999687373l-70.156501078563 189.6290367962l101.65729827743 102.00944133554 C514.24091036984 380.62863038109 519.37899771782 415.15465657924 499.41888892363 435.14677837872zM477.76209084941 381.63704004752l-119.28045768593 -119.71263325726l72.125300903492 -198.40060024385c3.553443586457 -11.364616875606 1.3445462219026 -25.434332697658 -3.2493200362647 -30.028198955826 c-13.045299652984 -13.077312658267 -22.361084190452 -6.8667896332885 -27.291087004095 -1.376559227186l-115.32685153344 155.80729671429l-127.65185856754 -128.11604714415l22.969331290837 -85.314659080251c-9.0596804952012 9.0916935004846 -62.02519773658 80.016506705849 -63.305717947916 81.297026917185 c-0.84834464001 0.84834464001 -70.492637634039 52.773439209679 -78.015693875637 60.312501953919l81.825241504361 -22.072967142902l130.08484696908 127.73189108075L95.942976834339 336.22659205302c-4.4338012317504 3.9696126551412 -10.260168193329 15.686372588864 1.6806827773783 27.659236564854 c4.5778597555257 4.5938662581674 18.503517053803 5.9864319879951 29.852127426767 2.4329884015381l197.5362491012 -71.581079813674l120.89711445275 118.72023009348c8.4354268921749 8.4514333948166 24.986150623691 7.5870822521649 32.381154844155 0.17607152905868 C485.70131615969 406.22302810517 486.19751774158 390.08847344234 477.76209084941 381.63704004752z"/><glyph unicode="" glyph-name="alarm31" horiz-adv-x="512" d="M368 208h-96V320c0 8.832 -7.168 16 -16 16c-8.832 0 -16 -7.168 -16 -16v-128 c0 -8.832 7.168 -16 16 -16h112c8.832 0 16 7.168 16 16C384 200.832 376.832 208 368 208zM32 368c0 26.512 21.488 48 48 48l32 0V448H80C35.824 448 0 412.176 0 368v-32 h32V368zM432 448h-32l0 -32l32 0c26.512 0 48 -21.488 48 -48v-32h32V368C512 412.176 476.176 448 432 448zM480 192c0 123.712 -100.288 224 -224 224C132.288 416 32 315.712 32 192 c0 -84.832 47.184 -158.64 116.72 -196.656L96 -64h48l42.96 42.96C208.72 Line truncated
|
||||
|
Before Width: | Height: | Size: 270 KiB |
|
Before Width: | Height: | Size: 647 KiB |
|
Before Width: | Height: | Size: 455 KiB |
|
Before Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 412 KiB |
@@ -1,299 +0,0 @@
|
||||
/**
|
||||
* @module jQuery
|
||||
* @author jQuery Foundation and other contributors
|
||||
* @see https://code.jquery.com/jquery/
|
||||
* @license MIT (jquery.org/license)
|
||||
* @version 3.3.1
|
||||
*/
|
||||
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)Line truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery Migrate
|
||||
* @author jQuery Foundation and other contributors
|
||||
* @see https://code.jquery.com/jquery/
|
||||
* @license MIT
|
||||
* @version 3.0.0
|
||||
*/
|
||||
"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b){"use strict";function c(c){var d=b.console;e[c]||(e[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function d(a,b,d,e){Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:function(){return c(e),d}})}a.migrateVersion="3.0.0",function(){var c=b.console&&b.console.log&&function(){b.console.log.apply(b.console,arguments)},d=/^[12]\./;c&&(a&&!d.test(a.fn.jquery)||c("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),a.migrateWarnings&&c("JQMIGRATE: Migrate plugin loaded multiple times"),c("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion))}();var e={};a.migrateWarnings=[],void 0===a.migrateTrace&&(a.migrateTrace=!0),a.migrateReset=function(){e={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&c("jQuery is not compatible with Quirks Mode");var f=a.fn.init,g=a.isNumeric,h=a.find,i=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,j=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;a.fn.init=function(a){var b=Array.prototype.slice.call(arguments);return"string"==typeof a&&"#"===a&&(c("jQuery( '#' ) is not a valid selector"),b[0]=[]),f.apply(this,b)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&i.test(a))try{document.querySelector(a)}catch(d){a=a.replace(j,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),c("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){c("Attribute selector with '#' was not fixed: "+b[0])}}return h.apply(this,b)};var k;for(k in h)Object.prototype.hasOwnProperty.call(h,k)&&(a.find[k]=h[k]);a.fn.size=function(){return c("jQuery.fn.size() is deprecated; use the .length property"),this.length},a.parseJSON=function(){return c("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},a.isNumeric=function(b){function d(b){var c=b&&b.toString();return!a.isArray(b)&&c-parseFloat(c)+1>=0}var e=g(b),f=d(b);return e!==f&&c("jQuery.isNumeric() should not be called on constructed objects"),f},d(a,"unique",a.uniqueSort,"jQuery.unique is deprecated, use jQuery.uniqueSort"),d(a.expr,"filters",a.expr.pseudos,"jQuery.expr.filters is now jQuery.expr.pseudos"),d(a.expr,":",a.expr.pseudos,'jQuery.expr[":"] is now jQuery.expr.pseudos');var l=a.ajax;a.ajax=function(){var a=l.apply(this,arguments);return a.promise&&(d(a,"success",a.done,"jQXHR.success is deprecated and removed"),d(a,"error",a.fail,"jQXHR.error is deprecated and removed"),d(a,"complete",a.always,"jQXHR.complete is deprecated and removed")),a};var m=a.fn.removeAttr,n=a.fn.toggleClass,o=/\S+/g;a.fn.removeAttr=function(b){var d=this;return a.each(b.match(o),function(b,e){a.expr.match.bool.test(e)&&(c("jQuery.fn.removeAttr no longer sets boolean properties: "+e),d.prop(e,!1))}),m.apply(this,arguments)},a.fn.toggleClass=function(b){return void 0!==b&&"boolean"!=typeof b?n.apply(this,arguments):(c("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var c=this.getAttribute&&this.getAttribute("class")||"";c&&a.data(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||b===!1?"":a.data(this,"__className__")||"")}))};var p=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return p=!0,a=d.apply(this,arguments),p=!1,a})}),a.swap=function(a,b,d,e){var f,g,h={};p||c("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=d.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f};var q=a.data;a.data=function(b,d,e){var f;return d&&d!==a.camelCase(d)&&(f=a.hasData(b)&&q.call(this,b),f&&d in f)?(c("jQuery.data() always sets/gets camelCased names: "+d),arguments.length>2&&(f[d]=e),f[d]):q.apply(this,arguments)};var r=a.Tween.prototype.run;a.Tween.prototype.run=function(b){a.easing[this.easing].length>1&&(c('easing function "jQuery.easing.'+this.easing.toString()+'" should use only first argument'),a.easing[this.easing]=a.easing[this.easing].bind(a.easing,b,this.options.duration*b,0,1,this.options.duration)),r.apply(this,arguments)};var s=a.fn.load,t=a.event.fix;a.event.props=[],a.event.fixHooks={},a.event.fix=function(b){var d,e=b.type,f=this.fixHooks[e],g=a.event.props;if(g.length)for(c("jQuery.event.props are deprecated and removed: "+g.join());g.length;)a.event.addProp(g.pop());if(f&&!f._migrated_&&(f._migrated_=!0,c("jQuery.event.fixHooks are deprecated and removed: "+e),(g=f.props)&&g.length))for(;g.length;)a.event.addProp(g.pop());return d=t.call(this,b),f&&f.filter?f.filter(d,b):d},a.each(["load","unload","error"],function(b,d){a.fn[d]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===d&&"string"==typeof a[0]?s.apply(this,a):(c("jQuery.fn."+d+"() is deprecated"),a.splice(0,0,d),arguments.length?this.on.apply(this,aLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery Cookie Plugin
|
||||
* @see https://github.com/carhartl/jquery-cookie
|
||||
* @license MIT
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){function n(e){return u.raw?e:encodeURIComponent(e)}function o(e){return u.raw?e:decodeURIComponent(e)}function i(e){return n(u.json?JSON.stringify(e):String(e))}function t(e){0===e.indexOf('"')&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return e=decodeURIComponent(e.replace(c," ")),u.json?JSON.parse(e):e}catch(e){}}function r(n,o){var i=u.raw?n:t(n);return e.isFunction(o)?o(i):i}var c=/\+/g,u=e.cookie=function(t,c,s){if(arguments.length>1&&!e.isFunction(c)){if("number"==typeof(s=e.extend({},u.defaults,s)).expires){var d=s.expires,f=s.expires=new Date;f.setMilliseconds(f.getMilliseconds()+864e5*d)}return document.cookie=[n(t),"=",i(c),s.expires?"; expires="+s.expires.toUTCString():"",s.path?"; path="+s.path:"",s.domain?"; domain="+s.domain:"",s.secure?"; secure":""].join("")}for(var a=t?void 0:{},p=document.cookie?document.cookie.split("; "):[],l=0,m=p.length;l<m;l++){var x=p[l].split("="),g=o(x.shift()),j=x.join("=");if(t===g){a=r(j,c);break}t||void 0===(j=r(j))||(a[g]=j)}return a};u.defaults={},e.removeCookie=function(n,o){return e.cookie(n,"",e.extend({},o,{expires:-1})),!e.cookie(n)}});
|
||||
|
||||
|
||||
/**
|
||||
* @module Device.js
|
||||
* @see https://github.com/matthewhudson/device.js
|
||||
* @license MIT
|
||||
*/
|
||||
(function(){var n,e,o,t,i,r,d,a,c,l;e=window.device,n={},window.device=n,t=window.document.documentElement,l=window.navigator.userAgent.toLowerCase(),n.ios=function(){return n.iphone()||n.ipod()||n.ipad()},n.iphone=function(){return!n.windows()&&i("iphone")},n.ipod=function(){return i("ipod")},n.ipad=function(){return i("ipad")},n.android=function(){return!n.windows()&&i("android")},n.androidPhone=function(){return n.android()&&i("mobile")},n.androidTablet=function(){return n.android()&&!i("mobile")},n.blackberry=function(){return i("blackberry")||i("bb10")||i("rim")},n.blackberryPhone=function(){return n.blackberry()&&!i("tablet")},n.blackberryTablet=function(){return n.blackberry()&&i("tablet")},n.windows=function(){return i("windows")},n.windowsPhone=function(){return n.windows()&&i("phone")},n.windowsTablet=function(){return n.windows()&&i("touch")&&!n.windowsPhone()},n.fxos=function(){return(i("(mobile;")||i("(tablet;"))&&i("; rv:")},n.fxosPhone=function(){return n.fxos()&&i("mobile")},n.fxosTablet=function(){return n.fxos()&&i("tablet")},n.meego=function(){return i("meego")},n.cordova=function(){return window.cordova&&"file:"===location.protocol},n.nodeWebkit=function(){return"object"==typeof window.process},n.mobile=function(){return n.androidPhone()||n.iphone()||n.ipod()||n.windowsPhone()||n.blackberryPhone()||n.fxosPhone()||n.meego()},n.tablet=function(){return n.ipad()||n.androidTablet()||n.blackberryTablet()||n.windowsTablet()||n.fxosTablet()},n.desktop=function(){return!n.tablet()&&!n.mobile()},n.television=function(){var n,e=["googletv","viera","smarttv","internet.tv","netcast","nettv","appletv","boxee","kylo","roku","dlnadoc","roku","pov_tv","hbbtv","ce-html"];for(n=0;n<e.length;){if(i(e[n]))return!0;n++}return!1},n.portrait=function(){return window.innerHeight/window.innerWidth>1},n.landscape=function(){return window.innerHeight/window.innerWidth<1},n.noConflict=function(){return window.device=e,this},i=function(n){return-1!==l.indexOf(n)},d=function(n){var e;return e=new RegExp(n,"i"),t.className.match(e)},o=function(n){var e=null;d(n)||(e=t.className.replace(/^\s+|\s+$/g,""),t.className=e+" "+n)},c=function(n){d(n)&&(t.className=t.className.replace(" "+n,""))},n.ios()?n.ipad()?o("ios ipad tablet"):n.iphone()?o("ios iphone mobile"):n.ipod()&&o("ios ipod mobile"):n.android()?o(n.androidTablet()?"android tablet":"android mobile"):n.blackberry()?o(n.blackberryTablet()?"blackberry tablet":"blackberry mobile"):n.windows()?o(n.windowsTablet()?"windows tablet":n.windowsPhone()?"windows mobile":"desktop"):n.fxos()?o(n.fxosTablet()?"fxos tablet":"fxos mobile"):n.meego()?o("meego mobile"):n.nodeWebkit()?o("node-webkit"):n.television()?o("television"):n.desktop()&&o("desktop"),n.cordova()&&o("cordova"),r=function(){n.landscape()?(c("portrait"),o("landscape")):(c("landscape"),o("portrait"))},a=Object.prototype.hasOwnProperty.call(window,"onorientationchange")?"orientationchange":"resize",window.addEventListener?window.addEventListener(a,r,!1):window.attachEvent?window.attachEvent(a,r):window[a]=r,r(),"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return n}):"undefined"!=typeof module&&module.exports?module.exports=n:window.device=n}).call(this);
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery resize event
|
||||
* @see http://benalman.com/projects/jquery-resize-plugin/
|
||||
* @license MIT
|
||||
*/
|
||||
(function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this);
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery easing
|
||||
* @author George McGinley Smith
|
||||
* @see http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
* @license BSD
|
||||
* @version 1.4.0
|
||||
*/
|
||||
!function(n){"function"==typeof define&&define.amd?define(["jquery"],function(e){return n(e)}):"object"==typeof module&&"object"==typeof module.exports?exports=n(require("jquery")):n(jQuery)}(function(n){function e(n){var e=7.5625,t=2.75;return n<1/t?e*n*n:n<2/t?e*(n-=1.5/t)*n+.75:n<2.5/t?e*(n-=2.25/t)*n+.9375:e*(n-=2.625/t)*n+.984375}n.easing.jswing=n.easing.swing;var t=Math.pow,u=Math.sqrt,r=Math.sin,i=Math.cos,a=Math.PI,c=1.70158,o=1.525*c,s=2*a/3,f=2*a/4.5;n.extend(n.easing,{def:"easeOutQuad",swing:function(e){return n.easing[n.easing.def](e)},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return 1-(1-n)*(1-n)},easeInOutQuad:function(n){return n<.5?2*n*n:1-t(-2*n+2,2)/2},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return 1-t(1-n,3)},easeInOutCubic:function(n){return n<.5?4*n*n*n:1-t(-2*n+2,3)/2},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return 1-t(1-n,4)},easeInOutQuart:function(n){return n<.5?8*n*n*n*n:1-t(-2*n+2,4)/2},easeInQuint:function(n){return n*n*n*n*n},easeOutQuint:function(n){return 1-t(1-n,5)},easeInOutQuint:function(n){return n<.5?16*n*n*n*n*n:1-t(-2*n+2,5)/2},easeInSine:function(n){return 1-i(n*a/2)},easeOutSine:function(n){return r(n*a/2)},easeInOutSine:function(n){return-(i(a*n)-1)/2},easeInExpo:function(n){return 0===n?0:t(2,10*n-10)},easeOutExpo:function(n){return 1===n?1:1-t(2,-10*n)},easeInOutExpo:function(n){return 0===n?0:1===n?1:n<.5?t(2,20*n-10)/2:(2-t(2,-20*n+10))/2},easeInCirc:function(n){return 1-u(1-t(n,2))},easeOutCirc:function(n){return u(1-t(n-1,2))},easeInOutCirc:function(n){return n<.5?(1-u(1-t(2*n,2)))/2:(u(1-t(-2*n+2,2))+1)/2},easeInElastic:function(n){return 0===n?0:1===n?1:-t(2,10*n-10)*r((10*n-10.75)*s)},easeOutElastic:function(n){return 0===n?0:1===n?1:t(2,-10*n)*r((10*n-.75)*s)+1},easeInOutElastic:function(n){return 0===n?0:1===n?1:n<.5?-t(2,20*n-10)*r((20*n-11.125)*f)/2:t(2,-20*n+10)*r((20*n-11.125)*f)/2+1},easeInBack:function(n){return 2.70158*n*n*n-c*n*n},easeOutBack:function(n){return 1+2.70158*t(n-1,3)+c*t(n-1,2)},easeInOutBack:function(n){return n<.5?t(2*n,2)*(7.189819*n-o)/2:(t(2*n-2,2)*((o+1)*(2*n-2)+o)+2)/2},easeInBounce:function(n){return 1-e(1-n)},easeOutBounce:e,easeInOutBounce:function(n){return n<.5?(1-e(1-2*n))/2:(1+e(2*n-1))/2}})});
|
||||
|
||||
/**
|
||||
* @module TouchSwipe
|
||||
* @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
|
||||
* @license MIT
|
||||
* @version 1.6.18
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e("undefined"!=typeof module&&module.exports?require("jquery"):jQuery)}(function(e){"use strict";function n(n){return!n||void 0!==n.allowPageScroll||void 0===n.swipe&&void 0===n.swipeStatus||(n.allowPageScroll=c),void 0!==n.click&&void 0===n.tap&&(n.tap=n.click),n||(n={}),n=e.extend({},e.fn.swipe.defaults,n),this.each(function(){var r=e(this),i=r.data(D);i||(i=new t(this,n),r.data(D,i))})}function t(n,t){function P(n){if(!(ce()||e(n.target).closest(t.excludedElements,Ve).length>0)){var r=n.originalEvent?n.originalEvent:n;if(!r.pointerType||"mouse"!=r.pointerType||0!=t.fallbackToMouseEvents){var i,l=r.touches,o=l?l[0]:r;return We=y,l?ze=l.length:!1!==t.preventDefaultEvents&&n.preventDefault(),je=0,Ne=null,He=null,Xe=null,_e=0,qe=0,Qe=0,Ce=1,Fe=0,Ye=we(),ue(),pe(0,o),!l||ze===t.fingers||t.fingers===T||X()?(Ze=Oe(),2==ze&&(pe(1,l[1]),qe=Qe=be(Ge[0].start,Ge[1].start)),(t.swipeStatus||t.pinchStatus)&&(i=j(r,We))):i=!1,!1===i?(We=x,j(r,We),i):(t.hold&&(nn=setTimeout(e.proxy(function(){Ve.trigger("hold",[r.target]),t.hold&&(i=t.hold.call(Ve,r,r.target))},this),t.longTapThreshold)),se(!0),null)}}}function L(e){var n=e.originalEvent?e.originalEvent:e;if(We!==m&&We!==x&&!ae()){var r,i=n.touches,l=fe(i?i[0]:n);if(Be=Oe(),i&&(ze=i.length),t.hold&&clearTimeout(nn),We=E,2==ze&&(0==qe?(pe(1,i[1]),qe=Qe=be(Ge[0].start,Ge[1].start)):(fe(i[1]),Qe=be(Ge[0].end,Ge[1].end),Xe=Ee(Ge[0].end,Ge[1].end)),Ce=ye(qe,Qe),Fe=Math.abs(qe-Qe)),ze===t.fingers||t.fingers===T||!i||X()){if(Ne=Se(l.start,l.end),He=Se(l.last,l.end),C(e,He),je=me(l.start,l.end),_e=Te(),de(Ne,je),r=j(n,We),!t.triggerOnTouchEnd||t.triggerOnTouchLeave){var o=!0;if(t.triggerOnTouchLeave){var u=Me(this);o=De(l.end,u)}!t.triggerOnTouchEnd&&o?We=U(E):t.triggerOnTouchLeave&&!o&&(We=U(m)),We!=x&&We!=m||j(n,We)}}else We=x,j(n,We);!1===r&&(We=x,j(n,We))}}function R(e){var n=e.originalEvent?e.originalEvent:e,r=n.touches;if(r){if(r.length&&!ae())return oe(n),!0;if(r.length&&ae())return!0}return ae()&&(ze=Ke),Be=Oe(),_e=Te(),_()||!H()?(We=x,j(n,We)):t.triggerOnTouchEnd||!1===t.triggerOnTouchEnd&&We===E?(!1!==t.preventDefaultEvents&&!1!==e.cancelable&&e.preventDefault(),We=m,j(n,We)):!t.triggerOnTouchEnd&&B()?(We=m,N(n,We,h)):We===E&&(We=x,j(n,We)),se(!1),null}function k(){ze=0,Be=0,Ze=0,qe=0,Qe=0,Ce=1,ue(),se(!1)}function A(e){var n=e.originalEvent?e.originalEvent:e;t.triggerOnTouchLeave&&(We=U(m),j(n,We))}function I(){Ve.unbind(Re,P),Ve.unbind(Ue,k),Ve.unbind(ke,L),Ve.unbind(Ae,R),Ie&&Ve.unbind(Ie,A),se(!1)}function U(e){var n=e,r=Q(),i=H(),l=_();return!r||l?n=x:!i||e!=E||t.triggerOnTouchEnd&&!t.triggerOnTouchLeave?!i&&e==m&&t.triggerOnTouchLeave&&(n=x):n=m,n}function j(e,n){var t,r=e.touches;return(z()||W())&&(t=N(e,n,p)),(Y()||X())&&!1!==t&&(t=N(e,n,f)),ie()&&!1!==t?t=N(e,n,d):le()&&!1!==t?t=N(e,n,g):re()&&!1!==t&&(t=N(e,n,h)),n===x&&k(e),n===m&&(r?r.length||k(e):k(e)),t}function N(n,c,s){var w;if(s==p){if(Ve.trigger("swipeStatus",[c,Ne||null,je||0,_e||0,ze,Ge,He]),t.swipeStatus&&!1===(w=t.swipeStatus.call(Ve,n,c,Ne||null,je||0,_e||0,ze,Ge,He)))return!1;if(c==m&&V()){if(clearTimeout(en),clearTimeout(nn),Ve.trigger("swipe",[Ne,je,_e,ze,Ge,He]),t.swipe&&!1===(w=t.swipe.call(Ve,n,Ne,je,_e,ze,Ge,He)))return!1;switch(Ne){case r:Ve.trigger("swipeLeft",[Ne,je,_e,ze,Ge,He]),t.swipeLeft&&(w=t.swipeLeft.call(Ve,n,Ne,je,_e,ze,Ge,He));break;case i:Ve.trigger("swipeRight",[Ne,je,_e,ze,Ge,He]),t.swipeRight&&(w=t.swipeRight.call(Ve,n,Ne,je,_e,ze,Ge,He));break;case l:Ve.trigger("swipeUp",[Ne,je,_e,ze,Ge,He]),t.swipeUp&&(w=t.swipeUp.call(Ve,n,Ne,je,_e,ze,Ge,He));break;case o:Ve.trigger("swipeDown",[Ne,je,_e,ze,Ge,He]),t.swipeDown&&(w=t.swipeDown.call(Ve,n,Ne,je,_e,ze,Ge,He))}}}if(s==f){if(Ve.trigger("pinchStatus",[c,Xe||null,Fe||0,_e||0,ze,Ce,Ge]),t.pinchStatus&&!1===(w=t.pinchStatus.call(Ve,n,c,Xe||null,Fe||0,_e||0,ze,Ce,Ge)))return!1;if(c==m&&F())switch(Xe){case u:Ve.trigger("pinchIn",[Xe||null,Fe||0,_e||0,ze,Ce,Ge]),t.pinchIn&&(w=t.pinchIn.call(Ve,n,Xe||null,Fe||0,_e||0,ze,Ce,Ge));break;case a:Ve.trigger("pinchOut",[Xe||null,Fe||0,_e||0,ze,Ce,Ge]),t.pinchOut&&(w=t.pinchOut.call(Ve,n,Xe||null,Fe||0,_e||0,ze,Ce,Ge))}}return s==h?c!==x&&c!==m||(clearTimeout(en),clearTimeout(nn),J()&&!ee()?($e=Oe(),en=setTimeout(e.proxy(function(){$e=null,Ve.trigger("tap",[n.target]),t.tap&&(w=t.tap.call(Ve,n,n.target))},this),t.doubleTapThreshold)):($e=null,Ve.trigger("tap",[n.target]),t.tap&&(w=t.tap.call(Ve,n,n.target)))):s==d?c!==x&&c!==m||(clearTimeout(en),clearTimeout(nn),$e=null,Ve.trigger("doubletap",[n.target]),t.doubleTap&&(w=t.doubleTap.call(Ve,n,n.target))):s==g&&(c!==x&&c!==m||(clearTimeout(en),$e=null,Ve.trigger("longtap",[n.target]),t.longTap&&(w=t.longTap.call(Ve,n,n.target)))),w}function H(){var e=!0;return null!==t.threshold&&(e=je>=t.threshold),e}function _(){var e=!1;return null!==t.cancelThreshold&&null!==Ne&&(e=ge(Ne)-je>=t.cancelThreshold),e}function q(){return null===t.pinchThreshold||Fe>=t.pLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Popper.js
|
||||
* @author Federico Zivolo
|
||||
* @see https://github.com/FezVrasta/popper.js
|
||||
* @license MIT
|
||||
* @version 1.11.0
|
||||
*/
|
||||
(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var f=a.commonAncestorContainer;if(e!==f&&t!==f||i.contains(n))return p(f)?f:r(f);var l=s(e);return l.host?d(l.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=window.document.documentElement,r=window.document.scrollingElement||n;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function l(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return+e['border'+o+'Width'].split('px')[0]+ +e['border'+i+'Width'].split('px')[0]}function m(e,t,o,i){return _(t['offset'+e],o['client'+e],o['offset'+e],ie()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function h(){var e=window.document.body,t=window.document.documentElement,o=ie()&&window.getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function c(e){return se({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ie())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},p='HTML'===e.nodeName?h():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,f=e.offsetWidth-s,m=e.offsetHeight-d;if(f||m){var g=t(e);f-=l(g,'x'),m-=l(g,'y'),r.width-=f,r.height-=m}return c(r)}function u(e,o){var i=ie(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),l=+a.borderTopWidth.split('px')[0],m=+a.borderLeftWidth.split('px')[0],h=c({top:p.top-s.top-l,left:p.left-s.left-m,width:p.width,height:p.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=+a.marginTop.split('px')[0],b=+a.marginLeft.split('px')[0];h.top-=l-u,h.bottom-=l-u,h.left-=m-b,h.right-=m-b,h.marginTop=u,h.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(h=f(h,o)),h}function b(e){var t=window.document.documentElement,o=u(e,t),i=_(t.clientWidth,window.innerWidth||0),n=_(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return c(s)}function y(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||y(o(e))}function w(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(e)),'BODY'===a.nodeName&&(a=window.document.documentElement)):'window'===r?a=window.document.documentElement:a=r;var f=u(a,s);if('HTML'===a.nodeName&&!y(s)){var l=h(),m=l.height,c=l.width;p.top+=f.top-f.marginTop,p.bottom=m+f.top,p.left+=f.left-f.marginLeft,p.right=c+f.left}else p=f}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function v(e){var t=e.width,o=e.height;return t*o}function E(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=w(o,i,r,n),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return se({key:e},s[e],{area:v(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),f=0<a.length?a[0].key:d[0].key,l=e.split('-')[1];return f+(l?'-'+l:'')}function x(e,t,o){var i=d(t,o);return u(o,i)}function O(e){var t=window.getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o};return n}function L(e){var t={left:'right',rLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Bootstrap
|
||||
* @author Twitter, Inc.
|
||||
* @see http://getbootstrap.com
|
||||
* @license MIT
|
||||
* @version 4.0.0beta2
|
||||
*/
|
||||
var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}}}function i(){if(window.QUnit)return!1;var t=document.createElement("bootstrap");for(var e in o)if("undefined"!=typeof t.style[e])return{end:o[e]};return!1}function s(t){var n=this,i=!1;return e(this).one(a.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||a.triggerTransitionEnd(n)},t),this}var r=!1,o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},a={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var n=t.getAttribute("data-target");n&&"#"!==n||(n=t.getAttribute("href")||"");try{return e(document).find(n).length>0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(r.end)},supportsTransitionEnd:function(){return Boolean(r)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){var r=i[s],o=n[s],l=o&&a.isElement(o)?"element":t(o);if(!new RegExp(r).test(l))throw new Error(e.toUpperCase()+': Option "'+s+'" provided type "'+l+'" but expected type "'+r+'".')}}};return r=i(),e.fn.emulateTransitionEnd=s,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),r=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t},o=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e},a=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},o={ALERT:"alert",FADE:"fade",SHOW:"show"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+o.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(o.SHOW),s.supportsTransitionEnd()&&e(t).hasClass(o.FADE)?e(t).one(s.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.alert");s||(s=new t(this),i.data("bs.alert",s)),"close"===n&&s[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,a._handleDismiss(new a)),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),l=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},s={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,r=e(this._element).closest(s.DATA_TOGGLE)[0];if(r){var o=e(this._element).find(s.INPUT)[0];if(o){if("radio"===o.type)if(o.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(r).find(s.ACTIVE)[0];a&&e(a).removeClass(i.ACTIVE)}if(t){if(o.hasAttribute("disabled")||r.hasAttribute("disabled")||o.classList.contains("disabled")||r.classList.contains("disabled"))return;o.checked=!e(this._element).hasClass(i.ACTIVE),e(o).trigger("change")}o.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,s.DATA_TOGGLE_CARROT,function(t){t.preventDefault();Line truncated
|
||||
|
||||
/**
|
||||
* @module Regula
|
||||
* @description An annotation-based form-validation framework in Javascript
|
||||
* @license BSD
|
||||
* @version 1.3.4
|
||||
* @copyright Robert Nyman, http://www.robertnyman.com
|
||||
*/
|
||||
(function(e,t){typeof define=="function"&&define.amd?define("utils/MapUtils",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.MapUtils=t())})(this,function(){return{iterateOverMap:function(e,t){var n=0;for(var r in e)e.hasOwnProperty(r)&&r!=="__size__"&&(t.call(e,r,e[r],n),n++)},exists:function(e,t){var n=!1,r=0;while(!n&&r<e.length)n=t==e[r],r++;return n},put:function(e,t,n){e.__size__||(e.__size__=0),e[t]||e.__size__++,e[t]=n},isEmpty:function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}}}),function(e,t){typeof define=="function"&&define.amd?define("utils/DOMUtils",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.DOMUtils=t())}(this,function(){function t(e,t,n,r){var i=t=="*"&&e.all?e.all:e.getElementsByTagName(t),s=[],o=typeof r!="undefined"?new RegExp("(^|\\s)"+r+"(\\s|$)"):null,u,a;for(var f=0;f<i.length;f++)u=i[f],a=u.getAttribute&&u.getAttribute(n),typeof a=="string"&&a.length>0&&(typeof r=="undefined"||o&&o.test(a))&&s.push(u);return s}function n(e,t){var n=e.getAttribute&&e.getAttribute(t)||null;if(!n){var r=e.attributes;for(var i=0;i<r.length;i++)r[i].nodeName===t&&(n=r[i].nodeValue)}return n}function r(){return"regula-generated-"+Math.floor(Math.random()*1e6)}function i(){return typeof document.createElement("input").checkValidity=="function"}var e={form:"The form",select:"The select box",textarea:"The text area",checkbox:"The checkbox",radio:"The radio button",text:"The text field",password:"The password",email:"The email",url:"The URL",number:"The number",datetime:"The datetime","datetime-local":"The local datetime",date:"The date",month:"The month",time:"The time",week:"The week",range:"The range",tel:"The telephone number",color:"The color"};return{friendlyInputNames:e,getElementsByAttribute:t,getAttributeValueForElement:n,generateRandomId:r,supportsHTML5Validation:i}}),function(e,t){typeof define=="function"&&define.amd?define("service/GroupService",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.GroupService=t())}(this,function(){var e={Default:0},t={0:"Default"},n=[],r=1;return{Group:e,ReverseGroup:t,deletedGroupIndices:n,firstCustomGroupIndex:r}}),function(e,t){typeof define=="function"&&define.amd?define("utils/ArrayUtils",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.ArrayUtils=t())}(this,function(){function e(e,t){var n="";for(var r=0;r<e.length;r++)n+=e[r]+t;return n.replace(new RegExp(t+"$"),"")}return{explode:e}}),function(e,t){typeof define=="function"&&define.amd?define("service/ExceptionService",["utils/ArrayUtils"],t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.ExceptionService=t(e.regulaModules.ArrayUtils))}(this,function(e){function i(e,t,n){var r="";return e!=null?(r=e.id,t==""||t==null||t==undefined?r+=": ":r+="."+t+": "):t!=""&&t!=null&&t!=undefined&&(r="@"+t+": "),r+n}function s(t){var n="Function received: {";for(var r in t)t.hasOwnProperty(r)&&(typeof t[r]=="string"?n+=r+": "+t[r]+", ":t[r]instanceof Array&&(n+=r+": ["+e.explode(t[r],", ")+"], "));return n=n.replace(/, $/,"")+"}",n}var t={IllegalArgumentException:function(e){this.name="IllegalArgumentException",this.message=e},ConstraintDefinitionException:function(e){this.name="ConstraintDefinitionException",this.message=e},BindException:function(e){this.name="BindException",this.message=e},MissingFeatureException:function(e){this.name="MissingFeatureException",this.message=e}};for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];r.prototype=new Error,r.prototype.constructor=r}return{Exception:t,generateExceptionMessage:i,explodeParameters:s}}),function(e,t){typeof define=="function"&&define.amd?define("service/ValidationService",["utils/DOMUtils","utils/MapUtils","service/GroupService","service/ExceptionService","utils/ArrayUtils"],t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.ValidationService=t(e.regulaModules.DOMUtils,e.regulaModules.MapUtils,e.regulaModules.GroupService,e.regulaModules.ExceptionService,e.regulaModules.ArrayUtils))}(this,function(e,t,n,r,i){function h(e){for(var t in e)e.hasOwnProperty(t)&&v(t,e)}function p(e){s=e.config,o=e.ReverseConstraint,u=e.constraintDefinitions,a=e.boundConstraints}function v(e,t){var n=t[e],i=e.replace(/(^[A-Z]+)/,function(e){return e.toLowerCase()});n.async?c[i]=function(t,i,s){if(typeof s=="undefined")throw new r.Exception.IllegalArgumentException(e+" is an asynchronous constraint, but you have not provided a callback.");return n.validator.call(t,i,c,s)}:c[i]=function(e,t){return n.validator.call(e,t,c)}}function m(e,n,r,i){function a(n,r){var i={};for(var s in n)n.hasOwnProperty(s)&&s!="__size__"&&t.put(i,s,n[s]);if(r.length>0)for(var s in e)e.hasOwnProperty(s)&&s!="__size__"&&t.put(i,s,e[s]);return i}function f(e,t,n,i){var s=o[y.constraintType],a=W(t,s,i),f={group:n,constraintName:e.constraintName,custom:u[s].custom,compound:u[s].compound,async:u[s].async,constraintParameters:yLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery Form Plugin
|
||||
* @author M. Alsup
|
||||
* @see http://malsup.com/jquery/form/
|
||||
* @license MIT and GPL
|
||||
* @version 3.51
|
||||
*/
|
||||
!function(e){"use strict";"function"==typeof define&&define.amd?define(["../jquery"],e):e("undefined"!=typeof jQuery?jQuery:window.Zepto)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=this;if(i.clk=r,"image"==r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n={};n.fileapi=void 0!==e("<input type='file'/>").get(0).files,n.formdata=void 0!==window.FormData;var i=!!e.fn.prop;e.fn.attr2=function(){if(!i)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t){function r(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;o>a;a++)i[a]=i[a].replace(/\+/g," "),n=i[a].split("="),s.push([decodeURIComponent(n[0]),decodeURIComponent(n[1])]);return s}function o(a){for(var n=new FormData,i=0;i<a.length;i++)n.append(a[i].name,a[i].value);if(t.extraData){var o=r(t.extraData);for(i=0;i<o.length;i++)o[i]&&n.append(o[i][0],o[i][1])}t.data=null;var s=e.extend(!0,{},e.ajaxSettings,t,{contentType:!1,processData:!1,cache:!1,type:u||"POST"});t.uploadProgress&&(s.xhr=function(){var r=e.ajaxSettings.xhr();return r.upload&&r.upload.addEventListener("progress",function(e){var r=0,a=e.loaded||e.position,n=e.total;e.lengthComputable&&(r=Math.ceil(a/n*100)),t.uploadProgress(e,a,n,r)},!1),r}),s.data=null;var c=s.beforeSend;return s.beforeSend=function(e,r){r.data=t.formData?t.formData:n,c&&c.call(this,e,r)},e.ajax(s)}function s(r){function n(e){var t=null;try{e.contentWindow&&(t=e.contentWindow.document)}catch(r){a("cannot get iframe.contentWindow document: "+r)}if(t)return t;try{t=e.contentDocument?e.contentDocument:e.document}catch(r){a("cannot get iframe.contentDocument: "+r),t=e.document}return t}function o(){function t(){try{var e=n(g).readyState;a("state = "+e),e&&"uninitialized"==e.toLowerCase()&&setTimeout(t,50)}catch(r){a("Server abort: ",r," (",r.name,")"),s(k),j&&clearTimeout(j),j=void 0}}var r=f.attr2("target"),i=f.attr2("action"),o="multipart/form-data",c=f.attr("enctype")||f.attr("encoding")||o;w.setAttribute("target",p),(!u||/post/i.test(u))&&w.setAttribute("method","POST"),i!=m.url&&w.setAttribute("action",m.url),m.skipEncodingOverride||u&&!/post/i.test(u)||f.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),m.timeout&&(j=setTimeout(function(){T=!0,s(D)},m.timeout));var l=[];try{if(m.extraData)for(var d in m.extraData)m.extraData.hasOwnProperty(d)&&l.push(e.isPlainObject(m.extraData[d])&&m.extraData[d].hasOwnProperty("name")&&m.extraData[d].hasOwnProperty("value")?e('<input type="hidden" name="'+m.extraData[d].name+'">').val(m.extraData[d].value).appendTo(w)[0]:e('<input type="hidden" name="'+d+'">').val(m.extraData[d]).appendTo(w)[0]);m.iframeTarget||v.appendTo("body"),g.attachEvent?g.attachEvent("onload",s):g.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(h){var x=document.createElement("form").submit;x.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",c),r?w.setAttribute("target",r):f.removeAttr("target"),e(l).remove()}}function s(t){if(!x.aborted&&!F){if(M=n(g),M||(a("cannot access response document"),t=k),t===D&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t==k&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(M&&M.location.href!=m.iframeSrc||T){g.detachEvent?g.detachEvent("onload",s):g.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"==m.dataType||M.XMLDocument||e.isXMLDoc(M);if(a("isXml="+o),!o&&window.opera&&(null===M.body||!M.body.innerHTML)&&--O)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=M.body?M.body:M.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=M.XMLDocument?M.XMLDocument:M,o&&(m.dataType="xml"),x.getResponseHeader=function(e){var t={"content-type":m.dataType};return t[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(m.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||m.textarea){var f=M.getElementsByTagName("textarea")[0];if(f)x.responseText=f.value,x.status=Number(f.getAttribute("status"))||x.status,x.statusText=f.getAttribute("statusText")||x.statusText;else if(l){var p=M.getElementsByTagName("prLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module RDInputLabel
|
||||
* @author Evgeniy Gusarov
|
||||
* @license MIT
|
||||
*/
|
||||
(function(){!function(t,e,i){var s,n;return n=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isWebkit=/safari|chrome/i.test(navigator.userAgent),s=function(){function s(s,n){this.options=t.extend(!0,{},this.Defaults,n),this.$element=t(s).addClass("rd-input-label"),this.$target=t("#"+this.$element.attr("for")),this.$win=t(i),this.$doc=t(e),this.initialize()}return s.prototype.Defaults={callbacks:null},s.prototype.initialize=function(){return this.$target.on("input",t.proxy(this.change,this)).on("focus",t.proxy(this.focus,this)).on("blur",t.proxy(this.blur,this)).on("hover",t.proxy(this.hover,this)).parents("form").on("reset",t.proxy(this.reset,this)),this.change(),this.hover(),this},s.prototype.hover=function(){return isWebkit&&(this.$target.is(":-webkit-autofill")?this.$element.addClass("auto-fill"):this.$element.removeClass("auto-fill")),this},s.prototype.change=function(){return isWebkit&&(this.$target.is(":-webkit-autofill")?this.$element.addClass("auto-fill"):this.$element.removeClass("auto-fill")),""!==this.$target.val()?(this.$element.hasClass("focus")||this.focus(),this.$element.addClass("not-empty")):this.$element.removeClass("not-empty"),this},s.prototype.focus=function(){return this.$element.addClass("focus"),this},s.prototype.reset=function(){return setTimeout(t.proxy(this.blur,this)),this},s.prototype.blur=function(t){return""===this.$target.val()&&this.$element.removeClass("focus").removeClass("not-empty"),this},s}(),t.fn.extend({RDInputLabel:function(e){return this.each(function(){var i;return i=t(this),i.data("RDInputLabel")?void 0:i.data("RDInputLabel",new s(this,e))})}}),i.RDInputLabel=s}(window.jQuery,document,window),"undefined"!=typeof module&&null!==module?module.exports=window.RDInputLabel:"function"==typeof define&&define.amd&&define(["jquery"],function(){"use strict";return window.RDInputLabel})}).call(this);
|
||||
|
||||
|
||||
/**
|
||||
* @module Owl carousel
|
||||
* @version 2.3.0 (beta)
|
||||
* @author Bartosz Wojciechowski
|
||||
* @license MIT
|
||||
*/
|
||||
!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;d>c;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settinLine truncated
|
||||
},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("busy")||this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['<span aria-label="prev">‹</span>','<span aria-label="next">›</span>'],navSpeed:!1,navElement:'button role="presentation"',navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(Line truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Isotope PACKAGED
|
||||
* @license GPLv3
|
||||
* @see http://isotope.metafizzy.co
|
||||
* @version 2.2.2
|
||||
*/
|
||||
!function(t){function e(){}function i(t){function i(e){e.prototype.option||(e.prototype.option=function(e){t.isPlainObject(e)&&(this.options=t.extend(!0,this.options,e))})}function n(e,i){t.fn[e]=function(n){if("string"==typeof n){for(var s=o.call(arguments,1),a=0,u=this.length;u>a;a++){var p=this[a],h=t.data(p,e);if(h)if(t.isFunction(h[n])&&"_"!==n.charAt(0)){var f=h[n].apply(h,s);if(void 0!==f)return f}else r("no such method '"+n+"' for "+e+" instance");else r("cannot call methods on "+e+" prior to initialization; attempted to call '"+n+"'")}return this}return this.each(function(){var o=t.data(this,e);o?(o.option(n),o._init()):(o=new i(this,n),t.data(this,e,o))})}}if(t){var r="undefined"==typeof console?e:function(t){console.error(t)};return t.bridget=function(t,e){i(e),n(t,e)},t.bridget}}var o=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],i):i("object"==typeof exports?require("jquery"):t.jQuery)}(window),function(t){function e(e){var i=t.event;return i.target=i.target||i.srcElement||e,i}var i=document.documentElement,o=function(){};i.addEventListener?o=function(t,e,i){t.addEventListener(e,i,!1)}:i.attachEvent&&(o=function(t,i,o){t[i+o]=o.handleEvent?function(){var i=e(t);o.handleEvent.call(o,i)}:function(){var i=e(t);o.call(t,i)},t.attachEvent("on"+i,t[i+o])});var n=function(){};i.removeEventListener?n=function(t,e,i){t.removeEventListener(e,i,!1)}:i.detachEvent&&(n=function(t,e,i){t.detachEvent("on"+e,t[e+i]);try{delete t[e+i]}catch(o){t[e+i]=void 0}});var r={bind:o,unbind:n};"function"==typeof define&&define.amd?define("eventie/eventie",r):"object"==typeof exports?module.exports=r:t.eventie=r}(window),function(){"use strict";function t(){}function e(t,e){for(var i=t.length;i--;)if(t[i].listener===e)return i;return-1}function i(t){return function(){return this[t].apply(this,arguments)}}var o=t.prototype,n=this,r=n.EventEmitter;o.getListeners=function(t){var e,i,o=this._getEvents();if(t instanceof RegExp){e={};for(i in o)o.hasOwnProperty(i)&&t.test(i)&&(e[i]=o[i])}else e=o[t]||(o[t]=[]);return e},o.flattenListeners=function(t){var e,i=[];for(e=0;e<t.length;e+=1)i.push(t[e].listener);return i},o.getListenersAsObject=function(t){var e,i=this.getListeners(t);return i instanceof Array&&(e={},e[t]=i),e||i},o.addListener=function(t,i){var o,n=this.getListenersAsObject(t),r="object"==typeof i;for(o in n)n.hasOwnProperty(o)&&-1===e(n[o],i)&&n[o].push(r?i:{listener:i,once:!1});return this},o.on=i("addListener"),o.addOnceListener=function(t,e){return this.addListener(t,{listener:e,once:!0})},o.once=i("addOnceListener"),o.defineEvent=function(t){return this.getListeners(t),this},o.defineEvents=function(t){for(var e=0;e<t.length;e+=1)this.defineEvent(t[e]);return this},o.removeListener=function(t,i){var o,n,r=this.getListenersAsObject(t);for(n in r)r.hasOwnProperty(n)&&-1!==(o=e(r[n],i))&&r[n].splice(o,1);return this},o.off=i("removeListener"),o.addListeners=function(t,e){return this.manipulateListeners(!1,t,e)},o.removeListeners=function(t,e){return this.manipulateListeners(!0,t,e)},o.manipulateListeners=function(t,e,i){var o,n,r=t?this.removeListener:this.addListener,s=t?this.removeListeners:this.addListeners;if("object"!=typeof e||e instanceof RegExp)for(o=i.length;o--;)r.call(this,e,i[o]);else for(o in e)e.hasOwnProperty(o)&&(n=e[o])&&("function"==typeof n?r.call(this,o,n):s.call(this,o,n));return this},o.removeEvent=function(t){var e,i=typeof t,o=this._getEvents();if("string"===i)delete o[t];else if(t instanceof RegExp)for(e in o)o.hasOwnProperty(e)&&t.test(e)&&delete o[e];else delete this._events;return this},o.removeAllListeners=i("removeEvent"),o.emitEvent=function(t,e){var i,o,n,r=this.getListenersAsObject(t);for(n in r)if(r.hasOwnProperty(n))for(o=r[n].length;o--;)!0===(i=r[n][o]).once&&this.removeListener(t,i.listener),i.listener.apply(this,e||[])===this._getOnceReturnValue()&&this.removeListener(t,i.listener);return this},o.trigger=i("emitEvent"),o.emit=function(t){var e=Array.prototype.slice.call(arguments,1);return this.emitEvent(t,e)},o.setOnceReturnValue=function(t){return this._onceReturnValue=t,this},o._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},o._getEvents=function(){return this._events||(this._events={})},t.noConflict=function(){return n.EventEmitter=r,t},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.EventEmitter=t}.call(this),function(t){function e(t){if(t){if("string"==typeof o[t])return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e,n=0,r=i.length;r>n;n++)if(e=i[n]+t,"string"==typeof o[e])return e}}var i="Webkit Moz ms Ms O".split(" "),o=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return e}):"object"==typeof exports?module.exports=e:t.getStyleProperty=e}(window),function(t,eLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module RD Navbar
|
||||
* @author Evgeniy Gusarov
|
||||
* @see https://ua.linkedin.com/pub/evgeniy-gusarov/8a/a40/54a
|
||||
* @version 2.2.5
|
||||
*/
|
||||
(function(){var t;t="ontouchstart"in window,function(e,n,o){var a;a=function(){function a(t,a){this.options=e.extend(!0,{},this.Defaults,a),this.$element=e(t),this.$clone=null,this.$win=e(o),this.$doc=e(n),this.currentLayout=this.options.layout,this.loaded=!1,this.focusOnHover=this.options.focusOnHover,this.focusTimer=!1,this.cloneTimer=!1,this.isStuck=!1,this.initialize()}return a.prototype.Defaults={layout:"rd-navbar-static",deviceLayout:"rd-navbar-fixed",focusOnHover:!0,focusOnHoverTimeout:800,linkedElements:["html"],domAppend:!0,stickUp:!0,stickUpClone:!0,stickUpOffset:"100%",anchorNav:!0,anchorNavSpeed:400,anchorNavOffset:0,anchorNavEasing:"swing",autoHeight:!0,responsive:{0:{layout:"rd-navbar-fixed",deviceLayout:"rd-navbar-fixed",focusOnHover:!1,stickUp:!1},992:{layout:"rd-navbar-static",deviceLayout:"rd-navbar-static",focusOnHover:!0,stickUp:!0}},callbacks:{onToggleSwitch:!1,onToggleClose:!1,onDomAppend:!1,onDropdownOver:!1,onDropdownOut:!1,onDropdownToggle:!1,onDropdownClose:!1,onStuck:!1,onUnstuck:!1,onAnchorChange:!1}},a.prototype.initialize=function(){var e;return(e=this).$element.addClass("rd-navbar").addClass(e.options.layout),t&&e.$element.addClass("rd-navbar--is-touch"),e.options.domAppend&&e.createNav(e),e.options.stickUpClone&&e.createClone(e),e.$element.addClass("rd-navbar-original"),e.addAdditionalClassToToggles(e,".rd-navbar-original","toggle-original","toggle-original-elements"),e.applyHandlers(e),e.offset=e.$element.offset().top,e.height=e.$element.outerHeight(),e.loaded=!0,e},a.prototype.resize=function(n,o){var a,s;return s=t?n.getOption("deviceLayout"):n.getOption("layout"),a=n.$element.add(n.$clone),s===n.currentLayout&&n.loaded||(n.switchClass(a,n.currentLayout,s),null!=n.options.linkedElements&&e.grep(n.options.linkedElements,function(t,e){return n.switchClass(t,n.currentLayout+"-linked",s+"-linked")}),n.currentLayout=s),n.focusOnHover=n.getOption("focusOnHover"),n},a.prototype.stickUp=function(t,n){var o,a,s,r,i;return a=t.getOption("stickUp"),(e("html").hasClass("ios")||t.$element.hasClass("rd-navbar-fixed"))&&(a=!1),o=t.$doc.scrollTop(),r=null!=t.$clone?t.$clone:t.$element,s=t.getOption("stickUpOffset"),i="string"==typeof s?s.indexOf("%")>0?parseFloat(s)*t.height/100:parseFloat(s):s,a?(o>=i&&!t.isStuck||o<i&&t.isStuck)&&(t.$element.add(t.$clone).find("[data-rd-navbar-toggle]").each(function(){e.proxy(t.closeToggle,this)(t,!1)}).end().find(".rd-navbar-submenu").removeClass("opened").removeClass("focus"),o>=i&&!t.isStuck&&!t.$element.hasClass("rd-navbar-fixed")?(t.options.callbacks.onStuck&&t.options.callbacks.onStuck.call(t),setTimeout(function(){"resize"===n.type?t.switchClass(r,"","rd-navbar--is-stuck"):r.addClass("rd-navbar--is-stuck"),t.isStuck=!0},navigator.platform.match(/(Mac)/i)?10:0)):("resize"===n.type?t.switchClass(r,"rd-navbar--is-stuck",""):r.removeClass("rd-navbar--is-stuck").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",e.proxy(t.resizeWrap,t,n)),t.isStuck=!1,t.options.callbacks.onUnstuck&&t.options.callbacks.onUnstuck.call(t))):(t.$element.find(".rd-navbar-submenu").removeClass("opened").removeClass("focus"),t.isStuck&&(t.switchClass(r,"rd-navbar--is-stuck",""),t.isStuck=!1,t.resizeWrap(n))),t},a.prototype.resizeWrap=function(t){var e,n;if(null==(n=this).$clone&&!n.isStuck)return e=n.$element.parent(),n.getOption("autoHeight")?(n.height=n.$element.outerHeight(),"resize"===t.type?(e.addClass("rd-navbar--no-transition").css("height",n.height),e[0].offsetHeight,e.removeClass("rd-navbar--no-transition")):e.css("height",n.height)):void e.css("height","auto")},a.prototype.createNav=function(t){return t.$element.find(".rd-navbar-dropdown, .rd-navbar-megamenu").each(function(){var t;return t=e(this),this.getBoundingClientRect(),t.hasClass("rd-navbar-megamenu")?t.parent().addClass("rd-navbar--has-megamenu"):t.parent().addClass("rd-navbar--has-dropdown")}).parents("li").addClass("rd-navbar-submenu"),e('<span class="rd-navbar-submenu-toggle"></span>').insertAfter(t.$element.find(".rd-navbar-nav li.rd-navbar-submenu > a")),t.options.callbacks.onDomAppend&&t.options.callbacks.onDomAppend.call(this),t},a.prototype.createClone=function(t){return t.$clone=t.$element.clone().insertAfter(t.$element).addClass("rd-navbar--is-clone"),t.addAdditionalClassToToggles(t,".rd-navbar--is-clone","toggle-cloned","toggle-cloned-elements"),t},a.prototype.closeToggle=function(t,n){var o,a,s,r,i,l,c;return a=e(n.target),i=!1,l=this.getAttribute("data-rd-navbar-toggle"),t.options.stickUpClone&&t.isStuck?(r=".toggle-cloned",s=".toggle-cloned-elements",c=!a.hasClass("toggle-cloned")):(r=".toggle-original",s=".toggle-original-elements",c=!a.hasClass("toggle-original")),n.target!==this&&!a.parents(r+"[data-rd-navbar-toggle]").length&&!a.parents(s).length&&l&&c&&((o=t.$element.find(l).add(e(this))).each(function(){if(!i)return i=!0===(n.target===this||e.contains(this,n.target))}),i||(o.add(this).removeClass("active"),t.options.callbacks.onToggleClose&&t.options.callbacks.onToLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module UIToTop
|
||||
* @author Matt Varone
|
||||
* @see http://www.mattvarone.com/web-design/uitotop-jquery-plugin/
|
||||
* @license MIT
|
||||
*/
|
||||
!function(o){o.fn.UItoTop=function(n){var e={text:"",min:500,scrollSpeed:800,containerID:"ui-to-top",containerClass:"ui-to-top fa fa-angle-up",easingType:"easeIn"},t=o.extend(e,n),i="#"+t.containerID;o("body").append('<a href="#" id="'+t.containerID+'" class="'+t.containerClass+'" >'+t.text+"</a>"),o(i).click(function(){return o("html, body").stop().animate({scrollTop:0},t.scrollSpeed,t.easingType),!1}),o(window).scroll(function(){var n=o(window).scrollTop();"undefined"==typeof document.body.style.maxHeight&&o(i).css({position:"absolute",top:o(window).scrollTop()+o(window).height()-50}),n>t.min?o(i).stop(!0,!0).addClass("active"):o(i).removeClass("active")})}}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module RD Google Map
|
||||
* @author Evgeniy Gusarov
|
||||
* @see https://ua.linkedin.com/pub/evgeniy-gusarov/8a/a40/54a
|
||||
* @version 0.1.6
|
||||
*/
|
||||
!function(a){var t={cntClass:"map",mapClass:"map_model",locationsClass:"map_locations",marker:{basic:"images/gmap_marker.png",active:"images/gmap_marker_active.png"},styles:[],onInit:!1},o={map:{x:-73.9924068,y:40.646197,zoom:14},locations:[]},e=function(t,o){var e=t.parent().find("."+o.locationsClass).find("li"),n=[];return 0<e.length&&e.each(function(t){var e=a(this);e.data("x")&&e.data("y")&&(n[t]={x:e.data("x"),y:e.data("y"),basic:e.data("basic")?e.data("basic"):o.marker.basic,active:e.data("active")?e.data("active"):o.marker.active},a.trim(e.html())?n[t].content='<div class="iw-content">'+e.html()+"</div>":n[t].content=!1)}),n};a.fn.googleMap=function(n){n=a.extend(!0,{},t,n),a(this).each(function(){var t=a(this),s=a.extend(!0,{},o,{map:{x:t.data("x"),y:t.data("y"),zoom:t.data("zoom")},marker:{basic:t.data("marker"),active:t.data("marker-active")},locations:e(t,n)}),i=new google.maps.Map(this,{center:new google.maps.LatLng(parseFloat(s.map.y),parseFloat(s.map.x)),styles:n.styles,zoom:s.map.zoom,scrollwheel:!1});n.onInit&&n.onInit.call(this,i);var c,l=new google.maps.InfoWindow,r=[];for(c in s.locations)r[c]=new google.maps.Marker({position:new google.maps.LatLng(parseFloat(s.locations[c].y),parseFloat(s.locations[c].x)),map:i,icon:s.locations[c].basic,index:c}),s.locations[c].content&&(google.maps.event.addListener(r[c],"click",function(){for(var t in r)r[t].setIcon(s.locations[t].basic);l.setContent(s.locations[this.index].content),l.open(i,this),a(".gm-style-iw").parent().parent().addClass("gm-wrapper"),this.setIcon(s.locations[this.index].active)}),google.maps.event.addListener(l,"closeclick",function(){for(var a in r)r[a].setIcon(s.locations[a].basic)}));google.maps.event.addDomListener(window,"resize",function(){i.setCenter(new google.maps.LatLng(parseFloat(s.map.y),parseFloat(s.map.x)))})})}}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module Materianize Parallax
|
||||
* @see http://materializecss.com/parallax-demo.html
|
||||
* @licesne MIT
|
||||
*/
|
||||
!function(i){i.fn.parallax=function(){var a=i(window).width();return this.each(function(t){function n(t){var n;n=a<601?r.height()>0?r.height():r.children("img").height():r.height()>0?r.height():500;var e=r.children("img").first(),l=e.height()-n,o=r.offset().top+n,h=r.offset().top,d=i(window).scrollTop(),s=window.innerHeight,c=(d+s-h)/(n+s),g=Math.round(l*c);t&&e.css("display","block"),o>d&&h<d+s&&e.css("transform","translate3D(-50%,"+g+"px, 0)")}var r=i(this).prepend('<div class="material-parallax parallax"><img src="images/_blank.png" alt=""></div>').find(".material-parallax");r.children("img").first().attr("src",r.parents("[data-parallax-img]").data("parallax-img")),r.children("img").one("load",function(){n(!0)}).each(function(){this.complete&&i(this).trigger("load")}),i(window).scroll(function(){a=i(window).width(),n(!1)}),i(window).resize(function(){a=i(window).width(),n(!1)})})}}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module Swiper
|
||||
* @description Most modern mobile touch slider and framework with hardware accelerated transitions
|
||||
* @author Vladimir Kharlampidi
|
||||
* @see http://www.idangero.us/swiper/
|
||||
* @licesne MIT
|
||||
* @version 4.1.0
|
||||
*/
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Swiper=t()}(this,function(){"use strict";var e=function(e){for(var t=0;t<e.length;t+=1)this[t]=e[t];return this.length=e.length,this};function t(t,i){var s=[],a=0;if(t&&!i&&t instanceof e)return t;if(t)if("string"==typeof t){var r,n,o=t.trim();if(o.indexOf("<")>=0&&o.indexOf(">")>=0){var l="div";for(0===o.indexOf("<li")&&(l="ul"),0===o.indexOf("<tr")&&(l="tbody"),0!==o.indexOf("<td")&&0!==o.indexOf("<th")||(l="tr"),0===o.indexOf("<tbody")&&(l="table"),0===o.indexOf("<option")&&(l="select"),(n=document.createElement(l)).innerHTML=o,a=0;a<n.childNodes.length;a+=1)s.push(n.childNodes[a])}else for(r=i||"#"!==t[0]||t.match(/[ .<>:~]/)?(i||document).querySelectorAll(t.trim()):[document.getElementById(t.trim().split("#")[1])],a=0;a<r.length;a+=1)r[a]&&s.push(r[a])}else if(t.nodeType||t===window||t===document)s.push(t);else if(t.length>0&&t[0].nodeType)for(a=0;a<t.length;a+=1)s.push(t[a]);return new e(s)}function i(e){for(var t=[],i=0;i<e.length;i+=1)-1===t.indexOf(e[i])&&t.push(e[i]);return t}t.fn=e.prototype,t.Class=e,t.Dom7=e;"resize scroll".split(" ");var s={addClass:function(e){if(void 0===e)return this;for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.add(t[i]);return this},removeClass:function(e){for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.remove(t[i]);return this},hasClass:function(e){return!!this[0]&&this[0].classList.contains(e)},toggleClass:function(e){for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.toggle(t[i]);return this},attr:function(e,t){var i=arguments;if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var s=0;s<this.length;s+=1)if(2===i.length)this[s].setAttribute(e,t);else for(var a in e)this[s][a]=e[a],this[s].setAttribute(a,e[a]);return this},removeAttr:function(e){for(var t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},data:function(e,t){var i;if(void 0!==t){for(var s=0;s<this.length;s+=1)(i=this[s]).dom7ElementDataStorage||(i.dom7ElementDataStorage={}),i.dom7ElementDataStorage[e]=t;return this}if(i=this[0]){if(i.dom7ElementDataStorage&&e in i.dom7ElementDataStorage)return i.dom7ElementDataStorage[e];var a=i.getAttribute("data-"+e);return a||void 0}},transform:function(e){for(var t=0;t<this.length;t+=1){var i=this[t].style;i.webkitTransform=e,i.transform=e}return this},transition:function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t+=1){var i=this[t].style;i.webkitTransitionDuration=e,i.transitionDuration=e}return this},on:function(){for(var e=[],i=arguments.length;i--;)e[i]=arguments[i];var s,a=e[0],r=e[1],n=e[2],o=e[3];function l(e){var i=e.target;if(i){var s=e.target.dom7EventData||[];if(s.unshift(e),t(i).is(r))n.apply(i,s);else for(var a=t(i).parents(),o=0;o<a.length;o+=1)t(a[o]).is(r)&&n.apply(a[o],s)}}function d(e){var t=e&&e.target?e.target.dom7EventData||[]:[];t.unshift(e),n.apply(this,t)}"function"==typeof e[1]&&(a=(s=e)[0],n=s[1],o=s[2],r=void 0),o||(o=!1);for(var h,p=a.split(" "),c=0;c<this.length;c+=1){var u=this[c];if(r)for(h=0;h<p.length;h+=1)u.dom7LiveListeners||(u.dom7LiveListeners=[]),u.dom7LiveListeners.push({type:a,listener:n,proxyListener:l}),u.addEventListener(p[h],l,o);else for(h=0;h<p.length;h+=1)u.dom7Listeners||(u.dom7Listeners=[]),u.dom7Listeners.push({type:a,listener:n,proxyListener:d}),u.addEventListener(p[h],d,o)}return this},off:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var i,s=e[0],a=e[1],r=e[2],n=e[3];"function"==typeof e[1]&&(s=(i=e)[0],r=i[1],n=i[2],a=void 0),n||(n=!1);for(var o=s.split(" "),l=0;l<o.length;l+=1)for(var d=0;d<this.length;d+=1){var h=this[d];if(a){if(h.dom7LiveListeners)for(var p=0;p<h.dom7LiveListeners.length;p+=1)r?h.dom7LiveListeners[p].listener===r&&h.removeEventListener(o[l],h.dom7LiveListeners[p].proxyListener,n):h.dom7LiveListeners[p].type===o[l]&&h.removeEventListener(o[l],h.dom7LiveListeners[p].proxyListener,n)}else if(h.dom7Listeners)for(var c=0;c<h.dom7Listeners.length;c+=1)r?h.dom7Listeners[c].listener===r&&h.removeEventListener(o[l],h.dom7Listeners[c].proxyListener,n):h.dom7Listeners[c].type===o[l]&&h.removeEventListener(o[l],h.dom7Listeners[c].proxyListener,n)}return this},trigger:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var i=e[0].split(" "),s=e[1],a=0;a<i.length;a+=1)for(var r=0;r<this.length;r+=1){var n=void 0;try{n=new window.CustomEvent(i[a],{detail:s,bubbles:!0,cancelable:!0})}catch(e){(n=document.createEvent("Event")).initEvent(i[a],!0,!0),n.detail=s}this[r].dom7EventData=e.filter(function(e,t){return t>0}),this[r].dispatchEvent(n),this[r].dom7EventData=[],delete this[r].dom7EventData}return this},transitionEnd:function(e){var t,i=["webkitTransitionELine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery Count To
|
||||
* @author Matt Huggins
|
||||
* @see https://github.com/mhuggins/jquery-countTo
|
||||
* @license MIT
|
||||
*/
|
||||
!function(t){function e(t,e){return t.toFixed(e.decimals)}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,this.dataOptions(),i),this.init()};o.DEFAULTS={from:0,to:0,speed:1e3,refreshInterval:100,decimals:0,formatter:e,onUpdate:null,onComplete:null},o.prototype.init=function(){this.value=this.options.from,this.loops=Math.ceil(this.options.speed/this.options.refreshInterval),this.loopCount=0,this.increment=(this.options.to-this.options.from)/this.loops},o.prototype.dataOptions=function(){var t={from:this.$element.data("from"),to:this.$element.data("to"),speed:this.$element.data("speed"),refreshInterval:this.$element.data("refresh-interval"),decimals:this.$element.data("decimals")},e=Object.keys(t);for(var o in e){var i=e[o];"undefined"==typeof t[i]&&delete t[i]}return t},o.prototype.update=function(){this.value+=this.increment,this.loopCount++,this.render(),"function"==typeof this.options.onUpdate&&this.options.onUpdate.call(this.$element,this.value),this.loopCount>=this.loops&&(clearInterval(this.interval),this.value=this.options.to,"function"==typeof this.options.onComplete&&this.options.onComplete.call(this.$element,this.value))},o.prototype.render=function(){var t=this.options.formatter.call(this.$element,this.value,this.options);this.$element.text(t)},o.prototype.restart=function(){this.stop(),this.init(),this.start()},o.prototype.start=function(){this.stop(),this.render(),this.interval=setInterval(this.update.bind(this),this.options.refreshInterval)},o.prototype.stop=function(){this.interval&&clearInterval(this.interval)},o.prototype.toggle=function(){this.interval?this.stop():this.start()},t.fn.countTo=function(e){return this.each(function(){var i=t(this),n=i.data("countTo"),s=!n||"object"==typeof e,r="object"==typeof e?e:{},a="string"==typeof e?e:"start";s&&(n&&n.stop(),i.data("countTo",n=new o(this,r))),n[a].call(n)})}}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module TimeCircles
|
||||
* @author Wim Barelds
|
||||
* @see http://www.wimbarelds.nl/
|
||||
* @license MIT
|
||||
* @version 1.5.3
|
||||
*/
|
||||
(function(f){function A(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,d,e){return b+b+d+d+e+e});return(a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a))?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null}function B(){var a=document.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))}function n(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function z(a,c,b,d,e){for(var h={},l={},f={},g={},m={},k={},r=null,q=0;q<d.length;q++){var p= d[q],r=null===r?b/t[p]:t[r]/t[p],u=a/t[p],v=c/t[p];e&&(u=0<u?Math.floor(u):Math.ceil(u),v=0<v?Math.floor(v):Math.ceil(v));"Days"!==p&&(u%=r,v%=r);h[p]=u;f[p]=Math.abs(u);l[p]=v;k[p]=Math.abs(v);g[p]=Math.abs(u)/r;m[p]=Math.abs(v)/r;r=p}return{raw_time:h,raw_old_time:l,time:f,old_time:k,pct:g,old_pct:m}}function C(a){for(var c=["webkit","moz"],b=0;b<c.length&&!a.requestAnimationFrame;++b)a.requestAnimationFrame=a[c[b]+"RequestAnimationFrame"],a.cancelAnimationFrame=a[c[b]+"CancelAnimationFrame"];a.requestAnimationFrame&& a.cancelAnimationFrame||(a.requestAnimationFrame=function(c,b,h){"undefined"===typeof h&&(h={data:{last_frame:0}});var l=(new Date).getTime(),f=Math.max(0,16-(l-h.data.last_frame));b=a.setTimeout(function(){c(l+f)},f);h.data.last_frame=l+f;return b},a.cancelAnimationFrame=function(a){clearTimeout(a)})}var m=window;Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,c=!{toString:null}.propertyIsEnumerable("toString"),b="toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "), d = b.length;return function(e){if("object"!==typeof e&&("function"!==typeof e||null===e))throw new TypeError("Object.keys called on non-object");var h=[],l;for(l in e)a.call(e,l)&&h.push(l);if(c)for(l=0;l<d;l++)a.call(e,b[l])&&h.push(b[l]);return h}}());var x=!1,y=["Days","Hours","Minutes","Seconds"],D={Seconds:"Minutes",Minutes:"Hours",Hours:"Days",Days:"Years"},t={Seconds:1,Minutes:60,Hours:3600,Days:86400,Months:2678400,Years:31536E3};Array.prototype.indexOf||(Array.prototype.indexOf=function(a, c) { var b = this.length >>> 0, d = Number(c) || 0, d = 0 > d ? Math.ceil(d) : Math.floor(d); for (0 > d && (d += b); d < b; d++)if (d in this && this[d] === a)return d; return -1 }); var w = {}, g = function (a, c) { this.element = a; this.container; this.listeners = null; this.data = { paused: !1, last_frame: 0, animation_frame: null, interval_fallback: null, timer: !1, total_duration: null, prev_time: null, drawn_units: [], text_elements: {Days: null, Hours: null, Minutes: null, Seconds: null}, attributes: {canvas: null, context: null, item_size: null, line_width: null, radius: null, outer_radius:null}, state:{fading:{Days:!1,Hours:!1,Minutes:!1,Seconds:!1}}};this.config=null;this.setOptions(c);this.initialize()};g.prototype.clearListeners=function(){this.listeners={all:[],visible:[]}};g.prototype.addTime=function(a){if(this.data.attributes.ref_date instanceof Date){var c=this.data.attributes.ref_date;c.setSeconds(c.getSeconds()+a)}else isNaN(this.data.attributes.ref_date)||(this.data.attributes.ref_date+=1E3*a)};g.prototype.initialize=function(a){this.data.drawn_units=[];for(var c=0;c<Object.keys(this.config.time).length;c++){var b= Object.keys(this.config.time)[c];this.config.time[b].show&&this.data.drawn_units.push(b)}f(this.element).children("div.time_circles").remove();"undefined"===typeof a&&(a=!0);(a||null===this.listeners)&&this.clearListeners();this.container=f("<div>");this.container.addClass("time_circles");this.container.appendTo(this.element);c=this.element.offsetHeight;a=this.element.offsetWidth;0===c&&(c=f(this.element).height());0===a&&(a=f(this.element).width());0===c&&0<a?c=a/this.data.drawn_units.length:0=== a&&0<c&&(a=c*this.data.drawn_units.length);b=document.createElement("canvas");b.width=a;b.height=c;this.data.attributes.canvas=f(b);this.data.attributes.canvas.appendTo(this.container);var d=B();d||"undefined"===typeof G_vmlCanvasManager||(G_vmlCanvasManager.initElement(b),d=x=!0);d&&(this.data.attributes.context=b.getContext("2d"));this.data.attributes.item_size=Math.min(a/this.data.drawn_units.length,c);this.data.attributes.line_width=this.data.attributes.item_size*this.config.fg_width;this.data.attributes.radius= (.8*this.data.attributes.item_size-this.data.attributes.line_width)/2;this.data.attributes.outer_radius=this.data.attributes.radius+.5*Math.max(this.data.attributes.line_width,this.data.attributes.line_width*this.config.bg_width);var c=0,e;for(e in this.data.text_elements)this.config.time[e].show&&(a=f("<div>"),a.addClass("textDiv_"+e),a.css("top",Math.round(.35*this.data.attributes.item_size)),a.css("left",Math.round(c++*this.data.attributes.item_size)),a.css("width",this.data.attributes.item_size), a.appendTo(this.container),b=f("<h4>"),b.text(this.config.time[e].text),b.css("font-size",Math.round(this.config.text_size*this.data.attributes.item_size)),b.css("line-height",Math.round(this.config.text_size*this.dLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Lightgallery
|
||||
* @author Sachin N
|
||||
* @see http://sachinchoolur.github.io/lightGallery/
|
||||
* @license GPLv3
|
||||
* @version 1.6.2 - 2017-10-03
|
||||
*/
|
||||
!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";function b(b,d){if(this.el=b,this.$el=a(b),this.s=a.extend({},c,d),this.s.dynamic&&"undefined"!==this.s.dynamicEl&&this.s.dynamicEl.constructor===Array&&!this.s.dynamicEl.length)throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.modules={},this.lGalleryOn=!1,this.lgBusy=!1,this.hideBartimeout=!1,this.isTouch="ontouchstart"in document.documentElement,this.s.slideEndAnimatoin&&(this.s.hideControlOnEnd=!1),this.s.dynamic?this.$items=this.s.dynamicEl:"this"===this.s.selector?this.$items=this.$el:""!==this.s.selector?this.s.selectWithin?this.$items=a(this.s.selectWithin).find(this.s.selector):this.$items=this.$el.find(a(this.s.selector)):this.$items=this.$el.children(),this.$slide="",this.$outer="",this.init(),this}var c={mode:"lg-slide",cssEasing:"ease",easing:"linear",speed:600,height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:150,hideBarsDelay:6e3,useLeft:!1,closable:!0,loop:!0,escKey:!0,keyPress:!0,controls:!0,slideEndAnimatoin:!0,hideControlOnEnd:!1,mousewheel:!0,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:1,showAfterLoad:!0,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:!1,iframeMaxWidth:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],galleryId:1};b.prototype.init=function(){var b=this;b.s.preload>b.$items.length&&(b.s.preload=b.$items.length);var c=window.location.hash;c.indexOf("lg="+this.s.galleryId)>0&&(b.index=parseInt(c.split("&slide=")[1],10),a("body").addClass("lg-from-hash"),a("body").hasClass("lg-on")||(setTimeout(function(){b.build(b.index)}),a("body").addClass("lg-on"))),b.s.dynamic?(b.$el.trigger("onBeforeOpen.lg"),b.index=b.s.index||0,a("body").hasClass("lg-on")||setTimeout(function(){b.build(b.index),a("body").addClass("lg-on")})):b.$items.on("click.lgcustom",function(c){try{c.preventDefault(),c.preventDefault()}catch(a){c.returnValue=!1}b.$el.trigger("onBeforeOpen.lg"),b.index=b.s.index||b.$items.index(this),a("body").hasClass("lg-on")||(b.build(b.index),a("body").addClass("lg-on"))})},b.prototype.build=function(b){var c=this;c.structure(),a.each(a.fn.lightGallery.modules,function(b){c.modules[b]=new a.fn.lightGallery.modules[b](c.el)}),c.slide(b,!1,!1,!1),c.s.keyPress&&c.keyPress(),c.$items.length>1?(c.arrow(),setTimeout(function(){c.enableDrag(),c.enableSwipe()},50),c.s.mousewheel&&c.mousewheel()):c.$slide.on("click.lg",function(){c.$el.trigger("onSlideClick.lg")}),c.counter(),c.closeGallery(),c.$el.trigger("onAfterOpen.lg"),c.$outer.on("mousemove.lg click.lg touchstart.lg",function(){c.$outer.removeClass("lg-hide-items"),clearTimeout(c.hideBartimeout),c.hideBartimeout=setTimeout(function(){c.$outer.addClass("lg-hide-items")},c.s.hideBarsDelay)}),c.$outer.trigger("mousemove.lg")},b.prototype.structure=function(){var b,c="",d="",e=0,f="",g=this;for(a("body").append('<div class="lg-backdrop"></div>'),a(".lg-backdrop").css("transition-duration",this.s.backdropDuration+"ms"),e=0;e<this.$items.length;e++)c+='<div class="lg-item"></div>';if(this.s.controls&&this.$items.length>1&&(d='<div class="lg-actions"><button class="lg-prev lg-icon">'+this.s.prevHtml+'</button><button class="lg-next lg-icon">'+this.s.nextHtml+"</button></div>"),".lg-sub-html"===this.s.appendSubHtmlTo&&(f='<div class="lg-sub-html"></div>'),b='<div class="lg-outer '+this.s.addClass+" "+this.s.startClass+'"><div class="lg" style="width:'+this.s.width+"; height:"+this.s.height+'"><div class="lg-inner">'+c+'</div><div class="lg-toolbar lg-group"><span class="lg-close lg-icon"></span></div>'+d+f+"</div></div>",a("body").append(b),this.$outer=a(".lg-outer"),this.$slide=this.$outer.find(".lg-item"),this.s.useLeft?(this.$outer.addClass("lg-use-left"),this.s.mode="lg-slide"):this.$outer.addClass("lg-use-css3"),g.setTop(),a(window).on("resize.lg orientationchange.lg",function(){setTimeout(function(){g.setTop()},100)}),this.$slide.eq(this.index).addClass("lg-current"),this.doCss()?this.$outer.addClass("lg-css3"):(this.$outer.addClass("lg-css"),this.s.speed=0),this.$outer.addClass(this.s.mode),this.s.enableDrag&&this.$items.length>1&&this.$outer.addClass("lg-grab"),this.s.showAfterLoad&&this.$outer.addClass("lg-show-after-load"),this.doCss()){var h=this.$outer.find(".lg-inner");h.css("transition-timing-function",this.s.cssEasing),h.css("transition-duration",this.s.speed+"ms")}setTimeout(function(){a(".lg-backdrop").addClass("in")}),setTimeout(function(){g.$outer.addClass("lg-visible")},this.s.backdropDuration),this.s.download&&this.$outer.find(".lg-toolbar").append('<a id="lg-download" target="_blank" download class="lg-download lg-icon"></a>'),this.prevScrollTop=a(window).scrollTop()},b.prototype.setTop=function(){Line truncated
|
||||
this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},a.fn.lightGallery.modules.Thumbnail=c}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(){"use strict";var b={videoMaxWidth:"855px",youtubePlayerParams:!1,vimeoPlayerParams:!1,dailymotionPlayerParams:!1,vkPlayerParams:!1,videojs:!1,videojsOptions:{}},c=function(c){return this.core=a(c).data("lightGallery"),this.$el=a(c),this.core.s=a.extend({},b,this.core.s),this.videoLoaded=!1,this.init(),this};c.prototype.init=function(){var b=this;b.core.$el.on("hasVideo.lg.tm",function(a,c,d,e){if(b.core.$slide.eq(c).find(".lg-video").append(b.loadVideo(d,"lg-object",!0,c,e)),e)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(c).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){b.videoLoaded||this.play()})}catch(a){console.error("Make sure you have included videojs")}else b.videoLoaded||b.core.$slide.eq(c).find(".lg-html5").get(0).play()}),b.core.$el.on("onAferAppendSlide.lg.tm",function(a,c){var d=b.core.$slide.eq(c).find(".lg-video-cont");d.hasClass("lg-has-iframe")||(d.css("max-width",b.core.s.videoMaxWidth),b.videoLoaded=!0)});var c=function(a){if(a.find(".lg-object").hasClass("lg-has-poster")&&a.find(".lg-object").is(":visible"))if(a.hasClass("lg-has-video")){var c=a.find(".lg-youtube").get(0),d=a.find(".lg-vimeo").get(0),e=a.find(".lg-dailymotion").get(0),f=a.find(".lg-html5").get(0);if(c)c.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*");else if(d)try{$f(d).api("play")}catch(a){console.error("Make sure you have included froogaloop2 js")}else if(e)e.contentWindow.postMessage("play","*");else if(f)if(b.core.s.videojs)try{videojs(f).play()}catch(a){console.error("Make sure you have included videojs")}else f.play();a.addClass("lg-video-playing")}else{a.addClass("lg-video-playing lg-has-video");var g,h,i=function(c,d){if(a.find(".lg-video").append(b.loadVideo(c,"",!1,b.core.index,d)),d)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(b.core.index).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){this.play()})}catch(a){console.error("Make sure you have included videojs")}else b.core.$slide.eq(b.core.index).find(".lg-html5").get(0).play()};b.core.s.dynamic?(g=b.core.s.dynamicEl[b.core.index].src,h=b.core.s.dynamicEl[b.core.index].html,i(g,h)):(g=b.core.$items.eq(b.core.index).attr("href")||b.core.$items.eq(b.core.index).attr("data-src"),h=b.core.$items.eq(b.core.index).attr("data-html"),i(g,h));var j=a.find(".lg-object");a.find(".lg-video").append(j),a.find(".lg-video-object").hasClass("lg-html5")||(a.removeClass("lg-complete"),a.find(".lg-video-object").on("load.lg error.lg",function(){a.addClass("lg-complete")}))}};b.core.doCss()&&b.core.$items.length>1&&(b.core.s.enableSwipe||b.core.s.enableDrag)?b.core.$el.on("onSlideClick.lg.tm",function(){var a=b.core.$slide.eq(b.core.index);c(a)}):b.core.$slide.on("click.lg",function(){c(a(this))}),b.core.$el.on("onBeforeSlide.lg.tm",function(c,d,e){var f=b.core.$slide.eq(d),g=f.find(".lg-youtube").get(0),h=f.find(".lg-vimeo").get(0),i=f.find(".lg-dailymotion").get(0),j=f.find(".lg-vk").get(0),k=f.find(".lg-html5").get(0);if(g)g.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*");else if(h)try{$f(h).api("pause")}catch(a){console.error("Make sure you have included froogaloop2 js")}else if(i)i.contentWindow.postMessage("pause","*");else if(k)if(b.core.s.videojs)try{videojs(k).pause()}catch(a){console.error("Make sure you have included videojs")}else k.pause();j&&a(j).attr("src",a(j).attr("src").replace("&autoplay","&noplay"));var l;l=b.core.s.dynamic?b.core.s.dynamicEl[e].src:b.core.$items.eq(e).attr("href")||b.core.$items.eq(e).attr("data-src");var m=b.core.isVideo(l,e)||{};(m.youtube||m.vimeo||m.dailymotion||m.vk)&&b.core.$outer.addClass("lg-hide-download")}),b.core.$el.on("onAfterSlide.lg.tm",function(a,c){b.core.$slide.eq(c).removeClass("lg-video-playing")})},c.prototype.loadVideo=function(b,c,d,e,f){var g="",h=1,i="",j=this.core.isVideo(b,e)||{};if(d&&(h=this.videoLoaded?0:1),j.youtube)i="?wmode=opaque&autoplay="+h+"&enablejsapi=1",this.core.s.youtubePlayerParams&&(i=i+"&"+a.param(this.core.s.youtubePlayerParams)),g='<iframe class="lg-video-object lg-youtube '+c+'" width="560" height="315" src="//www.youtube.com/embed/'+j.youtube[1]+i+'" frameborder="0" allowfullscreen></iframe>';else if(j.vimeo)i="?autoplay="+h+"&api=1",this.core.s.vimeoPlayerParams&&(i=i+"&"+a.param(this.core.s.vimeoPlayerParams)),g='<iframe class="lg-video-object lg-vimeo '+c+'" width="560" height="315" src="//player.vimeo.com/video/'+j.vimeo[1]+i+'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';else if(j.dailymotion)i="?wmode=opaque&autoplay="+h+"&api=postMessage",this.core.s.dailymotionPlayerParams&&(i=i+"&"+a.param(this.core.s.dailymotionPlayerParams)),g='<ifraLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module WOW
|
||||
* @author Matthieu Aussaguel
|
||||
* @license MIT
|
||||
* @version 1.1.3
|
||||
*/
|
||||
(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a,b){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),null!=a.scrollContainer&&(this.config.scrollContainer=document.querySelector(a.scrollContainer)),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(b){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyleLine truncated
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery page transition
|
||||
* @author Roman Kravchuk (JeremyLuis)
|
||||
* @license MIT
|
||||
* @version 1.1.3
|
||||
* @description Smooth transition between pages
|
||||
*/
|
||||
function pageTransition(t){t=t||{},t.target=t.target||null,t.delay=t.delay||500,t.duration=t.duration||1e3,t.classIn=t.classIn||null,t.classOut=t.classOut||null,t.classActive=t.classActive||null,t.onReady=t.onReady||null,t.onTransitionStart=t.onTransitionStart||null,t.onTransitionEnd=t.onTransitionEnd||null,t.conditions=t.conditions||function(t,n){return!/(\#|callto:|tel:|mailto:|:\/\/)/.test(n)},t.target&&(setTimeout(function(){t.onReady&&t.onReady(t),t.classIn&&t.target.classList.add(t.classIn),t.classActive&&t.target.classList.add(t.classActive),t.duration&&(t.target.style.animationDuration=t.duration+"ms"),t.target.addEventListener("animationstart",function(){setTimeout(function(){t.classIn&&t.target.classList.remove(t.classIn),t.onTransitionEnd&&t.onTransitionEnd(t)},t.duration)})},t.delay),$("a").click(function(n){var a=n.currentTarget.getAttribute("href");if(t.conditions(n,a)){var s=this.href;n.preventDefault(),t.onTransitionStart&&t.onTransitionStart(t),t.classIn&&t.target.classList.remove(t.classIn),t.classOut&&t.target.classList.add(t.classOut),setTimeout(function(){window.location=s,/firefox/i.test(navigator.userAgent)&&setTimeout(function(){t.onReady&&t.onReady(t),t.classOut&&t.target.classList.remove(t.classOut)},1e3),/safari/i.test(navigator.userAgent)&&!/chrome/i.test(navigator.userAgent)&&(t.onReady&&t.onReady(t),t.classOut&&t.target.classList.remove(t.classOut))},t.duration)}}))}
|
||||
|
||||
|
||||
/**
|
||||
* @module Slick
|
||||
* @author Ken Wheeler
|
||||
* @see http://kenwheeler.github.io/slick
|
||||
* @version 1.6.0
|
||||
*/
|
||||
!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.focussed=!1,e.interrupted=!1,e.hidden="hidden",e.paused=!0,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,f=a(c).data("slick")||{},e.options=a.extend({},e.defaults,d,f),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,"undefined"!=typeof document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.registerBreakpoints(),e.init(!0)}var b=0;return c}(),b.prototype.activateADA=function(){var a=this;a.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),e.options.vertical===!1?d[e.animType]="translate3d("+b+"px, 0px, 0px)":d[e.animType]="translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.getNavTarget=function(){var b=this,c=b.options.asNavFor;return c&&null!==c&&(Line truncated
|
||||
d.slice(e-c+1,e+c+2).addClass("slick-active").attr("aria-hidden","false")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass("slick-center"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass("slick-center")),b.$slides.eq(a).addClass("slick-center")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):d.length<=b.options.slidesToShow?d.addClass("slick-active").attr("aria-hidden","false"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass("slick-active").attr("aria-hidden","false"):d.slice(e,e+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d-b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d+b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");b.$slideTrack.find(".slick-cloned").find("[id]").each(function(){a(this).attr("id","")})}},b.prototype.interrupt=function(a){var b=this;a||b.autoPlay(),b.interrupted=a},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(".slick-slide")?a(b.target):a(b.target).parents(".slick-slide"),e=parseInt(d.attr("data-slick-index"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(e),void c.asNavFor(e)):void c.slideHandler(e)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,j,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay&&clearInterval(i.autoPlayTimer),e=0>d?i.slideCount%i.options.slidesToScroll!==0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!==0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger("beforeChange",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.options.asNavFor&&(j=i.getNavTarget(),j=j.slick("getSlick"),j.slideCount<=j.options.slidesToShow&&j.setSlideClasses(i.currentSlide)),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?(i.fadeSlideOut(f),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass("slick-loading")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?"left":"right":360>=d&&d>=315?e.options.rtl===!1?"left":"right":d>=135&&225>=d?e.options.rtl===!1?"right":"left":e.options.verticalSwiping===!0?d>=35&&135>=d?"down":"up":"vertical"},b.prototype.swipeEnd=function(a){var c,d,b=this;if(b.dragging=!1,b.interrupted=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger("edge",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe){switch(d=b.swipeDirection()){case"left":case"down":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.currentDirection=0;break;case"right":case"up":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.currentDirection=1}"vertical"!=d&&(b.slideHandler(c),b.touchObject={},b.$slider.trigger("swipe",[b,d]))}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.Line truncated
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* c3
|
||||
* @see https://github.com/masayuki0812/c3
|
||||
* @license MIT
|
||||
*/
|
||||
!function(t){"use strict";function e(t){this.owner=t}function i(t){var e=this.internal=new n(this);e.loadConfig(t),e.beforeInit(t),e.init(),e.afterInit(t),function t(e,i,n){Object.keys(e).forEach(function(a){i[a]=e[a].bind(n),Object.keys(e[a]).length>0&&t(e[a],i[a],n)})}(s,this,this)}function n(e){var i=this;i.d3=t.d3?t.d3:"undefined"!=typeof require?require("d3"):void 0,i.api=e,i.config=i.getDefaultConfig(),i.data={},i.cache={},i.axes={}}function a(t){e.call(this,t)}function r(t,e){function i(t,e){t.attr("transform",function(t){return"translate("+Math.ceil(e(t)+S)+", 0)"})}function n(t,e){t.attr("transform",function(t){return"translate(0,"+Math.ceil(e(t))+")"})}function a(t){var e=t[0],i=t[t.length-1];return i>e?[e,i]:[i,e]}function r(t){var e,i,n=[];if(t.ticks)return t.ticks.apply(t,g);for(i=t.domain(),e=Math.ceil(i[0]);e<i[1];e++)n.push(e);return n.length>0&&n[0]>0&&n.unshift(n[0]-(n[1]-n[0])),n}function s(){var t,i=_.copy();return e.isCategory&&(t=_.domain(),i.domain([t[0],t[1]-1])),i}function o(t){var e=h?h(t):t;return void 0!==e?e:""}function c(t){if(T)return T;var e={h:11.5,w:5.5};return t.select("text").text(o).each(function(t){var i=this.getBoundingClientRect(),n=o(t),a=i.height,r=n?i.width/n.length:void 0;a&&r&&(e.h=a,e.w=r)}).text(""),T=e,e}function l(i){return e.withoutTransition?i:t.transition(i)}function u(h){h.each(function(){function h(t,i){function n(t,e){r=void 0;for(var o=1;o<e.length;o++)if(" "===e.charAt(o)&&(r=o),a=e.substr(0,o+1),(s=z.w*a.length)>i)return n(t.concat(e.substr(0,r||o)),e.slice(r?r+1:o));return t.concat(e)}var a,r,s,c=o(t),l=[];return"[object Array]"===Object.prototype.toString.call(c)?c:((!i||0>=i)&&(i=Y?95:e.isCategory?Math.ceil(C(L[1])-C(L[0]))-12:110),n(l,c+""))}function g(t,e){var i=z.h;return 0===e&&(i="left"===f||"right"===f?-((B[t.index]-1)*(z.h/2)-3):".71em"),i}var v,b,A,T=u.g=t.select(this),P=this.__chart__||_,C=this.__chart__=s(),L=m||r(C),w=T.selectAll(".tick").data(L,C),V=w.enter().insert("g",".domain").attr("class","tick").style("opacity",1e-6),G=w.exit().remove(),E=l(w).style("opacity",1),I=_.rangeExtent?_.rangeExtent():a(_.range()),O=T.selectAll(".domain").data([0]),R=(O.enter().append("path").attr("class","domain"),l(O));V.append("line"),V.append("text");var D=V.select("line"),F=E.select("line"),X=V.select("text"),k=E.select("text");e.isCategory?(S=Math.ceil((C(1)-C(0))/2),b=p?0:S,A=p?S:0):S=b=0;var M,H,z=c(T.select(".tick")),B=[],N=Math.max(x,0)+y,Y="left"===f||"right"===f;(H=(M=w.select("text")).selectAll("tspan").data(function(t,i){var n=e.tickMultiline?h(t,e.tickWidth):[].concat(o(t));return B[i]=n.length,n.map(function(t){return{index:i,splitted:t}})})).enter().append("tspan"),H.exit().remove(),H.text(function(t){return t.splitted});var j=e.tickTextRotate;switch(f){case"bottom":v=i,D.attr("y2",x),X.attr("y",N),F.attr("x1",b).attr("x2",b).attr("y2",function(t){var e=_(t)+(p?0:S);return I[0]<e&&e<I[1]?x:0}),k.attr("x",0).attr("y",function(t){return t?11.5-t/15*2.5*(t>0?1:-1):N}(j)).style("text-anchor",function(t){return t?t>0?"start":"end":"middle"}(j)).attr("transform",function(t){return t?"rotate("+t+")":""}(j)),H.attr("x",0).attr("dy",g).attr("dx",function(t){return t?8*Math.sin(Math.PI*(t/180)):0}(j)),R.attr("d","M"+I[0]+","+d+"V0H"+I[1]+"V"+d);break;case"top":v=i,D.attr("y2",-x),X.attr("y",-N),F.attr("x2",0).attr("y2",-x),k.attr("x",0).attr("y",-N),M.style("text-anchor","middle"),H.attr("x",0).attr("dy","0em"),R.attr("d","M"+I[0]+","+-d+"V0H"+I[1]+"V"+-d);break;case"left":v=n,D.attr("x2",-x),X.attr("x",-N),F.attr("x2",-x).attr("y1",A).attr("y2",A),k.attr("x",-N).attr("y",S),M.style("text-anchor","end"),H.attr("x",-N).attr("dy",g),R.attr("d","M"+-d+","+I[0]+"H0V"+I[1]+"H"+-d);break;case"right":v=n,D.attr("x2",x),X.attr("x",N),F.attr("x2",x).attr("y2",0),k.attr("x",N).attr("y",0),M.style("text-anchor","start"),H.attr("x",N).attr("dy",g),R.attr("d","M"+d+","+I[0]+"H0V"+I[1]+"H"+d)}if(C.rangeBand){var U=C,W=U.rangeBand()/2;P=C=function(t){return U(t)+W}}else P.rangeBand?P=C:G.call(v,C);V.call(v,P),E.call(v,C)})}var d,h,g,p,_=t.scale.linear(),f="bottom",x=6,y=3,m=null,S=0,v=!0;return e=e||{},d=e.withOuterTick?6:0,u.scale=function(t){return arguments.length?(_=t,u):_},u.orient=function(t){return arguments.length?(f=t in{top:1,right:1,bottom:1,left:1}?t+"":"bottom",u):f},u.tickFormat=function(t){return arguments.length?(h=t,u):h},u.tickCentered=function(t){return arguments.length?(p=t,u):p},u.tickOffset=function(){return S},u.tickInterval=function(){var t,i;return e.isCategory?t=2*S:(i=u.g.select("path.domain").node().getTotalLength()-2*d,t=i/u.g.selectAll("line").size()),t===1/0?0:t},u.ticks=function(){return arguments.length?(g=arguments,u):g},u.tickCulling=function(t){return arguments.length?(v=t,u):v},u.tickValues=function(t){if("function"==typeof t)m=function(){return t(_.domain())};else{if(!arguments.length)return m;m=t}return u},u}var s,o,c={version:"0.4.11"};c.generate=function(t){return new i(t)},c.chart={fn:i.prototype,internal:{fn:n.prototypLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* d3
|
||||
* @see https://github.com/masayuki0812/d3
|
||||
* @license MIT
|
||||
*/
|
||||
!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===Qu||n[0]===no?no+n:n}function s(n){return(n+="")[0]===no?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=to.length;r>e;++e){var i=to[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++i<u;)(t=r[i].on)&&t.apply(this,arguments);return n}var e=[],r=new c;return t.on=function(t,i){var u,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,u=e.indexOf(o)).concat(e.slice(u+1)),r.remove(t)),i&&e.push(r.set(t,{on:i})),n)},t}function S(){Iu.event.preventDefault()}function k(){for(var n,t=Iu.event;n=t.sourceEvent;)t=n;return t}function N(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(i){try{var u=i.sourceEvent=Iu.event;i.target=n,Iu.event=i,t[i.type].apply(e,r)}finally{Iu.event=u}}},t}function E(n){return ro(n,ao),n}function A(n){return"function"==typeof n?n:function(){return io(n,this)}}function C(n){return"function"==typeof n?n:function(){return uo(n,this)}}function z(n,t){return n=Iu.ns.qualify(n),null==t?n.local?function(){this.removeAttributeNS(n.space,n.local)}:function(){this.removeAttribute(n)}:"function"==typeof t?n.local?function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}:function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}:n.local?function(){this.setAttributeNS(n.space,n.local,t)}:function(){this.setAttribute(n,t)}}function L(n){return n.trim().replace(/\s+/g," ")}function q(n){return new RegExp("(?:^|\\s+)"+Iu.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){var e=(n=T(n).map(D)).length;return"function"==typeof t?function(){for(var r=-1,i=t.apply(this,arguments);++r<e;)n[r](this,i)}:function(){for(var r=-1;++r<e;)n[r](this,t)}}function D(n){var t=q(n);return function(e,r){if(i=e.classList)return r?i.add(n):i.remove(n);var i=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(i)||e.setAttribute("class",L(i+" "+n))):e.setAttribute("class",L(i.replace(t," ")))}}function P(n,t,e){return null==t?function(){this.style.removeProperty(n)}:"function"==typeof t?function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}:function(){this.style.setProperty(n,t,e)}}function U(n,t){return null==t?function(){delete this[n]}:"function"==typeof t?function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}:function(){this[n]=t}}function j(n){return"function"==typeof n?n:(n=Iu.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){var t=this.ownerDocument,e=this.namespaceURI;return e===lo&&t.documentElement.namespaceURI===lo?t.createElement(n):t.createElementNS(e,n)}}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return oo(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ro(n,fo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t<l;);return o}}function X(n,t,e){function r(){var t=this[i];t&&(this.removeEventListener(n,t,t.$),delete this[i])}var i="__on"+n,u=n.indexOf("."),o=$;u>0&&(n=n.slice(0,u));var a=so.get(n);return a&&(n=a,o=B),u?t?function(){var u=o(t,Zu(arguments));r.call(this),this.addEventListener(n,this[i]=u,u.$=e),u._=t}:r:t?b:function(){var t,e=new RegExp("^__on([^.]+)"+Iu.requotLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Custom Waypoints
|
||||
* @author Evgeniy Gusarov
|
||||
* @see https://ua.linkedin.com/pub/evgeniy-gusarov/8a/a40/54a
|
||||
* @license MIT
|
||||
*/
|
||||
!function(t){var o=t("[data-waypoint-to]");o.length&&t(document).ready(function(){o.each(function(){var o=t(this);o.on("click",function(n){n.preventDefault(),t("body, html").stop().animate({scrollTop:t(o.attr("data-waypoint-to")).offset().top},800)})})})}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module Select2
|
||||
* @see https://github.com/select2/select2/blob/master/
|
||||
* @license MIT
|
||||
* @version 4.0.5
|
||||
*/
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1))Line truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jquery.hoverdir.js
|
||||
* @license MIT
|
||||
* @link http://www.codrops.com
|
||||
* @version 1.1.0
|
||||
*/
|
||||
!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){"use strict";function e(e,i){this.$el=t(e),this.options=t.extend(!0,{},this.defaults,i),this.isVisible=!1,this.$hoverElem=this.$el.find(this.options.hoverElem),this.transitionProp="all "+this.options.speed+"ms "+this.options.easing,this.support=this._supportsTransitions(),this._loadEvents()}e.prototype={defaults:{speed:300,easing:"ease",hoverDelay:0,inverse:!1,hoverElem:"div"},constructor:e,_supportsTransitions:function(){if("undefined"!=typeof Modernizr)return Modernizr.csstransitions;var t=(document.body||document.documentElement).style,e="transition";if("string"==typeof t[e])return!0;var i=["Moz","webkit","Webkit","Khtml","O","ms"];e=e.charAt(0).toUpperCase()+e.substr(1);for(var s=0;s<i.length;s++)if("string"==typeof t[i[s]+e])return!0;return!1},_loadEvents:function(){this.$el.on("mouseenter.hoverdir mouseleave.hoverdir",t.proxy(function(t){this.direction=this._getDir({x:t.pageX,y:t.pageY}),"mouseenter"===t.type?this._showHover():this._hideHover()},this))},_showHover:function(){var e=this._getStyle(this.direction);this.support&&this.$hoverElem.css("transition",""),this.$hoverElem.hide().css(e.from),clearTimeout(this.tmhover),this.tmhover=setTimeout(t.proxy(function(){this.$hoverElem.show(0,t.proxy(function(){this.support&&this.$hoverElem.css("transition",this.transitionProp),this._applyAnimation(e.to)},this))},this),this.options.hoverDelay),this.isVisible=!0},_hideHover:function(){var t=this._getStyle(this.direction);this.support&&this.$hoverElem.css("transition",this.transitionProp),clearTimeout(this.tmhover),this._applyAnimation(t.from),this.isVisible=!1},_getDir:function(t){var e=this.$el.width(),i=this.$el.height(),s=(t.x-this.$el.offset().left-e/2)*(e>i?i/e:1),o=(t.y-this.$el.offset().top-i/2)*(i>e?e/i:1);return Math.round((Math.atan2(o,s)*(180/Math.PI)+180)/90+3)%4},_getStyle:function(t){var e,i,s={transform:"translate(0, -100%)"},o={transform:"translate(0, 100%)"},r={transform:"translate(-100%, 0)"},n={transform:"translate(100%, 0)"},h={transform:"translateY(0)"},a={transform:"translateX(0)"};switch(t){case 0:case"top":e=this.options.inverse?o:s,i=h;break;case 1:case"right":e=this.options.inverse?r:n,i=a;break;case 2:case"bottom":e=this.options.inverse?s:o,i=h;break;case 3:case"left":e=this.options.inverse?n:r,i=a}return{from:e,to:i}},_applyAnimation:function(e){t.fn.applyStyle=this.support?t.fn.css:t.fn.animate,this.$hoverElem.stop().applyStyle(e,t.extend(!0,[],{duration:this.options.speed}))},show:function(t){this.$el.off("mouseenter.hoverdir mouseleave.hoverdir"),this.isVisible||(this.direction=t||"top",this._showHover())},hide:function(t){this.rebuild(),this.isVisible&&(this.direction=t||"bottom",this._hideHover())},setOptions:function(e){this.options=t.extend(!0,{},this.defaults,this.options,e)},destroy:function(){this.$el.off("mouseenter.hoverdir mouseleave.hoverdir"),this.$el.data("hoverdir",null)},rebuild:function(t){"object"==typeof t&&this.setOptions(t),this._loadEvents()}},t.fn.hoverdir=function(i,s){return this.each(function(){var o=t(this).data("hoverdir"),r="object"==typeof i&&i;o||(o=new e(this,r),t(this).data("hoverdir",o)),"string"==typeof i&&(o[i](s),"destroy"===i&&t(this).data("hoverdir",!1))})},t.fn.hoverdir.Constructor=e});
|
||||
|
||||
|
||||
/**
|
||||
* @module Vide
|
||||
* @license MIT
|
||||
* @link http://vodkabears.github.io/vide/
|
||||
* @version 0.5.1
|
||||
*/
|
||||
!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):b("object"==typeof exports?require("jquery"):a.jQuery)}(this,function(a){"use strict";function b(a){var b,c,d,e,f,g,h,i={};for(f=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,",").split(","),h=0,g=f.length;h<g&&(c=f[h],c.search(/^(http|https|ftp):\/\//)===-1&&c.search(":")!==-1);h++)b=c.indexOf(":"),d=c.substring(0,b),e=c.substring(b+1),e||(e=void 0),"string"==typeof e&&(e="true"===e||"false"!==e&&e),"string"==typeof e&&(e=isNaN(e)?e:+e),i[d]=e;return null==d&&null==e?a:i}function c(a){a=""+a;var b,c,d,e=a.split(/\s+/),f="50%",g="50%";for(d=0,b=e.length;d<b;d++)c=e[d],"left"===c?f="0%":"right"===c?f="100%":"top"===c?g="0%":"bottom"===c?g="100%":"center"===c?0===d?f="50%":g="50%":0===d?f=c:g=c;return{x:f,y:g}}function d(b,c){var d=function(){c(this.src)};a('<img src="'+b+'.gif">').on("load",d),a('<img src="'+b+'.jpg">').on("load",d),a('<img src="'+b+'.jpeg">').on("load",d),a('<img src="'+b+'.png">').on("load",d)}function e(c,d,e){if(this.$element=a(c),"string"==typeof d&&(d=b(d)),e?"string"==typeof e&&(e=b(e)):e={},"string"==typeof d)d=d.replace(/\.\w*$/,"");else if("object"==typeof d)for(var f in d)d.hasOwnProperty(f)&&(d[f]=d[f].replace(/\.\w*$/,""));this.settings=a.extend({},g,e),this.path=d;try{this.init()}catch(i){if(i.message!==h)throw i}}var f="vide",g={volume:1,playbackRate:1,muted:!0,loop:!0,autoplay:!0,position:"50% 50%",posterType:"detect",resizing:!0,bgColor:"transparent",className:""},h="Not implemented";e.prototype.init=function(){var b,e,f=this,g=f.path,i=g,j="",k=f.$element,l=f.settings,m=c(l.position),n=l.posterType;e=f.$wrapper=a("<div>").addClass(l.className).css({position:"absolute","z-index":-1,top:0,left:0,bottom:0,right:0,overflow:"hidden","-webkit-background-size":"cover","-moz-background-size":"cover","-o-background-size":"cover","background-size":"cover","background-color":l.bgColor,"background-repeat":"no-repeat","background-position":m.x+" "+m.y}),"object"==typeof g&&(g.poster?i=g.poster:g.mp4?i=g.mp4:g.webm?i=g.webm:g.ogv&&(i=g.ogv)),"detect"===n?d(i,function(a){e.css("background-image","url("+a+")")}):"none"!==n&&e.css("background-image","url("+i+"."+n+")"),"static"===k.css("position")&&k.css("position","relative"),k.prepend(e),"object"==typeof g?(g.mp4&&(j+='<source src="'+g.mp4+'.mp4" type="video/mp4">'),g.webm&&(j+='<source src="'+g.webm+'.webm" type="video/webm">'),g.ogv&&(j+='<source src="'+g.ogv+'.ogv" type="video/ogg">'),b=f.$video=a("<video>"+j+"</video>")):b=f.$video=a('<video><source src="'+g+'.mp4" type="video/mp4"><source src="'+g+'.webm" type="video/webm"><source src="'+g+'.ogv" type="video/ogg"></video>');try{b.prop({autoplay:l.autoplay,loop:l.loop,volume:l.volume,muted:l.muted,defaultMuted:l.muted,playbackRate:l.playbackRate,defaultPlaybackRate:l.playbackRate})}catch(o){throw new Error(h)}b.css({margin:"auto",position:"absolute","z-index":-1,top:m.y,left:m.x,"-webkit-transform":"translate(-"+m.x+", -"+m.y+")","-ms-transform":"translate(-"+m.x+", -"+m.y+")","-moz-transform":"translate(-"+m.x+", -"+m.y+")",transform:"translate(-"+m.x+", -"+m.y+")",visibility:"hidden",opacity:0}).one("canplaythrough.vide",function(){f.resize()}).one("playing.vide",function(){b.css({visibility:"visible",opacity:1}),e.css("background-image","none")}),k.on("resize.vide",function(){l.resizing&&f.resize()}),e.append(b)},e.prototype.getVideoObject=function(){return this.$video[0]},e.prototype.resize=function(){if(this.$video){var a=this.$wrapper,b=this.$video,c=b[0],d=c.videoHeight,e=c.videoWidth,f=a.height(),g=a.width();g/e>f/d?b.css({width:g+2,height:"auto"}):b.css({width:"auto",height:f+2})}},e.prototype.destroy=function(){delete a[f].lookup[this.index],this.$video&&this.$video.off(f),this.$element.off(f).removeData(f),this.$wrapper.remove()},a[f]={lookup:[]},a.fn[f]=function(b,c){var d;return this.each(function(){d=a.data(this,f),d&&d.destroy(),d=new e(this,b,c),d.index=a[f].lookup.push(d)-1,a.data(this,f,d)}),this},a(document).ready(function(){var b=a(window);b.on("resize.vide",function(){for(var b,c=a[f].lookup.length,d=0;d<c;d++)b=a[f].lookup[d],b&&b.settings.resizing&&b.resize()}),b.on("unload.vide",function(){return!1}),a(document).find("[data-vide-bg]").each(function(b,c){var d=a(c),e=d.data("vide-options"),g=d.data("vide-bg");d[f](g,e)})})});
|
||||
|
||||
|
||||
/**
|
||||
* @module SmoothScroll.js
|
||||
*/
|
||||
!function(){function e(){z.keyboardSupport&&f("keydown",r)}function t(){if(!Y&&document.body){Y=!0;var t=document.body,o=document.documentElement,n=window.innerHeight,r=t.scrollHeight;if(A=document.compatMode.indexOf("CSS")>=0?o:t,D=t,e(),top!=self)L=!0;else if(r>n&&(t.offsetHeight<=n||o.offsetHeight<=n)){var a=document.createElement("div");a.style.cssText="position:absolute; z-index:-10000; top:0; left:0; right:0; height:"+A.scrollHeight+"px",document.body.appendChild(a);var i;M=function(){i||(i=setTimeout(function(){C||(a.style.height="0",a.style.height=A.scrollHeight+"px",i=null)},500))},setTimeout(M,10),f("resize",M);var l={attributes:!0,childList:!0,characterData:!1};if((k=new _(M)).observe(t,l),A.offsetHeight<=n){var c=document.createElement("div");c.style.clear="both",t.appendChild(c)}}z.fixedBackground||C||(t.style.backgroundAttachment="scroll",o.style.backgroundAttachment="scroll")}}function o(e,t,o){if(h(t,o),1!=z.accelerationMax){var n=Date.now()-P;if(n<z.accelerationDelta){var r=(1+50/n)/2;r>1&&(r=Math.min(r,z.accelerationMax),t*=r,o*=r)}P=Date.now()}if(K.push({x:t,y:o,lastX:t<0?.99:-.99,lastY:o<0?.99:-.99,start:Date.now()}),!q){var a=e===document.body,i=function(n){for(var r=Date.now(),l=0,c=0,u=0;u<K.length;u++){var d=K[u],s=r-d.start,f=s>=z.animationTime,m=f?1:s/z.animationTime;z.pulseAlgorithm&&(m=S(m));var w=d.x*m-d.lastX>>0,h=d.y*m-d.lastY>>0;l+=w,c+=h,d.lastX+=w,d.lastY+=h,f&&(K.splice(u,1),u--)}a?window.scrollBy(l,c):(l&&(e.scrollLeft+=l),c&&(e.scrollTop+=c)),t||o||(K=[]),K.length?I(i,e,1e3/z.frameRate+1):q=!1};I(i,e,0),q=!0}}function n(e){Y||t();var n=e.target,r=c(n);if(!r||e.defaultPrevented||e.ctrlKey)return!0;if(w(D,"embed")||w(n,"embed")&&/\.pdf/i.test(n.src)||w(D,"object"))return!0;var a=-e.wheelDeltaX||e.deltaX||0,l=-e.wheelDeltaY||e.deltaY||0;if(N&&(e.wheelDeltaX&&v(e.wheelDeltaX,120)&&(a=e.wheelDeltaX/Math.abs(e.wheelDeltaX)*-120),e.wheelDeltaY&&v(e.wheelDeltaY,120)&&(l=e.wheelDeltaY/Math.abs(e.wheelDeltaY)*-120)),a||l||(l=-e.wheelDelta||0),1===e.deltaMode&&(a*=40,l*=40),!z.touchpadSupport&&p(l))return!0;Math.abs(a)>1.2&&(a*=z.stepSize/120),Math.abs(l)>1.2&&(l*=z.stepSize/120),o(r,a,l),e.preventDefault(),i()}function r(e){var t=e.target,n=e.ctrlKey||e.altKey||e.metaKey||e.shiftKey&&e.keyCode!==O.spacebar;t.blur(),t.focus(),document.body.contains(D)||(D=document.activeElement);var r=/^(button|submit|radio|checkbox|file|color|image)$/i;if(/^(textarea|select|embed|object)$/i.test(t.nodeName)||w(t,"input")&&!r.test(t.type)||w(D,"video")||g(e)||t.isContentEditable||e.defaultPrevented||n)return!0;var a=0,l=0,u=c(D),d=u.clientHeight;switch(u==document.body&&(d=window.innerHeight),e.keyCode){case O.up:l=-z.arrowScroll;break;case O.down:l=z.arrowScroll;break;case O.spacebar:l=-(e.shiftKey?1:-1)*d*.9;break;case O.pageup:l=.9*-d;break;case O.pagedown:l=.9*d;break;case O.home:l=-u.scrollTop;break;case O.end:var s=u.scrollHeight-u.scrollTop-d;l=s>0?s+10:0;break;case O.left:a=-z.arrowScroll;break;case O.right:a=z.arrowScroll;break;default:return!0}o(u,a,l),e.preventDefault(),i()}function a(e){D=e.target}function i(){clearTimeout(T),T=setInterval(function(){j={}},1e3)}function l(e,t){for(var o=e.length;o--;)j[R(e[o])]=t;return t}function c(e){var t=[],o=document.body,n=A.scrollHeight;do{var r=j[R(e)];if(r)return l(t,r);if(t.push(e),n===e.scrollHeight){var a=d(A)&&d(o)||s(A);if(L&&u(A)||!L&&a)return l(t,V())}else if(u(e)&&s(e))return l(t,e)}while(e=e.parentElement)}function u(e){return e.clientHeight+10<e.scrollHeight}function d(e){return"hidden"!==getComputedStyle(e,"").getPropertyValue("overflow-y")}function s(e){var t=getComputedStyle(e,"").getPropertyValue("overflow-y");return"scroll"===t||"auto"===t}function f(e,t){window.addEventListener(e,t,!1)}function m(e,t){window.removeEventListener(e,t,!1)}function w(e,t){return(e.nodeName||"").toLowerCase()===t.toLowerCase()}function h(e,t){e=e>0?1:-1,t=t>0?1:-1,X.x===e&&X.y===t||(X.x=e,X.y=t,K=[],P=0)}function p(e){if(e)return B.length||(B=[e,e,e]),e=Math.abs(e),B.push(e),B.shift(),clearTimeout(E),E=setTimeout(function(){window.localStorage&&(localStorage.SS_deltaBuffer=B.join(","))},1e3),!b(120)&&!b(100)}function v(e,t){return Math.floor(e/t)==e/t}function b(e){return v(B[0],e)&&v(B[1],e)&&v(B[2],e)}function g(e){var t=e.target,o=!1;if(-1!=document.URL.indexOf("www.youtube.com/watch"))do{if(o=t.classList&&t.classList.contains("html5-video-controls"))break}while(t=t.parentNode);return o}function y(e){var t,o;return e*=z.pulseScale,e<1?t=e-(1-Math.exp(-e)):(e-=1,t=(o=Math.exp(-1))+(1-Math.exp(-e))*(1-o)),t*z.pulseNormalize}function S(e){return e>=1?1:e<=0?0:(1==z.pulseNormalize&&(z.pulseNormalize/=y(1)),y(e))}function x(e){for(var t in e)H.hasOwnProperty(t)&&(z[t]=e[t])}var D,k,M,T,E,H={frameRate:150,animationTime:400,stepSize:100,pulseAlgorithm:!0,pulseScale:4,pulseNormalize:1,accelerationDelta:20,accelerationMax:3,keyboardSupport:!0,arrowScroll:50,touchpadSupport:!1,fixedBackground:!0,excluded:""},z=H,C=!1,L=!1,X={x:0,y:0},Y=!1,A=document.documeLine truncated
|
||||
|
||||
/**
|
||||
* @module RD Range
|
||||
* @author Roman Kholiavko
|
||||
* @see http://cms.devoffice.com/coding-demo/marathoner/rd-range/documentation
|
||||
* @version 1.0
|
||||
*/
|
||||
(function(){!function(t,e,n){var o,i;return i="ontouchstart"in n,o=function(){function o(n,o){this.$element=t(n),this.options=t.extend(!0,{},this.Defaults,o),this.setClientOptions(this),this.createDOM(this),this.$pointer=t(n).find(".rd-range__pointer-1"),this.options.tooltip&&(this.$pointerTooltip=this.$pointer.find(".rd-range__pointer-tooltip"),this.$element.addClass("hasTooltip")),this.$line=t(n).find(".rd-range__line"),null!=t(n).attr("data-input")?this.$input=t(t(n).attr("data-input")):this.$input=t(this.Defaults.inputClassName),this.range&&(this.$pointer2=t(n).find(".rd-range__pointer-2"),null!=t(n).attr("data-input-2")?this.$input2=t(t(n).attr("data-input-2")):this.$input2=t(this.Defaults.inputClassName2),this.options.tooltip&&(this.$pointerTooltip2=this.$pointer2.find(".rd-range__pointer-tooltip"))),this.$doc=t(e),this.isMove=!1,this.initialization()}return o.prototype.Defaults={min:0,start:0,max:100,start2:0,step:1,minDiff:0,inputClassName:".rd-range-input-value",inputClassName2:".rd-range-input-value-2",tooltip:!1,callbacks:{onInit:!1,onChange:!1,onInputChange:!1,onMoveStart:!1,onMoveEnd:!1}},o.prototype.initialization=function(){var t;return t=this,t.setRange(t),t.applyHandlers(t),t.options.callbacks.onInit&&t.options.callbacks.onInit.call(this,t),t},o.prototype.createDOM=function(t){var e;e='<div class="rd-range__pointer rd-range__pointer-1">',t.options.tooltip&&(e+='<div class="rd-range__pointer-tooltip"></div>'),e+="</div>",t.range&&(e+='<div class="rd-range__pointer rd-range__pointer-2">',t.options.tooltip&&(e+='<div class="rd-range__pointer-tooltip"></div>'),e+="</div>"),t.$element.wrapInner('<div class="rd-range__wrap">'+e+'<div class="rd-range__line"></div> </div>')},o.prototype.setClientOptions=function(t){var e;e={min:t.$element.attr("data-min"),max:t.$element.attr("data-max"),step:t.$element.attr("data-step"),start:t.$element.data("start"),minDiff:t.$element.attr("data-min-diff"),precision:t.$element.attr("data-precision"),tooltip:t.$element.attr("data-tooltip")},t.options.start=[],(null!=e.start&&e.start.length>1||null!=t.options.start&&t.options.start.length>1)&&(t.range=!0),null!=e.min&&(t.options.min=Number(e.min)),null!=e.max&&(t.options.max=Number(e.max)),null!=e.start?t.options.start=e.start:t.options.start.push(t.options.min),t.currentValue=t.options.start[0],null!=e.step&&(t.options.step=Number(e.step)),null!=e.tooltip&&(t.options.tooltip=e.tooltip),null!=e.precision?t.options.precision=t.getNumDigitsAfterDecimalPlace(Number(e.precision)):t.options.precision=t.getNumDigitsAfterDecimalPlace(t.options.step),t.range&&(t.currentValue2=t.options.start[1],null!=e.minDiff?t.options.minDiff=Number(e.minDiff):null!=t.options.minDiff&&(t.options.minDiff=t.options.step))},o.prototype.setRange=function(t){return t.diff=t.options.max-t.options.min,t.delta=100*t.options.step/t.diff,t.currentPercentage=t.getPercentageByValue(t,t.currentValue),t.updatePointer1(t,t.currentPercentage,t.currentValue),t.range?(t.currentPercentage2=t.getPercentageByValue(t,t.currentValue2),t.updatePointer2(t,t.currentPercentage2,t.currentValue2)):void 0},o.prototype.applyHandlers=function(e){return e.$pointer.on(i?"touchstart":"mousedown",function(n){var o,r,a,u;if(!e.isMove)return e.isMove=!0,o=t(this),o.addClass("active"),a="touchmove"===n.type?n.originalEvent.targetTouches[0].pageX:n.pageX,r=e.getCoords(e.$element),u=e.getPercentage(e,a,r.left),e.options.callbacks.onMoveStart&&e.options.callbacks.onMoveStart.call(this,e),e.$doc.on(i?"touchmove":"mousemove",function(t){var n;return a="touchmove"===t.type?t.originalEvent.targetTouches[0].pageX:t.pageX,n=e.getPercentage(e,a,r.left),n!==u?(u=n,e.currentValue=e.getCurrentValue(e,u),e.range&&e.currentValue>=e.currentValue2-e.options.minDiff&&(n=e.checkPointer1Bounds(e)),e.updatePointer1(e,n,e.currentValue)):void 0}).on(i?"touchend":"mouseup",function(t){return setTimeout(function(){return e.isMove=!1},100),o.removeClass("active"),e.options.callbacks.onMoveEnd&&e.options.callbacks.onMoveEnd.call(this,e),i?e.$doc.off("touchmove"):e.$doc.off("mousemove"),e.$doc.off(t.type)}),!1}),"hidden"!==e.$input.attr("type")&&"readonly"!==e.$input.attr("readOnly")&&e.$input.on("keypress",function(t){return e.isAllowTyped(t.which)}).on("change",function(n){var o;return o=Math.abs(Number(t(this).val())),e.range&&(o>=e.currentValue2||o>e.currentValue2-e.options.minDiff)&&(e.checkPointer1Bounds(e),o=e.currentValue),o<e.options.min&&(o=e.options.min),e.currentValue=o,e.setRange(e),e.options.callbacks.onInputChange?e.options.callbacks.onInputChange.call(this,e):void 0}),e.range&&(e.$pointer2.on(i?"touchstart":"mousedown",function(n){var o,r,a,u;if(!e.isMove)return e.isMove=!0,o=t(this),o.addClass("active"),a="touchmove"===n.type?n.originalEvent.targetTouches[0].pageX:n.pageX,r=e.getCoords(e.$element),u=e.getPercentage(e,a,r.left),e.options.callbacks.onMoveStart&&e.options.callbacks.onMoveStart.call(this,e),e.$doc.on(i?"touchmove":"mousemove",function(t){var n;return a="touchmove"===t.type?Line truncated
|
||||
@@ -1,193 +0,0 @@
|
||||
{% load static %}
|
||||
<!DOCTYPE html>
|
||||
<html class="wide wow-animation" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% block title %}{{ SITE_NAME }}{% endblock %}</title>
|
||||
<meta name="description" content="{% block meta_description %}{{ SITE_NAME }} — {{ SITE_TAGLINE }}. {{ CONTACT_SERVICE_AREA }}.{% endblock %}">
|
||||
<meta name="robots" content="{% block meta_robots %}index, follow{% endblock %}">
|
||||
<link rel="canonical" href="{% block canonical_url %}{{ PUBLIC_SITE_URL }}{{ request.path }}{% endblock %}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:site_name" content="{{ SITE_NAME }}">
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta property="og:title" content="{% block og_title %}{{ SITE_NAME }}{% endblock %}">
|
||||
<meta property="og:description" content="{% block og_description %}{{ SITE_NAME }} — {{ SITE_TAGLINE }}. {{ CONTACT_SERVICE_AREA }}.{% endblock %}">
|
||||
<meta property="og:url" content="{% block og_url %}{{ PUBLIC_SITE_URL }}{{ request.path }}{% endblock %}">
|
||||
{% block og_image %}
|
||||
<meta property="og:image" content="{{ PUBLIC_SITE_URL }}{% static 'images/slider-minimal-slide-1-1920x968.jpg' %}">
|
||||
<meta property="og:image:alt" content="{{ SITE_NAME }}">
|
||||
{% endblock %}
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="{% block twitter_title %}{{ SITE_NAME }}{% endblock %}">
|
||||
<meta name="twitter:description" content="{% block twitter_description %}{{ SITE_NAME }} — {{ SITE_TAGLINE }}. {{ CONTACT_SERVICE_AREA }}.{% endblock %}">
|
||||
<link rel="icon" href="{% static 'brand/favicon-32.png' %}" type="image/png">
|
||||
<link rel="apple-touch-icon" href="{% static 'brand/apple-touch-icon.png' %}">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Work+Sans:300,400,500,700,800%7CPoppins:300,400,700">
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/fonts.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/style.css' %}" id="main-styles-link">
|
||||
<link rel="stylesheet" href="{% static 'css/theme-overrides.css' %}">
|
||||
{% block structured_data %}{% endblock %}
|
||||
{% block extra_head %}{% endblock %}
|
||||
</head>
|
||||
<body class="{% block body_class %}{% endblock %}">
|
||||
{% if tianji_enabled %}
|
||||
<div id="tianji-config"
|
||||
data-tracker-url="{{ tianji_tracker_url }}"
|
||||
data-website-id="{{ tianji_website_id }}"
|
||||
data-page-name="{{ page_name }}"
|
||||
{% if user.is_authenticated %}data-user-id="{{ user.pk }}"{% endif %}
|
||||
hidden></div>
|
||||
{% endif %}
|
||||
{% block body %}
|
||||
<div class="page">
|
||||
{% block header %}
|
||||
<header class="section page-header">
|
||||
<div class="rd-navbar-wrap">
|
||||
<nav class="rd-navbar rd-navbar-corporate" data-layout="rd-navbar-fixed" data-sm-layout="rd-navbar-fixed" data-md-layout="rd-navbar-fixed" data-md-device-layout="rd-navbar-fixed" data-lg-layout="rd-navbar-static" data-lg-device-layout="rd-navbar-static" data-lg-stick-up="true" data-lg-stick-up-offset="118px" data-xl-layout="rd-navbar-static" data-xl-device-layout="rd-navbar-static" data-xl-stick-up="true" data-xl-stick-up-offset="118px" data-xxl-layout="rd-navbar-static" data-xxl-device-layout="rd-navbar-static" data-xxl-stick-up-offset="118px" data-xxl-stick-up="true">
|
||||
<div class="rd-navbar-aside-outer">
|
||||
<div class="rd-navbar-aside">
|
||||
<div class="rd-navbar-panel">
|
||||
<button class="rd-navbar-toggle" data-rd-navbar-toggle="#rd-navbar-nav-wrap-1"><span></span></button>
|
||||
<a class="rd-navbar-brand" href="{% url 'public:home' %}" data-tianji-event="nav_home">
|
||||
<img src="{% static 'brand/logo.png' %}" alt="{{ SITE_NAME }}" width="151" height="44"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="rd-navbar-collapse">
|
||||
<button class="rd-navbar-collapse-toggle rd-navbar-fixed-element-1" data-rd-navbar-toggle="#rd-navbar-collapse-content-1"><span></span></button>
|
||||
<div class="rd-navbar-collapse-content" id="rd-navbar-collapse-content-1">
|
||||
{% if CONTACT_PHONE %}
|
||||
<article class="unit align-items-center">
|
||||
<div class="unit-left"><span class="icon icon-md icon-modern mdi mdi-phone"></span></div>
|
||||
<div class="unit-body"><a class="link-default" href="tel:{{ CONTACT_PHONE_TEL }}">{{ CONTACT_PHONE }}</a></div>
|
||||
</article>
|
||||
{% endif %}
|
||||
<article class="unit align-items-center">
|
||||
<div class="unit-left"><span class="icon icon-md icon-modern mdi mdi-map-marker"></span></div>
|
||||
<div class="unit-body"><span class="link-default">{% if CONTACT_ADDRESS %}{{ CONTACT_ADDRESS }}{% else %}{{ CONTACT_SERVICE_AREA }}{% endif %}</span></div>
|
||||
</article>
|
||||
<a class="button button-gray-bordered button-winona" href="{% url 'public:contact' %}" data-tianji-event="nav_get_in_touch">Get in touch</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rd-navbar-main-outer">
|
||||
<div class="rd-navbar-main">
|
||||
<div class="rd-navbar-nav-wrap" id="rd-navbar-nav-wrap-1">
|
||||
<ul class="rd-navbar-nav">
|
||||
<li class="rd-nav-item {% if page_name == 'home' %}active{% endif %}">
|
||||
<a class="rd-nav-link" href="{% url 'public:home' %}" data-tianji-event="nav_home">Home</a>
|
||||
</li>
|
||||
<li class="rd-nav-item {% if page_name == 'about' %}active{% endif %}">
|
||||
<a class="rd-nav-link" href="{% url 'public:about' %}" data-tianji-event="nav_about">About</a>
|
||||
</li>
|
||||
<li class="rd-nav-item {% if page_name == 'contact' %}active{% endif %}">
|
||||
<a class="rd-nav-link" href="{% url 'public:contact' %}" data-tianji-event="nav_contact">Contact</a>
|
||||
</li>
|
||||
{% for item in public_nav_extra %}
|
||||
<li class="rd-nav-item {% if page_name == item.section %}active{% endif %}">
|
||||
<a class="rd-nav-link" href="{% url item.url_name %}">{{ item.label }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
{% endblock %}
|
||||
|
||||
{% if messages %}
|
||||
<ul class="flash">
|
||||
{% for message in messages %}
|
||||
<li class="{{ message.tags }}">{{ message }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
{% block footer %}
|
||||
<footer class="section footer-advanced bg-gray-700">
|
||||
<div class="footer-advanced-main">
|
||||
<div class="container">
|
||||
<div class="row row-50">
|
||||
<div class="col-lg-6">
|
||||
<div class="footer-brand-row">
|
||||
<img src="{% static 'brand/logo.png' %}" alt="{{ SITE_NAME }}">
|
||||
<div>
|
||||
<h5 class="font-weight-bold text-uppercase text-white" style="margin:0">{{ SITE_NAME }}</h5>
|
||||
<span style="color:#7dd3da;font-size:12px">{{ SITE_TAGLINE }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="footer-advanced-text">Replace this footer blurb with the client’s positioning.{% if CONTACT_ADDRESS %} {{ CONTACT_ADDRESS }}.{% endif %}</p>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<h5 class="font-weight-bold text-uppercase text-white">Navigate</h5>
|
||||
<ul class="list-marked list-marked-sm">
|
||||
<li><a href="{% url 'public:home' %}">Home</a></li>
|
||||
<li><a href="{% url 'public:about' %}">About</a></li>
|
||||
<li><a href="{% url 'public:contact' %}">Contact</a></li>
|
||||
<li><a href="{% url 'public:terms' %}">Terms of Service</a></li>
|
||||
{% for item in public_nav_extra %}
|
||||
<li><a href="{% url item.url_name %}">{{ item.label }}</a></li>
|
||||
{% endfor %}
|
||||
{% if user.is_authenticated %}
|
||||
<li><a href="{% url 'dashboard:home' %}">Client portal</a></li>
|
||||
{% else %}
|
||||
<li><a href="{% url 'accounts:login' %}">Client portal</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
<p style="margin-top:16px">
|
||||
<a class="footer-link-btn" href="{% url 'public:terms' %}" data-tianji-event="footer_cookie_preferences">Cookie Preferences</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-advanced-aside">
|
||||
<div class="container">
|
||||
<div class="footer-advanced-layout">
|
||||
<a class="brand" href="{% url 'public:home' %}">
|
||||
<img src="{% static 'brand/logo.png' %}" alt="{{ SITE_NAME }}" width="151" height="44"/>
|
||||
</a>
|
||||
<div class="footer-aside-copy">
|
||||
<p class="rights">
|
||||
<span>© </span><span>{% now "Y" %} </span><span>{{ SITE_NAME }}</span><span>. </span>
|
||||
</p>
|
||||
<p class="footer-made-by">
|
||||
Made by <a href="{{ CREDIT_URL }}" target="_blank" rel="noopener noreferrer">{{ CREDIT_NAME }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% if tianji_enabled %}
|
||||
<div id="cookie-consent-banner" class="cookie-consent-banner" hidden role="dialog" aria-modal="true"
|
||||
aria-labelledby="cookie-consent-title" aria-describedby="cookie-consent-description">
|
||||
<div class="cookie-consent-content">
|
||||
<h2 id="cookie-consent-title" class="visually-hidden">Analytics notice</h2>
|
||||
<p class="cookie-consent-text" id="cookie-consent-description">
|
||||
<span class="cookie-consent-text-full">We use analytics to understand how visitors use our site. This helps us improve performance and content. We never sell or share your personal data with third parties for marketing. <a class="cookie-consent-link" href="{% url 'public:terms' %}">Terms of Service</a></span>
|
||||
<span class="cookie-consent-text-short">We use analytics on this site. <a class="cookie-consent-link" href="{% url 'public:terms' %}">Terms</a></span>
|
||||
</p>
|
||||
<div class="cookie-consent-actions">
|
||||
<button type="button" id="cookie-consent-acknowledge" class="button button-primary button-winona">Acknowledge</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="{% static 'js/tianji-consent.js' %}"></script>
|
||||
{% endif %}
|
||||
{% block tracking_events %}{% endblock %}
|
||||
<script src="{% static 'js/core.min.js' %}"></script>
|
||||
<script src="{% static 'js/script.js' %}"></script>
|
||||
{% block extra_js %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
@@ -10,7 +10,9 @@
|
||||
<div style="display:flex;gap:8px;flex-wrap:wrap">
|
||||
<a class="btn btn-ghost btn-sm" href="{% url 'contacts:import' %}">Import CSV / Excel</a>
|
||||
<a class="btn btn-ghost btn-sm" href="{% url 'contacts:create' %}">New contact</a>
|
||||
<a class="btn btn-primary btn-sm" href="{% url 'messaging:campaign_list' %}">New campaign</a>
|
||||
{% if 'email_sms' in enabled_features %}
|
||||
<a class="btn btn-primary btn-sm" href="{% url 'email_sms:campaign_list' %}">New campaign</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -219,3 +219,19 @@ class PortalCreateMatchPromptTests(TestCase):
|
||||
self.existing.refresh_from_db()
|
||||
self.assertEqual(self.existing.first_name, "Alexander")
|
||||
self.assertIn("alt@example.com", self.existing.notes)
|
||||
|
||||
|
||||
class ContactListTests(TestCase):
|
||||
def setUp(self):
|
||||
User = get_user_model()
|
||||
self.user = User.objects.create_user(
|
||||
username="lister", password="test-pass-123"
|
||||
)
|
||||
self.client = Client()
|
||||
self.client.login(username="lister", password="test-pass-123")
|
||||
|
||||
def test_list_renders_and_links_campaigns(self):
|
||||
response = self.client.get(reverse("contacts:list"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "Mailing list")
|
||||
self.assertContains(response, reverse("email_sms:campaign_list"))
|
||||
@@ -0,0 +1,27 @@
|
||||
# Generated by Django 6.1
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("core", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="storedfile",
|
||||
name="kind",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("campaign_image", "Campaign image"),
|
||||
("social_image", "Social image"),
|
||||
("social_video", "Social video"),
|
||||
("invoice_pdf", "Invoice PDF"),
|
||||
("product_image", "Product image"),
|
||||
],
|
||||
default="campaign_image",
|
||||
max_length=32,
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,28 @@
|
||||
# Generated by Django 6.1
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("core", "0002_storedfile_product_image"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="storedfile",
|
||||
name="kind",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("campaign_image", "Campaign image"),
|
||||
("social_image", "Social image"),
|
||||
("social_video", "Social video"),
|
||||
("invoice_pdf", "Invoice PDF"),
|
||||
("product_image", "Product image"),
|
||||
("product_stl", "Product STL"),
|
||||
],
|
||||
default="campaign_image",
|
||||
max_length=32,
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -29,6 +29,8 @@ class StoredFile(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
SOCIAL_IMAGE = "social_image", "Social image"
|
||||
SOCIAL_VIDEO = "social_video", "Social video"
|
||||
INVOICE_PDF = "invoice_pdf", "Invoice PDF"
|
||||
PRODUCT_IMAGE = "product_image", "Product image"
|
||||
PRODUCT_STL = "product_stl", "Product STL"
|
||||
|
||||
kind = models.CharField(
|
||||
max_length=32, choices=Kind.choices, default=Kind.CAMPAIGN_IMAGE
|
||||
|
||||
@@ -22,6 +22,7 @@ GROUP_ORDER = {
|
||||
"Outreach": 20,
|
||||
"Content": 30,
|
||||
"Social": 40,
|
||||
"Retail": 45,
|
||||
"Billing": 50,
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ from django.urls import reverse
|
||||
|
||||
|
||||
def _read_settings_source() -> str:
|
||||
return (Path(__file__).resolve().parent.parent / "client_site/settings/base.py").read_text()
|
||||
return (Path(__file__).resolve().parent.parent / "print_forge/settings/base.py").read_text()
|
||||
|
||||
|
||||
class FeatureFlagSettingsTests(SimpleTestCase):
|
||||
@@ -22,16 +22,30 @@ class FeatureFlagSettingsTests(SimpleTestCase):
|
||||
self.assertIn("FEATURE_PAYMENTS", src)
|
||||
self.assertIn("FEATURE_SOCIAL", src)
|
||||
self.assertIn("FEATURE_SOCIAL_AI", src)
|
||||
self.assertIn("FEATURE_SHOP", src)
|
||||
self.assertIn("FEATURE_POS_SYNC", src)
|
||||
self.assertIn("FEATURE_EVENTS", src)
|
||||
self.assertIn("FEATURE_SHIPPING", src)
|
||||
self.assertIn("email_sms.apps.EmailSmsConfig", src)
|
||||
self.assertIn("directmail.apps.DirectmailConfig", src)
|
||||
self.assertIn("blog.apps.BlogConfig", src)
|
||||
self.assertIn("payments.apps.PaymentsConfig", src)
|
||||
self.assertIn("social_ai.apps.SocialAiConfig", src)
|
||||
self.assertIn("shop.apps.ShopConfig", src)
|
||||
self.assertIn("pos_sync.apps.PosSyncConfig", src)
|
||||
self.assertIn("events.apps.EventsConfig", src)
|
||||
self.assertIn("shipping.apps.ShippingConfig", src)
|
||||
|
||||
def test_payments_requires_email_sms_in_source(self):
|
||||
src = _read_settings_source()
|
||||
self.assertIn("FEATURE_PAYMENTS requires FEATURE_EMAIL_SMS", src)
|
||||
self.assertIn("FEATURE_SOCIAL_AI requires FEATURE_SOCIAL", src)
|
||||
self.assertIn("FEATURE_SHOP requires FEATURE_EMAIL_SMS", src)
|
||||
self.assertIn("FEATURE_SHOP requires FEATURE_PAYMENTS", src)
|
||||
self.assertIn("FEATURE_POS_SYNC requires FEATURE_SHOP", src)
|
||||
self.assertIn("FEATURE_EVENTS requires FEATURE_EMAIL_SMS", src)
|
||||
self.assertIn("FEATURE_EVENTS requires FEATURE_PAYMENTS", src)
|
||||
self.assertIn("FEATURE_SHIPPING requires FEATURE_SHOP", src)
|
||||
|
||||
|
||||
class AlwaysOnImportIsolationTests(SimpleTestCase):
|
||||
@@ -44,6 +58,10 @@ class AlwaysOnImportIsolationTests(SimpleTestCase):
|
||||
"payments",
|
||||
"social",
|
||||
"social_ai",
|
||||
"shop",
|
||||
"pos_sync",
|
||||
"events",
|
||||
"shipping",
|
||||
}
|
||||
|
||||
ALWAYS_ON = [
|
||||
@@ -52,7 +70,7 @@ class AlwaysOnImportIsolationTests(SimpleTestCase):
|
||||
"core/management/commands/dispatch_due.py",
|
||||
"core/shortener.py",
|
||||
"core/campaign_utm.py",
|
||||
"client_site/urls.py",
|
||||
"print_forge/urls.py",
|
||||
]
|
||||
|
||||
def test_no_module_level_optional_imports(self):
|
||||
@@ -78,11 +96,22 @@ class AlwaysOnImportIsolationTests(SimpleTestCase):
|
||||
|
||||
|
||||
class InstalledOptionalAppsTests(TestCase):
|
||||
"""Dev defaults install optional apps so the template is a working seed."""
|
||||
"""Dev defaults install optional apps so the catalog seed still tests."""
|
||||
|
||||
def test_dev_installs_catalog_apps(self):
|
||||
labels = {c.label for c in apps.get_app_configs()}
|
||||
for label in ("email_sms", "directmail", "blog", "payments", "social", "social_ai"):
|
||||
for label in (
|
||||
"email_sms",
|
||||
"directmail",
|
||||
"blog",
|
||||
"payments",
|
||||
"social",
|
||||
"social_ai",
|
||||
"shop",
|
||||
"pos_sync",
|
||||
"events",
|
||||
"shipping",
|
||||
):
|
||||
self.assertIn(label, labels)
|
||||
|
||||
def test_optional_urls_resolve_when_installed(self):
|
||||
@@ -92,3 +121,9 @@ class InstalledOptionalAppsTests(TestCase):
|
||||
self.assertTrue(reverse("payments:invoice_list").startswith("/portal/payments/"))
|
||||
self.assertTrue(reverse("social:composer").startswith("/portal/social/"))
|
||||
self.assertTrue(reverse("social_ai:generate").startswith("/portal/social/api/generate/"))
|
||||
self.assertTrue(reverse("shop:list").startswith("/shop/"))
|
||||
self.assertTrue(reverse("shop_portal:product_list").startswith("/portal/shop/"))
|
||||
self.assertTrue(reverse("pos_sync:event_list").startswith("/portal/pos/"))
|
||||
self.assertTrue(reverse("events:list").startswith("/events/"))
|
||||
self.assertTrue(reverse("events_portal:event_list").startswith("/portal/events/"))
|
||||
self.assertTrue(reverse("shipping:shipment_list").startswith("/portal/shipping/"))
|
||||
@@ -27,6 +27,28 @@
|
||||
<div class="value">{{ open_invoices|default:0 }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if 'shop' in enabled_features %}
|
||||
<div class="stat-card">
|
||||
<div class="label">Open shop orders</div>
|
||||
<div class="value">{{ open_shop_orders|default:0 }}</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="label">Low stock</div>
|
||||
<div class="value">{{ low_stock_products|default:0 }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if 'events' in enabled_features %}
|
||||
<div class="stat-card">
|
||||
<div class="label">Upcoming events</div>
|
||||
<div class="value">{{ upcoming_events|default:0 }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if 'shipping' in enabled_features %}
|
||||
<div class="stat-card">
|
||||
<div class="label">Unshipped orders</div>
|
||||
<div class="value">{{ unshipped_orders|default:0 }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="split">
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from events.models import Event, Ticket, TicketOrder
|
||||
|
||||
|
||||
@admin.register(Event)
|
||||
class EventAdmin(admin.ModelAdmin):
|
||||
list_display = ("title", "starts_at", "capacity", "price", "is_published")
|
||||
list_filter = ("is_published",)
|
||||
search_fields = ("title", "venue")
|
||||
prepopulated_fields = {"slug": ("title",)}
|
||||
|
||||
|
||||
@admin.register(TicketOrder)
|
||||
class TicketOrderAdmin(admin.ModelAdmin):
|
||||
list_display = ("number", "event", "email", "quantity", "status")
|
||||
list_filter = ("status",)
|
||||
search_fields = ("number", "email")
|
||||
|
||||
|
||||
@admin.register(Ticket)
|
||||
class TicketAdmin(admin.ModelAdmin):
|
||||
list_display = ("code", "event", "order")
|
||||
search_fields = ("code",)
|
||||
@@ -0,0 +1,12 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class EventsConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "events"
|
||||
verbose_name = "Event ticketing"
|
||||
|
||||
def ready(self):
|
||||
from events import hooks
|
||||
|
||||
hooks.register()
|
||||
@@ -0,0 +1,33 @@
|
||||
from core.registry import (
|
||||
register_dashboard_collector,
|
||||
register_feature,
|
||||
register_portal_nav,
|
||||
register_public_nav,
|
||||
)
|
||||
|
||||
|
||||
def register() -> None:
|
||||
register_feature("events")
|
||||
register_public_nav(
|
||||
section="events", label="Events", url_name="events:list", order=35
|
||||
)
|
||||
register_portal_nav(
|
||||
section="events",
|
||||
label="Events",
|
||||
url_name="events_portal:event_list",
|
||||
group="Retail",
|
||||
order=30,
|
||||
)
|
||||
register_dashboard_collector(_dashboard)
|
||||
|
||||
|
||||
def _dashboard(request) -> dict:
|
||||
from django.utils import timezone
|
||||
|
||||
from events.models import Event
|
||||
|
||||
return {
|
||||
"upcoming_events": Event.objects.filter(
|
||||
is_published=True, starts_at__gte=timezone.now()
|
||||
).count()
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
# Generated by Django 6.1 on 2026-09-06 11:17
|
||||
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
from decimal import Decimal
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Event',
|
||||
fields=[
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('title', models.CharField(max_length=200)),
|
||||
('slug', models.SlugField(max_length=220, unique=True)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('starts_at', models.DateTimeField()),
|
||||
('venue', models.CharField(blank=True, max_length=200)),
|
||||
('capacity', models.PositiveIntegerField(default=0)),
|
||||
('price', models.DecimalField(decimal_places=2, default=Decimal('0'), max_digits=10)),
|
||||
('currency', models.CharField(default='usd', max_length=8)),
|
||||
('is_published', models.BooleanField(default=False)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['starts_at'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TicketOrder',
|
||||
fields=[
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('number', models.CharField(max_length=32, unique=True)),
|
||||
('email', models.EmailField(max_length=254)),
|
||||
('customer_name', models.CharField(blank=True, max_length=200)),
|
||||
('quantity', models.PositiveIntegerField(default=1)),
|
||||
('amount', models.DecimalField(decimal_places=2, max_digits=10)),
|
||||
('currency', models.CharField(default='usd', max_length=8)),
|
||||
('status', models.CharField(choices=[('draft', 'Draft'), ('open', 'Open'), ('paid', 'Paid'), ('cancelled', 'Cancelled')], default='draft', max_length=16)),
|
||||
('stripe_checkout_session_id', models.CharField(blank=True, max_length=255)),
|
||||
('hosted_checkout_url', models.URLField(blank=True)),
|
||||
('paid_at', models.DateTimeField(blank=True, null=True)),
|
||||
('event', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ticket_orders', to='events.event')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-created_at'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Ticket',
|
||||
fields=[
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('code', models.CharField(max_length=16, unique=True)),
|
||||
('attendee_name', models.CharField(blank=True, max_length=200)),
|
||||
('event', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='tickets', to='events.event')),
|
||||
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tickets', to='events.ticketorder')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['created_at'],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,111 @@
|
||||
from decimal import Decimal
|
||||
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from django.utils.text import slugify
|
||||
|
||||
from core.models import TimeStampedModel, UUIDPrimaryKeyModel
|
||||
|
||||
|
||||
class Event(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
title = models.CharField(max_length=200)
|
||||
slug = models.SlugField(max_length=220, unique=True)
|
||||
description = models.TextField(blank=True)
|
||||
starts_at = models.DateTimeField()
|
||||
venue = models.CharField(max_length=200, blank=True)
|
||||
capacity = models.PositiveIntegerField(default=0)
|
||||
price = models.DecimalField(max_digits=10, decimal_places=2, default=Decimal("0"))
|
||||
currency = models.CharField(max_length=8, default="usd")
|
||||
is_published = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
ordering = ["starts_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.title
|
||||
|
||||
def get_absolute_url(self) -> str:
|
||||
return reverse("events:detail", kwargs={"slug": self.slug})
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if not self.slug:
|
||||
base = slugify(self.title)[:200] or "event"
|
||||
slug = base
|
||||
n = 2
|
||||
while Event.objects.filter(slug=slug).exclude(pk=self.pk).exists():
|
||||
slug = f"{base}-{n}"
|
||||
n += 1
|
||||
self.slug = slug
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
def tickets_held(self, *, exclude_order_id=None) -> int:
|
||||
qs = self.ticket_orders.filter(
|
||||
status__in=[
|
||||
TicketOrder.Status.DRAFT,
|
||||
TicketOrder.Status.OPEN,
|
||||
TicketOrder.Status.PAID,
|
||||
]
|
||||
)
|
||||
if exclude_order_id:
|
||||
qs = qs.exclude(pk=exclude_order_id)
|
||||
return qs.aggregate(total=models.Sum("quantity"))["total"] or 0
|
||||
|
||||
@property
|
||||
def tickets_sold(self) -> int:
|
||||
return self.tickets_held()
|
||||
|
||||
@property
|
||||
def seats_remaining(self) -> int | None:
|
||||
if not self.capacity:
|
||||
return None
|
||||
return max(self.capacity - self.tickets_sold, 0)
|
||||
|
||||
@property
|
||||
def is_upcoming(self) -> bool:
|
||||
return self.starts_at >= timezone.now()
|
||||
|
||||
|
||||
class TicketOrder(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
class Status(models.TextChoices):
|
||||
DRAFT = "draft", "Draft"
|
||||
OPEN = "open", "Open"
|
||||
PAID = "paid", "Paid"
|
||||
CANCELLED = "cancelled", "Cancelled"
|
||||
|
||||
number = models.CharField(max_length=32, unique=True)
|
||||
event = models.ForeignKey(
|
||||
Event, on_delete=models.PROTECT, related_name="ticket_orders"
|
||||
)
|
||||
email = models.EmailField()
|
||||
customer_name = models.CharField(max_length=200, blank=True)
|
||||
quantity = models.PositiveIntegerField(default=1)
|
||||
amount = models.DecimalField(max_digits=10, decimal_places=2)
|
||||
currency = models.CharField(max_length=8, default="usd")
|
||||
status = models.CharField(
|
||||
max_length=16, choices=Status.choices, default=Status.DRAFT
|
||||
)
|
||||
stripe_checkout_session_id = models.CharField(max_length=255, blank=True)
|
||||
hosted_checkout_url = models.URLField(blank=True)
|
||||
paid_at = models.DateTimeField(null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"{self.number} · {self.event}"
|
||||
|
||||
|
||||
class Ticket(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
order = models.ForeignKey(
|
||||
TicketOrder, on_delete=models.CASCADE, related_name="tickets"
|
||||
)
|
||||
event = models.ForeignKey(Event, on_delete=models.PROTECT, related_name="tickets")
|
||||
code = models.CharField(max_length=16, unique=True)
|
||||
attendee_name = models.CharField(max_length=200, blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.code
|
||||
@@ -0,0 +1,13 @@
|
||||
from django.urls import path
|
||||
|
||||
from events import views
|
||||
|
||||
app_name = "events_portal"
|
||||
|
||||
urlpatterns = [
|
||||
path("", views.portal_event_list, name="event_list"),
|
||||
path("new/", views.portal_event_edit, name="event_new"),
|
||||
path("<uuid:pk>/", views.portal_event_detail, name="event_detail"),
|
||||
path("<uuid:pk>/edit/", views.portal_event_edit, name="event_edit"),
|
||||
path("webhooks/stripe/", views.stripe_webhook, name="stripe_webhook"),
|
||||
]
|
||||
@@ -0,0 +1,13 @@
|
||||
from django.urls import path
|
||||
|
||||
from events import views
|
||||
|
||||
app_name = "events"
|
||||
|
||||
urlpatterns = [
|
||||
path("", views.event_list, name="list"),
|
||||
path("order/<uuid:pk>/success/", views.checkout_success, name="checkout_success"),
|
||||
path("order/<uuid:pk>/cancel/", views.checkout_cancel, name="checkout_cancel"),
|
||||
path("<slug:slug>/", views.event_detail, name="detail"),
|
||||
path("<slug:slug>/buy/", views.buy_tickets, name="buy"),
|
||||
]
|
||||
@@ -0,0 +1,188 @@
|
||||
"""Event capacity, Stripe ticket checkout, and confirmation email."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
import secrets
|
||||
from datetime import date
|
||||
from decimal import Decimal
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import transaction
|
||||
from django.utils import timezone
|
||||
|
||||
from events.models import Event, Ticket, TicketOrder
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class EventsError(RuntimeError):
|
||||
pass
|
||||
|
||||
|
||||
def _stripe():
|
||||
secret = (settings.STRIPE_SECRET_KEY or "").strip()
|
||||
if not secret:
|
||||
raise EventsError("STRIPE_SECRET_KEY is not configured")
|
||||
try:
|
||||
import stripe
|
||||
except ImportError as exc:
|
||||
raise EventsError("stripe package is not installed") from exc
|
||||
stripe.api_key = secret
|
||||
return stripe
|
||||
|
||||
|
||||
def next_ticket_order_number() -> str:
|
||||
today = date.today().strftime("%Y%m%d")
|
||||
prefix = f"TIX-{today}-"
|
||||
existing = TicketOrder.objects.filter(number__startswith=prefix).count()
|
||||
return f"{prefix}{existing + 1:03d}"
|
||||
|
||||
|
||||
def new_ticket_code() -> str:
|
||||
while True:
|
||||
code = secrets.token_hex(4).upper()
|
||||
if not Ticket.objects.filter(code=code).exists():
|
||||
return code
|
||||
|
||||
|
||||
def assert_capacity(
|
||||
event: Event, quantity: int, *, exclude_order_id=None
|
||||
) -> None:
|
||||
if quantity < 1:
|
||||
raise EventsError("Quantity must be at least 1.")
|
||||
if not event.capacity:
|
||||
return
|
||||
held = event.tickets_held(exclude_order_id=exclude_order_id)
|
||||
remaining = max(event.capacity - held, 0)
|
||||
if quantity > remaining:
|
||||
raise EventsError(f"Only {remaining} seats left for {event.title}.")
|
||||
|
||||
|
||||
def create_ticket_order(
|
||||
event: Event, *, email: str, customer_name: str = "", quantity: int = 1
|
||||
) -> TicketOrder:
|
||||
email = (email or "").strip()
|
||||
if not email:
|
||||
raise EventsError("Email is required.")
|
||||
if not event.is_published:
|
||||
raise EventsError("This event is not on sale.")
|
||||
assert_capacity(event, quantity)
|
||||
amount = event.price * quantity
|
||||
return TicketOrder.objects.create(
|
||||
number=next_ticket_order_number(),
|
||||
event=event,
|
||||
email=email,
|
||||
customer_name=(customer_name or "").strip(),
|
||||
quantity=quantity,
|
||||
amount=amount,
|
||||
currency=(event.currency or settings.STRIPE_CURRENCY or "usd").lower(),
|
||||
status=TicketOrder.Status.DRAFT,
|
||||
)
|
||||
|
||||
|
||||
def create_checkout_session(
|
||||
order: TicketOrder, *, success_url: str, cancel_url: str
|
||||
) -> str:
|
||||
stripe = _stripe()
|
||||
session = stripe.checkout.Session.create(
|
||||
mode="payment",
|
||||
customer_email=order.email or None,
|
||||
line_items=[
|
||||
{
|
||||
"quantity": order.quantity,
|
||||
"price_data": {
|
||||
"currency": (order.currency or "usd").lower(),
|
||||
"unit_amount": int(
|
||||
(order.event.price * Decimal("100")).quantize(Decimal("1"))
|
||||
),
|
||||
"product_data": {"name": order.event.title},
|
||||
},
|
||||
}
|
||||
],
|
||||
metadata={
|
||||
"ticket_order_id": str(order.pk),
|
||||
"ticket_order_number": order.number,
|
||||
},
|
||||
success_url=success_url,
|
||||
cancel_url=cancel_url,
|
||||
)
|
||||
order.stripe_checkout_session_id = session.id
|
||||
order.hosted_checkout_url = session.url or ""
|
||||
order.status = TicketOrder.Status.OPEN
|
||||
order.save(
|
||||
update_fields=[
|
||||
"stripe_checkout_session_id",
|
||||
"hosted_checkout_url",
|
||||
"status",
|
||||
"updated_at",
|
||||
]
|
||||
)
|
||||
return session.url or ""
|
||||
|
||||
|
||||
def _issue_tickets(order: TicketOrder) -> list[Ticket]:
|
||||
created = []
|
||||
for _ in range(order.quantity):
|
||||
created.append(
|
||||
Ticket.objects.create(
|
||||
order=order,
|
||||
event=order.event,
|
||||
code=new_ticket_code(),
|
||||
attendee_name=order.customer_name,
|
||||
)
|
||||
)
|
||||
return created
|
||||
|
||||
|
||||
def mark_paid(order: TicketOrder, *, stripe_id: str = "") -> None:
|
||||
if order.status == TicketOrder.Status.PAID:
|
||||
return
|
||||
with transaction.atomic():
|
||||
locked = TicketOrder.objects.select_for_update().get(pk=order.pk)
|
||||
if locked.status == TicketOrder.Status.PAID:
|
||||
return
|
||||
assert_capacity(
|
||||
locked.event, locked.quantity, exclude_order_id=locked.pk
|
||||
)
|
||||
_issue_tickets(locked)
|
||||
locked.status = TicketOrder.Status.PAID
|
||||
locked.paid_at = timezone.now()
|
||||
locked.save(update_fields=["status", "paid_at", "updated_at"])
|
||||
order.refresh_from_db()
|
||||
try:
|
||||
send_ticket_email(order)
|
||||
except Exception:
|
||||
logger.exception("ticket email failed for %s", order.number)
|
||||
|
||||
|
||||
def send_ticket_email(order: TicketOrder) -> bool:
|
||||
to_email = (order.email or "").strip()
|
||||
if not to_email:
|
||||
raise EventsError("Order has no email address")
|
||||
from django.core.mail import EmailMultiAlternatives
|
||||
|
||||
codes = ", ".join(t.code for t in order.tickets.all())
|
||||
name = order.customer_name or "there"
|
||||
when = timezone.localtime(order.event.starts_at).strftime("%b %d, %Y %-I:%M %p")
|
||||
subject = f"Tickets for {order.event.title} — {settings.SITE_NAME}"
|
||||
text = (
|
||||
f"Hi {name},\n\n"
|
||||
f"Your tickets for {order.event.title} on {when}:\n"
|
||||
f"{codes}\n\nOrder {order.number}\n"
|
||||
)
|
||||
html = (
|
||||
f"<p>Hi {name},</p>"
|
||||
f"<p>Tickets for <strong>{order.event.title}</strong> on {when}:</p>"
|
||||
f"<p><strong>{codes}</strong></p>"
|
||||
f"<p>Order {order.number}</p>"
|
||||
)
|
||||
mail = EmailMultiAlternatives(
|
||||
subject=subject,
|
||||
body=text,
|
||||
from_email=settings.DEFAULT_FROM_EMAIL,
|
||||
to=[to_email],
|
||||
)
|
||||
mail.attach_alternative(html, "text/html")
|
||||
mail.send(fail_silently=False)
|
||||
return True
|
||||
@@ -0,0 +1,17 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Tickets · {{ event.title }}{% endblock %}
|
||||
{% block content %}
|
||||
<section class="section section-lg">
|
||||
<div class="container">
|
||||
<h1>Tickets · {{ event.title }}</h1>
|
||||
<p>{{ event.price }} {{ event.currency|upper }} each{% if event.seats_remaining is not None %} · {{ event.seats_remaining }} left{% endif %}</p>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<p><label>Email <input name="email" type="email" required></label></p>
|
||||
<p><label>Name <input name="customer_name"></label></p>
|
||||
<p><label>Quantity <input name="quantity" type="number" min="1" value="1"></label></p>
|
||||
<button class="button button-primary" type="submit">Pay with Stripe</button>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,8 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Checkout cancelled{% endblock %}
|
||||
{% block content %}
|
||||
<section class="section section-lg"><div class="container">
|
||||
<h1>Checkout cancelled</h1>
|
||||
<p>No charge for {{ order.event.title }}. <a href="{% url 'events:buy' order.event.slug %}">Try again</a>.</p>
|
||||
</div></section>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,18 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ event.title }} · {{ SITE_NAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<section class="section section-lg">
|
||||
<div class="container">
|
||||
<p><a href="{% url 'events:list' %}">← Events</a></p>
|
||||
<h1>{{ event.title }}</h1>
|
||||
<p class="muted">{{ event.starts_at|date:"F j, Y g:i A" }}{% if event.venue %} · {{ event.venue }}{% endif %}</p>
|
||||
<div>{{ event.description|linebreaks }}</div>
|
||||
<p>{{ event.price }} {{ event.currency|upper }}</p>
|
||||
{% if event.seats_remaining == 0 %}
|
||||
<p>Sold out.</p>
|
||||
{% else %}
|
||||
<p><a class="button button-primary" href="{% url 'events:buy' event.slug %}">Buy tickets</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,18 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Events · {{ SITE_NAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<section class="section section-lg">
|
||||
<div class="container">
|
||||
<h1 class="text-uppercase">Events</h1>
|
||||
{% for event in events %}
|
||||
<article style="margin:0 0 32px">
|
||||
<h2><a href="{{ event.get_absolute_url }}">{{ event.title }}</a></h2>
|
||||
<p class="muted">{{ event.starts_at|date:"F j, Y g:i A" }}{% if event.venue %} · {{ event.venue }}{% endif %}</p>
|
||||
<p>{{ event.price }} {{ event.currency|upper }}{% if event.seats_remaining is not None %} · {{ event.seats_remaining }} seats left{% endif %}</p>
|
||||
</article>
|
||||
{% empty %}
|
||||
<p>No upcoming events.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,23 @@
|
||||
{% extends "portal_base.html" %}
|
||||
{% block title %}{{ event.title }} · Portal{% endblock %}
|
||||
{% block topbar_title %}{{ event.title }}{% endblock %}
|
||||
{% block portal_content %}
|
||||
<p><a class="btn btn-ghost" href="{% url 'events_portal:event_edit' event.pk %}">Edit</a></p>
|
||||
<p>{{ event.starts_at }} · {{ event.tickets_sold }} / {{ event.capacity|default:"∞" }} seats · {{ event.price }} {{ event.currency|upper }}</p>
|
||||
<table class="table">
|
||||
<thead><tr><th>Order</th><th>Email</th><th>Qty</th><th>Status</th><th>Codes</th></tr></thead>
|
||||
<tbody>
|
||||
{% for order in orders %}
|
||||
<tr>
|
||||
<td>{{ order.number }}</td>
|
||||
<td>{{ order.email }}</td>
|
||||
<td>{{ order.quantity }}</td>
|
||||
<td>{{ order.get_status_display }}</td>
|
||||
<td>{% for ticket in order.tickets.all %}{{ ticket.code }}{% if not forloop.last %}, {% endif %}{% endfor %}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="5" class="empty-state">No ticket orders yet.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,17 @@
|
||||
{% extends "portal_base.html" %}
|
||||
{% block title %}{% if event %}Edit{% else %}New{% endif %} event · Portal{% endblock %}
|
||||
{% block topbar_title %}{% if event %}Edit event{% else %}New event{% endif %}{% endblock %}
|
||||
{% block portal_content %}
|
||||
<form method="post" class="form-grid">
|
||||
{% csrf_token %}
|
||||
<div class="field"><label>Title</label><input name="title" required value="{{ event.title|default:'' }}"></div>
|
||||
<div class="field"><label>Slug</label><input name="slug" value="{{ event.slug|default:'' }}" placeholder="auto from title"></div>
|
||||
<div class="field"><label>Starts</label><input name="starts_at" type="datetime-local" required value="{% if event %}{{ event.starts_at|date:'Y-m-d\\TH:i' }}{% endif %}"></div>
|
||||
<div class="field"><label>Venue</label><input name="venue" value="{{ event.venue|default:'' }}"></div>
|
||||
<div class="field"><label>Capacity</label><input name="capacity" type="number" min="0" value="{{ event.capacity|default:0 }}"></div>
|
||||
<div class="field"><label>Price</label><input name="price" type="number" step="0.01" min="0" required value="{{ event.price|default:'0' }}"></div>
|
||||
<div class="field"><label>Description</label><textarea name="description" style="min-height:120px">{{ event.description|default:'' }}</textarea></div>
|
||||
<label><input type="checkbox" name="is_published" {% if event.is_published %}checked{% endif %}> Published</label>
|
||||
<button class="btn btn-primary" type="submit">Save</button>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,21 @@
|
||||
{% extends "portal_base.html" %}
|
||||
{% block title %}Events · Portal{% endblock %}
|
||||
{% block topbar_title %}Events{% endblock %}
|
||||
{% block portal_content %}
|
||||
<p><a class="btn btn-primary" href="{% url 'events_portal:event_new' %}">New event</a></p>
|
||||
<table class="table">
|
||||
<thead><tr><th>Title</th><th>When</th><th>Capacity</th><th>Status</th></tr></thead>
|
||||
<tbody>
|
||||
{% for event in events %}
|
||||
<tr>
|
||||
<td><a href="{% url 'events_portal:event_detail' event.pk %}">{{ event.title }}</a></td>
|
||||
<td>{{ event.starts_at }}</td>
|
||||
<td>{{ event.tickets_sold }} / {{ event.capacity|default:"∞" }}</td>
|
||||
<td>{% if event.is_published %}Published{% else %}Draft{% endif %}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="4" class="empty-state">No events yet.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,9 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Tickets {{ order.number }}{% endblock %}
|
||||
{% block content %}
|
||||
<section class="section section-lg"><div class="container">
|
||||
<h1>You're in</h1>
|
||||
<p>Order {{ order.number }} for {{ order.event.title }} is {{ order.get_status_display|lower }}.</p>
|
||||
<p>Ticket codes will be emailed to {{ order.email }}.</p>
|
||||
</div></section>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,95 @@
|
||||
from decimal import Decimal
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core import mail
|
||||
from django.test import Client, TestCase
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from events.models import Event, Ticket, TicketOrder
|
||||
from events.services import EventsError, create_ticket_order, mark_paid
|
||||
|
||||
|
||||
def _event(**kwargs):
|
||||
defaults = dict(
|
||||
title="Friday Night Prerelease",
|
||||
starts_at=timezone.now() + timezone.timedelta(days=7),
|
||||
venue="Main shop",
|
||||
capacity=8,
|
||||
price=Decimal("25.00"),
|
||||
is_published=True,
|
||||
)
|
||||
defaults.update(kwargs)
|
||||
return Event.objects.create(**defaults)
|
||||
|
||||
|
||||
class EventPublicTests(TestCase):
|
||||
def test_list_hides_drafts_and_past(self):
|
||||
_event(title="Live prerelease")
|
||||
_event(title="Draft night", is_published=False)
|
||||
_event(
|
||||
title="Last week",
|
||||
starts_at=timezone.now() - timezone.timedelta(days=2),
|
||||
)
|
||||
response = Client().get(reverse("events:list"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "Live prerelease")
|
||||
self.assertNotContains(response, "Draft night")
|
||||
self.assertNotContains(response, "Last week")
|
||||
|
||||
def test_buy_form_renders(self):
|
||||
event = _event()
|
||||
response = Client().get(reverse("events:buy", kwargs={"slug": event.slug}))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "Pay with Stripe")
|
||||
|
||||
|
||||
class EventCapacityTests(TestCase):
|
||||
def test_capacity_blocks_overbook(self):
|
||||
event = _event(capacity=2)
|
||||
create_ticket_order(event, email="a@example.com", quantity=2)
|
||||
with self.assertRaises(EventsError):
|
||||
create_ticket_order(event, email="b@example.com", quantity=1)
|
||||
|
||||
def test_mark_paid_issues_tickets_and_email(self):
|
||||
event = _event(capacity=4)
|
||||
order = create_ticket_order(
|
||||
event, email="fan@example.com", customer_name="Lee", quantity=2
|
||||
)
|
||||
mark_paid(order)
|
||||
order.refresh_from_db()
|
||||
self.assertEqual(order.status, TicketOrder.Status.PAID)
|
||||
self.assertEqual(Ticket.objects.filter(order=order).count(), 2)
|
||||
self.assertEqual(event.tickets_sold, 2)
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
self.assertIn(event.title, mail.outbox[0].subject)
|
||||
|
||||
|
||||
class EventPortalTests(TestCase):
|
||||
def setUp(self):
|
||||
User = get_user_model()
|
||||
self.user = User.objects.create_user("host", password="test-pass-123")
|
||||
self.client = Client()
|
||||
self.client.login(username="host", password="test-pass-123")
|
||||
|
||||
def test_list_requires_login(self):
|
||||
self.assertEqual(Client().get(reverse("events_portal:event_list")).status_code, 302)
|
||||
|
||||
def test_create_published_event(self):
|
||||
starts = (timezone.now() + timezone.timedelta(days=3)).strftime("%Y-%m-%dT%H:%M")
|
||||
response = self.client.post(
|
||||
reverse("events_portal:event_new"),
|
||||
{
|
||||
"title": "Commander night",
|
||||
"starts_at": starts,
|
||||
"venue": "Back room",
|
||||
"capacity": "16",
|
||||
"price": "10.00",
|
||||
"is_published": "on",
|
||||
},
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
event = Event.objects.get()
|
||||
self.assertEqual(event.slug, "commander-night")
|
||||
self.assertTrue(event.is_published)
|
||||
self.assertEqual(event.capacity, 16)
|
||||
@@ -0,0 +1,194 @@
|
||||
import logging
|
||||
from decimal import Decimal, InvalidOperation
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpResponse, HttpResponseBadRequest
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from datetime import datetime
|
||||
from django.utils.text import slugify
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.views.decorators.http import require_http_methods
|
||||
|
||||
from events.models import Event, TicketOrder
|
||||
from events.services import (
|
||||
EventsError,
|
||||
create_checkout_session,
|
||||
create_ticket_order,
|
||||
mark_paid,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _site_base(request) -> str:
|
||||
base = (settings.PUBLIC_SITE_URL or "").rstrip("/")
|
||||
if base:
|
||||
return base
|
||||
return request.build_absolute_uri("/").rstrip("/")
|
||||
|
||||
|
||||
def event_list(request):
|
||||
events = Event.objects.filter(is_published=True, starts_at__gte=timezone.now())
|
||||
return render(request, "events/list.html", {"events": events})
|
||||
|
||||
|
||||
def event_detail(request, slug):
|
||||
event = get_object_or_404(Event, slug=slug, is_published=True)
|
||||
return render(request, "events/detail.html", {"event": event})
|
||||
|
||||
|
||||
@require_http_methods(["GET", "POST"])
|
||||
def buy_tickets(request, slug):
|
||||
event = get_object_or_404(Event, slug=slug, is_published=True)
|
||||
if request.method == "POST":
|
||||
email = (request.POST.get("email") or "").strip()
|
||||
name = (request.POST.get("customer_name") or "").strip()
|
||||
try:
|
||||
quantity = int(request.POST.get("quantity") or "1")
|
||||
except ValueError:
|
||||
quantity = 0
|
||||
try:
|
||||
order = create_ticket_order(
|
||||
event, email=email, customer_name=name, quantity=quantity
|
||||
)
|
||||
base = _site_base(request)
|
||||
success = base + reverse(
|
||||
"events:checkout_success", kwargs={"pk": order.pk}
|
||||
)
|
||||
cancel = base + reverse("events:checkout_cancel", kwargs={"pk": order.pk})
|
||||
url = create_checkout_session(
|
||||
order,
|
||||
success_url=success + "?session_id={CHECKOUT_SESSION_ID}",
|
||||
cancel_url=cancel,
|
||||
)
|
||||
except EventsError as exc:
|
||||
messages.error(request, str(exc))
|
||||
except Exception as exc: # noqa: BLE001
|
||||
logger.exception("ticket checkout failed")
|
||||
messages.error(request, f"Could not start checkout: {exc}")
|
||||
else:
|
||||
return redirect(url)
|
||||
return render(request, "events/buy.html", {"event": event})
|
||||
|
||||
|
||||
def checkout_success(request, pk):
|
||||
order = get_object_or_404(TicketOrder.objects.select_related("event"), pk=pk)
|
||||
return render(request, "events/success.html", {"order": order})
|
||||
|
||||
|
||||
def checkout_cancel(request, pk):
|
||||
order = get_object_or_404(TicketOrder.objects.select_related("event"), pk=pk)
|
||||
return render(request, "events/cancel.html", {"order": order})
|
||||
|
||||
|
||||
@login_required
|
||||
def portal_event_list(request):
|
||||
events = Event.objects.all().order_by("-starts_at")
|
||||
return render(request, "events/portal/list.html", {"events": events})
|
||||
|
||||
|
||||
@login_required
|
||||
@require_http_methods(["GET", "POST"])
|
||||
def portal_event_edit(request, pk=None):
|
||||
event = get_object_or_404(Event, pk=pk) if pk else None
|
||||
if request.method == "POST":
|
||||
title = (request.POST.get("title") or "").strip()
|
||||
description = (request.POST.get("description") or "").strip()
|
||||
venue = (request.POST.get("venue") or "").strip()
|
||||
slug = (request.POST.get("slug") or "").strip()
|
||||
starts_raw = (request.POST.get("starts_at") or "").strip()
|
||||
errors = []
|
||||
if not title:
|
||||
errors.append("Title is required.")
|
||||
starts_at = None
|
||||
if starts_raw:
|
||||
try:
|
||||
starts_at = datetime.fromisoformat(starts_raw)
|
||||
except ValueError:
|
||||
starts_at = None
|
||||
if starts_at is None:
|
||||
errors.append("Start date/time is required.")
|
||||
elif timezone.is_naive(starts_at):
|
||||
starts_at = timezone.make_aware(starts_at, timezone.get_current_timezone())
|
||||
try:
|
||||
capacity = int(request.POST.get("capacity") or "0")
|
||||
except ValueError:
|
||||
capacity = 0
|
||||
errors.append("Capacity must be a number.")
|
||||
try:
|
||||
price = Decimal(request.POST.get("price") or "0")
|
||||
if price < 0:
|
||||
raise InvalidOperation
|
||||
except Exception:
|
||||
price = None
|
||||
errors.append("Enter a valid price.")
|
||||
if errors:
|
||||
for err in errors:
|
||||
messages.error(request, err)
|
||||
else:
|
||||
if event is None:
|
||||
event = Event()
|
||||
event.title = title
|
||||
event.description = description
|
||||
event.venue = venue
|
||||
event.slug = slugify(slug)[:220] if slug else ""
|
||||
event.starts_at = starts_at
|
||||
event.capacity = max(capacity, 0)
|
||||
event.price = price
|
||||
event.currency = (settings.STRIPE_CURRENCY or "usd").lower()
|
||||
event.is_published = request.POST.get("is_published") == "on"
|
||||
event.save()
|
||||
messages.success(request, f"Saved {event.title}.")
|
||||
return redirect("events_portal:event_list")
|
||||
return render(request, "events/portal/edit.html", {"event": event})
|
||||
|
||||
|
||||
@login_required
|
||||
def portal_event_detail(request, pk):
|
||||
event = get_object_or_404(Event, pk=pk)
|
||||
orders = event.ticket_orders.select_related().prefetch_related("tickets")
|
||||
return render(
|
||||
request,
|
||||
"events/portal/detail.html",
|
||||
{"event": event, "orders": orders},
|
||||
)
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
@require_http_methods(["POST"])
|
||||
def stripe_webhook(request):
|
||||
secret = (settings.STRIPE_WEBHOOK_SECRET or "").strip()
|
||||
if not secret:
|
||||
logger.error("STRIPE_WEBHOOK_SECRET unset")
|
||||
return HttpResponseBadRequest("webhook not configured")
|
||||
try:
|
||||
import stripe
|
||||
except ImportError:
|
||||
return HttpResponseBadRequest("stripe not installed")
|
||||
sig = request.headers.get("Stripe-Signature", "")
|
||||
try:
|
||||
event = stripe.Webhook.construct_event(request.body, sig, secret)
|
||||
except Exception:
|
||||
logger.exception("events stripe webhook signature failed")
|
||||
return HttpResponseBadRequest("invalid signature")
|
||||
|
||||
obj = event.get("data", {}).get("object", {}) or {}
|
||||
if event.get("type") != "checkout.session.completed":
|
||||
return HttpResponse("ok")
|
||||
order_id = (obj.get("metadata") or {}).get("ticket_order_id") or ""
|
||||
order = None
|
||||
if order_id:
|
||||
order = TicketOrder.objects.filter(pk=order_id).first()
|
||||
if order is None:
|
||||
session_id = obj.get("id") or ""
|
||||
order = TicketOrder.objects.filter(
|
||||
stripe_checkout_session_id=session_id
|
||||
).first()
|
||||
if order and order.status != TicketOrder.Status.PAID:
|
||||
mark_paid(order, stripe_id=obj.get("id") or "")
|
||||
logger.info("ticket order %s marked paid", order.number)
|
||||
return HttpResponse("ok")
|
||||
@@ -7,7 +7,7 @@ import sys
|
||||
|
||||
def main() -> None:
|
||||
"""Run administrative tasks."""
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "client_site.settings")
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "print_forge.settings")
|
||||
try:
|
||||
from django.core.management import execute_from_command_line
|
||||
except ImportError as exc:
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from pos_sync.models import POSConnection, SyncEvent
|
||||
|
||||
|
||||
@admin.register(POSConnection)
|
||||
class POSConnectionAdmin(admin.ModelAdmin):
|
||||
list_display = ("name", "provider", "is_active")
|
||||
list_filter = ("provider", "is_active")
|
||||
|
||||
|
||||
@admin.register(SyncEvent)
|
||||
class SyncEventAdmin(admin.ModelAdmin):
|
||||
list_display = ("direction", "sku", "quantity", "status", "created_at")
|
||||
list_filter = ("direction", "status")
|
||||
search_fields = ("sku", "external_id")
|
||||
@@ -0,0 +1,12 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class PosSyncConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "pos_sync"
|
||||
verbose_name = "POS API sync"
|
||||
|
||||
def ready(self):
|
||||
from pos_sync import hooks
|
||||
|
||||
hooks.register()
|
||||
@@ -0,0 +1,35 @@
|
||||
from core.registry import (
|
||||
register_dashboard_collector,
|
||||
register_dispatcher,
|
||||
register_feature,
|
||||
register_portal_nav,
|
||||
)
|
||||
|
||||
|
||||
def register() -> None:
|
||||
register_feature("pos_sync")
|
||||
register_portal_nav(
|
||||
section="pos_sync",
|
||||
label="POS sync",
|
||||
url_name="pos_sync:event_list",
|
||||
group="Retail",
|
||||
order=40,
|
||||
)
|
||||
register_dashboard_collector(_dashboard)
|
||||
register_dispatcher(_dispatch)
|
||||
|
||||
|
||||
def _dashboard(request) -> dict:
|
||||
from pos_sync.models import SyncEvent
|
||||
|
||||
return {
|
||||
"pos_failed_syncs": SyncEvent.objects.filter(
|
||||
status=SyncEvent.Status.FAILED
|
||||
).count()
|
||||
}
|
||||
|
||||
|
||||
def _dispatch() -> int:
|
||||
from pos_sync.services import dispatch_pending_outbound
|
||||
|
||||
return dispatch_pending_outbound()
|
||||
@@ -0,0 +1,52 @@
|
||||
# Generated by Django 6.1 on 2026-09-06 11:17
|
||||
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='POSConnection',
|
||||
fields=[
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('name', models.CharField(max_length=120)),
|
||||
('provider', models.CharField(choices=[('generic', 'Generic REST'), ('square', 'Square'), ('lightspeed', 'Lightspeed'), ('binderpos', 'BinderPOS'), ('crystalcommerce', 'CrystalCommerce')], default='generic', max_length=32)),
|
||||
('api_base_url', models.URLField(blank=True)),
|
||||
('api_token', models.CharField(blank=True, max_length=255)),
|
||||
('webhook_secret', models.CharField(blank=True, max_length=255)),
|
||||
('is_active', models.BooleanField(default=True)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['name'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SyncEvent',
|
||||
fields=[
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('direction', models.CharField(choices=[('inbound', 'POS → site'), ('outbound', 'Site → POS')], max_length=16)),
|
||||
('status', models.CharField(choices=[('pending', 'Pending'), ('done', 'Done'), ('failed', 'Failed')], default='pending', max_length=16)),
|
||||
('sku', models.CharField(max_length=64)),
|
||||
('quantity', models.IntegerField(default=0)),
|
||||
('external_id', models.CharField(blank=True, max_length=255)),
|
||||
('payload', models.JSONField(blank=True, default=dict)),
|
||||
('error', models.TextField(blank=True)),
|
||||
('connection', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='events', to='pos_sync.posconnection')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-created_at'],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,61 @@
|
||||
from django.db import models
|
||||
|
||||
from core.models import TimeStampedModel, UUIDPrimaryKeyModel
|
||||
|
||||
|
||||
class POSConnection(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
class Provider(models.TextChoices):
|
||||
GENERIC = "generic", "Generic REST"
|
||||
SQUARE = "square", "Square"
|
||||
LIGHTSPEED = "lightspeed", "Lightspeed"
|
||||
BINDERPOS = "binderpos", "BinderPOS"
|
||||
CRYSTALCOMMERCE = "crystalcommerce", "CrystalCommerce"
|
||||
|
||||
name = models.CharField(max_length=120)
|
||||
provider = models.CharField(
|
||||
max_length=32, choices=Provider.choices, default=Provider.GENERIC
|
||||
)
|
||||
api_base_url = models.URLField(blank=True)
|
||||
api_token = models.CharField(max_length=255, blank=True)
|
||||
webhook_secret = models.CharField(max_length=255, blank=True)
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["name"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.name
|
||||
|
||||
|
||||
class SyncEvent(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
class Direction(models.TextChoices):
|
||||
INBOUND = "inbound", "POS → site"
|
||||
OUTBOUND = "outbound", "Site → POS"
|
||||
|
||||
class Status(models.TextChoices):
|
||||
PENDING = "pending", "Pending"
|
||||
DONE = "done", "Done"
|
||||
FAILED = "failed", "Failed"
|
||||
|
||||
connection = models.ForeignKey(
|
||||
POSConnection,
|
||||
null=True,
|
||||
blank=True,
|
||||
on_delete=models.SET_NULL,
|
||||
related_name="events",
|
||||
)
|
||||
direction = models.CharField(max_length=16, choices=Direction.choices)
|
||||
status = models.CharField(
|
||||
max_length=16, choices=Status.choices, default=Status.PENDING
|
||||
)
|
||||
sku = models.CharField(max_length=64)
|
||||
quantity = models.IntegerField(default=0)
|
||||
external_id = models.CharField(max_length=255, blank=True)
|
||||
payload = models.JSONField(default=dict, blank=True)
|
||||
error = models.TextField(blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"{self.direction} {self.sku} × {self.quantity} · {self.status}"
|
||||
@@ -0,0 +1,131 @@
|
||||
"""POS inventory sync. Inbound webhooks decrement shop stock; outbound queues reserve POS."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
|
||||
import requests
|
||||
from django.conf import settings
|
||||
from django.db import transaction
|
||||
|
||||
from pos_sync.models import POSConnection, SyncEvent
|
||||
from shop.models import Product
|
||||
from shop.services import ShopError, adjust_stock
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class POSSyncError(RuntimeError):
|
||||
pass
|
||||
|
||||
|
||||
def active_connection() -> POSConnection | None:
|
||||
return POSConnection.objects.filter(is_active=True).order_by("created_at").first()
|
||||
|
||||
|
||||
def apply_inbound_sale(
|
||||
*,
|
||||
sku: str,
|
||||
quantity: int,
|
||||
external_id: str = "",
|
||||
payload: dict | None = None,
|
||||
connection: POSConnection | None = None,
|
||||
) -> SyncEvent:
|
||||
sku = (sku or "").strip()
|
||||
if not sku:
|
||||
raise POSSyncError("SKU is required.")
|
||||
if quantity < 1:
|
||||
raise POSSyncError("Quantity must be at least 1.")
|
||||
product = Product.objects.filter(sku__iexact=sku).first()
|
||||
if product is None:
|
||||
raise POSSyncError(f"Unknown SKU {sku}.")
|
||||
event = SyncEvent.objects.create(
|
||||
connection=connection or active_connection(),
|
||||
direction=SyncEvent.Direction.INBOUND,
|
||||
status=SyncEvent.Status.PENDING,
|
||||
sku=product.sku,
|
||||
quantity=quantity,
|
||||
external_id=external_id,
|
||||
payload=payload or {},
|
||||
)
|
||||
try:
|
||||
with transaction.atomic():
|
||||
locked = Product.objects.select_for_update().get(pk=product.pk)
|
||||
if locked.track_inventory and locked.fulfillment == Product.Fulfillment.STOCKED:
|
||||
adjust_stock(locked, -quantity)
|
||||
event.status = SyncEvent.Status.DONE
|
||||
event.save(update_fields=["status", "updated_at"])
|
||||
except ShopError as exc:
|
||||
event.status = SyncEvent.Status.FAILED
|
||||
event.error = str(exc)
|
||||
event.save(update_fields=["status", "error", "updated_at"])
|
||||
raise POSSyncError(str(exc)) from exc
|
||||
return event
|
||||
|
||||
|
||||
def enqueue_online_sale(order) -> list[SyncEvent]:
|
||||
"""Queue outbound POS reserves after an online shop sale."""
|
||||
events = []
|
||||
connection = active_connection()
|
||||
for item in order.items.all():
|
||||
sku = item.sku
|
||||
if not sku:
|
||||
continue
|
||||
events.append(
|
||||
SyncEvent.objects.create(
|
||||
connection=connection,
|
||||
direction=SyncEvent.Direction.OUTBOUND,
|
||||
status=SyncEvent.Status.PENDING,
|
||||
sku=sku,
|
||||
quantity=item.quantity,
|
||||
external_id=order.number,
|
||||
payload={"order_id": str(order.pk), "order_number": order.number},
|
||||
)
|
||||
)
|
||||
return events
|
||||
|
||||
|
||||
def _post_reserve(connection: POSConnection, event: SyncEvent) -> None:
|
||||
base = (connection.api_base_url or settings.POS_API_BASE_URL or "").rstrip("/")
|
||||
token = connection.api_token or (settings.POS_API_TOKEN or "")
|
||||
if not base:
|
||||
raise POSSyncError("POS API base URL is not configured.")
|
||||
headers = {"Content-Type": "application/json"}
|
||||
if token:
|
||||
headers["Authorization"] = f"Bearer {token}"
|
||||
response = requests.post(
|
||||
f"{base}/inventory/reserve",
|
||||
json={
|
||||
"sku": event.sku,
|
||||
"quantity": event.quantity,
|
||||
"external_id": event.external_id,
|
||||
"source": "online",
|
||||
},
|
||||
headers=headers,
|
||||
timeout=15,
|
||||
)
|
||||
response.raise_for_status()
|
||||
|
||||
|
||||
def dispatch_pending_outbound() -> int:
|
||||
sent = 0
|
||||
for event in SyncEvent.objects.filter(
|
||||
direction=SyncEvent.Direction.OUTBOUND,
|
||||
status=SyncEvent.Status.PENDING,
|
||||
)[:50]:
|
||||
connection = event.connection or active_connection()
|
||||
try:
|
||||
if connection is None:
|
||||
raise POSSyncError("No active POS connection.")
|
||||
_post_reserve(connection, event)
|
||||
except Exception as exc: # noqa: BLE001
|
||||
logger.exception("POS outbound failed for %s", event.sku)
|
||||
event.status = SyncEvent.Status.FAILED
|
||||
event.error = str(exc)
|
||||
event.save(update_fields=["status", "error", "updated_at"])
|
||||
else:
|
||||
event.status = SyncEvent.Status.DONE
|
||||
event.error = ""
|
||||
event.save(update_fields=["status", "error", "updated_at"])
|
||||
sent += 1
|
||||
return sent
|
||||
@@ -0,0 +1,22 @@
|
||||
{% extends "portal_base.html" %}
|
||||
{% block title %}POS sync · Portal{% endblock %}
|
||||
{% block topbar_title %}POS sync{% endblock %}
|
||||
{% block portal_content %}
|
||||
<p class="muted">Inbound POS sales decrement shop stock. Online sales queue outbound reserves.</p>
|
||||
<table class="table">
|
||||
<thead><tr><th>When</th><th>Direction</th><th>SKU</th><th>Qty</th><th>Status</th></tr></thead>
|
||||
<tbody>
|
||||
{% for event in events %}
|
||||
<tr>
|
||||
<td>{{ event.created_at }}</td>
|
||||
<td>{{ event.get_direction_display }}</td>
|
||||
<td>{{ event.sku }}</td>
|
||||
<td>{{ event.quantity }}</td>
|
||||
<td>{{ event.get_status_display }}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="5" class="empty-state">No sync events yet.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,115 @@
|
||||
from decimal import Decimal
|
||||
from unittest.mock import patch
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.test import Client, TestCase, override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
from pos_sync.models import POSConnection, SyncEvent
|
||||
from pos_sync.services import apply_inbound_sale, dispatch_pending_outbound, enqueue_online_sale
|
||||
from shop.models import Product
|
||||
from shop.services import add_to_cart, create_order_from_cart, mark_paid
|
||||
|
||||
|
||||
class POSInboundTests(TestCase):
|
||||
def setUp(self):
|
||||
self.product = Product.objects.create(
|
||||
name="Booster pack",
|
||||
sku="TCG-PACK",
|
||||
price=Decimal("4.99"),
|
||||
stock_qty=10,
|
||||
is_published=True,
|
||||
)
|
||||
|
||||
def test_inbound_sale_decrements_stock(self):
|
||||
event = apply_inbound_sale(sku="tcg-pack", quantity=3, external_id="pos-1")
|
||||
self.product.refresh_from_db()
|
||||
self.assertEqual(self.product.stock_qty, 7)
|
||||
self.assertEqual(event.status, SyncEvent.Status.DONE)
|
||||
|
||||
@override_settings(POS_WEBHOOK_SECRET="pos-secret")
|
||||
def test_webhook_requires_secret_and_updates_stock(self):
|
||||
url = reverse("pos_sync:inventory_webhook")
|
||||
anon = Client().post(
|
||||
url,
|
||||
data='{"sku":"TCG-PACK","quantity":1}',
|
||||
content_type="application/json",
|
||||
)
|
||||
self.assertEqual(anon.status_code, 401)
|
||||
ok = Client().post(
|
||||
url,
|
||||
data='{"sku":"TCG-PACK","quantity":2,"external_id":"reg-9"}',
|
||||
content_type="application/json",
|
||||
HTTP_AUTHORIZATION="Bearer pos-secret",
|
||||
)
|
||||
self.assertEqual(ok.status_code, 200)
|
||||
self.product.refresh_from_db()
|
||||
self.assertEqual(self.product.stock_qty, 8)
|
||||
|
||||
|
||||
class POSOutboundTests(TestCase):
|
||||
def setUp(self):
|
||||
self.product = Product.objects.create(
|
||||
name="Figure",
|
||||
sku="FIG-1",
|
||||
price=Decimal("12.00"),
|
||||
stock_qty=5,
|
||||
is_published=True,
|
||||
)
|
||||
self.connection = POSConnection.objects.create(
|
||||
name="Counter",
|
||||
api_base_url="https://pos.example.com",
|
||||
api_token="tok",
|
||||
is_active=True,
|
||||
)
|
||||
|
||||
def test_paid_order_enqueues_outbound(self):
|
||||
session = self.client.session
|
||||
add_to_cart(session, self.product, 1)
|
||||
session.save()
|
||||
order = create_order_from_cart(self.client.session, email="a@example.com")
|
||||
mark_paid(order)
|
||||
event = SyncEvent.objects.get(direction=SyncEvent.Direction.OUTBOUND)
|
||||
self.assertEqual(event.sku, "FIG-1")
|
||||
self.assertEqual(event.status, SyncEvent.Status.PENDING)
|
||||
|
||||
def test_dispatch_posts_reserve(self):
|
||||
enqueue_online_sale(
|
||||
type(
|
||||
"O",
|
||||
(),
|
||||
{
|
||||
"number": "ORD-1",
|
||||
"pk": "x",
|
||||
"items": type(
|
||||
"M",
|
||||
(),
|
||||
{
|
||||
"all": lambda self: [
|
||||
type("I", (), {"sku": "FIG-1", "quantity": 1})()
|
||||
]
|
||||
},
|
||||
)(),
|
||||
},
|
||||
)()
|
||||
)
|
||||
with patch("pos_sync.services.requests.post") as post:
|
||||
post.return_value.raise_for_status = lambda: None
|
||||
sent = dispatch_pending_outbound()
|
||||
self.assertEqual(sent, 1)
|
||||
post.assert_called_once()
|
||||
self.assertIn("/inventory/reserve", post.call_args.args[0])
|
||||
event = SyncEvent.objects.get()
|
||||
self.assertEqual(event.status, SyncEvent.Status.DONE)
|
||||
|
||||
|
||||
class POSPortalTests(TestCase):
|
||||
def test_list_requires_login(self):
|
||||
self.assertEqual(Client().get(reverse("pos_sync:event_list")).status_code, 302)
|
||||
|
||||
def test_list_ok_when_logged_in(self):
|
||||
User = get_user_model()
|
||||
User.objects.create_user("clerk", password="test-pass-123")
|
||||
client = Client()
|
||||
client.login(username="clerk", password="test-pass-123")
|
||||
self.assertEqual(client.get(reverse("pos_sync:event_list")).status_code, 200)
|
||||
@@ -0,0 +1,10 @@
|
||||
from django.urls import path
|
||||
|
||||
from pos_sync import views
|
||||
|
||||
app_name = "pos_sync"
|
||||
|
||||
urlpatterns = [
|
||||
path("", views.event_list, name="event_list"),
|
||||
path("webhooks/inventory/", views.inventory_webhook, name="inventory_webhook"),
|
||||
]
|
||||
@@ -0,0 +1,70 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpResponse, HttpResponseBadRequest, JsonResponse
|
||||
from django.shortcuts import render
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.views.decorators.http import require_http_methods
|
||||
|
||||
from pos_sync.models import POSConnection, SyncEvent
|
||||
from pos_sync.services import POSSyncError, apply_inbound_sale
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _authorized(request) -> bool:
|
||||
expected = (settings.POS_WEBHOOK_SECRET or "").strip()
|
||||
if not expected:
|
||||
conn = POSConnection.objects.filter(is_active=True).exclude(
|
||||
webhook_secret=""
|
||||
).first()
|
||||
expected = (conn.webhook_secret if conn else "").strip()
|
||||
if not expected:
|
||||
return False
|
||||
header = request.headers.get("Authorization", "")
|
||||
token = ""
|
||||
if header.startswith("Bearer "):
|
||||
token = header[7:].strip()
|
||||
token = token or request.GET.get("token") or ""
|
||||
return token == expected
|
||||
|
||||
|
||||
@login_required
|
||||
def event_list(request):
|
||||
events = SyncEvent.objects.select_related("connection")[:200]
|
||||
connections = POSConnection.objects.all()
|
||||
return render(
|
||||
request,
|
||||
"pos_sync/list.html",
|
||||
{"events": events, "connections": connections},
|
||||
)
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
@require_http_methods(["POST"])
|
||||
def inventory_webhook(request):
|
||||
if not _authorized(request):
|
||||
return HttpResponse("unauthorized", status=401)
|
||||
try:
|
||||
payload = json.loads(request.body.decode() or "{}")
|
||||
except json.JSONDecodeError:
|
||||
return HttpResponseBadRequest("invalid json")
|
||||
sku = payload.get("sku") or payload.get("SKU") or ""
|
||||
try:
|
||||
quantity = int(payload.get("quantity") or payload.get("qty") or 0)
|
||||
except (TypeError, ValueError):
|
||||
return HttpResponseBadRequest("invalid quantity")
|
||||
external_id = str(payload.get("external_id") or payload.get("id") or "")
|
||||
try:
|
||||
event = apply_inbound_sale(
|
||||
sku=sku,
|
||||
quantity=quantity,
|
||||
external_id=external_id,
|
||||
payload=payload,
|
||||
)
|
||||
except POSSyncError as exc:
|
||||
logger.warning("POS inbound rejected: %s", exc)
|
||||
return JsonResponse({"ok": False, "error": str(exc)}, status=400)
|
||||
return JsonResponse({"ok": True, "id": str(event.pk), "status": event.status})
|
||||
@@ -1,9 +1,9 @@
|
||||
"""ASGI config for client_site."""
|
||||
"""ASGI config for print_forge."""
|
||||
|
||||
import os
|
||||
|
||||
from django.core.asgi import get_asgi_application
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "client_site.settings")
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "print_forge.settings")
|
||||
|
||||
application = get_asgi_application()
|
||||
@@ -9,6 +9,28 @@ from urllib.parse import urlparse
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
||||
|
||||
|
||||
def _load_dotenv(path: Path) -> None:
|
||||
"""Load repo-root `.env` for local runserver. Does not override existing env."""
|
||||
if not path.is_file():
|
||||
return
|
||||
for raw in path.read_text().splitlines():
|
||||
line = raw.strip()
|
||||
if not line or line.startswith("#") or "=" not in line:
|
||||
continue
|
||||
key, _, value = line.partition("=")
|
||||
key = key.strip()
|
||||
if not key or key in os.environ:
|
||||
continue
|
||||
value = value.strip()
|
||||
if len(value) >= 2 and value[0] == value[-1] and value[0] in {"\"", "'"}:
|
||||
value = value[1:-1]
|
||||
os.environ[key] = value
|
||||
|
||||
|
||||
if "test" not in sys.argv:
|
||||
_load_dotenv(BASE_DIR.parent / ".env")
|
||||
|
||||
|
||||
def env(key: str, default: str | None = None) -> str | None:
|
||||
return os.environ.get(key, default)
|
||||
|
||||
@@ -54,8 +76,8 @@ def database_config() -> dict:
|
||||
return {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.postgresql",
|
||||
"NAME": env("DB_NAME", "client_site"),
|
||||
"USER": env("DB_USER", "client_site"),
|
||||
"NAME": env("DB_NAME", "print_forge"),
|
||||
"USER": env("DB_USER", "print_forge"),
|
||||
"PASSWORD": env("DB_PASSWORD", ""),
|
||||
"HOST": env("DB_HOST"),
|
||||
"PORT": env("DB_PORT", "5432"),
|
||||
@@ -115,11 +137,27 @@ FEATURE_BLOG = env_bool("FEATURE_BLOG", _feature_default)
|
||||
FEATURE_PAYMENTS = env_bool("FEATURE_PAYMENTS", _feature_default)
|
||||
FEATURE_SOCIAL = env_bool("FEATURE_SOCIAL", _feature_default)
|
||||
FEATURE_SOCIAL_AI = env_bool("FEATURE_SOCIAL_AI", _feature_default)
|
||||
FEATURE_SHOP = env_bool("FEATURE_SHOP", _feature_default)
|
||||
FEATURE_POS_SYNC = env_bool("FEATURE_POS_SYNC", _feature_default)
|
||||
FEATURE_EVENTS = env_bool("FEATURE_EVENTS", _feature_default)
|
||||
FEATURE_SHIPPING = env_bool("FEATURE_SHIPPING", _feature_default)
|
||||
|
||||
if FEATURE_PAYMENTS and not FEATURE_EMAIL_SMS:
|
||||
raise ImproperlyConfigured("FEATURE_PAYMENTS requires FEATURE_EMAIL_SMS")
|
||||
if FEATURE_SOCIAL_AI and not FEATURE_SOCIAL:
|
||||
raise ImproperlyConfigured("FEATURE_SOCIAL_AI requires FEATURE_SOCIAL")
|
||||
if FEATURE_SHOP and not FEATURE_EMAIL_SMS:
|
||||
raise ImproperlyConfigured("FEATURE_SHOP requires FEATURE_EMAIL_SMS")
|
||||
if FEATURE_SHOP and not FEATURE_PAYMENTS:
|
||||
raise ImproperlyConfigured("FEATURE_SHOP requires FEATURE_PAYMENTS")
|
||||
if FEATURE_POS_SYNC and not FEATURE_SHOP:
|
||||
raise ImproperlyConfigured("FEATURE_POS_SYNC requires FEATURE_SHOP")
|
||||
if FEATURE_EVENTS and not FEATURE_EMAIL_SMS:
|
||||
raise ImproperlyConfigured("FEATURE_EVENTS requires FEATURE_EMAIL_SMS")
|
||||
if FEATURE_EVENTS and not FEATURE_PAYMENTS:
|
||||
raise ImproperlyConfigured("FEATURE_EVENTS requires FEATURE_PAYMENTS")
|
||||
if FEATURE_SHIPPING and not FEATURE_SHOP:
|
||||
raise ImproperlyConfigured("FEATURE_SHIPPING requires FEATURE_SHOP")
|
||||
|
||||
CORE_APPS = [
|
||||
"core.apps.CoreConfig",
|
||||
@@ -137,6 +175,10 @@ OPTIONAL_APPS = [
|
||||
(FEATURE_PAYMENTS, "payments.apps.PaymentsConfig"),
|
||||
(FEATURE_SOCIAL, "social.apps.SocialConfig"),
|
||||
(FEATURE_SOCIAL_AI, "social_ai.apps.SocialAiConfig"),
|
||||
(FEATURE_SHOP, "shop.apps.ShopConfig"),
|
||||
(FEATURE_POS_SYNC, "pos_sync.apps.PosSyncConfig"),
|
||||
(FEATURE_EVENTS, "events.apps.EventsConfig"),
|
||||
(FEATURE_SHIPPING, "shipping.apps.ShippingConfig"),
|
||||
]
|
||||
DJANGO_APPS = [
|
||||
"django.contrib.admin",
|
||||
@@ -170,12 +212,12 @@ MIDDLEWARE = [
|
||||
"public.middleware.UnderConstructionMiddleware",
|
||||
]
|
||||
|
||||
ROOT_URLCONF = "client_site.urls"
|
||||
ROOT_URLCONF = "print_forge.urls"
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
"BACKEND": "django.template.backends.django.DjangoTemplates",
|
||||
"DIRS": [BASE_DIR / "client_site" / "templates"],
|
||||
"DIRS": [BASE_DIR / "print_forge" / "templates"],
|
||||
"APP_DIRS": True,
|
||||
"OPTIONS": {
|
||||
"context_processors": [
|
||||
@@ -185,13 +227,14 @@ TEMPLATES = [
|
||||
"django.contrib.messages.context_processors.messages",
|
||||
"public.context_processors.site_branding",
|
||||
"public.context_processors.tianji_tracking",
|
||||
"public.context_processors.shop_cart",
|
||||
"core.context_processors.feature_registry",
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
WSGI_APPLICATION = "client_site.wsgi.application"
|
||||
WSGI_APPLICATION = "print_forge.wsgi.application"
|
||||
|
||||
DATABASES = database_config()
|
||||
|
||||
@@ -218,7 +261,7 @@ USE_TZ = True
|
||||
STATIC_URL = "static/"
|
||||
STATIC_ROOT = BASE_DIR / "staticfiles"
|
||||
STATICFILES_DIRS = [
|
||||
BASE_DIR / "client_site" / "static",
|
||||
BASE_DIR / "print_forge" / "static",
|
||||
]
|
||||
# Uploaded blobs live in the DB (core.StoredFile). Default storage is
|
||||
# in-memory only so nothing is written to disk accidentally.
|
||||
@@ -230,6 +273,10 @@ STORAGES = {
|
||||
"BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage",
|
||||
},
|
||||
}
|
||||
# Keep product photos (15 MB) and STLs (25 MB) in RAM so Django never
|
||||
# spools them to /tmp. Larger social videos still use a request temp
|
||||
# file, then the bytes go into StoredFile.
|
||||
FILE_UPLOAD_MAX_MEMORY_SIZE = 26 * 1024 * 1024
|
||||
|
||||
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||
|
||||
@@ -244,13 +291,13 @@ LOGOUT_REDIRECT_URL = "accounts:login"
|
||||
SITE_UNDER_CONSTRUCTION = env_bool("SITE_UNDER_CONSTRUCTION", False)
|
||||
|
||||
# --- Branding / public site ---
|
||||
SITE_NAME = env("SITE_NAME", "Your Company")
|
||||
SITE_TAGLINE = env("SITE_TAGLINE", "A tagline for the public site")
|
||||
SITE_NAME = env("SITE_NAME", "Print Forge")
|
||||
SITE_TAGLINE = env("SITE_TAGLINE", "Handcrafted 3D printed toys")
|
||||
PUBLIC_SITE_URL = env("PUBLIC_SITE_URL", "")
|
||||
CONTACT_PHONE = env("CONTACT_PHONE", "")
|
||||
CONTACT_EMAIL = env("CONTACT_EMAIL", "hello@example.com")
|
||||
CONTACT_PHONE = env("CONTACT_PHONE", "630-632-0202")
|
||||
CONTACT_EMAIL = env("CONTACT_EMAIL", "Printforgeprints@gmail.com")
|
||||
CONTACT_ADDRESS = env("CONTACT_ADDRESS", "")
|
||||
CONTACT_SERVICE_AREA = env("CONTACT_SERVICE_AREA", "")
|
||||
CONTACT_SERVICE_AREA = env("CONTACT_SERVICE_AREA", "Chicagoland")
|
||||
CREDIT_NAME = env("CREDIT_NAME", "AI ML Operations, LLC")
|
||||
CREDIT_URL = env("CREDIT_URL", "https://aimloperations.com")
|
||||
|
||||
@@ -352,6 +399,20 @@ STRIPE_PUBLISHABLE_KEY = env("STRIPE_PUBLISHABLE_KEY", "")
|
||||
STRIPE_WEBHOOK_SECRET = env("STRIPE_WEBHOOK_SECRET", "")
|
||||
STRIPE_CURRENCY = env("STRIPE_CURRENCY", "usd")
|
||||
|
||||
# --- Shop / POS / shipping (FEATURE_SHOP and add-ons) ---
|
||||
# 0 = unlimited made-to-order print queue.
|
||||
SHOP_PRINT_QUEUE_LIMIT_MINUTES = int(
|
||||
env("SHOP_PRINT_QUEUE_LIMIT_MINUTES", "0") or "0"
|
||||
)
|
||||
POS_WEBHOOK_SECRET = env("POS_WEBHOOK_SECRET", "")
|
||||
POS_API_BASE_URL = env("POS_API_BASE_URL", "")
|
||||
POS_API_TOKEN = env("POS_API_TOKEN", "")
|
||||
EASYPOST_API_KEY = env("EASYPOST_API_KEY", "")
|
||||
SHIP_FROM_LINE1 = env("SHIP_FROM_LINE1", "")
|
||||
SHIP_FROM_CITY = env("SHIP_FROM_CITY", "")
|
||||
SHIP_FROM_STATE = env("SHIP_FROM_STATE", "")
|
||||
SHIP_FROM_ZIP = env("SHIP_FROM_ZIP", "")
|
||||
|
||||
# --- Nominatim (address suggest; server-side proxy only) ---
|
||||
# Self-hosted on ai-server-4080. Nominatim has no native API keys — gate with
|
||||
# LAN UFW + this Django proxy. Optional NOMINATIM_API_KEY is forwarded as
|
||||
@@ -361,7 +422,7 @@ NOMINATIM_TIMEOUT_SECONDS = int(env("NOMINATIM_TIMEOUT_SECONDS", "8") or "8")
|
||||
NOMINATIM_COUNTRY_CODES = env("NOMINATIM_COUNTRY_CODES", "us")
|
||||
NOMINATIM_USER_AGENT = env(
|
||||
"NOMINATIM_USER_AGENT",
|
||||
"client_site/1.0 (address-suggest; contact admin)",
|
||||
"print_forge/1.0 (address-suggest; contact admin)",
|
||||
)
|
||||
NOMINATIM_API_KEY = env("NOMINATIM_API_KEY", "")
|
||||
|
||||
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Bootstrap v4.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-ms-overflow-style: scrollbar;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@-ms-viewport {
width: device-width;
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 1rem;
font-weight: 300;
line-height: 1.575;
color: #808081;
text-align: left;
background-color: #ffffff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: inherit;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
dfn {
font-style: italic;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #ff6252;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:hover {
color: #ff1d06;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-ms-overflow-style: scrollbar;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg {
overflow: hidden;
vertical-align: middle;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
margin-bottom: 0.5rem;
font-family: "Playfair Display", serif;
font-weight: 300;
line-height: 1.1;
color: #151515;
}
h1, .h1 {
font-size: 67px;
}
h2, .h2 {
font-size: 45px;
}
h3, .h3 {
font-size: 26px;
}
h4, .h4 {
font-size: 20px;
}
h5, .h5 {
font-size: 18px;
}
h6, .h6 {
font-size: 16px;
}
.lead {
font-size: 20px;
font-weight: 300;
}
.display-1 {
font-size: 6rem;
font-weight: 300;
line-height: 1.2;
}
.display-2 {
font-size: 5.5rem;
font-weight: 300;
line-height: 1.2;
}
.display-3 {
font-size: 4.5rem;
font-weight: 300;
line-height: 1.2;
}
.display-4 {
font-size: 3.5rem;
font-weight: 300;
line-height: 1.2;
}
hr {
margin-Line truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
/** @group Fonts */␍/** @section Font Awesome Icons 4.7.0 */␍@font-face {␍ font-family: 'FontAwesome';␍ src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");␍ src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");␍ font-weight: normal;␍ font-style: normal;␍}␍␍.fa {␍ display: inline-block;␍ font-family: 'FontAwesome';␍ font-size: inherit;␍ text-rendering: auto;␍ -webkit-font-smoothing: antialiased;␍ -moz-osx-font-smoothing: grayscale;␍}␍␍[class*='fa-']:before {␍ font-weight: 400;␍ font-family: 'FontAwesome';␍}␍␍/* makes the font 33% larger relative to the icon container */␍.fa-lg {␍ font-size: 1.33333333em;␍ line-height: 0.75em;␍ vertical-align: -15%;␍}␍␍.fa-2x {␍ font-size: 2em;␍}␍␍.fa-3x {␍ font-size: 3em;␍}␍␍.fa-4x {␍ font-size: 4em;␍}␍␍.fa-5x {␍ font-size: 5em;␍}␍␍.fa-fw {␍ width: 1.28571429em;␍ text-align: center;␍}␍␍.fa-ul {␍ padding-left: 0;␍ margin-left: 2.14285714em;␍ list-style-type: none;␍}␍␍.fa-ul > li {␍ position: relative;␍}␍␍.fa-li {␍ position: absolute;␍ left: -2.14285714em;␍ width: 2.14285714em;␍ top: 0.14285714em;␍ text-align: center;␍}␍␍.fa-li.fa-lg {␍ left: -1.85714286em;␍}␍␍.fa-border {␍ padding: .2em .25em .15em;␍ border: solid 0.08em #eeeeee;␍ border-radius: .1em;␍}␍␍.fa-pull-left {␍ float: left;␍}␍␍.fa-pull-right {␍ float: right;␍}␍␍.fa.fa-pull-left {␍ margin-right: .3em;␍}␍␍.fa.fa-pull-right {␍ margin-left: .3em;␍}␍␍/* Deprecated as of 4.4.0 */␍.pull-right {␍ float: right;␍}␍␍.pull-left {␍ float: left;␍}␍␍.fa.pull-left {␍ margin-right: .3em;␍}␍␍.fa.pull-right {␍ margin-left: .3em;␍}␍␍.fa-spin {␍ -webkit-animation: fa-spin 2s infinite linear;␍ animation: fa-spin 2s infinite linear;␍}␍␍.fa-pulse {␍ -webkit-animation: fa-spin 1s infinite steps(8);␍ animation: fa-spin 1s infinite steps(8);␍}␍␍@-webkit-keyframes fa-spin {␍ 0% {␍ -webkit-transform: rotate(0deg);␍ transform: rotate(0deg);␍ }␍ 100% {␍ -webkit-transform: rotate(359deg);␍ transform: rotate(359deg);␍ }␍}␍␍@keyframes fa-spin {␍ 0% {␍ -webkit-transform: rotate(0deg);␍ transform: rotate(0deg);␍ }␍ 100% {␍ -webkit-transform: rotate(359deg);␍ transform: rotate(359deg);␍ }␍}␍␍.fa-rotate-90 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";␍ -webkit-transform: rotate(90deg);␍ -ms-transform: rotate(90deg);␍ transform: rotate(90deg);␍}␍␍.fa-rotate-180 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";␍ -webkit-transform: rotate(180deg);␍ -ms-transform: rotate(180deg);␍ transform: rotate(180deg);␍}␍␍.fa-rotate-270 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";␍ -webkit-transform: rotate(270deg);␍ -ms-transform: rotate(270deg);␍ transform: rotate(270deg);␍}␍␍.fa-flip-horizontal {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";␍ -webkit-transform: scale(-1, 1);␍ -ms-transform: scale(-1, 1);␍ transform: scale(-1, 1);␍}␍␍.fa-flip-vertical {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";␍ -webkit-transform: scale(1, -1);␍ -ms-transform: scale(1, -1);␍ transform: scale(1, -1);␍}␍␍:root .fa-rotate-90,␍:root .fa-rotate-180,␍:root .fa-rotate-270,␍:root .fa-flip-horizontal,␍:root .fa-flip-vertical {␍ filter: none;␍}␍␍.fa-stack {␍ position: relative;␍ display: inline-block;␍ width: 2em;␍ height: 2em;␍ line-height: 2em;␍ vertical-align: middle;␍}␍␍.fa-stack-1x,␍.fa-stack-2x {␍ position: absolute;␍ left: 0;␍ width: 100%;␍ text-align: center;␍}␍␍.fa-stack-1x {␍ line-height: inherit;␍}␍␍.fa-stack-2x {␍ font-size: 2em;␍}␍␍.fa-inverse {␍ color: #ffffff;␍}␍␍/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:Line truncated
|
||||
@@ -726,3 +726,162 @@ body.portal {
|
||||
.utm-qr-actions { min-width: 160px; }
|
||||
.utm-qr-actions .btn { margin: 0 8px 8px 0; }
|
||||
#preview-body a { color: var(--monica-primary); }
|
||||
|
||||
.product-edit-layout {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
|
||||
gap: 24px;
|
||||
align-items: start;
|
||||
}
|
||||
@media (max-width: 900px) {
|
||||
.product-edit-layout { grid-template-columns: 1fr; }
|
||||
}
|
||||
.product-preview-col {
|
||||
position: sticky;
|
||||
top: 16px;
|
||||
}
|
||||
.product-card-preview {
|
||||
background: #fff;
|
||||
border: 1px solid #dddddd;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
.product-card-preview-body {
|
||||
padding: 20px 15px;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
.product-card-preview-figure {
|
||||
min-height: 160px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.product-card-preview-figure img {
|
||||
max-width: 100%;
|
||||
max-height: 200px;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
.product-card-preview-title {
|
||||
margin: 12px 0 6px;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-card-preview-price {
|
||||
font-weight: 600;
|
||||
color: var(--monica-ink);
|
||||
}
|
||||
.product-card-preview-desc {
|
||||
margin: 10px 0 0;
|
||||
font-size: 13px;
|
||||
color: var(--monica-muted);
|
||||
min-height: 1.2em;
|
||||
}
|
||||
.product-card-preview .product-color-dots {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
justify-content: center;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.product-card-preview .product-color-dot {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #fff;
|
||||
box-shadow: 0 0 0 1px #d1d5db;
|
||||
display: inline-block;
|
||||
}
|
||||
.product-card-preview-panel {
|
||||
padding: 12px 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-top: 1px solid #dddddd;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.color-rows { display: grid; gap: 12px; margin-bottom: 10px; }
|
||||
.color-row {
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
padding: 10px;
|
||||
border: 1px solid var(--monica-border);
|
||||
background: #fff;
|
||||
}
|
||||
.color-row-main {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 48px 72px auto;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
}
|
||||
.color-row input[type="color"] {
|
||||
width: 48px;
|
||||
height: 38px;
|
||||
padding: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.color-row-photos {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
}
|
||||
.photo-thumbs,
|
||||
.color-row-photos {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
.photo-thumb {
|
||||
width: 72px;
|
||||
font-size: 11px;
|
||||
color: var(--monica-muted);
|
||||
display: grid;
|
||||
gap: 4px;
|
||||
justify-items: center;
|
||||
}
|
||||
.photo-thumb img {
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
object-fit: contain;
|
||||
background: #f3f4f6;
|
||||
border: 1px solid var(--monica-border);
|
||||
display: block;
|
||||
}
|
||||
.field .inline { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; }
|
||||
.product-thumb {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
object-fit: contain;
|
||||
display: block;
|
||||
background: #f3f4f6;
|
||||
}
|
||||
.product-thumb-empty { display: inline-block; }
|
||||
.stl-viewer {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
min-height: 220px;
|
||||
height: 260px;
|
||||
background: #f5f5f5;
|
||||
border: 1px solid var(--monica-border);
|
||||
overflow: hidden;
|
||||
}
|
||||
.stl-viewer canvas {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
touch-action: none;
|
||||
}
|
||||
.stl-viewer-status {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 13px;
|
||||
color: var(--monica-muted);
|
||||
pointer-events: none;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";
/*!
* Bootstrap v4.1.3 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-ms-overflow-style: scrollbar;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@-ms-viewport {
width: device-width;
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 1rem;
font-weight: 300;
line-height: 1.575;
color: #808081;
text-align: left;
background-color: #ffffff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: inherit;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
dfn {
font-style: italic;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #ff6252;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:hover {
color: #ff1d06;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-ms-overflow-style: scrollbar;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg {
overflow: hidden;
vertical-align: middle;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
margin-bottom: 0.5rem;
font-family: "Playfair Display", serif;
font-weight: 300;
line-height: 1.1;
color: #151515;
}
h1, .h1 {
font-size: 67px;
}
h2, .h2 {
font-size: 45px;
}
h3, .h3 {
font-size: 26px;
}
h4, .h4 {
font-size: 20px;
}
h5, .h5 {
font-size: 18px;
}
h6, .h6 {
font-size: 16px;
}
.lead {
font-size: 20px;
font-weight: 300;
}
.display-1 {
font-size: 6rem;
font-weight: 300;
line-height: 1.2;
}
.dispLine truncated
|
||||
@@ -0,0 +1,352 @@
|
||||
/* Print Forge public brand overrides on the Ecoprint theme */
|
||||
|
||||
:root {
|
||||
--pf-primary: #ff6252;
|
||||
--pf-primary-dark: #e24f41;
|
||||
--pf-ink: #151515;
|
||||
--pf-muted: #6b7280;
|
||||
}
|
||||
|
||||
/* Theme CSS starts `.page` at opacity:0 until a `.preloader` runs.
|
||||
Keep this so a missed preloader never blanks the site. */
|
||||
.page {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.rd-navbar-brand .brand img,
|
||||
.rd-navbar-brand .brand-logo-dark,
|
||||
.rd-navbar-brand .brand-logo-light,
|
||||
.footer-classic-brand .brand img {
|
||||
height: 39px;
|
||||
width: auto;
|
||||
max-width: 180px;
|
||||
}
|
||||
|
||||
.flash {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 12px 0 0;
|
||||
}
|
||||
.flash li {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto 8px;
|
||||
padding: 12px 16px;
|
||||
background: #fde8e8;
|
||||
border-left: 3px solid var(--pf-primary);
|
||||
color: #7f1d1d;
|
||||
font-size: 14px;
|
||||
}
|
||||
.flash li.success {
|
||||
background: #ecfdf5;
|
||||
border-left-color: #059669;
|
||||
color: #065f46;
|
||||
}
|
||||
.flash li.error,
|
||||
.flash li.danger {
|
||||
background: #fee2e2;
|
||||
border-left-color: #b91c1c;
|
||||
color: #991b1b;
|
||||
}
|
||||
|
||||
.form-wrap .errorlist,
|
||||
.errorlist {
|
||||
list-style: none;
|
||||
margin: 6px 0 0;
|
||||
padding: 0;
|
||||
color: #b91c1c;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.cookie-consent-banner {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 11000;
|
||||
padding: 1rem 1.25rem;
|
||||
background: rgba(21, 21, 21, 0.96);
|
||||
border-top: 2px solid var(--pf-primary);
|
||||
box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.28);
|
||||
}
|
||||
.cookie-consent-content {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
}
|
||||
.cookie-consent-text {
|
||||
flex: 1 1 420px;
|
||||
color: #d7dee3;
|
||||
font-size: 0.9375rem;
|
||||
line-height: 1.45;
|
||||
margin: 0;
|
||||
}
|
||||
.cookie-consent-text-short {
|
||||
display: none;
|
||||
}
|
||||
.cookie-consent-actions {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.visually-hidden {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap;
|
||||
border: 0;
|
||||
}
|
||||
.footer-link-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
color: var(--pf-primary);
|
||||
font: inherit;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
.footer-link-btn:hover {
|
||||
text-decoration: underline;
|
||||
color: var(--pf-primary-dark);
|
||||
}
|
||||
.cookie-consent-link {
|
||||
color: #ffd3ce;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 2px;
|
||||
}
|
||||
.cookie-consent-link:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.legal-prose {
|
||||
max-width: 42rem;
|
||||
}
|
||||
.legal-prose .legal-lead {
|
||||
font-size: 1.05rem;
|
||||
color: var(--pf-ink);
|
||||
margin-bottom: 1.75rem;
|
||||
}
|
||||
.legal-prose h2 {
|
||||
font-size: 1.35rem;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 0.75rem;
|
||||
text-transform: none;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
.legal-prose p {
|
||||
margin-bottom: 1rem;
|
||||
color: #4b5563;
|
||||
line-height: 1.65;
|
||||
}
|
||||
.legal-prose .legal-updated {
|
||||
margin-top: 2.5rem;
|
||||
font-size: 0.875rem;
|
||||
color: var(--pf-muted);
|
||||
}
|
||||
|
||||
.footer-made-by {
|
||||
margin: 10px 0 0;
|
||||
font-size: 13px;
|
||||
color: #6b7280;
|
||||
}
|
||||
.footer-made-by a {
|
||||
color: var(--pf-primary);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.form-label-outside {
|
||||
display: block;
|
||||
margin-bottom: 6px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.product-figure {
|
||||
min-height: 180px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.product-figure img,
|
||||
.slick-product-figure img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.product-color-dots {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
justify-content: center;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.product-color-dot {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #fff;
|
||||
box-shadow: 0 0 0 1px #d1d5db;
|
||||
display: inline-block;
|
||||
}
|
||||
.product-color-picker {
|
||||
margin: 8px 0 20px;
|
||||
}
|
||||
.product-color-label {
|
||||
margin: 0 0 10px;
|
||||
font-weight: 500;
|
||||
color: #151515;
|
||||
}
|
||||
.product-color-swatches {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
.product-color-swatch {
|
||||
cursor: pointer;
|
||||
display: inline-flex;
|
||||
}
|
||||
.product-color-swatch input {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
.product-color-swatch span {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #fff;
|
||||
box-shadow: 0 0 0 1px #d1d5db;
|
||||
display: block;
|
||||
}
|
||||
.product-color-swatch input:checked + span,
|
||||
.product-color-swatch input:focus-visible + span {
|
||||
box-shadow: 0 0 0 2px var(--pf-primary);
|
||||
}
|
||||
|
||||
.product-gallery-layout {
|
||||
display: grid;
|
||||
grid-template-columns: 72px minmax(0, 1fr);
|
||||
gap: 12px;
|
||||
align-items: start;
|
||||
}
|
||||
.product-gallery-thumbs {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
.product-gallery-thumbs button {
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
padding: 4px;
|
||||
border: 2px solid #dddddd;
|
||||
background: #fff;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
}
|
||||
.product-gallery-thumbs button.active,
|
||||
.product-gallery-thumbs button[aria-selected="true"] {
|
||||
border-color: var(--pf-primary);
|
||||
}
|
||||
.product-gallery-thumbs img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
display: block;
|
||||
}
|
||||
.product-gallery-thumb-3d {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
color: #151515;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
.product-gallery-stage {
|
||||
min-width: 0;
|
||||
}
|
||||
.product-media-hint {
|
||||
margin: 8px 0 0;
|
||||
font-size: 13px;
|
||||
color: #6b7280;
|
||||
text-align: center;
|
||||
}
|
||||
.stl-viewer {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
min-height: 360px;
|
||||
height: 420px;
|
||||
background: #f5f5f5;
|
||||
border: 1px solid #dddddd;
|
||||
overflow: hidden;
|
||||
}
|
||||
.stl-viewer canvas {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
touch-action: none;
|
||||
}
|
||||
.stl-viewer-status {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 14px;
|
||||
color: #6b7280;
|
||||
pointer-events: none;
|
||||
}
|
||||
.stl-viewer.is-error .stl-viewer-status {
|
||||
color: #991b1b;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.product-gallery-layout {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.product-gallery-stage {
|
||||
order: -1;
|
||||
}
|
||||
.product-gallery-thumbs {
|
||||
flex-direction: row;
|
||||
overflow-x: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.cookie-consent-banner {
|
||||
padding: 0.625rem 0.75rem;
|
||||
padding-bottom: max(0.625rem, env(safe-area-inset-bottom));
|
||||
}
|
||||
.cookie-consent-content {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
gap: 0.625rem;
|
||||
}
|
||||
.cookie-consent-text-short {
|
||||
display: inline;
|
||||
}
|
||||
.cookie-consent-text-full {
|
||||
display: none;
|
||||
}
|
||||
.cookie-consent-text {
|
||||
flex: none;
|
||||
font-size: 0.8125rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
.cookie-consent-actions {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||