.elementor .video-lightbox{/*
 * Video lightbox
 * Custom CSS on the global class video-lightbox (Elementor wraps it in .elementor .video-lightbox { ... }).
 * Markup + script: video-lightbox-widget.html, in an HTML widget inside the same container as the trigger.
 */

/** Settings **/
--video-lightbox-max: 1200px;
--video-lightbox-accent: var(--site-accent-color);
--video-lightbox-ease: var(--ease-out);

/* the widget's wrappers are positioned and take space in the container; step them aside */
:is(.elementor-widget-html, .elementor-widget-container):has(.video-lightbox-dialog){ display: contents !important; }

/* no page scroll behind the open viewer */
:root:has(& .video-lightbox-dialog[open]){ overflow: hidden !important; }  /* the theme forces vertical scrolling on the page */


/* ---------- Dialog ---------- */
.video-lightbox-dialog{
width: min(92vw, var(--video-lightbox-max), calc((100svh - 160px) * 16 / 9));  /* always fits the screen height */
max-width: none;
max-height: none;
margin: auto;
padding: 0;
border: 0;
background: transparent;
overflow: visible;
color: #FFF;
opacity: 0;
translate: 0 16px;
scale: .985;
transition:
  opacity .4s ease,
  translate .6s var(--video-lightbox-ease),
  scale .6s var(--video-lightbox-ease),
  overlay .4s allow-discrete,
  display .4s allow-discrete;
}
.video-lightbox-dialog[open]{
opacity: 1;
translate: 0 0;
scale: 1;
}
@starting-style{
.video-lightbox-dialog[open]{ opacity: 0; translate: 0 16px; scale: .985; }
}

.video-lightbox-dialog::backdrop{
background: rgba(8, 12, 22, 0);
-webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
transition:
  background .4s ease,
  backdrop-filter .4s ease,
  -webkit-backdrop-filter .4s ease,
  overlay .4s allow-discrete,
  display .4s allow-discrete;
}
.video-lightbox-dialog[open]::backdrop{
background: rgba(8, 12, 22, .86);
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
}
@starting-style{
.video-lightbox-dialog[open]::backdrop{ background: rgba(8, 12, 22, 0); -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); }
}


/* ---------- Video frame ---------- */
.video-lightbox-frame{
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
background: #000;
box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}
.video-lightbox-frame iframe{
position: absolute;
inset: 0;
display: block;
width: 100%;
height: 100%;
border: 0;
}


/* ---------- Close (matches the hero video toggle) ---------- */
.video-lightbox-close{
position: absolute;
top: -60px;
right: 0;
display: grid;
place-items: center;
width: 44px;
height: 44px;
margin: 0;
padding: 0 !important;
border: 1px solid rgba(255, 255, 255, .85) !important;
border-radius: 50% !important;
background: rgba(10, 14, 24, .28) !important;
color: #FFF !important;
cursor: pointer;
-webkit-tap-highlight-color: transparent;
box-shadow: inset 0 0 0 0 var(--video-lightbox-accent);  /* inset shadow fill: the icon stays on top */
transition: box-shadow .55s var(--video-lightbox-ease), border-color .45s ease;
}
.video-lightbox-close:is(:hover, :focus-visible){
box-shadow: inset 0 0 0 23px var(--video-lightbox-accent);
border-color: var(--video-lightbox-accent) !important;
}
.video-lightbox-close:focus-visible{
outline: 2px solid #FFF;
outline-offset: 4px;
}
.video-lightbox-close svg{
display: block;
width: 18px;
height: 18px;
fill: none;
stroke: currentColor;
stroke-width: 1.75;
stroke-linecap: round;
stroke-linejoin: round;
}


/* ---------- Phones: full width ---------- */
@media (max-width: 767px){
.video-lightbox-dialog{ width: 100vw; }
.video-lightbox-close{ top: -56px; right: 12px; }
}

