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

/*Theme Variables*/
:root {
	/* Site Colors*/
	--color-1: #92926b;
	--color-2: #23292a;
	--color-background: #fbf6ee;
	--color-text: #242a2b;
	--color-text-subtle: rgba(255, 255, 255, 0.75);

	/* Gradient-specific colors */
	--gradient-dark: #45363d;
	--gradient-light: #b4a1a2;
	--left-to-right-gradient: linear-gradient(90deg, var(--gradient-dark), var(--gradient-light));

	--color-error: #c02b0a;

	/* Font Sizes */
	--fsize-xxl: clamp(44px, 10.5vw, 200px);
	--fsize-xl: clamp(20px, 7.4vw, 124px);
    --fsize-lg: clamp(40px, 5.7vw, 108px);
	--fsize-md-lg: clamp(28px, 4vw, 66px);
	--fsize-md: clamp(18px, 2.2vw, 40px);
	--fsize-sm-md: clamp(18px, 1.7vw, 30px);
	--fsize-sm: clamp(17px, 1.2vw, 18px);
	--fsize-default: clamp(16px, 1vw, 18px);
	--fsize-xs: 16px;
	/* ADA requires at least 16px */

	/* Font Families*/
	--heading-font: "DM Serif Display", serif;
	--text-font: "Plus Jakarta Sans", sans-serif;

	--standard-padding:24px;

	--colorless-mask:url('/wp-content/uploads/colorless-mask.webp');
	--dark-mask:url('/wp-content/uploads/Mask.webp');
}

/* Default Overall Styles */
html, body{scroll-behavior:smooth; font-size:var(--fsize-default); font-variant-ligatures:none; overflow-anchor:none;}
body{background:var(--color-background); 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;}
a{color:var(--color-1); transition:ease all .25s;}
nav a:hover{color:var(--color-text);}
article a{text-decoration:dashed; text-decoration-line:underline; text-underline-offset:4px; text-decoration-thickness:1px;}
code, pre, kbd, samp{font-family:monospace;}

/* Font Defaults */
h1, h2, h3, h4, h5, h6{font-family:var(--heading-font); line-height:1.25em; margin-bottom:0.5em; color:var(--color-text);}
body, p, ul, ol, li{font-family:var(--text-font); line-height:1.4;}
h1{font-size:var(--fsize-xl); font-weight:normal; text-transform:uppercase; line-height:0.9; letter-spacing:-0.2vw;}
h2{font-size:var(--fsize-lg); letter-spacing:-0.2vw; line-height:1; font-weight:300; margin:0;}
h3{font-size:var(--fsize-md-lg); letter-spacing:0; line-height:0.9; font-weight:300; margin:0;}
h4{font-size:var(--fsize-sm);}
p{font-size:var(--fsize-sm); line-height:1.6; color:var(--color-text);}

/* Layout */
.section-padding{padding:5% 0;}
.content-width{width:1800px; max-width:90%; padding:0 15px; margin:0 auto;}
.flex{display:flex; flex-wrap:wrap;}
.slider-wrapper{max-width:2500px; margin:0 auto; overflow:hidden;}

/* ADA header */
.masthead{padding:15px 0; transition:.5s ease;}
.masthead.fixed.active{padding:8px 0;}
.masthead ul .menu-item a{color:var(--color-background); text-transform:uppercase; text-decoration: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;}
.logo-container svg{width:clamp(140px, 20vw, 390px); height:auto; transition:.5s ease;}
.masthead.fixed.active .logo-container svg{width: clamp(100px, 19vw, 390px);}
.mobile-nav-input{display:none;}
.main-nav{padding:0;}
.masthead ul .current-menu-item > a:first-child, .masthead ul .current-menu-ancestor > a:first-child{color:var(--color-1); transition:.5s ease; font-weight:800;}
.masthead.fixed.active ul .current-menu-item > a:first-child, .masthead.fixed.active .masthead ul .current-menu-ancestor > a:first-child{font-weight:600;}
.menus{justify-content:flex-end;}
.logo-container{width:12%;}
.header-content{display:flex; gap:40px; width:85%; justify-content:flex-end;}
.header-call-box{display:flex; align-items:center; justify-content:flex-end; margin:0; transition:.5s ease; border:var(--color-1) 2px solid; width:380px;}
.masthead.fixed.active .header-call-box{margin:0;}
.masthead ul.sub-menu .current-menu-item > a:first-child{color:var(--color-text);}

