/*
Theme Name: B² Core (Classic Starter)
Author: B²/Jared
Author URI: https://b2ads.com
Description: Minimal classic theme starter optimized for CWV, accessibility, and Gutenberg (non‑FSE).
Version: 1.0.2
Text Domain: b2
*/
/* === Consolidated theme CSS (vendor CSS remains via CDN) === */

/* Simple Hamburger Navigation */
.b2-core-hamburger{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid currentColor;border-radius:6px;background:transparent;cursor:pointer}
.b2-core-hamburger span{position:relative;display:block;width:18px;height:2px;background:currentColor}
.b2-core-hamburger span:before,.b2-core-hamburger span:after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor}
.b2-core-hamburger span:before{top:-6px}.b2-core-hamburger span:after{top:6px}
.primary-nav--modal .menu{list-style:none;margin:0;padding:0}
.primary-nav--modal .menu li{margin:.5rem 0}
.navtype-simple .primary-nav--normal{display:none}


/* === from assets/css/base.css === */
/* Minimal reset + tokens (no layout helpers) */
*{box-sizing:border-box}
html:focus-within{scroll-behavior:smooth}
body{margin:0;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:#262626;background:#fff;overflow-x: hidden;font-size: 1vw;}
img,svg,video,canvas{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}

.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:0;top:0;background:#000;color:#fff;padding:.5rem 1rem}

:root {
	--blue1: #0055A6;
	--blue2: #6994FF;
	--red1: #EF2E25;
	--white1: #FAFAFA;
	--black1: #262626;
}

/* nav */
.site-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1vw;
	padding: 1.6vw 4vw;
	position: fixed;
	z-index: 2;
	top: 0;
	left: 0;
	right: 0;
	background: #ffffffd6 linear-gradient(45deg, #ef2e252b 0%, #ffffff69 25%, #0055a63b 100%);
	backdrop-filter: blur(5px);
	background-size: 400% 400%;
	animation: gradient 15s ease infinite;
}

.site-branding a {
	text-decoration: none;
	font-weight: 700;
	display: block;
}

.site-branding a img, .site-branding a svg {
	width: 100%;
}

.site-header .site-branding {
	width: 16vw;
}

.nav-tr-btns {
	position: fixed;
	top: 1.6vw;
	right: 4vw;
	display: flex;
}

.social-links {
	display: flex;
	gap: .1em;
}

/* .primary-nav .menu > .menu-item > a {
padding-bottom: 0.25em;
} */

nav.primary-nav {
	position: relative;
	bottom: -0.5em;
}

.primary-nav .menu > li > a {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.8em;
	font-weight: 400;
	position: relative;
	top: 0.1em;
}

.nav-tr-btns a.get-quote {
	background: var(--red1);
	color: white;
	text-transform: uppercase;
	font-weight: 700;
	font-size: 0.8em;
	line-height: 1;
	padding: 0.55em 5em .5em 0.67em;
	position: relative;
	margin-right: 0.3em;
	letter-spacing: 0.1em;
}

.nav-tr-btns a.get-quote:after {
	content: "";
	position: absolute;
	width: 1em;
	height: 0.8em;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/right-arrow.svg) no-repeat center center;
	background-size: contain;
	display: block;
	top: 0.6em;
	right: 3.4em;
	animation: move-right 3s ease-in-out 1.5s 1 normal running;
}

.social-links > a {
	background: var(--blue1);
	width: 1.7em;
	position: relative;
	opacity: .7;
}

a.phone:before {
	content: "";
	width: 1em;
	height: 1em;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/phone.svg) no-repeat center center;
	background-size: contain;
	display: block;
	position: absolute;
	left: 0.67em;
	transform: rotate(0deg);
}

a.phone {
	background: var(--blue1);
	color: white;
	font-weight: bold;
	font-size: 0.8em;
	line-height: 1;
	padding: 0.55em 0.67em .5em 2em;
	position: relative;
	margin-left: 0.3em;
	letter-spacing: 0.1em;
}

.social-links > a > img {
	width: 0.8em;
	height: 0.67em;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

body.home #hero {
	height: 100vh;
	padding: 0 4em;
	position: relative;
	margin-bottom: 5em;
	clip-path: inset(0);
}

body.home #hero:before, body.home #hero:after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(180deg, transparent, black);
	opacity: .33;
	z-index: 0;
}

body.home #hero:after {
	background: linear-gradient(180deg, var(--blue1), var(--blue2));
	z-index: -1;
}

#hero > .ft-proj-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: -3;
}

#hero > .ft-proj {
    color: white;
    position: absolute;
    top: 40%;
    font-size: 2.7em;
    width: 60%;
}