@media (prefers-reduced-motion: reduce){
.video-lightbox-dialog,
.video-lightbox-dialog::backdrop,
.video-lightbox-close{ transition: none; }
}\n}.elementor .cutout-buttons-container{/* Cutout buttons: any button placed inside this container */
--cutout-background: rgba(21, 24, 30, .17);
--cutout-background-hover: rgba(255, 255, 255, .81);
--cutout-text-color: var(--on-dark-color);
--cutout-text-color-hover: #1a1a1a;  /* knockout: the video shows through wherever it's lighter than this */
--cutout-border: rgba(255, 255, 255, .85);
--cutout-height: 56px;
--cutout-pad-x: clamp(24px, 2.6vw, 40px);
--cutout-gap: clamp(12px, 1.4vw, 20px);
--cutout-speed: .45s;
--cutout-ease: var(--ease-out);

/* side by side, every button as wide as the longest label */
display: grid !important;
grid-auto-flow: column;
grid-auto-columns: minmax(0, 1fr);
justify-content: center;
align-items: stretch;
gap: var(--cutout-gap) !important;
width: fit-content !important;
max-width: 100%;
margin-inline: auto !important;
padding: 0 !important;

.e-con-inner { display: contents !important; }

:is(a, button):is(.cutout-button, .e-button-base, .elementor-button) {
display: inline-flex !important;
align-items: center;
justify-content: center;
width: 100% !important;
min-width: 0;
min-height: var(--cutout-height);
margin: 0;
padding: 10px var(--cutout-pad-x) !important;
border: 1px solid var(--cutout-border) !important;
border-radius: 0 !important;
background-color: var(--cutout-background) !important;
color: var(--cutout-text-color) !important;
font-family: var(--label-font-family) !important;
font-size: var(--label-font-size) !important;
font-weight: var(--label-font-weight) !important;
line-height: 1.2 !important;
letter-spacing: .16em !important;
text-align: center;
text-transform: uppercase;
text-decoration: none !important;
text-wrap: balance;
-webkit-backdrop-filter: blur(4px);
backdrop-filter: blur(4px);
transition:
  background-color var(--cutout-speed) var(--cutout-ease),
  color calc(var(--cutout-speed) * .4) var(--cutout-ease),
  border-color var(--cutout-speed) var(--cutout-ease);
}
:is(a, button):is(.cutout-button, .e-button-base, .elementor-button) :is(span, p) {
color: inherit !important;
font: inherit !important;
letter-spacing: inherit !important;
}

/* solid white with the letters cut out to the video; hover only where a mouse can hover */
@media (hover: hover) {
:is(a, button):is(.cutout-button, .e-button-base, .elementor-button):hover {
  background-color: var(--cutout-background-hover) !important;
  border-color: var(--cutout-background-hover) !important;
  color: var(--cutout-text-color-hover) !important;
  text-shadow: none !important;
  mix-blend-mode: lighten;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
}
:is(a, button):is(.cutout-button, .e-button-base, .elementor-button):focus-visible {
background-color: var(--cutout-background-hover) !important;
border-color: var(--cutout-background-hover) !important;
color: var(--cutout-text-color-hover) !important;
text-shadow: none !important;
mix-blend-mode: lighten;
outline: 2px solid var(--on-dark-color);
outline-offset: 4px;
}

/* the blend only reaches the video if no wrapper between them forms its own layer */
.e-background-video-content-base:has(&) { z-index: auto !important; }

/* phones: side by side, sharing the row evenly; stacks on its own when the labels don't fit (narrow screens, zoom, large text) */
@media (max-width: 767px) {
display: flex !important;
flex-wrap: wrap;
width: 100% !important;
max-width: none;
--cutout-height: 52px;
--cutout-pad-x: 16px;

:is(a, button):is(.cutout-button, .e-button-base, .elementor-button) {
  flex: 1 1 0;
  width: auto !important;
  min-width: fit-content;
  letter-spacing: .1em !important;
}
}

@media (forced-colors: active) {
:is(a, button):is(.cutout-button, .e-button-base, .elementor-button) { border-color: ButtonText !important; mix-blend-mode: normal !important; }
}

@media (prefers-reduced-motion: reduce) {
:is(a, button):is(.cutout-button, .e-button-base, .elementor-button) { transition: none !important; }
}\n}.elementor .flanked-heading{width:100%;display:flex;justify-content:center;/* Heading side rules (element Custom CSS on the heading) */
--hl-color: var(--site-line-color);
--hl-weight: 1px;
--hl-gap: .6em;
--hl-min: 32px;

display: flex !important;
align-items: center;
justify-content: center;
gap: var(--hl-gap);
text-align: center;
view-timeline: --hl block;  /* named so the pseudo-elements can follow this heading's scroll position */

&::before,
&::after{
content: "";
flex: 1 1 0;
min-width: var(--hl-min);
height: var(--hl-weight);
background: var(--hl-color);
}

/* lines draw outward from the title as it scrolls in (aw-wipe from site CSS) */
@supports (animation-timeline: view()){
@media (prefers-reduced-motion: no-preference){
  &::before,
  &::after{
    animation: erw-wipe both cubic-bezier(.2, .7, .2, 1);
    animation-timeline: --hl;
    animation-range: entry 10% cover 35%;
  }
  &::before{ transform: scaleX(-1); }  /* mirrored so the left line grows away from the title */
}
}

@media (max-width: 480px){
&::before,
&::after{ display: none; }
}\n}.elementor .awards-container{/*
 * Awards & Recognition
 * Element-level custom CSS on .awards-container (nested under the element selector).
 * First .awards-list-item uses the featured layout.
 * Keyframes aw-rise / aw-wipe are in page CSS.
 */

/* config */
--aw-navy: var(--site-heading-color);
--aw-maroon: var(--site-accent-color);
--aw-muted: var(--site-muted-text-color);
--aw-line: var(--site-line-light-color);
--aw-max: var(--site-max-width);
--aw-side: var(--site-gutter);
--aw-ease: var(--ease-out);

display: grid !important;
grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
grid-template-areas:
"header  header"
"feature list";
column-gap: clamp(40px, 5.5vw, 96px);
row-gap: clamp(32px, 4.5vw, 64px);
align-items: stretch;
padding: clamp(80px, 10vw, 150px) max(var(--aw-side), calc((100% - var(--aw-max)) / 2)) clamp(72px, 9vw, 128px);
background: #fff;

/* flatten so the featured card sits on the section grid */
.e-con-inner,
.awards-primary-container{ display: contents !important; }
.elementor-widget{ margin: 0; }

/* ---------- Grid placement ----------
 Editor adds wrappers that the frontend doesn't; match the element or its wrapper. */
:is(.awards-header, :has(.awards-header)){ grid-area: header; align-self: end; justify-self: stretch; text-align: center; }
:is(.awards-primary-container, .awards-primary-container > .e-con-inner) > :is(.awards-featured-container, :has(.awards-featured-container)){ grid-area: feature; }
:is(.awards-list-container, :has(> .awards-list-container)){ grid-area: list; }

/* ---------- Header ---------- */
:is(.awards-header, .awards-header :is(h1, h2, h3, h4, p, span)){
margin: 0;
color: var(--aw-navy);
font-size: clamp(38px, 10vw, 60px);  /* 60px from ~600px wide up; scales down on phones */
font-weight: 700;
line-height: 1;
letter-spacing: -.02em;
text-align: center;
text-wrap: balance;
}

/* ---------- Featured press card ---------- */
.awards-featured-container{
display: flex !important;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
gap: 0;
width: 100%;
min-width: 0;
padding: 0;
}
/* Featured image: style the img directly (no wrapper on frontend) */
.awards-featured-image{ width: 100% !important; margin: 0 0 28px !important; padding: 0; }
:is(img.awards-featured-image, .awards-featured-image:not(img) img){
display: block;
width: 100% !important;
height: auto !important;
max-width: none !important;
aspect-ratio: 16 / 9;
border-radius: 0;
object-fit: cover;
background: #e6e7ec;
}
.awards-featured-image:not(img) img{ margin: 0 !important; }
/* editor wrapper */
:is(.awards-featured-container, .awards-featured-container > .e-con-inner) > :has(.awards-featured-image){ width: 100% !important; align-self: stretch; }

/* Hover light sweep. Drawn on the card, sized to the 16:9 image at the top. */
.awards-featured-container{ position: relative; isolation: isolate; }
.awards-featured-container::after{
content: "";
position: absolute;
top: 0; left: 0;
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
z-index: 2;
background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, .26) 50%, transparent 60%) no-repeat;
background-size: 300% 100%;
background-position: 100% 0;
border: 0; border-radius: 0; opacity: 1; mix-blend-mode: normal;
pointer-events: none;
}
.awards-featured-container:has(.awards-featured-image:hover)::after{
background-position: 0% 0;
transition: background-position 1.4s cubic-bezier(.45, 0, .3, 1);
}

