/*!
Theme Name: City Printing 2026
Theme URI: https://touchiron.com
Author: Toccare Ferro
Author URI: https://touchiron.com
Description:  Custom Theme (child) developed especially for City Printing. Last updated 01/14/2026 by CA @ Toccare Ferro.
Template:     ferrocustom23
Version:      26.03.31
License:      All custom code in this child theme All Rights Reserved: City Printing, 2026
Tags:		  bootsrap, custom, toccare ferro, tocca ferro llc
Text Domain: ferrocustom23-child
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
1. Custom Theme Styles
2. Plugin Mods
3. Responsive Goodies
*/

/*--------------------------------------------------------------
>>> 1. CUSTOM THEME STYLES - NOTE: More custom styles may be in the VC editor settings - CA
----------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap');
/*Variable Font Ahead ...
  font-family: "Geist", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
END Variable Font Formatting*/

html {
  scroll-behavior: smooth;
}

body:not(.theme-preset-active) #page-sub-header h1 { /*This is a test to make sure the enqueued parent styles get overwritten. OKAY TO DELETE THIS. - CA*/
  line-height: 1.6;
  font-size: 4rem;
  color: #0ccc;
  margin: 0 0 1rem;
  border: 0;
  padding: 0;
}

p {
    margin-top: 0;
    margin-bottom: 0; /*requires extra return stops when typing but makes for MUCH improved typography in the WP editor environment where it likes to insert lots of span and p wrappers to separate elements. - CA*/
}

.entry-content a {
    color: rgba(51, 114, 91, 1.00);
    text-decoration: underline;
}

p, p a {
  font-family: "Geist", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

p strong, p a strong, p bold, p a bold, p b, p a b {
  font-family: "Geist", sans-serif;
  font-optical-sizing: auto;
  font-weight: 800;
  font-style: normal;
}

h1, h2, h3, h4, h5, h1 a, h2 a, h3 a, h4 a, h5 a {
  font-family: "Geist", sans-serif;
  font-optical-sizing: auto;
  font-weight: 800;
  font-style: normal;
}


h1 bold, h2 bold, h3 bold, h4 bold, h5 bold, h1 strong, h2 strong, h3 strong, h4 strong, h5 strong, h1 a strong, h2 a strong, h3 a strong, h4 a strong, h5 a strong, h1 a bold, h2 a bold, h3 a bold, h4 a bold, h5 a bold,h1 b, h2 b, h3 b, h4 b, h5 b, h1 a b, h2 a b, h3 a b, h4 a b, h5 a b{
  font-family: "Geist", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
}

h1.entry-title {
    font-size: 2rem;
    border-bottom: 3px solid rgba(51, 114, 91, 1);
}

a.vce-button {
    font-weight: 700 !important;
}

/*Header*/
ul#menu-preheader-menu {
    text-align: center;
    margin: 0.25rem auto;
    position: relative;
    display: inline-block;
    width: 100%;
}

#menu-preheader-menu li {
    display: inline-block;
	position: relative;
    margin: 0.15rem auto;
    text-align: center;
    padding: 0.25rem 0.5rem;
	border-right: 0.8px solid #fff;
}

#menu-preheader-menu li:last-child {
	border-right:none;
}

#menu-preheader-menu li a,
#menu-preheader-menu li a:hover {
    color:#fff;
	text-decoration: none;
}

#menu-preheader-menu li::after {
  content: '';
  position: absolute;
  width: 50%;
  transform: scaleX(0);
  height: 2px;
  bottom: 0;
  left: 25%;
  background-color: rgba(51,114,91,1.00);
  transform-origin: bottom center;
  transition: transform 0.25s ease-out;
}

#menu-preheader-menu li:hover {
  transform: scaleX(1);
  transform-origin: bottom center;
}

#menu-preheader-menu li:hover::after {
  transform: scaleX(1);
}

#menu-main-menu {
    background: rgba(231, 231, 231, 1.00);
    display: flex;
    border-radius: 55px;
    padding: 0.75rem 2.2rem;
}

.superheader-wrapper {
    background: rgba(0, 54, 86, 1.00);
    margin: 0;
    display: inline-block;
    position: relative;
    width: 100%;
    z-index: 1;
}

.navbar-brand img {
    max-width: 28rem;
    margin: 0.75rem 0 0.55rem;
}

.supercmyk {
    text-align: right;
    margin: 0 0 0 0;
    padding-right: 0;
	display: flex;
}

.supercmyk .secondary-menu-wrapper .textwidget.custom-html-widget {
    display: flex;
	min-height: 100%;
	justify-content: flex-end;
}