#hero > .ft-proj h2 {
	margin: 0;
	line-height: 1.05;
	padding-bottom: 0.3em;
}

#hero.home .ft-proj span.left, #hero.home .ft-proj span.right {
	width: 0.67em;
	height: 1em;
	display: inline-block;
	position: relative;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/right-arrow.svg) no-repeat center center;
	background-size: contain;
	margin-right: 0.5em;
	opacity: 0.8;
	cursor: pointer;
}
#hero > .ft-proj a {
    pointer-events: none;
}

#hero.home .ft-proj span.left {
	transform: rotate(180deg);
}

.ft-proj-img { opacity: 0; }
.ft-proj-img.show { opacity: 1; }

.home-hero-lower {
	position: absolute;
	bottom: 2em;
	width: 92%;
	display: flex;
	border-top: 1px solid #ffffff80;
	color: white;
}

.home-hero-lower > .hq-info {
	border-right: 1px solid #ffffff80;
	padding-right: 15em;
	padding-top: 1.8em;
}

.hq-info h3 {
	font-weight: 500;
	font-size: 1.3em;
	margin: 0 0 0.4em;
}

.hq-info a {
	display: block;
	padding: 0.2em 0;
	font-size: 0.85em;
}

.home-hero-lower > .news {
	width: 100%;
	padding-top: 1.5em;
	padding-left: 2em;
}

.home-hero-lower > .news > a.news-title {
	font-family: 'Outfit';
	font-weight: 600;
	font-size: 2.1em;
	display: block;
	line-height: 1.4;
}

.home-hero-lower > .news > a.news-link {
	font-family: 'Outfit';
	font-size: 1.3em;
	display: block;
	margin-top: 0.3em;
	font-weight: 400;
}

.home-hero-lower > .news > a.news-link:after {
	content: "";
	width: 2em;
	height: 0.67em;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/right-arrow.svg) no-repeat right center;
	background-size: contain;
	position: relative;
	display: inline-block;
	top: 0.05em;
}

.container-basic .left-img {
	width: 70%;
	margin-left: 15%;
}

.container-basic .left-img figure, .container-basic .right-img figure {
	padding-right: 2em;
	padding-left: 2em;
}

.container-basic .fw-block.left-img figure {
	padding-left: 0;
}

.container-basic .fw-block.right-img figure {
	padding-right: 0;
}

.fw-block.right-img figure img, .fw-block.left-img figure img {
	width: 100%;
}

figure.wp-block-image{
	margin: 0;
}

h1.wp-block-heading {
	font-size: 2.5em;
	font-weight: bold;
	color: var(--blue1);
	margin-top: 0;
	line-height: 1.25;
}

h1.wp-block-heading > span {
	display: block;
	font-size: 0.55em;
	font-weight: 400;
}

h2.wp-block-heading {
	font-size: 2em;
	font-weight: bold;
	color: var(--blue1);
	margin-top: 0;
	line-height: 1.25;
}

h2.wp-block-heading > span {
	display: block;
	font-size: 0.55em;
	font-weight: 400;
}

.container-basic p {
	font-size: 1em;
}

body .container-basic .left-img > .wp-block-columns, body .container-basic .right-img > .wp-block-columns {
	align-items: center !important;
}

.wp-block-button__link {
	color: var(--blue1);
	background: none;
	padding: 0;
	font-size: 1.2em;
	font-weight: 500;
	font-family: 'Outfit';
}

.wp-block-button__link:after {
	content: "";
	width: 1.6em;
	height: 0.67em;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/blue-right-arrow.svg) no-repeat right center;
	background-size: contain;
	position: relative;
	display: inline-block;
	transform: translateX(0em);
}

.red-counters, .blue-counters {
	background: var(--red1);
	color: white;
	margin-bottom: 5em;
	display: flex;
	justify-content: space-evenly;
	text-align: center;
	position: relative;
	padding: 3em 0;
	font-family: 'Outfit';
}

.red-counters:before, .blue-counters:before {
	content: "";
	display: block;
	height: 100%;
	width: 1px;
	background: white;
	position: absolute;
	top: 0;
	opacity: .5;
}

.blue-counters {
	background: #00000003;
	color: var(--blue1);
	border-top: 1px solid #0055a680;
	border-bottom: 1px solid #0055a680;
	margin: 5em 0 0;
	position: relative;
}

.blue-counters:before {
	background: var(--blue1);
	opacity: .5;
}

.blue-counters:after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
    background: url(/wp-content/themes/b2-core/assets/imgs/icons/mullets-symbol.svg) no-repeat 330% center;
    width: 100%;
    height: 100%;
    z-index: -1;
    opacity: .03;
}

.red-counters > *, .blue-counters > * {
	font-size: 2em;
	font-weight: 700;
}

