@charset "utf-8";
/*-----------------------------------------------------------------------------------

   Author: Hybrid Solutions
   Author URI: http://www.hybrid.com.pt
   Platform: eContent Manager
   Description: Modern CSS Base Styles (Modernized from LESS)
   Version: 2025.01.01

   This file replaces skin-base.less.css with modern CSS using native features.
   No preprocessor (LESS/SASS) compilation required.

   Browser Support: 
   - Chrome/Edge 111+ (color-mix support)
   - Firefox 113+ (color-mix support)
   - Safari 16.2+ (color-mix support)

   MIGRATION GUIDE
   ===============

   LESS to CSS Conversion Summary:

   1. VARIABLES
      LESS:  @brand-primary: #75512a;
      CSS:   --brand-primary: #75512a;
      Usage: color: var(--brand-primary);

   2. COLOR FUNCTIONS
      LESS:  darken(@color, 15%)
      CSS:   color-mix(in srgb, var(--color) 85%, black)

      LESS:  lighten(@color, 15%)
      CSS:   color-mix(in srgb, var(--color) 85%, white)

      LESS:  mix(@color1, @color2, 50%)
      CSS:   color-mix(in srgb, var(--color1) 50%, var(--color2))

      LESS:  fade(@color, 75%)
      CSS:   color-mix(in srgb, var(--color) 75%, transparent)

   3. MIXINS TO UTILITIES
      LESS:  .font-size(1.5);
      CSS:   font-size: 1.5rem; (or use utility class .font-size-large)

      LESS:  .border-radius(@radius);
      CSS:   border-radius: var(--border-radius-base); (or class .border-radius)

      LESS:  .transition(@props);
      CSS:   transition: @props; (or class .transition-default)

      LESS:  .box-shadow(@shadow);
      CSS:   box-shadow: @shadow; (or class .box-shadow)

   4. BUTTON MIXINS
      LESS:  .eCM-button-variant(@color, @bg, ...);
      CSS:   Use .btn-primary, .btn-success, etc. utility classes

   5. VENDOR PREFIXES
      Modern CSS removes most vendor prefixes as they're no longer needed:
      - transition (no prefix needed)
      - transform (no prefix needed)
      - border-radius (no prefix needed)
      - box-shadow (no prefix needed)
      - animation (no prefix needed)

   6. DYNAMIC THEMING
      CSS custom properties can be changed at runtime:

      Example - Dark Mode:
      [data-theme="dark"] {
          --body-bg: #1a1a1a;
          --text-color: #e0e0e0;
          --brand-primary: #a67c52;
      }

      Example - Component Override:
      .special-button {
          --btn-primary-bg: #custom-color;
          --btn-primary-hover-bg: #custom-hover;
      }

-----------------------------------------------------------------------------------*/

/* ---------------------------------------------------------------------------------
------------------------------   Import Dependencies   -----------------------------
------------------------------------------------------------------------------------*/

@import "skin-base-variables.css";
/*@import "skin-base-mixins.css";*/

/* ---------------------------------------------------------------------------------
------------------------------   CSS global Styles   -------------------------------
------------------------------------------------------------------------------------*/

/*
   Bootstrap Variables
   -------------------------------------------------- */
:root, [data-bs-theme=light] {
    /* Main variables */
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: var(--brand-primary-rgb);
    --bs-secondary: var(--brand-secondary);
    --bs-secondary-rgb: var(--brand-secondary-rgb);
    --bs-success: var(--brand-success);
    --bs-success-rgb: var(--brand-success-rgb);
    --bs-info: var(--brand-info);
    --bs-info-rgb: var(--brand-info-rgb);
    --bs-warning: var(--brand-warning);
    --bs-warning-rgb: var(--brand-warning-rgb);
    --bs-danger: var(--brand-danger);
    --bs-danger-rgb: var(--brand-danger-rgb);
    --bs-dark-rgb: var(--gray-dark-rgb);
    --bs-body-font-size: var(--font-size-base);
    --bs-body-color: var(--text-color);
    --bs-border-width: var(--border-size);
    --bs-border-color: var(--border-color);        
    --bs-box-shadow-sm: 0 .125rem .25rem rgba(0,0,0,.075) !important;
    --bs-box-shadow: 0 0.3px 0.4px hsla(0, 0, 0, 0.02), 0 0.9px 1.5px hsla(0, 0, 0, 0.045), 0 3.5px 6px hsla(0, 0, 0, 0.09) !important;
    --bs-box-shadow-lg: 0 0.9px 1.25px hsla(230, 13%, 9%, 0.025), 0 3px 5px hsla(230, 13%, 9%, 0.05), 0 12px 12px hsla(230, 13%, 9%, 0.09);
}

/*
   Animation
   -------------------------------------------------- */
.delay-250ms { animation-delay: 0.25s; }
.delay-500ms { animation-delay: 0.5s; }
.delay-750ms { animation-delay: 0.75s; }
.delay-1000ms { animation-delay: 1s; }
.delay-1250ms { animation-delay: 1.25s; }
.delay-1500ms { animation-delay: 1.5s; }
.faster-500ms { animation-duration: 0.5s; }
.faster-250ms { animation-duration: 0.25s; }
.bounceInLeft, .bounceInRight, .fadeInUp, .fadeInUpDelay, .fadeInDown, .fadeInUpD, .fadeInLeft, .fadeInRight { 
    visibility: visible !important; 
}

/*
   Utilities
   -------------------------------------------------- */

/* Aspect ratio utility */
.aspect-ratio-1x1 { --aspect-ratio: 1/1; }
.aspect-ratio-4x3 { --aspect-ratio: 4/3; }
.aspect-ratio-16x9 { --aspect-ratio: 16/9; }
.aspect-ratio-16x10 { --aspect-ratio: 16/10; }
.aspect-ratio-default { --aspect-ratio: 1.5; } /* 900x600 */

.aspect-ratio {
    position: relative;
    display: block;
    height: 0;
    padding-bottom: calc(100% / var(--aspect-ratio));
}

.aspect-ratio > * {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

/* ---------------------------------------------------------------------------------
-------------------------------   Base Skin Styles   -------------------------------
------------------------------------------------------------------------------------*/

/*
   Accessibility
   -------------------------------------------------- */
.accessibility { 
    position: absolute; 
    left: -999em; 
    overflow: hidden; 
}

/*
   Body default
   -------------------------------------------------- */
body {
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    color: var(--bs-body-color);
    background-color: var(--body-bg);
    height: 100%;
    -webkit-font-smoothing: antialiased;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.004);
}

/*
   Paragraphs
   -------------------------------------------------- */
p {
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    margin: 0 0 calc(var(--line-height-computed) / 2);
}

/*
   Headings
   -------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--headings-font-family);
    font-weight: var(--headings-font-weight);
    line-height: var(--headings-line-height);
    color: var(--headings-color);

    & small,
    & .small {
        color: var(--headings-small-color);
    }
}

h1, .h1,
h2, .h2,
h3, .h3 {
    margin-top: var(--line-height-computed);
    margin-bottom: calc(var(--line-height-computed) / 2);
}

h4, .h4,
h5, .h5,
h6, .h6 {
    margin-top: calc(var(--line-height-computed) / 2);
    margin-bottom: calc(var(--line-height-computed) / 2);
}

h6 {
    font-weight: normal;
}

h1, .h1 { font-size: var(--font-size-h1); } /* ~36px */
h2, .h2 { font-size: var(--font-size-h2); } /* ~30px */
h3, .h3 { font-size: var(--font-size-h3); } /* ~24px */
h4, .h4 { font-size: var(--font-size-h4); } /* ~18px */
h5, .h5 { font-size: var(--font-size-h5); } /* ~14px */
h6, .h6 { font-size: var(--font-size-h6); } /* ~12px */

/*
   Horizontal Ruler
   -------------------------------------------------- */
hr {
    color: var(--hr-border);
}

/*
   iFrames
   -------------------------------------------------- */
iframe { 
    margin-top: 0px;
}

/*
   Links
   -------------------------------------------------- */
a {
    color: var(--link-color);
    text-decoration: none;
    transition: all 150ms ease;

    &:hover,
    &:focus {
        color: var(--link-hover-color);
        text-decoration: none;
        outline: none;
    }
}

/*
   Containers - Bootstrap (Support for screens bigger than XXL)
   -------------------------------------------------- */
@media (min-width: 1600px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1500px;
    }
}

@media (min-width: 1920px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1740px;
    }
}

/*
   Z-Index - Bootstrap
   -------------------------------------------------- */
.z-50 { z-index: 50; }

/*
   Affix - Bootstrap
   -------------------------------------------------- */
.affix { z-index: 999; }

/*
   Contextual Colors - Bootstrap
   -------------------------------------------------- */
.text-primary { color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; }
.text-secondary { color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; }
.text-success { color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; }
.text-warning { color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; }
.text-danger { color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; }
.text-info { color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; }

/*
   Text Background Colors - Bootstrap
   -------------------------------------------------- */
.text-bg-primary { background-color: var(--brand-primary) !important; }
.text-bg-secondary { background-color: var(--brand-secondary) !important; }
.text-bg-success { background-color: var(--brand-success) !important; }
.text-bg-danger { background-color: var(--brand-danger) !important; }
.text-bg-warning { background-color: var(--brand-warning) !important; }
.text-bg-info { 
    background-color: var(--brand-info) !important; 
    color: white !important;
}

/*
   Background Colors - Bootstrap
   -------------------------------------------------- */
.bg-primary { background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; }
.bg-secondary { background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; }
.bg-success { background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; }
.bg-info { background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; }
.bg-warning { background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; }
.bg-danger { background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; }
.bg-light { background-color: var(--gray-light) !important; }

/*
   Columns - Bootstrap
   -------------------------------------------------- */
[class^="col-"], 
[class*=" col-"] {
    position: relative;
}

/*
   Badges - Bootstrap
   -------------------------------------------------- */
.badge {
    --bs-badge-padding-x: 0.75em;

    &.badge-outline {
        background-color: rgba(255, 255, 255, 0.25);
        border: 1px solid color-mix(in srgb, var(--gray) 20%, transparent);
        color: var(--gray);
    }
}

/*
   Buttons - Bootstrap
   -------------------------------------------------- */
.btn {        
    border-radius: var(--border-radius-base);
    padding: var(--padding-base-vertical) var(--padding-base-horizontal);
    line-height: var(--line-height-base);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    
    &:not(.ecm-icon) {
        font-family: var(--btn-font-family-base);
        font-size: var(--btn-font-size-base);
        font-weight: var(--btn-font-weight);
        letter-spacing: var(--btn-letter-spacing);
    }
    &:hover,
    &:focus {
        outline: none !important;
    }
    &:active,
    &.active {
        outline: none;
        box-shadow: none;
    }
    &.disabled,
    &[disabled],
    fieldset[disabled] & {
        background-color: var(--btn-disabled-bg);
        color: var(--btn-disabled-color);
        opacity: 0.7;
    }
}

/* Button Variants */
.btn-default {
    color: var(--btn-default-color);
    background-color: var(--btn-default-bg);
    border-color: var(--btn-default-bg);

    &:focus,
    &.focus,
    &:hover {
        color: var(--btn-default-hover-color);
        background-color: var(--btn-default-hover-bg);
        border-color: var(--btn-default-hover-bg);
    }
    &:active,
    &.active,
    .open > .dropdown-toggle& {
        color: var(--btn-default-hover-color);
        background-color: var(--btn-default-active-bg);
        border-color: var(--btn-default-active-bg);
        background-image: none;
    }
    &.disabled,
    &[disabled],
    fieldset[disabled] & {
        background-color: var(--btn-disabled-bg);
        color: var(--btn-disabled-color);
        border-color: color-mix(in srgb, var(--btn-disabled-bg) 75%, transparent);
        opacity: 0.7;
    }
}

.btn-default-active {
    color: var(--btn-default-color);
    background-color: var(--btn-default-hover-bg);
    border: var(--border-size) solid var(--border-color);

    &:focus,
    &.focus,
    &:hover {
        color: var(--btn-default-hover-color);
        background-color: var(--btn-default-hover-bg);
        border-color: var(--border-color);
    }
    &:active,
    &.active {
        background-color: var(--btn-default-active-bg);
        background-image: none;
    }
    &.disabled,
    &[disabled],
    fieldset[disabled] & {
        background-color: transparent;
        color: var(--btn-disabled-color);
        border-color: color-mix(in srgb, transparent 75%, transparent);
        opacity: 0.7;
    }
}

.btn-primary {
    color: var(--btn-primary-color);
    background-color: var(--btn-primary-bg);
    border-color: var(--btn-primary-bg);

    &:focus,
    &.focus,
    &:hover {
        color: var(--btn-primary-hover-color);
        background-color: var(--btn-primary-hover-bg);
        border-color: var(--btn-primary-hover-bg);
    }
    &:active,
    &.active,
    .open > .dropdown-toggle& {
        color: var(--btn-primary-hover-color);
        background-color: var(--btn-primary-active-bg);
        border-color: var(--btn-primary-active-bg);
        background-image: none;
    }
    &.disabled,
    &[disabled],
    fieldset[disabled] & {
        background-color: var(--btn-primary-bg);
        color: color-mix(in srgb, var(--btn-primary-bg) 55%, black);
        border-color: color-mix(in srgb, var(--btn-primary-bg) 75%, transparent);
        opacity: 0.7;
    }
}

.btn-success {
    color: var(--reverse-color);
    background-color: var(--btn-success-bg);
    border-color: var(--btn-success-bg);

    &:focus,
    &.focus,
    &:hover {
        color: var(--reverse-color);
        background-color: var(--btn-success-hover-bg);
        border-color: var(--btn-success-hover-bg);
    }
    &:active,
    &.active,
    .open > .dropdown-toggle& {
        color: var(--reverse-color);
        background-color: var(--btn-success-active-bg);
        border-color: var(--btn-success-active-bg);
        background-image: none;
    }
    &.disabled,
    &[disabled],
    fieldset[disabled] & {
        background-color: var(--btn-success-bg);
        color: color-mix(in srgb, var(--btn-success-bg) 55%, black);
        border-color: color-mix(in srgb, var(--btn-success-bg) 75%, transparent);
        opacity: 0.7;
    }
}

.btn-info {
    color: var(--reverse-color);
    background-color: var(--btn-info-bg);
    border-color: var(--btn-info-bg);

    &:focus,
    &.focus,
    &:hover {
        color: var(--reverse-color);
        background-color: var(--btn-info-hover-bg);
        border-color: var(--btn-info-hover-bg);
    }
    &:active,
    &.active,
    .open > .dropdown-toggle& {
        color: var(--reverse-color);
        background-color: var(--btn-info-active-bg);
        border-color: var(--btn-info-active-bg);
        background-image: none;
    }
    &.disabled,
    &[disabled],
    fieldset[disabled] & {
        background-color: var(--btn-info-bg);
        color: color-mix(in srgb, var(--btn-info-bg) 55%, black);
        border-color: color-mix(in srgb, var(--btn-info-bg) 75%, transparent);
        opacity: 0.7;
    }
}

.btn-warning {
    color: var(--reverse-color);
    background-color: var(--btn-warning-bg);
    border-color: var(--btn-warning-bg);

    &:focus,
    &.focus,
    &:hover {
        color: var(--reverse-color);
        background-color: var(--btn-warning-hover-bg);
        border-color: var(--btn-warning-hover-bg);
    }
    &:active,
    &.active,
    .open > .dropdown-toggle& {
        color: var(--reverse-color);
        background-color: var(--btn-warning-active-bg);
        border-color: var(--btn-warning-active-bg);
        background-image: none;
    }
    &.disabled,
    &[disabled],
    fieldset[disabled] & {
        background-color: var(--btn-warning-bg);
        color: color-mix(in srgb, var(--btn-warning-bg) 55%, black);
        border-color: color-mix(in srgb, var(--btn-warning-bg) 75%, transparent);
        opacity: 0.7;
    }
}

