/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

/* your custom css */

@media only screen and (min-device-width: 360px) and (max-device-width: 736px) {
}

@media only screen and (min-width: 1024px) {
    .separateOnPageNav .wrapper, .separateOnPageNav .headerWrapper.wrapper {
        max-width: 1400px;
    }
}

@media only screen and (max-width: 1023px) {
}

@media only screen and (min-width: 1400px) {
}

@media only screen and (min-width: 1500px) {
}

.main-panel-green {
    background:green;
}

.main-panel-text {
    color:white;
}

.slick-next {
    right: -45px;
}

.slick-next:before, .slick-prev:before {
}

.slick-next, .slick-prev {
    z-index: 100;
    width: 40px;
    height: 40px;
}

.slick-prev {
    left: -45px;
}

.slick-next:before, .slick-prev:before {
    font-size: 40px;
}

.slick-dots li {
    width: 30px;
}

.slick-dots li button {
    width: 30px;
    height: 30px;
}

.slick-dots {
    bottom: -25px;
}

.slick-dots li button:before {
    font-size: 20px;
    color:rgb(57, 181, 74);
    border-radius: 50%;
    border: 3px solid white;
    line-height: 22px;
    opacity: 0.55;
    background: white;

}

.slick-dots li.slick-active button:before {
    color: rgb(57, 181, 74);
    opacity: 0.9;
}

.sp-color-green {
    color: rgb(57, 181, 74);
}

li.installation-step {
    list-style: none;
    margin-top: 15px;
    margin-bottom: 15px;
}

.wrapper-container {
    display: inline-grid;
}

.wrapper-full {
    grid-column: span 12;
}

.wrapper-step {
    grid-column: span 2;
    margin-right: 10px;
}

.wrapper-instruction {
    grid-column: spn 10;
}

body {
    font-family: 'Roboto', sans-serif !important;
}

hr {
    background-color: #e1e4e8;
    border: 0;
    height: .25em;
    margin: 24px 0;
    padding: 0;
}

.pe-image-documentation {
    box-shadow: 0 0 3px #555;
    padding: 5px;
}

.pe-grid-container {
    display: grid;
    /*grid-template-rows:200px 1fr 100px;*/
    grid-template-columns: 50% 50%;
}

.pe-container-item {
    height: 180px;
    border-radius: 4px;
    background-color: #ffffff;
    box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
    border: solid 1px #dedede;
    padding: 8px 0px 2px;
    color: #262626;
    display: inline-block;
    margin: 15px 7px 0 7px;
    vertical-align: top;
    text-align: left;
    position: relative;
}

.pe-container-item-sink {
    border-top: 4px solid #3F51B5;
}

.pe-container-item-processor {
    border-top: 4px solid #009688;
}

.pe-container-item-header {
    display: flex;
    flex-direction: row;
    margin-bottom: 5px;
    padding-top: 5px;
    padding-left: 16px;
    padding-right: 16px;
}

.pe-container-item-icon {
    box-shadow: 0 0 2px #555;
    width: 75px;
    height: 75px;
    display: inline;
    float: left;
    padding: 10px;
    margin-right: 20px;
    margin-top: 10px;
}

