/* UTILITIES
-----------------------------*/

.hidden { display: none; }

.overflow-hidden { overflow: hidden; }
.overflow-visible { overflow: visible; }
.overflow-y-hidden { overflow-y: hidden; }

.pointer-events-none { pointer-events: none; }

.breakout { margin-left: calc(-50vw + 50%); margin-right: calc(-50vw + 50%); }
.nobreakout .breakout { margin-left: auto; margin-right: auto; }

.vl-light { background-image: linear-gradient(#d8d8d8, #d8d8d8); background-size: 1px 100%; background-repeat: no-repeat; background-position: center center; }
.vl-dark { background-image: linear-gradient(#343a40, #343a40); background-size: 1px 100%; background-repeat: no-repeat; background-position: center center; }
@media (max-width: 991px) {
	.vl-light { background-size: 100% 1px; }
	.vl-dark { background-size: 100% 1px; }
}

.w-20 { width: 20% !important; }
.w-25 { width: 25% !important; }
.w-33 { width: 33.33% !important; }
.w-16 { width: 16.66% !important; }

.flex-start,
.flex-center,
.flex-end { display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; }
.flex-start { -ms-flex-align: start; align-items: flex-start; }
.flex-center { -ms-flex-align: center; align-items: center; }
.flex-end { -ms-flex-align: end; align-items: flex-end; }

.pos-rel { position: relative; z-index: 1; }
.pos-abs { position: absolute; z-index: 2; top: 0; right: 0; bottom:0; left: 0; }

.fa-rotate-45 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }
.fa-rotate--45 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }

.position-tl { top: 0; left: 0; }
.position-t { top: 0; }
.position-tr { top: 0; right: 0; }
.position-cl { bottom: 50%; transform: translate(0%, -50%); left: 0; }
.position-c { bottom: 50%; transform: translate(0%, -50%); }
.position-cr { bottom: 50%; transform: translate(0%, -50%); right: 0; }
.position-bl { bottom: 0; left: 0; }
.position-b { bottom: 0; }
.position-br { bottom: 0; right: 0; }

.zi-0 { z-index: 0; }
.zi-1 { z-index: 1; }
.zi-2 { z-index: 2; }
.zi-100 { z-index: 100; }
.zi-200 { z-index: 200; }
.zi-99999 { z-index: 99999; }

table.center { margin: 0 auto; }

.nounderline { text-decoration: none !important; }
.dotted { border-bottom: 1px dotted #ccc; text-decoration: none !important; }
.nowrap { white-space: nowrap !important; }
.wrap { white-space: normal !important; }
.noglow, .noglow:hover { box-shadow: none !important; }
.noshadow, .noshadow:hover { text-shadow: none !important; }
.noselect { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-touch-callout: none; -khtml-user-select: none; }
.noscroll { overflow: hidden !important; }
.nofocus, .nofocus:focus, a.nofocus:focus { outline: 0 !important; box-shadow: none !important; }

.nopointer { pointer-events: none; cursor: none; }
.notallowed { pointer-events: none; cursor: not-allowed; }
.pointer { cursor: pointer !important; }
.cursor-pointer:hover { cursor: pointer; }
.cursor-help:hover { cursor: help; }
.zoom-in, .lightbox { cursor: zoom-in !important; }
.zoom-out { cursor: zoom-out !important; }

.rounded-circle { border-radius: 100% !important; }

.border-radius-0 { border-radius: 0 !important; }
.notbr { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; }
.norbr { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.nobbr { border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.nolbr { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }

.rounded-tl { border-radius: 0.5rem 0 0 0 !important; }
.rounded-tc { border-radius: 0 0 0.5rem 0.5rem !important; }
.rounded-tr { border-radius: 0 0.5rem 0 0 !important; }
.rounded-cr { border-radius: 0.5rem 0 0 0.5rem !important; }
.rounded-br { border-radius: 0 0 0.5rem 0 !important; }
.rounded-bc { border-radius: 0.5rem 0.5rem 0 0 !important; }
.rounded-bl { border-radius: 0 0 0 0.5rem !important; }
.rounded-cl { border-radius: 0 0.5rem 0.5rem 0 !important; }
.rounded-cc { border-radius: 0.5rem !important; }

.letter-spacing-2 { letter-spacing: 2px; }
.letter-spacing-4 { letter-spacing: 4px; }
.letter-spacing-6 { letter-spacing: 6px; }
.letter-spacing-8 { letter-spacing: 8px; }
.letter-spacing-10 { letter-spacing: 10px; }

.width-auto { width: auto; }
@media screen and (max-width:767px) {
	.width-auto { width: 100%; }
}

.width-auto-always { width: auto !important; max-width: 100% !important; }

input[type='number'] { -moz-appearance: textfield; }
input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; }

.text-default { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; }
.text-garamond { font-family: "Palatino Linotype", Palatino, Palladio, "URW Palladio L", "Book Antiqua", Baskerville, "Bookman Old Style", "Bitstream Charter", "Nimbus Roman No9 L", Garamond, "Apple Garamond", "ITC Garamond Narrow", "New Century Schoolbook", "Century Schoolbook", "Century Schoolbook L", Georgia, serif; }
.text-helvetica { font-family: Frutiger, "Frutiger Linotype", Univers, Calibri, "Gill Sans", "Gill Sans MT", "Myriad Pro", Myriad, "DejaVu Sans Condensed", "Liberation Sans", "Nimbus Sans L", Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif; }
.text-verdana { font-family: Corbel, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", "Bitstream Vera Sans", "Liberation Sans", Verdana, "Verdana Ref", sans-serif;}
.text-trebuchet { font-family: "Segoe UI", Candara, "Bitstream Vera Sans", "DejaVu Sans", "Bitstream Vera Sans", "Trebuchet MS", Verdana, "Verdana Ref", sans-serif; }
.text-impact { font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", Charcoal, "Helvetica Inserat", "Bitstream Vera Sans Bold", "Arial Black", sans-serif; }
.text-monospace { font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
.text-serif { font-family: TimesNewRoman, Times New Roman, Times, Baskerville, Georgia, serif; }

.text-14   { font-size: 14px !important; }
.text-xs   { font-size: 0.65rem !important; }
.text-sm   { font-size: 0.8rem !important; }
.text-1rem { font-size: 1rem !important; }
.text-md   { font-size: 1.25rem !important; }
.text-lg   { font-size: 1.5rem !important; }
.text-xl   { font-size: 2.0rem !important; }
.text-xxl  { font-size: 2.5rem !important; }
.text-xxxl { font-size: 3.0rem !important; }

.noselect { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-touch-callout: none; -khtml-user-select: none; }

@media screen and (max-width:767px) {
	.text-sm-mobile { font-size: 0.8rem !important; }
}

.text-black-always { color: #000 !important; }
.text-white-always { color: #fff !important; }

.text-shadow { text-shadow: 1px 1px 2px rgba(0,0,0,1); }
.text-shadow-lg { text-shadow: 2px 2px 3px rgba(0,0,0,1); }

.text-truncate { width: 100%; white-space: wrap; overflow: hidden; text-overflow: ellipsis; }

.font-weight-normal { font-weight: normal !mportant; }

.icon-shadow { text-shadow: 0px 2px 2px rgba(0,0,0,0.2); }

.text-glow-light-xs { text-shadow: 0px 0px 10px rgba(255,255,255,1); }
.text-glow-light-sm { text-shadow: 0px 0px 20px rgba(255,255,255,1); }
.text-glow-light    { text-shadow: 0px 0px 40px rgba(255,255,255,1); }
.text-glow-light-lg { text-shadow: 0px 30px 60px rgba(255,255,255,1); }

.text-glow-dark-xs  { text-shadow: 0px 0px 10px rgba(0,0,0,1); }
.text-glow-dark-sm  { text-shadow: 0px 0px 20px rgba(0,0,0,1); }
.text-glow-dark     { text-shadow: 0px 0px 40px rgba(0,0,0,1); }
.text-glow-dark-lg  { text-shadow: 0px 0px 60px rgba(0,0,0,1); }

.text-truncate { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

.box-shadow { box-shadow: 0 0 5px 0 rgba(0,0,0,0.4); }
.box-shadow-10 { box-shadow: 10px 10px 0 0 rgba(0,0,0,.1); }

.text-twitter { color: #00acee; }
.text-facebook { color: #3b5998; }
.text-youtube { color: #f00; }
.text-vimeo { color: #44bbff; }
.text-pinterest { color: #c8232c; }
.text-linkedin { color: #0976b4; }
.text-instagram { color: #405de6; }
.text-flickr { color: #0063dc; }
.text-skype { color: #00aff0; }
.text-whatsapp { color: #455A64; }
.text-whatsapp-green { color: #25D366; }
.text-rss { color: #f26522; }

.text-youtube-play { color: rgba(0,0,0,0.65); font-size: 70px !important; }
.text-youtube-play:hover { color: rgba(255,0,0,1); }
.text-vimeo-play { color: rgba(0,0,0,0.65); font-size: 70px !important; }
.text-vimeo-play:hover { color: rgba(26,183,234,1); }

.text-chrome { color: #0F9d58; }
.text-firefox { color: #e66000; }
.text-opera { color: #cc0f16; }
.text-edge { color: #0078d7; }
.text-internet-explorer { color: #00d4f9; }
.text-safari { color: #006cff; }
.text-android { color: #a4c639; }

.bg-0,
.background-0,
table.bg-0,
table.bg-0 tr,
table.bg-0 td td { background: none !important; }

.bg-black { background-color: #000; }
.bg-white { background-color: #fff; }

.bg--dark { background: rgba(0,0,0,0.6); color: #fff; border: none; text-shadow: 1px 1px 2px rgba(255,255,255,0); }
.bg--dark-g-down { background: linear-gradient(to bottom, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0) 100%); color: #fff; border: none; text-shadow: 1px 1px 2px rgba(255,255,255,0); }
.bg--dark-g-up   { background: linear-gradient(to top, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0) 100%); color: #fff; border: none; text-shadow: 1px 1px 2px rgba(255,255,255,0); }

.bg--light { none; background: rgba(255,255,255,0.6); color: #000; border: none; text-shadow: 1px 1px 2px rgba(0,0,0,0); }
.bg--light-g-down { background: linear-gradient(to bottom, rgba(255,255,255,0.6) 0%,rgba(255,255,255,0) 100%); color: #000; border: none; text-shadow: 1px 1px 2px rgba(0,0,0,0); }
.bg--light-g-up   { background: linear-gradient(to top, rgba(255,255,255,0.6) 0%,rgba(255,255,255,0) 100%); color: #000; border: none; text-shadow: 1px 1px 2px rgba(0,0,0,0); }

.bg-dark-25 { background-color: rgba(0,0,0,0.25); }
.bg-dark-50 { background-color: rgba(0,0,0,0.5); }
.bg-dark-75 { background-color: rgba(0,0,0,0.75); }

.bg-light-25 { background-color: rgba(255,255,255,0.25); }
.bg-light-50 { background-color: rgba(255,255,255,0.5); }
.bg-light-75 { background-color: rgba(255,255,255,0.75); }

.card-audio-playing { background: rgba(0,0,0,0.15); }

.bg-facebook { background-color: #3b5998; color: #fff; }
.bg-twitter { background-color: #00acee; color: #fff; }
.bg-google-plus { background-color: #dd4c39; color: #fff; }
.bg-youtube { background-color: #c4302b; color: #fff; }
.bg-vimeo { background-color: #44bbff; color: #fff; }
.bg-pinterest { background-color: #c8232c; color: #fff; }
.bg-linkedin { background-color: #0976b4; color: #fff; }
.bg-instagram { background-color: #405de6; color: #fff; }
.bg-flickr { background-color: #0063dc; color: #fff; }
.bg-skype { background-color: #00aff0; color: #fff; }
.bg-rss { background-color: #f26522; color: #fff; }

.btn-rss, .btn-rss:active:focus { background-color: #f26522; color: #fff !important; }
.btn-rss:hover { opacity: 0.8; }

.btn-paypal, .btn-paypal:active:focus { background-color: #009cde; color: #fff !important; }
.btn-paypal:hover { opacity: 0.8; }

.btn-paypal-credit, .btn-paypal-credit:active:focus { background-color: #003087; color: #fff !important; }
.btn-paypal-credit:hover { opacity: 0.8; }

.btn-amazon, .btn-amazon:active:focus { background-color: #ff9900; color: #fff !important; }
.btn-amazon:hover { opacity: 0.8; }

.text-knockout { background-position: center center; background-size: cover; /* or contain */ background-clip: text; -webkit-background-clip: text; color: transparent; }
.text-gradient { background: -webkit-linear-gradient(top, #fff 0%, #000 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.text-gradient-alt { Color: #3bdd55; background-image: linear-gradient(90deg,#3bdd55,#6068ff); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }

.grey-fade { background: #eee; background: -moz-linear-gradient(top, #fff 0%, #eee 100%); background: -webkit-linear-gradient(top, #fff 0%, #eee 100%); background: linear-gradient(to bottom, #fff 0%, #eee 100%); }
.grey-fade-50 { background: #eee; background: -moz-linear-gradient(top, #fff 50%, #eee 100%); background: -webkit-linear-gradient(top, #fff 50%, #eee 100%); background: linear-gradient(to bottom, #fff 50%, #eee 100%); }

.glow-dark  { -webkit-box-shadow: 0 0 20px 0 rgba(0,0,0,0.5); -moz-box-shadow: 0 0 20px 0 rgba(0,0,0,0.5); box-shadow: 0 0 20px 0 rgba(0,0,0,0.5); }
.glow-light { -webkit-box-shadow: 0 0 20px 0 rgba(255,255,255,0.5); -moz-box-shadow: 0 0 20px 0 rgba(255,255,255,0.5); box-shadow: 0 0 20px 0 rgba(255,255,255,0.5); }
.glow-sm    { -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.5); -moz-box-shadow: 0 0 5px rgba(0,0,0,0.5); box-shadow: 0 0 5px rgba(0,0,0,0.5); }

.right-quote { float: right; border-left: 4px solid #ddd; font-size: 110%; line-height: 1.5; font-weight: bold; margin-left: 10px; padding-left: 10px; width: 200px; }
.left-quote { float: left; border-right: 4px solid #ddd; font-size: 110%; line-height: 1.5; font-weight: bold; margin-right: 10px; padding-right: 10px; width: 200px; }

.newsletter-border { background:rgba(0,0,0,0.15); border: 7px solid transparent; border-image: 7 repeating-linear-gradient(-45deg, red 0, red 1em, #fff 0, #fff 2em, #09f 0, #09f 3em, #fff 0, #fff 4em); }

/* BACKGROUNDS
-----------------------------*/

.bg-tile-top { background-repeat: repeat-x; background-position: top; }
.bg-tile-center { background-repeat: repeat-x; background-position: center; }
.bg-tile-bottom { background-repeat: repeat-x; background-position: bottom; }

.bg-top-center { background-repeat: no-repeat; background-position: top center; }
.bg-center { background-repeat: no-repeat; background-position: center center; }
.bg-bottom-center { background-repeat: no-repeat; background-position: bottom center; }

.bg-top-left { background-repeat: no-repeat; background-position: top left; }
.bg-top-right { background-repeat: no-repeat; background-position: top right; }
.bg-bottom-left { background-repeat: no-repeat; background-position: bottom left; }
.bg-bottom-right { background-repeat: no-repeat; background-position: bottom right; }

.bg-cover, .bg-cover-center { background-position: center center !important; background-size: cover !important; background-repeat: no-repeat !important; }
.lazyloading.bg-cover, .lazyloading.bg-cover-center { background-size: auto !important; background-repeat: no-repeat !important; }

.bg-cover-center { background-size: cover; background-position: center center !important; background-repeat: no-repeat; }
.bg-cover-left { background-size: cover; background-position: left center !important; background-repeat: no-repeat; }
.bg-cover-right { background-size: cover; background-position: right center !important; background-repeat: no-repeat; }
.bg-center { background-position: center center !important; background-repeat: no-repeat; }

.bg-fixed { background-attachment: fixed; }

.bg-clip-path {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    -webkit-clip-path: polygon(0% 0%,100% 0%,100% calc(100% - 2em),0% 100%);
    clip-path: polygon(0% 0%,100% 0%,100% calc(100% - 2em),0% 100%);
}

.diag-bg { background: repeating-linear-gradient( 45deg, transparent, transparent 12px, rgba(0,0,0,0.1) 12px, rgba(0,0,0,0.1) 24px ); }

/* GRADIENTS
-----------------------------*/

.gradient-light-top { background: -moz-linear-gradient(top, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); background: -webkit-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background: linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); }

.gradient-light-bottom { background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.5) 100%); background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,0.5) 100%); background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,0.5) 100%); }

.gradient-light-radial { background: -moz-radial-gradient(center, ellipse cover, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); background: -webkit-radial-gradient(center, ellipse cover, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background: radial-gradient(ellipse at center, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); }

.gradient-light-left { background: -moz-linear-gradient(left, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); background: -webkit-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background: linear-gradient(to right, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); }

.gradient-light-right { background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.5) 100%); background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,0.5) 100%); background: linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,0.5) 100%); }

.gradient-dark-top { background: -moz-linear-gradient(top, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%); background: -webkit-linear-gradient(top, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0) 100%); background: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0) 100%); }

.gradient-dark-bottom { background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%); background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.5) 100%); background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.5) 100%); }

.gradient-dark-radial { background: -moz-radial-gradient(center, ellipse cover, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%); background: -webkit-radial-gradient(center, ellipse cover, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0) 100%); background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0) 100%); }

.gradient-dark-left { background: -moz-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%); background: -webkit-linear-gradient(left, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0) 100%); background: linear-gradient(to right, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0) 100%); }

.gradient-dark-right { background: -moz-linear-gradient(left, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%); background: -webkit-linear-gradient(left, rgba(0,0,0,0) 0%,rgba(0,0,0,0.5) 100%); background: linear-gradient(to right, rgba(0,0,0,0) 0%,rgba(0,0,0,0.5) 100%); }

/* GROOVY UNDERLINES
-----------------------------*/

h2 span.rainbow,
h2 span.rainbow2,
h2 span.tapered,
h2 span.tapered2 { background-size: 100% 15%; background-repeat: repeat-x; background-position: left 0% bottom 0%; }

span.rainbow { background-image: linear-gradient(90deg, #d268f8 0%, #d268f8 12.5%, #f868b2 12.5%, #f868b2 25%, #f88a68 25%, #f88a68 37.5%, #f8f568 37.5%, #f8f568 50%, #8ef868 50%, #8ef868 62.5%, #68f8ae 62.5%, #68f8ae 75%, #68d6f8 75%, #68d6f8 87.5%, #686af8 87.5%, #686af8 100%); }

span.rainbow2 { background-image: repeating-linear-gradient(135deg, #eecf68 0px, #eecf68 14px, #a9ee68 14px, #a9ee68 28px, #68ee8b 28px, #68ee8b 42px, #68ecee 42px, #68ecee 56px, #6887ee 56px, #6887ee 70px, #ad68ee 70px, #ad68ee 84px, #ee68ca 84px, #ee68ca 98px, #ee6a68 98px, #ee6a68 112px); }

span.tapered { background-image: linear-gradient(179deg, #007bff 0%, #007bff 50%, transparent 54%, transparent 100%); }

span.tapered2 { background-image: linear-gradient(181deg, #007bff 0%, #007bff 50%, transparent 54%, transparent 100%); }

/* CLASSIC BLUE (PANTONE COTY 2020)
-----------------------------*/

.text-classic-blue { color: #0F4C81 !important; }
.bg-classic-blue { background-color: #0F4C81 !important; }
.border-classic-blue { border-color: #0F4C81 !important; }

/* BORDER WIDTHS
-----------------------------*/

.blw2 { border-left-width: 2px !important; }
.blw6 { border-left-width: 6px !important; }

.bw-1 { border-width: 1px !important; }
.bw-2 { border-width: 2px !important; }
.bw-3 { border-width: 3px !important; }
.bw-4 { border-width: 4px !important; }
.bw-5 { border-width: 5px !important; }
.bw-6 { border-width: 6px !important; }
.bw-7 { border-width: 7px !important; }
.bw-8 { border-width: 8px !important; }
.bw-9 { border-width: 9px !important; }
.bw-10 { border-width: 10px !important; }

/* IMAGE FILTERS
-----------------------------*/

img.blur-5 { -webkit-filter: blur(5px); filter: blur(5px); -webkit-transition: 0.3s -webkit-filter linear; -transition: 0.3s -filter linear; }
img.blur-10 { -webkit-filter: blur(10px); filter: blur(10px); -webkit-transition: 0.3s -webkit-filter linear; -transition: 0.3s -filter linear; }
img.blur-15 { -webkit-filter: blur(15px); filter: blur(15px); -webkit-transition: 0.3s -webkit-filter linear; -transition: 0.3s -filter linear; }
img.blur-20 { -webkit-filter: blur(20px); filter: blur(20px); -webkit-transition: 0.3s -webkit-filter linear; -transition: 0.3s -filter linear; }
img.blur-0:hover { -webkit-filter: blur(0px); filter: blur(0px); }

img.grayscale { -webkit-filter: grayscale(1); filter: grayscale(1); -webkit-transition: 0.3s -webkit-filter linear; -transition: 0.3s -filter linear; }

.flip-x, img.flip-x { transform: rotateY(180deg); }
.flip-y, img.flip-y { transform: rotateX(180deg); }
.flip-x-y, img.flip-x-y { transform: rotateX(180deg) rotateY(180deg); }

/* 3D PERSPECTIVE IMAGES
-----------------------------*/

.img-3d-right, .img-3d-left { perspective: 1500px; }
.img-3d-left img { transform: rotateX(10deg) rotateY(18deg) rotateZ(-3deg); transition: 0.3s; }
.img-3d-left:hover img { transform: rotate(0); }
.img-3d-right img { transform: rotateX(10deg) rotateY(-18deg) rotateZ(3deg); transition: 0.3s; }
.img-3d-right:hover img { transform: rotate(0); }

/* DETAILS + SUMMARY ACCORDIONS
-----------------------------*/

details { margin: 1rem 0; }

summary { position: relative; list-style-image: url(../images/icons/bootstrap/caret-right-square-fill.svg); }

summary::-webkit-details-marker { color: transparent; }

details:not([open]) summary::-webkit-details-marker {
	background: url(../images/icons/bootstrap/caret-right-square-fill.svg);
	color: transparent;
}

details[open] summary::-webkit-details-marker {
	list-style-image: url(../images/icons/bootstrap/caret-down-square-fill.svg) !important;
	background: url(../images/icons/bootstrap/caret-down-square-fill.svg) !important;
}

details[open] summary { list-style-image: url(../images/icons/bootstrap/caret-down-square-fill.svg) !important; }

details[open] summary ~ * { animation: sweep 0.3s ease-in-out; }
@keyframes sweep {
  0%    {opacity: 0; margin-top: -10px}
  100%  {opacity: 1; margin-top: 0px}
}

details > summary::after { position: absolute; font-family: 'FontAwesome'; content: '\f107'; right: 20px; }
details[open] > summary::after { position: absolute; font-family: 'FontAwesome'; content: '\f106'; right: 20px; }
details > summary::-webkit-details-marker { display: none; }

details.no-icon > summary { list-style: none !important; }
details.no-icon > summary::-webkit-details-marker { display: none !important; }

details.no-angle > summary::after { content: ''; }