/* ==========================================================================
   1. BASE PANEL & SHARED LAYOUT STYLES
   ========================================================================== */
.panel-grid.panel-has-style > .panel-row-style,
.panel-grid.panel-no-style {
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: nowrap;
  -ms-justify-content: space-between;
  justify-content: space-between;
}

.panel-layout.panel-is-rtl .panel-grid.panel-has-style > .panel-row-style,
.panel-layout.panel-is-rtl .panel-grid.panel-no-style {
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.panel-grid-cell {
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

.panel-grid-cell .panel-cell-style {
  height: 100%;
}

.panel-grid-cell .so-panel {
  zoom: 1;
}

.panel-grid-cell .so-panel:before {
  content: "";
  display: block;
}

.panel-grid-cell .so-panel:after {
  content: "";
  display: table;
  clear: both;
}

.panel-grid-cell .panel-last-child {
  margin-bottom: 0;
}

.panel-grid-cell .widget-title {
  margin-top: 0;
}

.panel-grid .so-parallax {
  position: relative;
}

.panel-grid .so-parallax > :not(.simpleParallax) {
  position: relative;
  z-index: 1;
}

.panel-grid .so-parallax .simpleParallax,
.panel-grid .so-parallax img[data-siteorigin-parallax] {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
  z-index: 0;
}

.panel-background-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
}

.panel-has-overlay .panel-cell-style,
.panel-has-overlay .panel-row-style,
.panel-has-overlay .panel-widget-style {
  overflow: hidden;
  position: relative;
  z-index: 1;
}

body.siteorigin-panels-before-js:not(.siteorigin-panels-css-container) {
  overflow-x: clip;
}

body.siteorigin-panels-before-js:not(.siteorigin-panels-css-container) .siteorigin-panels-stretch {
  margin: 0 -1000px !important;
  padding: 0 1000px !important;
}

.so-sr-only {
  clip: rect(0, 0, 0, 0);
  height: 1px;
  left: -10000px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* ==========================================================================
   2. IMAGE WIDGETS
   ========================================================================== */

/* Grouped Image Containers */
.sow-image-container {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
}

/* Grouped Link Wrappers */
.sow-image-container > a,
.sow-image-container > a,
.sow-image-container > a {
  display: inline-block;
  width: 100%;
  max-width: 100%;
}

/* IE High Contrast Media Query for Images */
@media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none) {
  .sow-image-container > a,
  .sow-image-container > a,
  .sow-image-container > a {
    display: flex;
  }
}

/* Grouped Actual Images */
.sow-image-container .so-widget-image,
.sow-image-container .so-widget-image,
.sow-image-container .so-widget-image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

/* ==========================================================================
   3. GENERIC BUTTON WIDGETS
   ========================================================================== */
.ow-button-base { zoom: 1; }
.ow-button-base:before { content: ''; display: block; }
.ow-button-base:after { content: ''; display: table; clear: both; }

.ow-button-base .sowb-button {
  cursor: pointer;
  display: inline-block;
  line-height: 1em;
  text-align: center;
  text-decoration: none;
}

/* Button Icons */
.ow-button-base .sowb-button .sow-icon-image,
.ow-button-base .sowb-button [class^="sow-icon-"] {
  font-size: 1.3em;
  height: 1em;
  width: auto;
  margin: -0.1em .75em -0.2em -0.75em;
  display: block;
  float: left;
}

.ow-button-base .sowb-button .sow-icon-image { width: 1em; background-size: cover; }
.ow-button-base .sowb-button.ow-icon-placement-top .sow-icon-image,
.ow-button-base .sowb-button.ow-icon-placement-top [class^="sow-icon-"] { margin: 0 auto .5em; float: none; }
.ow-button-base .sowb-button.ow-icon-placement-right .sow-icon-image,
.ow-button-base .sowb-button.ow-icon-placement-right [class^="sow-icon-"] { margin: -0.1em -0.75em -0.2em .75em; float: right; }
.ow-button-base .sowb-button.ow-icon-placement-bottom .sow-icon-image,
.ow-button-base .sowb-button.ow-icon-placement-bottom [class^="sow-icon-"] { float: none; margin: .5em auto 0; }
.ow-button-base .sowb-button.ow-icon-placement-bottom > span { display: flex; flex-direction: column-reverse; }
.ow-button-base .sowb-button.ow-icon-placement-left .sow-icon-image,
.ow-button-base .sowb-button.ow-icon-placement-left [class^="sow-icon-"] { margin: -0.1em .75em -0.2em -0.75em; float: left; }

/* Alignments */
.ow-button-base.ow-button-align-left { text-align: left; }
.ow-button-base.ow-button-align-right { text-align: right; }
.ow-button-base.ow-button-align-center { text-align: center; }
.ow-button-base.ow-button-align-justify .sowb-button { display: block; }

/* Main Button Styles */
[class*="so-widget-sow-button-atom-"] .ow-button-base .sowb-button {
  box-sizing: border-box;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), 0 1px 2px rgba(0,0,0,0.065);
  background: #41a9d5;
  background: linear-gradient(to top, #298fba 0%, #41a9d5 100%);
  border-radius: 0.25em;
  border: 1px solid;
  border-color: #2685ad #247fa5 #227598 #247fa5;
  color: #ffffff !important;
  font-size: 1em;
  padding: 1em 2em;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.05);
}

/* Hover States */
[class*="so-widget-sow-button-atom-"] .ow-button-base .sowb-button.ow-button-hover:active,
[class*="so-widget-sow-button-atom-"] .ow-button-base .sowb-button.ow-button-hover:hover {
  background: #49add7;
  background: linear-gradient(to top, #2b95c2 0%, #49add7 100%);
  border-color: #52b1d9 #49add7 #3da7d4 #49add7;
  color: #ffffff !important;
}

/* Mobile Rules */
@media (max-width: 780px) {
  [class*="so-widget-sow-button-atom-"] .ow-button-base.ow-button-align-center {
    text-align: center;
  }
  [class*="so-widget-sow-button-atom-"] .ow-button-base.ow-button-align-center.ow-button-align-justify .sowb-button {
    display: inline-block;
  }
}