/* Generated by tools/build_frontend_css.py. Do not edit directly. */
/* Ownership output: hero-layout-common */

/* Source 1: assets/src/hero/hero-layout-base.css | media: all */
/* ------------------------------------------------------------
   Hero Layout Base Contract
   Scope: shared universal hero shell across home, pages, archives, and CPTs.
   Purpose: isolate hero layout stability from legacy style.css/front-page.css.
------------------------------------------------------------- */

.vh-layout-hero{
  --vh-hero-shell-pad-x: clamp(1rem, 3.5vw, 2rem);
  --vh-hero-row-gap: clamp(1.75rem, 4vw, 3.5rem);
  --vh-hero-copy-max: 48rem;
  --vh-hero-media-max: 46rem;
  --vh-hero-title-gap: clamp(.65rem, 1.2vw, 1rem);
  --vh-hero-lead-gap: clamp(1rem, 2vw, 1.55rem);
  --vh-hero-action-gap: clamp(.65rem, 1.4vw, .95rem);
  --vh-hero-copy-media-gap: clamp(1.65rem, 3.5vw, 3rem);
  --vh-hero-block-gap: clamp(1.3rem, 3vw, 2.5rem);
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

@supports not (overflow: clip){
  .vh-layout-hero{ overflow-x: hidden; }
}

.vh-layout-hero *,
.vh-layout-hero *::before,
.vh-layout-hero *::after{
  box-sizing: border-box;
}

.vh-layout-hero > .container,
.vh-layout-hero .row,
.vh-layout-hero [class*="col-"]{
  min-width: 0;
}

.vh-layout-hero > .container{
  width: 100%;
  max-width: min(100%, 1140px);
  padding-left: var(--vh-hero-shell-pad-x) !important;
  padding-right: var(--vh-hero-shell-pad-x) !important;
}

@media (min-width: 1400px){
  .vh-layout-hero > .container{ max-width: min(100%, 1320px); }
}

.vh-layout-hero .row{
  row-gap: var(--vh-hero-row-gap);
}

.vh-layout-hero .vh-hero-copy,
.vh-layout-hero .vh-hero-copy--overlay,
.vh-layout-hero .vh-hero-copy--minimal,
.vh-layout-hero .vh-hero-copy--center{
  max-width: min(100%, var(--vh-hero-copy-max));
}

.vh-layout-hero .vh-hero-title{
  max-width: min(100%, 22ch) !important;
  margin-bottom: var(--vh-hero-title-gap) !important;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
  text-wrap: balance;
}

.vh-layout-hero .vh-hero-lead{
  max-width: min(100%, 42rem) !important;
  margin-bottom: var(--vh-hero-lead-gap) !important;
  text-wrap: pretty;
}

.vh-layout-hero .vh-hero-media,
.vh-layout-hero .vh-hero-wide-media,
.vh-layout-hero .vh-hero-collage,
.vh-layout-hero .vh-hero-collage-main,
.vh-layout-hero .vh-hero-before-after,
.vh-layout-hero .vh-hero-portfolio-grid,
.vh-layout-hero .vh-hero-finder,
.vh-layout-hero .vh-hero-extra{
  max-width: 100%;
  min-width: 0;
}

.vh-layout-hero .vh-hero-media,
.vh-layout-hero .vh-hero-wide-media{
  width: min(100%, var(--vh-hero-media-max));
}

.vh-layout-hero .vh-hero-media img,
.vh-layout-hero .vh-hero-wide-media img,
.vh-layout-hero .vh-hero-collage-main img,
.vh-layout-hero .vh-hero-portfolio-card img,
.vh-layout-hero .vh-hero-before-after-image{
  max-width: 100%;
}

.vh-layout-hero .vh-hero-media iframe,
.vh-layout-hero .vh-hero-media video,
.vh-layout-hero .vh-hero-media embed,
.vh-layout-hero .vh-hero-media object{
  max-width: 100%;
}

.vh-layout-hero .vh-hero-actions{
  max-width: 100%;
  gap: var(--vh-hero-action-gap) !important;
}

.vh-layout-hero .vh-action-btn{
  white-space: normal;
  text-align: center;
}

.vh-layout-hero .vh-hero-proof,
.vh-layout-hero .vh-hero-proof--rating,
.vh-layout-hero .vh-hero-proof--quote,
.vh-layout-hero .vh-hero-inline-detail-stack{
  max-width: min(100%, 42rem);
}

.vh-layout-hero .vh-hero-finder-form{
  max-width: 100%;
}

.vh-layout-hero .vh-hero-finder-form input[type="search"],
.vh-layout-hero .vh-hero-finder-form button{
  max-width: 100%;
}

.vh-layout-hero.vh-hero-layout-right_edge_image > .container{
  max-width: none;
}

/* ------------------------------------------------------------
   Hero Video Modal Contract
   Scope: interactive video poster, play trigger, and footer modal.
------------------------------------------------------------- */
.vh-layout-hero .vh-hero-video--modal{
  position: relative;
  overflow: hidden;
  border-radius: inherit;
  background: #05070d;
}

.vh-layout-hero .vh-hero-video-trigger{
  appearance: none;
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.vh-layout-hero .vh-hero-video-trigger > img,
.vh-layout-hero .vh-hero-video-trigger > .vh-hero-placeholder{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vh-layout-hero .vh-hero-video-trigger::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5,7,13,.02), rgba(5,7,13,.18));
  pointer-events: none;
  transition: background-color .2s ease;
}

.vh-layout-hero .vh-hero-video-trigger .vh-hero-play{
  z-index: 2;
  pointer-events: none;
  transition: transform .2s ease, box-shadow .2s ease;
}

.vh-layout-hero .vh-hero-video-trigger:hover .vh-hero-play,
.vh-layout-hero .vh-hero-video-trigger:focus-visible .vh-hero-play{
  transform: translate(-50%,-50%) scale(1.08);
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,.38);
}

.vh-layout-hero .vh-hero-video-trigger:focus-visible{
  outline: 3px solid #fff;
  outline-offset: -6px;
  box-shadow: inset 0 0 0 6px rgba(17,24,39,.75);
}

.vh-hero-video-modal{
  z-index: 100100;
}

body.vh-hero-video-modal-open .modal-backdrop{
  z-index: 100090;
}

.vh-hero-video-modal .modal-dialog{
  width: calc(100% - 2rem);
  max-width: min(92vw, 1120px);
  margin-right: auto;
  margin-left: auto;
}

.vh-hero-video-modal .modal-content{
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 1rem;
  background: #05070d;
  color: #fff;
  box-shadow: 0 2rem 5rem rgba(0,0,0,.55);
}

.vh-hero-video-modal .vh-hero-video-modal__toolbar{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 3.5rem;
  padding: .375rem .5rem;
  background: #05070d;
}

.vh-hero-video-modal .vh-hero-video-modal__close{
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  padding: .75rem;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 999px;
  background-color: rgba(255,255,255,.08);
  opacity: 1;
}

.vh-hero-video-modal .vh-hero-video-modal__close:hover{
  background-color: #05070d;
  opacity: 1;
}

.vh-hero-video-modal .vh-hero-video-modal__close:focus-visible{
  outline: 3px solid #fff;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px rgba(37,99,235,.72);
}

.vh-hero-video-modal .modal-body{
  padding: 0;
  background: #000;
}

.vh-hero-video-modal iframe{
  width: 100%;
  height: 100%;
  border: 0;
  background: #000;
}

@media (max-width: 599.98px){
  .vh-hero-video-modal .modal-dialog{
    width: calc(100% - 1rem);
    max-width: none;
    margin: .5rem auto;
  }

  .vh-hero-video-modal .vh-hero-video-modal__toolbar{
    min-height: 3.25rem;
    padding: .25rem .375rem;
  }
}


/* ------------------------------------------------------------
   WO107 — Universal hero supporting data / proof controls
------------------------------------------------------------- */
.vh-layout-hero .vh-hero-proof{
  padding: var(--vh-hero-supporting-padding-y, .75rem) var(--vh-hero-supporting-padding-x, 1rem);
  background: var(--vh-hero-supporting-bg, rgba(255,255,255,.07));
  border-color: var(--vh-hero-supporting-border, rgba(255,255,255,.12));
  border-radius: var(--vh-hero-supporting-radius, 1rem);
  max-width: min(100%, var(--vh-hero-supporting-max-width, 42rem));
}
.vh-layout-hero .vh-hero-proof .vh-proof-line,
.vh-layout-hero .vh-hero-proof .vh-rating,
.vh-layout-hero .vh-hero-proof .vh-proof-quote,
.vh-layout-hero .vh-hero-proof .vh-proof-author,
.vh-layout-hero .vh-hero-proof .vh-rating-summary,
.vh-layout-hero .vh-hero-proof .vh-rating-summary__score,
.vh-layout-hero .vh-hero-proof .vh-rating-summary__count{
  color: var(--vh-hero-supporting-text, rgba(255,255,255,.78)) !important;
}
.vh-layout-hero.vh-hero-supporting-boxless .vh-hero-proof{
  padding: 0;
  background: transparent;
  border-color: transparent;
  border-radius: 0;
  box-shadow: none;
}
.vh-layout-hero.vh-hero-supporting-enabled .vh-hero-feature-card,
.vh-layout-hero.vh-hero-supporting-enabled .vh-hero-three-col-info-row{
  background: var(--vh-hero-supporting-bg, rgba(255,255,255,.07));
  border-color: var(--vh-hero-supporting-border, rgba(255,255,255,.12));
  border-radius: var(--vh-hero-supporting-radius, 1rem);
  color: var(--vh-hero-supporting-text, rgba(255,255,255,.78));
}
.vh-layout-hero.vh-hero-supporting-enabled .vh-hero-feature-card p,
.vh-layout-hero.vh-hero-supporting-enabled .vh-hero-three-col-info-row span,
.vh-layout-hero.vh-hero-supporting-enabled .vh-hero-inline-detail,
.vh-layout-hero.vh-hero-supporting-enabled .vh-hero-inline-detail strong,
.vh-layout-hero.vh-hero-supporting-enabled .vh-hero-inline-detail span{
  color: var(--vh-hero-supporting-text, rgba(255,255,255,.78));
}

/* Source 2: assets/src/hero/hero-media-performance-contract.css | media: all */
/* ------------------------------------------------------------
   Hero media performance contract
   Scope: native <picture> request gating, LCP priority, and stable geometry.
------------------------------------------------------------- */

.vh-layout-hero .vh-hero-performance-picture{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
}

.vh-layout-hero .vh-hero-performance-picture > img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
}

