/*
Theme Name: Firedog Custom Theme
Theme URI: https://visualcomposer.com/
Description: VS Composer Child Theme for CFPL
Author: Firedog
Template: visual-composer-starter
Version: 1.0.0
Text Domain: visual-composer-starter-child
*/

a.blue-button {
	border-radius:4px;
}
html {
	background:#fff !important;
}
video.home-video {
	width:100vw !important;
	background:#fff;
	border-radius:16px;
	max-height:80vh;
	object-fit:contain;
	object-position:center top;
	margin-bottom:0px;
}
.container .content-wrapper {
	padding:0px;
}
.navbar-header .navbar-brand img {
	width:100%;
	padding:10px 0px;
	height:100%;
}
.navbar-header .navbar-brand {
	display:flex;
	justify-content:center;
	align-items:center;
	height:100%;
}
.navbar-header .navbar-brand a {
	display:flex;
}
.navbar-header .navbar-brand a img {
max-width:74px;
}
.navbar-header .navbar-brand a:after {
	content:"Concord Free Public Library Corporation";
	width:197px;
	text-decoration:none !important;
	margin-left:16px;
	font-size: 18px;
	font-style: normal;
	font-weight: 700;
	line-height: 110%;
	margin-top:14px;
	color:#6C0210;
}
.navbar-header .navbar-brand a:hover,.navbar-header .navbar-brand a:focus {
        text-decoration:none !important;
	outline:none !important;
}
@media (min-width: 1200px) {
    #header .container {
        max-width: 1320px;
			width:100%;
    }
}
.align-content-center {
	justify-content:center;
}
.navbar-wrapper {
	display:flex;
}
@media only screen and (min-width: 768px) {
	body:not(.menu-sandwich) #main-menu {
		margin-left:auto;
	}
}
#main-menu {
	display:flex;
	    height: 115px;
    align-items: center;
}
#main-menu li a {
	color:#000 !important;
	font-size:16px !important;
	font-weight:500;
}
.header-widgetised-area {
	display:none;
}
#main-menu .button {
	margin-left:16px;
}
.button {
	background:#6C0210;
	display:flex;
	font-weight:bold;
	padding:10px 30px;
	text-wrap:nowrap;
	color:#fff;
	border-radius:4px;
}

body .header *,body .container *,body .footer * {
	font-family:'Rubik' !important;
}
h1,h2,h3,h4,h5,h6 {
	font-weight:600 !important;
	color:#6C0210 !important;
}

h1 {
	font-size:56px !important;
}
h2 {
	font-size:48px !important;
}
button {
	font-weight:600 !important;
}
.home-posts-row img {
		border-radius:16px !important;
	max-height:400px;
	min-height:220px;
	object-fit:cover;
	width:100%;
}
.vc_toggle {
    border-bottom: 1px solid #6C0210 !important;
    padding: 15px 0px 20px !important;
}
.vc_toggle_rounded .vc_toggle_icon {
	background-color:#6C0210 !important;
}
.vc_toggle_content {
	margin-bottom:0px !important;
}
.wpb_button, .wpb_content_element {
	padding-bottom:0px !important;
	margin-bottom:0px !important;
}
#footer {
	padding:20px 20px 0px 20px;
}
.footer-top {
	display:flex;
	max-width:1170px;
	margin:0 auto;
	padding:0px 16px;
	justify-content:space-between;

}
.footer-top .footer-logo {
	display:flex;
	align-items:baseline;
	justify-content:center;
	gap:16px;
	margin-bottom:20px;
}
.footer-top .footer-logo p {
font-size: 18px;
font-style: normal;
font-weight: 700;
line-height: 110%;
	width:100%;
	max-width:200px;
	margin-bottom:0px;
	margin-top:auto;
}
.footer-top .footer-logo img {
	width:100%;
	height:100%;
	object-fit:contain;
	margin-top:auto;
	object-position:center bottom;
		max-width:76px !important;
}
.footer-top .footer-left-block p {
	margin-bottom:0px;
}
.footer-top #menu-footer-menu {
	display:flex;
	flex-direction:column;
	gap:10px;
}
.footer-bottom {
	margin-top:20px;
	border-top: 1px solid #fff;
}
.footer-bottom .footer-right-block {

	height:auto !important;
}
a.button:hover {

	text-decoration:none !important;
}
a.button {
	cursor:pointer;
}
a.red-button:hover {
	color:#fff !important;
	background:#A9051F;
}

.home-hero-image .vc_column-inner {
	height:500px;
	background-position:bottom center !important;
	display:flex;
	justify-content:center !important;
	align-items:center !important;
}
.home-hero-image .vc_column-inner h1 {
	text-shadow:2px 2px 10px rgba(0,0,0,0.4)
}

body:not(.home) .vc_row:not([data-vc-stretch-content="true"]) {
    width: min(100%, 1170px);
    margin-left: auto;
    margin-right: auto;
}
body:not(.home) .vc_row[data-vc-stretch-content="true"] {
    max-width: none;
}