.red-counters > * > div, .blue-counters > * > div {
	font-size: 3.6em;
	line-height: 0.9;
}

.container-basic .wp-block-group {
	margin-bottom: 5em;
}

.container-basic .fw-block.right-img, .container-basic .fw-block.left-img {
	width: 90%;
	margin-left: 10%;
}

.container-basic .fw-block.left-img {
	margin-left: 0;
}

.nbm {
	margin-bottom: 0 !important;
}

.get-quote > .wp-block-button__link {
	color: var(--red1);
}

.get-quote > .wp-block-button__link:after {
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/red-right-arrow.svg) no-repeat right center;
	background-size: contain;
}

.container-basic:after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/mullets-symbol.svg) no-repeat right bottom;
	width: 100%;
	height: 100%;
	z-index: -1;
	opacity: .05;
}

.container-basic {
	position: relative;
}

#work > h2, #reviews > h2 {
	font-size: 1.8em;
	padding-left: 2.5em;
}

#work > h2 > a, #reviews > h2 > a {
	font-size: 0.5em;
	border-bottom: 1px solid;
	display: inline-block;
	line-height: 1;
	margin-left: 1em;
	text-transform: uppercase;
	font-weight: 400;
}

#reviews {
	background: #0055a6a6;
	color: white;
	padding-bottom: 5em;
	overflow-x: hidden;
}

#reviews > h2 {
	margin-top: 0.15em;
	padding-top: 1.6em;
}

.container-basic .wp-block-group:last-child {
	margin-bottom: 1em;
}

#work > h2 > a {
	color: var(--blue1);
}

div.splide[id*="-carousel"]:before, div.splide[id*="-carousel"]:after {
	content: "";
	width: 5em;
	background: linear-gradient(90deg, white, transparent);
	height: 100%;
	position: absolute;
	top: 0;
	z-index: 1;
	pointer-events: none;
}

div.splide[id*="-carousel"]:after {
	background: linear-gradient(90deg, transparent, white);
	right: 0;
}

div.splide[id="reviews-carousel"]:before {
	background: linear-gradient(90deg, #5990c5, transparent);
}

div.splide[id="reviews-carousel"]:after {
	background: linear-gradient(90deg, transparent, #5990c5);
}

div.splide[id="reviews-carousel"]:before, div.splide[id="reviews-carousel"]:after {
	height: 125%;
}

#work img {height: 100%;object-fit: cover;}

#reviews-carousel .splide__track {
	overflow: visible !important;
	max-width: 100vw;
}

#reviews blockquote {
	background: #ffffffb3;
	color: var(--black1);
	margin: 0;
	padding: 2.5em 3em;
	font-size: 0.9em;
	line-height: 1.75;
	height: 100%;
}

#reviews blockquote:before {
	content: "";
	width: 4em;
	height: 4em;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/blue-quote.svg) no-repeat left top;
	background-size: contain;
	position: absolute;
	left: -1.5em;
	top: 0;
}

#reviews blockquote cite {
	position: absolute;
	bottom: -1.8em;
	right: -1.8em;
	display: flex;
	gap: 0.75em;
	background: #fff;
	border-radius: 50vw;
	align-items: center;
	padding-left: 1.5em;
}

#reviews blockquote cite img {
	border-radius: 50vw;
	max-width: 65px;
}

#reviews blockquote cite span.name {
	font-family: 'Outfit';
	font-style: normal;
	font-weight: 500;
	display: block;
	font-size: 1.1em;
	line-height: 1.2;
}

#reviews blockquote cite span.name > span.title {
	display: block;
	font-weight: 300;
	font-size: 0.85em;
}

#final-cta {
	background: linear-gradient(90deg, var(--blue1) 50%, #003365);
	color: #fff;
	padding: 3.6em 4em;
	display: flex;
	position: relative;
	z-index: 1;
}

#final-cta h2, #final-cta h3 {
	margin-top: 0;
	padding-bottom: 0.8em;
	font-size: 1.6em;
	border-bottom: 1px solid #ffffff80;
}

#final-cta .get-started p {
	font-size: 0.9em;
	width: 60%;
	line-height: 1.8;
}

#final-cta .get-started p > span {
	font-weight: bold;
	font-style: italic;
}

#final-cta .hq a {
	font-size: 0.8em;
	display: block;
	margin-bottom: 0.5em;
}

#final-cta .hq {
	width: 30%;
}

a.get-quote.btn {
	background: var(--red1);
	font-family: 'Outfit';
	font-weight: 500;
	padding: 1em 3.2em 1em 1.5em;
	display: inline-block;
	position: relative;
}

