/**
 * Licensed 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
 *
 *     https://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.
 */

.asf
	text-align: center
	font-family: "Hind Siliguri"
	font-size: 12px

.page 
	width: 100%
	background-image: url('https://royale.apache.org/wp-content/uploads/2017/10/page-bg-1-1920x300.png')
	background-repeat: no-repeat
	margin-top: 0px
	background-position: center top
	
.social 
	margin-top: 0px
	height: 40px

.social_li 
	display: inline
	margin-right: 20px
	line-height: 70px
	color: #fff

.docs_header 
	height: 70px

.topbar
	display: inline-flex
	margin-top: 5px
	width: 100%

.topbar-left
	display: inline-flex
	justify-content: flex-start

	div
		margin-top: 15px
		margin-bottom: 5px
		width: 180px
		height: 40px

@media (max-width: 599px)
	.topbar-left
		div
			width: 140px
			

	
.topbar-center
	display: inline-flex
	flex: 1 1 auto
	justify-content: center
	padding: 0px 20px

.topbar-right
	display: inline-flex
	// flex: 1 1 auto
	justify-content: flex-end

.dropdown-wrapper
	display: flex

.topMenu-dropbtn
	display: none
	height: 38px
	background: transparent
	border: transparent
	color: rgba(255,255,255,0.7)
	font-size: 14px
	font-weight: 600
	line-height: 40px
	white-space: nowrap
	outline: 0
	
.topMenu 
	display: inline-block
	vertical-align: top
	margin-top: 15px
	margin-bottom: 0px
	height: 40px

@media screen and (max-width: 1160px)
	.topbar-center
		align-items: center

	.topMenu-dropbtn
		display: flex
		z-index: 100

	.topMenu 
		display: none
		flex-direction: column
		position: absolute
		z-index: 1

	.topMenu_li
		background-color: #f7f7f7
		padding: 6px 18px
		margin: 0px
		box-shadow: 0px 18px 16px 0px rgba(0,0,0,0.2)
		line-height: 1em
		
	.topMenu_li_a
		font-family: "Source Sans Pro"
		color: #4393c3 !important
		font-size: 16px
		line-height: 28px
		letter-spacing: 0px

	.topbar-center:hover .topMenu
		display: flex
		
.topMenu_li
	font-family: 'Signika'
	display: inline
	margin-right: 20px
	font-size: 14px
	font-weight: 600
	line-height: 40px
	letter-spacing: 1px

.topMenu_li_a 
	text-decoration: none
	color: rgba(255,255,255,0.7)

.topMenu_li_a:hover 
	color: #fff

.apache 
	color: #a002a0
	font-weight: 600
	line-height: 30px

.apacheroyale 
	color: rgb(250, 70, 30)
	font-weight: 600
	line-height: 30px

.social_t 
	color: #053061
	font-weight: 600
	line-height: 30px

.documentation 
	color: #053061
	font-weight: 600
	line-height: 30px

.development 
	color: rgb(243, 199, 103)
	font-weight: 600
	line-height: 30px

.community 
	color: rgb(42, 139, 42)
	font-weight: 600
	line-height: 30px

.footer 
	padding-left: 54px
	padding-right: 54px
	padding-top: 48px
	padding-bottom: 18px
	display: flex
	flex-wrap: wrap
	justify-content: space-between
	font-family: 'Signika'
	font-size: 14px
	background-color: rgb(233, 233, 233)

.footer p, .footer ul, .footer li 
	font-size: 14px

.footer-row
	display: flex
	flex: 1 1 100%
	flex-direction: row

.footer-column 
	flex-grow: 1

.footer-list 
	list-style: none
	padding-left: 0px
	margin-bottom: 20px

.footer-list_a
	text-decoration: none
	line-height: 26px
	color: rgb(67, 147, 195)

.footer-list i 
	margin-right: 5px
	width: 1em
	text-align: center

.aboutusdiv 
	min-width: 150px
	flex-basis: 33%
	flex-grow: 1

.aboutusdiv > p 
	font-size: 14px

.aboutus 
	color: #053061
	font-weight: 600
	line-height: 30px

.aboutus_p 
	padding-bottom: 38px

.aboutus_a 
	text-decoration: none
	color: rgb(67, 147, 195)

.aboutus-logo 
	float: left
	width: 100px
	padding-bottom: 14px
	padding-right: 14px

.aboutus-apache-logo 
	float: right
	width: 100px
	padding-bottom: 14px
	padding-right: 14px

.docs_header, .toc_and_doc
	padding-left: 20px
	padding-right: 20px
	margin-left: auto
	margin-right: auto

.toc_and_doc
	margin-top: 50px

@media (min-width: 1340px)
	.docs_header, .toc_and_doc
		max-width: 1260px

@media (min-width: 780px)
	.docs_header, .toc_and_doc
		width: 90%

.page-content
	font-family: "Hind Siliguri"
	display: flex
	min-height: calc(100vh - 60px)
	padding-bottom: 60px
	// display: inline-block
	// flex-grow: 1
	// max-width: 760px
	// min-width: 0
	// width: 760px

	h1 + p 
		color: #4393c3
		font-weight: 400
		font-size: 20px

		code
			color: #4393c3
			background-color: #ecf8ff
			box-shadow: none

	.bottom-links
		margin-top: 60px

		a
			background-color: rgba(104, 223, 255, 0)

@media (max-width: 599px)
	.page-content
		flex-direction: column