.btn-danger {
    color: var(--reverse-color);
    background-color: var(--btn-danger-bg);
    border-color: var(--btn-danger-bg);

    &:focus,
    &.focus,
    &:hover {
        color: var(--reverse-color);
        background-color: var(--btn-danger-hover-bg);
        border-color: var(--btn-danger-hover-bg);
    }
    &:active,
    &.active,
    .open > .dropdown-toggle& {
        color: var(--reverse-color);
        background-color: var(--btn-danger-active-bg);
        border-color: var(--btn-danger-active-bg);
        background-image: none;
    }
    &.disabled,
    &[disabled],
    fieldset[disabled] & {
        background-color: var(--btn-danger-bg);
        color: color-mix(in srgb, var(--btn-danger-bg) 55%, black);
        border-color: color-mix(in srgb, var(--btn-danger-bg) 75%, transparent);
        opacity: 0.7;
    }
}

/* Button Outline Variants - Bootstrap */
.btn.btn-outline-primary {
    --bs-btn-color: var(--btn-primary-bg);
    --bs-btn-border-color: var(--btn-primary-bg);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--btn-primary-hover-bg);
    --bs-btn-hover-border-color: var(--btn-primary-hover-bg);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--btn-primary-hover-bg);
    --bs-btn-active-border-color: var(--btn-primary-hover-bg);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--btn-primary-bg);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--btn-primary-bg);
    --bs-gradient: none;
}

.btn.btn-outline-info {
    --bs-btn-color: var(--btn-info-bg);
    --bs-btn-border-color: var(--btn-info-bg);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--btn-info-hover-bg);
    --bs-btn-hover-border-color: var(--btn-info-hover-bg);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--btn-info-hover-bg);
    --bs-btn-active-border-color: var(--btn-info-hover-bg);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--btn-info-bg);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--btn-info-bg);
    --bs-gradient: none;
}

.btn.btn-outline-success {
    --bs-btn-color: var(--btn-success-bg);
    --bs-btn-border-color: var(--btn-success-bg);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--btn-success-hover-bg);
    --bs-btn-hover-border-color: var(--btn-success-hover-bg);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--btn-success-hover-bg);
    --bs-btn-active-border-color: var(--btn-success-hover-bg);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--btn-success-bg);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--btn-success-bg);
    --bs-gradient: none;
}

.btn.btn-outline-danger {
    --bs-btn-color: var(--btn-danger-bg);
    --bs-btn-border-color: var(--btn-danger-bg);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--btn-danger-hover-bg);
    --bs-btn-hover-border-color: var(--btn-danger-hover-bg);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--btn-danger-hover-bg);
    --bs-btn-active-border-color: var(--btn-danger-hover-bg);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--btn-danger-bg);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--btn-danger-bg);
    --bs-gradient: none;
}

.btn.btn-outline-warning {
    --bs-btn-color: var(--btn-warning-bg);
    --bs-btn-border-color: var(--btn-warning-bg);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--btn-warning-hover-bg);
    --bs-btn-hover-border-color: var(--btn-warning-hover-bg);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--btn-warning-hover-bg);
    --bs-btn-active-border-color: var(--btn-warning-hover-bg);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--btn-warning-bg);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--btn-warning-bg);
    --bs-gradient: none;
}

/* Apply reverse color (default is white) */
.btn-reverse {
    color: var(--reverse-color) !important;
    border-color: var(--reverse-color);

    &.btn-default {
        border-color: var(--reverse-color) !important;

        &:hover {
            border-color: var(--btn-default-hover-bg) !important;
        }
    }

    &.btn-primary {
        border-color: var(--reverse-color);

        &:hover {
            border-color: var(--btn-primary-hover-bg) !important;
        }
    }

    &.btn-info {
        border-color: var(--reverse-color);

        &:hover {
            border-color: var(--btn-info-hover-bg) !important;
        }
    }
}

/* Wide buttons */
.btn-xs.btn-wide {
    padding: var(--padding-xs-vertical) 20px;
}

.btn-sm.btn-wide {
    padding: var(--padding-small-vertical) 30px;
}

.btn-lg.btn-wide {
    padding: var(--padding-large-vertical) 60px;
}

/* Button sizes */
.btn-xs,
.btn-group-xs > .btn {
    padding: var(--padding-xs-vertical) var(--padding-xs-horizontal);
    font-size: var(--btn-font-size-xs);
    line-height: var(--btn-line-height-xtra-small);
    border-radius: var(--btn-border-radius-xtra-small);
}

.btn-sm,
.btn-group-sm > .btn {
    padding: var(--padding-small-vertical) var(--padding-small-horizontal);
    font-size: var(--btn-font-size-sm);
    line-height: var(--btn-line-height-small);
    border-radius: var(--btn-border-radius-small);
}

.btn-lg,
.btn-group-lg > .btn {
    padding: var(--padding-large-vertical) var(--padding-large-horizontal);
    font-size: var(--btn-font-size-lg);
    line-height: var(--btn-line-height-large);
    border-radius: var(--btn-border-radius-large);
}

/*
   Button groups - Bootstrap
   -------------------------------------------------- */

/* Match the button text color to the arrow/caret for indicating dropdown-ness */
.btn-default .caret {
    border-top-color: var(--btn-default-color);
}

.btn-primary .caret,
.btn-success .caret,
.btn-warning .caret,
.btn-danger .caret,
.btn-info .caret {
    border-top-color: var(--reverse-color);
}

/* The clickable button for toggling the menu */
.btn-group .dropdown-toggle {
    border-left: 1px solid rgba(0, 0, 0, .05);
}

.btn-group:focus .dropdown-toggle {
    outline: none;
    transition: all 0.25s ease-in-out;
}

/* Remove the gradient and set the same inset shadow as the :active state */
.btn-group.open .dropdown-toggle {
    color: color-mix(in srgb, var(--btn-default-color) 75%, transparent);
    box-shadow: none;
}


/*
   Button input groups - Bootstrap
   -------------------------------------------------- */

.input-group-btn {
    & .btn {
        z-index: 3;
    }

    .input-group-hg & .btn {
        line-height: 31px;
    }

    .input-group-lg & .btn {
        line-height: 21px;
    }

    .input-group-sm & .btn {
        line-height: 19px;
    }

    /* Negative margin to only have a 2px border between the two */
    &:first-child > .btn {
        border-right-width: 0;
    }

    &:last-child > .btn {
        border-left-width: 0;
    }

    &:last-child > .btn.btn-outline {
        border-left-width: 1px;
    }

    /* Prevent input button groups from wrapping */
    & > .btn-default + .btn-default {
        border-left: var(--border-size) solid var(--gray-light);
    }

    & > .btn-default:first-child + .btn-default {
        margin-left: -1px;
    }

    & > .btn:first-child + .btn .caret {
        margin-left: 0;
    }
}

/* Sizing options - Remix the default form control sizing classes */
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
    border-radius: var(--border-radius-large);
}

.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
    border-radius: var(--border-radius-small);
}


/*
   Form controls - Bootstrap
   -------------------------------------------------- */

/* Form labels */
.form-label {
    font-family: var(--label-font-family);
    font-size: var(--label-font-size-base);
    font-weight: 600;
}

/* Custom label style - adds an '*' to the label for required fields */
.form-label-required::after {
    content: ' *';
    color: var(--bs-danger);
}

/* Custom required field indicator - adds a colored border on the field left side */
.form-required {
    border-left: 5px solid var(--bs-primary) !important;
}

/* Form select */
.form-select {
    border: var(--border-size) solid var(--input-border);
    color: var(--input-color);
    font-size: var(--font-size-base);
}

/* Form other controls */
.form-control,
.RadEditorTextArea > textarea {
    border: var(--border-size) solid var(--input-border);
    color: var(--input-color);
    font-family: var(--input-font-family-base);
    font-size: var(--font-size-base);
    border-radius: var(--input-border-radius-base);
    box-shadow: none;
    transition: border .25s linear, color .25s linear, background-color .25s linear;

    /* Customize the :focus state */
    &:focus {
        border-color: var(--input-border-focus);
        outline: 0;
    }

    /* Disabled and read-only inputs */
    &[disabled],
    &[readonly],
    fieldset[disabled] & {
        background-color: var(--input-bg-disabled);
        border-color: color-mix(in srgb, var(--gray) 40%, white);
        color: color-mix(in srgb, var(--gray) 50%, white);
        cursor: default;
        opacity: 0.7;
    }

    /* Unstyle the caret on <select>s in IE10+ */
    &::-ms-expand {
        border: 0;
        background-color: transparent;
    }

    /* Reset height for textareas */
    &:is(textarea) {
        height: auto;
    }

    /* Flat (without border) */
    &.flat {
        border-color: transparent;

        &:hover,
        &:focus {
            border-color: transparent;
        }
    }
}

.form-control.form-control-lg {
    /* keeps smaller font size but input height equal to lg size = 48px */
    padding: .782rem 1rem;
}

.form-control:focus-visible {
    box-shadow: 0 0 0 0.15rem rgba(13, 110, 253, .15) !important;
}

.form-check {
    padding-left: 1.6em;

    & .form-check-input {
        margin-top: 0;
        margin-left: -1.6em;

        &:focus {
            border-color: #b5b5c3;
            box-shadow: 0 0 0 0.15rem rgba(13, 110, 253, .15) !important;
        }

        &:checked {
            background-color: var(--brand-primary) !important;
            border-color: transparent;
        }
    }

    &:not(.form-switch) .form-check-input {
        width: 1rem !important;
        height: 1rem !important;
    }

    &:not(.form-switch) .form-check-input-lg {
        width: 1.4rem !important;
        height: 1.4rem !important;
        background-size: 65% 65%;
    }

    &.form-switch .form-check-input-lg {
        height: 1.5rem;
        width: 2.5rem;
    }

    & .form-check-label {
        margin-left: .55rem;
    }

    & .form-check-input-lg + .form-check-label {
        line-height: 1.5rem;
    }
}


/*
   Checkboxes and Radios (Customized with FontAwesome)
   -------------------------------------------------- */

/* Checkboxes */
.checkbox,
.checkbox-inline {
    margin-bottom: .125rem;

    & label {
        vertical-align: middle;
        position: relative;
        padding-left: 28px;
        line-height: 21px;
        font-weight: 400;

        &::before {
            content: "";
            display: inline-block;
            position: absolute;
            width: 20px;
            height: 20px;
            left: 0;
            border: 2px solid var(--input-border);
            border-radius: 2px;
            background-color: transparent;
            transition: all 0.25s ease;
        }

        &::after {
            display: inline-block;
            position: absolute;
            width: 20px;
            height: 20px;
            left: 0;
            top: 0;
            padding-left: 3px;
            color: var(--input-color);
            font-family: var(--font-family-icon);
            content: "\f00c";
            transition: all 0.25s ease;
            opacity: 0;
            z-index: 2;
            cursor: pointer;
        }
    }

    & input[type="checkbox"] {
        opacity: 0;
        z-index: 1;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;

        &:checked + label::after {
            opacity: 1;
        }

        &:disabled + label {
            opacity: 0.65;
            cursor: not-allowed;

            &::before {
                cursor: not-allowed;
            }

            &::after {
                color: var(--gray-light);
            }
        }
    }

    &.checkbox-circle label::before {
        border-radius: 50%;
    }

    &.checkbox-filled input[type="checkbox"] {
        &:checked + label::after {
            background-color: var(--gray);
        }

        &:checked + label::before {
            border-color: var(--gray-light);
        }

        &:disabled:checked + label::after {
            background-color: var(--gray-light);
            border-color: var(--gray-light);
        }

        &:checked + label::after {
            color: #fff;
        }
    }
}

.checkbox-inline {
    display: inline-block;
    margin-bottom: 0;
}

/* Checkbox color variants */
.checkbox-primary input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-primary);
}

.checkbox-primary input[type="checkbox"]:checked + label::after {
    color: var(--brand-primary);
}

.checkbox-primary.checkbox-filled input[type="checkbox"]:checked + label::after {
    background-color: var(--brand-primary);
}

.checkbox-primary.checkbox-filled input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-primary);
}

.checkbox-primary.checkbox-filled input[type="checkbox"]:disabled:checked + label::after {
    background-color: var(--gray-light);
    border-color: var(--gray-light);
}

.checkbox-primary.checkbox-filled input[type="checkbox"]:checked + label::after {
    color: #fff;
}

.checkbox-danger input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-danger);
}

.checkbox-danger input[type="checkbox"]:checked + label::after {
    color: var(--brand-danger);
}

.checkbox-danger.checkbox-filled input[type="checkbox"]:checked + label::after {
    background-color: var(--brand-danger);
}

.checkbox-danger.checkbox-filled input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-danger);
}

.checkbox-info input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-info);
}

.checkbox-info input[type="checkbox"]:checked + label::after {
    color: var(--brand-info);
}

.checkbox-info.checkbox-filled input[type="checkbox"]:checked + label::after {
    background-color: var(--brand-info);
}

.checkbox-info.checkbox-filled input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-info);
}

.checkbox-warning input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-warning);
}

.checkbox-warning input[type="checkbox"]:checked + label::after {
    color: var(--brand-warning);
}

.checkbox-warning.checkbox-filled input[type="checkbox"]:checked + label::after {
    background-color: var(--brand-warning);
}

.checkbox-warning.checkbox-filled input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-warning);
}

.checkbox-success input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-success);
}

.checkbox-success input[type="checkbox"]:checked + label::after {
    color: var(--brand-success);
}

.checkbox-success.checkbox-filled input[type="checkbox"]:checked + label::after {
    background-color: var(--brand-success);
}

.checkbox-success.checkbox-filled input[type="checkbox"]:checked + label::before {
    border-color: var(--brand-success);
}

/* Radios */
.radio {
    margin-bottom: .125rem;
    cursor: pointer;

    & label {
        vertical-align: middle;
        position: relative;
        padding-left: 25px;
        line-height: 21px;

        &::before {
            content: "";
            display: inline-block;
            position: absolute;
            width: 20px;
            height: 20px;
            left: 0;
            border: 2px solid var(--input-border);
            border-radius: 50%;
            background-color: #fff;
            transition: border 0.15s ease-in-out;
        }

        &::after {
            display: inline-block;
            position: absolute;
            content: " ";
            width: 10px;
            height: 10px;
            left: 5px;
            top: 5px;
            border-radius: 50%;
            background-color: var(--input-color);
            transition: all 0.25s ease;
            transform: scale(0);
        }
    }

    & input[type="radio"] {
        opacity: 0;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;

        &:checked + label::after {
            transform: scale(0.8);
        }

        &:disabled + label {
            opacity: 0.65;

            &::before {
                cursor: not-allowed;
            }
        }
    }

    &.radio-inline {
        display: inline-block;
        margin-top: 0;
        margin-bottom: 0;

        & label {
            padding-right: 15px;
        }
    }

    &.radio-filled input[type="radio"] {
        &:checked + label::before {
            background-color: var(--gray);
            border-color: var(--gray);
        }

        &:disabled:checked + label::before {
            background-color: var(--gray-light);
            border-color: var(--gray-light);
        }

        &:checked + label::after {
            background-color: #fff;
        }
    }
}

/* Radio color variants */
.radio-primary input[type="radio"] + label::after {
    background-color: var(--brand-primary);
}

.radio-primary input[type="radio"]:checked + label::before {
    border-color: var(--brand-primary);
}

.radio-primary input[type="radio"]:checked + label::after {
    background-color: var(--brand-primary);
}

