/*!
Theme Name: Ballcoach.com
Theme URI: https://ballcoach.com/
Author: Ballcoach.com
Author URI: https://ballcoach.com/
Description: A custom theme for Ballcoach.com
Version: 1.0.0
Text Domain: ballcoach
*/


/*--------------------------------------------------------------
# Normalize
--------------------------------------------------------------*/

html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%; }

body {
  margin: 0; }

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: 900; }

dfn {
  font-style: italic; }

h1 {
  font-size: 2em;
  margin: 0.67em 0; }

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: 900; }

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

td,
th {
  padding: 0; }

*, *:before, *:after {
    box-sizing: border-box;
}


/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/

html, body {
	height: 100%;
}
body,
button,
input,
select,
optgroup,
textarea {
  font-family: 'museo-sans', sans-serif;
  font-weight: 300;
  font-size: 18px;
  line-height: 1.8em;
  color: #4e4e4e;
}
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 1em; 
  line-height: 1.3em;
  font-weight: 900;
  color: #000;
}
h1 {
  font-size: 48px;
}
h2 {
  font-size: 36px;
}
h3 {
  font-size: 24px;
}
h4 {
  font-size: 21px;
}
h5 {
  font-size: 18px;
}
h6 {
  font-size: 16px;
}
p {
  margin: 0 0 1.5em; 
}
ul {
	margin: 0 0 1.5em 0;
	padding: 0 0 0 1em;
}
img {
	max-width: 100%;
	height: auto;
}
*:focus {
	outline:0;
}
a, a:hover {
	text-decoration: none;
	color: #00df00;
}
.center {
  text-align: center; 
}

#page {
	right: 0px;
	position: relative;
	transition: 0.5s;
}
@media screen and (min-width: 768px) {
	#page {
		right: 0px !important;
	}
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/

.site-header {
    display: flex;
    align-items: center;
    padding: 10px 15px;
	background: #000;
}
.site-header a {
	color: #fff;
}

/* Logo */
.site-branding  {
    flex: 0 0 250px;
    text-align: center;
}
.site-branding .site-title {
	background: url("images/ballcoach-logo.svg") no-repeat;
	background-size: cover;
	width: 218px;
	height: 51px;
}
.site-branding h1.site-title {
	margin-bottom: 0;
}
.site-branding .site-title a {
	display: block;
	width: 218px;
	height: 51px;
	text-indent: -9999px;
}

/* Small menu. */
.menu-toggle {
	display: block;
	background: url("images/menu-icon.svg") center center no-repeat;
	background-size: cover;
	width: 30px;
	height: 22px;
	border: none;
	text-indent: -999em;
	margin-left: auto;
	position: relative;
	z-index: 20;
}
.toggled .menu-toggle {
	background: url("images/menu-close.svg") center center no-repeat;
}
.overlay {
    height: 100%;
	width: 0; 
    position: fixed;
    z-index: 10;
    top: 0;
    left: 0;
    background-color: rgba(0,0,0,0.8);
    overflow-y: auto;
    overflow-x: hidden;
    text-align: center;
    opacity: 0;
    transition: opacity 1s;
}
.main-navigation {
	flex: 1;
	font-size: 16px;
}

/* Level 1 */
.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.main-navigation > div > ul {
	height: 100%; 
	width: 0px;
	position: fixed; 
	z-index: 999; 
	top: 0; 
	right: 0px;
	background-color: #000; 
	overflow-x: hidden; 
	padding: 0; 
	transition: 0.5s; 
}
.main-navigation li {
	width: 310px;
}
.main-navigation a {
	display: block;
	padding: 15px 20px;
	border-bottom: 1px solid #404040;  
}
.main-navigation > div > ul > li > a {
	text-transform: uppercase;
	/*font-weight: 900;*/
}
.main-navigation ul li.menu-item-99 a { /* Sign Up */
	color: #00FF00; 
}

