/*
Theme Name: Fuel6
Theme URI: https://fuelmedical.com
Author: Fuel Medical
Description: A block theme created by Fuel Medical
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
Version: 6.4.5
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Custom Properties
# Fuel Normalize
# Helper Classes
# WordPress Blocks
# Header
# Footer
# Animations
# print
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Custom Properties
--------------------------------------------------------------*/
body {
	/* Structure - 1100px - for use outside of contain class */
	--contain-padding: clamp(1rem, calc(50vw - 29.93rem), 19rem);

	/* Design - Change in theme.json - DEPRECATED WITH PLANS TO REMOVE IN FAVOR OF VARIABLES CREATED BY THEME.JSON */
	--primary-color: var(--wp--preset--color--primary);
	--accent-color: var(--wp--preset--color--accent);
	--white: var(--wp--preset--color--white);
	--grey: var(--wp--preset--color--grey);
	--black: var(--wp--preset--color--black);

	/* Text */
	--title-font: var(--wp--preset--font-family--title);
	--title-color: var(--wp--preset--color--primary);
	--content-font: var(--wp--preset--font-family--content), sans-serif;
	--content-color: var(--wp--preset--color--content);
}

/*--------------------------------------------------------------
# Fuel Normalize
--------------------------------------------------------------*/
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	font-size: clamp(125%, 1vw, 240%);
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scrollbar-gutter: stable;
	min-width: 15rem;
}

html:has(.ios) {
	overscroll-behavior: none;
}

iframe,
img,
svg,
video {
	vertical-align: middle;
	max-width: 100vw;
}

img {
	object-fit: cover;
	width: -webkit-fill-available;
}

picture[style*="width"] {
	display: flex;
}

[hidden] {
	display: none;
}

@media only screen and (min-width: 68.5em) {
	*[id] {
		scroll-margin-top: 3rem;
	}
}


/*--------------------------------------------------------------
# Fullwidth contact section/Interactive Map
--------------------------------------------------------------*/

.contact3-section-right{
	padding-top: 2rem  !important ; 
	padding-bottom : 1rem !important ; 
}

.contact3-section h2{
	color: var(--primary-color);
	position: relative;
	padding-bottom: 1rem !important ;  

}

.contact3-section {
	z-index: 10;
    position: relative;
}

.contact3-section h2:after{
	content: ''; 
	position: absolute;
	left: 0; 
	bottom: 0; 
	width: 2rem; 
	height: 1px;
	background: var(--primary-color);
}

.contact3-section:after{
	content:''; 
	position: absolute;
	left: 0; 
	bottom: 0; 
	width: 13rem;
	height: 13rem; 
	background: url('./images/contact3-accent.svg') no-repeat;
	background-size: contain; 
}

.map-sidebar{
	background: url('./images/map-bg.jpg') no-repeat;
	background-size:cover; 
}

.map-mobile-view-bar:is(:hover, :focus-visible){
	background: var(--accent-color) !important; 
}

.map-nav-item-btn{
	color: #fff; 
}

.map-info-panel{
	background: var(--primary-color);
	color: #fff;
}

.hours-row {
    display: flex;
    padding: .1em 0;
}
.hours-day {
    margin-right: .2em;
    min-width: 2.7em;
}

.map-quick-links svg path:last-child{
	fill: var(--accent-color) !important;
}

.map-quick-links svg path:first-child{
	color: #fff !important;
}

.map-quick-links a:hover svg path:last-child{
	fill: #fff !important;
}

.map-quick-links a:hover svg path:first-child{
	color: var(--accent-color) !important;
}

.map-back{
	text-align: left;
	background: var(--primary-color);
} 

.map-back svg {
	color: var(--accent-color);
}

.map-back:hover,
.map-back:focus-visible {
	background: #fff; 
	color: var(--primary-color);
}