.radio-primary.radio-filled input[type="radio"]:checked + label::before {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.radio-primary.radio-filled input[type="radio"]:checked + label::after {
    background-color: #fff;
}

.radio-secondary input[type="radio"] + label::after {
    background-color: var(--brand-secondary);
}

.radio-secondary input[type="radio"]:checked + label::before {
    border-color: var(--brand-secondary);
}

.radio-secondary input[type="radio"]:checked + label::after {
    background-color: var(--brand-secondary);
}

.radio-secondary.radio-filled input[type="radio"]:checked + label::before {
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
}

.radio-danger input[type="radio"] + label::after {
    background-color: var(--brand-danger);
}

.radio-danger input[type="radio"]:checked + label::before {
    border-color: var(--brand-danger);
}

.radio-danger input[type="radio"]:checked + label::after {
    background-color: var(--brand-danger);
}

.radio-danger.radio-filled input[type="radio"]:checked + label::before {
    background-color: var(--brand-danger);
    border-color: var(--brand-danger);
}

.radio-info input[type="radio"] + label::after {
    background-color: var(--brand-info);
}

.radio-info input[type="radio"]:checked + label::before {
    border-color: var(--brand-info);
}

.radio-info input[type="radio"]:checked + label::after {
    background-color: var(--brand-info);
}

.radio-info.radio-filled input[type="radio"]:checked + label::before {
    background-color: var(--brand-info);
    border-color: var(--brand-info);
}

.radio-warning input[type="radio"] + label::after {
    background-color: var(--brand-warning);
}

.radio-warning input[type="radio"]:checked + label::before {
    border-color: var(--brand-warning);
}

.radio-warning input[type="radio"]:checked + label::after {
    background-color: var(--brand-warning);
}

.radio-warning.radio-filled input[type="radio"]:checked + label::before {
    background-color: var(--brand-warning);
    border-color: var(--brand-warning);
}

.radio-success input[type="radio"] + label::after {
    background-color: var(--brand-success);
}

.radio-success input[type="radio"]:checked + label::before {
    border-color: var(--brand-success);
}

.radio-success input[type="radio"]:checked + label::after {
    background-color: var(--brand-success);
}

.radio-success.radio-filled input[type="radio"]:checked + label::before {
    background-color: var(--brand-success);
    border-color: var(--brand-success);
}

/* Hack if checkboxes are inside a form-control */
.form-control .checkbox {
    margin-top: 0px;
    margin-bottom: 0px;
    position: inherit; /* hack for tooltips */
}

/* ASP.NET HACKS */
.radio.radiobuttonlist input[type="radio"],
.checkbox.checkboxlist input[type="checkbox"] {
    margin-left: 0;
}

.radio.radiobuttonlist label,
.checkbox.checkboxlist label {
    margin-right: 20px;
    margin-bottom: 5px;
}


/*
   Progress bars - Bootstrap 
   -------------------------------------------------- */

/* Outer container */
.progress,
.progress-stacked {
    --bs-progress-bg: var(--progress-bg);
    --bs-progress-border-radius: var(--progress-border-radius);
    --bs-progress-height: var(--progress-height);
}

/* Bar of progress */
.progress-bar {
    --bs-progress-bar-bg: var(--progress-bar-bg);
    box-shadow: none;
}


/*
   Dropdown menus - Bootstrap
   -------------------------------------------------- */

/* The dropdown menu (ul) */
.dropdown-menu {
    background-color: var(--dropdown-bg);
    border: none;
    margin-top: 8px !important;
    box-shadow: none;
    transition-property: all;
    transition-duration: 0.25s;
    transition-timing-function: ease;
    border-radius: var(--border-radius-base) var(--border-radius-base) !important;
    font-size: var(--bs-body-font-size);
}

/* Dropdown items - Links within the dropdown menu */
.dropdown-menu > li > a {
    color: var(--dropdown-link-color);
    text-decoration: none;
    border-radius: var(--border-radius-base);
    transition-property: background-color;
    transition-duration: 0.25s;
    transition-timing-function: ease;
    padding: var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);
}
.dropdown-menu > li > a::before,
.dropdown-menu > li > a::after {
    content: " ";
    display: table;
}
.dropdown-menu > li > a::after {
    clear: both;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
    color: var(--dropdown-link-hover-color) !important;
    background-color: var(--dropdown-link-hover-bg);
}

.dropdown-menu > li > a.text-primary   { color: var(--brand-primary); }
.dropdown-menu > li > a.text-secondary { color: var(--brand-secondary); }
.dropdown-menu > li > a.text-success   { color: var(--brand-success); }
.dropdown-menu > li > a.text-warning   { color: var(--brand-warning); }
.dropdown-menu > li > a.text-danger    { color: var(--brand-danger); }
.dropdown-menu > li > a.text-info      { color: var(--brand-info); }

/* Active state */
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
    color: var(--dropdown-link-active-color);
    text-decoration: none;
    outline: 0;
    background-color: var(--dropdown-link-active-bg);
    border-radius: var(--border-radius-base);
}


/*
   Tables - Bootstrap
   -------------------------------------------------- */

.table > :not(caption) > * > * {
    border-bottom-width: 0;
    transition: all 0.25s ease-in-out;
}
.table td:not(th) {
    border-top: 1px solid color-mix(in srgb, var(--gray-light) 90%, white);
}


/*
   Pager controls
   Requires: FontAwesome font
   -------------------------------------------------- */

.pager-first-page,
.pager-previous-page,
.pager-next-page,
.pager-last-page {
    font-family: 'FontAwesome'
}
.pager-first-page:before {content: '\f100'; /* fa-angle-double-left */ }
.pager-previous-page:before {content: '\f104'; /* fa-angle-left */ }
.pager-next-page:before {content: '\f105'; /* fa-angle-right */ }
.pager-last-page:before {content: '\f101'; /*  fa-angle-double-right */ }


/*
   Cards - Bootstrap   
   -------------------------------------------------- */

.card {
    --bs-card-border-radius: 4px;
}
.card .card-body {
    padding: 1.25rem; /* 20px */
}
.card .card-header {
    --bs-card-border-width: 0;
    color: inherit;
}


/*
   Tooltips - Bootstrap
   -------------------------------------------------- */

/* Base class */
.tooltip {
    --bs-tooltip-zindex: 3100; /* must be above 3010 to be visible when used inside rad windows */
    --bs-font-sans-serif: var(--font-family-base);
    --bs-tooltip-opacity: var(--tooltip-opacity);
    font-size: var(--font-size-small);
}
.tooltip.in     { opacity: var(--tooltip-opacity); }
.tooltip.top    { margin-top:  -3px; padding: var(--tooltip-arrow-width) 0; }
.tooltip.right  { margin-left:  3px; padding: 0 var(--tooltip-arrow-width); }
.tooltip.bottom { margin-top:   3px; padding: var(--tooltip-arrow-width) 0; }
.tooltip.left   { margin-left: -3px; padding: 0 var(--tooltip-arrow-width); }

/* Wrapper for the tooltip content */
.tooltip-inner {
    max-width: var(--tooltip-max-width);
    padding: 10px 10px;
    color: var(--tooltip-color);
    background-color: var(--tooltip-bg);
    border-radius: var(--border-radius-base);
}

.tooltip.top .tooltip-arrow {
    bottom: 0;
    left: 50%;
    margin-left: calc(var(--tooltip-arrow-width) * -1);
    border-width: var(--tooltip-arrow-width) var(--tooltip-arrow-width) 0;
    border-top-color: var(--tooltip-arrow-color);
}
.tooltip.right .tooltip-arrow {
    top: 50%;
    left: 0;
    margin-top: calc(var(--tooltip-arrow-width) * -1);
    border-width: var(--tooltip-arrow-width) var(--tooltip-arrow-width) var(--tooltip-arrow-width) 0;
    border-right-color: var(--tooltip-arrow-color);
}
.tooltip.left .tooltip-arrow {
    top: 50%;
    right: 0;
    margin-top: calc(var(--tooltip-arrow-width) * -1);
    border-width: var(--tooltip-arrow-width) 0 var(--tooltip-arrow-width) var(--tooltip-arrow-width);
    border-left-color: var(--tooltip-arrow-color);
}
.tooltip.bottom .tooltip-arrow {
    top: 0;
    left: 50%;
    margin-left: calc(var(--tooltip-arrow-width) * -1);
    border-width: 0 var(--tooltip-arrow-width) var(--tooltip-arrow-width);
    border-bottom-color: var(--tooltip-arrow-color);
}

/* Custom style. Show help cursor on certain elements only */
[data-bs-toggle="tooltip"]:not(a):not(button) {
    cursor: help;
}


/*
   Bootstrap Help Block
   -------------------------------------------------- */

.help-block {
    margin-bottom: 5px; /* Override BS default 10px margin */
    font-size: 13px;
}


/* ---------------------------------------------------------------------------------
------------------------------        Addons        --------------------------------
------------------------------------------------------------------------------------*/

/*
   Bootstrap Shadows on hover
   Supports using AOS animation library on the same element
   -------------------------------------------------- */
.hover-shadow-sm::after,
.hover-shadow::after,
.hover-shadow-lg::after
 { 
    content: ""; 
    position: absolute; 
    inset: 0; 
    pointer-events: none; 
    transition: box-shadow 0.25s ease-in-out;
    overflow: hidden;    
}
.hover-shadow-sm.rounded-1::after,
.hover-shadow.rounded-1::after,
.hover-shadow-lg.rounded-1::after
{
    border-radius: var(--bs-border-radius-sm) !important;
}
.hover-shadow-sm.rounded-2::after,
.hover-shadow.rounded-2::after,
.hover-shadow-lg.rounded-2::after
{
    border-radius: var(--bs-border-radius) !important;
}
.hover-shadow-sm.rounded-3::after,
.hover-shadow.rounded-3::after,
.hover-shadow-lg.rounded-3::after
{
    border-radius: var(--bs-border-radius-lg) !important;
}
.hover-shadow-sm.rounded-4::after,
.hover-shadow.rounded-4::after,
.hover-shadow-lg.rounded-4::after
{
    border-radius: var(--bs-border-radius-xl) !important;
}
.hover-shadow-sm.rounded-5::after,
.hover-shadow.rounded-5::after,
.hover-shadow-lg.rounded-5::after
{
    border-radius: var(--bs-border-radius-xxl) !important;
}
.hover-shadow-sm:hover::after {
    box-shadow: var(--bs-box-shadow-sm);
}
.hover-shadow:hover::after {
    box-shadow: var(--bs-box-shadow);
}
.hover-shadow-lg:hover::after {
    box-shadow: var(--bs-box-shadow-lg);
}


/*
   Bootstrap Callouts
   -------------------------------------------------- */

.callout {
    padding: 20px;
    margin: 20px 0;
    border: 1px solid #eee;
    border-left-width: 5px;
    border-radius: 3px;

    & > h3,
    & h4 {
        margin-top: 0;
        margin-bottom: 5px;
    }
    & > i { margin-right: 5px; }
    & > p:last-child { margin-bottom: 0; }
    & > code { border-radius: 3px; }

    &.callout-default {
        border-left-color: var(--gray);
        & > h3, & h4, & > i { color: var(--gray); }
    }
    &.callout-primary {
        border-left-color: var(--brand-primary);
        & > h3, & h4, & > i { color: var(--brand-primary); }
    }
    &.callout-secondary {
        border-left-color: var(--brand-secondary);
        & > h3, & h4, & > i { color: var(--brand-secondary); }
    }
    &.callout-danger {
        border-left-color: var(--brand-danger);
        & > h3, & h4, & > i { color: var(--brand-danger); }
    }
    &.callout-warning {
        border-left-color: var(--brand-warning);
        & > h3, & h4, & > i { color: var(--brand-warning); }
    }
    &.callout-info {
        border-left-color: var(--brand-info);
        & > h3, & h4, & > i { color: var(--brand-info); }
    }
}


/*
   eCM Page Actions Control Styles
   -------------------------------------------------- */

.ecm-pageactions-container hr {
    margin-top: 50px;
}