/* Main hero media keeps the same sizing behavior as the former direct img. */
.vh-layout-hero .vh-hero-media > .vh-hero-performance-picture,
.vh-layout-hero .vh-hero-wide-media .vh-hero-performance-picture,
.vh-layout-hero .vh-hero-collage-main .vh-hero-performance-picture{
  width:100%;
  height:100%;
}

.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-media > .vh-hero-performance-picture,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-media > .vh-hero-performance-picture > img,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-wide-media .vh-hero-performance-picture,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-wide-media .vh-hero-performance-picture > img,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-collage-main .vh-hero-performance-picture,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-collage-main .vh-hero-performance-picture > img{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  object-fit:cover !important;
}

/* Video posters remain an edge-to-edge button target inside the 16:9 shell. */
.vh-layout-hero .vh-hero-video-trigger > .vh-hero-video-poster-picture{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.vh-layout-hero .vh-hero-video-trigger > .vh-hero-video-poster-picture > img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Portfolio cards previously expected a direct absolutely filling image. */
.vh-layout-hero .vh-hero-portfolio-card > .vh-hero-performance-picture{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.vh-layout-hero .vh-hero-portfolio-card > .vh-hero-performance-picture > img{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  object-fit:cover !important;
  transition:transform .2s ease;
}

.vh-layout-hero .vh-hero-portfolio-card:hover > .vh-hero-performance-picture > img,
.vh-layout-hero .vh-hero-portfolio-card:focus > .vh-hero-performance-picture > img{
  transform:scale(1.035);
}

/* Before/after images can be either normal-flow or full-card ratio media. */
.vh-layout-hero .vh-hero-before-after-card > .vh-hero-performance-picture{
  display:block;
  width:100%;
  flex:0 0 auto;
}

.vh-layout-hero .vh-hero-before-after-card > .vh-hero-performance-picture > .vh-hero-before-after-image{
  width:100% !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--has-image > .vh-hero-performance-picture{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  width:100% !important;
  height:100% !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--has-image > .vh-hero-performance-picture > .vh-hero-before-after-image{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
  border-radius:inherit !important;
  margin:0 !important;
}

/* Decorative hero-shell images are now native responsive images unless the
   operator explicitly enables fixed-background parallax. */
.vh-layout-hero > .vh-hero-shell-bg-media > .vh-hero-shell-bg-picture,
.vh-layout-hero > .vh-hero-shell-bg-media > .vh-hero-shell-bg-picture > img{
  width:100%;
  height:100%;
}

.vh-layout-hero > .vh-hero-shell-bg-media > .vh-hero-shell-bg-picture > img{
  object-fit:cover;
  object-position:center center;
}

/* Full-bleed background heroes use an image layer instead of CSS background
   discovery so the active viewport receives the only real request. */
.vh-layout-hero.vh-hero-has-full-bleed-image{
  position:relative;
  overflow:hidden;
}

.vh-layout-hero > .vh-hero-full-bleed-media,
.vh-layout-hero > .vh-hero-full-bleed-overlay{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.vh-layout-hero > .vh-hero-full-bleed-media{
  z-index:0;
  overflow:hidden;
}

.vh-layout-hero > .vh-hero-full-bleed-media > .vh-hero-full-bleed-picture,
.vh-layout-hero > .vh-hero-full-bleed-media > .vh-hero-full-bleed-picture > img{
  width:100%;
  height:100%;
}

.vh-layout-hero > .vh-hero-full-bleed-media > .vh-hero-full-bleed-picture > img{
  object-fit:cover;
  object-position:center center;
}

.vh-layout-hero > .vh-hero-full-bleed-overlay{
  z-index:1;
  background:linear-gradient(
    90deg,
    var(--vh-hero-full-bleed-overlay-strong, rgba(7,11,21,.82)),
    var(--vh-hero-full-bleed-overlay-soft, rgba(7,11,21,.58))
  );
}

.vh-layout-hero.vh-hero-has-full-bleed-image.masthead::before,
.vh-layout-hero.vh-hero-has-full-bleed-image.masthead::after{
  z-index:2;
}

.vh-layout-hero.vh-hero-has-full-bleed-image > .container{
  position:relative;
  z-index:3;
}

.vh-layout-hero.vh-hero-has-full-bleed-image > .vh-section-transition-overlay{
  z-index:8;
}

/* Source 3: assets/src/hero/hero-layout-tablet.css | media: (min-width: 600px) and (max-width: 991.98px) */
@media (min-width: 600px) and (max-width: 991.98px) {
/* ------------------------------------------------------------
   Tablet Hero Layout Overrides
   Loaded only for 600px–991.98px.
------------------------------------------------------------- */

.vh-layout-hero{
  --vh-hero-shell-pad-x: clamp(1.25rem, 4vw, 2rem);
  --vh-hero-row-gap: clamp(1.75rem, 5vw, 3rem);
  min-height: auto !important;
  padding-top: var(--vh-context-hero-padding-top-tablet, clamp(4.75rem, 8vw, 6.5rem)) !important;
  padding-bottom: var(--vh-context-hero-padding-bottom-tablet, clamp(4.75rem, 8vw, 6.5rem)) !important;
  text-align: center;
}

body.home .vh-hero-context-home{
  padding-top: clamp(5rem, 9vw, 7rem) !important;
  padding-bottom: clamp(5rem, 9vw, 7rem) !important;
}

.vh-layout-hero .vh-hero-copy,
.vh-layout-hero .vh-hero-copy--overlay,
.vh-layout-hero .vh-hero-copy--minimal,
.vh-layout-hero .vh-hero-copy--center{
  margin-left: auto;
  margin-right: auto;
}

.vh-layout-hero .vh-hero-title{
  font-size: min(var(--vh-hero-title-size, 56px), 46px) !important;
  line-height: 1.08 !important;
  max-width: min(100%, 22ch) !important;
  margin-left: auto;
  margin-right: auto;
}

.vh-layout-hero .vh-hero-lead{
  font-size: min(var(--vh-hero-subtitle-size, 18px), 19px) !important;
  margin-left: auto;
  margin-right: auto;
}

.vh-layout-hero .vh-hero-actions{
  justify-content: center !important;
}

.vh-layout-hero .vh-hero-media,
.vh-layout-hero .vh-hero-wide-media,
.vh-layout-hero .vh-hero-collage,
.vh-layout-hero .vh-hero-before-after,
.vh-layout-hero .vh-hero-portfolio-grid,
.vh-layout-hero .vh-hero-finder{
  margin-left: auto !important;
  margin-right: auto !important;
}

.vh-layout-hero .vh-hero-media,
.vh-layout-hero .vh-hero-wide-media{
  width: min(100%, 42rem) !important;
}

.vh-layout-hero .vh-hero-media img,
.vh-layout-hero .vh-hero-wide-media img{
  max-height: 34rem;
  object-fit: cover;
}

.vh-hero-layout-default_split .row,
.vh-hero-layout-lifestyle_collage .row,
.vh-hero-layout-video_hero .row,
.vh-hero-layout-asymmetric_magazine .row,
.vh-hero-layout-right_edge_image .row,
.vh-hero-layout-center_image_three .row{
  align-items: center !important;
}

.vh-hero-layout-right_edge_image > .container{
  padding-left: var(--vh-hero-shell-pad-x) !important;
  padding-right: var(--vh-hero-shell-pad-x) !important;
}

.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy,
.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.vh-layout-hero .vh-hero-proof,
.vh-layout-hero .vh-hero-proof--rating,
.vh-layout-hero .vh-hero-proof--quote,
.vh-layout-hero .vh-hero-inline-detail-stack{
  margin-left: auto !important;
  margin-right: auto !important;
}

.vh-layout-hero .vh-hero-portfolio-grid{
  gap: .85rem !important;
}

.vh-layout-hero.vh-hero-portfolio-grid-cols-3 .vh-hero-portfolio-grid,
.vh-layout-hero.vh-hero-portfolio-grid-cols-4 .vh-hero-portfolio-grid{
  --vh-portfolio-grid-columns: 2;
}
}

/* Source 4: assets/src/hero/hero-layout-mobile.css | media: (max-width: 599.98px) */
@media (max-width: 599.98px) {
/* ------------------------------------------------------------
   Mobile Hero Layout Overrides
   Loaded only below 600px.
------------------------------------------------------------- */

.vh-layout-hero{
  --vh-hero-shell-pad-x: 1rem;
  --vh-hero-row-gap: 1.6rem;
  min-height: auto !important;
  padding-top: var(--vh-context-hero-padding-top-mobile, clamp(3.75rem, 12vw, 5rem)) !important;
  padding-bottom: var(--vh-context-hero-padding-bottom-mobile, clamp(3.75rem, 12vw, 5rem)) !important;
  text-align: center;
}

body.home .vh-hero-context-home{
  padding-top: clamp(4.25rem, 13vw, 5.5rem) !important;
  padding-bottom: clamp(4.25rem, 13vw, 5.5rem) !important;
}

.vh-layout-hero > .container{
  padding-left: var(--vh-hero-shell-pad-x) !important;
  padding-right: var(--vh-hero-shell-pad-x) !important;
}

.vh-layout-hero .row{
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.vh-layout-hero .row > [class*="col-"]{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.vh-layout-hero .vh-hero-copy,
.vh-layout-hero .vh-hero-copy--overlay,
.vh-layout-hero .vh-hero-copy--minimal,
.vh-layout-hero .vh-hero-copy--center{
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.vh-layout-hero .vh-hero-title{
  font-size: min(var(--vh-hero-title-size, 56px), 38px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
  max-width: min(100%, 18ch) !important;
  margin-left: auto;
  margin-right: auto;
}

body.home .vh-hero-context-home .vh-hero-title{
  max-width: min(100%, 19ch) !important;
}

.vh-layout-hero .vh-hero-lead{
  font-size: min(var(--vh-hero-subtitle-size, 18px), 17px) !important;
  line-height: 1.55 !important;
  max-width: min(100%, 32rem) !important;
  margin-left: auto;
  margin-right: auto;
}

.vh-layout-hero .vh-hero-eyebrow{
  max-width: 100%;
  white-space: normal;
  justify-content: center;
}

.vh-layout-hero .vh-hero-actions{
  display: grid !important;
  grid-template-columns: 1fr;
  width: 100%;
  max-width: 24rem;
  margin-left: auto;
  margin-right: auto;
  justify-content: stretch !important;
}

.vh-layout-hero .vh-action-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.15rem;
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.vh-layout-hero .vh-hero-media,
.vh-layout-hero .vh-hero-wide-media,
.vh-layout-hero .vh-hero-collage,
.vh-layout-hero .vh-hero-before-after,
.vh-layout-hero .vh-hero-portfolio-grid,
.vh-layout-hero .vh-hero-finder,
.vh-layout-hero .vh-hero-proof,
.vh-layout-hero .vh-hero-proof--rating,
.vh-layout-hero .vh-hero-proof--quote,
.vh-layout-hero .vh-hero-inline-detail-stack{
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.vh-layout-hero .vh-hero-media,
.vh-layout-hero .vh-hero-wide-media{
  border-radius: var(--vh-hero-media-radius-top, 1rem) !important;
}

.vh-layout-hero .vh-hero-media img,
.vh-layout-hero .vh-hero-wide-media img{
  width: 100% !important;
  max-height: 24rem;
  object-fit: cover;
}

.vh-layout-hero .vh-hero-placeholder{
  min-height: 14rem !important;
}

.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img,
.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge img{
  max-height: 24rem !important;
  object-fit: contain !important;
  object-position: bottom center !important;
}

.vh-hero-layout-right_edge_image > .container{
  padding-left: var(--vh-hero-shell-pad-x) !important;
  padding-right: var(--vh-hero-shell-pad-x) !important;
}

.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy,
.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.vh-layout-hero .vh-hero-before-after{
  grid-template-columns: 1fr !important;
}

.vh-layout-hero .vh-hero-before-after::before{
  display: none !important;
}

.vh-layout-hero .vh-hero-portfolio-grid{
  --vh-portfolio-grid-columns: 2;
  gap: .7rem !important;
}

.vh-layout-hero.vh-hero-portfolio-grid-cols-1 .vh-hero-portfolio-grid{
  --vh-portfolio-grid-columns: 1;
}

.vh-layout-hero .vh-hero-portfolio-caption{
  left: .55rem !important;
  right: .55rem !important;
  bottom: .55rem !important;
  padding: .42rem .5rem !important;
}

.vh-layout-hero .vh-hero-portfolio-excerpt{
  display: none !important;
}

.vh-layout-hero .vh-hero-finder{
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

.vh-layout-hero .vh-hero-finder-form{
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .75rem !important;
}

.vh-layout-hero .vh-hero-finder-form input[type="search"],
.vh-layout-hero .vh-hero-finder-form button{
  width: 100% !important;
  border-radius: .9rem !important;
}

.vh-layout-hero .vh-hero-proof,
.vh-layout-hero .vh-hero-proof--rating,
.vh-layout-hero .vh-hero-proof--quote{
  justify-content: center;
  text-align: center;
}

.vh-layout-hero .vh-hero-inline-detail{
  text-align: left;
}

.vh-layout-hero .vh-hero-extra .container,
.vh-layout-hero .vh-hero-extra .row{
  max-width: 100%;
}
}

/* Source 5: assets/src/hero/hero-layout-top-stack.css | media: all */
/* ------------------------------------------------------------
   Hero Top-Stack Safe Zone
   Scope: first/home hero + responsive bottom-image hero.
   Purpose: keep hero title, subtitle, CTAs, and media clear of the
   announcement bar, fixed presentation nav, floating menu toggle,
   and WordPress Customizer/mobile preview chrome.
------------------------------------------------------------- */

:root{
  --vh-hero-top-stack-gap: clamp(.85rem, 2.25vw, 1.35rem);
  --vh-hero-top-stack-reserve: 0px;
  --vh-hero-mobile-menu-reserve: 0px;
}

.vh-layout-hero:first-of-type,
body.home .vh-hero-context-home{
  scroll-margin-top: calc(
    var(--vh-adminbar-height, 0px) +
    var(--vh-announcement-height, 0px) +
    var(--vh-navbar-height, 56px) +
    1.5rem
  );
}

/* Fixed/above-nav announcement states need a hard minimum so title text
   cannot slide under the black preorder/announcement strip or fixed navbar. */
body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
body.customize-preview.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
body.customize-preview.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type{
  padding-top: max(
    var(--vh-context-hero-padding-top, clamp(5.75rem, 9vw, 8rem)),
    calc(var(--vh-hero-top-stack-reserve, 0px) + var(--vh-hero-top-stack-gap))
  ) !important;
}

body.home.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-hero-context-home,
body.home.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-hero-context-home,
body.home.customize-preview.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-hero-context-home,
body.home.customize-preview.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-hero-context-home{
  padding-top: max(
    clamp(6.25rem, 10vw, 8.5rem),
    calc(var(--vh-hero-top-stack-reserve, 0px) + var(--vh-hero-top-stack-gap))
  ) !important;
}

/* Bottom-image heroes were built around desktop theater framing. On tablet/mobile
   the copy must own the top of the section so it remains visible and predictable. */
.vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
  position: relative;
  z-index: 4;
  overflow: visible;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-title,
.vh-hero-layout-editorial_center_bottom_image .vh-hero-lead,
.vh-hero-layout-editorial_center_bottom_image .vh-hero-actions{
  position: relative;
  z-index: 5;
}

@media (min-width: 600px) and (max-width: 991.98px){
  :root{
    --vh-hero-top-stack-gap: clamp(1rem, 2.6vw, 1.5rem);
  }

  body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
  body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
  body.customize-preview.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
  body.customize-preview.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type{
    padding-top: max(
      var(--vh-context-hero-padding-top-tablet, clamp(5.75rem, 9vw, 7.5rem)),
      calc(var(--vh-hero-top-stack-reserve, 0px) + var(--vh-hero-top-stack-gap))
    ) !important;
  }

  body.home.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-hero-context-home,
  body.home.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-hero-context-home,
  body.home.customize-preview.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-hero-context-home,
  body.home.customize-preview.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-hero-context-home{
    padding-top: max(
      clamp(6rem, 10vw, 7.75rem),
      calc(var(--vh-hero-top-stack-reserve, 0px) + var(--vh-hero-top-stack-gap))
    ) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image.masthead > .container{
    justify-content: flex-start !important;
    min-height: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
    width: min(100%, 44rem) !important;
    max-width: min(100%, 44rem) !important;
    margin-top: 0 !important;
    margin-bottom: clamp(1.35rem, 3vw, 2rem) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: min(100%, 44rem) !important;
    max-width: min(100%, 44rem) !important;
    margin-top: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    max-height: min(48vh, 30rem) !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}

@media (max-width: 599.98px){
  :root{
    --vh-hero-top-stack-gap: .95rem;
  }

  body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
  body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
  body.customize-preview.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type,
  body.customize-preview.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type{
    padding-top: max(
      var(--vh-context-hero-padding-top-mobile, clamp(4.75rem, 15vw, 6.25rem)),
      calc(var(--vh-hero-top-stack-reserve, 0px) + var(--vh-hero-top-stack-gap))
    ) !important;
  }

  body.home.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-hero-context-home,
  body.home.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-hero-context-home,
  body.home.customize-preview.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-hero-context-home,
  body.home.customize-preview.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-hero-context-home{
    padding-top: max(
      clamp(5.25rem, 17vw, 6.75rem),
      calc(var(--vh-hero-top-stack-reserve, 0px) + var(--vh-hero-top-stack-gap))
    ) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image.masthead{
    padding-bottom: clamp(2rem, 9vw, 3.25rem) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image.masthead > .container{
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 0 !important;
    margin-bottom: 1.25rem !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-title{
    font-size: min(var(--vh-hero-title-size, 56px), 34px) !important;
    line-height: 1.06 !important;
    max-width: min(100%, 16ch) !important;
    margin-bottom: .7rem !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-lead{
    font-size: min(var(--vh-hero-subtitle-size, 18px), 16.5px) !important;
    line-height: 1.48 !important;
    max-width: min(100%, 31ch) !important;
    margin-bottom: 1.2rem !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-actions{
    width: min(100%, 21rem) !important;
    max-width: min(100%, 21rem) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge,
  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    width: 100% !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    max-height: min(42vh, 21rem) !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  /* Give the floating menu an obvious lane without letting it sit on top of hero copy. */
  body.home.vh-nav-scrolled .vh-hero-context-home .vh-hero-copy,
  body.home.customize-preview .vh-hero-context-home .vh-hero-copy{
    padding-right: clamp(0rem, 7vw, 2.75rem);
    padding-left: clamp(0rem, 7vw, 2.75rem);
  }
}

@media (max-width: 380px){
  .vh-hero-layout-editorial_center_bottom_image .vh-hero-title{
    font-size: min(var(--vh-hero-title-size, 56px), 31px) !important;
    max-width: min(100%, 15ch) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-lead{
    max-width: min(100%, 29ch) !important;
  }
}

/* Source 6: assets/src/hero/hero-layout-bottom-image-recovery.css | media: all */
/* ------------------------------------------------------------
   Hero Bottom-Image Overflow Recovery
   Scope: universal hero layout "Centered Text Hero — Bottom Image".
   Purpose: stop the text stack from being pushed/clipped above the
   visible viewport when copy + CTAs + bottom media are taller than
   the hero's old fixed theater frame.

   Root cause: legacy bottom-image CSS bottom-aligned the full stack
   inside a constrained/hidden masthead. On short desktop windows,
   tablet preview, and Customizer mobile preview, the H1/subtitle could
   overflow upward under the announcement/nav/menu stack.
------------------------------------------------------------- */

:root{
  --vh-hero-bottom-image-safe-top: max(
    var(--vh-context-hero-padding-top, clamp(5.5rem, 8vw, 7.5rem)),
    calc(var(--vh-hero-top-stack-reserve, 0px) + .75rem),
    calc(var(--vh-adminbar-height, 0px) + var(--vh-announcement-height, 0px) + var(--vh-navbar-height, 56px) + 1rem)
  );
}

/* Turn the bottom-image layout back into a normal readable stack.
   The image may still sit visually at the bottom of the section, but
   the text no longer gets sacrificed to preserve a fixed hero height. */
.vh-hero-layout-editorial_center_bottom_image.masthead{
  height: auto !important;
  min-height: auto !important;
  align-items: stretch !important;
  overflow: visible !important;
  padding-top: var(--vh-hero-bottom-image-safe-top) !important;
  padding-bottom: 0 !important;
}

.vh-hero-layout-editorial_center_bottom_image.masthead > .container{
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: center !important;
  min-height: 0 !important;
  height: auto !important;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
  width: min(100%, 960px) !important;
  max-width: min(100%, 960px) !important;
  margin-top: 0 !important;
  margin-bottom: clamp(1.25rem, 3vw, 2.75rem) !important;
  overflow: visible !important;
  flex: 0 0 auto !important;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-title,
.vh-hero-layout-editorial_center_bottom_image .vh-hero-lead,
.vh-hero-layout-editorial_center_bottom_image .vh-hero-actions{
  transform: none !important;
  opacity: 1;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-title{
  max-width: min(100%, 22ch) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-lead{
  max-width: min(100%, 48rem) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-actions{
  justify-content: center !important;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
  width: min(100%, 1120px) !important;
  max-width: min(100%, 1120px) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  flex: 0 0 auto !important;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge,
.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
  width: 100% !important;
}

.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
  display: block !important;
  height: auto !important;
  max-height: min(52vh, 34rem) !important;
  object-fit: cover !important;
  object-position: center center !important;
}

@media (min-width: 600px) and (max-width: 991.98px){
  :root{
    --vh-hero-bottom-image-safe-top: max(
      var(--vh-context-hero-padding-top-tablet, clamp(5.75rem, 10vw, 7.25rem)),
      calc(var(--vh-hero-top-stack-reserve, 0px) + .75rem),
      calc(var(--vh-adminbar-height, 0px) + var(--vh-announcement-height, 0px) + var(--vh-navbar-height, 56px) + 1rem)
    );
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
    width: min(100%, 44rem) !important;
    max-width: min(100%, 44rem) !important;
    margin-bottom: clamp(1.15rem, 3vw, 2rem) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-title{
    max-width: min(100%, 18ch) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-lead{
    max-width: min(100%, 40rem) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: min(100%, 44rem) !important;
    max-width: min(100%, 44rem) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    max-height: min(46vh, 29rem) !important;
  }
}

@media (max-width: 599.98px){
  :root{
    --vh-hero-bottom-image-safe-top: max(
      var(--vh-context-hero-padding-top-mobile, clamp(5.25rem, 18vw, 6.75rem)),
      calc(var(--vh-hero-top-stack-reserve, 0px) + .75rem),
      calc(var(--vh-adminbar-height, 0px) + var(--vh-announcement-height, 0px) + 4.75rem)
    );
  }

  .vh-hero-layout-editorial_center_bottom_image.masthead{
    padding-top: var(--vh-hero-bottom-image-safe-top) !important;
    padding-bottom: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image.masthead > .container{
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 1.15rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-title{
    max-width: min(100%, 15ch) !important;
    margin-bottom: .65rem !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-lead{
    max-width: min(100%, 31ch) !important;
    margin-bottom: 1rem !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-actions{
    width: min(100%, 21rem) !important;
    max-width: min(100%, 21rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: 100% !important;
    max-width: 100% !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    max-height: min(38vh, 20rem) !important;
  }
}

@media (max-width: 380px){
  .vh-hero-layout-editorial_center_bottom_image .vh-hero-title{
    max-width: min(100%, 14ch) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-lead{
    max-width: min(100%, 29ch) !important;
  }
}

/* Source 7: assets/src/hero/hero-layout-responsive-contracts.css | media: all */
/* ------------------------------------------------------------
   Hero Layout Responsive Contracts
   Version: 1.5.58-wo55
   Scope: all hero layout choices across home, pages, archives, and CPTs.
   Purpose: give every hero layout a predictable desktop/tablet/mobile
   contract without editing legacy broad styles.
------------------------------------------------------------- */

/* WO126A ownership migration:
   Base rhythm variables, title/lead spacing, and action gap are now owned by
   hero-layout-base.css. This compatibility file retains only responsive and
   layout-specific overrides until their selector families are migrated. */

.vh-layout-hero .mt-5,
.vh-layout-hero .vh-hero-extra.mt-5,
.vh-layout-hero .vh-hero-media-slot--below,
.vh-layout-hero .vh-hero-wide-media.mt-5{
  margin-top: var(--vh-hero-copy-media-gap) !important;
}

.vh-layout-hero .mb-5{
  margin-bottom: var(--vh-hero-copy-media-gap) !important;
}

/* Ensure repeated row-based layouts have the same gap vocabulary. */
.vh-hero-layout-default_split .row,
.vh-hero-layout-lifestyle_collage .row,
.vh-hero-layout-video_hero .row,
.vh-hero-layout-problem_solution .row,
.vh-hero-layout-portfolio_grid .row,
.vh-hero-layout-asymmetric_magazine .row,
.vh-hero-layout-bottom_image .row,
.vh-hero-layout-center_image_three .row,
.vh-hero-layout-right_edge_image .row{
  row-gap: var(--vh-hero-copy-media-gap) !important;
}

/* Desktop: media layouts should show their media clearly instead of being
   capped by the generic mobile/tablet recovery rules. */
@media (min-width: 992px){
  .vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: min(100%, 1160px) !important;
    max-width: min(100%, 1160px) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }

  .vh-hero-layout-bottom_image{
    padding-bottom: 0 !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-bottom-image-wrap{
    min-height: clamp(30rem, 70vh, 48rem) !important;
    align-items: stretch !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-media--bottom-touch{
    align-self: flex-end !important;
    margin-bottom: 0 !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img{
    display: block !important;
    height: auto !important;
    max-height: clamp(28rem, 70vh, 48rem) !important;
    object-fit: contain !important;
    object-position: bottom center !important;
  }

  .vh-hero-layout-right_edge_image{
    padding-right: 0 !important;
    padding-bottom: 0 !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
    min-height: clamp(30rem, 70vh, 48rem) !important;
    align-items: stretch !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    display: flex !important;
    align-items: stretch !important;
    padding-right: 0 !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-media--right-edge,
  .vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    width: 100% !important;
    height: 100% !important;
    min-height: clamp(30rem, 70vh, 48rem) !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}

/* Right edge means right edge. Custom radius controls may round the other
   corners, but never the top-right/bottom-right edge of this layout. */
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge,
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img,
.vh-layout-hero.vh-hero-layout-right_edge_image.vh-hero-custom-media-radius .vh-hero-media--right-edge,
.vh-layout-hero.vh-hero-layout-right_edge_image.vh-hero-custom-media-radius .vh-hero-media--right-edge > img,
.vh-layout-hero.vh-hero-layout-right_edge_image.vh-hero-custom-media-radius .vh-hero-media--right-edge img{
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

/* Finder layout: keep search input + search button in one crisp row on
   tablet and mobile. CTAs below it may still stack on mobile. */
.vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder{
  width: min(100%, 900px) !important;
  max-width: min(100%, 900px) !important;
}

.vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder-form,
body.home .vh-hero-layout-search_finder .vh-hero-finder-form{
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 900px !important;
}

.vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder-form input[type="search"],
body.home .vh-hero-layout-search_finder .vh-hero-finder-form input[type="search"]{
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 3.75rem !important;
  border-radius: .95rem 0 0 .95rem !important;
  border-right: 0 !important;
}

.vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder-form button,
body.home .vh-hero-layout-search_finder .vh-hero-finder-form button{
  flex: 0 0 clamp(7rem, 24vw, 9.5rem) !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 3.75rem !important;
  padding-left: .9rem !important;
  padding-right: .9rem !important;
  white-space: nowrap !important;
  border-radius: 0 .95rem .95rem 0 !important;
  justify-self: auto !important;
}

/* Tablet contract: all layouts retain hierarchy, reduce utility spacing,
   and give media a deliberate size/edge behavior. */
@media (min-width: 600px) and (max-width: 991.98px){
  .vh-layout-hero{
    --vh-hero-title-gap: .7rem;
    --vh-hero-lead-gap: 1.15rem;
    --vh-hero-action-gap: .75rem;
    --vh-hero-copy-media-gap: clamp(1.5rem, 4vw, 2.25rem);
    --vh-hero-block-gap: clamp(1.25rem, 3vw, 2rem);
  }

  .vh-layout-hero .vh-hero-actions{
    max-width: min(100%, 42rem) !important;
  }

  .vh-hero-layout-default_split .row,
  .vh-hero-layout-lifestyle_collage .row,
  .vh-hero-layout-video_hero .row,
  .vh-hero-layout-problem_solution .row,
  .vh-hero-layout-portfolio_grid .row,
  .vh-hero-layout-asymmetric_magazine .row,
  .vh-hero-layout-bottom_image .row,
  .vh-hero-layout-center_image_three .row,
  .vh-hero-layout-right_edge_image .row{
    align-items: center !important;
  }

  .vh-hero-layout-editorial_center .vh-hero-wide-media,
  .vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: min(100%, 46rem) !important;
    max-width: min(100%, 46rem) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image,
  .vh-hero-layout-bottom_image,
  .vh-hero-layout-right_edge_image{
    padding-bottom: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: bottom center !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-bottom-image-wrap{
    min-height: auto !important;
    align-items: flex-end !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-media--bottom-touch{
    width: min(100%, 32rem) !important;
    margin-bottom: 0 !important;
    align-self: flex-end !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img{
    max-height: clamp(22rem, 46vh, 34rem) !important;
    object-fit: contain !important;
    object-position: bottom center !important;
  }

  .vh-hero-layout-right_edge_image > .container{
    padding-left: var(--vh-hero-shell-pad-x) !important;
    padding-right: 0 !important;
    max-width: none !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    padding-left: 0 !important;
    padding-right: var(--vh-hero-shell-pad-x) !important;
    text-align: center !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: flex !important;
    justify-content: flex-end !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-media--right-edge{
    width: min(100%, 46rem) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: 0 !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    max-height: 34rem !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .vh-hero-layout-search_finder .vh-hero-finder{
    margin-top: 0 !important;
  }

  .vh-hero-layout-portfolio_grid .vh-hero-portfolio-grid,
  .vh-hero-layout-problem_solution .vh-hero-before-after,
  .vh-hero-layout-center_image_three .vh-hero-three-col-info{
    margin-top: 0 !important;
  }
}

/* Mobile contract: compressed, structured spacing. Search stays one row;
   normal CTAs stay stacked for tap comfort. */
@media (max-width: 599.98px){
  .vh-layout-hero{
    --vh-hero-title-gap: .55rem;
    --vh-hero-lead-gap: .9rem;
    --vh-hero-action-gap: .65rem;
    --vh-hero-copy-media-gap: 1.15rem;
    --vh-hero-block-gap: 1rem;
  }

  .vh-layout-hero .vh-hero-eyebrow{
    margin-bottom: .55rem !important;
  }

  .vh-layout-hero .vh-hero-actions{
    gap: .65rem !important;
  }

  .vh-layout-hero .vh-action-btn{
    min-height: 3rem !important;
  }

  .vh-layout-hero .vh-hero-proof,
  .vh-layout-hero .vh-hero-inline-detail-stack,
  .vh-layout-hero .vh-hero-before-after,
  .vh-layout-hero .vh-hero-portfolio-grid,
  .vh-layout-hero .vh-hero-three-col-info{
    margin-top: var(--vh-hero-block-gap) !important;
  }

  .vh-hero-layout-editorial_center_bottom_image,
  .vh-hero-layout-bottom_image,
  .vh-hero-layout-right_edge_image{
    padding-bottom: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image > .container{
    padding-bottom: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
    margin-bottom: 1rem !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
  }

  .vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: bottom center !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-bottom-image-wrap{
    min-height: auto !important;
    align-items: flex-end !important;
    row-gap: 1.15rem !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-media--bottom-touch{
    width: min(100%, 24rem) !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
    align-self: flex-end !important;
  }

  .vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img{
    display: block !important;
    height: auto !important;
    max-height: clamp(17rem, 44vh, 26rem) !important;
    object-fit: contain !important;
    object-position: bottom center !important;
  }

  .vh-hero-layout-right_edge_image > .container{
    padding-left: var(--vh-hero-shell-pad-x) !important;
    padding-right: 0 !important;
    max-width: none !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    padding-left: 0 !important;
    padding-right: var(--vh-hero-shell-pad-x) !important;
    text-align: center !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 0 !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-media--right-edge{
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
  }

  .vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    max-height: 24rem !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder{
    width: 100% !important;
    max-width: 100% !important;
  }

  .vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder-form,
  body.home .vh-hero-layout-search_finder .vh-hero-finder-form{
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder-form input[type="search"],
  body.home .vh-hero-layout-search_finder .vh-hero-finder-form input[type="search"]{
    min-height: 3.45rem !important;
    border-radius: .85rem 0 0 .85rem !important;
    font-size: .95rem !important;
  }

  .vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder-form button,
  body.home .vh-hero-layout-search_finder .vh-hero-finder-form button{
    flex-basis: clamp(5.85rem, 30vw, 7.5rem) !important;
    min-height: 3.45rem !important;
    padding-left: .65rem !important;
    padding-right: .65rem !important;
    border-radius: 0 .85rem .85rem 0 !important;
    font-size: .95rem !important;
  }
}

@media (max-width: 360px){
  .vh-layout-hero.vh-hero-layout-search_finder .vh-hero-finder-form button,
  body.home .vh-hero-layout-search_finder .vh-hero-finder-form button{
    flex-basis: 5.6rem !important;
    padding-left: .5rem !important;
    padding-right: .5rem !important;
  }
}

/* Source 8: assets/src/hero/hero-layout-media-edge-corrections.css | media: all */
/* ------------------------------------------------------------
   Hero Layout Media Edge Corrections
   Version: 1.5.59-wo56
   Scope: before/after arrow + bottom/right-edge image behavior.
   Purpose: override legacy image caps/cropping after all prior hero CSS.
------------------------------------------------------------- */

/* Make the Before/After relationship visible. Desktop gets a right arrow;
   stacked tablet/mobile gets the same affordance pointing downward. */
.vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after{
  position: relative !important;
  gap: clamp(1.75rem, 3vw, 2.5rem) !important;
}

.vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after::before{
  content: "→" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 2.75rem !important;
  height: 2.75rem !important;
  border-radius: 999px !important;
  background: var(--vh-btn-primary-bg, #a3b312) !important;
  color: var(--vh-btn-primary-text, #ffffff) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: 0 .75rem 2rem rgba(0,0,0,.28) !important;
  font-size: 1.35rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  z-index: 7 !important;
  pointer-events: none !important;
}

/* Image reset for layouts where the full image must remain visible.
   Older global rules force 16:10 + object-fit:cover; this explicitly opts
   bottom-image patterns back into natural image rendering. */
.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge,
.vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch,
.vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-media--center-column,
.vh-layout-hero.vh-hero-layout-asymmetric_magazine .vh-hero-media--offset{
  overflow: hidden !important;
}

.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge > img,
.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img,
.vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch > img,
.vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img,
.vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-media--center-column > img,
.vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-media--center-column img,
.vh-layout-hero.vh-hero-layout-asymmetric_magazine .vh-hero-media--offset > img,
.vh-layout-hero.vh-hero-layout-asymmetric_magazine .vh-hero-media--offset img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center bottom !important;
}

/* Centered Text — Bottom Image: the media is the bottom anchor. */
.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image{
  overflow: hidden !important;
  padding-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image > .container{
  display: flex !important;
  flex-direction: column !important;
  min-height: inherit !important;
  padding-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
  margin-top: 0 !important;
  margin-bottom: clamp(1rem, 2.4vw, 1.75rem) !important;
}

.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
  display: block !important;
  width: min(100%, 1200px) !important;
  max-width: min(100%, 1200px) !important;
  margin-top: auto !important;
  margin-bottom: 0 !important;
  align-self: center !important;
  transform: translateY(1px) !important;
}

/* Bottom-Aligned Image Hero: do not cap the media at 22–34rem. Use the
   column/viewport width, then pin it to the section bottom. */
.vh-layout-hero.vh-hero-layout-bottom_image{
  overflow: hidden !important;
  padding-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-bottom_image > .container{
  padding-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-bottom-image-wrap{
  align-items: stretch !important;
  margin-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch{
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto !important;
  margin-bottom: 0 !important;
  align-self: flex-end !important;
  transform: translateY(1px) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Right Edge Image Hero: right side stays square and flush. */
.vh-layout-hero.vh-hero-layout-right_edge_image{
  overflow: hidden !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-right_edge_image > .container{
  padding-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
  margin-right: 0 !important;
  margin-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
  padding-right: 0 !important;
  margin-bottom: 0 !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: flex-end !important;
}

.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge{
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  transform: translateY(1px) !important;
}

.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: clamp(24rem, 58vh, 44rem) !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

@media (min-width: 992px){
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-bottom-image-wrap,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
    min-height: clamp(32rem, 70vh, 50rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch > img,
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img{
    max-height: clamp(30rem, 70vh, 50rem) !important;
  }
}

@media (min-width: 600px) and (max-width: 991.98px){
  .vh-layout-hero{
    --vh-hero-copy-media-gap: 1.5rem;
    --vh-hero-lead-gap: 1rem;
    --vh-hero-action-gap: .7rem;
  }

  .vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after{
    display: flex !important;
    flex-direction: column !important;
    gap: .85rem !important;
    align-items: stretch !important;
  }

  .vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after::before{
    content: "↓" !important;
    position: static !important;
    transform: none !important;
    order: 2 !important;
    margin: -.2rem auto !important;
  }

  .vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after-card:first-child{ order: 1 !important; }
  .vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after-card:last-child{ order: 3 !important; }

  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: min(100%, 48rem) !important;
    max-width: min(100%, 48rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch,
  .vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-media--center-column,
  .vh-layout-hero.vh-hero-layout-asymmetric_magazine .vh-hero-media--offset{
    width: min(100%, 44rem) !important;
    max-width: none !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch > img,
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img{
    max-height: clamp(22rem, 50vh, 36rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image > .container{
    padding-right: 0 !important;
    max-width: none !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    padding-right: var(--vh-hero-shell-pad-x, 1.5rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    min-height: clamp(22rem, 44vh, 34rem) !important;
  }
}

@media (max-width: 599.98px){
  .vh-layout-hero{
    --vh-hero-title-gap: .5rem;
    --vh-hero-lead-gap: .75rem;
    --vh-hero-action-gap: .55rem;
    --vh-hero-copy-media-gap: .95rem;
    --vh-hero-block-gap: .9rem;
  }

  .vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after{
    display: flex !important;
    flex-direction: column !important;
    gap: .75rem !important;
    align-items: stretch !important;
  }

  .vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after::before{
    content: "↓" !important;
    position: static !important;
    transform: none !important;
    order: 2 !important;
    width: 2.5rem !important;
    height: 2.5rem !important;
    margin: -.15rem auto !important;
    font-size: 1.2rem !important;
  }

  .vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after-card:first-child{ order: 1 !important; }
  .vh-layout-hero.vh-hero-layout-problem_solution .vh-hero-before-after-card:last-child{ order: 3 !important; }

  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image,
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-copy,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy,
  .vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-copy{
    margin-bottom: .85rem !important;
  }

  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: 100% !important;
    max-width: 100% !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch,
  .vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-media--center-column,
  .vh-layout-hero.vh-hero-layout-asymmetric_magazine .vh-hero-media--offset{
    width: 100% !important;
    max-width: none !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch > img,
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img{
    max-height: clamp(17rem, 42vh, 26rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image > .container{
    padding-left: var(--vh-hero-shell-pad-x, 1rem) !important;
    padding-right: 0 !important;
    max-width: none !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    padding-right: var(--vh-hero-shell-pad-x, 1rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    min-height: clamp(16rem, 38vh, 24rem) !important;
  }
}

/* Source 9: assets/src/hero/hero-layout-tablet-media-radius-contract.css | media: all */
/* ------------------------------------------------------------
   Hero Layout Tablet + Media Radius Contract
   Version: 1.5.60-wo57
   Scope: hero tablet CTA rows, uniform stacked widths, per-corner media radius.
   Purpose: make tablet/mobile hero sections look structured instead of mixed-width.
------------------------------------------------------------- */

.vh-layout-hero{
  --vh-hero-media-radius-tl: var(--vh-hero-media-radius-top-left, var(--vh-hero-media-radius-top, 1.35rem));
  --vh-hero-media-radius-tr: var(--vh-hero-media-radius-top-right, var(--vh-hero-media-radius-top, 1.35rem));
  --vh-hero-media-radius-br: var(--vh-hero-media-radius-bottom-right, var(--vh-hero-media-radius-bottom, 1.35rem));
  --vh-hero-media-radius-bl: var(--vh-hero-media-radius-bottom-left, var(--vh-hero-media-radius-bottom, 1.35rem));
}

.vh-layout-hero :is(.vh-hero-media,.vh-hero-wide-media,.vh-hero-collage-main,.vh-hero-before-after-card,.vh-hero-portfolio-card,.vh-hero-portfolio-card--empty){
  border-top-left-radius: var(--vh-hero-media-radius-tl) !important;
  border-top-right-radius: var(--vh-hero-media-radius-tr) !important;
  border-bottom-right-radius: var(--vh-hero-media-radius-br) !important;
  border-bottom-left-radius: var(--vh-hero-media-radius-bl) !important;
  overflow: hidden !important;
}

.vh-layout-hero :is(.vh-hero-media,.vh-hero-wide-media,.vh-hero-collage-main) > :is(img,picture,video,iframe,.vh-hero-video,.vh-hero-placeholder),
.vh-layout-hero :is(.vh-hero-media,.vh-hero-wide-media,.vh-hero-collage-main) picture > img,
.vh-layout-hero .vh-hero-portfolio-card > :is(img,.vh-hero-portfolio-placeholder){
  border-radius: inherit !important;
}

/* Right Edge Image is an edge layout: the right side must stay square even when
   global or front-page per-corner image radius values are set. */
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge,
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

@media (min-width: 600px) and (max-width: 991.98px){
  .vh-layout-hero{
    --vh-hero-stack-width: min(100%, 42rem);
    --vh-hero-copy-media-gap: clamp(1.15rem, 2.8vw, 1.75rem);
    --vh-hero-block-gap: clamp(1rem, 2.4vw, 1.5rem);
    --vh-hero-action-gap: .8rem;
  }

  /* Tablet CTAs should read like one action row, not a mobile stack. */
  body.home .vh-layout-hero .vh-hero-actions,
  .vh-layout-hero .vh-hero-actions{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    justify-content: center !important;
    justify-items: stretch !important;
    gap: var(--vh-hero-action-gap) !important;
    width: var(--vh-hero-stack-width) !important;
    max-width: var(--vh-hero-stack-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.home .vh-layout-hero .vh-hero-actions .btn,
  body.home .vh-layout-hero .vh-action-btn,
  .vh-layout-hero .vh-hero-actions .btn,
  .vh-layout-hero .vh-action-btn{
    width: 100% !important;
    min-width: 0 !important;
    min-height: 3.1rem !important;
    white-space: normal !important;
  }

  /* Make stacked hero sections share one visual measure on tablet. */
  .vh-layout-hero :is(.vh-hero-copy,.vh-hero-lead,.vh-hero-proof,.vh-hero-finder,.vh-hero-before-after,.vh-hero-portfolio-grid,.vh-hero-three-col-info,.vh-hero-wide-media,.vh-hero-wide-media--bottom-edge,.vh-hero-media--bottom-touch,.vh-hero-media--center-column,.vh-hero-media--offset,.vh-hero-media--right-edge){
    width: var(--vh-hero-stack-width) !important;
    max-width: var(--vh-hero-stack-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .vh-layout-hero .vh-hero-lead{
    max-width: min(100%, 58ch) !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-bottom-image-wrap > [class*="col"],
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap > [class*="col"],
  .vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-three-col-wrap > [class*="col"]{
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-proof,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-proof,
  .vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-three-col-info{
    margin-top: var(--vh-hero-block-gap) !important;
  }

  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge,
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch{
    margin-top: var(--vh-hero-copy-media-gap) !important;
    margin-bottom: 0 !important;
    align-self: center !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch > img,
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img,
  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge > img,
  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge{
    margin-right: 0 !important;
    margin-left: auto !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }
}

@media (max-width: 599.98px){
  .vh-layout-hero{
    --vh-hero-stack-width: 100%;
    --vh-hero-copy-media-gap: 1rem;
    --vh-hero-block-gap: .9rem;
  }

  body.home .vh-layout-hero .vh-hero-actions,
  .vh-layout-hero .vh-hero-actions,
  .vh-layout-hero :is(.vh-hero-copy,.vh-hero-lead,.vh-hero-proof,.vh-hero-finder,.vh-hero-before-after,.vh-hero-portfolio-grid,.vh-hero-three-col-info,.vh-hero-wide-media,.vh-hero-wide-media--bottom-edge,.vh-hero-media--bottom-touch,.vh-hero-media--center-column,.vh-hero-media--offset,.vh-hero-media--right-edge){
    width: var(--vh-hero-stack-width) !important;
    max-width: var(--vh-hero-stack-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-bottom-image-wrap > [class*="col"],
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap > [class*="col"],
  .vh-layout-hero.vh-hero-layout-center_image_three .vh-hero-three-col-wrap > [class*="col"]{
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge,
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch{
    margin-top: var(--vh-hero-copy-media-gap) !important;
    margin-bottom: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch > img,
  .vh-layout-hero.vh-hero-layout-bottom_image .vh-hero-media--bottom-touch img,
  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge > img,
  .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }
}

/* Source 10: assets/src/hero/hero-right-edge-faq-contract.css | media: all */
/* ------------------------------------------------------------
   Hero Right Edge + Related FAQ Responsive Contract
   Version: 1.5.61-wo58
   Scope: right-edge hero media alignment + non-home related FAQ accordions.
   Purpose: remove remaining gutters from edge media layouts and make related
   FAQ sections on service/portfolio pages match the homepage FAQ experience.
------------------------------------------------------------- */

/* ============================================================
   1. Right Edge Image Hero: edge media must actually reach the edge.
   The old Bootstrap container/row gutters were still creating a visual inset.
============================================================ */

.vh-layout-hero.vh-hero-layout-right_edge_image{
  overflow: hidden !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
  margin-right: 0 !important;
  margin-bottom: 0 !important;
}

.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge,
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

@media (min-width: 992px){
  .vh-layout-hero.vh-hero-layout-right_edge_image > .container{
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
    --bs-gutter-x: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: clamp(34rem, 72vh, 54rem) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    align-items: stretch !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-width: 0 !important;
    padding-left: max(1.5rem, calc((100vw - 1140px) / 2 + 3rem)) !important;
    padding-right: clamp(1.5rem, 4vw, 4.5rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-end !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap > .vh-hero-right-edge-media-col:last-child .vh-hero-media--right-edge{
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    transform: none !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap > .vh-hero-right-edge-media-col:last-child .vh-hero-media--right-edge > img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap > .vh-hero-right-edge-media-col:last-child .vh-hero-media--right-edge img{
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: clamp(34rem, 72vh, 54rem) !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}

@media (max-width: 991.98px){
  .vh-layout-hero.vh-hero-layout-right_edge_image > .container{
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
    --bs-gutter-x: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    row-gap: clamp(1rem, 3vw, 1.5rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    width: min(100%, 42rem) !important;
    max-width: min(100%, 42rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--vh-hero-shell-pad-x, 1.25rem) !important;
    padding-right: var(--vh-hero-shell-pad-x, 1.25rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    display: flex !important;
    justify-content: flex-end !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: var(--vh-hero-shell-pad-x, 1.25rem) !important;
    padding-right: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge{
    width: min(100%, 42rem) !important;
    max-width: min(100%, 42rem) !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    transform: none !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: right bottom !important;
  }
}

/* ============================================================
   2. Related FAQ accordions on single Service/Portfolio pages.
   These sections use #front-faq markup but do not load front-page.css, so they
   need the same component contract globally.
============================================================ */

body.single-vh_service #front-faq,
body.single-vh_portfolio #front-faq{
  background: var(--vh-faq-section-bg, #f6f7f3) !important;
  color: var(--vh-faq-section-text, #0f172a) !important;
  overflow: visible !important;
}

body.single-vh_service #front-faq .container,
body.single-vh_portfolio #front-faq .container{
  width: min(100%, 1060px) !important;
  max-width: min(100%, 1060px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-vh_service #front-faq .content-section-heading,
body.single-vh_portfolio #front-faq .content-section-heading{
  color: var(--vh-faq-section-text, #0f172a) !important;
  margin-bottom: clamp(1.25rem, 3vw, 2.5rem) !important;
}

body.single-vh_service #front-faq .content-section-heading .text-secondary,
body.single-vh_portfolio #front-faq .content-section-heading .text-secondary{
  color: var(--vh-accent, #9fb30f) !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

body.single-vh_service #front-faq .content-section-heading h2,
body.single-vh_portfolio #front-faq .content-section-heading h2{
  color: var(--vh-faq-section-text, #0f172a) !important;
  margin-bottom: 0 !important;
}

body.single-vh_service #front-faq .accordion,
body.single-vh_portfolio #front-faq .accordion{
  width: min(100%, 920px) !important;
  max-width: min(100%, 920px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-vh_service #front-faq .accordion-item,
body.single-vh_portfolio #front-faq .accordion-item{
  border-radius: .75rem !important;
  overflow: hidden !important;
  border: 1px solid rgba(17, 24, 39, .08) !important;
  background: #fff !important;
  box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .06) !important;
}

body.single-vh_service #front-faq .accordion-item + .accordion-item,
body.single-vh_portfolio #front-faq .accordion-item + .accordion-item{
  margin-top: .75rem !important;
}

body.single-vh_service #front-faq .accordion-button,
body.single-vh_portfolio #front-faq .accordion-button{
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto 1.25rem !important;
  gap: .65rem !important;
  align-items: center !important;
  width: 100% !important;
  padding: 1rem 1.25rem !important;
  color: #111827 !important;
  background: #fff !important;
  font-weight: 600 !important;
  text-align: left !important;
  box-shadow: none !important;
}

body.single-vh_service #front-faq .accordion-button:not(.collapsed),
body.single-vh_portfolio #front-faq .accordion-button:not(.collapsed){
  color: #0f172a !important;
  background: #eaf2ff !important;
}

body.single-vh_service #front-faq .accordion-button::after,
body.single-vh_portfolio #front-faq .accordion-button::after{
  grid-column: 3 !important;
  margin-left: 0 !important;
  justify-self: end !important;
}

body.single-vh_service #front-faq .vh-faq-accordion-title,
body.single-vh_portfolio #front-faq .vh-faq-accordion-title{
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

body.single-vh_service #front-faq .accordion-button .badge,
body.single-vh_portfolio #front-faq .accordion-button .badge{
  justify-self: end !important;
  max-width: min(100%, 18rem) !important;
  margin-left: 0 !important;
  border: 1px solid rgba(17, 24, 39, .08) !important;
  color: #111827 !important;
  background: #f8fafc !important;
  white-space: normal !important;
  text-align: center !important;
}

body.single-vh_service #front-faq .accordion-body,
body.single-vh_portfolio #front-faq .accordion-body{
  color: #374151 !important;
  background: #fff !important;
  padding: 1rem 1.25rem 1.25rem !important;
}

body.single-vh_service #front-faq .accordion-body a,
body.single-vh_portfolio #front-faq .accordion-body a{
  color: var(--vh-accent, #9fb30f) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

body.single-vh_service #front-faq .accordion-body a:hover,
body.single-vh_portfolio #front-faq .accordion-body a:hover{
  text-decoration: underline !important;
}

@media (min-width: 600px) and (max-width: 991.98px){
  body.single-vh_service #front-faq,
  body.single-vh_portfolio #front-faq{
    padding-top: clamp(3rem, 7vw, 5rem) !important;
    padding-bottom: clamp(3rem, 7vw, 5rem) !important;
  }

  body.single-vh_service #front-faq .container,
  body.single-vh_portfolio #front-faq .container{
    padding-left: clamp(1.25rem, 4vw, 2.5rem) !important;
    padding-right: clamp(1.25rem, 4vw, 2.5rem) !important;
  }
}

@media (max-width: 599.98px){
  body.single-vh_service #front-faq,
  body.single-vh_portfolio #front-faq{
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  body.single-vh_service #front-faq .container,
  body.single-vh_portfolio #front-faq .container{
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  body.single-vh_service #front-faq .content-section-heading h2,
  body.single-vh_portfolio #front-faq .content-section-heading h2{
    font-size: clamp(2rem, 10vw, 2.75rem) !important;
    line-height: 1.05 !important;
  }

  body.single-vh_service #front-faq .accordion-button,
  body.single-vh_portfolio #front-faq .accordion-button{
    grid-template-columns: minmax(0, 1fr) 1.25rem !important;
    grid-auto-rows: auto !important;
    gap: .4rem .75rem !important;
    padding: 1rem !important;
  }

  body.single-vh_service #front-faq .accordion-button::after,
  body.single-vh_portfolio #front-faq .accordion-button::after{
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    align-self: center !important;
  }

  body.single-vh_service #front-faq .accordion-button .badge,
  body.single-vh_portfolio #front-faq .accordion-button .badge{
    grid-column: 1 !important;
    grid-row: 2 !important;
    justify-self: start !important;
    max-width: 100% !important;
    font-size: .72rem !important;
    line-height: 1.2 !important;
    padding: .35rem .55rem !important;
  }

  body.single-vh_service #front-faq .accordion-body,
  body.single-vh_portfolio #front-faq .accordion-body{
    padding: 1rem !important;
  }
}

/* Source 11: assets/src/hero/hero-right-edge-faq-polish.css | media: all */
/* ------------------------------------------------------------
   Hero Right Edge + FAQ Polish Contract
   Version: 1.5.62-wo59
   Scope: final visual polish for right-edge hero vertical alignment and FAQ badges.
   Purpose: keep edge-media horizontal contact while centering the image vertically,
   and make FAQ category labels compact instead of distracting full-width bars.
------------------------------------------------------------- */

/* ============================================================
   1. Right Edge Image Hero
   Keep the image flush to the right edge, but stop stretching it to the bottom.
============================================================ */

@media (min-width: 992px){
  .vh-layout-hero.vh-hero-layout-right_edge_image{
    padding-right: 0 !important;
    overflow: hidden !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image > .container{
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
    --bs-gutter-x: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: clamp(34rem, 70vh, 50rem) !important;
    margin: 0 !important;
    align-items: center !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-width: 0 !important;
    padding-left: max(1.5rem, calc((100vw - 1140px) / 2 + 3rem)) !important;
    padding-right: clamp(1.5rem, 4vw, 4.5rem) !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    align-self: stretch !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge{
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 0 auto !important;
    transform: none !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: clamp(28rem, 58vh, 42rem) !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }
}

@media (min-width: 1400px){
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    padding-left: max(1.5rem, calc((100vw - 1320px) / 2 + 3rem)) !important;
  }
}

@media (max-width: 991.98px){
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
    align-items: center !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    align-items: center !important;
  }

  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    object-position: center center !important;
  }
}

/* ============================================================
   2. FAQ Category Label
   The category should read as a small tag, not a full-width input/bar.
============================================================ */

body.home #front-faq .accordion-button .badge,
body.single-vh_service #front-faq .accordion-button .badge,
body.single-vh_portfolio #front-faq .accordion-button .badge{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: min(16rem, 42vw) !important;
  min-width: 0 !important;
  padding: .32rem .55rem !important;
  border-radius: .45rem !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-align: center !important;
}

body.single-vh_service #front-faq .accordion-button,
body.single-vh_portfolio #front-faq .accordion-button{
  grid-template-columns: minmax(0, 1fr) auto 1.25rem !important;
}

body.single-vh_service #front-faq .accordion-button .badge,
body.single-vh_portfolio #front-faq .accordion-button .badge{
  justify-self: end !important;
}

@media (max-width: 599.98px){
  body.home #front-faq .accordion-button .badge,
  body.single-vh_service #front-faq .accordion-button .badge,
  body.single-vh_portfolio #front-faq .accordion-button .badge{
    max-width: min(14rem, 72vw) !important;
    font-size: .7rem !important;
    padding: .3rem .5rem !important;
  }

  body.single-vh_service #front-faq .accordion-button,
  body.single-vh_portfolio #front-faq .accordion-button{
    grid-template-columns: minmax(0, 1fr) 1.25rem !important;
  }

  body.single-vh_service #front-faq .accordion-button .badge,
  body.single-vh_portfolio #front-faq .accordion-button .badge{
    grid-column: 1 !important;
    grid-row: 2 !important;
    justify-self: start !important;
  }
}

/* Source 12: assets/src/hero/hero-right-edge-center-lock.css | media: all */
/* ------------------------------------------------------------
   Hero Right Edge Center Lock
   Version: 1.5.63-wo60
   Scope: Right Edge Image Hero only.
   Purpose: keep the image touching the true right edge horizontally while
   preventing the media from behaving like a bottom-aligned edge panel.
------------------------------------------------------------- */

/* Right Edge Image Hero is a horizontal edge layout, not a bottom-edge layout.
   Previous recovery files removed the right gutter but also forced bottom
   padding to 0 and stretched the media lane, which made the image read as
   bottom-aligned. This final lock restores vertical padding and centers the
   media beside the copy. */

@media (min-width: 992px){
  body .vh-layout-hero.vh-hero-layout-right_edge_image{
    display: flex !important;
    align-items: center !important;
    padding-right: 0 !important;
    padding-top: var(--vh-context-hero-padding-top, var(--vh-section-pad-top, clamp(5rem, 7vw, 7rem))) !important;
    padding-bottom: var(--vh-context-hero-padding-bottom, var(--vh-section-pad-bottom, clamp(5rem, 7vw, 7rem))) !important;
    min-height: auto !important;
    overflow: hidden !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image > .container{
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap{
    --bs-gutter-x: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    align-items: center !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-width: 0 !important;
    padding-left: max(1.5rem, calc((100vw - 1140px) / 2 + 3rem)) !important;
    padding-right: clamp(1.5rem, 4vw, 4.5rem) !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    display: flex !important;
    align-self: center !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-height: 0 !important;
    height: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge{
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 0 auto !important;
    transform: none !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    display: block !important;
    width: 100% !important;
    height: clamp(28rem, 58vh, 42rem) !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }
}

@media (min-width: 1400px){
  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy{
    padding-left: max(1.5rem, calc((100vw - 1320px) / 2 + 3rem)) !important;
  }
}

@media (min-width: 600px) and (max-width: 991.98px){
  body .vh-layout-hero.vh-hero-layout-right_edge_image{
    padding-top: var(--vh-context-hero-padding-top-tablet, var(--vh-section-pad-top, clamp(4.5rem, 8vw, 6rem))) !important;
    padding-bottom: var(--vh-context-hero-padding-bottom-tablet, var(--vh-section-pad-bottom, clamp(4.5rem, 8vw, 6rem))) !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap,
  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    align-items: center !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    height: auto !important;
    max-height: none !important;
    object-position: center center !important;
  }
}

@media (max-width: 599.98px){
  body .vh-layout-hero.vh-hero-layout-right_edge_image{
    padding-top: var(--vh-context-hero-padding-top-mobile, var(--vh-section-pad-top, clamp(4rem, 12vw, 5.5rem))) !important;
    padding-bottom: var(--vh-context-hero-padding-bottom-mobile, var(--vh-section-pad-bottom, clamp(4rem, 12vw, 5.5rem))) !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-wrap,
  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-media-col{
    align-items: center !important;
  }

  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge > img,
  body .vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-media--right-edge img{
    height: auto !important;
    max-height: none !important;
    object-position: center center !important;
  }
}

/* Source 13: assets/src/hero/hero-eyebrow-compact-contract.css | media: all */
/* ------------------------------------------------------------
   Hero Eyebrow Compact Contract
   Version: 1.5.141-wo108a
   Scope: all hero layouts, with explicit left/center alignment rules.
   Purpose: size the eyebrow to its content without arbitrary desktop,
   tablet, or mobile width caps. The containing copy lane is the only
   width boundary.
------------------------------------------------------------- */

.vh-layout-hero .vh-hero-eyebrow{
  width: fit-content !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
  align-self: flex-start !important;
  justify-content: center !important;
  text-align: left !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  text-wrap: balance;
}

/* Centered hero variants keep the content-sized eyebrow centered. */
.vh-layout-hero .vh-hero-copy--center .vh-hero-eyebrow,
.vh-layout-hero .vh-hero-copy--minimal .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-editorial_center .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-background_image .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-search_finder .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-portfolio_grid .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-minimal_page .vh-hero-eyebrow{
  align-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* Split/right/offset layouts keep the eyebrow aligned with the copy start. */
.vh-layout-hero.vh-hero-layout-default_split .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-image_card .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-video_hero .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-before_after .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-offset_media .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-bottom_aligned_image .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-three_column_center_image .vh-hero-eyebrow,
.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-eyebrow{
  align-self: flex-start !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.vh-layout-hero.vh-hero-layout-right_edge_image .vh-hero-right-edge-copy > .vh-hero-eyebrow{
  width: fit-content !important;
  max-width: 100% !important;
  align-self: flex-start !important;
}

@media (max-width: 599.98px){
  .vh-layout-hero .vh-hero-eyebrow{
    padding-inline: .72rem !important;
    line-height: 1.18 !important;
  }
}

/* Source 14: assets/src/hero/hero-eyebrow-controls.css | media: all */
/* ------------------------------------------------------------
   WO108A — Universal non-home hero eyebrow width and border controls
   Front Page eyebrow controls remain owned by the Front Page Customizer.
------------------------------------------------------------- */

.vh-layout-hero:not(.vh-hero-context-home) .vh-hero-eyebrow{
  color: var(--vh-hero-eyebrow-text, var(--vh-hero-text, #ffffff)) !important;
  background: var(
    --vh-hero-eyebrow-bg,
    color-mix(in srgb, var(--vh-hero-text, #ffffff) 11%, transparent)
  ) !important;
  border-color: var(
    --vh-hero-eyebrow-border,
    color-mix(in srgb, var(--vh-hero-text, #ffffff) 18%, transparent)
  ) !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-radius: var(--vh-hero-eyebrow-radius, 999px) !important;
  padding: var(--vh-hero-eyebrow-padding-y, .45rem) var(--vh-hero-eyebrow-padding-x, .8rem) !important;
}


.vh-layout-hero:not(.vh-hero-context-home).vh-hero-eyebrow-borderless .vh-hero-eyebrow{
  border-width: 0 !important;
  border-color: transparent !important;
}

.vh-layout-hero:not(.vh-hero-context-home).vh-hero-eyebrow-boxless .vh-hero-eyebrow{
  padding: 0 !important;
  border-color: transparent !important;
  border-width: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Source 15: assets/src/hero/hero-layout-ratio-radius-contract.css | media: all */
/* ------------------------------------------------------------
   Hero Layout Ratio + Radius Contract
   Version: 1.5.115-wo105b1
   Scope: universal hero media shells only.
   Purpose:
   - Apply the generic ratio only to supported media layouts.
   - Keep portrait ratios from creating unbounded full-width hero heights.
   - Give one element ownership of aspect ratio, clipping, and corner radius.
   - Prevent image-ratio settings from resizing unrelated text cards.
------------------------------------------------------------- */

/* The generic ratio never owns proof, feature, floating, or inline text cards. */
.vh-layout-hero.vh-hero-ratio-contract .vh-hero-feature-card,
.vh-layout-hero.vh-hero-ratio-contract .vh-hero-floating-card,
.vh-layout-hero.vh-hero-ratio-contract .vh-hero-inline-detail{
  aspect-ratio: auto !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

/* Wide media wrappers are layout/position containers, not crop boxes. The
   nested .vh-hero-media shell is the single clipping and radius owner. */
.vh-layout-hero.vh-hero-ratio-contract .vh-hero-wide-media{
  border-radius: 0 !important;
  overflow: visible !important;
}

.vh-layout-hero.vh-hero-ratio-contract .vh-hero-media{
  border-top-left-radius: var(--vh-hero-media-radius-tl) !important;
  border-top-right-radius: var(--vh-hero-media-radius-tr) !important;
  border-bottom-right-radius: var(--vh-hero-media-radius-br) !important;
  border-bottom-left-radius: var(--vh-hero-media-radius-bl) !important;
  overflow: hidden !important;
}

.vh-layout-hero.vh-hero-ratio-contract .vh-hero-media > :is(img,picture,video,iframe,embed,object,.vh-hero-video,.vh-hero-placeholder),
.vh-layout-hero.vh-hero-ratio-contract .vh-hero-media > picture > img,
.vh-layout-hero.vh-hero-ratio-contract .vh-hero-media .vh-hero-video-trigger,
.vh-layout-hero.vh-hero-ratio-contract .vh-hero-media .vh-hero-video-trigger > img{
  border-radius: inherit !important;
}

/* Auto preserves each layout's established default media behavior. */

/* Explicit ratios belong to the media shell. Child media fills that one crop
   box; nested wrappers do not receive a second ratio or second clipping edge. */
.vh-layout-hero.vh-hero-ratio-contract.vh-hero-ratio-enabled .vh-hero-media{
  aspect-ratio: var(--vh-hero-card-aspect-ratio) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

.vh-layout-hero.vh-hero-ratio-contract.vh-hero-ratio-enabled .vh-hero-media > :is(img,picture,video,iframe,embed,object,.vh-hero-video,.vh-hero-placeholder),
.vh-layout-hero.vh-hero-ratio-contract.vh-hero-ratio-enabled .vh-hero-media > picture > img,
.vh-layout-hero.vh-hero-ratio-contract.vh-hero-ratio-enabled .vh-hero-media .vh-hero-video-trigger,
.vh-layout-hero.vh-hero-ratio-contract.vh-hero-ratio-enabled .vh-hero-media .vh-hero-video-trigger > img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Wide layouts use an outer positioning wrapper. Once a ratio is explicit,
   the nested crop shell fills that bounded wrapper instead of retaining the
   older generic 46rem media maximum. */
.vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-ratio-enabled .vh-hero-wide-media > .vh-hero-media{
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
}

/* Width guardrails keep portrait selections proportionate. The media shell
   still uses the selected ratio, but the wrapper stops a 9:16 crop from using
   the full 1120–1200px hero width and creating a near-2000px hero. */
.vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-square .vh-hero-wide-media{
  width: min(100%, 42rem) !important;
  max-width: min(100%, 42rem) !important;
}
.vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-portrait .vh-hero-wide-media{
  width: min(100%, 25rem) !important;
  max-width: min(100%, 25rem) !important;
}
.vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-vertical .vh-hero-wide-media{
  width: min(100%, 34rem) !important;
  max-width: min(100%, 34rem) !important;
}
.vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-landscape .vh-hero-wide-media{
  width: min(100%, 72rem) !important;
  max-width: min(100%, 72rem) !important;
}
.vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-wide .vh-hero-wide-media{
  width: min(100%, 70rem) !important;
  max-width: min(100%, 70rem) !important;
}

/* Media-card layouts have narrower portrait crop boxes while wide ratios can
   continue to fill their normal column. */
.vh-layout-hero.vh-hero-ratio-mode-media_card.vh-hero-card-ratio-square .vh-hero-media{
  width: min(100%, 38rem) !important;
  max-width: min(100%, 38rem) !important;
  margin-inline: auto !important;
}
.vh-layout-hero.vh-hero-ratio-mode-media_card.vh-hero-card-ratio-portrait .vh-hero-media{
  width: min(100%, 24rem) !important;
  max-width: min(100%, 24rem) !important;
  margin-inline: auto !important;
}
.vh-layout-hero.vh-hero-ratio-mode-media_card.vh-hero-card-ratio-vertical .vh-hero-media{
  width: min(100%, 32rem) !important;
  max-width: min(100%, 32rem) !important;
  margin-inline: auto !important;
}

/* Right Edge Image is governed by its edge-height contract rather than the
   generic crop-ratio control. Keep its two edge corners square. */
.vh-layout-hero.vh-hero-ratio-contract.vh-hero-layout-right_edge_image .vh-hero-media--right-edge{
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

@media (min-width: 600px) and (max-width: 991.98px){
  .vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-square .vh-hero-wide-media{ width:min(100%,36rem) !important; max-width:min(100%,36rem) !important; }
  .vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-portrait .vh-hero-wide-media{ width:min(100%,22rem) !important; max-width:min(100%,22rem) !important; }
  .vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-vertical .vh-hero-wide-media{ width:min(100%,30rem) !important; max-width:min(100%,30rem) !important; }
  .vh-layout-hero.vh-hero-ratio-mode-media_card.vh-hero-card-ratio-portrait .vh-hero-media{ width:min(100%,22rem) !important; max-width:min(100%,22rem) !important; }
  .vh-layout-hero.vh-hero-ratio-mode-media_card.vh-hero-card-ratio-vertical .vh-hero-media{ width:min(100%,29rem) !important; max-width:min(100%,29rem) !important; }
}

@media (max-width: 599.98px){
  .vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-portrait .vh-hero-wide-media,
  .vh-layout-hero.vh-hero-ratio-mode-media_card.vh-hero-card-ratio-portrait .vh-hero-media{
    width: min(100%, 19rem) !important;
    max-width: min(100%, 19rem) !important;
  }
  .vh-layout-hero.vh-hero-ratio-mode-wide_media.vh-hero-card-ratio-vertical .vh-hero-wide-media,
  .vh-layout-hero.vh-hero-ratio-mode-media_card.vh-hero-card-ratio-vertical .vh-hero-media{
    width: min(100%, 23rem) !important;
    max-width: min(100%, 23rem) !important;
  }
}

/* Source 16: assets/src/hero/hero-layout-bottom-boundary-contract.css | media: all */
/* ------------------------------------------------------------
   Responsive Bottom-Image Hero Geometry Contract
   Version: 1.5.118-wo105b3-1
   Scope: tablet/mobile variants of Centered Text Hero — Bottom Image.
   Contract:
   - The hero shell owns the section boundary.
   - The bottom media shell ends on that same boundary.
   - The transition seam is anchored to that same coordinate.
   - Announcement/admin/navigation height changes only the top safe zone.
   - Configured extra height is absorbed above media, never below it.
------------------------------------------------------------- */

@media (max-width: 991.98px){
  /* These selectors intentionally outrank the generic responsive home-hero
     padding and the section-shell alignment CSS. Bottom-image heroes cannot
     honor bottom padding or vertical centering without violating their edge
     contract. Top padding remains controlled by the measured safe zone. */
  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image,
  html body.home .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image,
  html body.home #page-top.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image{
    /* Visibility remains owned by hero-responsive.css. Never force every
       responsive variant to display from a geometry contract. Active variants
       already receive display:flex at their own breakpoint; non-responsive
       heroes receive it from the established bottom-image layout rule. */
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    padding-bottom:0 !important;
    margin-bottom:0 !important;
    --vh-bottom-image-boundary-gap:0px;
  }

  /* The container stretches through any configured min/exact height. Its flex
     child may grow with content, while margin-top:auto on the media absorbs
     only genuine spare space above the image. */
  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image > .container,
  html body.home .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image > .container,
  html body.home #page-top.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image > .container{
    display:flex !important;
    flex:1 1 auto !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-height:0 !important;
    height:auto !important;
    padding-bottom:0 !important;
    margin-bottom:0 !important;
  }

  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image,
  html body.home .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
    flex:0 0 auto !important;
  }

  /* The wrapper and media shell form one bottom anchor. No transform or
     negative margin is used; browser geometry can therefore verify a true
     shared edge instead of a visually simulated one. */
  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge,
  html body.home .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge,
  html body.home #page-top.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    display:flex !important;
    flex:0 0 auto !important;
    align-self:center !important;
    align-items:flex-end !important;
    justify-content:center !important;
    margin-top:auto !important;
    margin-bottom:0 !important;
    padding-bottom:0 !important;
    line-height:0 !important;
    transform:none !important;
  }

  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge,
  html body.home .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge,
  html body.home #page-top.vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    line-height:0 !important;
    vertical-align:bottom !important;
    transform:none !important;
    border-bottom-right-radius:0 !important;
    border-bottom-left-radius:0 !important;
  }

  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge > :is(img,picture,video,iframe,embed,object,.vh-hero-video,.vh-hero-placeholder),
  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge > picture > img,
  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge .vh-hero-video-trigger,
  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge .vh-hero-video-trigger > img{
    display:block !important;
    margin:0 !important;
    vertical-align:bottom !important;
    border-bottom-right-radius:0 !important;
    border-bottom-left-radius:0 !important;
  }

  /* The existing transition layer order remains authoritative. This contract
     only guarantees that the transition's boundary is the image boundary. */
  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image.vh-hero-has-seamless-overlap{
    overflow:visible !important;
    clip-path:none !important;
  }

  html body .vh-layout-hero.vh-hero-layout-editorial_center_bottom_image:not(.vh-hero-has-seamless-overlap){
    overflow:hidden !important;
  }
}
