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

/*Theme Variables*/
:root{
	/*site colors*/

	--charcoal: #545454;
	--cyan: #439288;
	--coral: #f2a57d;
	--gray: rgba(0,0,0,0.5);
	--white: white;
	--black: black;
	--subtle-white: rgba(255,255,255,0.25);
	--subtle-black: rgba(0,0,0,0.25);
	--accent-bg: var(--charcoal);
	--accent-hover: var(--coral);
	--light: rgba(255,255,255,0.6);
	--color-1: var(--cyan);
	--color-2: var(--charcoal);
	--color-3: var(--black);
	--color-4: var(--black);

	/*font sizes*/
	--fsize-xl: 55px;
	--fsize-lg: 40px;
	--fsize-md: 30px;
	--fsize-sm: 20px;
	--fsize-default: 18px; /*ADA requires at least 16px*/
	--fsize: clamp(16px, 1.1vw, 20px);
	--fsize-l:clamp(18px, 1.2vw, 26px);
	/*font families*/
	--heading-font: "Cormorant Garamond", serif;
	--text-font: "Poppins", sans-serif;
}
@media(max-width: 1000px){
	:root{
		/*font sizes*/
		--fsize-xl: 40px;
		--fsize-lg: 30px;
		--fsize-md: 20px;
		--fsize-sm: 18px;
	}
}
@media(max-width: 750px){
	:root{
		/*font sizes*/
		--fsize-xl: 35px;
		--fsize-lg: 25px;
		--fsize-md: 20px;
		--fsize-sm: 18px;
	}
}


/*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;}
a{color: var(--white);text-decoration:none;transition: ease all .25s;}
nav a:hover {color: var(--accent-hover)}
nav a {padding: .25em .5em;text-transform: uppercase;font-weight: 500;}
article a {text-decoration: underline;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); line-height: 1.25em;margin-bottom:0.5em;}
body, p, ul, ol, li{font-family: var(--text-font); line-height: 1.5em;color: var(--black);}
h1{font-size:var(--fsize-xl);}
h2 { text-transform: uppercase; margin: 0; font-size: clamp(40px, 6.9vw, 135px); color: var(--color-4);line-height: .9;font-weight:500; }
h3{font-size:var(--fsize-md);}
h4{font-size:var(--fsize-sm);}
p{font-size: clamp(16px, 1.1vw, 20px);margin:0 0 36px;}

/*Layout*/
.section-padding{padding: 5% 0;}
.content-width{width: 1800px; max-width: 95%; padding: 0 15px; margin: 0 auto;}
.inline-width{margin: 0 auto; width: 95%;}
.flex{display: flex; flex-wrap: wrap;}
.call-us a, .call-us{color: var(--coral);font-weight: 500;}
.call-us { margin-left: auto; gap:10px;justify-content: flex-end; display: flex;font-size: 20px;}
.call-us a{font-weight: 700;padding: 0;font-size: 1.4em;}
.masthead .menus {justify-content: flex-end;margin-left: auto; font-size: 18px;}
.spacer { height: clamp(70px, 8vw, 160px); }
.spacer.large { height: clamp(125px, 10vw, 200px); }
/* ADA header */
.masthead{position: relative;}
.masthead.active{background: rgb(84 84 84 / 90%); box-shadow: 0 0 6px var(--gray);}
.masthead ul{list-style: none;padding: 0;margin: 0;display: flex;gap:15px;}
.skip-bar{position: absolute; display: block; width: 100%; text-align: center; height: 0; overflow: hidden; background: var(--accent-bg); top: 0; left: 0; z-index: 10;}
.skip-bar:focus{height: auto; padding: 20px;}
.inner-masthead{justify-content: space-between;}
.logo-container{max-width: 270px; position: relative; padding-top:8px;}
.menus{width: 100%; justify-content: flex-end;}
.mobile-nav-input{display: none;}