/* Use the Visual Composer Starter mobile navigation below 1200px */
@media (max-width: 1199px) {
	.navbar .navbar-header {
		width: 100%;
	}

	.navbar .navbar-toggle {
		display: block !important;
	}

	.navbar #main-menu {
		display: none;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 100%;
		overflow-y: auto;
		z-index: 99999;
	}

	.navbar #main-menu.open,
	.navbar #main-menu.active {
		display: block;
	}

	.navbar #main-menu .navbar-nav {
		float: none !important;
		width: 100%;
		margin: 0;
	}

	.navbar #main-menu .navbar-nav > li {
		float: none !important;
		display: block;
		width: 100%;
	}
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
    body:not(.menu-sandwich) .navbar .navbar-toggle {
        display: block !important;
    }
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
    body:not(.menu-sandwich) .navbar-header {
        max-width: none !important;
    }
}
/* Restore the desktop navigation at 1200px and above */
@media (min-width: 1200px) {
	.navbar .navbar-toggle {
		display: none !important;
	}

	.navbar #main-menu {
		display: flex !important;
	}
}
/* Use the mobile navigation layout through 1199px */
@media only screen and (max-width: 1199px) {

	/* Make the navbar and its wrappers span the viewport */
	.navbar,
	.navbar > .container,
	.navbar .navbar-wrapper {
		width: 100%;
		max-width: none;
	}

	.navbar > .container {
		padding-left: 15px;
		padding-right: 15px;
		box-sizing: border-box;
	}

	/* Keep the logo and hamburger in one full-width header row */
	body:not(.menu-sandwich) .navbar-header,
	.navbar .navbar-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		float: none;
		width: 100%;
		max-width: none !important;
		box-sizing: border-box;
	}

	.navbar .navbar-brand {
		float: none;
	}

	/* Show the hamburger between 768px and 1199px */
	body:not(.menu-sandwich) .navbar .navbar-toggle,
	.navbar .navbar-toggle {
		display: block !important;
		float: none;
		margin-left: auto;
	}

	/* Convert the menu box into a full-screen mobile panel */
	body:not(.menu-sandwich) #main-menu,
	.navbar #main-menu {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;

		width: 100vw;
		max-width: none;
		height: 100vh;
		min-height: 100vh;

		margin: 0;
		padding: 70px 30px 30px;

		float: none;
		box-sizing: border-box;
		overflow-x: hidden;
		overflow-y: auto;
		z-index: 99999;
	}

	/* Ensure the inner menu content also uses the full panel width */
	.navbar #main-menu > ul,
	.navbar #main-menu .navbar-nav {
		display: block;
		float: none !important;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 0;
	}

	.navbar #main-menu .navbar-nav > li {
		display: block;
		float: none !important;
		width: 100%;
	}

	.navbar #main-menu .navbar-nav > li > a {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	/* Keep widgets and buttons inside the full-width panel */
	.navbar #main-menu .header-widgetised-area,
	.navbar #main-menu > div {
		float: none;
		width: 100%;
		max-width: none;
		box-sizing: border-box;
	}

	/* Position the close button relative to the viewport panel */
	.navbar #main-menu .button-close {
		position: absolute;
		top: 20px;
		right: 20px;
		z-index: 1;
	}
}

/* Restore the normal desktop navigation at 1200px */
@media only screen and (min-width: 1200px) {

	.navbar .navbar-header {
		display: block;
		width: auto;
	}

	.navbar .navbar-toggle {
		display: none !important;
	}

	.navbar #main-menu {
		position: static;
		width: auto;
		max-width: none;
		height: auto;
		min-height: 0;
		padding: 0;
		overflow: visible;
	}
}
.button-close {
    display: flex;
    justify-content: flex-end;
}
@media screen and (max-width:1200px){
	#main-menu {
		background:#fff !Important;
		margin-bottom:40px !important;
	}
	#main-menu .button-close {
		color:#000;
		right:40px !important;
	}
	#main-menu .button.red-button {
		margin-top: 40px;
		margin-left: 0px;
		justify-content: center;
	} 
	.navbar .navbar-brand {
		width:304px
	}
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
    body:not(.menu-sandwich) #main-menu .button-close {
        display: flex !important;
    }
}
@media screen and (max-width:480px){
	.navbar .navbar-brand {
		width:190px;
	}
	.navbar .navbar-brand a {
		flex-direction:column;
		align-items:center;
	}
}
@media (min-width: 768px) {
    .container {
        width: calc(100% - 30px);
        max-width: 1170px;
    }
}
@media (max-width:768px){
	.container {
		width: calc(100% - 20px);
	}
	.cta-special-collections .wpb_column.vc_column_container .vc_column-inner {
		align-items:center;	
	}
}
@media (max-width: 980px) {
	.vc_custom_1776097100658 {
	  padding-left:0px !important;
	  padding-right:0px !important;
	}
}
@media (max-width:540px){
	.footer-top {
		flex-direction: column;
		align-items: flex-start;
    }
    .footer-left-block {
    	flex-direction:column;
    }
    .footer-right-block-credit {
	    margin-left:0 !important;
    }
    .footer-bottom .container {
    width:100% !important;
	}
}
@media (max-width: 960px) {
    .vc_grid-container[data-vc-grid-settings*="1785955261211-3f85997a01ad496812be0395c525103a-7"] .wpb_single_image {
        display: flex;
        justify-content: center;
    }
}