.header-call-box p{font-weight:800; letter-spacing:0.1vw;}
/* .header-call-box a{ font-weight:500; padding:2px 0;} */
.header-call-box p, .header-call-box a{font-size:var(--fsize-sm); color:var(--color-background);  text-transform:uppercase; margin:0; transition:.5s ease; line-height:1.6; text-align:center; letter-spacing:0.1vw; width:50%;}
.header-call-box a{background: var(--color-1); text-decoration: none; font-weight: 700; display: flex; height: 100%; align-items: center; padding:2px 5px; justify-content: center; }
.masthead .phone-number svg{width:25px; height:25px;}
.sub-menu > li{position:relative; padding:2px 0;}

.dark-section{background-color:var(--color-text); position:relative;}
.dark-section:before{position:absolute; top:0; z-index:0; content:''; width:100%; height:100%; background-color:var(--color-text); 
/* 	background-image:var(--colorless-mask);  */
	background-repeat:repeat;}
.dark-section:after{position:absolute; top:0; z-index:1; content:''; width:100%; height:100%; overflow:visible; aspect-ratio:1 / 1; left:0; background:radial-gradient(30vw at 50% 50%, transparent 20%, rgba(0, 0, 0, 0.5));}
.dark-section .title-block .wp-block-heading{color:var(--color-background);}
.dark-section p{color:var(--color-background);}
.dark-section .title-block p{color:var(--color-1);}
.green-section{background-color:var(--color-1); 
/* 	background-image:var(--colorless-mask);  */
	background-repeat:repeat;}
.grain-overlay{background-image:var(--colorless-mask); background-repeat:repeat;}
.dark-section.lazyload-bg-img:before,
.green-section.lazyload-bg-img{background-image:var(--colorless-mask);}

/* Title Block Styles */
.subtitle-title-block{position:relative; margin:8% 30% 8% auto;}
.subtitle-title-block:before{width:100%; position:absolute; content:""; height:2px; background:var(--color-1); bottom:18px; left:-108%; opacity:0.5;}
.title-block p{font-weight:800; letter-spacing:0.2vw; margin:0; text-transform:uppercase; color:var(--color-1);}
.title-block .wp-block-heading .nifty-span{font-style:italic; position:relative; left:-0.5vw;}
.title-block .wp-block-heading{margin:2% 0 4%;}
.subtitle-title-block p{margin:0; font-weight:600; color:var(--color-1);}
.subtitle-title-block a{font-weight:600; font-size:var(--fsize-sm);}
.subtitle-title-block .has-extra-large-font-size{color:var(--color-text); font-size:var(--fsize-md-lg); font-weight:normal; line-height:1; margin:0 0 1rem;}

/* Repeat Pattern */
.repeat-pattern{width:1800px; max-width:90%; margin:0 auto;}		
/* Left column */
.repeat-pattern .wp-block-columns .wp-block-column:first-of-type{width:50%;}
.repeat-pattern .title-block .wp-block-heading{width:80%;}
/* Right column */
.repeat-pattern .wp-block-columns .wp-block-column:last-of-type{width:47%; padding:3% 0 0;}
.repeat-pattern .wp-block-columns .wp-block-column:last-of-type p{text-align:justify; margin:0 0 1em; line-height:2;}

