/*
 * Shared styles -- dashboard and front end
 * Responsive breakpoints: 600, 768, 960, 1280
 */
 
:root :where(.is-layout-constrained) > * {
	margin-block-start: 0;
}

:root :where(.is-layout-flex) {
    gap: var(--wp--preset--spacing--small);
}


/* Font imports
--------------------------------------------- */
/* Main regular */
@font-face {
	font-family: XXX;
	src: url('../fonts/fontname/font.woff2') format('woff2'), 
		 url('../fonts/fontname/font.woff') format('woff');
	font-weight:  400;
	font-style:   normal;
	font-stretch: normal;
}

/* Heading font */
@font-face {
	font-family: 'Queens Var Italic';
	src: url('../fonts/queens.woff2') format('woff2'), 
		 url('../fonts/queens.woff') format('woff');
	font-weight:  normal;
	font-style:   normal;
	font-stretch: normal;
}

/* Main italic */
@font-face {
	font-family: XXX;
	src: url('../fonts/fontname/font.woff2') format('woff2'), 
		 url('../fonts/fontname/font.woff') format('woff');
	font-weight:  normal;
	font-style:   italic;
	font-stretch: normal;
}

/* Secondary */
@font-face {
	font-family: XXX;
	src: url('../fonts/fontname/font.woff2') format('woff2'), 
		 url('../fonts/fontname/font.woff') format('woff');
	font-weight:  normal;
	font-style:   normal;
	font-stretch: normal;
}


/* Typographical Elements
--------------------------------------------- */


.wp-block-buttons.is-layout-flex {
	gap: var(--wp--preset--spacing--small);
}

input[type="submit"],
input[type="submit"].gform_button,
.wp-block-button .wp-element-button {
	border-radius: 50px;	
	cursor: pointer;
	display: inline-block;
	font-size: 1.5rem;
	font-weight: 400;
	padding: 8px 20px;
	text-decoration: none;
	white-space: normal;
	-webkit-transition: .25s all ease-in-out;
	transition: .25s all ease-in-out;
	
	background-color: var(--wp--preset--color--navy);
	border: 2px solid var(--wp--preset--color--navy);
	color: #fff;

	display: block;
    width:-moz-fit-content; 
	width: fit-content;
}

.is-style-outline a.wp-block-button__link.wp-element-button{
	background-color: transparent;
	border: 2px solid var(--wp--preset--color--navy);
	color: var(--wp--preset--color--navy);
}

.is-style-white-outline a.wp-block-button__link.wp-element-button{
	background-color: transparent;
	border: 2px solid var(--wp--preset--color--white);
	color: var(--wp--preset--color--white);
}

.is-style-white a.wp-block-button__link.wp-element-button{
	background-color: var(--wp--preset--color--white);
	border: 2px solid var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy);
}

input[type="submit"]:focus,
input[type="submit"]:hover,
input[type="submit"].gform_button:hover,
input[type="submit"].gform_button:focus,
.wp-block-button .wp-element-button:hover,
.wp-block-button .wp-element-button:focus {
	background-color: var(--wp--preset--color--light-blue) !important;
	border: 2px solid var(--wp--preset--color--light-blue) !important;
	color: var(--wp--preset--color--navy) !important;	
	transform: translate(0px, -5px);
}


 
@media only screen and (max-width: 599px) {
	
	/* Safari ~13 doesn't support gap for flexbox, but WP 6.0 has it. Removing and replacing. */
	.wp-block-buttons {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-webkit-flex-direction: column;
		-ms-flex-direction: column;
		flex-direction: column;
	}

	.wp-block-button + .wp-block-button {
		margin: .5em 0 0 0;
	}
	.wp-block-buttons.is-layout-flex {
	gap: 0.5em;
}
}


/* Flexbox & Grid
--------------------------------------------- */
.flexbox,
.footer-widgets .wrap {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;	
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;	
}