.cmyk-cyan {
	flex: 1;
	min-width:44px;
	min-height:100%;
    background: rgba(0, 174, 239, 1.00);
    margin: 0 0 0 0;
    padding: 0;
    position: relative;
}

.cmyk-magenta {
    flex:1;
    min-width: 44px;
    min-height: 100%;
    background: rgba(236, 0, 140, 1.00);
    margin: 0 0 0 0;
    padding: 0;
    position: relative;
}

.cmyk-yellow {
    flex:1;
    min-width: 44px;
    min-height: 100%;
    background: rgba(255, 242, 0, 1.00);
    margin: 0 0 0 0;
    padding: 0;
    position: relative;
}

.cmyk-black {
    flex:1;
    min-width: 44px;
    min-height: 100%;
    background: rgba(0, 0, 0, 1.00);
    margin: 0 0 0 0;
    padding: 0;
    position: relative;
}

body:not(.theme-preset-active) #masthead .navbar-nav > li > a, 
#masthead .navbar-nav > li > a {
    color: rgba(0,54,86,1.00);
    padding: 0.15rem 1.5rem;
    font-weight: bold;
    font-size: 1.15rem;
}

body:not(.theme-preset-active) #masthead .navbar-nav > li > a:hover, 
body:not(.theme-preset-active) #masthead .navbar-nav > li.current_page_item > a {
    color: rgba(0, 54, 86, 1.00);
    font-weight: 600;
    background: inherit;
}

.navbar-nav li {
    border-right: none;
}

.navbar-nav li:last-child,
.navbar-nav li:nth-last-child(2) { 
    border: none;
}

.nav-red-bg-button {
    background: #ed2124;
}

/*sub-menu patch for Engineering; add retroactively to Design-Build during Phase 2 - CA*/
.dropdown-menu { /*the whole shebang*/
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    float: left;
    min-width: 18.5rem;
    padding: .5rem 0 .5rem 1.25rem;
    margin: .125rem 0 0;
    font-size: 1.1rem;
    color: #ffffff;
    text-align: left;
    list-style: none;
    background-color: transparent;
    background-clip: padding-box;
    border: none;
    border-radius: 0;
}

.dropdown-menu li { /*the dropdown line*/
    background: #ed2124;
    margin: 0 0 0.5rem 0;
    color: #ffffff;
	border:none !important;
	text-shadow:none;
	box-shadow: 0 .2em .25em rgba(0, 0, 0, .5) !important;
}

.dropdown-menu .dropdown-item { /*the ahref element*/
	color: #fff;
	white-space: normal;
    background: transparent;
    line-height: 1.6;
	font-weight:bold;
}

/*END sub-menu patch*/

/*Footer Menu Patch - 01.09.2025 CA*/
.menu-footer-quick-links-container ul li a {
    font-weight: 500;
    font-family: "Kanit", sans-serif;
	font-style: normal;
    font-size: 1.4rem;
    line-height: 1rem;
}

.menu-footer-quick-links-container ul li ul li a {
    font-weight: 200;
    font-style: italic;
    margin: 0 0 0 1rem;
    line-height: 1.75rem;
}

.green-band {
    background: rgba(51, 114, 91, 1.00);
    padding: 2rem 0;
	margin: 0.75rem 0 0 0;
}

.green-band-col .vce-row-container {
    margin: 1.25rem 0 0 0;
}

.green-band-col #media_image-2 {
    padding: 0 0 1rem 0;
}

body:not(.theme-preset-active) footer#colophon {
    color: #fff;
    background-color: rgba(0, 54, 86, 1.00);
}

.site-footer h6 {
    color: #fff;
    border-bottom: 2px solid;
    font-weight: 700;
    font-size: 1.2rem;
    line-height: 1.3;
    margin: 3rem 0 0.75rem 0;
}

.site-footer .nav > li > a {
	text-decoration: underline;
}

.site-footer .nav > li > a:focus, 
.site-footer .nav > li > a:hover {
    background-color: rgba(51, 114, 91, 0);
    text-decoration: underline;
}

.site-footer .nav li ul {
	margin-left:1.5rem;
}

footer#colophon { /*Override the 85% default in Bootstrap parent - CA*/
    font-size: 95%;
}

.nav-link {
    display: block;
    padding: .15rem 0rem;
}

footer#colophon .green-band a {
    color: rgba(0, 54, 86, 1.00);
    font-weight: 800;
    font-size: 0.95rem;
}

footer#colophon .green-band a:hover,
footer#colophon .green-band a:active {
    color: rgba(255, 255, 255, 1.00);
    font-weight: 600;
    font-size: 1rem;
}