#final-cta .hq a.contact.btn {
	background: #ffffff1a;
	display: inline-block;
	margin-top: 0.667em;
	font-family: 'Outfit';
	font-weight: 400;
	font-size: 1em;
	padding: 0.8em 3em 0.8em 1.5em;
	position: relative;
}

a.get-quote.btn:after, a.contact.btn:after {
	content: "";
	position: absolute;
	width: 1em;
	height: 0.8em;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/right-arrow.svg) no-repeat center center;
	background-size: contain;
	display: block;
	top: 1.32em;
	right: 1.5em;
	transform: translateX(0em);
}

a.contact.btn:after { 
	top: 1.15em;
}

span.murika {
	display: block;
	background: linear-gradient(
		90deg, var(--red1) 33%, #fff, var(--blue1));
	height: 1em;
	margin: 1em;
	opacity: 0.8;
	background-size: 400% 400%;
	animation: gradient 15s ease infinite;
}

span.fine-print {
	display: flex;
	color: #fff;
	background: var(--black1);
	font-size: 0.8em;
	text-transform: uppercase;
	align-items: center;
	justify-content: space-between;
	padding: 1em 1.5em 1.1em;
}

span.fine-print ul, span.fine-print li {
	display: inline-block;
	margin: 0;
	padding: 0;
}

span.spacer {
	display: inline-block;
	padding: 0 1em;
}

span.spacer:before {
	content: "—";
	position: relative;
	top: -0.14em;
}

span.fine-print a {
	text-decoration: underline;
	padding-right: 1em;
	opacity: .75;
}

footer {
	padding-bottom: 0;
}

#final-cta:before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	background: url(/wp-content/themes/b2-core/assets/imgs/icons/mullets-symbol.svg) no-repeat right bottom;
	background-size: contain;
	width: 100%;
	height: 100%;
	z-index: -1;
	opacity: .05;
}

.primary-nav .menu > li:first-child > a {
	padding-left: 0;
}

#work {
	padding-bottom: 0.3em;
}

.mobile-only {
	display: none;
}

.primary-nav .sub-menu .menu-item-has-children > a:after {
	right: 1em;
	filter: invert(0) brightness(1);
}

.sub-menu {
	font-size: 0.86em;
	font-weight: 200;
}

.sub-menu .sub-menu {
	font-size: 0.9em;
}

.site-branding > a > svg > path:nth-child(n + 1):nth-child(-n + 21) {
	opacity: 1;
	transform: translateX(0em);
}

#hero.inner img {
	width: 100%;
	height: 50vh;
	object-fit: cover;
	object-position: center 60%;
}

.primary-nav .sub-menu a {
	border-radius: .15em;
}

p strong, ul strong, ol strong {
	font-weight: bold;
}

.solo {
	width: 60%;
	margin: 1em auto !important;
	text-align: center;
}

.solo ul {
	text-align: left;
	list-style-position: outside;
	width: 69%;
	margin: 0 auto;
}

.callout {
	background: var(--blue1);
	color: white;
}

.callout h2 {
	color: white;
}

.solo.callout {
	width: 100%;
	padding: 3em 20%;
}

h3.b2-accordion__heading button {
    color: white;
    background: var(--blue1);
    padding: 0.6em 1em;
    box-sizing: border-box;
}

.wp-block-b2-accordion-accordion.b2-accordion.solo {
    margin-top: 3em !important;
}

h3.b2-accordion__heading {
    margin: 0;
    padding-top: 1em;
}

.b2-accordion__panelInner > * {margin-top: 0;padding: 1em;background: white;}

.b2-accordion__panelInner > *:first-child {
    margin-bottom: 0;
    padding-bottom: 0;
}

.b2-accordion__panelInner > *:last-child {
    padding-bottom: 2em;
}

section.wp-block-b2-accordion-item.b2-accordion__item {
    text-align: left;
}

.solo .b2-accordion__panelInner ul {
    width: 100%;
    padding-left: 3em;
    font-size: 1em;
}

.b2-accordion__panelInner > *:not(:last-child) {
    padding-bottom: 0;
}

.wp-block-group.solo.cta {
    margin-top: 3em !important;
}

.b2-accordion__panel[hidden] {
	display: block !important;
	height: 0;
	opacity: 0;
	pointer-events: none;
	transition: all .3s ease !important;
}

.b2-accordion__panel:not([hidden]) {
	display: block !important;
	height: 100%;
	opacity: 1;
	transition: all .3s ease !important;
}

.areas-con {
    width: 50%;
    margin: 0 auto;
    background: #fff;
    padding: 2.5em;
}

.areas-served-list > div {
    display: flex;
    align-items: center !important;
}

.areas-served-list img {
    height: 6em !important;
    object-fit: cover;
    font-size: 1vw;
}

