/*
Theme Name: Nifty 2025
Template: twentytwentyone
Author: Nifty Development
Author URI: https://niftymarketing.com/
Description: A lightweight theme for use of our clients.
Version: 2.5.1
*/

:root{
	/*site colors*/
	--color-1: #1d5c2c;
	--color-2: #94c754;
	--color-3: #9E9D9D;
	--dark: #0c0c0c;
	--white: #EFEFEF;
	--gradient-start: #89b0da;

	/*font sizes*/
	--fsize-xl: clamp(48px, 9.5vw, 182px);
    --fsize-lg: clamp(40px, 7.6vw, 145px);
	--fsize-md-lg: clamp(40px, 5.6vw, 107px);
	--fsize-md: clamp(28px, 3.3vw, 62px);
	--fsize-sm: clamp(18px, 1.3vw, 26px);
	--fsize-default: clamp(16px, 1.05vw, 18px); /*ADA requires at least 16px*/

	/*font families*/
	--heading-font: "Oswald Variable", "System-Oswald-Match", sans-serif;
	--text-font: "Inter Variable", sans-serif;
}

/*Default Overall Styles*/
html, body{scroll-behavior: smooth; font-size: var(--fsize-default); font-variant-ligatures: none; overflow-anchor: none;background: var(--white);}
body{margin:0; -webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-rendering: optimizeLegibility;font-family: var(--text-font);line-height: 1.5em;}
*{box-sizing: border-box; -webkit-appearance: none;font-family:inherit; max-width: 100%;}
/* lazy loading flow fixes */
img{object-fit:contain;min-width:1px;height:auto;}
a{color: var(--color-1);text-decoration:none;transition: ease all .25s;}
nav a:hover {color: var(--color-2)}
nav a {padding: .8em 1.4em;color: var(--dark);font-family:var(--text-font);font-weight: 700;font-size: .9em;}
nav .current_page_item > a{color: var(--color-1);}
article a {text-underline-position: under;text-decoration-thickness: 2px;}
code, pre, kbd, samp {font-family: monospace;}

/*Font Defaults*/
h1, h2, h3, h4, h5, h6{font-family: var(--heading-font);margin-bottom:0;}
body, p, ul, ol, li{font-family: var(--text-font); line-height: 1.4em;}
h1{font-size:var(--fsize-xl);line-height: 1.05em;}
h2{font-size:var(--fsize-md-lg);line-height: 1;margin: 0;color: var(--dark);text-transform: uppercase;}
h3{font-size:var(--fsize-md);}
h4{font-size:var(--fsize-sm);}
h2 span{color: var(--color-1);}
p{font-weight: 600;margin-top: 0;}

/* buttons  */
.wp-block-button a { font-weight: 600; color: var(--white); text-decoration: none; text-transform: uppercase; padding: 4px; display: inline-flex; align-items: center; font-size: clamp(18px, 1.2vw, 24px); line-height: 1.8em; background: var(--color-1); font-family: var(--text-font); justify-content: center; gap: 0px; border-radius: 35px;letter-spacing: -.05vw; }
.wp-block-button a:hover{border-color: var(--color-1);background: var(--dark); color: white;}
.wp-block-button a:hover .icon{background: var(--color-1);}
.wp-block-button a:hover .icon svg{fill: var(--white);}
.wp-block-button a .text { padding-right: 19px; padding-left: 26px; }
.wp-block-button a .icon { background:white; border-radius: 50%; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; transition: background 0.3s ease; }
.wp-block-button a .icon svg {fill: var(--color-1); padding: 7px; width: 100%; height: auto; transition: fill 0.3s ease; }
.wp-block-button a .icon .phone-svg{stroke: var(--color-1);stroke-width: 0.4px; fill-rule: evenodd;}
.wp-block-button a:hover .icon .phone-svg{stroke: white;}