.filter-contents{
	background: var(--primary-color);
	color: #fff; 
	padding-bottom: 2rem; 
}
.wp-block-fuel-interactive-map .map-filter-panel:not(.wp-block-fuel-fuel-toggle-block) summary{
	color: #fff; 
	background: var(--primary-color);
	padding: .75rem 1.5rem !important ;
}

.map-filter-panel{
	border-radius: 4px 4px 0 0;
	border-top: none !important ;
}

.map-filter-panel summary::after{
	display: none;
}

.map-filter-panel summary:before{
	content:'';
	position: absolute; 
	right: .4rem; 
	top: .9rem; 
	width: 1rem;
	height: 1rem; 
	background: 
		linear-gradient(white 0 0) center/10px 2px no-repeat,
    	linear-gradient(white 0 0) center/2px 10px no-repeat,
    	#c00;
	border-radius: 50%; 
	transition: background-size .3s ease, background-color .3s ease;
}

.map-filter-panel summary:hover:before{
	background:
    linear-gradient(#c00 0 0) center/10px 2px no-repeat,
    linear-gradient(#c00 0 0) center/2px 0 no-repeat,
    white;
}

.map-filter-panel[open] summary:before{
	background:
    linear-gradient(#c00 0 0) center/10px 2px no-repeat,
    linear-gradient(#c00 0 0) center/2px 0 no-repeat,
    white;
}

.map-mobile-view-bar {
	background: var(--primary-color);
	color: #fff;
	height: 2.5rem;
	border-radius: 0 0 4px 4px;
}

.infoPanel-padding .wp-element-button{
	display: inline-block; 
}

.map-quick-links a:hover{
	background: none !important; 
}

@media (min-width: 68.5em) {
	.wp-block-fuel-interactive-map {
		border: 1px solid var(--primary-color);
	}
	.contact3-section:after{
		width: 20rem;
		height: 20rem; 
	}
	.contact3-section-right{
		padding-top: 4.5rem  !important ; 
		padding-bottom: 5rem !important ; 
	}
	.contact3-section .wp-block-cover {
		min-height: 77vh !important ;	
	}
	.filter-controls.filter{
		font-size: .75rem !important ;
		width: 45%; 
	}
	
	.wp-block-fuel-interactive-map{
		border-radius: 4px  ; 
	}
	.map-nav-panel{
		border-radius: 0 0 0 4px; 
	}

	.map-filter-panel{
		border-radius: 4px 0 0 0 ; 
	}

	.map-info-panel{
		border-radius: 4px 0 0 4px; 
	}

	.google-map-container{
		border-radius: 0 4px 4px 0; 
	}
	.sub-menu .wp-block-fuel-interactive-map,
	.sub-menu .map-nav-panel,
	.sub-menu .map-filter-panel,
	.sub-menu .map-info-panel,
	.sub-menu .google-map-container{
		border-radius: 0; 
	}
	.map-nav-item{
		z-index: 10; 
		position: relative; 
		height: 25%;
  		display: flex;
  		justify-content: center;
	}
	.map-nav-item:before{
		content:'';
		position: absolute;
		left: 0;
		top: 0; 
		width: 100%;
		height: 100%;
		background: rgba(41, 72, 104, 0.75);
		z-index: -1;
		transform: translateX(-99%);
		transition: transform .5s ease; 
	}
	
	.map-nav-item-btn:is(:hover, :focus, .map-active){
		background: none !important ; 
	}
	
	.map-nav-item:hover:before{
		transform: translateX(0);
	}
}

div.map-filter-panel{
	background: var(--primary-color);
}

.get-my-location.button{
	padding: .5rem; 
	border: 1px solid #fff;
}

.map-loc-header h3{
	font-size: 1rem !important ;
}

/*--------------------------------------------------------------
# Button
--------------------------------------------------------------*/

:root :where(.wp-element-button, .wp-block-button__link){
	background-color: #fff; 
	color: var(--primary-color);
	opacity: 1; 
	font-size: 1rem !important ; 
	position: relative; 
 	overflow: hidden;  
	z-index: 10; 

}

.wp-element-button:after{
	content: '';
    background: var(--accent-color);
    width: 0.9rem;
    height: 0.9rem;
    clip-path: polygon(0 0, 0% 100%, 100% 0);
    position: absolute;
    inset: -0.01rem 0 0 -0.01rem;
    z-index: -1;
    transform: scale(1);
    transform-origin: top left;
    transition: 500ms ease;
}


.wp-element-button:hover {
  	color: var(--white);
    transition: 300ms ease;
} 

.wp-element-button:hover:after {
  	transform: scale(24);
    transition: 500ms ease;
} 

/*--------------------------------------------------------------
# Helper Classes
--------------------------------------------------------------*/
.contain {
	--contain-padding: clamp(var(--mobile-padding, 1rem), calc(50vw - 29.93rem), var(--desktop-padding, 19rem));
	display: block;
	position: relative;
	margin: auto;
	padding-right: var(--contain-padding);
	padding-left: var(--contain-padding);
	width: 100%;
}

.icon-item {
	display: block;
	position: relative;
	margin: 1em 0;
	padding: 0 0 0 1.8em;
}

.icon-item svg {
	position: absolute;
	top: 0.15em;
	left: 0;
	width: 1.2em;
	height: 1.2em;
}

.text-center {
	text-align: center;
}

@media (min-width: 68.5em) {
	.mobile-only {
		display: none !important;
	}
}

@media (max-width: 68.49em) {
	.desktop-only {
		display: none !important;
	}

	body {
		--center-on-mobile: center;
	}

	.text-center-on-mobile {
		text-align: var(--center-on-mobile);
	}

	.center-on-mobile {
		justify-content: var(--center-on-mobile);
	}

	.align-items-center-on-mobile {
		align-items: center;
	}

	.margin-center-on-mobile {
		margin-left: auto;
		margin-right: auto;
	}

	.stack-on-mobile {
		flex-direction: column;
	}

	.full-width-on-mobile {
		width: 100%;
		max-width: 100%;
	}

	.wrap-on-mobile {
		flex-wrap: wrap;
	}
}

.zebra > *:not(tbody):nth-child(odd) {
	background-color: var(--zebra, var(--wp--preset--color--grey));
}

.toggle-content:has(.zebra) {
	padding: 0;
}

/* Use on query loops to help change the order every other column */
.stagger > :nth-child(odd) .wp-block-columns {
	flex-direction: row-reverse;
}

/* Use to make link fill entire block - use when you can't wrap blocks with anchor tag */
.cover-link {
	position: absolute !important;
	inset: 0;
	width: 100%;
	z-index: 1;
	background: none !important;
}

:has(> .cover-link) {
	position: relative;
}

/*--------------------------------------------------------------
# WordPress Blocks - Use theme.json when possible
--------------------------------------------------------------*/
@media (max-width: 37.49em) {
	:where(.alignleft, .alignright):not(.wp-block-query .wp-block-post-featured-image) {
		float: none;
		margin: 0 auto 1rem;
	}
}

@media (min-width: 37.5em) {
	:where(.alignleft, .alignright):not(.wp-block-query .wp-block-post-featured-image) {
		max-width: 48%
	}
}

@media (min-width: 68.5em) {
	.is-position-sticky {
		transition: top 0.3s ease;
	}

	body:has(header.show-sticky) .is-position-sticky {
		top: 4rem;
	}
}

@media (max-width: 68.49em) {
	.entry-content .wp-block-buttons {
		justify-content: var(--center-on-mobile); /* Center buttons on mobile but not in menu */
	}
}

.wp-block-template-part {
	margin-top: 0;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
@media (max-width: 68.49em) {
	.show-sticky .fuel6-walker-menu:not(:has(.depth-0 > .menu-link[aria-expanded="true"])) {
		bottom: calc((var(--menu-height) + env(safe-area-inset-bottom) + 0.05rem) * -1);
	}
}

@media (min-width: 68.5em) {
	.header:not(.block-editor-block-list__block) {
		position: sticky;
		top: calc(var(--headerHeight, 11.7rem) * -1);
		z-index: 999;
		transition: top 0.5s ease;
	}

	body:not(.js-active) .header:not(.block-editor-block-list__block),
	.header:has(.depth-0 > .menu-link[aria-expanded="true"]),
	.header.show-sticky:not(.block-editor-block-list__block) {
		--menuTop: calc(var(--headerHeight, 11.7rem) - var(--menu-height, 3.2rem));
		top: calc(var(--menuTop, 8.5rem) * -1);
	}
	.header-quicklinks a{
		background: #fff !important; 
		color: var(--primary-color) !important ;
		border: 1px solid var(--accent-color) !important ;
		margin-top: -.1rem;
		height: 48px;
	}
	.header-quicklinks a svg{
		color: var(--accent-color);
	}
	.header-quicklinks a:hover,
	.header-quicklinks a:focus-visible {
		color: #fff !important ; 
		background: var(--accent-color) !important ;
	}
	.header-quicklinks a:hover svg{
		color: #fff; 
	}
	.header-quicklinks a:focus-visible svg{
		color: #fff; 
	}
	
	.header-number svg{
		color: var(--accent-color);
	}
	.header-number:hover svg{
		color: var(--primary-color);
	}
	.header-number:focus-visible svg{
		color: var(--primary-color);
	}

}

.header-logo,
.footer-logo {
	--scale: 1.05;
}

.header-quicklinks a:is(:hover, :focus-visible) {
	--wp--preset--color--primary: var(--wp--preset--color--accent);
}

.header-logo svg{
	height: 4rem !important ;
	width: 12rem; 
}

@media (min-width: 68.5em) {
	.header-logo svg{
		height: 5rem !important ;
		width: 17rem; 
	}	
	.header-number{
		font-size: 1.5rem !important ; 
		font-weight: 700; 
	}
}

/*--------------------------------------------------------------
# Bios (everything but single page bio)
--------------------------------------------------------------*/

.full-name-cred{
	position: relative; 
	padding-bottom: 0 !important ; 
	margin-top: 0; 
}

.bio-details {
	align-items: flex-start !important; 
}

@media (min-width: 68.5em) {
	.bio-details {
		align-items: center !important ; 
	}
	.full-name-cred{
		padding-bottom: 1rem !important ;
	} 
	.full-name-cred:after{
		content:'';
		position: absolute;
		left: 0; 
		right: 0; 
		bottom: .5rem; 
		margin: auto;
		width: 3rem; 
		height: 1px; 
		background: var(--accent-color);
	}	
	.full-name-cred:after{
		transition: transform .5s ease ; 
	}
	.bio:has(.cover-link:hover) .full-name-cred:after{
		transform: scaleX(2);
	}
	.bio:has(.cover-link:focus-visible) .full-name-cred:after{
		transform: scaleX(2);
	}
	

	
}

:not(.single-bio) .full-name-cred{
	margin-top: 1rem; 
}

:not(.single-bio) .bio-details h2:before{
	display: none;
}
.bio-details{
	align-items: center; 
	gap: 0; 
}

:not(.single-bio) .bio figure{
	border-bottom: 8px solid var(--primary-color);
}

/*--------------------------------------------------------------
# Block quote
--------------------------------------------------------------*/

.wp-block-quote{
	padding: 1.5rem !important ; 
	margin-left: 0; 
	margin-right: 0; 
}

.wp-block-quote:before{
	background: var(--wp--preset--color--accent); 
	border-radius: 50%; 
}

.wp-block-quote:after{
	content:'';
	top: -.5rem; 
	left: -.5rem; 
	width: 1rem; 
	height: 1rem; 
	background: url('./images/nu-quote.svg') no-repeat;
	background-position: center; 
	background-size: contain; 
}


.wp-block-quote p{
	font-size: 1rem !important ; 
	line-height: 1.9 !important ; 
	color: var(--primary-color);
}

.wp-block-quote cite{
	font-style: normal; 
	color: var(--primary-color); 
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/

.contact3-section {
	margin-bottom: -.1rem;
	background: linear-gradient(180deg, rgba(79, 111, 138, 0.3) 0%, rgba(79, 111, 138, 0.1) 100%);
}

.contact3-section figure{
	height: 100%; 
}

.contact3-section img{
	height: 100%; 
}

.policy-menu li:nth-child(n+1):not(:last-child)::before {
	content: '|';
	position: absolute;
	right: -0.7rem;
}

.footer-locations{
	gap: .75rem !important; 
}

.footer-location-row{
	gap: 10px !important ; 
}

#footer-locations h3{
	font-size: 1.2rem !important ; 
	padding-bottom: .5rem; 
	border-bottom: 1px solid #fff; 
	position: relative; 
}

#footer-locations h3:after{
	content:''; 
	position: absolute; 
	left: -1px; 
	bottom: -6px; 
	width: 12px;
	height: 6px; 
	background: url('./images/footer-accent.svg') no-repeat; 
}

#footer-quick-links h3{
	position: relative; 
}

#footer-quick-links h3:after{
	content:''; 
	position: absolute; 
	left: -1px; 
	bottom: -6px; 
	width: 12px;
	height: 6px; 
	background: url('./images/footer-accent.svg') no-repeat; 
}

.copyright-group{
	border-top: 1px solid #fff; 
}

.copyright-group:after{
	content:''; 
	position: absolute; 
	right: 0;
	top: -.75rem;
  	width: 4rem;
  	height: 1rem;
	background: url('./images/footer-mtns.svg') no-repeat;
	background-color: var(--primary-color);
	background-size: contain; 
}

.footer-content-group{
	margin-top: 0; 
}



@media (min-width: 68.5em) {
	#footer-locations{
		flex-basis: 16rem; 
	}
	#footer-quick-links{
		flex-basis: 21rem !important; 
	}
	ul#menu-footer {
		display: grid;
	  	grid-template-columns: repeat(2, 1fr);
/*   		gap: 0.1rem; */
		gap: .5rem 0.1rem;
	}
	.copyright-group:after{
		top: -1.25rem;
  		width: 7rem;
		height: 2rem;
	}
	.footer-group{
		padding-top: 3rem !important ; 
		
	}
	.footer-content-group{
		padding-bottom: 2.5rem !important ; 
	}
	#footer-locations .wp-block-query{
		width: 9rem; 
	}
	.footer-logo svg{
		width: 15rem !important ;
	}
}

