#body-row {
    margin-left: 0;
    margin-right: 0;
}

#content-container img {
    max-width: 100%;
    padding: 1px 1px 1px 1px;
}

h1, h2 {
	padding-bottom: .3em;
    border-bottom: 1px solid #eaecef;
}

b, strong {
    font-weight: 600;
}

h1, h2, h3, h4, h5, h6 {
	margin-bottom: 1em;
    margin-top: 1em;
}

code {
	font-size: 14px !important;
}

:not(pre)>code[class*=language-], pre[class*=language-] {
	background: #eff0f1 !important;
}

.language-css .token.string, .style .token.string, .token.entity, .token.operator, .token.url {
    background: unset !important;
}

:target:before {
    content: "";
    display: block;
    margin-top: -115x;
    height: 115px;
    width: 1px;
}


.anchorjs-link {
  text-decoration: none;
}
*:hover > .anchorjs-link {
	text-decoration: none;
}

#sidebar-container {
    min-height: 100vh;
    padding: 0;
    width: 350px;
    padding-top: 115px;
    border-right: 2px solid #d8d8d8;
}

#sidebar-container .list-group a {
    color: #333;
}

#sidebar-container .list-group .cw-sidebar-submenu a {
    padding-left: 30px;
}

#sidebar-container .list-group .cw-sidebar-submenu .cw-sidebar-submenu-submenu a {
    padding-left: 40px;
}

#sidebar-container .list-group .cw-sidebar-submenu .cw-sidebar-submenu-submenu .cw-sidebar-submenu-submenu-submenu a {
    padding-left: 50px;
}

.submenu-icon {
	position: absolute;
    right: 20px;
}
.cw-sidebar-submenu {
    font-size: 0.95rem;
}

/* Separators */
.cw-sidebar-separator-title {
    
    height: 35px;
}

.cw-sidebar-separator {
    
    height: 25px;
}

.cw-current-page {
    background-color: #BEE5F6 !important;
    border-radius: 0 !important;
    /*border-bottom: 5px #0073ba !important;
    border-style: solid !important;
    border-right: 0px !important;
    border-left: 0px !important;
    border-top: 0px !important;*/
}
.cw-current-page:hover {
    color: #333 !important;
}

/* Closed submenu icon */
#sidebar-container .list-group .list-group-item[aria-expanded="false"] .submenu-icon::after {
    content: " \f105";
    font-family: FontAwesome;
    display: inline;
    text-align: right;
    font-size: 20px;
    font-weight: 300;
    padding-left: 10px;
}

/* Opened submenu icon */
#sidebar-container .list-group .list-group-item[aria-expanded="true"] .submenu-icon::after {
    content: " \f107";
    font-family: FontAwesome;
    display: inline;
    text-align: right;
    font-weight: 300;
    font-size: 20px;
    padding-left: 10px;
}

#content-container {
    width: calc(100% - 350px);
}

#content-container > div {
    padding-top: 131px;
}


.cw-text-gray {
    color: #222 !important;
}

.cw-margin-auto {
    margin: auto !important;
}

.cw-bg-sidebar-menu-item {
    background-color: #f8f9fa;
}

.list-group-item {
    border: none;
}
.list-group > .list-group-item {
    border-bottom: 1px solid #d8d8d8;
    border-top: 1px solid #d8d8d8;
    font-size: 18px;
    font-weight: 400;
}

.cw-extlink:after {
	content: " \f08E";
    font-family: FontAwesome;
    display: inline;
    font-weight: 300;
    font-size: 14px;
    padding-left: 10px;
}

.cw-docs-spacer {
	height: 115px;
}

.cs-gettingstarted-mobile-title {
		display: none;
	}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (max-width: 1320px) {
    #cs-gettingstarted-block {
    		width: 700px;
    }
    #cs-gettingstarted-block-2 {
    		width: 700px;
    }
    .cw-gettingstarted-card {
	    width: 200px;
	    height: 270px;
	    background-color: #3d7594;
	}
}

@media only screen and (max-width: 1160px) {
    #cs-gettingstarted-block {
    		width: 550px;
    }
    #cs-gettingstarted-block-2 {
    		width: 550px;
    }
    .cw-gettingstarted-card {
	    width: 150px;
	    height: 250px;
	    background-color: #3d7594;
	}
	.cw-gettingstarted-card-link {
		font-size: 14px;
	}
}

@media only screen and (max-width: 992px) {
	.cw-ggettingstarted-mobile-card-container {
		padding-bottom: 50px;
	}
	.cw-gettingstarted-mobile-title-container {
		height: 50px;
	}
	.cs-gettingstarted-mobile-title {
		display: block;
	}
	.cw-gettingstarted-card img {
		top: 20px;
		width: 62px;
    		left: -8px;
	}
	.cw-gettingstarted-card-link-container {
    		top: 90px;
	}
    #cs-gettingstarted-block {
    		display: none;
    }
    #cs-gettingstarted-block-2 {
    		width: 80%;
    }
    .cw-gettingstarted-card {
	    width: 100%;
	    height: 200px;
	    background-color: #3d7594;
	}
	.cw-gettingstarted-card-link {
		font-size: 20px;
	}
	.cw-getting-started-text {
	    position: absolute;
	    top: -15px;
	}
	
	#sidebar-container {
        padding-top: 101px;
    }
}


@media only screen and (max-width: 768px) {
	.cw-docs-spacer {
        height: 0px;
	}
    #content-container {
        width: 100vw;
    }

    #sidebar-container {
        width: 100vw;
        	min-height: 0;
    }
    
    
}

/* code formatter overrides for accessibility */
.token.punctuation {
    color: #4c0054 !important;
}

.token.attr-name, .token.builtin, .token.char, .token.inserted, .token.selector, .token.string {
    color: #517706 !important;
}

.token.atrule, .token.attr-value, .token.keyword {
    color: #196282 !important;
}

.token.cdata, .token.comment, .token.doctype, .token.prolog {
    color: #5a5f65 !important;
}
.language-css .token.string, .style .token.string, .token.entity, .token.operator, .token.url {
    color: #775936 !important;
}

.highlighter-rouge {
	color: #123456;
}

.imageborder {
    border: 1px solid #000;
}