/*!
Theme Name: O2 Concepts
Theme URI: http://underscores.me/
Author: Amy Smith // CressidaDesigns
Author URI: http://cressidadesigns.com
Description: Custom theme for O2 Concepts
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: o2-concepts
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

O2 Concepts is based on Underscores https://underscores.me/, (C) 2012-2017 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Normalize
# Typography
# Elements
# Forms
# Navigation
	## Links
	## Menus
# Accessibility
# Alignments
# Clearings
# Widgets
# Content
	## Posts and pages
	## Comments
# Infinite scroll
# Media
	## Captions
	## Galleries
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Normalize
--------------------------------------------------------------*/
html {
	font-family: sans-serif;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

body {
	margin: 0;
	counter-reset: li-counter;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
	display: block;
}

audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline;
}

audio:not([controls]) {
	display: none;
	height: 0;
}

[hidden],
template {
	display: none;
}

a {
	background-color: transparent;
}

a:active,
a:hover {
	outline: 0;
}

abbr[title] {
	border-bottom: 1px dotted;
}

b,
strong {
	font-weight: bold;
}

dfn {
	font-style: italic;
}

mark {
	background: #ff0;
	color: #000;
}

small {
	font-size: 80%;
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

img {
	border: 0;
}

svg:not(:root) {
	overflow: hidden;
}

figure {
	margin: 1em 40px;
}

hr {
	box-sizing: content-box;
	height: 0;
}

pre {
	overflow: auto;
}

code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
	color: inherit;
	font: inherit;
	margin: 0;
}

button {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

button[disabled],
html input[disabled] {
	cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input {
	line-height: normal;
}

input[type="checkbox"],
input[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

fieldset {
	border: 1px solid #c0c0c0;
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
}

legend {
	border: 0;
	padding: 0;
}

textarea {
	overflow: auto;
}

optgroup {
	font-weight: bold;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

td,
th {
	padding: 0;
}

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: 'Roboto Condensed', helvetica, sans-serif;
	font-size: 18px;
	font-size: 1.05rem;
	line-height: 1.7;
	letter-spacing: .02em;
}

h1, h2, h3, h4, h5, h6 {
	clear: both;
	font-family: 'Source Sans Pro', sans-serif;
	font-weight: 900;
	margin: 0;
	line-height: 1.2;
}

h1 {
	font-size: 4em;
	line-height: .9;
	margin: 20px 0;
}

h2 {
	font-size: 3em;
	line-height: .9;
	margin: 20px 0;
}

.home h2, h3 { 
	font-size: 1.9em;
	padding: 20px 0 0 0; 
}

h4 { font-size: 24px; margin: 0; }

p {
	margin-bottom: 1em;
}

dfn, cite, em, i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", Courier, monospace;
	font-size: 15px;
	font-size: 0.9375rem;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code, kbd, tt, var {
	font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
	font-size: 15px;
	font-size: 0.9375rem;
}

abbr, acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark, ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/*--------------------------------------------------------------
# Elements
--------------------------------------------------------------*/
html {
	box-sizing: border-box;
}

*,
*:before,
*:after {
	/* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
	box-sizing: inherit;
}

body {
	background: #fff;
	/* Fallback for when there is no custom background color defined. */
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul, ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: bold;
}

dd {
	margin: 0 1.5em 1.5em;
}

img {
	height: auto;
	/* Make sure images are scaled correctly. */
	max-width: 100%;
	/* Adhere to container width. */
}

figure {
	margin: 1em 0;
	/* Extra wide images within figure tags don't overflow the content area. */
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

.vc_row { width: 86%; margin: 0 auto !important; max-width: 1280px; }

.vc_row .vc_col-sm-12 { padding: 0 3%; }

.vc_row.vc_row-no-padding { width: 100%; }

#home-hero { 
	padding: 4% 0 4% 4%; 
}
#home-hero p {
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: 18px;
	line-height: 1.7;
	width: 90%;
}

#sub-header {
	background-color: #000;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 0 10% 10% 10%;
	height: 380px;
	margin: 75px 0 0 0;
	text-align: center !important;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-ms-flex-align: center;
	-webkit-align-items: center;
	-webkit-box-align: center;
	align-items: center; 
	position: relative;
	z-index: -1;
}
#sub-header h1 { width: 100%; color: #fff; text-align: center; margin: 0; padding: 90px 0 0 0; }
#header-curve-bottom { margin-top: -6%; position: relative; z-index: 0; margin-bottom: 8%; }

#main ul { 
	margin: 0 0 20px 0; 
	padding: 0; 
	line-height: 1.4;
}
#main li {
	list-style: none;
	margin: 0 0 0 22px;
}
#main ol li::before { 
	counter-increment: li-counter;
    content: counter(li-counter) ". ";
	font-size: 1em;
	font-family: 'Source Sans Pro';
	font-weight: bold;
	color: #1c75bb;
	padding: 0;
	margin: 0;
	display: inline-block;
	width: 2em;
	margin-left: -2em;
}

