/* globals */

:root {
    /* theme */
    --blackish:             #0A1011;
    --dark-green:           #0C221D;
    --green:                #5CA2A2;
    --light-green:          #BBD1D5;

    /* basics */
    --primary-80:           #254040;
    --primary-65:           #407171;
    --primary:              #5CA2A2;
    --primary-35:           #8dbebe;
    --primary-20:           #bddada;

    --black:                #000000;
    --gray-90:              #1a1a1a;
    --gray-80:              #333333;
    --gray-70:              #4d4d4d;
    --gray-60:              #666666;
    --gray-50:              #808080;
    --gray-40:              #999999;
    --gray-30:              #b3b3b3;
    --gray-20:              #cccccc;
    --gray-10:              #e6e6e6;
    --white:                #ffffff;
}

html,
body {
    height: 100%;
}
html {
    font-size: 62.5%;
}
html, * {
    box-sizing: border-box;
}
body {
    display: flex;
    flex-direction: column;
    min-width: 32rem;
    font-size: 1.5rem;
    line-height: 1.8;
    font-family: 'Roboto', sans-serif;
    margin: 0;
}
code,
pre {
    font-family: Menlo, Consolas, monospace;
}
pre {
    border-style: solid;
    border-color: #E5E5E5;
    border-width: .1rem .5rem;
    overflow-x: scroll;
    padding: 1rem 2rem 1.5rem;
    color: var(--gray-70);
    margin: 2rem 0;
    background: #fff;
}
code {
    border: .1rem solid #E5E5E5;
    margin: 0 .3rem;
    padding: .2rem .4rem;
    background-color: #F4F9F9;
    border-radius: 0.3rem;
}
pre code {
    border: none;
    border-radius: 0;
    margin: 0;
    padding: 0;
    background-color: transparent;
}
code b,
pre b,
h1,
h2,
h3,
h4 {
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
    color: #000000;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
h1 {
    font-family: Roboto;
    font-weight: 900;
    font-size: 3.8rem;
    line-height: 4.5rem;
    letter-spacing: 0.06rem;
    text-transform: uppercase;
    margin: 0 0 2rem 0;
}
h2 {
    text-transform: uppercase;
    font-size: 2rem;
    font-weight: 700;
    margin: 40px 0px 0px 0px;
}
h3,
h4 {
    font-size: 2rem;
    font-weight: 700;
}
h5 {
    font-size: 1.6rem;
}
h3.bullet {
    margin-bottom: 1rem;
}
h3.bullet::after {
    content: "";
    display: block;
    background-color: #000000;
    height: .2rem;
    width: 5rem;
}
a {
    color: var(--green);
}
img {
    max-width: 100%;
}
.btn {
    background-color: #0B6D88;
    color: #FFFFFF;
    border-radius: .2rem;
    -moz-border-radius: .2rem;
    -webkit-border-radius: .2rem;
    text-align: center;
    text-transform: capitalize;
    padding: .9rem 2rem;
    box-sizing: border-box;
}
.btn--secondary {
    color: #0B6D88;
    border: .2rem solid #0B6D88;
    background-color: transparent;
}
.btn--sm {
    padding: .5rem 1rem;
}
.btn:hover {
    background-color: #888888;
    border-color: #888888;
    color: #FFFFFF;
}
.btn-group a {
    border: 1px solid #000000;
    margin: 0;
    float: left;
    min-width: 10rem;
    text-align: center;
    height: 2.9rem;
    line-height: 2.9rem;
    margin-left: -.1rem;
    color: #000000;
}
.btn-group a:hover {
    cursor: pointer;
    border-color: #888888;
    background-color: #888888;
    color: #FFFFFF;
}
.btn-group a:first-of-type {
    border-radius: .2rem 0 0 .2rem;
}
.btn-group a:last-of-type {
    border-radius: 0 .2rem .2rem 0;
}
.btn-group .selected {
    background-color: #000000;
    color: #ffffff;
}
ul {
    padding-left: 2rem;
    margin: 1rem 0 1rem 0;
}
.docs-nav {
    position: relative;
    width: 30rem;
}
.documentation--current .docs-nav {
    width: 30rem;
    position: fixed;
    top: 11.5rem;
    bottom: 0;
    text-transform: uppercase;
    margin-bottom: 5rem;
    overflow: hidden;
    overflow-y: auto;
}
.documentation--current .p-toc {
    width: 30rem;
    overflow: hidden;
    overflow-y: auto;
}
.documentation--current.expanded .docs-nav {
    width: 10rem;
}
.documentation--current.expanded .toc-handle-container {
    width: 11.2rem;
}
.documentation--current .toc-handle-container {
    width: 31.2rem;
    position: fixed;
    top: 11.5rem;
    bottom: 0;
    margin-bottom: 5rem;
}
.documentation--current .toc-handle {
    font-weight: bold;
    line-height: 1;
    cursor: pointer;
    padding: 2rem 0.2rem;
    background: var(--light-green);
    color: black;
    position: absolute;
    right: 0;
    top: 46%;
    z-index: 99;
}
.toc {
    width: 30rem;
    display: block;
}
.toc li {
    margin 0;
    list-style-type: none;
}
.toc > li {
    margin-bottom: .6rem;
}
.toc a {
    color: #000000;
}
.toc ul {
    padding: .2rem 1.7rem 0;
    text-transform: none;
    font-weight: 400;
    margin: 0 0 1rem;
}
.toc a:hover,
.toc ul a {
    color: #0B6D88;
}
.toc ul ul {
    padding: 0 1.8rem;
    margin-bottom: 0;
}
ol.toc {
    list-style: decimal;
    padding: 0 0 0 1rem;
}
ol.toc > li {
    padding-left: .2rem;
}
.data-table {
    border: none;
    border-collapse: collapse;
    width: 100%;
    overflow-x: scroll;
    margin: 2rem 0;
}
.page-dark .data-table th,
.page-dark .data-table td {
    color: white;
}
.data-table tbody {
    border-style: solid;
    border-color: #E5E5E5;
    border-width: 0;
}
.data-table td,
.data-table th {
    border: .1rem solid #cccccc;
    padding: .5rem 1rem;
    min-width: 10rem;
}
.data-table th {
    text-align: left;
    background-color: #fff;
    border: .1rem solid #222222;
    color:#000;
    font-weight: 400;
    padding: 1rem;
    text-transform: uppercase;
    overflow: hidden;
    vertical-align: top;
    width: 25%;
}
.data-table td {
    /* These are technically the same, but use both */

    overflow-wrap: break-word;
    word-wrap: break-word;
    -ms-word-break: break-all;
    /* This is the dangerous one in WebKit, as it breaks things wherever */

    word-break: break-all;
    /* Instead use this non-standard one: */

    word-break: break-word;
    /* Adds a hyphen where the word breaks, if supported (No Blink) */

    -ms-hyphens: auto;
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    hyphens: auto;
}
.data-table tr td:first-of-type {
    -ms-hyphens: none;
    -moz-hyphens: none;
    -webkit-hyphens: none;
    hyphens: none;
}

table.docutils  {
    border-collapse: collapse;
    border-spacing: 0;
    empty-cells: show;
    background-color: transparent;
    table-layout: fixed; width: 100%;
    font-size:1.5rem;
    line-height: 1.8;
}

td {
    border: 1px solid #e1e4e5;
    margin: 0;
    padding: 16px;
    overflow: hidden;
    width: 200px;
}

th {
    border: 1px solid #e1e4e5;
    margin: 0;
    overflow: visible;
    padding: 8px 16px;
    text-align:left;
    background-color:#ccc;
}

tr:nth-child(even) {
    background-color: #f2f2f2;
}
tr:nth-child(odd) {
    background-color: white;
}

/* Configuration lists */
.config-list>li {
    list-style-type: none;
    padding: 15px 0px 15px 20px;
    border-bottom: 1px solid black;
}

.config-list h4 {
    margin: 0;
}

.config-list table *{
    border: 0;
    background-color: transparent;
    padding: 0;
}

.config-list tr {
    border-width: 0;
    background-color: transparent;
}

.config-list th {
    text-align: right;
}

.config-list td {
    text-align: left;
    padding: 0px 0px 0px 10px;
}

.config-list>li:nth-child(odd) {
    background: #f2f2f2;
}
.page-dark,
.page-dark * {
    box-sizing: border-box;
}
.page-dark .config-list {
    padding-left: 0;
}
.page-dark .config-list>li:nth-child(odd) {
    background: rgba(0, 0, 0, 0.2);
}
.page-dark .config-list td {
    color: white;
}

.page-dark .config-list .data-table {
    width: auto;
}

.page-dark code {
    background-color: rgba(0, 0, 0, 0.2);
    border-color: rgba(0, 0, 0, 0.3);
    border-radius: 0.3rem;
    font-size: 1.4rem;
}

.horizontal-list li {
    display: inline-block;
}

.horizontal-list li:before {
    content: '\00a0\00a0\2015\00a0';
}

.horizontal-list li:first-child:before {
    content: '';
}

.highlight pre span {
    font-size:1.4rem;
}
.logo-link {
    display: inline-block;
    width: 220px;
    height: 64.77px;
    background: url("/images/logo.png");
    background-size: 217px auto;
    background-repeat: no-repeat;
    /* small: 168 x 50 */
}
.page-dark .logo-link {
    background: url('/logos/kafka-white.svg');
    background-repeat: no-repeat;
}
.page-dark {
    background: #363D3F;
    color: white;
    margin: 0;
}
.page-dark .content {
    max-width: 100rem;
}
.page-dark .content-separator {
    max-width: 100rem;
    background-color: #969191;
    border: none;
    height: 1px;
}
.page-dark .content-get-started {
    margin-top: 7rem;
}
.page-dark a:link {
    color: var(--green);
}
.page-dark a:visited {
    color: var(--green);
}
.page-dark .top-nav-item-anchor:link,
.page-dark .top-nav-item-anchor:active,
.page-dark .top-nav-item-anchor:visited,
.page-dark .top-nav-anchor:link,
.page-dark .top-nav-anchor:active,
.page-dark .top-nav-anchor:visited {
    color: white;
    text-decoration: none;
}
.page-dark .top-nav-item-anchor:hover,
.page-dark .top-nav-anchor:hover,
.page-dark .top-nav-item-anchor:focus,
.page-dark .top-nav-anchor:focus {
    color: var(--green);
}
.page-dark .top-nav-menu {
    background-color: #373E40;
}
.page-dark .header {
    background-color: #363D3F;
}
.page-dark .header.scrolled {
    background-color: #373E40;
}
.page-dark .top-nav-download {
    background: linear-gradient(90deg, #427583 -15.13%, var(--green) 100%), #0A1011;
    color: white !important; /* ignoring link colors */
}
.page-dark .top-nav-download:hover {
    background: linear-gradient(90deg, #427583 -15.13%, #80bdbd 100%), #0A1011;
}
.page-dark .anchor-heading {
    position: relative;
}
.anchor-link,
.header-link {
    position: relative;
    top: -12rem;
    left: 0;
}
.page-dark .docs-title,
.page-dark .content-title {
    font-family: Roboto;
    font-weight: bold;
    font-size: 3rem;
    line-height: 4.2rem;
    text-transform: uppercase;
    color: #FFFFFF;
}
#docs-top-link {
    position: fixed;
    bottom: 6.5rem;
    right: 1rem;
    display: block;
    padding: .5rem 1.5rem;
    background: linear-gradient(90deg, #427583 -15.13%, var(--green) 100%), #0A1011;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.38);
    color: white !important; /* ignoring link colors */
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
}
.docs-toc-title {
    margin-top: 0;
}
/* helper classes */

.centered {
    display: block;
    margin: auto;
}
.pb-10 {
    display: inline-block;
    padding-bottom: 1rem;
}
/* components */

.main {
    width: auto;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
.header {
    padding: 2rem 0 1rem;
    background-color: #FFFFFF;
    position: fixed;
    left: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    padding: 2rem 2.2rem;
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto;
    z-index: 99;
    transition: box-shadow 0.5s;
}
.header.scrolled {
    box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.38);
    margin: 0;
}
.burger-toggle {
    padding: .4rem;
    border-radius: .3rem;
    width: 4rem;
    height: 4rem;
    border: 1px solid #ccc;
    background-color: white;
}
.burger-toggle .burger-line {
    display: block;
    width: 80%;
    margin: 6px auto;
    height: 2px;
    background-color: black;
    border-radius: 2px;
}
.page-dark .burger-toggle {
    padding: .4rem;
    border-radius: .3rem;
    width: 4rem;
    height: 4rem;
    border: 1px solid rgba(0, 0, 0, 0.3);
    background-color: rgba(0, 0, 0, 0.1);
}
.page-dark .burger-toggle .burger-line {
    background-color: white;
}
.top-nav-toggle {
    display: none;
}
.top-nav-container {
    display: flex;
    box-sizing: border-box;
}
.top-nav {
    font-family: Roboto;
    font-style: normal;
    font-weight: 600;
    font-size: 1.2rem;
    line-height: 14px;
    display: flex;
    align-items: center;
    align-self: center;
    text-align: center;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    /* fix inherited styles from nav selector */
    float: none;
    width: auto;
}
.top-nav-list {
    display: flex;
    list-style-type: none;
    padding: 0;
    margin: 0;
}
.top-nav-item {
    display: block;
    padding: 0;
    position: relative;
}
.top-nav-item-anchor {
    display: block;
    padding: 1.55rem 2.75rem;
    position: relative;
    cursor: pointer;
    color: black;
}
.top-nav-item-anchor[href="#"] {
    cursor: default;
}
.top-nav-menu {
    display: none;
    background: white;
    list-style-type: none;
    padding: 0;
    margin: 0;
    position: absolute;
    top: 4rem;
    left: 50%;
    z-index: 60;
    transform: translateX(-50%);
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.38);
}
.top-nav-menu[aria-hidden="false"] {
    display: block;
}
.top-nav-anchor {
    display: inline-block;
    padding: 1rem 0;
    width: 16rem;
    text-align: center;
    font-family: inherit;
}
.top-nav-item-anchor:link,
.top-nav-item-anchor:active,
.top-nav-item-anchor:visited,
.top-nav-anchor:link,
.top-nav-anchor:active,
.top-nav-anchor:visited {
    color: black;
    text-decoration: none;
}
.top-nav-item-anchor:hover,
.top-nav-anchor:hover,
.top-nav-item-anchor:focus,
.top-nav-anchor:focus {
    color: var(--green);
}
.top-nav-download {
    font-size: 14px;
    letter-spacing: 0.11rem;
    line-height: 16px;
    background: linear-gradient(115.55deg, #000000, rgba(255, 255, 255, 0.5) 131.3%), #0A1011;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.38);
    border-radius: 0.2rem;
    border: none;
    color: white;
    text-transform: uppercase;
    padding: 1.5rem;
    margin-left: 3rem;
    cursor: pointer;
    font-weight: normal;
    text-decoration: none;
    position: relative;
    top: 1.4rem;
}
.top-nav-download:hover {
    background-color: rgb(178, 178, 178);
}
.page-home .waves {
    background: url("/images/waves.svg") no-repeat top center;
    background-size: cover;
    height: 24vw;
}
.page-home .content-bottom {
    background: #363D3F;
    color: white;
    margin-top: -1px; /* fixes scaling issues from the little hack i'm doing */
}
.page-home .content-bottom .content-section {
    max-width: 110rem;
    margin: 0 auto;
}
.page-home .content-bottom .content-section-separator {
    max-width: 105.8rem;
    height: 1px;
    background-color: #969191;
    margin: 0 auto 7rem;
    border: none;
}
.page-home .content-bottom .content-section-title {
    font-family: Roboto;
    font-style: normal;
    font-weight: bold;
    font-size: 2.1rem;
    line-height: 2.9rem;
    text-transform: uppercase;
    color: #A9CBD4;
    padding: 0 0 0 2.2rem;
    margin: 0 0 5rem 0;
}
.page-home .content-bottom .content-section-header {
    font-size: 21px;
    line-height: 2.9rem;
    padding: 2.2rem;
    height: 6rem;
}
.page-home .content-bottom .content-section-list {
    list-style-type: none;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}
.page-home .content-bottom .content-section-item {
    width: 25rem;
    height: 38.4rem;
    padding: 2.2rem;
}
.page-home .content-bottom .content-section-item-icon {
    /* TODO */
    display: inline-block;
}
.page-home .content-bottom .content-section-item-title {
    margin: 3.1rem 0 0;
    font-size: 18px;
    line-height: 2.5rem;
    text-transform: uppercase;
    color: #A9CBD4;
    height: 6rem;
    padding: 0;
}
.page-home .content-bottom .content-section-item-content {
    font-family: "Roboto Condensed";
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 2.2rem;
    margin: 0;
    padding: 0;
}
.page-home .content * {
    box-sizing: border-box;
}
.page-home .content {
    box-sizing: border-box;
    width: auto;
    margin: 25rem 0 0;
    padding: 0;
    max-width: none;
}
.page-home .content-top {
    max-width: 76.7rem;
    margin: 13rem auto 0;
    text-align: center;
    font-family: Roboto;
}
.page-home .content-top-title {
    font-weight: 900;
    font-size: 3.8rem;
    line-height: 4.5rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin: 0 0 0.2rem;
}
.page-home .content-top-subtitle {
    font-size: 21px;
    font-style: italic;
    line-height: 3rem;
    margin: 0;
    font-weight: 400;
}
.page-home .content-top-subtitle-strong {
    color: var(--green);
    font-weight: bold;
}
.page-home .content-top-text {
    font-weight: 100;
    font-size: 2.1rem;
    line-height: 3rem;
    padding: 0 .5rem 0;
}
.page-home .content-top-separator {
    width: 10rem;
    height: 1px;
    background-color: black;
    border: none;
    margin: 3.5rem auto 0;
    padding: 0;
}
.page-home .content-top-industry {
    font-weight: bold;
    font-size: 1.6rem;
    line-height: 2.4rem;
    margin-bottom: 0;
}
.page-home .content-top-industry-list {
    list-style-type: none;
    display: flex;
    max-width: 53rem;
    margin: 6rem auto;
    padding: 0;
    justify-content: space-between;
    font-style: italic;
}
.page-home .content-top-industry-item {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    flex-wrap: wrap;
}
.page-home .content-top-industry-title {
    margin: 0;
    padding: 0.5rem 0.5rem 0 0;
    font-size: 1.4rem;
    font-weight: 500;
    text-transform: uppercase;
    border-top: 1px solid black;
    position: relative;
    width: 100%;
    left: -.5rem;
}
.page-home .content-top-industry-ratio {
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 2.6rem;
    display: flex;
    flex-direction: row;
    margin: 1rem 0 0;
    padding: .2rem .3rem .2rem 0;
    align-items: center;
    justify-content: center;
    border-top: 1px solid black;
    width: 100%;
}
.page-home .content-top-industry-ratio-stacked {
    font-size: 0.9rem;
    text-transform: uppercase;
    width: 1.7rem;
    line-height: 0.9rem;
    text-align: left;
    margin-left: .5rem;
    font-weight: 400;
}
.quickstart-step {
    border: 0.2rem solid var(--green);
    padding: 1rem 10rem 2.5rem;
    margin-bottom: 3rem;
}
.documentation .quickstart-step {
    padding: 0;
    border: 0;
}
.quickstart-step .anchor-heading {
    margin-top: 2rem;
}
.quickstart-step .anchor-heading a {
    text-decoration: none;
    text-transform: uppercase;
}
.quickstart-step .anchor-link {
    top: -16rem;
}
.quickstart-step .note {
    font-style: italic;
    color: var(--gray-70);
}
.figure {
    position: relative;
    width: 100%;
    text-align: center;
    margin: 0;
}
.figure-image {
    max-width: 75%;
    max-height: 300px;
}
.figure-caption {
    text-align: center;
    max-width: 75%;
    margin: 0 auto;
    font-style: italic;
}
.podcast-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.podcast-item {
    display: flex;
    flex-direction: column;
    max-width: 24%;
    min-width: 10rem;
    height: max-content;
}
.podcast-figure {
    width: 100%;
    padding: 0;
    margin: 0;
}
.podcast-figure-image {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid var(--green);
}
.podcast-title {
    margin-top: 0;
    padding-top: 0;
}
.content-top-industry-full-list {
    position: relative;
    color: var(--green);
    text-decoration: underline;
    text-align: center;
    cursor: default;
    text-transform: uppercase;
    font-weight: bold;
    padding: .5rem;
    font-size: 1.2rem;
}
.content-top-industry-full-list:hover .content-top-industry-full-list-tooltip,
.content-top-industry-full-list:active .content-top-industry-full-list-tooltip {
    display: block;
} 
.content-top-industry-full-list-tooltip {
    font-size: 1.4rem;
    font-weight: 300;
    display: none;
    position: absolute;
    top: 3rem;
    left: 0;
    text-align: left;
    box-shadow: 0px 15px 30px rgba(0, 0, 0, 0.25);
    color: black;
    left: 50%;
    transform: translateX(-50%);
    padding: 1.2rem 2.2rem;
    background: white;
    white-space: nowrap;
    text-transform: none;
}
.page-home .content-top-disclaimer {
    font-weight: 100;
    font-size: 16px;
    line-height: 2.4rem;
    max-width: 38.5rem;
    padding: 0 2rem;
    margin: 0 auto;
}
.footer {
    flex: 1;
    min-height: 5.3rem;
    position: relative;
}
.footer__inner {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    border-top: .1rem solid #dedede;
    font-size: .9rem;
    line-height: 1.2rem;
    color: #888888;
    padding: 2rem 0;
    background: white;
}
.footer__legal {
    margin: 0 2rem;
}
.footer__legal a {
    color: #666666;
}
.sub-header {
    overflow: hidden;
    margin: 3rem 0 1rem;
}
.breadcrumbs {
    list-style: none;
    padding: 0;
    text-transform: uppercase;
    margin-bottom: 0;
    display: flex;
}
.breadcrumbs li {
    display: flex;
    align-items: center;
    margin-right: .8rem;
}
.breadcrumbs li::after {
    content: '\00BB';
    margin-left: .6rem;
    height: 1rem;
    line-height: .9rem;
}
.breadcrumbs a {
    color: #000000;
}
.breadcrumbs a:hover {
    color: #0B6D88;
}
.content {
    width: 98rem; /* the original width (120) minus the padding that accounted for the left nav (22) */
    max-width: 98vw;
    margin: 0 auto;
    margin-top: 12rem;
    padding: 0 0 12rem 0;
}
nav {
    float: left;
    text-transform: uppercase;
    width: 16rem;
}
nav a {
    text-decoration: none;
}
.nav__item,
.nav__item__with__subs {
    color: #000000;
    border-right: 2px solid #000000;
    display: block;
    padding-top: 1.5rem;
    position: relative;
}
.nav__item__with__subs {
    padding-top: 0;
}
.nav__sub__anchor,
.nav__sub__item {
    border-right: none;
}
.nav__sub__item {
    display: none;
    color: #888888;
    font-size: 1.2rem;
    text-transform: capitalize;
}
.nav__item__with__subs--expanded .nav__sub__item {
    display: block;
}
.nav__item:first-of-type {
    padding-top: 0;
}
.nav__item__with__subs .nav__item:first-of-type {
    padding-top: 1.5rem;
}
.nav__item::after {
    content: "";
    display: block;
    height: 1.1rem;
    width: 1.1rem;
    border-radius: 1rem;
    -moz-border-radius: 1rem;
    -webkit-border-radius: 1rem;
    border: 2px solid #000000;
    background: #FFFFFF;
    position: absolute;
    right: -.9rem;
    top: 1.7rem;
    opacity: 0;
    transition: opacity .2s ease-out;
}
.nav__item.selected::after {
    opacity: 1;
}
.nav__item.selected:first-of-type::after {
    top: .2rem;
}
.nav__item__with__subs .nav__item:first-of-type::after {
    top: 1.7rem;
}
nav .btn {
    display: block;
    margin-top: 4rem;
}
.social-links {
    margin: 2rem 0 3rem;
    font-size: 1.2rem;
}
.twitter {
    color: #888888;
    text-transform: none;
    background-image: url(/images/twitter_logo.png);
    background-size: contain;
    background-repeat: no-repeat;
    padding-left: 1.9rem;
}
.twitter:hover {
    color: #888888;
    opacity: 0.8;
}
.right {
    min-height: 60rem;
    overflow: hidden;
}
.apache-feather {
    position: absolute;
    bottom: 2rem;
    right: 2rem;
}
.apache-feather:hover {
    -webkit-animation-name: spin;
    -webkit-animation-duration: 200ms;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    -moz-animation-name: spin;
    -moz-animation-duration: 200ms;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: linear;
    -ms-animation-name: spin;
    -ms-animation-duration: 200ms;
    -ms-animation-iteration-count: infinite;
    -ms-animation-timing-function: linear;
    animation-name: spin;
    animation-duration: 200ms;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}
@-ms-keyframes spin {
    from {
        -ms-transform: rotate(0deg);
    }
    to {
        -ms-transform: rotate(360deg);
    }
}
@-moz-keyframes spin {
    from {
        -moz-transform: rotate(0deg);
    }
    to {
        -moz-transform: rotate(360deg);
    }
}
@-webkit-keyframes spin {
    from {
        -webkit-transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
    }
}
@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
/* pages */

.index {
    text-align: center;
    padding-right: 25%;
}
.desc {
    margin-bottom: 6rem;
    overflow: hidden;
}
.desc-item {
    float: left;
    margin-left: 4.2rem;
    overflow: hidden;
}
.desc-item:first-of-type {
    margin-left: 0;
}
.desc-item h2 {
    color: #000000;
    margin-top: 20px;
}
.desc-item p {
    color: #000000;
    margin: 0;
    width: 20rem;
}
.desc-item__cta {
    margin-top: .5rem;
    display: block;
}
.desc-item p:before {
    content: "";
    border-top: 2px solid #000000;
    display: block;
    -webkit-transition: width .5s;
    transition: width .5s;
    width: 5rem;
    margin: .2rem 0 1rem;
}
.desc-item:hover p:before {
    border-color: #0C637B;
    width: 22rem;
}
.desc-item:hover h2,
.desc-item:hover p {
    color: #0C637B;
}
.news {
    text-transform: uppercase;
    color: #000;
    display: inline-block;
    border: solid 3px #000;
    padding: 20px;
    margin-left: 20px;
    vertical-align: top;
}
.news h2 {
    font-size: 18px;
    margin: 0 0 10px;
}

.news article {
    display: flex;
    flex-direction: column;
    margin-bottom: 10px;
}
.news h3 {
    font-size: 13px;
    margin: 0;
}
.news h3 a {
    color: #1471E2;
    text-decoration: none;
}
.news time {
    font-size: 10px;
}
.callout {
    background-color: #F0F0F0;
    padding: 1.5rem 2rem 3rem;
    width: 33rem;
    margin: 2rem auto 0;
    position: relative;
    text-align: center;
}
.callout--basic {
    width: auto;
}
.page-dark .callout {
    background-color: #363D3F;
    border: 1px solid #888;
    border-radius: .4rem;
}
.callout::before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8rem 0 0 5rem;
    border-color: transparent transparent transparent #F0F0F0;
    top: -6rem;
    right: 10rem;
    position: absolute;
    -ms-transform: rotate(-10deg);
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg);
}
.callout--basic::before {
    display: none;
}
.callout__action {
    display: inline-block;
    width: 10rem;
}
.documentation__banner {
    background-color: rgba(0, 0, 0, 0.8);
    color: #ffffff;
    display: block;
    padding: 1.5rem 2rem;
    margin-bottom: 3rem;
    border-bottom: 2px solid transparent;
}
.documentation__banner:hover {
    background-color: #888888;
    color: #ffffff;
    cursor: pointer;
}
.page-dark .documentation__banner:hover {
    background-color: #222;
    border-bottom: 2px solid white;
}
.documentation--current .documentation__banner {
    display: none;
}
.content.documentation--current {
    position: relative;
    display: flex;
}
.content.documentation--current .right {
    max-width: 65rem;
    margin: 0 0 0 auto;
}
.content.documentation--current.expanded .right {
    max-width: 85rem;
    margin: 0 0 0 auto;
    overflow: visible;
}
.grid {
    margin: 2rem 0;
    max-width: 100%;
}
.grid__item {
    width: 23rem;
    margin: .65rem;
    border-radius: .4rem;
    overflow: hidden;
    border: 1px solid #888888;
}
.grid__item__link {
    display: block;
    height: 8rem;
    margin-bottom: -.1rem;
    text-align: center;
    padding-top: 1rem;
    text-decoration: none;
    border-bottom: 1px solid #888888;
}
.grid__item__link:hover {
    opacity: .8;
}
.grid__item__logo {
    margin: auto;
    width: 16rem;
    height: 6rem;
    display: block;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
}
.grid__item__description {
    margin: 0 2rem 2rem;
    padding-top: 2rem;
}
.pagination {
    margin-top: 5rem;
    margin-bottom: 8rem;
    display: flex;
    justify-content: space-between;
}
.pagination__btn {
    border: .1rem solid #0B6D88;
    border-radius: .2rem;
    padding: .3rem;
    width: 8rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pagination__btn__next::after {
    content: '\00BB';
    margin-left: .6rem;
    height: 1rem;
    line-height: .9rem;
}
.pagination__btn__prev::before {
    content: '\00AB';
    margin-right: .6rem;
    height: 1rem;
    line-height: .9rem;
}
.pagination__btn:hover {
    opacity: .7;
}
.pagination__btn--disabled {
    display: none;
}
.page-dark .pagination__btn {
    border-color: white;
    color: white;
    text-decoration: none;
}
.page-dark .pagination__btn:hover {
    text-decoration: underline;
    border-color: white;
    color: white;
    background: rgba(0, 0, 0, 0.2);
}
/* Doc landing page */

.hero {
    margin: 6rem 0 5rem;
    display: flex;
    justify-content: space-around;
}
.hero__diagram {
    max-width: 50rem;
}
.hero__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    flex-basis: 25rem;
    flex-shrink: 0;
    padding-bottom: 4rem;
}
.hero__cta .btn {
    height: 5.8rem;
    width: 25rem;
    font-size: 2rem;
    font-weight: 700;
    margin-top: 1rem;
}
.cards {
    display: flex;
    height: 16rem;
    max-width: 92rem;
    margin-top: 6rem;
    margin-bottom: 8rem;
}
.card {
    flex: 1;
    margin-right: 2rem;
    border: .2rem solid #000000;
    border-radius: .4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.card:hover {
    border-color: #888888;
    background: #888888 url('/images/icons/slash--white.png') no-repeat .5rem .5rem;
    background-size: 2.5rem 2.4rem;
}
.cards .card:last-of-type {
    margin-right: 0;
}
.card__icon,
.card__label {
    display: flex;
}
.card__icon {
    width: 8.1rem
}
.card__icon--hover {
    display: none;
}
.card__label {
    margin-top: 1rem;
    color: #000000;
    text-transform: uppercase;
}
.card:hover .card__label {
    color: #FFFFFF;
}
.card:hover .card__icon {
    display: none;
}
.card:hover .card__icon--hover {
    display: flex;
}
.code-example {
    box-sizing: border-box;
}
.code-example .btn-group {
    display: inline-block;
    margin-bottom: 2rem;
}
.code-example__snippet {
    display: none;
}
.code-example .selected {
    display: block;
}
.feature-list {
    list-style: none;
    padding: 0;
    display: block;
    overflow: hidden;
}
.feature-list li {
    float: left;
    width: 50%;
    line-height: 3.2rem;
    margin-bottom: 1rem;
}
.feature-list li::before {
    content: '';
    display: block;
    height: 2.8rem;
    width: 2.8rem;
    border: .2rem solid;
    border-radius: 2rem;
    float: left;
    margin-right: .8rem;
    background-image: url('/images/icons/check.png');
    background-size: contain;
}

.download-version a{
    visibility: hidden;
    padding-left:10px;
  }
  .svg-inline--fa.fa-w-16 {
    width: 0.8em;
 }

#streams-use-case {
    visibility: hidden;
    opacity:0.7;

}

/* Responsive styles */

@media only screen and (max-width: 1240px) {
    .main {
        width: auto;
        max-width: 100%;
        margin: 0 2rem;
    }
    .page-home .main {
        margin: 0;
    }
    .footer {
        min-height: 6.4rem;
    }
    .footer__legal__one {
        display: block;
    }
    .desc-item h2 {
        margin-top: 4rem;
    }
    .news {
        margin-left: 0;
        margin-top: 4rem;
    }
}
@media only screen and (min-width: 1126px) {
    .video__series__grid {
        flex-direction: row;
    }
}
@media only screen and (max-width: 1125px) {
    .news {
        margin-top: 0;
    }
    .video__block {
        padding-left: 0px!important;
        padding-top: 15px;
    }
    .video__series__grid {
        flex-direction: column;
        margin: 0 auto 40px;
    }
    ul.video-list {
        padding-left: 21px!important;
    }
    .desc {
        margin-left: 0;
        margin-bottom: 3rem;
    }
    .desc-item,
    .desc-item:first-of-type {
        float: none;
        width: auto;
        margin-left: 0;
        display: block;
        margin-bottom: 4rem;
    }
    .desc-item p {
        width: auto;
    }
    .desc-item h2 {
        margin-top: 0;
    }
    .desc-item:first-of-type h2 {
        margin-top: 4rem;
    }
    .index {
        padding-right: 0;
        text-align: left;
    }
    .callout {
        margin: 2rem 1.5rem;
    }
    .hero {
        justify-content: flex-start;
    }
    .hero__diagram {
        max-width: 42rem;
        margin-right: 4rem;
    }
    .feature-list li {
        width: 100%;
    }
}
@media only screen and (max-width: 1035px) {
    .apache-feather {
        bottom: 2.8rem;
    }
}
@media only screen and (max-width: 950px) {
    .hero {
        flex-direction: column;
    }
    .hero__diagram {
        margin: 0;
        max-width: 100%;
    }
    .hero__cta {
        flex-direction: row;
        justify-content: center;
        flex-basis: inherit;
        margin-top: 4rem;
    }
    .hero__cta .btn:first-of-type {
        margin-right: 1rem;
    }
    .card {
        margin-right: 1rem;
    }
}
@media only screen and (max-width: 800px) {
    .kafka-diagram {
        width: 80%;
        min-width: 28rem;
        height: auto;
    }
    .callout {
        width: 60%;
        min-width: 21rem;
    }
    .callout::before {
        right: 25%;
    }
    .footer {
        min-height: 7.6rem;
    }
    .footer__legal__two {
        display: block;
    }
    .hero__cta .btn {
        font-size: 1.5rem;
        font-weight: 400;
        height: auto;
    }
    .cards {
        flex-direction: column;
        margin-top: 4rem;
        height: auto;
        margin-bottom: 4rem;
    }
    .card {
        margin-right: 0;
        margin-bottom: 1rem;
        min-height: 10rem;
        flex-direction: row;
        justify-content: flex-start;
    }
    .card__icon {
        width: 7rem;
        margin: 0 2rem 0 2rem;
    }
    .card__label {
        margin: 0;
    }
}
@media only screen and (max-width: 650px) {
    html,
    body {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .main {
        padding: 0 1rem;
        margin: 0;
    }
    .page-home .main {
        padding: 0;
    }
    .kafka-diagram {
        display: block;
        margin: 0 auto;
    }
    .callout {
        margin: 2rem auto;
    }
    .right {
        padding-bottom: 10rem;
    }
    .navindicator {
        min-width: 32rem;
        position: absolute;
        top: -0.8rem;
        left: 0;
        width: 100%;
        text-align: center;
        z-index: 2;
    }
    .navindicator__item {
        height: .2rem;
        width: calc(79% / 12);
        /* Note: width of mobile nav indicator should be divided by number of top level pages */

        background-color: #888888;
        display: inline-block;
        margin: 0 .5%;
    }
    .navindicator__item.selected {
        background-color: #FFFFFF;
    }
    nav {
        display: block;
        position: fixed;
        background-color: #000000;
        bottom: 0;
        left: 0;
        z-index: 1;
        width: 100%;
    }
    .nav-scroller {
        white-space: nowrap;
        overflow-y: hidden;
        overflow-x: scroll;
        -webkit-overflow-scrolling: touch;
        box-shadow: 0 0 1rem rgba(0, 0, 0, 0.3);
    }
    .nav__inner {
        width: 2000px;
    }
    .nav__item,
    .nav__item:first-of-type {
        color: #888888;
        float: left;
        padding: 2.6rem 1.1rem 1.8rem;
        border: none;
    }
    .nav__item.selected,
    .nav__item:hover {
        color: #FFFFFF;
    }
    .nav__item::after,
    .nav__item.selected::after,
    nav.hovering .nav__item:hover::after,
    nav .btn,
    .social-links,
    .footer {
        display: none;
    }
    .nav__item__with__subs .nav__item:first-of-type,
    .nav__item .nav__item {
        padding: 0;
    }
    .nav__sub__item {
        margin-left: 2rem;
        line-height: 2.2rem;
    }
    .right {
        margin: 0;
        min-height: auto;
    }
}
@media only screen and (max-width: 460px) {
    body {
        font-size: 1.2rem;
    }
    h1 {
        font-size: 3.6rem;
    }
    h2,
    h3,
    h4 {
        font-size: 1.6rem;
    }
    .logo {
        width: 21.667rem;
        height: auto;
    }
    .desc-item,
    .desc-item:first-of-type {
        margin-bottom: 2rem;
    }
    .grid__item {
        width: 96% !important;
        position: relative !important;
        float: left !important;
        top: auto !important;
        left: auto !important;
        margin-bottom: 2rem;
    }
    .btn-group a {
        min-width: 0;
        padding: 0 1rem;
    }
    .hero {
        margin-bottom: 0;
    }
    .feature-list li {
        line-height: 2.2rem;
    }
    .feature-list li:before {
        height: 2rem;
        width: 2rem;
    }
}
@media only screen and (max-width: 390px) {
    .hero__cta {
        flex-direction: column;
    }
    .hero__cta .btn {
        width: 100%;
    }
    .hero__cta .btn:first-of-type {
        margin-right: 0;
    }
}
.customer__cards {
    display: flex;
    height: 30rem;
    max-width: 92rem;
}
.customer_cards_2 {
    margin-top: 4.2rem;
    display: flex;
    height: 40rem;
    max-width: 92rem;
}
.customer__card {
    flex: 1;
    margin-right: 2rem;
    border-radius: .4rem;
    display: flex;
    flex-direction: column;
    align-items: left;
    text-align: justify;
}
.customer-right {
    margin-right: 0rem;
}
.customer__card__icon {
    align-items: center;
    border: 1px solid #888;
    border-radius: 4px;
    display: flex;
    height: 80px;
    justify-content: center;
    width: 268px;
}
.green_card {
    background-color: #00b900;
}
.customer__card__label {
    color: #000000;
    margin-top: 2.4rem;
    display: flex;
}
/* Streams page - adding video & cusomter logos*/

.sticky-top .active-menu-item {
    width: 108px;
    height: 2px;
    border-bottom: solid 4px #000000;
    color: #000!important;
    padding-bottom: 0;
}
.page-dark .sticky-top .active-menu-item {
    color: #fff!important; /* have to override the previous -- assuming it was there for a reason */
    border-bottom-color: #fff;
}
.sticky-top a {
    color: #8c8888;
    margin-top: 16px;
    height: 28px;
    font-family: Roboto;
    font-size: 15px;
    line-height: 1.87;
    text-align: left;
    margin-right: 30px;
    text-transform: uppercase;
}
.sticky-top {
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}
.sticky-top > div {
    height: auto !important;
}
.video__series__grid {
    width: 92%;
    display: -webkit-flex;
    /* Safari */

    display: flex;
    margin-bottom: 60px;
    /*flex-direction: row;*/
}
.video-list li {
    display: list-item;
    font-family: Roboto;
    font-size: 15px;
    line-height: 2.67;
    text-align: left;
    color: #d8d8d8;
    text-transform: capitalize;
}
.video-list .active {
    color: #000;
}
.video-list .active:before {
    background-color: #000;
    border: solid 2px #000;
}
ul.video-list {
    list-style-type: none;
    /* Setup the counter. */

    counter-reset: num;
    padding-left: 0px;
}
.video-list {
    margin-bottom: 1rem;
}
.video-list li:before {
    /* Advance the number. */

    counter-increment: num;
    /* Use the counter number as content. */

    content: counter(num);
    color: #fff;
    background-color: #d8d8d8;
    width: 50px;
    border-radius: 50%;
    padding: 5px 10px;
    margin-right: .8rem;
}
.grid__item__customer__description {
    margin: 0 2rem 2.2rem;
    padding-top: 0rem;
}
.stream__text {
    margin-top: 5.2rem;
    margin-bottom: 3.2rem;
}
.video__block h3 {
    font-size: 15px;
    line-height: 1.87;
    font-family: Roboto;
}
.video__block {
    padding-left: 42px;
}
.streams_intro {
    margin-top: 42px;
    margin-bottom: 15px;
}
.streams__description {
    font-family: Roboto;
    font-size: 15px;
    line-height: 1.87;
    text-align: justify;
    color: #000000;
    margin-bottom: 54px;
    max-width: 91rem;
}
.page-dark .streams__description {
    color: white;
}
.separator {
    width: 920px;
    margin-right: 153px;
}
.customers__grid * {
    box-sizing: border-box;
}
.customer__grid {
    margin: 0;
    padding-bottom: 20px;
}
.customer__item {
    border-radius: 10px;
    overflow: hidden;
    padding: 0px;
    width: 100%;
}
.streams_logo_grid {
    border: solid 1px #888888;
}
.streams__ny__grid,
.streams__line__grid,
.streams__rabobank__grid,
.streams__zalando__grid {
    height: auto;
}
.grid__logo__link {
    display: block;
    height: 8rem;
    margin-bottom: 2rem;
    text-align: center;
    padding-top: 2rem;
}
.navbar-fixed {
    position: fixed;
    background-color: #fff;
    color: #fff;
    margin-top: 0px;
    padding: 10px 0px 20px;
    /*width: 92rem;*/

    z-index: 50;
    top: 0px;
    overflow: auto;
    width: 95%;
}
@media only screen and (max-width: 650px) {
    .navbar-fixed {
        position: fixed!important;
        background-color: #fff;
        color: #fff;
        margin-top: 0px;
        padding: 10px 0px 20px;
        /*width: 92rem;*/

        z-index: 50;
        top: 0px;
        left: 0;
        z-index: 1;
        width: 100%;
    }

}
.yt_series {
    display: none;
    width: 420px;
    height: 315px;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}
.video__series_grid .active {
    display: block;
}
.first__app__btn {
    background-color: #0B6D88;
    color: #FFFFFF;
    border-radius: .2rem;
    -moz-border-radius: .2rem;
    -webkit-border-radius: .2rem;
    text-align: center;
    text-transform: capitalize;
    padding: .9rem 2rem;
    box-sizing: border-box;
}
.first__app__btn:hover {
    background-color: #888888;
    border-color: #888888;
    color: #FFFFFF;
}
/* Doc landing page */

.use-item-section {
    margin: 2.2rem 0 3.8rem;
    display: flex;
    justify-content: flex-start;
}
.use__list__sec {
    max-width: 50rem;
}
.first__app__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-basis: 25rem;
    flex-shrink: 0;
    padding-bottom: 4rem;
}
.first__app__cta .first__app__btn {
    height: 5.8rem;
    width: 25rem;
    font-size: 2rem;
    font-weight: 700;
    margin-top: 1rem;
}
.use-feature-list {
    list-style: none;
    padding: 0;
    display: block;
    overflow: hidden;
    padding-left: 1.5rem;
}
.use-feature-list li {
    float: left;
    line-height: 3rem;
    margin-bottom: 1rem;
}
.use-feature-list li::before {
    content: '';
    display: block;
    height: 2.8rem;
    width: 2.8rem;
    border: .2rem solid;
    border-radius: 2rem;
    float: left;
    margin-right: .8rem;
    background-image: url('/images/icons/check.png');
    background-size: contain;
}
.video-number {
    background-color: #d8d8d8;
    color: #fff;
    width: 50px;
    border-radius: 50%;
    padding: 5px 10px;
    margin-right: .8rem;
}
.video__text {
    font-family: Roboto;
    font-size: 15px;
    line-height: 2.67;
    text-align: left;
    color: #d8d8d8;
    text-transform: capitalize;
}
.video__list .active .video-number {
    background-color: #000;
    color: #fff;
}
.page-dark .video__list .active .video-number {
    background-color: white;
    color: black;
}
.video__list .active .video__text {
    color: #000;
}
.page-dark .video__list .active .video__text {
    color: #fff;
    text-decoration: underline;
    text-decoration-color: black;
}
.video__item {
    margin: 0px;
}
.yt__video__block {
    -webkit-flex: 1;
    /* Safari 6.1+ */

    -ms-flex: 1;
    /* IE 10 */

    flex: 1;
}
.yt__video__inner__block {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 0px;
    height: 0;
    overflow: hidden;
}
.extra__space{
    padding-bottom:2.8rem;
}
/* TODO: this may be repeatable -- let's pay attention to any new designs */
.page-get-started .page-header {
    margin-top: 10rem;
    padding-top: 22rem;
}
.page-get-started .page-header-nav {
    margin-bottom: 10rem;
}
.page-header {
    margin-top: 5rem;
    padding: 5rem 0;
    width: 76.6rem;
    margin: 0 auto;
}
.page-header-title,
.content-title {
    font-family: Roboto;
    font-weight: 900;
    font-size: 3.8rem;
    line-height: 4.5rem;
    letter-spacing: 0.06rem;
    text-transform: uppercase;
}
.page-header-title {
    text-align: center;
}
.content-title {
    margin-bottom: 2rem;
}
.page-header-text {
    font-family: Roboto;
    font-style: italic;
    font-size: 2.1rem;
    line-height: 3rem;
    text-align: center;
}
.page-header-nav {
    list-style-type: none;
    display: flex;
    flex-direction: row;
    justify-content: center;
    margin: 5rem 0 7rem;
    padding: 0;
}
.page-header-nav-item {
    display: inline-block;
    margin: 0 1rem;
}
.page-header-nav-item-anchor {
    display: flex;
    width: 20rem;
    height: 5.2rem;
    justify-content: center;
    align-items: center;
    border: 0.2rem solid;
    font-family: Roboto;
    font-weight: bold;
    font-size: 1.4rem;
    line-height: 2rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
}
.page-header-nav-item-anchor,
.page-header-nav-item-anchor:link {
    color: var(--green);
}
.page-header-nav-item-anchor.current,
.page-header-nav-item-anchor.current:link {
    background: var(--green);
    color: #fff;
}
.page-header-video {
    width: 76.6rem;
    text-align: center;
}
.page-header-video-embed {
    width: 48rem;
}
.page-get-started .content-subtitle {
    font-style: italic;
    font-size: 2.1rem;
}
.page-get-started .content-section-title {
    font-weight: normal;
    text-transform: none;
    font-size: 1.8rem;
    margin: 5rem 0 3.2rem;
}
.page-get-started .content-section-title::before {
    content: " ";
    width: 30px;
    height: 4px;
    background: var(--green);
    display: block;
    margin-bottom: 1.1rem;
}
.page-get-started .content-feature-list {
    margin: 0;
    list-style-type: none;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0;
}
.page-get-started .content-feature-item {
    margin: 0;
    width: 31.7%;
    min-height: 19.5rem;
    margin: 0;
    padding: 3rem 3.5rem;
    border: 0.2rem solid #A9CBD4;
    display: flex;
    align-content: flex-start;
    flex-direction: column;
}
.page-get-started .content-feature-learn-more {
    display: block;
    margin-top: auto;
    font-family: Roboto;
    font-weight: bold;
    font-size: 1.2rem;
    line-height: 1.7rem;
    text-decoration-line: underline;
    text-transform: uppercase;
    color: var(--green);
}
.page-get-started a.content-feature-learn-more:link {
    color: var(--green);
}
.page-get-started .content-feature-title {
    margin: 0 0 2.1rem;
    font-family: Roboto;
    font-weight: 900;
    font-size: 1.8rem;
    line-height: 2.1rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.page-get-started .content-feature-text {
    font-family: "Roboto Condensed";
    font-size: 1.6rem;
    line-height: 2.2rem;
    margin-top: 0;
}
.page-get-started .content-feature-diagram {
    width: 100%;
    text-align: center;
    padding: 3rem 0;
}
.page-get-started .content-feature-diagram-image {
    width: 100%;
    max-width: 64.5rem;
}

/* Utilities */

.visually-hidden { 
    position: absolute !important;
    height: 1px; 
    width: 1px;
    overflow: hidden;
    clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap; /* added line */
}

/* Responsive styles */

@media only screen and (max-width: 1125px) {
    .use-item-section {
        justify-content: flex-start;
    }
    .use__list__sec {
        max-width: 42rem;
        margin-right: 4rem;
    }
    .use-feature-list li {
        width: 100%;
    }
    .extra__space{
       padding-bottom:0rem;
    }
    .page-home .waves {
        min-height: 24rem;
        height: auto;
        background-size: 100vw auto;
    }
}
@media only screen and (max-width: 1000px) and (min-width: 461px) {
    .page-home .content-bottom .content-section-list {
        justify-content: space-around;
    }
    .page-home .content-bottom .content-section-item {
        width: 40vw;
        padding: 3vw;
    }
    .page-home .content-bottom .content-section-title {
        margin-left: auto;
        margin-right: auto;
        width: 90vw;
        padding-left: 3vw;
    }
}
@media only screen and (max-width: 1000px) {
    .page-streams .main {
        margin: 0;
    }
    .content {
        margin: 0 auto;
        max-width: 95vw;
        padding-top: 12rem;
    }
    .documentation--current .sticky-top {
        white-space: normal;
        overflow: auto;
    }
    .documentation--current .sticky-top .active-menu-item {
        border-bottom: none;
        font-weight: bold;
    }
    .documentation--current .sticky-top > div {
        height: auto !important; /* override inline styles */
    }
}
@media only screen and (max-width: 950px) {
    .use-item-section {
        flex-direction: column-reverse;
        margin: 0rem;
    }
    .use__list__sec {
        margin: 0;
        text-align: center;
        max-width: 100%;
    }
    .use-feature-list li::before {
        content: none;
    }
    .first__app__cta {
        flex-direction: row;
        justify-content: center;
        flex-basis: inherit;
        margin-top: 4rem;
    }
    .first__app__cta .first__app_btn:first-of-type {
        margin-right: 1rem;
    }
    .content {
        max-width: 90vw;
    }
    .page-home .content-top {
        padding: 0 2rem;
        margin-top: 10rem;
    }
    .page-home .waves {
        min-height: 24rem;
        background-size: 950px auto;
    }
    .header {
        box-sizing: border-box;
        position: fixed;
        top: 0;
        left: 0;
        height: 8rem;
        padding: 1.5rem;
        z-index: 99;
        text-align: center;
        display: block;
        background-color: var(--white);
    }
    .header.scrolled {
        box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.38);
    }
    .page-dark .header {
        background-color: #373E40;
    }
    .page-dark .top-nav-toggle + .top-nav-container {
        background-color: #373E40;
    }
    .page-home .content-home {
        margin-top: 16rem;
    }
    .logo {
        width: auto;
        height: 5rem;
    }
    .top-nav-toggle {
        display: inline-block;
        position: absolute;
        left: 1rem;
        margin: 0.5rem;
    }
    .top-nav-toggle + .top-nav-container {
        pointer-events: none;
        position: absolute;
        display: block;
        text-align: left;
        opacity: 0;
        left: 0;
        right: 0;
        bottom: 0;
        top: 8rem;
        width: 100vw;
        height: calc(100vh - 8rem);
        z-index: 99;
        background: rgba(255, 255, 255, 0.95);
        transition: all 0.35s;
        overflow-x: hidden;
        overflow: scroll;
    }
    .top-nav-toggle + .top-nav-container .top-nav {
        margin-top: 0;
        transition: all 0.35s;
        background: transparent;
        top: 10rem;
        display: block;
        overflow-y: auto;
    }
    .top-nav-toggle.active + .top-nav-container {
        pointer-events: all;
        opacity: 1;
    }
    .top-nav {
        padding: 0.8rem 2.2rem;
        margin-top: 0;
    }
    .top-nav-item {
        margin-bottom: 1rem;
        display: block;
    }
    .top-nav-list,
    .top-nav-menu {
        width: 100%;
        position: static;
        display: block;
        box-shadow: none;
        background: none;
        transform: none;
        left: 0;
        text-align: left;
    }
    .top-nav-menu {
        margin-left: 2rem;
    }
    .top-nav-item-anchor,
    .top-nav-anchor {
        width: auto;
        text-align: left;
        padding: 0.8rem 0;
        font-size: 1.4rem;
        font-weight: 400;
        padding-left: 1rem;
    }
    .top-nav-download {
        width: 78vw;
        max-width: 30rem;
        text-align: center;
        margin: 3rem auto 0;
        display: block;
        position: static;
    }
    .docs-nav {
        height: auto;
        width: auto;
    }
    .documentation--current .docs-nav {
        width: auto;
        position: static;
        margin-top: 0;
        padding-top: 0;
        text-transform: uppercase;
        margin-bottom: 5rem;
        overflow: hidden;
        overflow-y: auto;
    }
    .documentation--current .toc-handle-container {
        display: none;
    }
    .anchor-link,
    .headerlink {
        top: -10rem;
    }
    .quickstart-step {
        border: 0.2rem solid var(--green);
        padding: 1rem 2rem 2.5rem;
        margin-bottom: 3rem;
    }
    .page-header-nav {
        margin: 3rem auto;
        display: block;
    }
    .page-header-nav-item {
        width: 95vw;
        margin: 0;
    }
    .page-header-nav-item-anchor {
        width: 95vw;
        padding: 1rem auto;
        margin: 0;
    }
    .page-header {
        margin-top: 3rem;
        padding-top: 3rem;
        width: 95vw;
        margin: 0 auto;
    }
    .page-header-title,
    .content-title {
        font-size: 3rem;
        line-height: 3.8rem;
    }
    .page-header-text {
        font-size: 1.6rem;
        line-height: 2.4rem;
    }
    .page-header-video {
        width: 95vw;
        height: auto;
    }
    .page-header-video-embed {
        width: 95vw;
        height: 24vh;
    }
    .content.documentation--current {
        display: block;
    }
    .content.documentation--current .right {
        width: 95vw;
        margin: 0 auto;
        max-width: none;
    }
    .page-home .content {
        margin-top: 16rem;
    }
    .logo-link,
    .page-dark .logo-link {
        width: 170px;
        height: 50px;
        background-size: 168px auto;
        background-repeat: no-repeat;
    }
    .content {
        margin: 0 auto;
        max-width: 95vw;
        padding-top: 12rem;
    }
    .content-separator {
        max-width: 95vw;
        background-color: #969191;
        border: none;
        height: 1px;
    }
    #docs-top-link {
        bottom: 1rem;
    }
    .podcast-list {
        display: block;
    }
    .podcast-item {
        display: flex;
        flex-direction: row;
        max-width: none;
        margin-bottom: 2rem;
    }
    .podcast-figure {
        display: inline-block;
        width: 10rem;
        height: 10rem;
        margin-right: 1rem;
    }
    .podcast-figure-image {
        display: inline-block;
        width: 10rem;
        height: 10rem;
        max-width: none;
    }
    .podcast-title {
        margin-bottom: .5rem;
    }
    .content-top-industry-full-list:hover .content-top-industry-full-list-tooltip,
    .content-top-industry-full-list:active .content-top-industry-full-list-tooltip,
    .content-top-industry-full-list-tooltip {
        width: 90vw;
        max-width: 450px;
        white-space: normal;
    }
}
@media only screen and (max-width: 800px) {
    .first__app__cta .first__app_btn {
        font-size: 1.5rem;
        font-weight: 400;
        height: auto;
    }
    .page-home .content-bottom {
        padding-top: 1rem;
    }
    .page-home .content-bottom .content-section-item {
        width: 47vw;
        padding: 3vw;
    }
    .page-home .content-bottom .content-section-title {
        margin-left: auto;
        margin-right: auto;
        width: 97vw;
        padding-left: 3vw;
    }
}
@media only screen and (max-width: 460px) {
    .use-item-section {
        margin-bottom: 0;
    }
    .use-feature-list li {
        line-height: 2.2rem;
    }
    .use-feature-list li:before {
        height: 2rem;
        width: 2rem;
    }
    .page-home .content-top-industry-list {
        flex-wrap: wrap;
        justify-content: space-around;
    }
    .page-home .content-top-industry-item {
        margin: 2rem 4rem;
    }
    .page-home .content-top-industry {
        max-width: 26rem;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 2rem;
    }
    .page-home .content-bottom .content-section-list {
        justify-content: space-around;
    }
    .page-home .content-bottom .content-section-item {
        margin-left: 2vw;
        margin-right: 2vw;
        margin-bottom: 3rem;
        width: 80vw;
        height: auto;
    }
    .page-home .content-bottom .content-section-title {
        margin-left: auto;
        margin-right: auto;
        width: 80vw;
    }
}
@media only screen and (max-width: 390px) {
    .first__app__cta {
        flex-direction: column;
    }
    .first__app__cta .first__app_btn {
        width: 100%;
    }
    .first__app__cta .first__app_btn:first-of-type {
        margin-right: 0;
    }
}
@media only screen and (max-width: 1125px) {
    .video__text {
        display: none;
    }
    .video__list {
        margin: 0 auto;
        width: 200px;
        padding-top: 20px;
        text-align: center;
    }
    .video__item {
        display: inline-block;
    }
    iframe {
        width: 100%;
    }
    .sticky-top{
        overflow-x:scroll;
    }
    .video__block h3 {
        display: none;
    }
    .video-list {
        display: none;
    }
}
@media only screen and (min-width: 1126px) {
    .customers__grid {
        -webkit-column-count: 2;
        -moz-column-count: 2;
        column-count: 2;
    }
    .customer__item {
        break-inside: avoid;
    }
    .sticky-top{
        overflow-x:hidden;
    }
}

pre[class*="language-"].line-numbers {
	position: relative;
	padding-left: 3.8em;
	counter-reset: linenumber;
}

pre[class*="language-"].line-numbers > code {
	position: relative;
	white-space: inherit;
}

.line-numbers .line-numbers-rows {
	position: absolute;
	pointer-events: none;
	top: 0;
	font-size: 100%;
	left: -3.8em;
	width: 3em; /* works for line-numbers below 1000 lines */
	letter-spacing: -1px;
	border-right: 1px solid #999;

	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

}

.line-numbers-rows > span {
    display: block;
    counter-increment: linenumber;
}

.line-numbers-rows > span:before {
    content: counter(linenumber);
    color: #999;
    display: block;
    padding-right: 0.8em;
    text-align: right;
}