/*  ==========================================================================
	flex
	========================================================================== */

.flex{
	margin: 7.14% 0;
}

.flex__heading{
	margin: 0 0 .33em;
}

@media only screen and (min-width:800px){
	.flex{ margin: 7.14% 0; }
}

/*  ==========================================================================
	flex--table
	========================================================================== */

.flex--table{
	text-align: left;
	font-size: 80%;
}

.flex--table td{ padding: .5em; }
.flex--table th{ padding: 0 .5em .2em; }
.flex--table tbody tr{ border-top: 1px solid #000; }


/*  ==========================================================================
	flex--faqs
	========================================================================== */


.faqs{
	border-top: 1px solid #ddd;
    position: relative;
}

.faq{
	display: block;
	position: relative;
    border-bottom: 1px solid #ddd;
}

.faq__question{
	margin: 0;
	border-top: none;
	padding: 1em 0 1em 3em;
	position: relative;
	cursor: pointer;
	color: #00adbb;
}

.faq__question:hover{ color: #6e6f71; }

.faq__question .fa{
	position: absolute;
	top: 1em;
	left: 1em;
	display: block;
	line-height: 1.2;
	-webkit-transition: -webkit-transform 150ms ease-out 0s;
	   -moz-transition: -moz-transform 150ms ease-out 0s;
	transition: transform 150ms ease-out 0s;
}

.faq__answer .inner{
	margin: 0;
	padding: 0em 0em 1em 3em;
}

.faq__answer{
    height: 0;
    overflow: hidden;
    opacity: 0;
    -webkit-transform: translate(0, -1em);
       -moz-transform: translate(0, -1em);
            transform: translate(0, -1em);
    -webkit-transition: height 0ms linear 260ms, opacity 250ms ease-out 0ms, -webkit-transform 150ms ease-out 0ms;
       -moz-transition: height 0ms linear 260ms, opacity 250ms ease-out 0ms,    -moz-transform 150ms ease-out 0ms;
            transition: height 0ms linear 260ms, opacity 250ms ease-out 0ms,         transform 150ms ease-out 0ms;
}

.faq--open .faq__answer{
    -webkit-transition: height 0ms linear 0ms, opacity 250ms ease-out 10ms, -webkit-transform 150ms ease-out 10ms;
       -moz-transition: height 0ms linear 0ms, opacity 250ms ease-out 10ms,    -moz-transform 150ms ease-out 10ms;
            transition: height 0ms linear 0ms, opacity 250ms ease-out 10ms,         transform 150ms ease-out 10ms;
    height: auto;
    opacity: 1;
    -webkit-transform: translate(0, 0em);
       -moz-transform: translate(0, 0em);
            transform: translate(0, 0em);
}

.faq--open .faq__question{ color: #6e6f71; }

.faq--open .faq__question .fa{
	-webkit-transform: rotate(-180deg);
	   -moz-transform: rotate(-180deg);
			transform: rotate(-180deg);
}

/*  ==========================================================================
	flex--image
	========================================================================== */

.fleximg{
}

.fleximg__img{
	width: 100%;
	display: block;
}


.fleximg__caption{
	margin-top: 1em;
	color: #888;
}

.fleximg__caption:after{
	content: ' ';
	display: block;
	width: 1.5em;
	border-bottom: solid 1px #ddd;
	margin: 1em 0 0;
}


/*  ==========================================================================
	flex--quote
	========================================================================== */

.flexquote{}

.flexquote__quote{
	margin: 0;
	padding: 0;
}

.flexquote__quote p{ margin: 0 0 0.5em; }

.flexquote__quotemark{
	line-height: 1;
	font-family: Georgia, Times New Roman, serif;
}

.flexquote__cite{
	text-align: right;
	font-style: normal;
	display: block;
}

@media only screen and (min-width:550px){
	.flexquote{ padding-left: 7.14%; padding-right: 7.14%; }
}

@media only screen and (min-width:800px){
	.flexquote{ padding-left: 7.14%; padding-right: 0; }
}

@media only screen and (min-width:1200px){
	.flexquote{ padding-left: 7.14%; padding-right: 7.14%; }
}


/*  ==========================================================================
	flex--video
	========================================================================== */

.flexvideo{
}

.flexvideo__videocode{
	padding: 56.6% 0 0;
	position: relative;
}

.flexvideo__videocode *{ display: none; }

.flexvideo__videocode iframe{
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
}

.flexvideo__caption{
	margin-top: 1em;
	color: #888;
}

.flexvideo__caption:after{
	content: ' ';
	display: block;
	width: 1.5em;
	border-bottom: solid 1px #ddd;
	margin: 1em 0 0;
}



/*  ==========================================================================
	flex--imagecta
	========================================================================== */

.flex--imagecta{
	background: #f1f0f1;
	padding: 1em;
}

.imagectatext{ margin-bottom: 1em; }

@media only screen and (min-width:550px){
	.imagectaimage{
		padding-left: 1em;
	}

	.imagectatext{ margin-bottom: 0em; }
}


/*  ==========================================================================
	flex--contact
	========================================================================== */
.flexcontact {
    margin-top:-120px;
    padding-top:120px;
}
.flexcontact .contactform {
    padding:20px;
    margin-top: 0;
}
.flexcontact--link {
    position: fixed;
    bottom: 10vh;
    right:20px;
    opacity:0;
    transition: all 0.3s ease;
    margin-bottom: -0.5em;
}
.minimizenav .flexcontact--link {
    opacity: 1;
    margin-bottom: 0;
    transition: all 0.3s ease;
}
body.unpinsearchbtn .flexcontact--link {
    opacity: 0;
    margin-bottom: 0.5em;
    transition: all 0.3s ease;
}