.pe-container-item-header-pe {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.pe-container-item-label {
    color: white;
    float: right;
    padding: 2px 4px;
    font-size: 9pt;
    align-self: flex-end;
}

.pe-container-item-label-name {
    float: left;
    margin-top: auto;
    font-weight: bold;
    font-size: 14pt;
}

.pe-container-item-label-processor {
    background: #009688;
}

.pe-container-item-label-sink {
    background: #3F51B5
}

.pe-container-item-body {
    padding-left: 16px;
    padding-right: 16px;
    margin-top: 10px;
    font-size: 11pt;
}

.pe-icon {
    display: inline-block;
    margin-left: auto;
    margin-right: auto;
    max-height: 100%;
    width: 100%;
}

.pe-icon-sink {
    border: 2px solid #3F51B5;
}

.pe-icon-processor {
    border: 2px solid #009688;
}

.pe-container-item-footer {
    display: grid;
    grid-template-columns: 33% 33% 33%;
    position: absolute;
    bottom: 2px;
    font-size: 9pt;
    color: gray;
    width: 100%;
    align-items: center;
    justify-items: center;
}


.container .wrapper h2 {
    font-weight: bolder;
    font-family: 'Roboto', sans-serif;
}

.container .wrapper h3 {
    font-weight: bolder;
    font-family: 'Roboto', sans-serif;
}

.blog-image {
    max-width: 60%;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.container .wrapper h4 {
    font-weight: bolder;
    font-family: 'Roboto', sans-serif;
}

h1, h2, h3, h4, h5 {
    font-weight: bolder;
    font-family: 'Roboto', sans-serif;
}

p {
    text-align: justify;
}

.community {
    margin-bottom: 40px;
}

.smaller {
    margin-top: 25pt;
    font-size: 18pt;
}

.screenshot {
    margin-top: 25pt;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

.sp-background {
    background-color: rgba(255, 255, 255, 0.6);
    background-image: linear-gradient(90deg, rgba(216, 216, 216, 0.3) 10%, transparent 0%), linear-gradient(rgba(216, 216, 216, .3) 10%, transparent 0%);
    background-size: 15px 15px;
}

.sp-button {
    background: rgb(27, 20, 100);
    border-radius: 3px;
    border: none;
    color: rgba(255, 255, 255, 0.75);
    display: inline-block;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2em;
    padding: 10px;
    text-decoration: none !important;
    text-transform: uppercase;
    transition: background 0.3s, color 0.3s;
}

.slick-prev:before, .slick-next:before {
    color: #39b54a;
}

.blockElement {
    border: 3px solid rgb(27, 20, 100);
    border-radius: 5px;
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.6);
}

.imageAlignTop .blockImage {
    max-width: 110px;
}

.fixedHeaderContainer {
    background: white;
    box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.15);
}

.fixedHeaderContainer a {
    color: rgb(27, 20, 100);
}

.fixedHeaderContainer a h3 {
    color: rgb(27, 20, 100);
}


.navigationSlider .slidingNav ul li a {
    color: rgb(27, 20, 100);
}

.navigationSlider .slidingNav ul li a:hover, .navigationSlider .slidingNav ul li.siteNavItemActive a, .navigationSlider .slidingNav ul li.siteNavGroupActive a {
    background: white;
    color: #39b54a;
    font-weight: bold;
}

.padding-50 {
    padding-left: 50px;
    padding-right: 50px;
}

.margin-top-100 {
    margin-top:100px;
}

.sp-blue {
    color: #1b1464;
}

.sp-green {
    color: rgb(57,181,74);
}

.alert-info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
}

.alert {
    position: relative;
    padding: .75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: .25rem;
}

.docs-image {
    max-width: 80%;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    /*border: 2px solid rgb(57,181,74);*/
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.docs-image-no-shadow {
    box-shadow: none;
}

.docs-image-small {
    max-width: 70%;
    margin-top: 20px;
    margin-bottom: 20px;
}

.docs-carousel {
    max-width: 85%;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 40px;
}

.slick-dotted.slick-slider {
    margin-bottom: 40px;
}

.grid {
    display: grid;
    grid-auto-flow: column;
}
.grid .toc-box {
    height: 100%;
}
.grid.col-3 {
    grid-gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-flow: unset;
}
.grid.col-3 .toc-box {
    margin: 0;
}


@media screen and (max-width: 600px) {
    .col-3 {
        width: 100%;
    }
}

.toc-section-header {
    margin-bottom: 10px;
}

.toc-header {
    background: rgb(219, 219, 219);
    color: #2d2d2d;
    font-weight: bold;
    padding: 10px;
    font-size: 14pt;
}

.toc-content {
    padding: 10px;
}

.toc-box {
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    margin: 10px;
}

.thick-border-left {
    text-decoration: underline;
    padding-left: 10px;
    text-decoration-style: solid;
    text-underline-offset: 15px;
}