@media (min-width: 82.5em) {
	
	#footer-quick-links{
		flex-basis: 22rem !important; 
	}
}

/*--------------------------------------------------------------
# Animations
--------------------------------------------------------------*/
@keyframes spin {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(var(--spin-rotation, 360deg));
	}
}

@keyframes fadein {
	0% {
		opacity: var(--o1, 0);
		transform: translate(var(--x1, 0), var(--y1, 5rem));
	}
	100% {
		opacity: var(--o2, 1);
		transform: translate(var(--x2, 0), var(--y2, 0));
	}
}

@keyframes fadeout {
	0% {
		opacity: var(--o2, 1);
		transform: translate(var(--x2, 0), var(--y2, 0));
	}
	100% {
		opacity: var(--o1, 0);
		transform: translate(var(--x1, 0), var(--y1, 5rem));
	}
}

@keyframes reveal {
	0% {
		opacity: var(--o1, 0);
		clip-path: inset(var(--reveal, 25%));
	}
	100% {
		opacity: var(--o2, 1);
		clip-path: inset(var(--reveal, 0%));
	}
}

@keyframes point {
	0% {
		transform: translate(0, 0);
	}
	50% {
		transform: translate(var(--x, 1rem), var(--y, 0));
	}
	100% {
		transform: translate(0, 0);
	}
}