/*Layout*/
.section-padding{padding: 6% 0;position:relative;overflow:hidden;}
.content-width{width: 1800px; max-width: 94%; padding: 0; margin: 0 auto;position:relative; z-index:2;}
.are-vertically-aligned-bottom {align-items: end;}
.flex{display:flex;}
.wp-block-columns { gap: 8%; }
.wp-block-columns .wp-block-column{flex: 1 1 0%;}
.title-area p{margin-bottom: 0;}
.left-spacer { width: 15%; display: inline-flex; height: 20px; }
.right-title { color: #1e1e1e; text-transform: uppercase; font-weight: 700; letter-spacing: 0.15vw; font-size: 0.9em; display: inline-flex; width: 100%; justify-content: end; opacity: .6; }
.right-title.light{color: var(--white); opacity: .4;}
.right-title::before{content: "[";}
.right-title::after{content: "]";}
.nifty-span{color:var(--color-1);}

/* Search */
.nav-search-form { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(12, 12, 12, 0.95) 0%, rgba(29, 92, 44, 0.95) 100%); z-index: 9999; display: flex; justify-content: center; align-items: center; opacity: 0; visibility: hidden; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); backdrop-filter: blur(8px); }
.nav-search-icon { background: var(--dark); position: relative; left: 0; right: 0; top: 0; bottom: 0; margin: auto; padding: 0; width: 46px; height: 46px; display: flex; justify-content: center; align-items: center; border: solid 2px #e6e6e6; border-radius: 50%; -webkit-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer; }
.nav-search-icon svg { padding: 1px; }
.nav-search-form .search-wrapper { display: flex; width: 90%; max-width: 800px; position: relative; transform: translateY(20px); transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.nav-search-form .search-wrapper input { width: 100%; background: transparent; border: none; border-bottom: 3px solid var(--white); padding: 15px 0; font-size: clamp(24px, 4vw, 48px); color: var(--white); font-family: var(--heading-font); outline: none; }
.nav-search-form .search-wrapper input::placeholder { color: rgba(255, 255, 255, 0.5); }
.nav-search-form .search-submit { background: transparent; border: none; color: var(--white); font-weight: 700; text-transform: uppercase; font-size: 1.2em; cursor: pointer; padding: 0 20px; font-family: var(--heading-font); border-bottom: 3px solid var(--white); }
.search-close { position: absolute; top: 40px; right: 40px; color: var(--white); font-size: 50px; cursor: pointer; line-height: 1; transition: transform 0.3s ease; user-select: none; }
.search-close:hover { transform: rotate(90deg); }
.search-is-active { overflow: hidden; }
.search-is-active .nav-search-form { opacity: 1; visibility: visible; }
.search-is-active .nav-search-form .search-wrapper { transform: translateY(0); }
.search-input, .search-submit { -webkit-tap-highlight-color: transparent; }
.search-input:focus, .search-submit:focus { outline: none; box-shadow: none; }

/* ADA header */
.masthead{background: transparent; padding: 0px;}
.masthead ul{list-style: none;}
.skip-bar{position: absolute; display: block; width: 100%; text-align: center; height: 0; overflow: hidden; background:var(--white); color:var(--color-dark); font-weight:600; top: 0; left: 0; z-index: 10;}
.skip-bar:focus{height: auto; padding: 20px;}
.inner-masthead{justify-content: space-between; align-items: center;}
.logo-container { max-width: clamp(170px, 17vw, 320px); width: 100%;}
.masthead .logo-container svg{transition: max-width 0.3s ease;}
.masthead .logo-container svg path{ transition: fill 0.4s ease; }
.masthead .logo-container svg .top{fill: var(--dark);}
.masthead .logo-container svg .bottom{fill: var(--color-1);}

.masthead .logo-container a{display: flex;align-items: center;justify-content: center;}
.masthead .logo-container a svg{width: 100%; height: auto;}
.header-content{font-size: var(--fsize-sm);}
.mobile-nav-input{display: none;}
#menu-main{padding: 0; font-weight:600; text-transform: uppercase;}
/* .masthead ul .current-menu-ancestor > a:first-child{color:var(--color-2)} */
.menus{ justify-content: center;padding: 30px 0;position: relative;flex-wrap: wrap;transition: padding 0.3s ease;flex: 1;}
.header-call-box{ display: flex; align-items: center; justify-content: center;}
.header-call-box a{font-family: var(--heading-font);font-size: 1em;}
.header-call-box a .text{padding-right: 12px; padding-left: 16px;}
.header-call-box .wp-block-buttons{flex-direction:column; align-items:end; gap:4px;}
.header-call-box .wp-block-button a .icon {height:30px; width:30px;}
.header-call-box .wp-block-button a{letter-spacing:inherit; padding:2px 4px;}
#menu-main > li{font-size: var(--fsize-default);}
@media (min-width: 1651px){
	.wp-block-buttons:not(.top-nav-phone) .icon {width: 55px;height: 55px;}
	.wp-block-buttons:not(.top-nav-phone) .wp-block-button a .text {padding-right: 25px;padding-left: 30px;}
}
@media (min-width: 1201px){
	/* 	"FIXED" IS AN ANIMATEABLE CLASS FOR SMOOTH ANIMATION ON MASTHEAD */
	.masthead.fixed{position: fixed; left: 0; width: 100%; z-index: 1000; top: 0;}
	.masthead.fixed:before{content: ''; position: absolute; top: 0%; left: 0%; width: 100%; height: clamp(88px, 6.2vw, 118px); background: transparent; transition: ease .3s; z-index: -1;}
	.masthead.fixed.active:before{background-color: var(--white);box-shadow: rgba(0, 0, 0, 0.2) 0px 20px 20px -20px;}
	.masthead.active .logo-container img { width: 51%; }
	body.admin-bar .masthead {top: 32px;}
	.mobile-nav{display: none;}
	#menu-main{display: flex; margin: 0; flex-wrap: wrap; justify-content: flex-end;gap:0px;}
	#menu-main > li{position: relative; margin-bottom: 0!important;}
	.sub-menu{position: absolute; top: 100%; left: 0; background: var(--transluscent); backdrop-filter: blur(5px); height: 0; overflow: hidden; z-index: 1000; box-shadow: 0 2px 7px rgba(0,0,0,.4);background: white;}
	.sub-menu .sub-menu{left: 99%; top: 0;}
	#menu-main > li:hover > .sub-menu, .masthead #menu-main > li > a:focus + .sub-menu, .masthead #menu-main > li:focus-within > .sub-menu{height: auto; padding: 15px 0 15px 15px;border-radius: 8px; min-width: max-content; overflow: initial;border: 1px solid white;margin-top:5px;}
	#menu-main > li:hover > .sub-menu a{display: block;}
	.sub-menu > li{position: relative; padding-right: 15px;}
	.sub-menu > li:hover > .sub-menu, .sub-menu > li > a:focus + .sub-menu, .sub-menu > li:focus-within > .sub-menu{padding: 15px; width: initial; height: initial; min-width: 225px; border: 1px solid white;}
	.header-content { display: flex; flex-direction: row-reverse; align-items: center; gap: 15px; flex: 1;height: clamp(88px, 6.2vw, 118px);}
	nav.main-nav { border: solid 1px var(--dark); border-radius: 35px; padding: 18px 10px; }
	nav .current_page_item > a { color: var(--white); background: var(--color-1); border-radius: 35px; }
	.masthead.active.fixed .logo-container svg{max-width: 90%;}
}

@media(max-width: 1200px){
	.masthead .logo-container a{width: 100%;}
	.nav-search-icon { z-index: 5; left: 0; margin: auto; width: 48px;height: 48px; }
	.header-call-box{ position: absolute;z-index: 10;top:4px;}
	.masthead .header-content { align-items: end;display: flex; width: 100%; justify-content: end; padding-right: 70px; }
	nav a{display: block;}
	.section-padding{padding: 65px 0;}
	.masthead{position: relative;padding-bottom:5px;z-index: 9;}
	.header-call-box a{gap: 25px; padding-left: 35px; }
	.header-call-box .wp-block-buttons{flex-direction:unset;}
	.logo-container a { display: flex; }
	.menus{width: 100%;padding: 20px 0;position: absolute;width: 100%;top: 8px;display: flex;justify-content: end;z-index: 9;left:0;}
	.mobile-nav{position: absolute;display: flex;align-items: center;justify-content: center;top: 0;}
	.mobile-nav span.lines{ width: 46px; height: 46px;padding: 11px 5px; flex-direction: column; background: white; display: flex; position: relative; top: 0;color: var(--dark); right: 0;position: relative;border-radius: 50%;}
	.mobile-nav span.lines span{height: 4px; width: 80%; margin: auto;background: var(--dark);position: relative;}
	.main-nav{position: absolute; top: 100%; width: 100%; left: 0; background: white; box-shadow: 0 5px 10px rgba(0,0,0,.3); padding: 0 25px; height: 0; overflow: hidden; transition: padding .25s; z-index:1000;margin-top: 15px;}
	#mobile-nav-input:checked + * + .main-nav{height: auto; padding: 10px 25px; }
	#menu-main .sub-menu{display: none;}
	#menu-main li a{outline-color: var(--color-1);}
	#menu-main .sub-menu{display: none; transition:ease.3s; padding:0;}
	#menu-main .sub-menu.active{display: block; padding:0 15px;}
	#menu-main .sub-menu.active li{padding:5px 0;}
	.menu-item-has-children{position:relative;}
	.menu-arrow{content: ''; position: absolute; width: 14px; height: 14px; border-bottom: 4px solid var(--color-1); border-right: 4px solid var(--color-1); transform: rotate(45deg); top: 12px; right:5%;transition:ease .3s;}
	.menu-arrow:before {content: '';display: block;width: 45px;height: 45px;top: 50%;position: absolute;transform: translate(-45%, -45%);left: 50%;}
	.masthead .sub-menu.active + .menu-arrow{transform: rotate(225deg);top: 15px;}
	figure img{height:auto;}
	.wp-block-columns { gap: 0px; flex-direction: column; }
	.content-width{max-width: 90%;}
	.left-spacer{display: none;}
	.right-title{margin-bottom: 10px;}
}

@media(max-width: 700px){
	.inner-masthead{flex-direction: column-reverse;}
	.masthead .header-content{justify-content: space-between;padding-right: 0;}
	.header-call-box{top: 0; padding-top: 4px;padding-left: 0; width: 80%;transition: opacity 0.3s ease; opacity: 1;flex-direction: row-reverse; }
	.logo-container { width: 100%; max-width: 60%; justify-content: center; z-index: 9; display: flex; margin-top: 11px; }
	.wp-block-button a{width: 100%}
	.header-call-box{position: relative;width: 100%;justify-content: start;max-width: 92%;}
}
@media(max-width: 450px){
	.header-call-box .wp-block-buttons{flex-direction:column; align-items:start;}
}

/* Forms */
textarea {width:100%;height:150px;}
input[type=date], input[type=datetime-local], input[type=datetime], input[type=email], input[type=month], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], input[type=week], select, textarea {margin:0; padding:1em;width:100%;border:1px solid;}
input[type=submit], button {border:none;background:var(--color-1);padding:.5em 1em;cursor:pointer;font-size:inherit;}
.gfield_label {margin-top:1em;margin-bottom: .25em;font-weight: 600;display: flex;gap:0.25em;}
.gfield_required {font-size: .85em;color: #c02b0a;display: inline-block;text-transform: uppercase;font-weight: 400;}
.gfield_label_before_complex {display:none}
fieldset {border: none; margin: 0; padding: 0;}
.gchoice {display: flex;gap: 1em;align-items: center;margin:1em 0;cursor:pointer;width:fit-content;}
.gchoice input[type=checkbox] {appearance: none;color: var(--color-1);width: 1.5em; height: 1.5em;border: 2px solid;border-radius: 3px;display: flex;align-items: center;justify-content: center;transition: ease all .25s;cursor:inherit;}
.gchoice input[type=checkbox]::before {content: url("data:image/svg+xml,%3Csvg fill='%23FFF' xmlns='http://www.w3.org/2000/svg' viewBox='25 25 50 50'%3E%3Cpath d='m64 985.393-3.531 3.532-16.719 16.718-4.469-3.937-3.75-3.281-6.593 7.53 3.78 3.282 8 7 3.5 3.094 3.313-3.313 20-20 3.531-3.53L64 985.392z' overflow='visible' transform='translate(0 -952.362)'/%3E%3C/svg%3E");width: 100%;height: 100%;opacity: 0;transition: ease opacity .25s;}
.gchoice input[type=checkbox]:checked {background: var(--color-1);}
.gchoice input[type=checkbox]:checked::before {opacity: 1;}
label {user-select: none;cursor:inherit;}

/* Built In WP Classes */
figure {display:inline-block;margin:0;}
.aligncenter {display:block;margin: 0 auto; width:fit-content;}
.has-text-align-center {text-align:center;}
.has-text-align-right {text-align: right;}
.is-layout-flex{display:flex;}
.is-content-justification-center{justify-content:center;}
.is-content-justification-left{justify-content:flex-start;}
.is-content-justification-right{justify-content:flex-end;}
.are-vertically-aligned-center{align-items:center;}
/* DEFAULT CLASSES FOR ANIMATIONS */
.transition{transition:ease 1s;}
.fade-left{opacity:0; transform:translate(-100%, 0);}
.fade-right{opacity:0; transform:translate(100%, 0);}
.fade-up{opacity:0; transform:translate(0, 100%);}
.fade-down{opacity:0; transform:translate(0, -100%);}
.ghost-in{opacity:0;}
.transition.active{opacity:1; transform:none;transition:ease 1s;}