#main ul li::before { 
    content: '•';
	font-size: 1.4em;
	font-family: 'Source Sans Pro';
	font-weight: bold;
	color: #1c75bb;
	padding: 0;
	margin: 0;
	display: inline-block;
	width: 1em;
	margin-left: -1em;
}

.curved-callout {
	padding: 10% 0 12% 0;
	font-size: 20px;
	position: relative;
	z-index: -1;
	margin: -30px 0 0 0;
}
.curved-callout::before {
	background: url(/wp-content/themes/o2-concepts/images/img_callout-top.png) no-repeat 0 0;
	width: 100%;
	background-size: 100% auto;
	display: block !important;
	position: absolute;
	height: 160px;
	top: 0;
}
.curved-callout::after {
	background: url(/wp-content/themes/o2-concepts/images/img_callout-bottom.png) no-repeat left bottom;
	width: 100%;
	background-size: 100% auto;
	display: block !important;
	position: absolute;
	height: 160px;
	bottom: 0;
	left: 0;
}
.curved-callout-content { padding: 0 6%; }

.curved-callout-top {
	padding: 10% 0;
	font-size: 20px;
	position: relative;
	z-index: -1;
	margin: -30px 0 0 0;
}
.curved-callout-top::before {
	background: url(/wp-content/themes/o2-concepts/images/img_callout-top-only.png) no-repeat 0 0;
	width: 100%;
	background-size: 100% auto;
	display: block !important;
	position: absolute;
	height: 160px;
	top: 0;
}

.product-callout { font-size: 1em; position: relative !important; z-index: 100 !important; }

.photo-callout { height: 460px; }

.dark-callout { color: #fff; }

.gray-callout {
	padding: 0 5%;
	font-size: .8em;
	background: #e9e9e9;
}

.btn, .vc_btn3 { 
	display: inline-block;
	width: auto !important;
	margin: 20px auto !important;
	background: #0966a4 !important; 
	color: #fff !important;
	padding: 10px 26px !important; 
	text-transfom: uppercase !important;
	letter-spacing: .1em;
	font-size: 16px !important;
	-webkit-transition: all 0.4s ease 0s;
	-moz-transition: all 0.4s ease 0s;
	-o-transition: all 0.4s ease 0s;
	transition: all 0.4s ease 0s;
}
.btn:after, .vc_btn3:after { content: ' →'; }
.btn:hover, .vc_btn3:hover { background: #343434 !important; }

footer {
	background: #0966a4;
	color: #fff;
	margin: 100px 0 0 0;
	padding: 40px 4%;
	position: relative;
	z-index: 5;
}

footer #footer-logo { float: left; width: 20%; text-align: center; }

footer .main-navigation { 
	float: left;
	text-align: center !important; 
	clear: none; 
	padding: 18px 0 0 0; 
	text-transform: uppercase;
	letter-spacing: .1em;
	font-weight: bold;
	font-size: 12px;
	width: 60%;
}
footer .main-navigation ul { float: none; }
footer .main-navigation li { display: inline; }
footer .main-navigation a { color: #fff; }

footer .social-navigation { 
	float: left; 
	width: 20%; 
	padding: 18px 0 0 0;
}

footer .social-navigation ul {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

footer .social-navigation li {
	display: inline-block; 
}

footer .social-navigation a {
	display: inline-block;
	padding: 0 12px;
	text-decoration: none;
	color: #fff;
}

footer #company-info { 
	clear: both; 
	text-align: center;  
}
footer #company-info ul, footer #company-info li {
	list-style: none;
	padding: 0 15px;
	display: inline;
	font-size: 9px;
	text-transform: uppercase;
}
footer a { color: #fff; }
footer #company-info img { position: relative; top: 5px; }
	

/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1;
	padding: .6em 1em .4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active, button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Navigation
--------------------------------------------------------------*/

#masthead {
	padding: 70px 8% 0 8%;
	max-width: 1400px;
	margin: 0 auto; 
}

#masthead #logo { float: left; width: 242px; }

#masthead .main-navigation { 
	float: right;
	text-align: right; 
	clear: none; 
	padding: 21px 0 0 0; 
	text-transform: uppercase;
	letter-spacing: .1em;
	font-weight: bold;
}

/*--------------------------------------------------------------
## Links
--------------------------------------------------------------*/
#main a {
	color: #1c75bb;
	font-weight: bold;
	text-decoration: none;
	border-bottom: 1px solid #c9c9c9;
}

#main a:visited {
	color: #1c75bb;
}

#main a:hover, #main a:focus, #main a:active {
	color: #1c75bb;
	border-bottom: 1px solid #1c75bb;
}

a:focus {
	outline: thin dotted;
}

a:hover, a:active {
	outline: 0;
}