.areas-served-list {
    margin-bottom: 1em !important;
    justify-content: center;
    display: flex;
    align-items: stretch !important;
    width: 80%;
    margin-left: 10%;
}

.areas-served-list > div > div {
    width: 70% !important;
    white-space: nowrap;
}

.areas-served-list > div > div:first-child {text-align: right;}

.mb4 {
    margin-bottom: 4em !important;
}

.callout .wp-block-button__link {
    color: white;
    text-align: center;
}

.callout .wp-block-button__link:after {
    filter: brightness(0) invert(1);
}

.callout .wp-block-buttons.is-layout-flex.wp-block-buttons-is-layout-flex {
    justify-content: center;
    margin-top: 2em;
}

.map iframe {
    width: 100%;
}
.map > div > div {align-content: center !important;}

.gform_wrapper .gform_button.button {
    background: var(--red1);
    color: white;
    border: none;
    font-family: 'Outfit';
    text-transform: uppercase;
    font-weight: 600;
    font-size: 1.6em;
    padding: 0.5em 1.5em;
    cursor: pointer;
}

.sub-sect-links, .sub-sect-links > div {
    text-align: center;
    margin: 0 auto;
    display: flex;
    gap: 5em;
}

.callout p > a {
	text-decoration: underline;
}

.solo.callout .wp-block-buttons > div {width: 33%;}

.fw-block .wp-block-buttons {
    display: flex;
    flex-direction: column;
    align-content: flex-start;
    align-items: flex-start;
    gap: 1em;
    margin-top: 2em;
}

h3.wp-block-heading {
    color: var(--blue1);
    font-size: 1.4em;
    text-transform: uppercase;
    font-weight: bold;
}
.callout.vert .wp-block-buttons.is-layout-flex.wp-block-buttons-is-layout-flex {
    flex-direction: column;
    flex-wrap: nowrap;
}

.solo.callout.vert .wp-block-buttons > div {
    width: 50%;
}

.callout.vert .wp-block-buttons.is-layout-flex.wp-block-buttons-is-layout-flex {
    margin-top: 0;
}
article.legal-page {
    width: 50%;
    margin: 8em auto;
}
body.wp-singular.single-post .container-basic > article > .entry-content {
    width: 70%;
    margin-left: 15%;
    margin-top: 3em;
}
body.wp-singular.single-post .container-basic > article > .entry-content h2 {
    margin-top: 1em;
}

body.blog .container-basic > h1 {
    color: var(--blue1);
    text-transform: uppercase;
    font-weight: bold;
    text-align: center;
}

ul.post-list {
    padding: 0;
    margin: 0;
    list-style: none;
    position: relative;
    width: 80%;
    margin-left: 10%;
    margin-top: 3em;
}

li.post-list-item {
    display: flex;
    width: 50%;
}

a.post-thumbnail img {
    height: 100% !important;
    width: 100%;
    object-fit: cover;
}

a.post-thumbnail {
    display: block;
    font-size: 1vw;
    width: 50em;
    margin-right: 1em;
}

.post-categories {
    text-transform: uppercase;
    font-size: 0.7em;
}

h2.post-title {
    color: var(--blue1);
    font-weight: bold;
    font-size: 1.2em;
    margin: 0.5em 0;
    line-height: 1.25;
}

time.post-date {
    font-size: 0.7em;
}

.container-basic .post-excerpt p {
    font-size: 0.75em;
}
.gform_wrapper.gravity-theme .gfield textarea.large {
    height: 100px !important;
}
.modal__title {
    font-size: 2.5em !important;
}
.modal__close::before {
    font-size: 2.5em !important;
}

.b2-projects.b2-projects--simple {
    width: 80%;
    margin-left: 10%;
}

.b2-projects.b2-projects--simple > ul {
    display: flex;
    list-style: none;
    padding: 0;
    margin-top: 4em;
    margin-bottom: 0;
    gap: 1em;
}

.b2-projects.b2-projects--simple > ul figure img {
    height: 20em;
    object-fit: cover;
	width: 100%;
}