:is(.awards-featured-details, .awards-featured-details :is(p, span, h4, h5, h6)){
margin: 0;
color: var(--aw-muted);
font-size: 16px;
font-weight: 500;
letter-spacing: .04em;
line-height: 1.4;
}
.awards-featured-details{ margin-bottom: 12px !important; }

:is(.awards-featured-title, .awards-featured-title :is(h1, h2, h3, h4, p, span)){
margin: 0;
max-width: 26ch;
color: var(--aw-navy);
font-size: clamp(24px, 2.2vw, 34px);
text-wrap: balance;
}
.awards-featured-title{ margin-bottom: 26px !important; }

/* Link */
.awards-featured-link-container{
position: relative;
display: inline-flex !important;
flex-direction: row;
align-items: center;
gap: 18px;
width: auto !important;
margin: 0;
padding: 0 0 12px;
border: 0;
border-bottom: 1px solid var(--aw-line);
background: none;
color: var(--aw-navy);
text-decoration: none;
cursor: pointer;
}
.awards-featured-link-container::after{
content: "";
position: absolute;
inset: auto 0 -1px 0;
width: auto; height: 1px;
background: var(--aw-navy);
border: 0; border-radius: 0; opacity: 1; mix-blend-mode: normal;
transform: scaleX(0);
transform-origin: 100% 50%;
transition: transform .7s var(--aw-ease);
pointer-events: none;
}
.awards-featured-link-container:hover::after,
.awards-featured-link-container:focus-visible::after{ transform: scaleX(1); transform-origin: 0 50%; }
.awards-featured-link-container:focus-visible{ outline: 2px solid var(--aw-maroon); outline-offset: 6px; }

:is(.awards-featured-link-text, .awards-featured-link-text :is(p, span, a, h4, h5, h6)){
margin: 0;
color: inherit !important;
font-size: 16px;
font-weight: 600;
text-decoration: none;
}

/* Arrow circle (Icon widget, inline SVG, or img) */
.awards-featured-link-svg{
display: grid !important;
place-items: center;
flex: none;
box-sizing: border-box;
width: 46px !important;
height: 46px !important;
margin: 0;
padding: 0;
border: 1px solid var(--aw-navy);
border-radius: 50%;
color: var(--aw-navy);
background: transparent;
box-shadow: inset 0 0 0 0 var(--aw-maroon);
transition: box-shadow .55s var(--aw-ease), color .45s var(--aw-ease), border-color .45s var(--aw-ease), transform .6s var(--aw-ease);
}
:is(svg, img).awards-featured-link-svg{ padding: 14px; overflow: visible;  }  /* class on svg/img directly */
.awards-featured-link-svg :is(.elementor-widget-container, .elementor-icon-wrapper, .elementor-icon, a){
display: grid; place-items: center;
background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important;
color: inherit !important; line-height: 1;
}
.awards-featured-link-svg :is(svg, img){ display: block; width: 16px !important; height: 16px !important; max-width: none; }
.awards-featured-link-svg :is(path, line, polyline, polygon){ stroke: currentColor;fill:none !important; }
.awards-featured-link-container:hover .awards-featured-link-svg{
box-shadow: inset 0 0 0 24px var(--aw-maroon);
border-color: var(--aw-maroon);
color: #fff;
}
.awards-featured-link-container:hover :is(img.awards-featured-link-svg, .awards-featured-link-svg img){ filter: brightness(0) invert(1); }

/* ---------- Awards list (stretches to featured card height) ---------- */
.awards-list-container{
display: flex !important;
flex-direction: column;
align-self: stretch;
gap: 0;
width: 100%;
min-width: 0;
height: 100%;
margin: 0;
padding: 0;
border-top: 1px solid var(--aw-line);
}
.awards-list-item{
position: relative;
flex: 1 1 auto;
display: grid !important;
grid-template-columns: clamp(96px, 9vw, 180px) minmax(0, 1fr) auto;
grid-template-areas: "image info number";
align-items: center;
gap: clamp(18px, 2vw, 32px);
width: 100%;
min-height: 0;
margin: 0;
padding: clamp(20px, 2vw, 30px) 0;
border-bottom: 1px solid var(--aw-line);
}
.awards-list-item::after{
content: "";
position: absolute;
inset: auto 0 -1px 0;
width: auto; height: 2px;
background: var(--aw-maroon);
border: 0; border-radius: 0; opacity: 1; mix-blend-mode: normal;
transform: scaleX(0);
transform-origin: 0 50%;
transition: transform .8s var(--aw-ease);
pointer-events: none;
}
.awards-list-item:hover::after{ transform: scaleX(1); }

:is(.awards-list-item, .awards-list-item > .e-con-inner) > :is(.awards-item-image, :has(.awards-item-image)){ grid-area: image; display: flex; align-items: center; justify-content: flex-start; }
:is(.awards-list-item, .awards-list-item > .e-con-inner) > :is(.awards-item-info, :has(.awards-item-info)){ grid-area: info; min-width: 0; }
:is(.awards-list-item, .awards-list-item > .e-con-inner) > :is(.awards-item-number, :has(.awards-item-number)){ grid-area: number; justify-self: end; }

.awards-item-image :is(.elementor-widget-container, a){ display: flex; align-items: center; }
:is(.awards-item-image img, img.awards-item-image){
display: block;
width: auto !important;
height: auto !important;
max-width: 100% !important;
max-height: clamp(64px, 7.4vw, 145px) !important;
margin: 0 !important;
object-fit: contain;
transition: transform .6s var(--aw-ease);
}
.awards-list-item:hover :is(.awards-item-image img, img.awards-item-image){ transform: translateY(-3px); }

.awards-item-info{
display: flex !important;
flex-direction: column;
justify-content: center;
gap: 6px;
width: auto !important;
min-width: 0;
padding: 0;
}
:is(.awards-item-header, .awards-item-header :is(h1, h2, h3, h4, p, span)){
margin: 0;
color: var(--aw-navy);
font-size: clamp(18px, 1.45vw, 36px);
font-weight: 700;
line-height: 1.2;
letter-spacing: -.005em;
}
:is(.awards-item-subheader, .awards-item-subheader :is(p, span, h4, h5, h6)){
margin: 0;
color: var(--aw-muted);
font-size: clamp(16px, 1.1vw, 18px);
font-weight: 400;
line-height: 1.45;
}
:is(.awards-item-number, .awards-item-number :is(h2, h3, h4, p, span)){
margin: 0;
color: var(--aw-muted);
font-size: 16px;
font-weight: 600;
letter-spacing: .06em;
line-height: 1;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}