/* Level 2 */
.main-navigation li.menu-item-73 ul, 
.main-navigation li.menu-item-70 ul { /* Categories */
	display: none;
}
.main-navigation ul ul a {
	border-bottom: 1px solid #1B1B1B; 
	padding: 10px 20px;
}

/* Tablet and up */
@media screen and (min-width: 768px) {
	.menu-toggle {
		display: none; /* Hide mobile menu icon */
	}
	/* Main Navigation */
	.main-navigation {
		clear: both;
		display: block;
	}
	.main-navigation ul {
		display: block; /* Show desktop menu */
		text-align: right;
	}
	.main-navigation > div > ul {
		height: auto; 
		width: auto !important;
		top: auto; 
		right: auto;
		background-color: transparent;
		overflow-x: visible;
		transition: none;
		position: static;
		padding: 0;
	}

	/* Level 1 */
	.main-navigation li {
		width: auto;
		position: relative;
		display: inline-block;
		margin-left: 20px;
	}
	.main-navigation a {
		padding: 0;
		border-bottom: none;
	}
	.main-navigation > div > ul > li > a {
		padding: 10px 0;
	}
	.main-navigation > div > ul > li.menu-item-has-children > a {
		text-transform: uppercase;
		background: url("images/menu-arrow-down.svg") right center no-repeat;
		background-size: 16px auto;
		padding-right: 25px;
	}
	

	/* Level 2 */
	.main-navigation ul ul {
		display: block;
		text-align: left;
		padding: 5px 0;
		background: #fff;
		box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.1);
		border-radius: 2px;
		border: 1px solid #D9D9D9;
		float: left;
		position: absolute;
		top: 100%;
		left: -999em;
		z-index: 99999;
		width: 200px;
	}
	.main-navigation li.menu-item-73 ul,  
	.main-navigation li.menu-item-70 ul { /* Categories */
		display: block;
	}
	.main-navigation ul li:hover > ul,
	.main-navigation ul li.focus > ul {
		left: -20px;
	}
	.main-navigation ul ul li {
		display: block;
		margin-left: 0;
	}
	.main-navigation ul ul a {
		color: #172B3A;
		display: block;
		padding: 5px 20px;
		border-bottom: none;
	}
	.main-navigation ul ul a:hover {
		background: #E6E6E6;
	}

	/* Account Menu */
	.main-navigation > div > ul > li.menu-item-21 > a {
		background: url("images/user-icon.svg") center center no-repeat;
		background-size: cover;
		width: 35px;
		height: 35px;
		text-indent: -999em;
		text-align: left;
		display: block;
		padding-right: 0;
		margin: 10px 0;
	}
	.main-navigation ul li.menu-item-21 ul { 
		text-align: right;
		width: 150px;
	}
	.main-navigation ul li.menu-item-21:hover > ul,
	.main-navigation ul li.menu-item-21.focus > ul {
		left: auto;
		right: -10px;
	}

	/* Level 3 */
	.main-navigation ul ul ul {
		left: -999em;
		top: -11px;
	}
	.main-navigation ul ul li:hover > ul,
	.main-navigation ul ul li.focus > ul {
		left: 100%;
	}

}


/*--------------------------------------------------------------
# Content
--------------------------------------------------------------*/

/* Home and Post Banners */
.home-banner {
	background-size: cover;
	background-position: center center; 
	color: #fff;
}
.home-banner-inner {
	background-color: rgba(0, 0, 0, 0.4);
}
.home-banner-inner .container {
	min-height: 450px;
	display: flex;
}
.home-banner-content {
	align-self: flex-end;
	margin-bottom: 50px;
}
.home-banner h1 {
	font-size: 36px;
	line-height: 1.3em;
	font-weight: 900;
    margin-bottom: 0.25em;
}
.home-banner h1 a {
	color: #fff;
}
.home-banner .post-date {
	font-size: 14px;
}
.post-banner {
	background-size: cover;
	background-position: center center;
	min-height: 450px;
}
@media (min-width: 768px) {
	.home-banner-inner .container {
		min-height: 600px;
	}
	.home-banner-content {
		max-width: 50%;
		margin-bottom: 80px;
	}
	.home-banner h1 {
		font-size: 48px;
		display: block;
	}
	.post-banner {
		min-height: 600px;
	}
}