figcaption.b2-project-card__caption {
    background: linear-gradient(360deg, #0000009e, transparent);
}

figcaption.b2-project-card__caption > span {
    color: white;
    font-weight: bold;
    text-transform: uppercase;
}

.solo.callout a.partner-logo img {
    filter: grayscale(1) brightness(2);
    opacity: .75;
	max-height: 5em;
}

.solo.callout a.partner-logo[href*="windoor"] img, .solo.callout a.partner-logo[href*="pgt"] img, .solo.callout a.partner-logo[href*="cgi"] img, .solo.callout a.partner-logo[href*="cws"] img, .solo.callout a.partner-logo[href*="euro"] img, .solo.callout a.partner-logo[href*="provia"] img {
    filter: invert(1) grayscale(1) brightness(2);
}

.solo.callout a.partner-logo[href*="plastpro"] img {
	filter: brightness(10);
}

a.partner-logo img {
    width: 100%;
    height: 100%;
    display: block;
}

a.partner-logo {
    display: block;
    padding: 0 1em;
    position: relative;
}

.partners-splide .splide__list > * {display: flex;align-items: center; /* Centers content vertically */justify-content: center; /* Centers content horizontally */}

.splide__arrow {
    background: var(--blue1) !important;
}
.splide__arrow > svg {
    filter: invert(1);
}
.wp-block-buttons.is-content-justification-center {
    gap: 3em;
}
.wp-block-b2-accordion-accordion.b2-accordion .b2-accordion__panelInner img {
    width: auto;
    max-width: 10em;
    max-height: 8em;
    margin-left: 1em;
}

figure.invert img {
    filter: invert(1);
}
.wp-block-group.map.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-ad2f72ca.wp-block-group-is-layout-flex, .wp-block-group.map.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-ad2f72ca.wp-block-group-is-layout-flex > div, .wp-block-group.map.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-ad2f72ca.wp-block-group-is-layout-flex > div > div {
    width: 100% !important;
}
.container-basic .gform_wrapper .gform_button.button {
    font-size: 1.2em;
}

#work-carousel-list a {
    pointer-events: none;
}

body.single-project .entry-content {
    padding: 3em 5em;
}

body.single-project .entry-content .b2-gallery-grid a {
    display: block;
}

body.single-project .entry-content .b2-gallery-grid a img {
    width: 100%;
    height: 14em;
    object-fit: cover;
}



/* animation kfs */
@keyframes wiggle {
	0% { transform: rotate(0deg); }
	25% { transform: rotate(15deg); }
	50% { transform: rotate(-15deg); }
	75% { transform: rotate(15deg); }
	100% { transform: rotate(0deg); }
}

@keyframes move-right {
	0% {transform: translateX(0);}
	50% {transform: translateX(2.8em);}
	100% {transform: translateX(0);}
}

@keyframes gradient {
	0% {background-position: 0% 50%;}
	50% {background-position: 100% 50%;}
	100% {background-position: 0% 50%;}
}






/* hover state customizations */
.nav-tr-btns a.get-quote:hover:after {
	animation: move-right 3s ease-in-out 1.5s 1 normal paused;
}
a.phone:hover:before {
	animation: wiggle 1.5s ease infinite normal;
}
span.fine-print a:hover {
	opacity: 1;
}
.primary-nav .sub-menu .menu-item-has-children > a:hover:after {
	filter: invert(1) brightness(10);
	opacity: 1;
}
.nav-tr-btns a.get-quote:hover:after {
	transform: translateX(2.8em);
}
.social-links > a:hover {
	opacity: 1;
}
.wp-block-button__link:hover:after {
	transform: translateX(1.2em);
}
a.get-quote.btn:hover:after, a.contact.btn:hover:after {
	transform: translateX(.5em);
}
.primary-nav .sub-menu a:hover, .primary-nav .sub-menu a:focus-visible {
	background: var(--blue1);
	color: white;
	transition-duration: .15s;
}
.solo.callout a.partner-logo:hover img {
    opacity: 1;
}
a.partner-logo[href*="windoor"] {
    filter: invert(1);
}
.container-basic .wp-block-column p a {
    color: var(--blue1);
    font-weight: bold;
    text-decoration: underline;
}






/* scrolled */

.scrolled .nav-tr-btns {
	top: 1vw;
	right: 1vw;
}

.scrolled .site-header .site-branding {
	width: 12vw;
}

.scrolled .site-header {
	padding: 1vw 1vw;
}

.scrolled .primary-nav .menu > li > a {
	font-size: 0.7em;
}

.scrolled .nav-tr-btns a.get-quote {
	font-size: 0.7em;
}

.scrolled a.phone {
	font-size: 0.7em;
}

.scrolled .primary-nav > ul {
	gap: 0.8em;
}

.scrolled .site-branding > a > svg > path:nth-child(n + 1):nth-child(-n + 22) {
	opacity: 0;
	transform: translateX(-5em);
}







/* .in-vp starting position common rules */
/* .SELECTORS-TO-ANIMATE-HERE {
opacity: 0;
transition: all 2s ease;
} */

/* slow down for elements near the bottom of a box to account for extra scroll */
/* .SELECTORS-TO-SLOW-HERE {
transition-duration: 4s;
} */