/* Buttons */
.wp-block-button { display: inline-flex; align-items: center;text-transform: uppercase; }
.shadow .wp-element-button{box-shadow: 0px 15px 21px 0px rgb(0 0 0 / 80%);}
.wp-element-button{background-color: var(--coral);color: var(--white);border: solid 1px var(--white);padding:0.8vw 3vw;text-decoration: none;font-weight: 500;font-size: clamp(17px, 1.1vw, 24px); letter-spacing: 1px;text-align: center;}
.wp-block-button:hover .wp-element-button{background-color: var(--cyan);color: var(--white);border: solid 1px var(--white);}
.class-dark .wp-element-button{background-color: var(--accent-bg);color: var(--color-1);border: solid 1px var(--color-1);}
.wp-block-button.class-dark:hover .wp-element-button{background-color: var(--color-1);color: var(--color-2);border: solid 1px var(--color-2);}
.wp-block-button.class-center { display: flex; justify-content: center; }
.class-white .wp-element-button{background-color: var(--white);color: var(--color-1);border: solid 1px var(--color-1);}
.wp-block-button.class-white:hover .wp-element-button{background-color: var(--color-1);color: var(--white);border: solid 1px var(--white);}
	/* 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;position:relative; top: -5px;}
.gchoice input[type=checkbox]:checked {background: var(--color-1);}
.gchoice input[type=checkbox]:checked::before {opacity: 1;}
label {user-select: none;cursor:inherit;}
iframe.resizable { width: 100%; }

/* Built In WP Classes */
figure {display:inline-block;margin:0;}
.aligncenter {display:block;margin: 0 auto;}
.has-text-align-center {text-align:center;}
.has-text-align-right {text-align: right;}
.wp-block-columns { display: flex; gap: 15px;position: relative; }
.wp-block-columns > div {flex: 1 1 100%;}

svg .cls-star{fill:var(--cyan); fill-rule:evenodd;}

@media (min-width: 1201px){
	.masthead {position: fixed; left: 0; width: 100%; z-index: 1000; top: 0;}
	body.admin-bar .masthead {top: 32px;}
	.mobile-nav{display: none;}
.masthead .menus{position: relative;}
.masthead .menus .main-menu{left:.5em;position: relative;}
	.masthead ul li{position: relative;line-height:1.3}
	ul#menu-main-menu .sub-menu{background: var(--color-4);flex-direction: column;}
	ul#menu-main-menu .sub-menu a {padding-left: 0;}
ul#menu-main-menu > li:hover > .sub-menu, .masthead ul#menu-main-menu > li > a:focus + .sub-menu, .masthead ul#menu-main-menu > li:focus-within > .sub-menu {height: auto;padding: 15px 0 15px 15px;min-width: 270px;overflow: initial;border: 1px solid var(--subtle-white);}
nav.main-nav { display: flex; flex-direction: column; }
.call-us{order: -1;position: relative;top:-10px;letter-spacing: 1px;}
.right-wrapper { display: flex; align-items: center; }
.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);}
.sub-menu .sub-menu{left: 99%; top: 0;}
.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 var(--subtle-white);}
.wp-element-button{min-width: clamp(300px, 24vw, 460px);}
}

@media(max-width: 1300px){
	.logo-container{width:18%;}
}
@media(max-width: 1200px){
	.call-us { display: none; }
	.wp-element-button{ padding:10px 20px;}
	.call-us.mobile-header a{font-size:20px;}
	.call-us.mobile-header {background: black;width: 100%;max-width: 100%;position: relative;z-index: 9999;top: 0px;height: 40px;text-align: center;align-items:center;justify-content:center;display:flex !important;margin: 0;}
	.call-us.mobile-header svg{display: none;}
	.masthead{position: absolute; width: 100%; z-index: 9;}
	.logo-container{width: 80%;max-width: 200px;}
	.menus{width: 20%;}
	.mobile-nav{font-size: 22px; transform: scaleX(2); outline-color: var(--color-1);color:var(--white);position: absolute; right: 15px; top: 30%;}
	.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;}
	.masthead ul{flex-wrap: wrap;}
	.masthead ul li{flex: 1 1 100%;}
	.masthead ul li a{color: var(--color-2);}
	.masthead ul .sub-menu {margin-top: 15px;margin-left: 20px;font-size: .9em;display:none;}
	.masthead ul .sub-menu.active{display:flex;}
	.masthead ul .sub-menu a{padding-left: 0;}
	#mobile-nav-input:checked + * + .main-nav{height: auto; padding:25px;}
	.menu-item-has-children{position:relative;}
	.menu-arrow{content: ''; position: absolute; width: 14px; height: 14px; 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;}
	.inner-masthead{align-items: center;}
	.inline-width{margin: 0 auto; width: 100%; padding: 0 15px;}
	.wp-block-columns{flex-wrap: wrap !important;}
	p{margin-bottom:25px;}
}
@media(max-width: 500px){
	.call-us.mobile-header .call-text,
	.book-appointment.mobile-header .book{display:none;}
	.call-us.mobile-header svg{display: block;}
}