.container.narrow {
	max-width: 860px;
}


.page-section {
	padding: 50px 0px;
}
.page-section-grey {
	background-color: #F8F8F8;
}
.page-section-green {
	background-color: #00ff00;
}
.page-section-black {
	background-color: #000;
	color: #fff;
}
.page-section-black h1 {
	color: #00FF00;
}

.page-section-green a {
	text-decoration: underline;
}

@media (min-width: 768px) {
	.page-section {
		padding: 80px 0px;
	}
}

/* Search Bar */
.search-bar {
	background: #fff;
	max-width: 900px;
	border-radius: 4px;
	padding: 20px;
	margin: 0 auto;
}
.search-bar-form .search-location {
	width: 100%;
	margin-bottom: 5px;
}
.search-bar-form .search-location::placeholder {
	color: #172B3A;
}
.search-bar-form .search-sport {
	width: 100%;
	margin-bottom: 5px;
	height: 50px;
}
.search-bar-form .search-coaches {
	width: 100%;
}

@media (min-width: 768px) {
	.search-bar-form  {
		display: flex;
	}
	.search-bar-form .search-fields {
		display: flex;
		flex-grow: 1;
		margin-right: 5px;
	}
	.search-bar-form .search-location {
		width: 50%;
		margin-right: 5px;
		margin-bottom: 0;
	}
	.search-bar-form .search-sport {
		width: 50%;
		margin-bottom: 0;
		height: auto;
	}
	.search-bar-form .search-coaches {
		width: auto;
	}
}



/* Blog Post Grid */
.blog-post-grid .grid-item {
	margin-bottom: 80px;
}
.blog-post-grid .entry-meta {
	font-size: 14px;
	margin-bottom: 5px;
	color: #4e4e4e;
}
.blog-post-grid .entry-meta a {
	color: #4e4e4e;
}
.blog-post-grid .entry-meta .cat-links {
	margin-right: 15px;
}
.blog-post-grid .entry-meta .cat-links a {
	text-transform: uppercase;
	font-weight: 900;
}
.blog-post-grid h2 {
	font-size: 24px;
	margin-bottom: 0;
}
.blog-post-grid h3 {
	font-size: 18px;
	margin-bottom: 0;
}
.blog-post-grid h2 a, .blog-post-grid h3 a {
	color: #000;
}


/*
ul.acf-tab-group
ul.acf-tab-group li
ul.acf-tab-group li.active
ul.acf-tab-group li a.acf-tab-button

#mepr-account-nav {}
#mepr-account-nav span.mepr-nav-item {}
#mepr-account-nav span.mepr-nav-item.mepr-active-nav-tab {}
#mepr-account-nav span.mepr-nav-item a {}
*/


/* Tabs */
.acf-tab-wrap {
    background-color: transparent !important;
}
ul.acf-tab-group, 
#mepr-account-nav {
	list-style-type: none;
	margin: 0 0 2em 0;
	padding: 0;
	border-bottom: 1px solid #cccccc;
	border-top: none !important;
	text-align: center; 
}
@media (min-width: 768px) {
    ul.acf-tab-group, 
	#mepr-account-nav {
      margin: 0 0 3.5em 0;
	} 
}
ul.acf-tab-group li, 
#mepr-account-nav span.mepr-nav-item {
	display: inline-block; 
	float: none;
}
ul.acf-tab-group li a.acf-tab-button,
#mepr-account-nav span.mepr-nav-item a {
	color: #000000;
	font-size: 18px;
	font-weight: normal;
	display: inline-block;
	padding: 0.25em 0.25em 0em 0.25em;
	border-bottom: 5px solid #ffffff;
	border-top: none;
    border-left: none;
    border-right: none;
	background-color: transparent !important;
}
@media (min-width: 768px) {
	ul.acf-tab-group li a.acf-tab-button,
	#mepr-account-nav span.mepr-nav-item a {
		padding: 1em 0.5em 0.5em 0.5em; 
	} 
}
ul.acf-tab-group li.active a, 
#mepr-account-nav span.mepr-nav-item.mepr-active-nav-tab a {
	border-bottom: 5px solid #00ff00; 
	font-weight: bold;
}