/* .in-vp starting state for individual elements */
/* .vid-hov-frame .inner-frame {
transform: translate(20em, -10em);
}
.home-vert-split .mid-img {
transform: translate(20em, 0);
}
.team-home-block .team-logos a, .naples-honors .accolades > li {
transform: translateY(5em);
}
#send-msg > div {
transform: translateY(10em);
} */


/* .in-vp return to true location when in view */
/* .SELECTORS-TO-ANIMATE-HERE {
transform: translate(0, 0);
opacity: 1;
} */


/* staggered delay for pseudolist elements */
/* .team-logos > a:nth-child(1), .naples-honors .accolades > li:nth-child(1) {
transition-delay: 0.2s;
}
.team-logos > a:nth-child(2), .naples-honors .accolades > li:nth-child(2) {
transition-delay: 0.4s;
}
.team-logos > a:nth-child(3), .naples-honors .accolades > li:nth-child(3) {
transition-delay: 0.6s;
}
.team-logos > a:nth-child(4), .naples-honors .accolades > li:nth-child(4) {
transition-delay: 0.8s;
}
.team-logos > a:nth-child(5), .naples-honors .accolades > li:nth-child(5) {
transition-delay: 1s;
}
.team-logos > a:nth-child(6), .naples-honors .accolades > li:nth-child(6) {
transition-delay: 1.2s;
} */


/* set base transitions */
.site-header, .site-header .site-branding, .site-header .site-branding svg path, .nav-tr-btns, a.phone:before, .social-links > a, .primary-nav .menu > li > a, .nav-tr-btns > *, .primary-nav > ul, .sub-menu a, 
span.fine-print a, #hero > .ft-proj-img, a.partner-logo img, .nav-tr-btns a.get-quote:after, .wp-block-button__link:after, a.get-quote.btn:after, a.contact.btn:after, .primary-nav .sub-menu .menu-item-has-children > a:after {
	transition: all .3s ease;

}








/* responsiveness */

@media (min-aspect-ratio: 2/1) and (min-width: 1200px) { /* wide/short desktop/laptop */
	#hero > .ft-proj {
		top: 40%;
	}
}

/* @media (min-width: 1921px) {

}
@media (max-width: 1440px) {

}
@media (max-width: 1280px) {

} */
@media (max-width: 991px) {
	body {
		max-width: 100vw;
		font-size: 2vw;
	}
	body.home #hero {
		height: 60vh;
	}
	.site-header .site-branding {
		width: 25vw;
	}
	.site-header {
		display: block;
		padding: 1em 2em;
	}
	.nav-tr-btns {
		top: 1em;
		right: 2em;
	}
	.primary-nav > ul {
		gap: 0;
		justify-content: space-between;
	}
	.primary-nav .menu-item-has-children > a::after {
		top: 40% !important;
		width: 1em !important;
	}
	.home-hero-lower > .hq-info {
		padding-right: 2em;
	}
	#hero > .ft-proj-img {
		position: absolute;
	}
	#hero > .ft-proj {
		top: 40%;
		font-size: 1.5em;
		width: 67%;
	}
	.home-hero-lower > .news > a.news-title {
		font-size: 1.5em;
	}
	body.home #hero {
		padding: 0 2em;
	}
	.container-basic .left-img figure, .container-basic .right-img figure {
		padding-left: 0;
		padding-right: 0;
	}
	.container-basic .left-img {
		width: 90%;
		margin-left: 5%;
	}
	.container-basic .fw-block.right-img, .container-basic .fw-block.left-img {
		margin-left: 5%;
	}
	.red-counters > * > div, .blue-counters * > div {
		font-size: 2em;
	}
	.red-counters > .left, .red-counters > .right, .blue-counters > .left, .blue-counters > .right {
		width: 50%;
	}
	#final-cta .get-started p {
		width: 80%;
	}
	span.fine-print {
		font-size: 0.67em;
	}
	.solo.callout {
		padding: 5%;
	}
	.solo ul {
		width: 100%;
	}
	.solo {
		width: 100%;
	}
	
.entry-content {
    padding: 0 1em;
}


	.scrolled .site-header {
		padding: 1em 2em;
	}
	.scrolled .site-header .site-branding {
		width: 15vw;
	}
	.scrolled .nav-tr-btns {
		top: 1em;
		right: 2em;
	}
	.scrolled .primary-nav .menu > li > a {
		font-size: 0.8em;
	}

}