/* Button Styles */
.wp-block-button{display:flex; padding:0; text-align:center; position:relative; border:var(--color-1) 2px solid; background:transparent; width:max-content; height:max-content; margin:4px 0; cursor:pointer; transition:.5s ease;}
.wp-block-button__link{color:var(--color-background); letter-spacing:0.1vw; text-decoration:none; font-size:clamp(16px, 1.1vw, 18px); text-transform:uppercase; font-weight:700; margin:0.7rem auto; padding:0 3.6rem;}
.wp-block-button__link .nifty-span{color:var(--color-1); transition:.5s ease;}
.wp-block-button:after{content:''; width:100%; height:100%; position:absolute; left:0; bottom:0; z-index:-1; opacity:0; transition:ease 0.6s;}
.wp-block-button:hover{scale:1.02;}
.wp-block-button:hover:after{background:var(--color-1); opacity:1;}
.wp-block-button:hover .wp-block-button__link .nifty-span{color:var(--color-background);}

/* BG Image w/ Gradient */
.bg-img-image img{position:absolute; object-fit:cover; width:100%; height:100%; left:0; top:0; filter:grayscale(1); z-index:0;}
.gradient-bg{position:relative;}
.gradient-bg:before{position:absolute; content:''; width:100%; height:100%; top:0; left:0; background:linear-gradient(black, transparent), linear-gradient(164deg, transparent, black), linear-gradient(transparent 40%, black); z-index:1;}

/* 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:2px solid var(--color-1); background:transparent;}
button{border:none; background:var(--color-1); padding:.5em 1em; cursor:pointer; font-size:inherit;}
input[type=submit]{border:none; background:none; padding:0; cursor:pointer; font-size:var(--color-text); color:var(--color-text); font-weight:600; text-transform:uppercase;}
.gfield_label{margin-top:1em; margin-bottom:.25em; font-weight:600; display:flex; gap:0.25em;}
.gfield_required{font-size:.85em; color:var(--color-error); 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-vertical{flex-direction:column;}
.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;}

.mobile-only{width:0; height:0; overflow:hidden;}

@keyframes moveInFromLeft {
	from {transform:translateX(-200%); opacity:0;}
	to {transform:translateX(0%); opacity:1;}
}

/* Safari/WebKit keyframes */
@-webkit-keyframes moveInFromLeft {
  from { opacity:0; -webkit-transform:translateX(-200%); }
  to { opacity:1; -webkit-transform:translateX(0%); }
}

@media (min-width:1301px) {
	.main-nav ul{gap:4.3cqw;}
	.logo-container{width:15%;}
}