#main .vc_grid-container-wrapper a { color: #fff !important; border-bottom: none !important; }

/*--------------------------------------------------------------
## Menus
--------------------------------------------------------------*/
.main-navigation {
	display: block;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
	float: right;
}

.main-navigation li {
	display: inline-block; 
}

.main-navigation a {
	display: inline-block;
	padding: 0 20px;
	text-decoration: none;
	color: #0a66a5;
}

.main-navigation li.current-menu-item a, .main-navigation a:hover { color: #343434; }

/* Small menu.
.menu-toggle,
.main-navigation.toggled ul {
	display: block;
} */

@media screen and (min-width: 1024px) {
	.main-navigation ul {
		display: inline-block;
	}
}

.site-main .comment-navigation, .site-main
.posts-navigation, .site-main
.post-navigation {
	margin: 0 0 1.5em;
	overflow: hidden;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	float: left;
	width: 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	float: right;
	text-align: right;
	width: 50%;
}

/*--------------------------------------------------------------
# Accessibility
--------------------------------------------------------------*/
/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 14px;
	font-size: 0.875rem;
	font-weight: bold;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
	/* Above WP toolbar. */
}

/* Do not show the outline on the skip link target. */
#content[tabindex="-1"]:focus {
	outline: 0;
}

/*--------------------------------------------------------------
# Alignments
--------------------------------------------------------------*/
.alignleft {
	display: inline;
	float: left;
	margin-right: 1.5em;
}

.alignright {
	display: inline;
	float: right;
	margin-left: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/*--------------------------------------------------------------
# Clearings
--------------------------------------------------------------*/
.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after {
	content: "";
	display: table;
	table-layout: fixed;
}

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
	clear: both;
}

/*--------------------------------------------------------------
# Widgets
--------------------------------------------------------------*/
.widget {
	margin: 0 0 1.5em;
	/* Make sure select elements fit in widgets. */
}

.widget select {
	max-width: 100%;
}

/*--------------------------------------------------------------
# Content
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Posts and pages
--------------------------------------------------------------*/
.sticky {
	display: block;
}

.hentry {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/*--------------------------------------------------------------
## Comments
--------------------------------------------------------------*/
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/*--------------------------------------------------------------
# Infinite scroll
--------------------------------------------------------------*/
/* Globally hidden elements when Infinite Scroll is supported and in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	/* Theme Footer (when set to scrolling) */
	display: none;
}

/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Media
--------------------------------------------------------------*/
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/*--------------------------------------------------------------
## Captions
--------------------------------------------------------------*/
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/*--------------------------------------------------------------
## Galleries
--------------------------------------------------------------*/
.gallery {
	margin-bottom: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	vertical-align: top;
	width: 100%;
}

.gallery-columns-2 .gallery-item {
	max-width: 50%;
}

.gallery-columns-3 .gallery-item {
	max-width: 33.33%;
}

.gallery-columns-4 .gallery-item {
	max-width: 25%;
}

.gallery-columns-5 .gallery-item {
	max-width: 20%;
}

.gallery-columns-6 .gallery-item {
	max-width: 16.66%;
}

.gallery-columns-7 .gallery-item {
	max-width: 14.28%;
}

.gallery-columns-8 .gallery-item {
	max-width: 12.5%;
}

.gallery-columns-9 .gallery-item {
	max-width: 11.11%;
}

.gallery-caption {
	display: block;
}

@media screen and (max-width: 1200px) {
	#masthead { padding: 70px 4% 0 4%; }
	.main-navigation a { padding: 0 12px; }
}

@media screen and (max-width: 1024px) {
	#masthead { padding: 30px 6%; }
	#sub-header { margin-top: 0; }
	footer #footer-logo { width: 40%; float: left; }
	footer .social-navigation { width: 40%; float: right; padding: 0; }
}

@media screen and (max-width: 768px) {
	.vc_grid-container-wrapper { margin: 40px 0; }
	.vc_col-sm-4 { margin: 20px 0; }
}

@media screen and (max-width: 480px) {
	#home-hero { 2% 0; }
	#home-hero p { font-size: 15px; line-height: 1.3; width: 100%; }
	.curved-callout { font-size: 16px; line-height: 1.3; }
	#sub-header { height: 200px; }
	#sub-header h1 { padding: 26px 0 0 0; font-size: 2em; }
	h1 { font-size: 2em; }
	h2 { font-size: 1.8em; }
	.home h2, h3 { font-size: 1.5em; }
	h4 { font-size: 20px; margin: 0; }
	.photo-callout { height: 260px; }
	#main img.alignright, #main img.alignleft { float: none; display: block; margin: 20px auto !important; padding: 0; max-width: 100% !important; }
	footer #footer-logo { width: 100%; float: none; display: block; }
	footer .social-navigation { clear: both; width: 100%; float: none; padding: 10px 0; display: block; text-align: center; }
	footer #company-info li { display: block; line-height: .8; }
}