.ecm-pageactions-container .ecm-actions-list {
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;

    & > div {
        text-align: center;
        background-color: color-mix(in srgb, var(--gray-light) 30%, #ffffff);
        display: inline-flex;
        border-radius: 25px;
        margin: 10px;
        height: 42px;
        width: 42px;
        flex-direction: column;
        justify-content: center;
        color: #a0a0a0;
        transition: background-color 0.2s ease-in-out;
    }

    & > div:hover {
        color: #fff;
        background-color: var(--link-hover-color);
    }

    & > div a {
        text-decoration: none;
        color: inherit;
        font-weight: 100;
    }

    & .social-link-facebook:hover { background-color: #37589b; color: #fff; }
    & .social-link-twitter:hover  { background-color: #46d4fe; color: #fff; }
    & .social-link-whatsapp:hover { background-color: #00e676; color: #fff; }
    & .social-link-pinterest:hover{ background-color: #cb2027; color: #fff; }
    & .social-link-linkedin:hover { background-color: #419cca; color: #fff; }

    & .hidden-link-text {
        display: none;
    }
}


/*
   eContent Manager Corner Ribbons
   Based on code generated by http://www.cssportal.com/css-ribbon-generator/
   -------------------------------------------------- */

.ecm-ribbon {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    overflow: hidden;
    width: 75px;
    height: 75px;
    text-align: right;

    & span {
        font-size: 10px;
        font-weight: bold;
        color: #FFF;
        text-transform: uppercase;
        text-align: center;
        line-height: 20px;
        display: block;
        background: #79A70A;
        background: linear-gradient(#9BC90D 0%, #79A70A 100%);
        position: absolute;
        /* Default size (.rb-lg) */
        width: 100px;
        /* Default position (.rb-top-left) */
        top: 19px;
        left: -21px;
        transform: rotate(-45deg);
    }

    &.rb-sm span {
        width: 60px;
        top: 5px;
        left: -15px;
    }

    &.rb-top-right {
        right: 0px;
        left: inherit;

        & span {
            transform: rotate(45deg);
            top: 19px;
            right: -21px;
            left: inherit;
        }
        &.rb-sm span {
            width: 60px;
            top: 5px;
            right: -15px;
        }
        &.rb-lg span {
            width: 100px;
            top: 19px;
            right: -21px;
        }
    }

    /* Folded tips effect */
    &.rb-folded {
        left: -5px;
        top: -5px;

        &.rb-top-right {
            top: -5px;
            right: -5px;
            left: inherit;
        }
        & span::before {
            content: "";
            position: absolute;
            left: 0px;
            top: 100%;
            z-index: -1;
            border-left: 3px solid #79A70A;
            border-right: 3px solid transparent;
            border-bottom: 3px solid transparent;
            border-top: 3px solid #79A70A;
        }
        & span::after {
            content: "";
            position: absolute;
            right: 0px;
            top: 100%;
            z-index: -1;
            border-left: 3px solid transparent;
            border-right: 3px solid #79A70A;
            border-bottom: 3px solid transparent;
            border-top: 3px solid #79A70A;
        }
    }

    /* Shadow effect */
    &.rb-shadow span {
        box-shadow: 0 2px 10px -4px rgba(0, 0, 0, .5);
    }

    /* Colors */
    &.rb-primary {
        & span {
            background: var(--brand-primary);
            background: linear-gradient(color-mix(in srgb, var(--brand-primary) 88%, white) 0%, var(--brand-primary) 100%);
        }
        &.rb-folded span::before {
            border-left-color: var(--brand-primary);
            border-top-color: var(--brand-primary);
        }
        &.rb-folded span::after {
            border-right-color: var(--brand-primary);
            border-top-color: var(--brand-primary);
        }
    }
    &.rb-secondary {
        & span {
            background: var(--brand-secondary);
            background: linear-gradient(color-mix(in srgb, var(--brand-secondary) 88%, white) 0%, var(--brand-secondary) 100%);
        }
        &.rb-folded span::before {
            border-left-color: var(--brand-secondary);
            border-top-color: var(--brand-secondary);
        }
        &.rb-folded span::after {
            border-right-color: var(--brand-secondary);
            border-top-color: var(--brand-secondary);
        }
    }
    &.rb-info {
        & span {
            background: var(--brand-info);
            background: linear-gradient(color-mix(in srgb, var(--brand-info) 88%, white) 0%, var(--brand-info) 100%);
        }
        &.rb-folded span::before {
            border-left-color: var(--brand-info);
            border-top-color: var(--brand-info);
        }
        &.rb-folded span::after {
            border-right-color: var(--brand-info);
            border-top-color: var(--brand-info);
        }
    }
    &.rb-success {
        & span {
            background: var(--brand-success);
            background: linear-gradient(color-mix(in srgb, var(--brand-success) 88%, white) 0%, var(--brand-success) 100%);
        }
        &.rb-folded span::before {
            border-left-color: var(--brand-success);
            border-top-color: var(--brand-success);
        }
        &.rb-folded span::after {
            border-right-color: var(--brand-success);
            border-top-color: var(--brand-success);
        }
    }
    &.rb-warning {
        & span {
            background: var(--brand-warning);
            background: linear-gradient(color-mix(in srgb, var(--brand-warning) 88%, white) 0%, var(--brand-warning) 100%);
        }
        &.rb-folded span::before {
            border-left-color: var(--brand-warning);
            border-top-color: var(--brand-warning);
        }
        &.rb-folded span::after {
            border-right-color: var(--brand-warning);
            border-top-color: var(--brand-warning);
        }
    }
    &.rb-danger {
        & span {
            background: var(--brand-danger);
            background: linear-gradient(color-mix(in srgb, var(--brand-danger) 88%, white) 0%, var(--brand-danger) 100%);
        }
        &.rb-folded span::before {
            border-left-color: var(--brand-danger);
            border-top-color: var(--brand-danger);
        }
        &.rb-folded span::after {
            border-right-color: var(--brand-danger);
            border-top-color: var(--brand-danger);
        }
    }
}


/*
   Ripple Effect
   Requires Ripple Effect script on eCM.js
   -------------------------------------------------- */

.material-design-ripple {
    position: relative;
    overflow: hidden;
    transform: translatez(0);
}

.ink {
    display: block;
    position: absolute;
    pointer-events: none;
    border-radius: 50%;
    transform: scale(0);
    background: #fff;
    opacity: 1;
}

/* Animation effect */
.ink.animate {
    animation: ripple .5s linear;
}

@keyframes ripple {
    100% {
        opacity: 0;
        transform: scale(2.5);
    }
}


/*
   eCM Header Bar Plugin
   Requires Header Bar Plugin script on eCM.js
   Compatible with Bootstrap 3+ Affix Plugin
   -------------------------------------------------- */

/* Header default style */
.ecm-header-bar-wrapper {
    display: block;
    width: 100%;
}
.ecm-header-bar {
    margin-bottom: 0px;
    border-bottom: none;
    transition: all .4s ease;
    background-color: white;
    animation-duration: .5s;
    animation-delay: 0s;
}
.ecm-header-bar.affix,
.ecm-header-bar.hb-fixed {
    top: 0;
    width: 100%;
    border-radius: 0px;
    z-index: 110; /* overrides Bootstrap z-index:999 that overlaps gallery overlay */
    box-shadow: 0px 3px 3px -1px rgba(0, 0, 0, 0.05);
}

/* Header floating mode */
.ecm-header-bar.ecm-hb-float {
    position: absolute;
    width: 100%;
    top: 0;
    z-index: 110;
}
.ecm-header-bar.ecm-hb-float.affix,
.ecm-header-bar.hb-fixed {
    position: fixed;
}


/*
   Expanding Search Box
   Based on http://tympanus.net/Tutorials/ExpandingSearchBar/
   -------------------------------------------------- */

.eCM-search-box {
    position: relative;
    width: 0%;
    height: var(--input-height-base);
    min-width: var(--input-height-base);
    overflow: hidden;
    transition: width .1s;
    -webkit-backface-visibility: hidden;

    &.sb-sm {
        height: var(--input-height-small);
        min-width: var(--input-height-small);
    }
    &.sb-lg {
        height: var(--input-height-large);
        min-width: var(--input-height-large);
    }
    & .placeholder {
        opacity: 0;
    }
}

.navbar-nav > li > .eCM-search-box.sb-sm {
    margin-top: 10px;
    margin-bottom: 10px;
}

/* Input box */
.sb-input {
    position: absolute;
    top: 0;
    right: 0;
    background: var(--input-bg);
    width: 100%;
    z-index: 10;
    opacity: 0;
    transition: opacity;
}

/* Input placeholder */
.sb-input::-webkit-input-placeholder { color: var(--input-color); }
.sb-input:-moz-placeholder           { color: var(--input-color); }
.sb-input::-moz-placeholder          { color: var(--input-color); }
.sb-input:-ms-input-placeholder      { color: var(--input-color); }

/* Clear entry control (X) */
.eCM-search-box .clearer {
    opacity: 0;
}
.no-js .eCM-search-box .clearer {
    opacity: 1;
}
.eCM-search-box.sb-open .clearer,
.no-js .eCM-search-box .clearer {
    z-index: 100;
    right: 30px;
    pointer-events: auto;
    cursor: pointer;
    opacity: 1;
}

.sb-primary .eCM-search-box.sb-open .clearer,
.sb-primary .no-js .eCM-search-box .clearer {
    color: var(--brand-primary);
    &:hover { color: color-mix(in srgb, var(--brand-primary) 85%, black); }
}
.sb-secondary .eCM-search-box.sb-open .clearer,
.sb-secondary .no-js .eCM-search-box .clearer {
    color: var(--brand-secondary);
    &:hover { color: color-mix(in srgb, var(--brand-secondary) 85%, black); }
}
.sb-info .eCM-search-box.sb-open .clearer,
.sb-info .no-js .eCM-search-box .clearer {
    color: var(--brand-info);
    &:hover { color: color-mix(in srgb, var(--brand-info) 85%, black); }
}
.sb-success .eCM-search-box.sb-open .clearer,
.sb-success .no-js .eCM-search-box .clearer {
    color: var(--brand-success);
    &:hover { color: color-mix(in srgb, var(--brand-success) 85%, black); }
}
.sb-danger .eCM-search-box.sb-open .clearer,
.sb-danger .no-js .eCM-search-box .clearer {
    color: var(--brand-danger);
    &:hover { color: color-mix(in srgb, var(--brand-danger) 85%, black); }
}
.sb-warning .eCM-search-box.sb-open .clearer,
.sb-warning .no-js .eCM-search-box .clearer {
    color: var(--brand-warning);
    &:hover { color: color-mix(in srgb, var(--brand-warning) 85%, black); }
}

/* Search icon and submit button */
.sb-icon-search,
.sb-submit {
    width: var(--input-height-base);
    height: var(--input-height-base);
    line-height: var(--line-height-base);
    font-size: var(--font-size-base);
    padding: var(--padding-base-vertical) var(--padding-base-horizontal);
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    text-align: center;
    cursor: pointer;
}

.sb-submit {
    background: #fff; /* IE needs this */
    opacity: 0;
    color: transparent;
    border: none;
    outline: none;
    z-index: -1;
}

.sb-icon-search {
    background: transparent;
    z-index: 90;
    font-family: 'FontAwesome';
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    transition: background .25s, color .25s;
    border-bottom-right-radius: var(--input-border-radius-base);
    border-top-right-radius: var(--input-border-radius-base);
}
.sb-icon-search::before {
    content: "\f002";
    vertical-align: middle;
}

.sb-primary .sb-icon-search {
    color: var(--brand-primary);
    &:hover { color: color-mix(in srgb, var(--brand-primary) 85%, black); }
}
.sb-secondary .sb-icon-search {
    color: var(--brand-secondary);
    &:hover { color: color-mix(in srgb, var(--brand-secondary) 85%, black); }
}
.sb-info .sb-icon-search {
    color: var(--brand-info);
    &:hover { color: color-mix(in srgb, var(--brand-info) 85%, black); }
}
.sb-success .sb-icon-search {
    color: var(--brand-success);
    &:hover { color: color-mix(in srgb, var(--brand-success) 85%, black); }
}
.sb-danger .sb-icon-search {
    color: var(--brand-danger);
    &:hover { color: color-mix(in srgb, var(--brand-danger) 85%, black); }
}
.sb-warning .sb-icon-search {
    color: var(--brand-warning);
    &:hover { color: color-mix(in srgb, var(--brand-warning) 85%, black); }
}

/* Open state */
.eCM-search-box.sb-open,
.no-js .eCM-search-box {
    width: 100%;

    & .placeholder {
        width: 100% !important;
        left: 0 !important;
        opacity: 1;
    }
}
.eCM-search-box.force-width.sb-open,
.no-js .eCM-search-box.force-width {
    width: 250px;
}
.eCM-search-box.sb-open .sb-input,
.no-js .eCM-search-box .sb-input {
    opacity: 1;
}
.eCM-search-box.sb-open .sb-icon-search,
.no-js .eCM-search-box .sb-icon-search {
    z-index: 11;
}
.eCM-search-box.sb-open .sb-submit,
.no-js .eCM-search-box .sb-submit {
    z-index: 90;
}


/*
   eCM Fontawesome Checkboxes (Does not require javascript)
   -------------------------------------------------- */

.ecm-togglebox {
    display: block;
    margin-bottom: 20px;
    margin-top: 10px;

    & label {
        vertical-align: middle;
        position: relative;
        margin-bottom: 0;
        min-height: var(--input-height-base);
        padding-left: 8px;
        line-height: var(--input-height-base);
        font-weight: 400;
        cursor: pointer;

        &::before {
            content: "";
            display: inline-block;
            position: absolute;
            width: var(--input-height-base);
            height: var(--input-height-base);
            left: 0;
            margin-left: calc(var(--input-height-base) * -1);
            border: 2px solid var(--input-border);
            border-radius: var(--border-radius-base);
            background-color: transparent;
            transition: all .25s ease;
        }
        &::after {
            display: inline-block;
            position: absolute;
            width: var(--input-height-base);
            height: var(--input-height-base);
            left: 0;
            top: 0;
            margin-left: calc(var(--input-height-base) * -1);
            color: var(--input-color);
            font-family: var(--font-family-icon);
            content: "\f00c";
            transition: all .25s ease;
            z-index: 2;
            cursor: pointer;
            text-align: center;
        }
    }

    /* Small size */
    &.tb-sm label {
        min-height: calc(var(--input-height-small) - 2px);
        line-height: calc(var(--input-height-small) - 2px);
    }
    &.tb-sm label::before,
    &.tb-sm label::after {
        width: calc(var(--input-height-small) - 2px);
        height: calc(var(--input-height-small) - 2px);
        font-size: var(--font-size-small);
        margin-left: calc(var(--input-height-small) * -1);
    }

    /* Large size */
    &.tb-lg label {
        min-height: var(--input-height-large);
        line-height: var(--input-height-large);
        padding-left: 28px;
    }
    &.tb-lg label::before,
    &.tb-lg label::after {
        width: var(--input-height-large);
        height: var(--input-height-large);
        font-size: 28px;
    }

    /* Checkbox mode */
    &.checkbox-mode label::after { opacity: 0; }

    /* No border */
    &.tb-no-border label { padding-left: 0px; }
    &.tb-no-border label::before { border: none; }

    /* Round border */
    &.tb-round-border label::before,
    &.tb-round-border label::after { border-radius: 50%; }

    /* Fontawesome icons */
    &.tb-fa-heart label::after      { content: "\f004"; }
    &.tb-fa-heart-o label::after    { content: "\f08a"; }
    &.tb-fa-bookmark label::after   { content: "\f02e"; }
    &.tb-fa-bookmark-o label::after { content: "\f097"; }
    &.tb-fa-filter label::after     { content: "\f0b0"; }

    & input[type="checkbox"] {
        opacity: 0;
        z-index: 1;
        width: var(--input-height-base);

        &:checked + label::after {
            opacity: 1;
        }
        &:disabled + label {
            opacity: .65;
            cursor: not-allowed;

            &::before { cursor: not-allowed; }
            &::after {
                color: var(--input-color);
                cursor: not-allowed;
            }
        }
    }

    &.tb-sm input[type="checkbox"] {
        margin: 4px 7px 0;
        width: var(--input-height-small);
    }
    &.tb-lg input[type="checkbox"] {
        width: var(--input-height-large);
    }

    /* Filled variant (default gray) */
    &.tb-filled input[type="checkbox"] {
        &:checked + label::after { background-color: var(--gray); }
        &:checked + label::before { border-color: var(--gray-light); }
        &:disabled:checked + label::after {
            background-color: var(--gray-light);
            border-color: var(--gray-light);
        }
        &:checked + label::after { color: #fff; }
    }

    /* Inline */
    &.tb-inline {
        display: inline-block;
        margin-top: 0;
        margin-bottom: 0;
        vertical-align: inherit;
    }
    &.tb-inline + .tb-inline {
        margin-left: 10px;
    }
}

/* Color variants */
.tb-primary input[type="checkbox"]:checked + label::before,
.tb-primary input[type="radio"]:checked + label::before { border-color: var(--brand-primary); }
.tb-primary input[type="checkbox"]:checked + label::after,
.tb-primary input[type="radio"]:checked + label::after  { color: var(--brand-primary); }

.tb-secondary input[type="checkbox"]:checked + label::before,
.tb-secondary input[type="radio"]:checked + label::before { border-color: var(--brand-secondary); }
.tb-secondary input[type="checkbox"]:checked + label::after,
.tb-secondary input[type="radio"]:checked + label::after  { color: var(--brand-secondary); }

.tb-success input[type="checkbox"]:checked + label::before,
.tb-success input[type="radio"]:checked + label::before { border-color: var(--brand-success); }
.tb-success input[type="checkbox"]:checked + label::after,
.tb-success input[type="radio"]:checked + label::after  { color: var(--brand-success); }

.tb-warning input[type="checkbox"]:checked + label::before,
.tb-warning input[type="radio"]:checked + label::before { border-color: var(--brand-warning); }
.tb-warning input[type="checkbox"]:checked + label::after,
.tb-warning input[type="radio"]:checked + label::after  { color: var(--brand-warning); }

.tb-info input[type="checkbox"]:checked + label::before,
.tb-info input[type="radio"]:checked + label::before { border-color: var(--brand-info); }
.tb-info input[type="checkbox"]:checked + label::after,
.tb-info input[type="radio"]:checked + label::after  { color: var(--brand-info); }

.tb-danger input[type="checkbox"]:checked + label::before,
.tb-danger input[type="radio"]:checked + label::before { border-color: var(--brand-danger); }
.tb-danger input[type="checkbox"]:checked + label::after,
.tb-danger input[type="radio"]:checked + label::after  { color: var(--brand-danger); }

/* Filled color variants */
.tb-primary.tb-filled input[type="checkbox"]:checked + label::after  { background-color: var(--brand-primary); color: #fff; }
.tb-primary.tb-filled input[type="checkbox"]:checked + label::before { border-color: var(--brand-primary); }
.tb-primary.tb-filled input[type="checkbox"]:disabled:checked + label::after { background-color: var(--gray-light); border-color: var(--gray-light); }

.tb-secondary.tb-filled input[type="checkbox"]:checked + label::after  { background-color: var(--brand-secondary); color: #fff; }
.tb-secondary.tb-filled input[type="checkbox"]:checked + label::before { border-color: var(--brand-secondary); }
.tb-secondary.tb-filled input[type="checkbox"]:disabled:checked + label::after { background-color: var(--gray-light); border-color: var(--gray-light); }

.tb-success.tb-filled input[type="checkbox"]:checked + label::after  { background-color: var(--brand-success); color: #fff; }
.tb-success.tb-filled input[type="checkbox"]:checked + label::before { border-color: var(--brand-success); }
.tb-success.tb-filled input[type="checkbox"]:disabled:checked + label::after { background-color: var(--gray-light); border-color: var(--gray-light); }

.tb-warning.tb-filled input[type="checkbox"]:checked + label::after  { background-color: var(--brand-warning); color: #fff; }
.tb-warning.tb-filled input[type="checkbox"]:checked + label::before { border-color: var(--brand-warning); }
.tb-warning.tb-filled input[type="checkbox"]:disabled:checked + label::after { background-color: var(--gray-light); border-color: var(--gray-light); }

.tb-info.tb-filled input[type="checkbox"]:checked + label::after  { background-color: var(--brand-info); color: #fff; }
.tb-info.tb-filled input[type="checkbox"]:checked + label::before { border-color: var(--brand-info); }
.tb-info.tb-filled input[type="checkbox"]:disabled:checked + label::after { background-color: var(--gray-light); border-color: var(--gray-light); }

.tb-danger.tb-filled input[type="checkbox"]:checked + label::after  { background-color: var(--brand-danger); color: #fff; }
.tb-danger.tb-filled input[type="checkbox"]:checked + label::before { border-color: var(--brand-danger); }
.tb-danger.tb-filled input[type="checkbox"]:disabled:checked + label::after { background-color: var(--gray-light); border-color: var(--gray-light); }

/* Form inline */
.form-inline .ecm-togglebox {
    margin-right: 20px;
    padding-left: initial;
}
.form-inline .ecm-togglebox label {
    padding-left: 15px;
}


/*
   YouTube Auto Grid
   Based on https://codepen.io/JConcept-be/pen/wNGaOg
   usage: Regular UL list of links to YouTube Videos marked with class="youtube-grid"
   -------------------------------------------------- */
.youtube-grid {
	padding: 0;
	text-align: center;
}
.youtube-video {
	width: 100%;
	height: 250px;
	cursor: pointer;
	vertical-align: middle;
	border: 0;
}
.youtube-video,
.youtube-grid LI{
	position: relative;
	display: inline-block;
	margin: 0.5em;
}


/*
   Separators   
   -------------------------------------------------- */

.separator-dark-bg {
	background: none repeat scroll 0 0 #2980b9;
}
.separator-light-bg {
	background: none repeat scroll 0 0 #3498db;
}
.separator-title {color: #ffffff; margin: 50px 0 25px 50px;}
.separator-text {color: rgba(255,255,255,.6); margin-left: 50px;}

.eCM-sep-curve-down,
.eCM-sep-curve-up,
.eCM-sep-big-half-circle,
.eCM-sep-big-triangle-color,
.eCM-sep-big-triangle-shadow,
.eCM-sep-slir,
.eCM-sep-stamp,
.eCM-sep-clouds {
	display:block; margin:0; padding:0
}

/* Curves */
svg.eCM-sep-curve-up path,
svg.eCM-sep-curve-down path {
	fill: #3498db;
	stroke: #3498db;
}

/* Big Triangle */
svg.eCM-sep-big-triangle-color {
	pointer-events: none;
}
svg.eCM-sep-big-triangle-color path {
	fill: #3498db;
	stroke: #3498db;
	stroke-width: 2;
}

/* Big half circle */
svg.eCM-sep-big-half-circle path {
	fill: #3498db;
	stroke: #3498db;
}

/* Big triangle with shadow */
svg.eCM-sep-big-triangle-shadow #trianglePath1 {
	fill: #3498db;
	stroke: #3498db;
} 
svg.eCM-sep-big-triangle-shadow #trianglePath2 {
	fill: #2072a7;
	stroke: #2072a7;
}

/* Slit */
svg.eCM-sep-slit {
	fill: #3498db;
	stroke: red;
	stroke-width: 0;
}
svg.eCM-sep-slit #slitPath2, 
svg.eCM-sep-slit #slitPath3 {
	fill: #2072a7;
}

/* Stamp */
svg.eCM-sep-stamp path {
	fill: #2980b9;
	stroke: #2980b9; /* avoid gap in FF */
}

/* Clouds */
svg.eCM-sep-clouds path {
	fill: #3498db;
	stroke: #3498db;
}


/* ---------------------------------------------------------------------------------
------------------------------    Plugin Styles   ----------------------------------
------------------------------------------------------------------------------------*/

/*
   Placeholder Plugin
   -------------------------------------------------- */

.placeholder {
    pointer-events: none;
}
.placeholder.active {
    color: color-mix(in srgb, var(--input-color) 75%, white);
}


/*
   MixItUp Plugin
   -------------------------------------------------- */

.lightGallery .mix {
    display: none; /* Do not remove this line */
}
.row .mix {
    padding: 1px; /* Default spacing between items */
}

/* MixItUp filter controls */
.filter-group {
    margin-bottom: 40px;
}
.filter-group .filter {
    display: inline-block;
    cursor: pointer;
    padding: 0 10px;
    text-transform: uppercase;
    font-weight: 700;
    transition: all ease 0.4s;
    font-family: "Montserrat", Helvetica, Arial, sans-serif;
}
.no-touch .filter-group .filter:hover,
.filter-group .filter:active,
.filter-group .active {
    color: var(--link-hover-color);
}


/*
   Isotope Plugin
   -------------------------------------------------- */

.isotope-grid {
    margin-left: 0px;
    margin-right: 0px;
    padding: 0;

    &::after {
        content: '';
        display: block;
        clear: both;
    }
}

.isotope-item {
    margin: 0 0;
    margin-bottom: 10px;
    padding: 0 5px;
    max-width: 100%;
    list-style: none;
    overflow: hidden;
}

.isotope-filter {
    margin-bottom: 40px;

    & input[type="checkbox"] {
        display: none;
    }
    & input[type="checkbox"] + label {
        display: inline-block;
        cursor: pointer;
        padding: 0 10px;
        text-transform: uppercase;
        font-weight: 700;
        transition: all ease 0.4s;
        font-family: "Montserrat", Helvetica, Arial, sans-serif !important;
        color: var(--link-color);
    }
    & input[type="checkbox"]:checked + label {
        color: var(--link-hover-color);
    }
}

.no-touch .isotope-filter input[type="checkbox"] + label:hover,
.isotope-filter input[type="checkbox"] + label:active {
    color: var(--link-hover-color);
}


/*
   LightSlider Plugin
   -------------------------------------------------- */

.lSSlideOuter .lSPager.lSpg > li:hover a,
.lSSlideOuter .lSPager.lSpg > li.active a {
    background-color: var(--link-hover-color) !important;
}
.lSSlideOuter .lSPager.lSpg > li a {
    height: 10px !important;
    width: 10px !important;
}

/*
   eCM Hack - Force equal columns height
   V2014.09.10
   -------------------------------------------------- */

.lightSlider,
.lightSlider .clone,
.lightSlider .lslide {
    display: flex;
    flex-wrap: wrap;
}


/*
   Owl Carousel Plugin
   -------------------------------------------------- */

.no-touch .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; }

.no-touch .owl-carousel .fadeOut {
    animation-name: fadeOut;
}
@keyframes fadeOut {
    0%   { opacity: 1; }
    100% { opacity: 0; }
}

/*
   Owl Carousel - Auto Height Plugin
   -------------------------------------------------- */

.no-touch .owl-height {
    transition: height 500ms ease-in-out;
}

/*
   Owl Carousel - Core
   -------------------------------------------------- */

.owl-carousel {
    display: none;
    width: 100%;
    -webkit-tap-highlight-color: transparent;
    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;
    transform: translate3d(0px, 0px, 0px); /* fix for flashing background */
}
.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;
    user-select: none;
}
.no-touch .owl-carousel .owl-item {
    -webkit-backface-visibility: hidden;
}
.owl-carousel .owl-item img {
    display: block;
    width: 100%;
    transform-style: preserve-3d;
}
.owl-carousel.owl-text-select-on .owl-item {
    user-select: auto;
}
.owl-carousel .owl-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; }

/*
   eCM Hack - Force equal columns height
   V2014.09.10
   -------------------------------------------------- */

.owl-carousel .owl-stage,
.owl-carousel .owl-item {
    display: flex;
    flex-wrap: wrap;
}

/*
   Owl Carousel - Lazy Load Plugin
   -------------------------------------------------- */

.owl-carousel .owl-item .owl-lazy { opacity: 0; }
.no-touch .owl-carousel .owl-item .owl-lazy {
    transition: opacity 400ms ease;
}

/*
   Owl Carousel - Video Plugin
   -------------------------------------------------- */

.owl-carousel .owl-video-wrapper {
    position: relative;
    height: 100%;
    background: #000;
}
.owl-carousel .owl-video-play-icon {
    position: absolute;
    height: 80px;
    width: 80px;
    left: 50%;
    top: 50%;
    margin-left: -40px;
    margin-top: -40px;
    background: url("owl.video.play.png") no-repeat;
    cursor: pointer;
    z-index: 1;
    -webkit-backface-visibility: hidden;
}
.no-touch .owl-carousel .owl-video-play-icon {
    transition: scale 100ms ease;
}
.no-touch .owl-carousel .owl-video-play-icon:hover {
    transform: scale(1.3, 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;
}
.no-touch .owl-carousel .owl-video-tn {
    transition: opacity 400ms ease;
}
.owl-carousel .owl-video-frame {
    position: relative;
    z-index: 1;
}

/*
   Owl Carousel - Custom Theme
   -------------------------------------------------- */

.owl-theme .owl-nav {
    margin-top: 10px;
    text-align: center;
    -webkit-tap-highlight-color: transparent;
}
.owl-theme .owl-nav [class*='owl-'] {
    color: var(--link-color);
    font-size: 14px;
    margin: 5px;
    padding: 4px 7px;
    display: inline-block;
    cursor: pointer;
    border-radius: 3px;
}
.owl-theme .owl-nav [class*='owl-']:hover {
    background: var(--link-hover-color);
    color: white;
    text-decoration: none;
}
.owl-theme .owl-nav .disabled {
    opacity: 0.5;
    cursor: default;
}
.owl-theme .owl-nav.disabled + .owl-dots {
    margin-top: 10px;
}
.owl-theme .owl-dots {
    text-align: center;
    -webkit-tap-highlight-color: transparent;
}
.owl-theme .owl-dots .owl-dot {
    display: inline-block;

    /* IE6/IE7 hacks for triggering hasLayout and fixing inline-block support - deprecated */
    /*zoom: 1;
  *display: inline;*/
}
.owl-theme .owl-dots .owl-dot span {
    width: 10px;
    height: 10px;
    margin: 5px 7px;
    background: transparent;
    display: block;
    -webkit-backface-visibility: visible;
    border-radius: 30px;
    border: 2px solid var(--link-color);
}
.no-touch .owl-theme .owl-dots .owl-dot span {
    transition: all 200ms ease;
}
.owl-theme .owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot:hover span {
    background: var(--link-color);
}


/*
   eContent Manager ScrollToTop Plugin
   Requires js
   -------------------------------------------------- */

a.scroll-to-top {
    background: var(--link-color);
    border-radius: 7px 7px 0 0;
    bottom: -50px;
    color: #FFF;
    height: 0;
    opacity: 0;
    padding: 8px 0 25px;
    position: fixed;
    right: 10px;
    text-align: center;
    text-decoration: none;
    width: 40px;
    z-index: 1040;
    transition: all 1s cubic-bezier(0.46, 0, 0, 1);
}
a.scroll-to-top:hover {
    opacity: 1;
    background: var(--link-hover-color);
}
a.scroll-to-top.visible {
    opacity: .75;
    bottom: 0;
}
a.scroll-to-top i { line-height: 16px; }


/* ---------------------------------------------------------------------------------
--------------------------   Base Content Boxes Styles   ---------------------------
------------------------------------------------------------------------------------*/

/*
   Content Box - Generic
   -------------------------------------------------- */

/* HACK: Improves image quality. BG is not visible! */
.eCM-content-box figure img {
    background-color: white;
}

/* Icons */
.eCM-content-box i {
    font-style: normal;
    position: relative;
}

.eCM-content-box .content { line-height: var(--line-height-base); }

/* Date block */
.eCM-content-box figure .date,
.eCM-content-box figure time {
    background: none repeat scroll 0 0 var(--link-color);
    bottom: 0;
    left: 0;
    padding: 2px 0;
    position: absolute;
    z-index: 30;
    text-align: center;
    width: 57px;
    display: block;
}
.no-touch .eCM-content-box figure .date,
.no-touch .eCM-content-box figure time {
    transition-property: background;
    transition-duration: 0.240s;
    transition-timing-function: ease;
}
.eCM-content-box:hover figure .date,
.eCM-content-box:hover figure time {
    background: none repeat scroll 0 0 var(--link-hover-color);
}

.eCM-content-box figure .date span,
.eCM-content-box figure time span {
    display: block;
    width: 100%;
}
.eCM-content-box figure .date span.day,
.eCM-content-box figure time span.day {
    color: var(--reverse-color);
    font: 300 30px/1em var(--headings-font-family);
    margin: 10px 0 2px 0;
}
.eCM-content-box figure .date span.month,
.eCM-content-box figure time span.month {
    color: color-mix(in srgb, var(--reverse-color) 75%, transparent);
    font: 14px/1.2em var(--headings-font-family);
    text-transform: uppercase;
}
.eCM-content-box figure .date span.year,
.eCM-content-box figure time span.year {
    color: color-mix(in srgb, var(--reverse-color) 50%, transparent);
    font: 11px/1.2em var(--font-family-base);
    margin-bottom: 10px;
}

/* Date in content area */
.eCM-content-box .content .date,
.eCM-content-box .content time {
    font-family: var(--headings-font-family);
    font-size: var(--font-size-h4);
    font-weight: 300;
    text-transform: uppercase;
}
.eCM-content-box .content .date span,
.eCM-content-box .content time span {
    padding-right: 5px;
    display: inline-block;
}

.eCM-content-box .caption-content {
    padding: 20px;
}

/*
   Content Box - Generic Options
   -------------------------------------------------- */

/* date-xxxx-xxxx class
   Sets the position of the date/time element inside its container */
.eCM-content-box.date-top-left time,
.eCM-content-box.date-top-left .date    { top: 0;    left: 0;    bottom: auto; right: auto; }
.eCM-content-box.date-top-right time,
.eCM-content-box.date-top-right .date   { top: 0;    left: auto; bottom: auto; right: 0; }
.eCM-content-box.date-bottom-left time,
.eCM-content-box.date-bottom-left .date { top: auto; left: 0;    bottom: 0;    right: auto; }
.eCM-content-box.date-bottom-right time,
.eCM-content-box.date-bottom-right .date { top: auto; left: auto; bottom: 0;   right: 0; }

/* full-link class
   When applied to a content-box, fully expands the target area of the single A tag
   inside .caption-content.
   Useful when you want to have a single centered icon like a zoom icon on an image */
.eCM-content-box.full-link .caption-content {
    height: 100%;
    padding: 0px;
}
.eCM-content-box.full-link .caption-content a {
    display: block;
    width: 100%;
    border: none;
    border-radius: 0;
    height: 100%;
    margin: 0;
    padding: 0;
    color: color-mix(in srgb, var(--overlay-bg-color) 5%, white); /* lightness >= 70%: mix with black 55%; lightness < 70%: mix with white 5% — overlay-bg-color is typically dark so white mix applies */
}
.eCM-content-box.full-link .caption-content a i {
    position: relative;
}

/*
   Content Box - Style 2
   -------------------------------------------------- */

/* Flex row */
.eCM-content-box.style-2 {
    font-size: 2rem;
    display: flex;
    flex-wrap: wrap;

    /* Flex row items */
    & .content-container,
    & .image-container {
        margin: 0;
        padding: 0;
        flex: 1;
    }

    & .image-container {
        background-repeat: no-repeat;
        background-size: cover;
        background-position: 50% 50%;
    }

    &.image-left {
        & .content-container { order: 2; }
        & .image-container   { order: 1; }
    }

    & .content {
        padding: 6rem;
    }

    & .title {
        max-width: 65%;
        letter-spacing: -1.5px;
        line-height: 1.35;
        margin: 1.5rem 0;
    }

    & .content p {
        line-height: 24px;
        margin: 1.5rem 0;
        font-weight: 400;
    }

    & .more-info-container {
        display: inline-block;
        vertical-align: middle;
        margin: .75rem 1.5rem .75rem 0;
        line-height: 24px;
        font-weight: 400;
    }

    & .more-info-container a span {
        display: inline-block;
        vertical-align: middle;
    }

    & .more-info-container .more-info-text {
        font-weight: 600;
        margin-left: .4rem;
    }
}

@media only all and (max-width: 767px) {
    .eCM-content-box.style-2 .content-container,
    .eCM-content-box.style-2 .image-container {
        flex: 0 100%;
    }
    .eCM-content-box.style-2 .image-container {
        padding-bottom: 66.7%;
    }
}

/*
   Content Box - Style 3
   -------------------------------------------------- */

.fes4-box {
    margin-bottom: 50px;
    font-size: 14px;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-weight: normal;
    color: #7e8082;
    -webkit-font-smoothing: antialiased !important;
}

.fes4-title-cont {
    position: relative;
    padding-left: 70px;
    padding-bottom: 15px;
}

.fes4-box-icon {
    position: absolute;
    top: 1px;
    left: 0;
    color: #4b4e53;
}

.fes4-title-cont h3,
.title-18 {
    margin: 0;
}

.bold { font-weight: bold; }

.sml-disclaimer {
    margin-right: 15px;
    font-size: 10px;
}

.right { float: right; }

/*
   Content Box - Style 4
   -------------------------------------------------- */

/* fx-1: vertical animation */
.eCM-content-box.style-4.fx-1 h3 {
    text-transform: uppercase;
    padding-bottom: 20px;
}
.eCM-content-box.style-4.fx-1 a i,
.eCM-content-box.style-4.fx-1 a img {
    line-height: 60px;
}
.no-touch .eCM-content-box.style-4.fx-1 a i,
.no-touch .eCM-content-box.style-4.fx-1 a img {
    transition-property: all;
    transition-duration: 0.240s;
    transition-timing-function: ease;
}
.eCM-content-box.style-4.fx-1 a:hover i,
.eCM-content-box.style-4.fx-1 a:hover img {
    color: var(--link-hover-color);
}
.no-touch .eCM-content-box.style-4.fx-1 a:hover i,
.no-touch .eCM-content-box.style-4.fx-1 a:hover img {
    transform: translateY(-20px);
}

/* fx-2: color fade on title and icon fonts */
.eCM-content-box.style-4.fx-2 h3 {
    text-transform: uppercase;
    padding-top: 20px;
    padding-bottom: 20px;
}
.eCM-content-box.style-4.fx-2 i {
    border-radius: 80px;
    display: block;
    line-height: 60px;
    height: 160px;
    margin: auto;
    width: 160px;
    padding-top: 50px;
    color: var(--reverse-color);
    background: var(--link-color);
}
.no-touch .eCM-content-box.style-4.fx-2 i {
    transition-property: all;
    transition-duration: 0.240s;
    transition-timing-function: ease;
}
.eCM-content-box.style-4.fx-2 a:hover i {
    color: var(--reverse-color);
    background-color: var(--link-hover-color);
}

/* fx-3: color fade for icon fonts only */
.eCM-content-box.style-4.fx-3 i {
    line-height: 60px;
}
.eCM-content-box.style-4.fx-3 h3 {
    color: var(--link-hover-color);
    display: block;
    padding-top: 20px;
    margin-bottom: 20px;
}
.eCM-content-box.style-4.fx-3 p {
    margin: 0;
    font-weight: 500;
}

/* fx-4: left column for icon font/image */
.eCM-content-box.style-4.fx-4 {
    position: relative;
    padding-left: 90px;
    text-align: left;
}
.eCM-content-box.style-4.fx-4 i,
.eCM-content-box.style-4.fx-4 img {
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    line-height: 60px;
    width: 70px;
    padding-top: 10px;
}
.eCM-content-box.style-4.fx-4 h3 {
    margin: 0;
    padding-top: 10px;
    padding-bottom: 20px;
    text-transform: none;
}

/* fx-5: title area with icon font/image followed by content text */
.eCM-content-box.style-4.fx-5 {
    margin-bottom: 50px;
}
.eCM-content-box.style-4.fx-5 a {
    position: relative;
    padding-left: 70px;
    padding-bottom: 15px;
    display: block;
}
.eCM-content-box.style-4.fx-5 i {
    position: absolute;
    top: 1px;
    left: 0;
}
.eCM-content-box.style-4.fx-5 h3 {
    font-size: var(--font-size-h4);
    font-weight: bold;
    margin: 0;
}
.eCM-content-box.style-4.fx-5 .no-link h3 {
    color: color-mix(in srgb, var(--text-color) 50%, #000);
}
.eCM-content-box.style-4.fx-5 p,
.eCM-content-box.style-4.fx-5 .content {
    color: var(--text-color);
    font-weight: normal;
    -webkit-font-smoothing: antialiased !important;
}

/*
   Content Box - Style 5
   Requires jQuery Script
   Dependencies:
   - setTouchSettings() that sets classes on mouse hover
   -------------------------------------------------- */

/* Common to all effects */

.eCM-content-box.style-5 a.close-caption {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 100;
    width: 45px;
    height: 45px;
    text-align: center;
    background-color: #000;
    cursor: pointer;

    & i {
        font-size: 25px;
        line-height: 45px;
        color: #fff;
    }
    &:hover {
        background-color: var(--link-hover-color);
    }
}
.no-touch .eCM-content-box.style-5 a.close-caption {
    display: none; /* Hide close-caption button for devices without touch support */
}

.eCM-content-box.style-5 .caption-content {
    display: block;
    position: absolute;
    z-index: 100;
}
.eCM-content-box.style-5 .content {
    position: relative;
    clear: both;
    padding: 0 20px 15px 20px;
    background: none repeat scroll 0 0 #fdfdfd;
}
.eCM-content-box.style-5.content-no-bg {
    background: none repeat scroll 0 0 transparent;

    & .content {
        padding: 0;
        background: none repeat scroll 0 0 transparent;
    }
}

/* Title link */
.eCM-content-box.style-5 .content .title {
    font-weight: 300;
    text-transform: uppercase;
    margin: 0 0 15px;
    padding-top: 5px;
    text-decoration: none;
    display: block;
}
.eCM-content-box.style-5:hover .content .title {
    color: var(--link-hover-color);
}

/* Horizontal mode - common to all effects */

/* Common for all devices  */
.eCM-content-box.style-5.horizontal figure img {
    object-fit: cover;    
    width: 100%;
    height: 100% !important;
    position: absolute;
    max-width: none !important;
}

/* Extra small devices (phones) */
@media only screen and (max-width: 576px) {
    .eCM-content-box.style-5.horizontal figure {
        min-height: 300px;
    }
}

/* Devices larger than extra small */
@media only screen and (min-width: 576px) {
    .eCM-content-box.style-5.horizontal {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        align-items: stretch; /*make items have the same height */
        flex-grow: 1;
    }

    /* Reduce top margin */
    .eCM-content-box.style-5.horizontal .content .title h3 { margin-top: 10px; }

    /* Horizontal Crop Mode (Default) */
    .eCM-content-box.style-5.horizontal figure {
        width: auto !important;
        flex-shrink: 1.3;
        min-width: 30%;
        order: 0;
    }
    .eCM-content-box.style-5.horizontal .content {
        padding: 15px;
        background-color: white;
        order: 1;
        flex-grow: 1;
    }

    /* Horizontal Adaptive Mode */
    .eCM-content-box.style-5.horizontal.adaptive-size figure {
        min-width: 200px;
        max-width: 30%;
    }
    .eCM-content-box.style-5.horizontal.adaptive-size figure img {
        position: relative;
    }
    .eCM-content-box.style-5.horizontal.adaptive-size .content {
        flex-grow: 0;
    }

    /* Horizontal Fixed-size Mode */
    .eCM-content-box.style-5.horizontal.fixed-size figure {
        width: 30% !important;
        flex-shrink: 0;
    }
    .eCM-content-box.style-5.horizontal.fixed-size figure img {
        position: relative;
    }
}

/* Hack for IE10/IE11 */
@media only screen and (min-width: 576px) and (forced-colors: active), screen and (forced-colors: none) {
    .eCM-content-box.style-5.horizontal.adaptive-size figure {
        max-width: none;
    }
}

/* Content Select - common to all effects */
.eCM-content-box.style-5.content-select { position: relative; }
.eCM-content-box.style-5.content-select figure { z-index: 100; }

.eCM-content-box.style-5.content-select .content::after {
    background: none repeat scroll 0 0 var(--link-hover-color);
    content: "";
    height: 0;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10;
}
.no-touch .eCM-content-box.style-5.content-select .content::after {
    transition-property: all;
    transition-duration: 300ms;
    transition-timing-function: ease;
}
.eCM-content-box.style-5.content-select:hover .content::after { height: 100%; }

.eCM-content-box.style-5.content-select .content .title { position: relative; z-index: 100; }
.eCM-content-box.style-5.content-select:hover .content .title { color: #fff; }
.eCM-content-box.style-5.content-select:hover .content .title:hover {
    color: color-mix(in srgb, var(--link-hover-color) 5%, white);
}

.no-touch .eCM-content-box.style-5.content-select .content .header {
    position: relative;
    z-index: 100;
    transition-property: all;
    transition-duration: 300ms;
    transition-timing-function: ease;
}
.eCM-content-box.style-5.content-select:hover .content .header { color: #fff; }

.eCM-content-box.style-5.content-select .content .categories {
    padding-top: 10px;
    display: inline-block;
    position: relative;
    z-index: 100;
}
.eCM-content-box.style-5.content-select:hover .content .categories {
    color: color-mix(in srgb, var(--link-hover-color) 5%, white);
    opacity: 0.8;
}

.eCM-content-box.style-5.arrow-center.content-select:hover .content::before {
    border-bottom: 10px solid var(--link-hover-color);
}

/*
   Content Box - Style 6
   Does not require jQuery Script
   -------------------------------------------------- */

.eCM-content-box.style-6 a.close-caption {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 100;
    width: 45px;
    height: 45px;
    text-align: center;
    background-color: #000;
    cursor: pointer;

    & i {
        font-size: 25px;
        line-height: 45px;
        color: #fff;
    }
    &:hover {
        background-color: var(--link-hover-color);
    }
}
.no-touch .eCM-content-box.style-6 a.close-caption {
    display: none; /* Hide close-caption button for devices without touch support */
}

.eCM-content-box.style-6 .caption-content {
    display: block;
    position: absolute;
    z-index: 100;
}

.eCM-content-box.style-6 {
    background: none repeat scroll 0 0 color-mix(in srgb, var(--gray-light) 15%, white);
    margin: 0;
    position: relative;
    -moz-hyphens: auto;
    word-wrap: break-word;

    &::before {
        background: none repeat scroll 0 0 var(--link-hover-color);
        content: "";
        height: 0;
        left: 0;
        position: absolute;
        top: 0;
        width: 100%;
        z-index: 10;
    }
    &:hover::before {
        height: 100%;
    }

    & figure {
        margin: 0;
        overflow: hidden;
        position: relative;
        z-index: 100;
        display: block;
        width: 100%;

        & img {
            display: block;
            height: auto;
            width: 100%;
            background-color: white; /* Not visible. Hack to improve image quality. */
            transform: scale(1.1);
            transition: all 0.3s ease 0s;
        }
    }
    &:hover figure img {
        transform: scale(1);
    }

    & .content {
        box-sizing: border-box;
        padding: 10px 22px 15px;
        position: relative;
        text-align: left;
        z-index: 100;

        & .title {
            font-weight: 300;
            text-transform: uppercase;
            margin: 0 0 15px;
            text-decoration: none;
            display: block;
        }

        & .header {
            margin: 0;
        }

        & .categories {
            padding-top: 20px;
            display: inline-block;

            & > .badge {
                color: var(--link-hover-color);
                text-transform: uppercase;
                border-radius: 100px;
                padding: 1px 15px 2px;
                letter-spacing: 1px;
                background-color: transparent;
                border: 1px solid var(--link-hover-color);
                opacity: .8;
            }
        }
    }
    &:hover .content .title         { color: #fff; }
    &:hover .content .title:hover   { color: color-mix(in srgb, var(--link-hover-color) 5%, white); }
    &:hover .content .header        { color: #fff; }
    &:hover .content .categories    { color: color-mix(in srgb, var(--link-hover-color) 5%, white); }
    &:hover .content .categories > .badge {
        color: color-mix(in srgb, var(--link-hover-color) 5%, white);
        background-color: transparent;
        border: 1px solid rgba(255, 255, 255, .3);
    }
}

.no-touch .eCM-content-box.style-6::before,
.no-touch .eCM-content-box.style-6 figure a,
.no-touch .eCM-content-box.style-6 .content,
.no-touch .eCM-content-box.style-6 .content .header {
    transition-property: all;
    transition-duration: 300ms;
    transition-timing-function: ease;
}

/*
   Content Box - Style 7
   Does not require jQuery Script
   -------------------------------------------------- */

.eCM-content-box.style-7 {
    overflow: hidden;
}

.eCM-content-box.style-7 .date,
.eCM-content-box.style-7 time {
    background: none repeat scroll 0 0 var(--link-color);
    display: block;
    float: left;
    margin: 3px 30px 0 0;
    position: relative;
    text-align: center;
    width: 70px;
    font-size: 11px;
    line-height: 1.2;
}
.no-touch .eCM-content-box.style-7 .date,
.no-touch .eCM-content-box.style-7 time {
    transition-property: background;
    transition-duration: 200ms;
    transition-timing-function: ease;
}

.eCM-content-box.style-7 .date::after,
.eCM-content-box.style-7 time::after {
    border-color: transparent transparent transparent var(--link-color);
    border-style: solid;
    border-width: 7.5px 0 7.5px 12px;
    content: "";
    height: 0;
    position: absolute;
    right: -12px;
    top: 15px;
    width: 0;
}
.no-touch .eCM-content-box.style-7 .date::after,
.no-touch .eCM-content-box.style-7 time::after {
    transition-property: border-color;
    transition-duration: 200ms;
    transition-timing-function: ease;
}

.eCM-content-box.style-7:hover .date,
.eCM-content-box.style-7:hover time {
    background: none repeat scroll 0 0 var(--link-hover-color);
}
.eCM-content-box.style-7:hover .date::after,
.eCM-content-box.style-7:hover time::after {
    border-color: transparent transparent transparent var(--link-hover-color);
}

.eCM-content-box.style-7 .date span,
.eCM-content-box.style-7 time span {
    display: block;
}
.eCM-content-box.style-7 .date span.day,
.eCM-content-box.style-7 time span.day {
    color: var(--reverse-color);
    font: 300 40px/1.2em 'Open Sans', sans-serif;
    padding-top: 7px;
}
.eCM-content-box.style-7 .date span.month,
.eCM-content-box.style-7 time span.month {
    color: var(--reverse-color);
    font: 15px/1.2em 'Open Sans', sans-serif;
    text-transform: uppercase;
}
.eCM-content-box.style-7 .date span.year,
.eCM-content-box.style-7 time span.year {
    color: var(--reverse-color);
    font: 12px/2em 'Open Sans', sans-serif;
    padding-bottom: 10px;
}
.eCM-content-box.style-7:hover .date span.month,
.eCM-content-box.style-7:hover time span.month,
.eCM-content-box.style-7:hover .date span.year,
.eCM-content-box.style-7:hover time span.year {
    color: color-mix(in srgb, var(--link-hover-color) 50%, white);
}

.eCM-content-box.style-7 .content {
    overflow: hidden;
    margin-left: 100px; /* Date width=70px + right margin=30px */
}
.eCM-content-box.style-7 .content .title {
    display: block;
    text-transform: uppercase;
    color: var(--link-color);
}
.no-touch .eCM-content-box.style-7 .content .title {
    transition-property: color;
    transition-duration: 200ms;
    transition-timing-function: ease;
}
.eCM-content-box.style-7:hover .content .title {
    color: var(--link-hover-color);
}

.eCM-content-box.style-7 figure {
    display: table-cell;
}

.eCM-content-box.style-7 .caption-content {
    display: block;
    position: absolute;
    z-index: 100;
    height: 100%;
}
.eCM-content-box.style-7 .caption-content a {
    display: block;
    width: 100%;
    border: none;
    border-radius: 0;
    height: 100%;
    margin: 0;
    padding: 0;
    color: color-mix(in srgb, var(--overlay-bg-color) 5%, white);
    text-align: center;
}
.eCM-content-box.style-7 .caption-content a i {
    position: relative;
    top: 50%;
    font-size: 40px;
    font-weight: 100;
    line-height: 60px;
    transform: translateY(-50%);
}

.no-touch .eCM-content-box.style-7:hover figure figcaption,
.eCM-content-box.style-7 figure.hover figcaption {
    opacity: 1;
}

/*
   Content Box - Style 8
   Requires jQuery Script
   Dependencies: setTouchSettings() that sets classes on mouse hover
   -------------------------------------------------- */

/* Specific styles */
.eCM-content-box.style-8 a.close-caption {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 100;
    width: 45px;
    height: 45px;
    text-align: center;
    background-color: #000;
    cursor: pointer;

    & i {
        font-size: 25px;
        line-height: 45px;
        color: #fff;
    }
    &:hover {
        background-color: var(--link-hover-color);
    }
}
.no-touch .eCM-content-box.style-8 a.close-caption {
    display: none; /* Hide close-caption button for devices without touch support */
}

.eCM-content-box.style-8 .caption-content {
    display: block;
    position: absolute;
    z-index: 100;
}
.eCM-content-box.style-8 .content {
    position: relative;
    clear: both;
}

/* Title link */
.eCM-content-box.style-8 .content .title {
    text-transform: uppercase;
    font-weight: bold;
    margin: 0 0 15px;
    padding-top: 60px;
    text-decoration: none;
    display: block;
    color: rgb(102, 102, 102);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition-property: color;
    transition-duration: 300ms;
    transition-timing-function: ease;
}
.eCM-content-box.style-8:hover .content .title {
    color: var(--link-hover-color);
}

/* Horizontal mode - common to all effects */
.eCM-content-box.style-8.horizontal figure { float: right; width: auto; }
.eCM-content-box.style-8.horizontal .content {
    width: auto;
    clear: none;
    overflow: hidden;
    padding-right: 30px;
}
/* Remove top padding when in horizontal mode */
.eCM-content-box.style-8.horizontal .content .title h3 { padding-top: 0; }

.eCM-content-box.style-8 .avatar-container {
    position: relative;
    width: 100%;
    text-align: center;
}
.eCM-content-box.style-8 .avatar-image {
    width: 80px;
    height: 80px;
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: -40px; /* half height */
    margin: auto;
    overflow: hidden;
    z-index: 20;
    border-radius: 40px;
    box-shadow: 0px 3px 4px 0.09px rgba(0, 0, 0, 0.2);
}
.eCM-content-box.style-8 .avatar-image img {
    width: 100%;
}

/*
   Content Box - Style 9
   -------------------------------------------------- */

.eCM-content-box.style-9 {
    width: 100%;
    max-width: 240px;
    margin: 0 auto 20px auto;
    height: 320px;
    overflow: hidden;

    & a.close-caption {
        display: block;
        position: absolute;
        top: 0;
        right: 0;
        z-index: 100;
        width: 45px;
        height: 45px;
        text-align: center;
        background-color: #000;
        cursor: pointer;

        &:hover { background-color: var(--link-hover-color); }

        & i {
            font-size: 25px;
            line-height: 45px;
            color: #fff;
        }
    }
    .no-touch & a.close-caption {
        display: none; /* Hide close-caption button for devices without touch support */
    }

    & figure {
        position: relative;
        width: 100%;
        overflow: hidden;

        & img {
            display: block;
            margin: 0;
            padding: 0;
            height: auto;
            min-width: 240px;
            width: 100%;
        }

        & figcaption {
            display: block;
            position: absolute;
            z-index: 20;
            overflow: hidden;
            bottom: 30px;
            left: 0;
            right: 0;
            width: 100%;
            height: 60px; /* default height. Override according to visible content height */
            padding-top: 0;
            background: black;
            opacity: 0.85;
        }
    }
    .no-touch & figure figcaption {
        transition-property: all;
        transition-duration: 0.240s;
        transition-timing-function: ease;
    }
    .no-touch &:hover figure figcaption,
    & figure.hover figcaption {
        bottom: 0px !important;
        height: 100%;
        opacity: 1;
    }

    & .caption-content {
        display: block;
        z-index: 100;
        padding-top: 0;
        position: relative;
        transition-property: all;
        transition-duration: 0.240s;
        transition-timing-function: ease;
    }
    .no-touch &:hover figure figcaption .caption-content,
    & figure.hover figcaption .caption-content {
        padding-top: 20px;
    }

    & .member-name {
        color: #fff;
        text-transform: uppercase;
        margin-bottom: 0px;
    }
    & .member-position { opacity: 0.7; }
    & .member-description { margin-top: 30px; }

    & .member-social-links a { color: #fff; }
    & .member-social-links a:hover { color: var(--link-hover-color); }
}

/*
   Content Box - Style 10
   -------------------------------------------------- */

.eCM-content-box.style-10 a.close-caption {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 100;
    width: 45px;
    height: 45px;
    text-align: center;
    background-color: #000;
    cursor: pointer;

    & i {
        font-size: 25px;
        line-height: 45px;
        color: #fff;
    }
    &:hover {
        background-color: var(--link-hover-color);
    }
}
.no-touch .eCM-content-box.style-10 a.close-caption {
    display: none; /* Hide close-caption button for devices without touch support */
}

.eCM-content-box.style-10 .caption-content {
    display: block;
    position: absolute;
    z-index: 100;
}
.eCM-content-box.style-10 .content {
    position: relative;
    clear: both;
}

/* Title link */
.eCM-content-box.style-10 .content .title {
    font-weight: 300;
    text-transform: uppercase;
    margin: 0 0 15px;
    padding-top: 5px;
    text-decoration: none;
    display: block;
}
.eCM-content-box.style-10:hover .content .title {
    color: var(--link-hover-color);
}

 /* Horizontal mode - common to all effects */
.eCM-content-box.style-10.horizontal figure {
    float: right;
    width: auto !important; /* overrides default 100% allowing the image to be side by side with text */
}
.eCM-content-box.style-10.horizontal .content {
    width: auto;
    clear: none;
    overflow: hidden;
    padding-right: 30px;
}
/* Reduce top margin when in horizontal mode */
.eCM-content-box.style-10.horizontal .content .title h3 { margin-top: 10px; }

/* Extra Small Devices, Phones, inherits from above */
@media only screen and (max-width: 480px) {
    .eCM-content-box.style-10.horizontal { padding: 0; }
    .eCM-content-box.style-10.horizontal figure { float: right; width: 100% !important; }
    .eCM-content-box.style-10.horizontal .content {
        clear: both !important;
        padding-right: 0px !important;
        padding-left: 0px !important;
    }
}


/* ---------------------------------------------------------------------------------
--------------------------   Content box Effects   ---------------------------------
------------------------------------------------------------------------------------*/

/*
   Content Box style-5, style-6, style-7 and style-8
   FX Common Styles and Options
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-6,
.eCM-content-box.style-7,
.eCM-content-box.style-8 {

    &[class*="fx-"] figure {
        position: relative;
        width: 100%;
    }
    &[class*="fx-"] figure img {
        display: block;
        margin: 0;
        padding: 0;
        max-width: 100%;
        height: auto;
        width: 100%;
    }
    &[class*="fx-"] figcaption {
        display: block;
        position: absolute;
        z-index: 20;
        overflow: hidden;
    }
    .no-touch &[class*="fx-"] figcaption {
        transition-property: all;
        transition-duration: 0.240s;
        transition-timing-function: ease;
    }

    /* Content box icon effects: [icon-zoom-in], [icon-zoom-out] */
    & .icon-zoom-out {
        transition: opacity 300ms, transform 300ms;
    }
    &:hover .icon-zoom-out {
        transform: scale(.5);
        opacity: 0.75;
    }
    & .icon-zoom-in {
        transform: scale(.1);
        transition: opacity 300ms, transform 300ms;
    }
    &:hover .icon-zoom-in {
        transform: scale(.5);
        opacity: 0.75;
        line-height: 1em;
    }

    /* Arrow-[left, center, right] class */
    &.arrow-left .content::before,
    &.arrow-center .content::before,
    &.arrow-right .content::before {
        content: "";
        display: block;
        position: absolute;
        top: -10px;
        width: 20px;
        height: 10px;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-bottom: 10px solid #fff;
        z-index: 100;
    }
    &.arrow-left .content::before   { left: 40px; }
    &.arrow-right .content::before  { right: 40px; }
    &.arrow-center .content::before {
        margin-left: auto;
        margin-right: auto;
        left: 0;
        right: 0;
    }

    /* Overlay styles: [fill-solid] [fill-gradient-(from)-(to)] [no-overlay] */
    &[class*="fx-"] figcaption,
    &[class*="fx-"].fill-solid figcaption {
        background: var(--overlay-bg-color);
    }
    &[class*="fx-"].fill-gradient-bottom-top figcaption {
        background: linear-gradient(to bottom,
            color-mix(in srgb, var(--overlay-bg-color) 0%, transparent) 0%,
            color-mix(in srgb, var(--overlay-bg-color) calc(var(--overlay-opacity) * 100%), transparent) 100%
        );
    }
    &[class*="fx-"].fill-gradient-top-bottom figcaption {
        background: linear-gradient(to top,
            color-mix(in srgb, var(--overlay-bg-color) 0%, transparent) 0%,
            color-mix(in srgb, var(--overlay-bg-color) calc(var(--overlay-opacity) * 100%), transparent) 100%
        );
    }
    &[class*="fx-"].no-overlay figcaption { background: none; }

    /* Show caption */
    &[class*="fx-"].show-caption figcaption {
        opacity: 1 !important;
    }

    /* Caption slide from top */
    .no-touch &[class*="fx-"].caption-slide-top figcaption .caption-content {
        transition-property: all;
        transition-duration: 0.240s;
        transition-timing-function: ease;
        top: 0 !important;
        opacity: 0 !important;
        transform: translateY(-50%);
    }
    .no-touch &[class*="fx-"].caption-slide-top:hover figure figcaption .caption-content,
    &[class*="fx-"].caption-slide-top figure.hover figcaption .caption-content {
        top: 50% !important;
        opacity: 1 !important;
    }

    /* Common zoom in/out styles */
    .no-touch &[class*="fx-"].img-zoom-in-anim:not(.fx-5):not(.fx-6):not(.fx-7):not(.fx-8):not(.fx-9) figure img,
    .no-touch &[class*="fx-"].img-zoom-out-anim:not(.fx-5):not(.fx-6):not(.fx-7):not(.fx-8):not(.fx-9) figure img {
        transition: transform .300s;
    }

    /* Zoom in */
    .no-touch &[class*="fx-"].img-zoom-in-anim:hover:not(.fx-5):not(.fx-6):not(.fx-7):not(.fx-8):not(.fx-9) figure img {
        transform: scale(1.2, 1.2);
    }

    /* Zoom out */
    .no-touch &[class*="fx-"].img-zoom-out-anim:not(.fx-5):not(.fx-6):not(.fx-7):not(.fx-8):not(.fx-9) figure img {
        transform: scale(1.2, 1.2);
    }
    .no-touch &[class*="fx-"].img-zoom-out-anim:not(.fx-5):hover:not(.fx-6):not(.fx-7):not(.fx-8):not(.fx-9) figure img {
        transform: scale(1, 1);
    }

    /* Shadow */
    .no-touch &[class*="fx-"].shadow {
        box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .05);
        transition: all .15s ease-in-out;

        &:hover {
            box-shadow: 0 0 20px 4px rgba(0, 0, 0, .1);
        }
    }
}


/*
   FX-1 - Slide in bottom
   FX-2 - Slide in top
   FX-3 - Slide in left
   FX-4 - Slide in right
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7,
.eCM-content-box.style-8 {

    &.fx-1 figure,
    &.fx-2 figure,
    &.fx-3 figure,
    &.fx-4 figure {
        overflow: hidden;
    }

    &.fx-1 figcaption,
    &.fx-2 figcaption {
        bottom: 0; left: 0; right: 0; width: 100%; height: 0;
    }
    &.fx-2 figcaption {
        bottom: auto; top: 0;
    }

    &.fx-3 figcaption,
    &.fx-4 figcaption {
        top: 0; bottom: 0; width: 0; height: 100%;
    }
    &.fx-3 figcaption { left: 0; }
    &.fx-4 figcaption { right: 0; }

    .no-touch &.fx-1:hover figure figcaption,
    .no-touch &.fx-2:hover figure figcaption,
    &.fx-1 figure.hover figcaption,
    &.fx-2 figure.hover figcaption { height: 100%; }

    .no-touch &.fx-3:hover figure figcaption,
    .no-touch &.fx-4:hover figure figcaption,
    &.fx-3 figure.hover figcaption,
    &.fx-4 figure.hover figcaption { width: 100%; }

    &.fx-1 .caption-content,
    &.fx-2 .caption-content { color: var(--reverse-color); width: 100%; }

    &.fx-3 figcaption .caption-content,
    &.fx-4 figcaption .caption-content {
        left: 0; right: 0; white-space: nowrap;
    }
}


/*
   FX-5 - Image Slide Up
   FX-6 - Image Slide Up Hidden
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7 {

    &.fx-5 figure,
    &.fx-6 figure {
        margin: 0;
        position: relative;
    }
    &.fx-6 figure { overflow: hidden; }

    &.fx-5 figure img,
    &.fx-6 figure img {
        display: block;
        position: relative;
        z-index: 10;
        max-width: 100%;
        height: auto;
        background-color: white; /* Not visible. Hack to improve image quality. */
    }
    .no-touch &.fx-5 figure img,
    .no-touch &.fx-6 figure img {
        transition-property: transform;
        transition-duration: 0.240s;
        transition-timing-function: ease;
    }

    &.fx-5 figure figcaption,
    &.fx-6 figure figcaption {
        display: block;
        position: absolute;
        z-index: 5;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 90px;
        background-color: var(--overlay-bg-color);
    }

    .no-touch &.fx-5:hover figure img,
    .no-touch &.fx-6:hover figure img,
    &.fx-5 figure.hover img,
    &.fx-6 figure.hover img {
        transform: translateY(-90px);
    }

    &.fx-5 figcaption .caption-content,
    &.fx-6 figcaption .caption-content {
        left: 0; right: 0; white-space: nowrap;
    }
}


/*
   FX-7 - Image Slide Right Hidden
   FX-8 - Image Slide Left Hidden
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7,
.eCM-content-box.style-8 {

    &.fx-7 figure,
    &.fx-8 figure { overflow: hidden; }

    &.fx-7 figure a.close-caption {
        bottom: 0px; left: 0px;
    }

    &.fx-7 figure figcaption,
    &.fx-8 figure figcaption {
        background-color: var(--overlay-bg-color);
        top: 0;
        left: 0;
        width: 50%;
        height: 100%;
        transform: translateX(-100%);
    }
    .no-touch &.fx-7 figure figcaption,
    .no-touch &.fx-8 figure figcaption {
        transition-property: all;
        transition-duration: 0.3s;
        transition-timing-function: ease;
    }

    &.fx-8 figure figcaption {
        left: auto;
        right: 0;
        transform: translateX(100%);
    }

    &.fx-7 figure img,
    &.fx-8 figure img {
        background-color: white; /* Not visible. Hack to improve image quality. */
    }
    .no-touch &.fx-7 figure img,
    .no-touch &.fx-8 figure img {
        transition-property: all;
        transition-duration: 0.3s;
        transition-timing-function: ease;
    }

    .no-touch &.fx-7:hover figure img,
    &.fx-7 figure.hover img { transform: translateX(50%); }

    .no-touch &.fx-8:hover figure img,
    &.fx-8 figure.hover img { transform: translateX(-50%); }

    .no-touch &.fx-7:hover figure figcaption,
    .no-touch &.fx-8:hover figure figcaption,
    &.fx-7 figure.hover figcaption,
    &.fx-8 figure.hover figcaption { transform: translateX(0); }

    &.fx-7 figcaption .caption-content,
    &.fx-8 figcaption .caption-content {
        left: 0; right: 0;
    }
}


/*
   FX-9 - Image Reverse
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7,
.eCM-content-box.style-8 {

    &.fx-9 figure figcaption {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: var(--overlay-bg-color);
        color: var(--reverse-color);
        text-align: center;
        backface-visibility: hidden;
        transform: rotateY(-180deg);
    }
    .no-touch &.fx-9 figure figcaption {
        transition-property: transform;
        transition-duration: 0.3s;
        transition-timing-function: ease;
    }

    &.fx-9 figure img {
        backface-visibility: hidden;
        background-color: white; /* Not visible. Hack to improve image quality. */
    }
    .no-touch &.fx-9 figure img {
        transition-property: all;
        transition-duration: 0.3s;
        transition-timing-function: ease;
    }

    .no-touch &.fx-9:hover figure img,
    &.fx-9 figure.hover img { transform: rotateY(180deg); }

    .no-touch &.fx-9:hover figure figcaption,
    &.fx-9 figure.hover figcaption { transform: rotateY(0); }

    &.fx-9 figcaption .caption-content {
        left: 0; right: 0;
    }
}


/*
   FX-10 - Image Grow
   Requires fixed height on .eCM-content-box element!
   -------------------------------------------------- */

.eCM-content-box.style-5 {

    &.fx-10 {
        height: 390px; /* Default height. Should be set dynamically */
        overflow: hidden;
    }

    &.fx-10 figure {
        height: 40%;
        transition: height 0.4s;

        & img {
            object-fit: cover;
            object-position: center;
            height: 100% !important;
        }
    }

    .no-touch &.fx-10:hover figure,
    &.fx-10 figure.hover {
        height: 100% !important;

        & figcaption { opacity: 1; }
    }

    &.fx-10 figure figcaption {
        top: 0; bottom: 0; left: 0; right: 0;
        opacity: 0;
    }

    &.fx-10 .content {
        position: relative;
        display: block;
        color: #838485;
        height: 60%;
        overflow: hidden;
        white-space: normal;

         &.title { margin:0; }
    }

    &.fx-10 .header {
        position: relative;
        display: block;
        overflow: hidden;
        padding-bottom: 10px;
        padding-top: 10px;
        margin: 0;
    }

    div[class*="col-sm-"] &.fx-10 .header {
        max-height: 8rem;
    }

    &.fx-10 figcaption .caption-content {
        left: 0;
        right: 0;
        pointer-events: none; /* DO NOT REMOVE! Prevents click in mobile devices */
    }

    &.fx-10 figure.hover figcaption .caption-content {
        pointer-events: visible;
    }
}


/*
   FX-11 - Fade In Overlay (One single link, full-link enabled) +
   FX-11 - Fade In Overlay (Multiple links, full-link not enabled)
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7,
.eCM-content-box.style-8 {

    &.fx-11 figure { overflow: hidden; }

    &.fx-11 figure figcaption {
        top: 0; bottom: 0; left: 0; right: 0;
        opacity: 0;
    }

    .no-touch &.fx-11:hover figure figcaption,
    &.fx-11 figure.hover figcaption { opacity: 1; }

    &.fx-11 figure time { z-index: 100; }

    &.fx-11 figcaption .caption-content {
        left: 0;
        right: 0;
        pointer-events: none; /* DO NOT REMOVE! Prevents click in mobile devices */
    }

    &.fx-11 figure.hover figcaption .caption-content { pointer-events: visible; }
}


/*
   FX-12 - Toolbar Slide in Bottom
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7 {

    &.fx-12 figure { overflow: hidden; }

    &.fx-12 figure figcaption {
        bottom: -150px;
        left: 0;
        right: 0;
        width: 100%;
        height: auto;
        padding-top: 0;
        opacity: 0;
    }
    .no-touch &.fx-12 figure figcaption {
        transition-property: all;
        transition-duration: 250ms;
        transition-timing-function: ease;
    }
    .no-touch &.fx-12:hover figure figcaption,
    &.fx-12 figure.hover figcaption {
        bottom: 0 !important; height: auto; opacity: 1;
    }

    &.fx-12 .caption-content { position: relative !important; }

    &.fx-12 figcaption p {
        color: rgba(255, 255, 255, 0.8); margin: 0; padding: 0;
    }

    /* Custom caption for this effect */
    &.fx-12.full-link figcaption a i {
        transform: translateY(0%);
    }

    &.fx-12 figcaption .custom-title {
        color: var(--reverse-color) !important;

        & h3 { margin-top: 0; }

        &:hover { color: var(--reverse-color) !important; }
    }
}


/*
   FX-13 - Photo Zoom-Out with Overlay
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7 {

    &.fx-13 figure {
        background: var(--overlay-bg-color);
        overflow: hidden;
    }

    &.fx-13 figcaption {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        opacity: 1;
        background: none;
    }

    &.fx-13 figcaption .close-caption { opacity: 0; }
    &.fx-13 figure.hover figcaption .close-caption { opacity: 1; }

    &.fx-13 .caption-content {
        padding: 1em;
        color: var(--reverse-color);
        font-size: 1.25em;
        height: 100%;
        backface-visibility: hidden;
    }

    &.fx-13 .caption-content h2 {
        position: absolute;
        right: 0;
        bottom: 0;
        padding: 0.2em 1.2em;
        text-transform: uppercase;
    }

    &.fx-13 .caption-content p {
        text-align: right;
        text-transform: uppercase;
        width: 50%;
        padding: 0 10px 0 0;
        border-right: 1px solid var(--reverse-color);
        opacity: 0;
        transform: translate3d(-40px, 0, 0);
    }
    .no-touch &.fx-13 .caption-content p {
        transition: opacity .35s, transform .35s linear;
    }
    .no-touch &.fx-13:hover figure .caption-content p,
    &.fx-13 figure.hover .caption-content p {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    &.fx-13 figure .caption-content a {
        position: absolute;
        opacity: 0;
        right: 20px;
        top: 40px;
        border: none;
        pointer-events: none;
        text-transform: none;
    }
    .no-touch &.fx-13 figure .caption-content a {
        transform: translate3d(-100px, 0, 0);
    }
    .no-touch &.fx-13:hover figure .caption-content a,
    &.fx-13 figure.hover .caption-content a {
        opacity: 1;
        pointer-events: auto;
        transform: translate3d(0, 0, 0);
    }

    figure.effect-milo figcaption::before,
    figure.effect-milo figcaption::after {
        pointer-events: none;
    }

    &.fx-13 figure img {
        opacity: 1;
        margin-right: -2px;
        background-color: white; /* Not visible. Hack to improve image quality. */
        backface-visibility: hidden;
        transform: translate3d(-18px, 0, 0) scale(1.15);
    }
    .no-touch &.fx-13 figure img {
        transition: opacity 0.35s, transform .35s;
    }
    .no-touch &.fx-13:hover figure img,
    &.fx-13 figure.hover img {
        transform: translate3d(0, 0, 0) scale(1);
    }

    .no-touch &.fx-13:hover figure figcaption,
    &.fx-13 figure.hover figcaption {
        background: var(--overlay-bg-color);
    }
}


/*
   FX-14 - Fade In Overlay with Animated Caption
   (Multiple links, full-link not enabled)
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7,
.eCM-content-box.style-8 {

    &.fx-14 figure { overflow: hidden; }

    &.fx-14 figure figcaption {
        top: 0; bottom: 0; left: 0; right: 0;
        opacity: 0;
    }
    .no-touch &.fx-14:hover figure figcaption,
    &.fx-14 figure.hover figcaption { opacity: 1; }

    &.fx-14 figure time { z-index: 100; }

    &.fx-14 figcaption .caption-content {
        left: 0;
        right: 0;
        pointer-events: none; /* DO NOT REMOVE! Prevents click in mobile devices */
    }
    &.fx-14 figure.hover figcaption .caption-content { pointer-events: visible; }

    &.fx-14 figcaption .caption-content h3,
    &.fx-14 figcaption .caption-content p,
    &.fx-14 figcaption .caption-content a {
        transition: all 0.35s;
        transform: translate3d(0, 200%, 0);
    }

    &.fx-14 figcaption .caption-content h3 {
        display: inline-table;
        text-transform: uppercase;
        color: #fff;
        text-align: center;
        margin-top: 15px;
    }
    &.fx-14:hover figure figcaption .caption-content h3 {
        transform: translate3d(0, 0, 0);
        transition-delay: 0.1s;
        transition: transform 0.35s;
    }

    &.fx-14 figcaption .caption-content p {
        position: relative;
        top: 12%;
        color: #fff;
        padding: 0 10%;
    }
    &.fx-14:hover figure figcaption .caption-content p {
        transform: translate3d(0, 0, 0);
        transition-delay: 0.05s;
    }

    &.fx-14 figure figcaption .caption-content a + a { margin-left: 10px; }
    &.fx-14:hover figure figcaption .caption-content a {
        transform: translate3d(0, 0, 0);
        transition-delay: 0.1s;
    }

    &.fx-14 figcaption .caption-content a:nth-of-type(2) { transform: translate3d(0, 500%, 0); }
    &.fx-14 figcaption .caption-content a:nth-of-type(3) { transform: translate3d(0, 1000%, 0); }
    &.fx-14 figcaption .caption-content a:nth-of-type(4) { transform: translate3d(0, 1500%, 0); }
    &.fx-14 figcaption .caption-content a:nth-of-type(5) { transform: translate3d(0, 2000%, 0); }
}


/*
   FX-18 - Photo Zoom-In with Caption Overlay
   -------------------------------------------------- */

.eCM-content-box.style-5,
.eCM-content-box.style-7 {

    &.fx-18 figure { overflow: hidden; }

    &.fx-18 figure figcaption {
        bottom: 0px;
        left: 0;
        right: 0;
        width: 100%;
        height: auto;
        max-height: 250px;
        padding-top: 0;
        opacity: 1;
    }
    .no-touch &.fx-18 figure figcaption {
        transition-property: all;
        transition-duration: 300ms;
        transition-timing-function: ease;
    }
    .no-touch &.fx-18:hover figcaption,
    &.fx-18 figure.hover figcaption {
        background-color: color-mix(in srgb, var(--overlay-bg-color) 90%, transparent);
    }

    &.fx-18 figure img {
        display: block;
        height: auto;
        width: 100%;
        background-color: white; /* Not visible. Hack to improve image quality. */
        transform: scale(1.2);
    }
    .no-touch &.fx-18 figure img {
        transition-property: all;
        transition-duration: 300ms;
        transition-timing-function: ease-out;
    }
    &.fx-18:hover figure img { transform: scale(1); }

    &.fx-18 figure time {
        float: left;
        position: relative;
        margin: 0px 20px 0 0;
        background: none repeat scroll 0 0 var(--overlay-bg-color);
    }
    &.fx-18:hover figure time {
        background: none repeat scroll 0 0 color-mix(in srgb, var(--overlay-bg-color) 95%, black);
    }

    &.fx-18 .caption-content {
        position: relative !important;
        overflow: hidden; /* prevents text wrapping around date block */
    }

    &.fx-18 figcaption .header {
        color: color-mix(in srgb, var(--reverse-color) 70%, transparent);
        margin: 0;
        padding: 0;
        overflow: hidden;
    }
    .no-touch &.fx-18 figcaption .header {
        transition-property: color;
        transition-duration: 300ms;
        transition-timing-function: ease;
    }
    &.fx-18:hover figcaption .header {
        color: color-mix(in srgb, var(--reverse-color) 85%, transparent);
    }

    &.fx-18 figcaption .title {
        color: color-mix(in srgb, var(--reverse-color) 75%, transparent) !important;
    }
    &.fx-18:hover figcaption .title {
        color: var(--reverse-color) !important;
    }

    &.fx-18 figcaption .title h3 { margin-top: 0px; }
}


/*
   FX-19 - Expanding Caption
   Requires fixed height on figcaption element!
   -------------------------------------------------- */

.eCM-content-box.style-5 {

    &.fx-19 figure { overflow: hidden; }

    &.fx-19 figure figcaption {
        bottom: 30px;
        left: 0;
        right: 0;
        width: 100%;
        height: 60px; /* default height. Override according to visible content height */
        padding-top: 0;
        opacity: 1;
    }
    .no-touch &.fx-19 figure figcaption {
        transition-property: all;
        transition-duration: 0.240s;
        transition-timing-function: ease;
    }

    &.fx-19 figure figcaption .caption-content { padding-top: 0; }

    .no-touch &.fx-19:hover figure figcaption,
    &.fx-19 figure.hover figcaption {
        bottom: 0px !important;
        height: 100%;
        opacity: 1;
        background-color: color-mix(in srgb, var(--overlay-bg-color) 90%, transparent);
    }

    &.fx-19 .caption-content { position: relative !important; }

    .no-touch &.fx-19:hover figure figcaption .caption-content,
    &.fx-19 figure.hover figcaption .caption-content,
    &.fx-19 .caption-content.eCM-vertical-align {
        padding-top: 20px;
    }

    &.fx-19 figcaption p {
        color: rgba(255, 255, 255, 1); margin: 0; padding: 0;
    }

    &.fx-19 figcaption .header {
        color: color-mix(in srgb, var(--reverse-color) 70%, transparent);
        margin: 0;
        padding: 0;
        overflow: hidden;
    }
    .no-touch &.fx-19 figcaption .header {
        transition-property: color;
        transition-duration: 300ms;
        transition-timing-function: ease;
    }
    &.fx-19:hover figcaption .header {
        color: color-mix(in srgb, var(--reverse-color) 85%, transparent);
    }

    &.fx-19 figcaption .title {
        color: color-mix(in srgb, var(--reverse-color) 75%, transparent) !important;
    }
    &.fx-19:hover figcaption .title {
        color: var(--reverse-color) !important;
    }
}