/* First item: featured layout */
.awards-list-item:first-child{
flex-grow: 1.4;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-areas:
  "number image"
  "info   image";
align-content: center;
row-gap: 14px;
}
.awards-list-item:first-child :is(.awards-item-number, :has(.awards-item-number)){ justify-self: start; }
.awards-list-item:first-child :is(.awards-item-image, :has(.awards-item-image)){ justify-content: flex-end; }
.awards-list-item:first-child :is(.awards-item-image img, img.awards-item-image){ max-height: clamp(84px, 8vw, 128px) !important; }
.awards-list-item:first-child :is(.awards-item-number, .awards-item-number :is(h2, h3, h4, p, span)){
color: var(--aw-maroon);
font-size: clamp(64px, 6.2vw, 108px);
font-weight: 700;
line-height: .88;
letter-spacing: -.03em;
}
.awards-list-item:first-child :is(.awards-item-header, .awards-item-header :is(h1, h2, h3, h4, p, span)){
font-size: clamp(20px, 1.7vw, 28px);
}

/* ---------- Entrance (scroll-driven; keyframes in page CSS) ---------- */
@supports (animation-timeline: view()){
@media (prefers-reduced-motion: no-preference){
  .awards-header,
  .awards-featured-details,
  .awards-featured-title,
  .awards-featured-link-container,
  .awards-list-item{
    animation: aw-rise both cubic-bezier(.2, .7, .2, 1);
    animation-timeline: view();
    animation-range: entry 5% cover 28%;
  }
  :is(img.awards-featured-image, .awards-featured-image:not(img) img){
    animation: erw-wipe both cubic-bezier(.65, 0, .35, 1);
    animation-timeline: view();
    animation-range: entry 0% cover 35%;
  }
  .awards-list-item:nth-child(2){ animation-range: entry 12% cover 33%; }
  .awards-list-item:nth-child(3){ animation-range: entry 19% cover 38%; }
  .awards-list-item:nth-child(4){ animation-range: entry 26% cover 43%; }
}
}

/* ---------- Large screens ---------- */
@media (min-width: 1700px){
--aw-max: 1440px;
}

/* ---------- Tablet: single column, list first ---------- */
@media (max-width: 1024px){
grid-template-columns: minmax(0, 1fr);
grid-template-areas:
  "header"
  "list"
  "feature";
row-gap: 48px;
align-items: start;

.awards-list-container{ height: auto; }
.awards-list-item{ flex: none; }
}

/* ---------- Phone ---------- */
@media (max-width: 767px){
row-gap: 40px;

.awards-list-item{ grid-template-columns: 76px minmax(0, 1fr) auto; gap: 16px; padding: 20px 0; }
:is(.awards-item-image img, img.awards-item-image){ max-height: 60px !important; }
.awards-list-item:first-child{ padding: 24px 0; }
.awards-list-item:first-child :is(.awards-item-image img, img.awards-item-image){ max-height: 84px !important; }
.awards-list-item:first-child :is(.awards-item-number, .awards-item-number :is(h2, h3, h4, p, span)){ font-size: 58px; }
.awards-featured-image{ margin-bottom: 22px !important; }
}