.footer-col-first {}

.footer-col-first a {
	text-decoration: underline;
}

.footer-col-first a:focus,
.footer-col-first a:hover {
	text-decoration: underline;
}

.footer-col-first p {
    display: inline-block;
    padding: 0 0 0.75rem 0.25rem;
}

.footer-col-second {}

.footer-col-third {}

.footer-col-third img {
	max-width: 200px !important;
}

.signoff-container {
	margin: 2rem 0 1rem 0;
}

.signoff-container img { /*hide the union seal from copycats - CA*/
    pointer-events: none;
}

.footer-bottom-wrapper .flex-column { /*little hack to get around the bootstrap defaults without modding out the function - CA*/
    flex-direction: row !important;
}

.sitemap-container div {
    display: inline-block;
    padding: 0 1rem 0 0;
}

.footer-bottom-wrapper li {
    border-right: 1px solid #fff;
    padding: 0 0.5rem;
}

.footer-bottom-wrapper li:last-child {
    border-right: none;
}

.signoff p {
    text-align: right;
}

/*END Footer Menu Patch*/

/*Services We Provide Page Menu Patch*/
.vce-basic-menu--style-underline--color-b-56-151-114 .vce-basic-menu nav>ul>li::before {
	content: '';
	position: absolute;
	width: 50%;
	transform: scaleX(0);
	height: 2px;
	bottom: 0;
	left: 25%;
	background-color: rgba(51,114,91,1.00);
	transform-origin: bottom center;
	transition: transform 0.25s ease-out;
}

.vce-basic-menu--style-underline--color-b-56-151-114 .vce-basic-menu nav>ul>li:hover:before {
	transform: scaleX(1);
	transform-origin: bottom center;
}

.vce-basic-menu--style-underline--color-b-56-151-114 .vce-basic-menu nav>ul>li:hover::before {
	transform: scaleX(1);
}

.vce-basic-menu-container .vce-basic-menu ul .menu-item a {
    text-decoration: none;
    text-transform: none !important;
    transition: color .2s ease-in-out;
}
/*END Services We Provide Page Menu Patch*/

header#masthead {
    margin-bottom: 0;
    background-color: transparent;
    box-shadow: none;
    padding: .74rem 1rem;
	position: relative;
    z-index: 1;
}

#masthead .border-patrol {
    border-bottom: none;
	padding:0;
}

.rounders {
	border-radius:16px;
}

.vce-sidebar-menu .vce-sidebar-menu-inner li.menu-item a:hover, 
.vce-sidebar-menu .vce-sidebar-menu-inner li.menu-item.current-menu-item>a {
    color: #fff !important;
}

.vce-sidebar-menu .vce-sidebar-menu-inner li.menu-item a:hover, 
.vce-sidebar-menu .vce-sidebar-menu-inner li.menu-item a:focus {
    color: #fff !important;
    font-weight: bold;
	text-decoration:none;
}

#content.site-content {
    padding-bottom: 0;
    padding-top: 4.125rem;
}

/*--------------------------------------------------------------
## 2. PLUGIN MODS
--------------------------------------------------------------*/
.vc_desktop article .entry-footer {
  display: none;
}

.vc_desktop #content.site-content {
  padding-bottom: 0;
  padding-top: 0;
}

.vc_desktop .entry-content {
  margin-top: 0;
}

.fa-solid {
    float: left;
    padding: 0 0.75rem 0 0;
    color: #008d9f;
    position: relative;
}

/*NINJA FORMS CUSTOM STYLING*/
.nf-form-content input, 
.nf-form-content textarea,
.nf-form-content select {
	border-radius: 30px;
	min-height: 3rem;
	padding: 2px 20px;
	border: 2px solid #cdcdcd
}

.nf-field-label .nf-label-span, 
.nf-field-label label {
	font-weight: 700;
	margin: 0 0 0 1rem;
	padding: 0;
}

.nf-field-description p:last-child { /*field descriptions*/
	margin: 0 0 0 1rem;
}

.field-wrap button, .field-wrap input[type=button], 
.field-wrap input[type=submit], 
.field-wrap>div input[type=checkbox] {
    width: auto;
    background: #32735b;
    color: #ffffff;
    padding: 1rem 3rem;
    border-radius: 30px;
    min-width: 16rem;
}

.btn-success:hover,
.field-wrap input[type=submit]:hover,
.btn-success:active,
.field-wrap input[type=submit]:active {
    color: #fff;
    background-color: #389772;
    border-color: #cdcdcd;
}