@media (max-width: 767px) {
	body {
		font-size: 2.25vw;
	}
	#work > h2, #reviews > h2 {
		font-size: 1.8em;
		padding-left: 1.2em;
	}
	#reviews blockquote {
		font-size: 1.2em;
	}
	#reviews blockquote cite {
		position: relative;
		width: fit-content;
		bottom: -1em;
		right: -7em;
	}
	#reviews blockquote cite span.name {
		font-size: 1.5em;
	}
	#reviews blockquote:before {
		left: 15em;
		top: -1.5em;
	}
	#reviews > h2 {
		margin-bottom: 1.5em;
	}
	span.fine-print {
		flex-direction: column;
		padding: 2em 1em 7em 1em;
		font-size: 1.1em;
		gap: 2em;
	}
	.primary-nav ul > li > a:after {
		display: none;
	}
	.primary-nav .menu > li > a {
		padding-right: 0;
		padding-left: 0;
	}
	.primary-nav .menu > li > a {
		font-size: 1em;
	}
	.primary-nav > ul {
		gap: 0.5em !important;
	}
	.mobile-only {
		display: block;
	}
	.site-header > .nav-tr-btns {
		display: none;
	}
	.nav-tr-btns.mobile-only {
		position: fixed;
		bottom: 0;
		top: auto;
		right: 0;
		left: 0;
		display: flex;
		align-items: stretch;
		align-content: stretch;
		justify-content: space-between;
		z-index: 2;
		background: #ffffffb8;
		padding-top: 0.2em;
		backdrop-filter: blur(5px);
	}
	.nav-tr-btns.mobile-only > * {
		font-size: 2em;
	}
	.nav-tr-btns.mobile-only a.get-quote {
		font-size: 1.2em;
		padding: 1em;
		margin-right: 0.2em;
		line-height: 1.9;
		white-space: nowrap;
	}
	.nav-tr-btns.mobile-only a.get-quote:after {
		display: none;
	}
	.nav-tr-btns.mobile-only > a.phone {
		font-size: 1.2em;
		line-height: 2.1;
		margin-left: 0.2em;
	}
	.nav-tr-btns.mobile-only > a.phone:before {
		height: 2em;
	}
	.nav-tr-btns.mobile-only > .social-links > a {
		opacity: 1;
		width: 2em;
		background: var(--black1);
	}
	.site-header .site-branding {
		margin: 0 auto;
		width: 33vw;
	}
	.container-basic p {
		font-size: 1.2em;
	}
	#hero.home .ft-proj span.left, #hero.home .ft-proj span.right {
		width: 1.67em;
		height: 2em;
		margin-right: 1.5em;
	}
	#hero > .ft-proj h2 {
		font-size: 2em;
	}
	.hq-info a {
		font-size: 1.1em;
	}
	h2.wp-block-heading {
		font-size: 2.5em;
	}
	.wp-block-button__link {
		font-size: 1.5em;
	}
	#work > h2 > a, #reviews > h2 > a {
		font-size: 0.7em;
	}
	div.splide[id*="-carousel"]:before, div.splide[id*="-carousel"]:after {
		width: 3em;
	}
	#final-cta {
		padding: 2.5em;
	}
	#final-cta .get-started p {
		font-size: 1.1em;
		width: 90%;
	}
	#final-cta .hq a {
		font-size: 1em;
	}
	a.get-quote.btn {
		font-size: 1.3em;
	}
	article.legal-page {
    width: 90%;
}
	.sub-sect-links, .sub-sect-links > div {
    gap: 3em;
    flex-wrap: wrap;
    justify-content: center;
}
	.solo.callout .wp-block-buttons > div {
    width: 70%;
}
	h3.b2-accordion__heading {
    font-size: 1.5em;
}
	.solo.callout.vert .wp-block-buttons > div {
    width: 75%;
}
	.areas-con {
    width: 100%;
    text-align: center;
}

.areas-served-list img {
    height: 20em !important;
}

.areas-served-list > div {
    gap: 0;
}
	.solo ul.wp-block-list {
    font-size: 1.2em;
}
	li.post-list-item {
    width: 100%;
}

a.post-thumbnail {
    width: 80em;
}

.post-categories {
    font-size: 1.2em;
}

h2.post-title {
    font-size: 1.8em;
}

time.post-date {
    font-size: 1.2em;
}

.container-basic .post-excerpt p {
    font-size: 1.2em;
}
	body.wp-singular.single-post .container-basic > article > .entry-content {
    width: 90%;
    margin-left: 5%;
}
	span.fine-print a {
    padding-right: .1em;
}
	img.wp-image-171 {
    display: none;
}
	.gform_wrapper.gravity-theme input:not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file]), textarea {
    font-size: 1.5em;
    min-height: 0;
    padding: 0.5em;
}
	a.partner-logo[href*="apogee"] img {max-height: 15em;}
	.solo {
    padding-left: 1em;
    padding-right: 1em;
}
	
	
	.scrolled .site-header .site-branding {
		width: 27vw;
		transform: translateX(2.5em);
	}
	.scrolled .primary-nav .menu > li > a {
		font-size: 1em;
	}

}