/* popAnimation Example: https://jsfiddle.net/KTC_88/8xkLv520/ */
@keyframes popAnimation {
	0% {
		transform: scale(0.5);
		opacity: 0;
	}
	60% {
		transform: scale(1.2)
	}
	100% {
		transform: scale(1);
		opacity: 1
	}
}

/**
 * Animation helper classes.
 */
@media (prefers-reduced-motion:no-preference) {

	/* Add to wrappers to animate children */
	.popin>* {
		transform: scale(0.5);
		opacity: 0;
	}

	.popin.js-intersected>* {
		--delay: calc(var(--i, 0) * 200ms);
		animation: popAnimation 400ms ease var(--delay) forwards
	}

	.fadein-items>* {
		opacity: 0;
		transform: translateY(0);
	}

	.fadein-items.js-intersected>* {
		--delay: calc(var(--i, 0) * 200ms);
		animation: fadein var(--time, 400ms) ease var(--delay) forwards;
	}

	/* Add directly to element that will be affected */
	.fadein {
		opacity: 0;
		transform: translateY(0);
		--y1: 0;
	}

	.fadeup {
		opacity: 0;
		transform: translateY(5rem);
	}

	.fadedown {
		opacity: 0;
		transform: translateY(-5rem);
		--y1: -5rem;
	}

	.fadeleft {
		opacity: 0;
		transform: translateX(-5rem);
		--x1: -5rem;
		--y1: 0;
	}

	.faderight {
		opacity: 0;
		transform: translateX(5rem);
		--x1: 5rem;
		--y1: 0;
	}

	.reveal {
		opacity: 0;
		clip-path: inset(25%);
	}

	.js-intersected:is(.fadein, .fadeup, .fadedown, .fadeleft, .faderight) {
		animation: fadein var(--time, 300ms) var(--easing, ease) var(--delay, 0s) forwards
	}

	.js-intersected.reveal {
		animation: reveal var(--time, 300ms) var(--easing, ease) var(--delay, 0s) forwards
	}
}