/* Mobile Typography */

@media (max-width: 960px) {

    /* Standard headings */
    h1 {
        font-size: 2.25rem !important;
        line-height: 1.2 !important;
    }

    h2 {
        font-size: 1.875rem !important;
        line-height: 1.25 !important;
    }

    h3 {
        font-size: 1.5rem !important;
        line-height: 1.3 !important;
    }

    h4 {
        font-size: 1.25rem !important;
        line-height: 1.35 !important;
    }

    h5 {
        font-size: 1.125rem !important;
        line-height: 1.4 !important;
    }

    h6 {
        font-size: 1rem !important;
        line-height: 1.4 !important;
    }

    /* Standard paragraphs */
    p,
    p * {
        font-size: 1rem !important;
        line-height: 1.6 !important;
    }

    /* WPBakery / Visual Composer Custom Heading element */
    .vc_custom_heading h1 {
        font-size: 2.25rem !important;
        line-height: 1.2 !important;
    }

    .vc_custom_heading h2 {
        font-size: 1.875rem !important;
        line-height: 1.25 !important;
    }

    .vc_custom_heading h3 {
        font-size: 1.5rem !important;
        line-height: 1.3 !important;
    }

    .vc_custom_heading h4 {
        font-size: 1.25rem !important;
        line-height: 1.35 !important;
    }

    .vc_custom_heading h5 {
        font-size: 1.125rem !important;
        line-height: 1.4 !important;
    }

    .vc_custom_heading h6 {
        font-size: 1rem !important;
        line-height: 1.4 !important;
    }

    /* WPBakery Text Block element */
    .wpb_text_column p,
    .wpb_text_column p * {
        font-size: 1rem !important;
        line-height: 1.6 !important;
    }
}
.home-hero-text h1 span {
	font-size:58px;
}
.home-hero-text h2 span {
	font-size:38px;
}
@media (max-width: 960px) {
    .home-hero-text h1 span {
    	font-size:42px;	
    }
    .home-hero-text h2 span {
    	font-size:30px;
    }
    .home-hero-text.vc_custom_1785973710966 {
    	padding:40px 20px;
	padding-top:40px !important;
	padding-bottom:40px !Important;
    }
    .home-hero-image .vc_column-inner {
    	height:auto;
    }
    /* Standard headings */
    h1 {
        font-size: 36px !important;
        line-height: 44px !important;
    }

    h2 {
        font-size: 30px !important;
        line-height: 38px !important;
    }

    h3 {
        font-size: 24px !important;
        line-height: 32px !important;
    }

    h4 {
        font-size: 20px !important;
        line-height: 28px !important;
    }

    h5 {
        font-size: 18px !important;
        line-height: 26px !important;
    }

    h6 {
        font-size: 16px !important;
        line-height: 24px !important;
    }

    /* Standard paragraphs */
    p,
    p * {
        font-size: 16px !important;
        line-height: 26px !important;
    }

    /* WPBakery / Visual Composer Custom Heading element */
    .vc_custom_heading h1 {
        font-size: 36px !important;
        line-height: 44px !important;
    }

    .vc_custom_heading h2 {
        font-size: 30px !important;
        line-height: 38px !important;
    }

    .vc_custom_heading h3 {
        font-size: 24px !important;
        line-height: 32px !important;
    }

    .vc_custom_heading h4 {
        font-size: 18px !important;
        line-height: 28px !important;
    }

    .vc_custom_heading h5 {
        font-size: 18px !important;
        line-height: 26px !important;
    }

    .vc_custom_heading h6 {
        font-size: 16px !important;
        line-height: 24px !important;
    }

    /* WPBakery Text Block element */
    .wpb_text_column p,
    .wpb_text_column p * {
        font-size: 16px !important;
        line-height: 26px !important;
    }

}

/* Sitewide Hero Section */
.single-post-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 420px;
    padding: 80px 30px;
    overflow: hidden;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform: translateZ(0);
}

.single-post-hero__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0);
    pointer-events: none;
}

.single-post-hero__content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1170px;
    margin: 0 auto;
    text-align: center;
}

.single-post-hero__title {
    margin: 0;
    color: #ffffff;
    font-size: 56px;
    line-height: 64px;
    color:#fff !important;
    font-weight:700 !important;
    text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.4);
}

@media (max-width: 960px) {
    .single-post-hero {
        min-height: 320px;
        padding: 60px 20px;
    }

    .single-post-hero__title {
        font-size: 36px;
        line-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .single-post-hero {
        background-position: center !important;
    }
}
.entry-content ul li:before {
color:#6C0210 !important; 
}
.button-gold {
	font-weight:600 !important;
}
a.red-button:focus, a.button-gold:focus {
	    color: #fff;
    text-decoration: none !important;
    outline-offset: revert;
    outline: revert;
    outline-offset: revert;
}