.justify-content-center {
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;		
}

.justify-content-space-between,
.wp-block-columns.is-style-col-spread {
	 -webkit-box-pack: justify;
 	 -webkit-justify-content: space-between;
	 -ms-flex-pack: justify;
         justify-content: space-between;		
}

.align-items-stretch {
	-webkit-box-align: stretch;
	-webkit-align-items: stretch;
	-ms-flex-align: stretch;
	-ms-grid-row-align: stretch;
	align-items: stretch;		
}

.align-items-center {
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;		
}


.align-items-start,
.align-items-start.is-layout-flex,
.is-layout-flex.wp-block-buttons:not(.is-content-justification-center) {
	-webkit-box-align: start;
	-webkit-align-items: flex-start;
	-ms-flex-align: start;
	align-items: flex-start;	
}

.flex-direction-column {
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-webkit-flex-direction: column;
	-ms-flex-direction: column;
	flex-direction: column;
}

.flex-1,
.footer-widget-area {
	-webkit-box-flex: 1;
	-webkit-flex: 1;
	-ms-flex: 1;
	flex: 1;		
}

:where(.is-layout-flex),
.flex-gap,
.gap {
	grid-gap: 1em;
	gap: 1em;
}

.flex-gap-lg,
.gap-lg {
	grid-gap: 2em;
	gap: 2em;
}

.col-3 .flex-item {
	-webkit-box-flex: 3;
	-ms-flex: 3 1 350px;
	  flex: 3 1 350px;
}

.grid {
	display: -ms-grid;
	display: grid;	
}

.grid.col-3,
.grid.col-4  {
	grid-template-columns: 1fr;
}

@media only screen and (min-width: 768px) {
	
	.grid.col-3,
	.grid.col-4  {
		grid-template-columns: 1fr 1fr;
	}
	
}

@media only screen and (min-width: 1280px) {
	
	/* Flexbox & Grid */
	.grid.col-3 {
		grid-template-columns: 1fr 1fr 1fr;
	}
	
	.grid.col-4  {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
}

/* 3 images overlap */
.image-stack-section,
.img-stack {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  overflow: visible;
  position: relative; 
}

.wp-block-column .img-stack {
  max-width: 100%; 
}

/* Only the stacking layer logic goes absolute – BUT scaled to the container */
figure.wp-block-image.stack-img {
  position: absolute;
  width: 100%; 
  max-width: 60%; 
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0;
  top: 0;
  left: 50%;
  transform-origin: top center;
  transform: translateX(-50%) translateY(0) scale(1); /* default baseline */
  will-change: opacity, transform;
	  transform: translate(0,0); !important; /* neutral baseline GSAP can animate from */

}

/* Images fill the figure box while respecting column boundaries */
figure.wp-block-image.stack-img img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
 
}

/* Gentle overlap offsets you can tweak visually */
.stack-img.img1 { z-index: 3; left: auto; right: 0; transform: translateY(0) scale(1) !important; } 
.stack-img.img2 { z-index: 2; left: auto; right: 0; transform: translate(-85%, 24%) scale(0.96) !important; }
.stack-img.img3 { z-index: 1; transform: translate(-40%, 55%) scale(0.92) !important; }


.timeline .svg-img {
    margin-left: -9.5px;
    margin-top: -1px;
}

@media only screen and (max-width: 959px ) {
	
	.home-hero,
	.home-hero .wp-block-cover{
		min-height: auto !important;
	}
	
	figure.wp-block-image.stack-img {
	width:280px;	
		max-width:none
	}
	.power-text{
		margin-top:380px
	}

	.timeline .mobile-center > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    margin-right: auto !important;
		margin-left: auto !important;
		text-align:center
	}

}


/*Number Counter*/
.number-counter span{
	    color: #FFF;
    font-size: var(--wp--preset--font-size--58);
    font-weight: 500;
    line-height: 24px;
	padding-bottom:1.5em;
}

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