/*--------------------------------------------------------------
# 3. RESPONSIVE GOODIES
--------------------------------------------------------------*/
@media screen and (max-width: 767px) {
  #masthead .navbar-nav > li > a {
    padding-bottom: 0.938rem;
    padding-top: 0.938rem;
  }
	
	.bighead h2, .bighead h2 span {
	    font-size: 32px !important;
	}
	
	.footer h5, .footer h4, .footer h3, .footer h2, .footer h1, .footer p, .footer a, .footer span {
	    text-align: left !important;
	}
}

/*--------------------------------------------------------------
## Notebook
--------------------------------------------------------------*/
@media only screen and (max-width: 1280px) {
  html {
    font-size: 95%;
  }
	
	body:not(.theme-preset-active) #masthead .navbar-nav > li > a, 
	#masthead .navbar-nav > li > a {
	    color:rgba(0,54,86,1.00);
	    padding: 0.15rem 1.5rem;
	    font-weight: bold;
	    font-size: 1.1rem;
	}
}

@media screen and (max-width: 1199px) { /*sandwich menu break-point*/
	body:not(.theme-preset-active) #masthead .navbar-nav > li > a {
        color: #fff !important;
        padding: 0.65rem 0rem !important;
        font-weight: 700 !important;
        font-size: 2.5rem !important;
        text-align: center;
    }
	
	.navbar-brand img {
	    max-width: 22rem;
	    margin: 0.75rem 0 0.55rem 0;
	}
	
	#menu-main-menu {
    	background: #33725b;
    	display: flex;
    	border-radius: 20px;
	    padding: 0.75rem 1.2rem;
	}
	
  .navbar-dark .dropdown-item {
    color: #fff;
  }
  .navbar-nav .dropdown-menu {
    background: transparent;
    box-shadow: none;
    border: none;
  }
	
	.navbar-toggler-icon {
    	display: inline-block;
    	width: 1.75em;
    	height: 1.75em;
    	vertical-align: middle;
    	content: "";
    	background: no-repeat center center;
    	background-size: 100% 100%;
	}
	
	.navbar-toggler {
   		padding: 0.75rem .75rem;
   		font-size: 1.5rem;
    	line-height: 1;
    	background-color: transparent;
    	border: 0px solid transparent;
    	border-radius: 5.5rem;
	}
	
	.navbar-light .navbar-toggler {
        border-color: rgba(255, 255, 255, 1.00);
        border: 2px solid;
    }
	
	.navbar-light .navbar-toggler {
    	color: #fff;
    	border-color: #fff;
	}
	
	.navbar-light .navbar-brand {
    	color: #fff;
	}
	
	.navbar-light .navbar-toggler-icon {
	  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255, 0.85)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
	}

	.navbar-light .navbar-toggler {
  		border-color: rgba(255,255,255,1.00);
        background:rgba(0, 54, 86, 1.00);
    }
	
	body:not(.theme-preset-active) #masthead .navbar-nav > li > a {
    	color: #fff !important;
    	padding: 0.65rem 0rem !important;
    	font-weight: 300 !important;
    	font-size: 3.35rem !important;
	}
	
	header#masthead {
    	margin-bottom: 9rem;
    	background-color: #ffffff;
    	box-shadow: none;
    	padding: .74rem 1rem;
    	position: relative;
    	z-index: 1;
	}
	
	.navbar-nav li {
	    border-right: 0px;
	}
	
	.nav-blue-bg-button {
    	background: transparent;
	}
	
	/*button.navbar-toggler.collapsed::before {
	    display: block;
	    content: 'MENU';
	    float: left;
	    margin: 0.65rem 1.3rem 0 0;
	}*/
}
/*--------------------------------------------------------------
## Netbook
--------------------------------------------------------------*/
@media only screen and (max-width: 1024px) {
  html {
    font-size: 90%;
  }
}
/*--------------------------------------------------------------
## iPad
--------------------------------------------------------------*/
@media only screen and (max-width: 960px) {
  html {
    font-size: 85%;
  }
}
/*--------------------------------------------------------------
## iPad
--------------------------------------------------------------*/
@media only screen and (max-width: 768px) {
  html {
    font-size: 80%;
  }
}
/*--------------------------------------------------------------
## iPad
--------------------------------------------------------------*/
@media only screen and (max-width: 480px) {
  html {
    font-size: 75%;
  }
}

/*General patches and debugs for Bootstrap, the parent theme, and the child theme heirarchy - CA last-updated 12/30/24*/

body:not(.theme-preset-active) #masthead .navbar-nav > li > a:hover, body:not(.theme-preset-active) #masthead .navbar-nav > li.current_page_item > a {
    font-weight: bold; /*font-weight menu twitch bug on top-level menu items*/
}