/*
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
*/

/*Theme Variables*/

:root{
	/*site colors*/
	--color-1: #ffe170;
	--color-2: #0a3846;
	--color-3: #ccae72;
	--gradient-start:#cdb174;
	--gradient-end:#f1f2b0;

	/*font sizes*/
	--fsize-xl: clamp(40px, 4vw, 75px);
    --fsize-lg: clamp(38px, 5.7vw, 90px);
	--fsize-md: clamp(34px, 3vw, 60px);
	--fsize-sm: clamp(20px, 1.6vw, 30px);
	--fsize-default: clamp(16px, 1.2vw, 20px); /*ADA requires at least 16px*/

	/*font families*/
	--heading-font: "Playfair Display Variable", sans-serif;
	--text-font: "Poppins", sans-serif;
}

/*Default Overall Styles*/
html, body{scroll-behavior: smooth; font-size: var(--fsize-default); font-variant-ligatures: none; overflow-anchor: none;}
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-1)}
nav a {padding: .25em .5em;color: white;}
article a {text-decoration: underline;text-underline-position: under;text-decoration-thickness: 2px;}
article {overflow: hidden;}
code, pre, kbd, samp {font-family: monospace;}

/*Font Defaults*/
h1, h2, h3, h4, h5, h6{font-family: var(--heading-font);margin-bottom:0.5em; color: black;}
body, p, ul, ol, li{font-family: var(--text-font); line-height: 1.4em; color: black;}
p {margin-block-start: 1.4em;margin-block-end: 1.4em;}
h1{font-size:var(--fsize-xl);line-height: 1.05em;}
h2{font-size:var(--fsize-lg);line-height: 1em;margin-bottom:0px;font-weight:500; margin-bottom: 45px;line-height: 0.9;letter-spacing: -.1vw;}
h3{font-size:var(--fsize-md);}
h4{font-size:var(--fsize-sm);}
h2 span{color: var(--color-1);}
.nifty-span { display: inline-block; background: linear-gradient(to top, var(--gradient-start) 10%, var(--gradient-end) 90%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-size: 100% auto; background-repeat: repeat-x; }
.justify{text-align: justify;}

/* buttons  */
.wp-element-button { text-decoration: none; text-transform: uppercase; font-weight: 500; background: var(--color-2); padding: 12px 25px; border: solid 2px var(--color-1); border-radius: 4px; display: inline-flex; justify-content: center;align-items: center;text-align: center;transition: background ease 0.3s;}
.wp-element-button:hover{color: var(--color-2); background: var(--color-1); border-color: var(--color-1); font-weight: 600; letter-spacing: -0.1px;}

/*Layout*/
.section-padding{padding: 6% 0;position:relative;overflow:hidden;}
.content-width{width: 1800px; max-width: 90%; padding: 0; margin: 0 auto;position:relative; z-index:2;}
.flex{display: flex; flex-wrap: wrap;}
.masthead.fixed { background: transparent; transition: background 0.3s ease; }
.masthead.fixed.active { background: black; }
/* .masthead.fixed.active .logo-s0 { fill: #ffffff !important; } */
.masthead.active nav a { color: white; }
.wp-block-column{flex: 1;}
.has-extra-small-font-size { color: var(--color-2);text-transform: uppercase; letter-spacing: 8px; font-size: 1.2em; font-weight: 500;display: flex;align-items: center; line-height:1;margin-bottom:15px;}
.has-extra-small-font-size svg{max-width: 34px; height: auto; margin-right: 18px;position: relative;top: -2px;}
/* list items */
.entry-content ul.wp-block-list { list-style-type: none; padding-left: 40px; }
.entry-content ul.wp-block-list li:before { content: ''; display: block; left: -18px; background: linear-gradient(to top, var(--gradient-start) 0%, var(--gradient-end) 100%); height: 9px; width: 9px; position: absolute; top: clamp(8px, 0.6vw, 12px); border-radius: 50%; }
.entry-content ol.wp-block-list li,
.entry-content ul.wp-block-list li { position: relative; margin-bottom: 22px; }
.entry-content ol.wp-block-list li::marker { color: var(--color-2); font-weight: bold; }
.entry-content ol.wp-block-list li { margin-bottom: 12px; }
.entry-content ul.wp-block-list.short li{margin-bottom: 5px;}

/* ADA header */
.masthead{background: var(--accent-bg); padding: 15px 0px;}
.masthead ul{list-style: none;}
.skip-bar{position: absolute; display: block; width: 100%; text-align: center; height: 0; overflow: hidden; background:white; color:black; 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;}
.masthead .logo-container svg .a { transition: fill 0.4s ease; }
.masthead.active.fixed .logo-container svg .a{fill: white}
.logo-container img { min-width: 100px; }

.mobile-nav-input{display: none;}
#menu-main{padding: 0; font-weight:500; text-transform: inherit;}
.menus{ justify-content: flex-end;padding: .5em;}
.header-call-box .wp-block-button a {font-weight: 800;padding: 6px 20px;min-width: 240px;font-size: clamp(.9em, 1.1vw, 18px);}
.header-call-box .wp-block-button.solid a::before { background: linear-gradient(to right, var(--gradient-end), var(--gradient-start)); opacity: 1;}
.header-call-box .wp-block-button.solid a:hover::before { opacity: 1;}
.header-call-box svg{fill: var(--color-1);}
.header-call-box { display: flex; justify-content: end; }
.header-call-box a.header-phone { font-size: 1.45em; font-weight: 600; display: flex; align-items: center; gap: 7px;white-space: nowrap;letter-spacing: -0.05vw;}
.header-call-box a.header-phone svg {max-width: 22px;position: relative;top: -1px;}
#menu-main > li .sub-menu a{padding:.25em .5em .25em 0;display:block;}

@media (min-width: 1001px){
	/* 	"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: 0; background: transparent; transition: ease .5s; z-index: -1;}
		.masthead.fixed.active:before{height:100%;}
		body.admin-bar .masthead {top: 32px;}
		.mobile-nav{display: none;}
		#menu-main{display: flex; margin: 0; justify-content: flex-end;gap:1em;white-space: nowrap;}
		#menu-main > li{position: relative; margin-bottom: 0!important;}
		.sub-menu{position: absolute; top: 100%; left: 0; backdrop-filter: blur(5px); height: 0; overflow: hidden; z-index: 1000; box-shadow: 0 2px 7px rgba(0,0,0,.4);background: white;font-size:.9em;}
		.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; width: 225px; min-width:max-content; overflow: initial;border: 1px solid white;}
		.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;}
		/* .logo-container { flex: 1; } */
		.header-call-box, .logo-container { width: 400px; }
		.logo-container a { max-width: 35%; height: 80px; display: block; }
		.header-content { display: flex; flex: 1; flex-direction: column; align-items: center; gap: 9px; }
		.menus {font-size: clamp(16px, 1.1vw, 20px); flex-direction: column; align-items: center; gap: 15px;}
		.inner-masthead{gap: 25px;align-items: center;flex-wrap: nowrap;}
		.logo-container svg { width: 280px; height: auto; position: relative; top: 10px; }
}

@media(max-width: 1000px){
	:root{
		--fsize-default: 17px;
	}
	.masthead.fixed.active{background: transparent;}
    .logo-container svg { min-width: 260px; height: auto; width: 45vw; }
	.inner-masthead{flex-direction: row;align-items: start;flex-wrap: nowrap;gap: 5%;}
	nav a{display: block;color: black;}
	.logo-container{width: 100%;display: flex;justify-content: center;max-width: 120px;}
	.section-padding{padding: 65px 0;}
	.masthead{position: absolute; width: 100%; background: transparent;padding-bottom:5px;z-index:9;}
    .masthead .header-content { display: flex; align-items: center; width: 100%; justify-content:center; position: relative;z-index: 9; padding-bottom:0px;flex-wrap:wrap;order: 1;}
	.menus{width: 100%;padding: 0;position:relative;}
	.mobile-nav { font-size: 45px; transform: scaleX(1.7); outline-color: var(--color-1); display: flex; position: absolute; top: 20px; right: 20px;color: var(--color-1); }
	.main-nav{position: absolute; top: 70px; 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;}
	#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: 5px; right:5%;transition:ease .3s;}
	.menu-arrow:before {content: '';display: block;width: 40px;height: 40px;top: 50%;position: absolute;transform: translate(-45%, -45%);left: 50%;}
	.masthead .sub-menu.active + .menu-arrow{transform: rotate(225deg);top: 10px;}
	figure img{height:auto;}
	.has-extra-small-font-size {font-size: 1em; letter-spacing: 2px;}
	.wp-block-button.btn-arrow .wp-element-button svg{margin-left: 5%;}
	.header-call-box{position: relative; top: 26px;justify-content: start;}
	.header-call-box a.header-phone { font-size: 1.3em; }
	
}

@media(max-width: 600px){
	.logo-container img{position: relative;top: 40px;}
	.masthead .header-content { flex-direction:column;align-content:center;}
	.header-call-box { min-width: 100%; padding-left: 10px;}
	.header-call-box .wp-block-button a{min-width: 105%;padding: 6px 8px;}
	.header-call-box .wp-block-button { flex: 1; white-space: nowrap;}
	.inner-masthead{flex-direction: column-reverse;align-items: center;}
	    .header-call-box a.header-phone {
        font-size: clamp(16px, 7.5vw, 50px);
    }
	.header-call-box a.header-phone svg{max-width: 9%;}

}
/* @media(max-width: 400px){
		.header-call-box .wp-block-button a{font-size: .8em;}
} */

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