/* Image carousel */
.image-carousel .swiper-wrapper {
  -webkit-transition-timing-function:linear!important; 
  -o-transition-timing-function:linear!important;
  transition-timing-function:linear!important; 
}


.image-carousel img {
    width: 176px;
}




/* Styling classes
--------------------------------------------- */

.overflow {
	overflow: auto;
}

.position-relative {
	position: relative;
}

.no-margin {
	margin: 0 !important;
}

.wp-block-group.no-margin > * {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.margin-auto {
	margin-left: auto !important;
	margin-right: auto !important;
}

.margin-top-auto {
	margin-top: auto; /*for flexbox*/
}

.margin-left-auto {
	margin-left: auto; /* for flexbox */
}

.padding-sm {
    padding: var(--wp--preset--spacing--small);
}

.padding-medium {
    padding: var(--wp--preset--spacing--medium);
}

.padding-lg {
    padding: var(--wp--preset--spacing--large);
}

.padding-xlg {
    padding: var(--wp--preset--spacing--xlarge);
}

.no-padding {
	padding: 0 !important;
}


.narrow {
    max-width: 700px !important;
	margin-left: 0;
}

.x-narrow {
	max-width: 450px !important;
	margin-left: 0;
}


/* Separator
------------------------------------------ */

hr {
	border: 0;
	border-collapse: collapse;
	border-bottom: 1px solid #eee;
	clear: both;
	margin: 0;
}

hr.wp-block-separator {
	border-bottom: 1px solid;
	border-top: 0;
    width: 100px;
}

hr.wp-block-separator.is-style-wide {
	width: 100%;
}


/* Media-text 
-------------------------*/
.wp-block-media-text .wp-block-media-text__content {
	padding: 0;
}

@media only screen and (max-width: 959px ) {
	
	.wp-block-media-text.is-stacked-on-mobile {
		grid-template-columns: 100%!important;
	}

	.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media, .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media {
		grid-column: 1;
		grid-row: 1;
	}
	
	/* Constrict media to specific height */
	.wp-block-media-text.is-image-fill .wp-block-media-text__media {
		height: 100%;
		min-height: 250px;
		background-size: cover;
	}
	
	/* All media should appear before content */
	.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
	}
	
}

@media only screen and (min-width: 960px ) {
	
	/* Alignfull media-text with content that fits the width */
	.wp-block-media-text.is-style-content-fit .wp-block-media-text__content {
		max-width: calc(var(--wp--style--global--content-size)/2);	
		width: 100%;
	}
	
	.wp-block-media-text.is-style-content-fit.has-media-on-the-right .wp-block-media-text__content {
		justify-self: right;
	}
	
}

/* Columns block
--------------------------------------------------------------------------------------*/
	
/* Columns with no space between cols */
.wp-block-columns.is-style-col-no-space {
	gap: 0;
}

/* Columns with lines */
.wp-block-columns.is-style-col-lines .wp-block-column:not(:first-of-type) {
	border-top: 1px solid;
	padding-top: var(--wp--preset--spacing--medium);
	margin-top: var(--wp--preset--spacing--medium);
}


/* Columns collapse -- Gutenberg default is to collapse at 600
 * ---------------------------------------------------------------------------*/
@media only screen and (max-width: 959px ) {
	 
	.wp-block-columns {
		flex-wrap: wrap !important;
	}	
	
	.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
		flex-basis: 100%!important;
	}		
	
	.alignfull > .wp-block-columns.col-no-padding {
		padding: 0 var(--wp--preset--spacing--small);
	}
	
	.wp-block-column.no-padding:not(:last-child) {
		padding-top: var(--wp--preset--spacing--small) !important;
	}	

	.col-flip-mobile .wp-block-column:first-of-type {
		order: 2;
	}
	
}