/* ---------- Touch: no sweep ---------- */
@media (hover: none){
.awards-featured-container::after{ display: none; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
*, *::after{ transition: none !important; animation: none !important; }
.awards-featured-container::after{ display: none; }
:is(.awards-item-image img, img.awards-item-image){ transform: none !important; }
}\n}.elementor .company-logo{width:0px;position:relative;}.elementor .company-tile-collection{/*
 * Company tiles
 * Custom CSS on the global class company-tile-collection (Elementor wraps it in
 * .elementor .company-tile-collection { ... }). Needs company-tiles-site.css in Site Settings.
 */

/** Settings **/
--company-tile-columns: 3;
--company-tile-ratio: 4 / 3;
--company-tile-overlay-strength: 0.55;
--company-tile-overlay-strength-hover: 0.40;  /* keeps white logos at 4.5:1+ contrast on every photo */
--company-tile-overlay-strength-touch: 0.55;  /* touch screens: lighter at rest (no hover to lift it) */
--company-tile-overlay-strength-touch-active: 0.45;  /* touch screens: tile in the middle of the screen */
--company-tile-overlay-rgb: 10, 16, 24;
--company-tile-background-zoom-strength-hover: 106%;
--company-logo-height: clamp(46px, 5vw, 78px);  /* visible logo height */
--company-logo-zoom-strength: 104%;
--company-tile-frame-inset: 16px;
--company-tile-frame-width: 3px;
--company-tile-band-tint: 30%;  /* brand color strength in the frosted margin */
--company-tile-band-blur: 3px;
--company-tile-transition-duration: 0.9s;
--company-tile-hover-delay: 0.15s;  /* hover intent: a cursor just passing through doesn't trigger a tile */
--company-tile-ease: cubic-bezier(.16, 1, .3, 1);

/** Tablet / Mobile Settings **/
--company-tile-columns-tablet: 1;
--company-tile-ratio-tablet: 16 / 9;
--company-logo-height-tablet: 60px;
--company-tile-columns-mobile: 1;
--company-tile-ratio-mobile: 16 / 9;

display: grid !important;
grid-template-columns: repeat(var(--company-tile-columns), minmax(0, 1fr));
gap: 0 !important;
width: 100%;
padding: 0 !important;


/** Per company: frame color, and logo corrections for transparent padding in the files
(--company-logo-fix scales the image so the visible artwork matches; --company-logo-nudge re-centers it) **/
.company-tile a[href*="ratliff-hardscape"]{ --company-tile-color: var(--ratliff-primary-color); --company-logo-fix: 1.10; --company-logo-nudge: 4.5%; }
.company-tile a[href*="erw-site-solutions"]{ --company-tile-color: var(--erwss-primary-color); --company-logo-fix: 1; --company-logo-nudge: 0%; }
.company-tile a[href*="kaufman-concrete"]{ --company-tile-color: var(--kaufman-primary-color); --company-logo-fix: 1.16; --company-logo-nudge: 7%; }
.company-tile a[href*="landtec-services"]{ --company-tile-color: var(--landtec-primary-color); --company-logo-fix: 1.11; --company-logo-nudge: 5%; }
.company-tile a[href*="dickey-and-son-concrete"]{ --company-tile-color: var(--dickey-primary-color); --company-logo-fix: 1.23; --company-logo-nudge: 6.5%; }
.company-tile a[href*="designbuild-consulting-services"]{ --company-tile-color: var(--designbuild-primary-color); --company-logo-fix: 2.02; --company-logo-nudge: 0%; }  /* light line art: larger to match the others' weight */


/* WRAPPER */
.company-tile-wrapper{
display: block !important;
flex: none !important;
width: auto !important;
min-width: 0;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
overflow: clip;
}


/* TILE */
.company-tile{
position: relative !important;
isolation: isolate;
overflow: clip;
width: 100% !important;
height: auto !important;
min-height: 0 !important;
aspect-ratio: var(--company-tile-ratio);
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
transform: none !important;
filter: none !important;
view-timeline: --company-tile block;
view-timeline-inset: var(--sticky-header-height, 70px) 0px;  /* measure from the visible area below the header */
}

/* photo: a copy of the tile's background, so it can move on its own */
.company-tile::after{
content: "";
position: absolute;
inset: 0;
z-index: 0;
background: inherit;
filter: saturate(85%) contrast(108%);
transform: scale(1.002);
translate: calc(var(--company-tile-drift) * 1.2% * var(--company-tile-drift-on)) calc(var(--company-tile-drift) * .8% * var(--company-tile-drift-on));
transition:
transform calc(var(--company-tile-transition-duration) * 1.4) var(--company-tile-ease),
filter var(--company-tile-transition-duration) var(--company-tile-ease),
--company-tile-drift-on 1.6s ease-in-out;
pointer-events: none;
}

/* overlay: deeper toward the bottom and behind the logo */
.company-tile::before{
content: "" !important;
display: block;
position: absolute !important;
inset: 0 !important;
z-index: 1;
width: auto !important;
height: auto !important;
border: 0 !important;
border-radius: 0 !important;
mix-blend-mode: normal !important;
opacity: 1;  /* beats Elementor's container overlay opacity (0.5) by specificity; no !important so animations can drive it */
background:
radial-gradient(ellipse 70% 60% at 50% 50%, rgba(var(--company-tile-overlay-rgb), calc(var(--company-tile-overlay-strength) * .5)) 0%, transparent 72%),
linear-gradient(180deg, rgba(var(--company-tile-overlay-rgb), calc(var(--company-tile-overlay-strength) * .7)) 0%, rgba(var(--company-tile-overlay-rgb), var(--company-tile-overlay-strength)) 100%) !important;
transition: opacity var(--company-tile-transition-duration) var(--company-tile-ease) !important;
pointer-events: none;
}


/* LINK: covers the tile, centers the logo */
.company-tile a{
position: absolute !important;
inset: 0;
z-index: 2;
display: grid !important;
place-items: center;
width: auto !important;
height: auto !important;
margin: 0 !important;
padding: 0 !important;
}
.company-tile a{ -webkit-tap-highlight-color: transparent; }
.company-tile a:focus-visible{ outline: none; }

/* frame: drawn clockwise from top-center (angle registered in company-tiles-site.css).
 Two sweeps reveal the same span: one from the top, one from the bottom. Each sweep's seam falls inside
 the other's solid area, so the finished frame has no notch on fractional-pixel tiles. */
.company-tile a::before{
content: "";
position: absolute;
inset: var(--company-tile-frame-inset);
border: var(--company-tile-frame-width) solid var(--company-tile-color, #fff);
-webkit-mask:
conic-gradient(from 0deg, #000 var(--company-tile-draw), transparent 0),
conic-gradient(from 180deg, #000 calc(var(--company-tile-draw) - 180deg), transparent 0);
mask:
conic-gradient(from 0deg, #000 var(--company-tile-draw), transparent 0),
conic-gradient(from 180deg, #000 calc(var(--company-tile-draw) - 180deg), transparent 0);
transition: --company-tile-draw .9s cubic-bezier(.65, 0, .35, 1);
pointer-events: none;
}


/* margin outside the frame: frosts over in the brand color once the frame is drawn */
.company-tile a::after{
content: "";
position: absolute;
inset: 0;
background: color-mix(in srgb, var(--company-tile-color, #000) var(--company-tile-band-tint), transparent);
-webkit-backdrop-filter: blur(var(--company-tile-band-blur)) saturate(110%);
backdrop-filter: blur(var(--company-tile-band-blur)) saturate(110%);
clip-path: polygon(evenodd,
0 0, 100% 0, 100% 100%, 0 100%, 0 0,
var(--company-tile-frame-inset) var(--company-tile-frame-inset),
var(--company-tile-frame-inset) calc(100% - var(--company-tile-frame-inset)),
calc(100% - var(--company-tile-frame-inset)) calc(100% - var(--company-tile-frame-inset)),
calc(100% - var(--company-tile-frame-inset)) var(--company-tile-frame-inset),
var(--company-tile-frame-inset) var(--company-tile-frame-inset));
opacity: 0;
transition: opacity .5s ease;
pointer-events: none;
}

/* LOGO: same visible height across companies */
.company-logo{
position: static !important;
width: auto !important;
height: calc(var(--company-logo-height) * var(--company-logo-fix, 1)) !important;
max-width: 66% !important;
max-height: none !important;
margin: 0 !important;
padding: 0 !important;  /* ignore spacing set on the image in Elementor */
border: 0 !important;
object-fit: contain;
transform: translateY(var(--company-logo-nudge, 0%));
filter: brightness(0) invert(1) drop-shadow(0 2px 14px rgba(0, 0, 0, .28));
transition:
scale var(--company-tile-transition-duration) var(--company-tile-ease),
filter var(--company-tile-transition-duration) var(--company-tile-ease) !important;
}
/* keeps the nudge on hover; outranks per-tile "selector:hover img { transform }" rules set in Elementor */
.company-tile:is(:hover, :focus-within) .company-logo{ transform: translateY(var(--company-logo-nudge, 0%)); }


/* HOVER / KEYBOARD FOCUS */
@media (hover: hover){
.company-tile:is(:hover, :focus-within)::after{
transform: scale(var(--company-tile-background-zoom-strength-hover));
filter: saturate(105%) contrast(103%);
transition:
  transform calc(var(--company-tile-transition-duration) * 1.4) var(--company-tile-ease) var(--company-tile-hover-delay),
  filter var(--company-tile-transition-duration) var(--company-tile-ease) var(--company-tile-hover-delay),
  --company-tile-drift-on 1.6s ease-in-out var(--company-tile-hover-delay);
}
.company-tile:is(:hover, :focus-within)::before{
opacity: calc(var(--company-tile-overlay-strength-hover) / var(--company-tile-overlay-strength));
transition: opacity var(--company-tile-transition-duration) var(--company-tile-ease) var(--company-tile-hover-delay) !important;
}
.company-tile:is(:hover, :focus-within) a::before{
--company-tile-draw: 365deg;  /* past 360 so both sweeps overlap at the top */
transition: --company-tile-draw .9s cubic-bezier(.65, 0, .35, 1) var(--company-tile-hover-delay);
}
.company-tile:is(:hover, :focus-within) a::after{
opacity: 1;
transition: opacity 1.4s var(--company-tile-ease) calc(var(--company-tile-hover-delay) + .75s);  /* after the frame is mostly drawn */
}
.company-tile:is(:hover, :focus-within) .company-logo{
scale: var(--company-logo-zoom-strength);
filter: brightness(0) invert(1) drop-shadow(0 2px 22px rgba(0, 0, 0, .45));  /* a little more separation as the photo opens up */
transition:
  scale var(--company-tile-transition-duration) var(--company-tile-ease) var(--company-tile-hover-delay),
  filter var(--company-tile-transition-duration) var(--company-tile-ease) var(--company-tile-hover-delay) !important;
}

/* spotlight: the other tiles recede (dimming waits for hover intent too; zoom-out starts right away) */
&:has(.company-tile:is(:hover, :focus-within)) .company-tile:not(:hover, :focus-within)::after{
filter: saturate(55%) contrast(104%) brightness(.78);
transition:
  transform calc(var(--company-tile-transition-duration) * 1.4) var(--company-tile-ease),
  filter var(--company-tile-transition-duration) var(--company-tile-ease) var(--company-tile-hover-delay),
  --company-tile-drift-on 1.6s ease-in-out;
}
}
.company-tile:has(a:focus-visible) a::before{ --company-tile-draw: 365deg; }
.company-tile:has(a:focus-visible) a::after{ opacity: 1; }


/* SCROLL ENTRANCE: photos settle, logos rise, staggered across each row */
@media (prefers-reduced-motion: no-preference){
.company-tile::after{ animation: company-tile-drift 24s ease-in-out infinite paused; }
@media (hover: hover){
.company-tile:is(:hover, :focus-within)::after{ --company-tile-drift-on: 1; animation-play-state: running; }
}
@supports (animation-timeline: view()){
.company-tile::after{
  animation: company-tile-settle both linear, company-tile-drift 24s ease-in-out infinite paused;
  animation-timeline: --company-tile, auto;
  animation-range: entry 0% cover 55%, normal;
}
@media (hover: hover){
  .company-tile:is(:hover, :focus-within)::after{ animation-play-state: running; }
}
.company-logo{
  animation: company-logo-rise both cubic-bezier(.2, .7, .2, 1);
  animation-timeline: --company-tile;
  animation-range: entry 15% cover 32%;
}
.company-tile-wrapper:nth-child(3n+2) .company-logo{ animation-range: entry 21% cover 38%; }
.company-tile-wrapper:nth-child(3n) .company-logo{ animation-range: entry 27% cover 44%; }
}
}


/**** TOUCH SCREENS: no hover, so the tile in the middle of the screen gets the hover treatment ****/
@media (hover: none){
--company-tile-overlay-strength: var(--company-tile-overlay-strength-touch);

@media (prefers-reduced-motion: no-preference) and (max-width: 1024px){  /* single column only: one tile active at a time */
@supports (animation-timeline: view()){
  .company-tile::before{
    animation: company-tile-touch-overlay both linear;
    animation-timeline: --company-tile;
    animation-range: cover 30% cover 70%;
    --company-tile-touch-active: calc(var(--company-tile-overlay-strength-touch-active) / var(--company-tile-overlay-strength-touch));
  }
  .company-tile a::before{
    animation: company-tile-touch-frame both linear;
    animation-timeline: --company-tile;
    animation-range: cover 30% cover 70%;
  }
  .company-tile a::after{
    animation: company-tile-touch-band both linear;
    animation-timeline: --company-tile;
    animation-range: cover 30% cover 70%;
  }
}
}
}

/**** TABLET ****/
@media (max-width: 1024px){
grid-template-columns: repeat(var(--company-tile-columns-tablet), minmax(0, 1fr));

.company-tile{ aspect-ratio: var(--company-tile-ratio-tablet); }
}
@media (min-width: 768px) and (max-width: 1024px){
--company-logo-height: var(--company-logo-height-tablet);
}

/**** MOBILE ****/
@media (max-width: 767px){
grid-template-columns: repeat(var(--company-tile-columns-mobile), minmax(0, 1fr));

.company-tile{ aspect-ratio: var(--company-tile-ratio-mobile); }
}

/**** REDUCED MOTION ****/
@media (prefers-reduced-motion: reduce){
.company-tile::after,
.company-tile::before,
.company-tile a::before,
.company-tile a::after,
.company-logo{ transition: none !important; }
}\n}.elementor .cutout-button:hover,.elementor .cutout-button:focus-visible{color: var(--cutout-text-color-hover);
  background-color: var(--cutout-text-button-background-hover) !important;\n}.elementor .hero-image-container{/* Hero: image or background video with the title layer on top */
--hero-min-height: 560px;
--hero-height: 100svh;  /* photos: 16:9, never taller than the screen */
--hero-height-video: 100svh;
--hero-top-space: 70px;
--hero-side-space: clamp(16px, 4vw, 64px);
--hero-bottom-space: 0;
--hero-text-width: 60ch;
--hero-overlap: var(--hero-bottom-overlap, 0px);  /* set --hero-bottom-overlap on a page whose next section pulls up over the hero */

--hero-tint: var(--company-hero-overlay-color, var(--company-color, var(--hero-overlay-color, var(--site-band-color))));
--hero-shade: color-mix(in srgb, var(--hero-tint), #000 10%);
@supports (color: oklch(from red l c h)) {
--hero-shade: oklch(from var(--hero-tint) min(l, .2) c h);  /* caps lightness, keeps hue */
}

--hero-control-size: 44px;  /* touch target */
--hero-control-icon: 24px;
--hero-control-gap: calc((var(--hero-control-size) - var(--hero-control-icon)) / 2);
--hero-control-inset: clamp(24px, 3vw, 40px);  /* measured to the icon, not the touch area */
--hero-control-accent: var(--erwco-white, #fff);

/* image and title layer share one cell: the hero is at least --hero-height and grows if the text needs more */
position: relative;
isolation: isolate;  /* the hero is the one layer: video, tint and title all live in it so the cutout buttons can blend with the video */
display: grid !important;
grid-template: minmax(var(--hero-height), auto) / minmax(0, 1fr);
width: 100%;
padding: 0 !important;
margin: 0;

&:has(.e-background-video) { --hero-height: var(--hero-height-video); }
& > :is(.hero-image-container-inner, .hero-image-details-container) {
grid-area: 1 / 1;
align-self: stretch !important;
justify-self: stretch !important;
}

/* no isolation or z-index on the image side or the title layer: either would cut the buttons off from the video */
.hero-image-container-inner {
position: relative;
overflow: hidden;  /* Safari < 16 */
overflow: clip;  /* clip, not hidden, so scroll-driven animations keep working */
width: 100%;
min-height: 0;
max-height: none !important;
padding: 0;
margin: 0;
background-color: var(--hero-shade);  /* shows instead of black while a video loads or if it can't play */
}

/* tint on ::after so it paints over the photo/video in source order (.hero-image can be an img, which can't have pseudo-elements) */
.hero-image-container-inner::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background:
  radial-gradient(ellipse 60% 50% at 50% 52%, color-mix(in srgb, var(--hero-shade) 15%, transparent) 0%, transparent 100%),
  color-mix(in srgb, var(--hero-shade) var(--hero-wash, 15%), transparent);
}

/* Elementor's video content layer is z-index 1; when it's empty (title lives in Hero Information) it would cover the title layer and eat clicks */
&:has(> .hero-image-details-container) .hero-image-container-inner .e-background-video-content-base { z-index: auto !important; }

/* photo or video fills the hero at any size */
.hero-image {
position: absolute !important;
inset: 0;
display: block;
width: 100% !important;
height: 100% !important;
max-height: none !important;
margin: 0;
object-fit: cover;
}
.hero-image :is(img, video) {
width: 100% !important;
height: 100% !important;
object-fit: cover;
}

/* video's first frame as a real img, shown until the video paints over it. Must come before the video in the inner container: stacks by source order, no z-index (see above) */
.erw-hero-video-first-frame,
.erw-hero-video-first-frame img {
position: absolute !important;
inset: 0;
display: block;
width: 100% !important;
max-width: none !important;
height: 100% !important;
max-height: none !important;
margin: 0;
object-fit: cover;
pointer-events: none;
}

.hero-image-details-container {
position: relative !important;
z-index: auto;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 20px;
width: auto;
min-width: 0;
height: auto;
margin: 0;
padding: var(--hero-top-space) var(--hero-side-space) calc(var(--hero-bottom-space) + var(--hero-overlap));
text-align: center;
}
.hero-image-container-inner ~ .hero-image-details-container {
position: absolute !important;
inset: 0;
z-index: auto;  /* sits above the image side by source order */
padding-left: clamp(20px, 4vw, 50px) !important;
padding-right: clamp(20px, 4vw, 50px) !important;
}
.hero-image-details-container > * { max-width: 100%; }
.hero-image-details-container :is(p, .hero-image-company-description) { max-width: min(100%, var(--hero-text-width)) !important; }

/* always-on blend under heroes with cutout buttons: keeps Chrome from re-rendering the video brighter the moment a button blends on hover.
 Near-transparent, not solid black: Safari can skip the blend over a video layer and would paint the box as-is */
&:has(.cutout-buttons-container) .hero-image-details-container::before {
content: "";
position: absolute;
inset: 0;
background: rgb(0 0 0 / .01);
mix-blend-mode: lighten;
pointer-events: none;
}

/* heroes with a visible play/pause button keep a clear strip along the bottom for it */
&:has(.hero-video-toggle:not([hidden])) .hero-image-details-container {
padding-bottom: calc(max(var(--hero-bottom-space), var(--hero-control-icon) + 2 * var(--hero-control-inset)) + var(--hero-overlap)) !important;
}

/* empty parts of the title layer pass clicks through; text, links and buttons stay clickable */
.hero-image-details-container,
.hero-image-details-container :is(.e-con, .e-con-inner) { pointer-events: none; }
.hero-image-details-container :not(.e-con, .e-con-inner) { pointer-events: auto; }

.hero-image-details-container :is(h1, h2, h3, h4, h5, p) {
text-shadow: 0 1px 3px rgb(0 0 0 / .5), 0 0 28px rgb(0 0 0 / .4);
}
.hero-image-details-container :is(svg, img) {
filter: drop-shadow(0 1px 3px rgb(0 0 0 / .45)) drop-shadow(0 0 24px rgb(0 0 0 / .3));
}

.hero-image-breadcrumb {
color: var(--hero-breadcrumb-color, var(--on-dark-color));
font-size: .7em;
letter-spacing: .14em;
text-transform: uppercase;
}
.erw-hero-title {
width: 100%;
margin: 0 !important;
padding: 10px;
color: var(--company-secondary-color, var(--on-dark-color)) !important;
font-family: var(--heading-font-family) !important;
font-size: clamp(calc(var(--hero-title-size-phone) / 16 * 1rem), calc(var(--hero-title-size-phone) / 16 * 1rem + (var(--hero-title-size) - var(--hero-title-size-phone)) * (100vw - 360px) / 1080), calc(var(--hero-title-size) / 16 * 1rem)) !important;
font-weight: var(--heading-font-weight) !important;
line-height: var(--hero-title-line-height) !important;
letter-spacing: var(--hero-title-letter-spacing) !important;
text-transform: var(--heading-text-transform);
overflow-wrap: break-word;
text-wrap: balance;
}
.erw-hero-title :is(h1, h2, h3, h4, h5, h6) {
margin: 0;
color: inherit !important;
font: inherit !important;
letter-spacing: inherit !important;
text-transform: inherit;
}
/* keeps a phrase on one line when it fits; still wraps inside it when it can't */
.erw-hero-title .hero-phrase { display: inline-block; }
@media (max-width: 767px) {
.erw-hero-title { padding-inline: 0; }  /* the title layer already has the side gutter */
}
.hero-image-company-tagline, .erw-hero-text {
color: var(--company-secondary-color, var(--on-dark-color));
text-wrap: balance;
}
.hero-image-company-description {
color: var(--company-secondary-color, var(--on-dark-color));
font-size: .9em;
}

/* video toggle: replaces the player's own buttons */
&:has(.hero-video-toggle) .e-background-video__controls { display: none !important; }
:is(.elementor-widget-html, .elementor-widget-container):has(.hero-video-toggle) { display: contents !important; }

/* bare icon inside an invisible 44px touch area, offset so the icon (not the hit box) sits at the inset */
.hero-video-toggle,
.hero-video-toggle:is(:hover, :focus, :active) {
border: 0 !important;
border-radius: 6px !important;
background: transparent !important;
box-shadow: none !important;
}
.hero-video-toggle {
position: absolute;
right: calc(var(--hero-control-inset) - var(--hero-control-gap));
bottom: calc(var(--hero-control-inset) - var(--hero-control-gap) + var(--hero-overlap));
z-index: 3;
display: grid;
place-items: center;
width: var(--hero-control-size);
height: var(--hero-control-size);
margin: 0;
padding: 0 !important;
color: var(--on-dark-color) !important;
cursor: pointer;
pointer-events: auto;
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
transition: color .3s ease;
}
.hero-video-toggle[hidden] { display: none !important; }
.hero-video-toggle svg {
display: block;
width: var(--hero-control-icon);
height: var(--hero-control-icon);
overflow: visible;
fill: transparent;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
filter: drop-shadow(0 1px 2px rgb(0 0 0 / .55)) drop-shadow(0 0 10px rgb(0 0 0 / .35));  /* holds contrast on bright video without a backing */
transform-origin: center;
transition: fill .35s var(--ease-out), transform .2s var(--ease-out);
}

/* hover/focus: icon fills in with the accent */
@media (hover: hover) {
.hero-video-toggle:hover { color: var(--hero-control-accent) !important; }
.hero-video-toggle:hover svg { fill: currentColor; }
}
.hero-video-toggle:focus-visible {
color: var(--hero-control-accent) !important;
outline: 2px solid var(--on-dark-color);
outline-offset: 2px;
}
.hero-video-toggle:focus-visible svg { fill: currentColor; }
.hero-video-toggle:active svg { transform: scale(.88); }

/* slow drift on photo heroes only (videos already move); pauses with the site-wide motion switch */
@media (prefers-reduced-motion: no-preference) {
:is(img.hero-image, .hero-image img) {
  animation: hero-drift 40s ease-in-out infinite alternate;
  animation-play-state: var(--ambient-play);
}
}

@media (forced-colors: active) {
.hero-video-toggle { color: ButtonText !important; }
.hero-video-toggle svg { filter: none; }
.hero-video-toggle:is(:hover, :focus-visible) { color: Highlight !important; }
.hero-image-details-container::before { display: none; }
}

@media (prefers-reduced-motion: reduce) {
.hero-video-toggle,
.hero-video-toggle svg { transition: none; }
.hero-video-toggle:active svg { transform: none; }
}\n}.elementor .erw-text{max-width: var(--text-width, var(--site-reading-width));
margin: 0 !important;
color: var(--site-paragraph-color) !important;
font-family: var(--paragraph-font-family) !important;
font-size: clamp(calc(var(--paragraph-size-phone) / 16 * 1rem), calc(var(--paragraph-size-phone) / 16 * 1rem + (var(--paragraph-size) - var(--paragraph-size-phone)) * (100vw - 360px) / 1080), calc(var(--paragraph-size) / 16 * 1rem)) !important;
font-weight: var(--paragraph-font-weight) !important;
line-height: var(--text-line-height, var(--paragraph-line-height)) !important;
text-wrap: pretty;

& :is(p, li) {
  margin: 0 !important;
  color: inherit !important;
  font: inherit !important;
}
& :is(p, ul, ol) + :is(p, ul, ol) { margin-top: 1em !important; }

/* headings inside long text (legal pages, articles) */
& :is(h2, h3, h4) {
  margin: 1.8em 0 .5em !important;
  color: var(--site-heading-color) !important;
  font: var(--subheading-font) !important;
  letter-spacing: var(--subheading-letter-spacing) !important;
  text-transform: none;
}
& > :first-child,
& .elementor-widget-container > :first-child { margin-top: 0 !important; }
& strong { color: var(--site-heading-color); }
& a {
  color: var(--site-accent-color);
  text-underline-offset: .2em;
}\n}.elementor .erw-subtitle{margin: 0 !important;
color: var(--site-heading-color) !important;
font-family: var(--subheading-font-family) !important;
font-size: clamp(calc(var(--subheading-size-phone) / 16 * 1rem), calc(var(--subheading-size-phone) / 16 * 1rem + (var(--subheading-size) - var(--subheading-size-phone)) * (100vw - 360px) / 1080), calc(var(--subheading-size) / 16 * 1rem)) !important;
font-weight: var(--subheading-font-weight) !important;
line-height: var(--subheading-line-height) !important;
letter-spacing: var(--subheading-letter-spacing) !important;
text-transform: var(--subheading-text-transform);
text-wrap: balance;

& :is(h1, h2, h3, h4, h5, h6) {
  margin: 0;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit;
}\n}.elementor .erw-eyebrow{margin: 0 0 var(--gap-sm) !important;
color: var(--eyebrow-color, var(--site-accent-color)) !important;
font-family: var(--label-font-family) !important;
font-size: clamp(calc(var(--label-size-phone) / 16 * 1rem), calc(var(--label-size-phone) / 16 * 1rem + (var(--label-size) - var(--label-size-phone)) * (100vw - 360px) / 1080), calc(var(--label-size) / 16 * 1rem)) !important;
font-weight: var(--label-font-weight) !important;
line-height: var(--label-line-height) !important;
letter-spacing: var(--label-letter-spacing) !important;
text-transform: var(--label-text-transform);

& :is(p, span, h1, h2, h3, h4, h5, h6) {
  margin: 0;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit;
}\n}.elementor .erw-title{margin: 0 !important;
color: var(--title-color, var(--site-heading-color)) !important;
font-family: var(--heading-font-family) !important;
font-size: var(--title-size, clamp(calc(var(--heading-size-phone) / 16 * 1rem), calc(var(--heading-size-phone) / 16 * 1rem + (var(--heading-size) - var(--heading-size-phone)) * (100vw - 360px) / 1080), calc(var(--heading-size) / 16 * 1rem))) !important;
font-weight: var(--heading-font-weight) !important;
line-height: var(--heading-line-height) !important;
letter-spacing: var(--heading-letter-spacing) !important;
text-transform: var(--title-transform, var(--heading-text-transform));
overflow-wrap: break-word;
text-wrap: balance;

& :is(h1, h2, h3, h4, h5, h6) {
  margin: 0;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit;
}\n}