/*
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: #141979;
    --color-2: #EBE4DB;
    --color-background: #f8f6f6;
    --color-text: #1A1A1A;
    --alt-text-color: rgba(20, 25, 121, 0.7);
    --color-text-subtle: rgba(255, 255, 255, 0.8);
    --secondary-color-text: white;
    --star-color: #c89e4d;
    --color-3: #D9D9D9;
	/* Gradient-specific colors */
	--gradient-dark: var(--color-1);
	--gradient-light: var(--color-1);
	--left-to-right-gradient: linear-gradient(90deg, var(--color-1), var(--color-1));
	--color-error: #c02b0a;
	/* #F8F6F6 - light peach */
	/* #D9D9D9 - grey */
	/* #EBE4DB - cream*/

	/* Font Sizes */
	--fsize-xxl: clamp(28px, 4.9vw, 94px);
	--fsize-xl: clamp(50px, 7.6vw, 140px);
    --fsize-lg: clamp(32px, 5.3vw, 102px);
	--fsize-sm-lg: clamp(30px, 4vw, 75px);
	--fsize-md-lg: clamp(28px, 3.1vw, 60px);
	--fsize-md: clamp(20px, 2.1vw, 36px);
	--fsize-sm-md: clamp(18px, 1.5vw, 30px);
	--fsize-sm: clamp(18px, 1.3vw, 22px);
	--fsize-default: clamp(16px, 1vw, 18px);
	--fsize-xs: 16px;
	
	
/* 	Font weights */
	--giant-bold: 900;	
	--extra-bold: 800;
	--bolder: 700;
	--bold:600;
	--regular: 400;
	--thin: 200;
	
/* 	Line Heights */
	--xtr-line-height:2;
	--lrg-line-height:1.7;
	--md-line-height:1.4;
	--sml-line-height:1.1;
	
	/* 	Letter Spacing */
	--l-space-4:4px;
	--l-space-3:3px;
	--l-space-2:2px;
	--l-space-1:1px;
	
	/* ADA requires at least 16px */

	/* Font Families*/
	--heading-font: "Playfair Display", sans-serif;
	--text-font: "Montserrat", sans-serif;
}

/* 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;position:relative;}
*{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); text-decoration:none; transition:ease all .25s;}
nav a:hover{color:var(--color-text);}
article a{text-decoration:none; text-underline-position:under; text-decoration-thickness:2px; font-weight:var(--bold);}
article a:hover{color:var(--star-color);}
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-1); font-weight:500;}
body, p, ul, ol, li{font-family:var(--text-font); line-height:1.4;}
h1{font-size:var(--fsize-xxl); text-transform:uppercase; line-height:1;}
h2{font-size:var(--fsize-xl); line-height:1.1; margin:0;} 
h3{font-size:var(--fsize-sm-lg);}
h4{font-size:var(--fsize-md);}
p{font-size:var(--fsize-sm); 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;}
.has-background-color{color:var(--color-background);}
.has-text-color{color:var(--color-text);}

/* WORDPRESS FONTSIZE DROPDOWNS */
.has-extra-small-font-size{font-size:var(--fsize-xs);}
.has-small-font-size{font-size:var(--fsize-sm);}
.has-large-font-size{font-size:var(--fsize-md);}
.has-extra-large-font-size{font-size:var(--fsize-md-lg)}
.has-huge-font-size{font-size:var(--fsize-lg);}
.has-gigantic-font-size{font-size:var(--fsize-xl);}



/* ADA header */
.masthead{padding:0px 0 15px; transition:.5s ease;}
.masthead.fixed.active{padding:8px 0;}
.masthead ul .menu-item a{color:var(--color-text);}
.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:170px; height:auto; transition:.5s ease;}
.masthead.fixed.active .logo-container svg{width:160px;}
.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); text-shadow: 0 0 1px var(--color-text); transition:.5s ease;}
.masthead.fixed.active ul .current-menu-item > a:first-child, .masthead.fixed.active .masthead ul .current-menu-ancestor > a:first-child{color:var(--color-text); font-weight:600;}
.menus{justify-content:flex-end;}
.header-call-box{display:flex; align-items:center; justify-content:flex-end; gap:15px; margin:0px 0 8px; transition:.5s ease;}
.masthead.fixed.active .header-call-box{margin:0;}
.masthead.active .wp-block-button.phone{border:2px solid black;}
.header-call-box p, .header-call-box a{text-transform:uppercase; font-weight:500; margin:0; transition:.5s ease;}
.header-call-box .is-style-outline a{font-weight:var(--bold);}


.masthead.fixed.active .header-call-box p, .masthead.fixed.active .header-call-box a{line-height:1.4;}
.header-phone-number svg{width:25px; height:25px;}
.sub-menu > li{position:relative; padding:2px 0;}

.header-call-box .wp-block-button{padding:15px;}

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

/* Button Styles */
.wp-block-button{background:var(--left-to-right-gradient); width:max-content; padding:1rem 3rem; height:max-content; cursor:pointer; transition:.5s ease; text-align:center;}
.wp-block-button__link{color:var(--color-background); text-decoration:none; font-size:clamp(16px, 1.1vw, 18px); text-transform:uppercase; font-weight:600;}
.wp-block-button.is-style-outline{background:unset; border:2px solid var(--star-color);}
.wp-block-button.is-style-outline .wp-block-button__link{color:var(--star-color);}
.wp-block-button.is-style-outline:hover .wp-block-button__link{filter:drop-shadow(2px 1px 6px var(--star-color));}
.wp-block-button:hover{filter:brightness(0.9) contrast(1.3); scale:1.02;}
.wp-block-button:hover .wp-block-button__link{filter:drop-shadow(2px 1px 6px var(--color-text));}