/* Forms/Buttons */
fieldset {
  border: 0;
  margin: 1em 0;
  padding: 0; 
}
input, select, textarea,
.acf-form .acf-field input[type="text"], .acf-form .acf-field input[type="password"], 
.acf-form .acf-field input[type="number"], .acf-form .acf-field input[type="search"], 
.acf-form .acf-field input[type="email"], .acf-form .acf-field input[type="url"], 
.acf-form .acf-field textarea, .acf-form .acf-field select {
  font-size: 16px;
  line-height: inherit;
  border-radius: 3px;
  border: solid 1px #cccccc;
  padding: 0.5em 0.75em;
  outline: none;
  background-color: #fff; 
}
textarea {
  resize: vertical; 
	max-height: 150px;
}
label {
  color: #000;
  font-weight: bold; 
}

/* Buttons */
a.button, input.button, 
.button-primary, .mepr-submit, .mepr-share-button {
	font-size: 18px;
	font-weight: 900;
	color: #000;
	text-decoration: none;
	text-transform: uppercase;
	display: inline-block;
	padding: 10px 30px;
	background: #00FF00;
	border: none;
	border-radius: 2px;
}


/* REMOVE? Input Group  */
.input-group {
  margin: 1em 0;
  display: table;
  position: relative;
  border-collapse: separate; 
}
.input-group .input-group-addon, .input-group input.input-group-has-addon {
  display: table-cell;
  padding: 0.5em 0.75em; 
}
.input-group .input-group-addon {
  text-align: center;
  border-radius: 5px 0 0 5px;
  border: solid 1px #cccccc;
  border-right: none;
  background-color: #f0f0f0;
  width: 1%; 
}
.input-group input.input-group-has-addon {
  width: 100%;
  border-radius: 0 5px 5px 0; 
}

/* REMOVE? Search Bar */
.search-bar {
  margin-bottom: 1em; 
}
.search-bar .input-group .input-group-addon,
.search-bar .input-group input {
  font-size: 18px;
  padding: 0.6em 0.8em; 
}

@media (min-width: 576px) {
  .search-bar {
    margin-bottom: 2em; 
  }
  .search-bar .input-group .input-group-addon,
  .search-bar .input-group input {
    font-size: 21px;
    padding: 0.75em 1em; 
  } 
}


/* MemberPress Form Elements */
.mepr-account-change-password a {
	text-decoration: underline;
}

/* ACF Form Elements */
.page-id-93 .acf-tab-wrap {
	margin-top: 1em;
} 
.acf-form .acf-field p.description {
    font-size: 0.75em;
    line-height: 1.4em;
}
.acf-image-uploader .image-wrap img {
    border-radius: 50%;
}
.acf-file-uploader, .acf-image-uploader {
  font-size: 16px;
  border-radius: 3px;
  border: solid 1px #cccccc;
  padding: 0.5em 0.75em;
  background-color: #fff; 
}
.acf-image-uploader.has-value {
  border: none;
}
.acf-file-uploader .button, .acf-image-uploader .button {
	font-size: 15px;
	padding: 8px 15px;
}
.acf-form .acf-input-wrap input {
	height: auto;
}
.acf-form .acf-url input[type="url"] {
    padding-left: 25px;
}
.acf-form .acf-url i {
    top: 16px;
}
.acf-form-submit {
	margin-top: 1em;
}
.acf-form .acf-input-prepend, .acf-form .acf-input-append {
	font-size: 16px;
    line-height: inherit;
	padding: 0.5em 0.75em;
	height: auto;
}
.acf-repeater .button {
	font-size: 15px;
	padding: 8px 15px;
}
.acf-row-handle span {
	display: inline-block;
    background-color: #00ff00;
    color: #000;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-shadow: none;
    font-weight: bold;
}
@media (max-width: 650px) {
	.acf-group-field {
		width: 100% !important;
		min-height: auto !important;
	}
}