/* Used to make images in links grow when link is hovered - simply add .hover-img-grow to link or image block */
figure.hover-img-grow,
.hover-img-grow figure {
	overflow: hidden;
}

.hover-img-grow img {
	transition: transform var(--time, 0.3s);
}

a:has(+ .hover-img-grow):is(:hover, :focus-visible)+figure img,
a:has(.hover-img-grow):is(:hover, :focus-visible) img,
a.hover-img-grow:is(:hover, :focus-visible) img {
	transform: scale(var(--scale, 1.1));
}

/* Helper class adds growing underline on hover */
a.underline-on-hover,
.underline-on-hover a {
	width: fit-content;
	background: linear-gradient(0deg, currentColor, currentColor) no-repeat 0 bottom / 0 1px;
	transition: background-size 350ms;
}

a.underline-on-hover:is(:hover, :focus-visible),
.underline-on-hover a:is(:hover, :focus-visible) {
	background-size: 100% 1px;
}

a.underline-on-hover.icon-item,
.underline-on-hover a.icon-item {
	background-position-x: 1.6rem;
}

/* Helper class makes link scale on hover */
.scale-on-hover a,
a.scale-on-hover {
	transition: transform 0.3s ease;
}

.scale-on-hover a:is(:hover, :focus-visible),
a.scale-on-hover:is(:hover, :focus-visible) {
	transform: scale(var(--scale, 1.2));
}

/*--------------------------------------------------------------
# Print
--------------------------------------------------------------*/
@media print {
	* {
		background: transparent !important;
		color: initial !important;
		--wp--preset--color--white: initial !important;
	}

	.main-header {
		all: unset;
	}

	.main-title {
		margin: 1rem auto !important;
		padding-bottom: 1rem;
		border-bottom: 2px solid #000;
	}

	nav,
	#sidebar,
	.header,
	.footer,
	.pagination,
	.wp-prev-next,
	.main-header img,
	.wp-block-cover__image-background,
	.wp-block-cover__background,
	main + * {
		display: none !important;
	}
}