@media only screen and (min-width: 960px) {

	/* Wide column */
	.wp-block-columns.is-style-col-wide {
		gap: 2em;
	}	
	
	/* Columns with lines */
	.wp-block-columns.is-style-col-lines .wp-block-column:not(:first-of-type) {
		border-left: 1px solid;
		border-top: 0;
		padding-top: 0;
		margin-top: 0;
		padding-left: var(--wp--preset--spacing--medium);
	}
	
}

/* Gallery block
--------------------------------------------- */

ul.blocks-gallery-grid,
.wp-block-image {
	margin-top: 0;
	margin-bottom: 0;
}

.wp-block-gallery .blocks-gallery-item figure {
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;		
}

/* Fix for last element filling entire row */
.wp-block-gallery.has-nested-images > figure.wp-block-image {
  flex-grow: inherit;
}


/* Cover block
--------------------------------------------- */
/* negate Gutenberg default */
.wp-block-cover, 
.wp-block-cover-image { 
	padding: 0;
}

/* Allow bottom/left positioning for cover blocks */
.wp-block-cover.is-position-top-left.has-custom-content-position .wp-block-cover__inner-container,
.wp-block-cover.is-position-top-right.has-custom-content-position .wp-block-cover__inner-container,
.wp-block-cover.is-position-top-center.has-custom-content-position .wp-block-cover__inner-container,
.wp-block-cover.is-position-bottom-center.has-custom-content-position .wp-block-cover__inner-container,
.wp-block-cover.is-position-bottom-left.has-custom-content-position .wp-block-cover__inner-container,
.wp-block-cover.is-position-bottom-right.has-custom-content-position .wp-block-cover__inner-container {
	margin: 0 auto;
}

/* Custom cover style -- Make image contain, not cover */
.wp-block-cover.is-style-cover-contain-top img.wp-block-cover__image-background,
.wp-block-cover.is-style-cover-contain-bottom img.wp-block-cover__image-background,
.wp-block-cover.is-style-cover-left img.wp-block-cover__image-background,
.wp-block-cover.is-style-cover-right img.wp-block-cover__image-background {
    -o-object-fit: contain;
    object-fit: contain;
}

.wp-block-cover.is-style-cover-contain-top img.wp-block-cover__image-background {
    -o-object-position: 0 0 !important;
    object-position: 0 0 !important;	
    top: 0;
    bottom: auto;	
}

.wp-block-cover.is-style-cover-contain-bottom img.wp-block-cover__image-background {
    -o-object-position: 0 100% !important;
    object-position: 0 100% !important;		
}

.wp-block-cover.is-style-cover-left img.wp-block-cover__image-background {
	-o-object-position: top left;
    object-position: top left;
}

.wp-block-cover.is-style-cover-right img.wp-block-cover__image-background {
	-o-object-position: top right;
    object-position: top right;
}



/* SVG custom block
--------------------------------------------- */

.svg-img.aligncenter {
    text-align: center;
}

.svg-img {
	line-height: 0;
}


/* Social Links
--------------------------------------------- */

ul.wp-block-social-links {
	margin: 0;
}


/* Swiper/Slider
--------------------------------------------- */

.arrows-outside .swiper-wrapper {
    width: 85% !important;
    margin: auto;
}

.swiper-button-prev, 
.swiper-button-next {
    color: inherit !important;
	-webkit-transform: scale(.5);
    transform: scale(.5);
}



.swiper-pagination-bullet-active {
    background: #03243C !important;
}
.testimonial-white p{
	color:#fff !important
}

.testimonial-white .swiper-pagination-bullet-active {
    background: #fff !important;
	opacity:1 !important
}

.testimonial-white .swiper-pagination-bullet{
background: #fff !important;
    opacity: var(--swiper-pagination-bullet-inactive-opacity, .3);
}

.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 5px) !important;
}

.swiper-pagination-bullet {
    width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 10px)) !important;
    height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 10px)) !important;
}