.acf-field-5bc751e9e6987 .acf-repeater .acf-label { /* Label for repeating "Training Type" */
	display: none;
}


/* Messages */
#message, .mepr_updated {
	border-radius: 3px;
	border: none !important;
	background-color: #00ff00 !important;
	color: #000;
	padding: 0.5em 0.75em;
	margin-bottom: 1em;
}
#message p {
	margin: 0;
}





/* Posts */
.post.hentry, .page-wrap {
	padding: 50px 0px;
}
@media (min-width: 768px) {
	.post.hentry, .page-wrap {
		padding: 80px 0px 130px 0px;
	}
}
.post h1.entry-title {
	margin-bottom: 0.25em;
}
.post .entry-meta {
	text-transform: uppercase;
	font-size: 16px;
}
.post .entry-content, .post .entry-header, .post .entry-footer {
	max-width: 800px;
	margin: 0 auto;
}
.post .entry-header, .page-header {
	text-align: center;
	margin-bottom: 50px;
}
.post .wp-post-image {
	margin-bottom: 50px;
}
.post h2, .post h3, .post h4, .post h4, .post h5, .post h6{
	margin: 1.5em 0;
}
/* Newsletter Box */
.newsletter-signup-box {
    border-top: solid 8px #00ff00;
    text-align: center;
    padding: 50px 20px;
    background: #000;
    color: #fff;
    margin-top: 80px;
}
.newsletter-signup-box h3 {
    margin: 0 0 1em 0;
	color: #fff;
}
.newsletter-signup-box .email {
    border: none;
	font-size: 16px;
	padding: 10px;
	width: 100%;
	margin-bottom: 5px;
}
@media (min-width: 594px) {
	.newsletter-signup-box .email {
		width: 300px;
		margin-bottom: 0;
	}
}
.newsletter-signup-box .button {
	font-size: 16px;
	vertical-align: top;
}


/* Post Navigation */
.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%;
}

ul.category-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
ul.category-list li {
	margin: 0 5px;
	padding: 0;
	display: inline-block;
}
ul.category-list li a {
	font-size: 16px;
	color: #fff;
	display: block;
	padding: 5px 10px;
	background-color: #000;
	border-radius: 2px;
}
ul.category-list li.current-cat a {
	background-color: #404040;
}


/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/

.site-footer {
    padding: 40px 0px;
	background: #000;
	color: #fff;
}
.site-info {
	font-size: 14px;
	line-height: 40px;
	text-align: center;
	margin-bottom: 10px;
}
.social-links {
	text-align: center;
}
.social-links ul{
	display: block;
	margin: 0;
	padding: 0;
}
.social-links ul li {
	display: inline-block;
	margin: 0 0 0 5px;
	list-style: none;
}
.social-links ul li img {
	display: block;
	width: 40px;
	height: 40px;
}
@media (min-width: 768px) {
	.site-info {
		text-align: left;
		margin-bottom: 0;
	}
	.social-links {
		text-align: right;
	}
}


/*--------------------------------------------------------------
# Alignment/Visibility
--------------------------------------------------------------*/

.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;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
  float: none;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}


/*--------------------------------------------------------------
# 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: 900;
	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;
}