@media (min-width:1201px) {
	body.admin-bar .masthead{top:32px;}
	/* 	"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:var(--color-text); transition:ease .5s; z-index:-1;}
	.masthead.fixed.active:before{height:100%;}
	.mobile-nav{display:none;}
	.main-nav ul{list-style:none; display:flex; margin:0; gap:3.3cqw; padding:0;}
	.main-nav .main-menu > li{position:relative; margin-bottom:0 !important; padding:4px 0;}
	.sub-menu{position:absolute; top:100%; left:0; background:var(--color-1); backdrop-filter:blur(5px); height:0; overflow:hidden; z-index:1000; box-shadow:0 2px 7px rgba(0,0,0,.4);}
	.sub-menu > li:hover > a{color:var(--color-1);}
	.sub-menu .sub-menu{left:99%; top:0;}
	.masthead ul .menu-item:hover > a{color:var(--color-1);}
	.masthead ul .sub-menu .menu-item:hover > a{color:var(--color-text);}
	.masthead.fixed.active ul .menu-item:hover > a{color:var(--color-1);}
	.masthead.fixed.active ul.sub-menu .menu-item:hover > a{color:var(--color-text);}
	.main-nav .main-menu > li:hover > .sub-menu, .masthead .main-nav .main-menu > li > a:focus + .sub-menu, .masthead .main-nav .main-menu > li:focus-within > .sub-menu{height:auto; padding:15px; min-width:225px; overflow:initial; border:1px solid var(--color-text); flex-direction:column; gap:0;}
	.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;}
	.main-nav .main-menu > li:nth-last-child(-n + 3) .sub-menu{left:unset; right:0;}
}

@media(max-width: 1400px) {
	.header-call-box{width:auto; min-width:285px;}
	.header-call-box p, .header-call-box a{line-height:1; width:initial;}
	.header-call-box p{font-size:var(--fsize-xs); margin:0 auto;}
	.header-call-box a{font-weight:600; padding:8px 12px;}
}
@media(max-width: 1200px) {
/* 	.header-call-box p, .header-call-box a{line-height:1; padding:8px 0; width:initial;}
	.header-call-box p{font-size:var(--fsize-xs); margin:0 auto;}
	.header-call-box a{font-weight:600; padding:8px 4px;} */
	
	.masthead{position:absolute; z-index:10;}
	.masthead .header-content{width:100%; display:flex; flex-direction:column-reverse; align-items:end; gap:12px;}
	.masthead .logo-container{position:absolute; top:var(--standard-padding);}
	.masthead ul .menu-item a{color:var(--color-text);}
	.header-call-box p, .header-call-box a{font-size:var(--fsize-sm);}
	.menus{width:20%;}
	.mobile-nav{font-size:34px; transform:scaleX(1.75); color:var(--color-background);}
	.main-nav{position:absolute; top:100%; width:100%; left:0; background:var(--color-background); box-shadow:0 5px 10px rgba(0,0,0,.3); padding:0 25px; height:0; overflow:hidden; transition:padding .25s; z-index:1000;}
	.main-menu{list-style:none;}
	.logo-container{width:unset;}
	#mobile-nav-input:checked + * + .main-nav{height:auto; padding:10px 25px;}
	.main-nav .sub-menu{display:none; list-style:none;}
	.main-nav li a{outline-color:var(--color-1);}
	.main-nav li:hover > a{ color:var(--color-1);}
	.main-nav .main-menu > li{padding:4px 0;}
	.main-nav .sub-menu{display:none; transition:ease.3s; padding:0;}
	.main-nav .sub-menu.active{display:block; padding:4px 15px;}
	.main-nav .sub-menu.active li{padding:5px 0;}
	.menu-item a{color:var(--color-text);}
	.menu-item-has-children{position:relative;}
	.menu-arrow{content:''; position:absolute; width:10px; height:10px; border-bottom:2px solid var(--color-1); border-right:2px solid var(--color-1); transform:rotate(45deg); top:7px; right:5%; transition:ease .3s;}
	.masthead .sub-menu.active + .menu-arrow{transform:rotate(225deg);}
	figure img{height:auto;}
	.repeat-pattern .wp-block-columns .wp-block-column:last-of-type{padding:4% 0 0;}
}
@media(max-width: 1000px) {
	.subtitle-title-block{margin:8% 0 8% auto;}
	.subtitle-title-block:before{width:250%; left:-260%;}
	/* Repeat Pattern */
	/* Left column */
	.repeat-pattern .wp-block-columns{flex-wrap:wrap;}
	.repeat-pattern .wp-block-columns .wp-block-column:first-of-type{width:100%;}
	.repeat-pattern .title-block .wp-block-heading{width:80%;}
	/* Right column */
	.repeat-pattern .wp-block-columns .wp-block-column:last-of-type{width:100%;}

	.hide-on-mobile{width:0; height:0; overflow:hidden;}
	.mobile-only{width:auto; height:auto;}
}

@media(max-width: 750px) {
	.section-padding{padding:10% 0;}
	.content-width{padding:0;}
	.header-call-box{flex-wrap:wrap; justify-content:space-between; margin:0; gap:4px 8px; align-items:baseline; width:268px;}
/* 	.header-call-box p, .header-call-box a{line-height:1; padding:8px 0; width:initial;}
	.header-call-box p{font-size:var(--fsize-xs); margin:0 auto;}
	.header-call-box a{font-weight:600; padding:8px 4px;} */
}
@media(max-width: 450px) {
	.masthead .logo-container{top:unset; bottom:12px;}
	h1{font-weight:600;}
	p{line-height:1.4;}
	.wp-block-button{padding:1rem;}
	.wp-block-button__link{padding:0;}
}