/* 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; opacity:0.5;}
.gradient-bg{position:relative;}
.gradient-bg:before{position:absolute; content:''; width:100%; height:100%; top:0; left:0; background:linear-gradient(var(--color-background), transparent), linear-gradient(164deg, transparent, var(--color-background)), linear-gradient(transparent 40%, var(--color-background)); 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:1px solid;}
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-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;}
.main-nav ul{list-style:none;}

#header-slider .header-slider-item .slide-text{color:var(--color-background); font-size:var(--fsize-sm);}
#home-banner-slider .home-banner-slider-item .slide-text{color:var(--color-background);}
/* #home-banner-slider .word-slider-spacer svg{fill:var(--color-1);} */

@media (min-width:1201px) {
	/* 	"FIXED" IS AN ANIMATEABLE CLASS FOR SMOOTH ANIMATION ON MASTHEAD */
	.masthead.fixed{position:relative; left:0; width:100%; z-index:1000; top:0; overflow-x:clip;}
	.masthead.active ul .current-menu-item > a:first-child, .masthead.active ul .current-menu-ancestor > a:first-child{color:var(--color-text); text-shadow:0 0 1px var(--color-text);}
	.masthead .inner-masthead:before{content:''; position:absolute; top:0%; left:-25%; width:200%; height:0; background:var(--color-2); transition:ease .5s; z-index:-1; box-shadow:0 0 11px rgba(0,0,0,.5);}
	.masthead.fixed.active .inner-masthead:before{height:100%;}
	.masthead.fixed.active .inner-masthead{position:fixed; left:5%; top:0;}
	.masthead .inner-masthead{padding: 15px 0}
	.header-slider{background:var(--color-1);}
	.mobile-nav{display:none;}
	.main-nav ul{list-style:none; display:flex; margin:0; gap:clamp(10px, 1.3vw, 26px); padding:0;}
	.main-nav .main-menu > li{position:relative; margin-bottom:0 !important; padding:4px 0; text-transform:uppercase;}
	.sub-menu{position:absolute; top:100%; left:0; background:var(--color-background); 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; flex-direction:column; gap:4px;}
	.sub-menu > li:hover > .sub-menu{border:1px solid var(--color-text);}
	.masthead ul .menu-item:hover > a{color:var(--color-text); text-shadow: 0 0 1px var(--color-text);}
	.masthead.fixed.active ul .menu-item:hover > a{color:var(--color-text); text-shadow:0 0 1px 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,
	.main-nav .main-menu > li:hover > .sub-menu > li:hover > .sub-menu{height:auto; padding:15px; min-width:225px; overflow:initial; flex-direction:column; gap:0; border:1px solid var(--color-text);}
	.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;}
	.main-nav .main-menu > li:nth-last-child(-n + 3) > .sub-menu > li:hover > .sub-menu,
	.main-nav .main-menu > li:nth-last-child(-n + 3) > .sub-menu > li:hover > .sub-menu > li:hover > .sub-menu{left:unset; right:100%;}
	.main-nav .main-menu > li:has(.sub-menu){padding:4px 8px 4px 0;}
	.main-nav .menu-arrow{position:relative; content:''; width:10px; height:10px; border-bottom:1.5px solid var(--color-1); border-right:1.5px solid var(--color-1); transform:rotate(45deg); top:-4px; right:-4px; display:inline-block;}
}

@media(max-width: 1200px) {
	#menu-main-menu{list-style:none;}
	.masthead{position:relative;}
	.masthead .header-content{width:100%; display:flex; flex-direction:column; align-items:end;}
	.masthead .logo-container{position:absolute; bottom:0px;}
	.header-call-box p, .header-call-box a{font-size:var(--fsize-sm);}
	.header-call-box{margin:0 auto 25px;}
	.menus{width:20%;}
	.mobile-nav{font-size:34px; transform:scaleX(1.75); color:var(--color-text);}
	.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;}
	#mobile-nav-input:checked + * + .main-nav{height:auto; padding:10px 25px;}
	.main-nav .sub-menu{display: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:2px; right:5%; transition:ease .3s;}
	.masthead .sub-menu.active + .menu-arrow{transform:rotate(225deg);}
	figure img{height:auto;}
}

@media(max-width: 750px) {
	.logo-container svg,
	.masthead.fixed.active .logo-container svg{width:100px;}
	.content-width{padding:0;}
	.header-call-box{flex-wrap:wrap; justify-content:space-between; margin:8px auto 8px; gap:4px 8px; align-items:baseline;}
	.header-call-box p, .header-call-box a{line-height:1;}
	.header-call-box p{font-size:var(--fsize-xs); }
	.header-call-box a{font-weight:600; display: flex; justify-content: center;}
}
@media(max-width: 450px) {
	.masthead.fixed.active .logo-container svg,
	.logo-container svg{width:140px;}
	.menus{margin:10px 6px 26px 0;}
	h1{font-weight:600;}
	p{line-height:1.4;}
	.wp-block-button{padding:1rem; width:90%; text-align:center;}
	.inner-masthead{position:relative;}
	.header-call-box .wp-block-buttons{width:100%;}
	.header-call-box .wp-block-button{width:100%;}
	.mobile-only{width:auto; height:auto;}
	.desktop-only{width:0; height:0; overflow:hidden;}
}