@charset "UTF-8";
/*
Theme Name: Velocity Hub
Theme URI: https://ascentvelocity.com/
Author: Ascent Velocity
Author URI: https://ascentvelocity.com/
Description: Velocity Hub theme with context-specific universal hero card/caption radius controls, a social-strip-aligned footer, dedicated horizontal footer menu, exact fixed-announcement spacing, conditional pricing-table placement, and reversible multisite-safe controls.
Version: 1.5.156-wo123-context-hero-radius-controls
Tested up to: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: velocity-hub
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* --------------------------------------------------------------
   Modern Business Navbar (aesthetic only)
-------------------------------------------------------------- */

.vh-navbar .custom-logo {
	max-height: 40px;
	width: auto;
	height: auto;
}

/* Fixed navbar spacing without forcing users to fight with CSS forever */
body.admin-bar .vh-navbar {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .vh-navbar {
		top: 46px;
	}
}
.inset-shadow {
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
}

body {
	/* Navbar height (approx). Safe, simple, and responsive enough. */
	padding-top: 56px;
}

body.admin-bar {
	padding-top: calc(56px + 32px);
}

@media (max-width: 782px) {
	body.admin-bar {
		padding-top: calc(56px + 46px);
	}
}
/*!
* Start Bootstrap - Stylish Portfolio v6.0.6 (https://startbootstrap.com/theme/stylish-portfolio)
* Copyright 2013-2023 Start Bootstrap
* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-stylish-portfolio/blob/master/LICENSE)
*/
/*!
 * Bootstrap  v5.2.3 (https://getbootstrap.com/)
 * Copyright 2011-2022 The Bootstrap Authors
 * Copyright 2011-2022 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */
:root {
  --bs-blue: #9fa90b;
  --bs-indigo: #6610f2;
  --bs-purple: #6f42c1;
  --bs-pink: #d63384;
  --bs-red: #dc3545;
  --bs-orange: #fd7e14;
  --bs-yellow: #ecb807;
  --bs-green: #198754;
  --bs-teal: #20c997;
  --bs-cyan: #0dcaf0;
  --bs-black: #000;
  --bs-white: #e9e4d4;
  --bs-gray: #6c757d;
  --bs-gray-dark: #343a40;
  --bs-gray-100: #f8f9fa;
  --bs-gray-200: #e9ecef;
  --bs-gray-300: #dee2e6;
  --bs-gray-400: #ced4da;
  --bs-gray-500: #adb5bd;
  --bs-gray-600: #6c757d;
  --bs-gray-700: #495057;
  --bs-gray-800: #343a40;
  --bs-gray-900: #212529;
  --bs-primary: #9fa90b;
  --bs-secondary: #ecb807;
  --bs-success: #198754;
  --bs-info: #0dcaf0;
  --bs-warning: #ecb807;
  --bs-danger: #dc3545;
  --bs-light: #f8f9fa;
  --bs-dark: #212529;
  --bs-primary-rgb: 29, 128, 159;
  --bs-secondary-rgb: 8, 9, 10;
  --bs-success-rgb: 25, 135, 84;
  --bs-info-rgb: 13, 202, 240;
  --bs-warning-rgb: 236, 184, 7;
  --bs-danger-rgb: 220, 53, 69;
  --bs-light-rgb: 248, 249, 250;
  --bs-dark-rgb: 33, 37, 41;
  --bs-white-rgb: 255, 255, 255;
  --bs-black-rgb: 0, 0, 0;
  --bs-body-color-rgb: 33, 37, 41;
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
  --bs-body-font-family: Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
  --bs-body-font-size: 1rem;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.5;
  --bs-body-color: #212529;
  --bs-body-bg: #fff;
  --bs-border-width: 1px;
  --bs-border-style: solid;
  --bs-border-color: #dee2e6;
  --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
  --bs-border-radius: 0.375rem;
  --bs-border-radius-sm: 0.25rem;
  --bs-border-radius-lg: 0.5rem;
  --bs-border-radius-xl: 1rem;
  --bs-border-radius-2xl: 2rem;
  --bs-border-radius-pill: 50rem;
  --bs-link-color: #9fa90b;
  --bs-link-hover-color: #0f172a;
  --bs-code-color: #d63384;
  --bs-highlight-bg: #fbf1cd;
  --vh-text: #111827;
  --vh-muted: #6b7280;
  --vh-link: #1d4ed8;

}
/* --------------------------------------------------------------
   Bootstrap de-dupe shim:
   These rules preserve a few VH-specific tweaks that were living
   inside the bundled Bootstrap compile (links + heading weight).
   Keep them if you load Bootstrap separately.
-------------------------------------------------------------- */

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-weight: 700;
}

a {
  color: var(--vh-link);
  font-family: var(--bs-body-font-family);
}
a:hover { color: var(--bs-link-hover-color); }

.content-section {
  padding-top: 7.5rem;
  padding-bottom: 7.5rem;
}

.content-section-heading h2, .content-section-heading .h2 {
  font-size: 3rem;
}
.content-section-heading h3, .content-section-heading .h3 {
  font-size: 1rem;
  text-transform: uppercase;
}

.text-faded {
  color: rgba(255, 255, 255, 0.7);
}

.scroll-to-top {
  position: fixed;
  right: 15px;
  bottom: 15px;
  display: none;
  width: 50px;
  height: 50px;
  text-align: center;
  color: #fff;
  background: rgba(52, 58, 64, 0.5);
  line-height: 50px;
}
.scroll-to-top:focus, .scroll-to-top:hover {
  color: #fff;
}
.scroll-to-top:hover {
  background: #343a40;
}
.scroll-to-top i {
  font-weight: 800;
}

#sidebar-wrapper {
  position: fixed;
  z-index: 2;
  right: 0;
  width: 250px;
  height: 100%;
  transition: all 0.4s ease 0s;
  transform: translateX(250px);
  background: #9fa90b;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.sidebar-nav {
  position: absolute;
  top: 0;
  width: 250px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sidebar-nav li.sidebar-nav-item a {
  display: block;
  text-decoration: none;
  color: #fff;
  padding: 15px;
}

.sidebar-nav li a:hover {
  text-decoration: none;
  color: #fff;
  background: rgba(255, 255, 255, 0.2);
}

.sidebar-nav li a:active,
.sidebar-nav li a:focus {
  text-decoration: none;
}

.sidebar-nav > .sidebar-brand {
  font-size: 1.2rem;
  background: rgba(52, 58, 64, 0.1);
  height: 80px;
  line-height: 50px;
  padding-top: 15px;
  padding-bottom: 15px;
  padding-left: 15px;
}

.sidebar-nav > .sidebar-brand a {
  color: #fff;
  text-decoration: none;
}

.sidebar-nav > .sidebar-brand a:hover {
  color: #fff;
  background: none;
}

#sidebar-wrapper.active {
  right: 250px;
  width: 250px;
  transition: all 0.4s ease 0s;
}

.menu-toggle {
  position: fixed;
  right: 15px;
  top: 15px;
  width: 50px;
  height: 50px;
  text-align: center;
  color: #fff;
  background: rgba(52, 58, 64, 0.5);
  line-height: 50px;
  z-index: 999;
}
.menu-toggle:focus, .menu-toggle:hover {
  color: #fff;
}
.menu-toggle:hover {
  background: #343a40;
}

.btn-xl {
  padding: 1.25rem 2.5rem;
}
.bg-branddark{
	background-color:#0b0b10;
}
.bg-brand-dark-blue{
	background-color:#0f172a;
}
.bg-brandgreen {
    background-color: #9fa90b;
}
.bg-brand-yellow {
    background-color: #dbb73c;
    color: #252529;
}
.callout {
  padding: 15rem 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.1) 100%), url("../assets/img/bg-callout.jpg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.callout h2, .callout .h2 {
  font-size: 3.5rem;
  font-weight: 700;
  display: block;
  max-width: 30rem;
}

footer.footer {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
footer.footer .social-link {
  display: block;
  text-decoration: none;
  height: 4rem;
  width: 4rem;
  line-height: 4.3rem;
  font-size: 1.5rem;
  background-color: #9fa90b;
  transition: background-color 0.15s ease-in-out;
  box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
}
footer.footer .social-link:hover {
  background-color: #155d74;
  text-decoration: none;
}
.footer.masthead {
  color: #fff;
  padding-top:0 !important;
  padding-bottom: 0 !important;
  height: auto !important;

}


.map {
  height: 30rem;
}
.map iframe {
  pointer-events: none;
  height: 100%;
  width: 100%;
  border: 0;
}

@media (max-width: 992px) {
  .map {
    height: 75%;
  }
}
.masthead {
  min-height: 30rem;
  position: relative;
  display: table;
  width: 100%;
  height: auto;
  padding-top: 8rem;
  padding-bottom: 8rem;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

  /* IMPORTANT: use background-color (not background shorthand) so any
     background-image (page-specific rules or inline styles) is not wiped out. */
  .masthead, .footer.masthead{background-color:#0b1a33;color:#fff;overflow:hidden;}
  .masthead:before, .footer.masthead:before{content:"";position:absolute;inset:-40px;background:radial-gradient(1200px 600px at 10% 20%, rgba(80, 120, 255, .25), transparent 60%), radial-gradient(900px 520px at 80% 35%, rgba(120, 80, 255, .22), transparent 55%), linear-gradient(180deg, rgba(255, 255, 255, .06), #0b0b10b0 55%);}
  .masthead:after,.footer.masthead:after{content:"";position:absolute;left:-120px;top:-120px;width:420px;height:420px;border-radius:26px;transform:rotate(12deg);background:linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,0));outline:1px solid rgba(255,255,255,.10);filter:blur(.2px);}
  .masthead .container, .footer.masthead .container{position:relative;z-index:2;}
  .masthead h1, .footer.masthead h1{font-weight:700;letter-spacing:-.02em;font-size:48px;}
  .masthead p, .footer.masthead p {opacity:.92;font-size:18px;max-width:780px;}
  .masthead-search-wrap{max-width:760px;margin:28px auto 0;}
  .masthead-search-input{height:54px;border-radius:999px;padding:0 18px 0 46px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;}
  .masthead-search-input::placeholder{color:rgba(255,255,255,.75);}
  .masthead-search-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);opacity:.9;}
  .masthead-filter-bar{max-width:900px;margin:18px auto 0;}
  .masthead-filter-bar .form-select,.masthead-filter-bar .form-control{border-radius:12px;}

  .vh-results-wrap{padding:48px 0;}
  .vh-card-grid .card{border:1px solid rgba(0,0,0,.08);border-radius:14px;}
  .vh-card-grid .card-body{padding:22px;}
  .vh-card-title{font-weight:650;margin-bottom:10px;}
  .vh-card-text{color:rgba(0,0,0,.72);}
  .vh-card-actions .btn{border-radius:10px;}


@media (min-width: 992px) {
  .masthead {
    height: 100vh;
  }
  .page-template-page-faq .masthead{
        height: 25vh;
  }
  .masthead h1, .masthead .h1 {
    font-size: 3.5rem;
  }
}
.content P{
  margin:0;
  text-align:left;
}
.portfolio-item {
  display: block;
  position: relative;
  overflow: hidden;
  max-width: 530px;
  margin: auto auto 1rem;
}
.portfolio-item .caption {
  display: flex;
  height: 100%;
  width: 100%;
  background-color: rgb(0 0 0 / 28%);
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
}
.portfolio-item .caption .caption-content {
  color: #fff;
  margin: auto 2rem 2rem;
}
.portfolio-item .caption .caption-content h2, .portfolio-item .caption .caption-content .h2 {
  font-size: 1.5rem;
  text-transform: uppercase;
}
.portfolio-item .caption .caption-content p {
  font-weight: 300;
  font-size: 1.2rem;
}
@media (min-width: 992px) {
  .portfolio-item {
    max-width: none;
    margin: 0;
  }
  .portfolio-item .caption {
    transition: background-color 0.7s, -webkit-clip-path 0.25s ease-out;
    transition: clip-path 0.25s ease-out, background-color 0.7s;
    transition: clip-path 0.25s ease-out, background-color 0.7s, -webkit-clip-path 0.25s ease-out;
    -webkit-clip-path: inset(0px);
            clip-path: inset(0px);
  }
  .portfolio-item .caption .caption-content {
    margin-left: 2.5rem;
    margin-right: 2.5rem;
    margin-bottom: 2.5rem;
    }
  .portfolio-item img {
    transition: -webkit-clip-path 0.25s ease-out;
    transition: clip-path 0.25s ease-out;
    transition: clip-path 0.25s ease-out, -webkit-clip-path 0.25s ease-out;
    -webkit-clip-path: inset(-1px);
            clip-path: inset(-1px);
  }
  .portfolio-item:hover img {
    -webkit-clip-path: inset(2rem);
            clip-path: inset(2rem);
  }
  .portfolio-item:hover .caption {
    background-color: rgba(29, 128, 159, 0.9);
    -webkit-clip-path: inset(2rem);
            clip-path: inset(2rem);
  }
}

/* ------------------------------------------------------------
   VH Reusable Hover Tile (match .portfolio-item animation)
   Use on non-portfolio tiles (services, blog cards, etc.)
------------------------------------------------------------- */

.vh-hover-tile {
  position: relative;
  display: block;
  overflow: hidden;
}

.vh-hover-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Background layer for tiles that use background-image (not <img>) */
.vh-hover-tile .vh-tile-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
  -webkit-clip-path: inset(-1px);
          clip-path: inset(-1px);
}

/* Overlay matches portfolio .caption default */
.vh-hover-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(33, 37, 41, 0.2);
  z-index: 1;
}

/* Ensure content sits above overlay */
.vh-hover-tile > * {
  position: relative;
  z-index: 2;
}

@media (min-width: 992px) {
  .vh-hover-tile::before {
    transition: background-color 0.7s, -webkit-clip-path 0.25s ease-out;
    transition: clip-path 0.25s ease-out, background-color 0.7s;
    transition: clip-path 0.25s ease-out, background-color 0.7s, -webkit-clip-path 0.25s ease-out;
    -webkit-clip-path: inset(0px);
            clip-path: inset(0px);
  }

  .vh-hover-tile img,
  .vh-hover-tile .vh-tile-bg {
    transition: -webkit-clip-path 0.25s ease-out;
    transition: clip-path 0.25s ease-out;
    transition: clip-path 0.25s ease-out, -webkit-clip-path 0.25s ease-out;
    -webkit-clip-path: inset(-1px);
            clip-path: inset(-1px);
  }

  .vh-hover-tile:hover img,
  .vh-hover-tile:hover .vh-tile-bg {
    -webkit-clip-path: inset(2rem);
            clip-path: inset(2rem);
  }

  .vh-hover-tile:hover::before {
    background-color: rgba(29, 128, 159, 0.9);
    -webkit-clip-path: inset(2rem);
            clip-path: inset(2rem);
  }
}

/* If you have badge/chip rows over an image, keep them above the overlay */
.vh-tile-badges {
  position: relative;
  z-index: 3;
}

/* Disable legacy hover overlays/scales when using the portfolio-style hover */
.vh-hover-tile.card-cover::before,
.vh-hover-tile.bg-featured-blog::before {
  content: none !important;
}

.vh-hover-tile .card-img-top,
.image-frame.vh-hover-tile img {
  transform: none !important;
}

.card:hover .vh-hover-tile .card-img-top,
.image-frame.vh-hover-tile:hover img {
  transform: none !important;
}

.service-icon {
  background-color: #fff;
  color: #9fa90b;
  height: 7rem;
  width: 7rem;
  display: block;
  line-height: 7.5rem;
  font-size: 2.25rem;
  box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
}

/* ------------------------------------------------------------
   Velocity Hub Theme Overrides
   - Mobile readability
   - Accessibility focus styles
   - Layout helpers
   - Front-page masonry grid
------------------------------------------------------------- */


body {
  color: var(--vh-text);
  text-rendering: optimizeLegibility;
}

a {
  color: var(--vh-link);
    font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(79, 70, 229, 0.55);
  outline-offset: 2px;
}

/* Replace scattered inline max-widths with a consistent prose wrapper */
.vh-prose {
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}

.vh-prose--wide {
  max-width: 980px;
}
.card {
  cursor: pointer;
}
.card:hover {
  transform: translateY(-2px);
  transition: transform .15s ease;
}

/* Masthead fallback: keep it readable even if the background image is missing */
.masthead {
  color: #fff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* Services archive / page-services.php */
.page-template-page-services .masthead,
.post-type-archive-vh_service .masthead,
.single-vh_service .masthead {
  background-image:
    linear-gradient(90deg, rgba(17,24,39,.85), rgba(17,24,39,.85)),
    url("../assets/img/bg-masthead-services.jpg");
}
/* Portfolio page + single portfolio items */
.page-template-page-portfolio .masthead,
.post-type-archive-vh_portfolio .masthead,
.single-vh_portfolio .masthead {
  background-image:
    linear-gradient(90deg, rgba(17,24,39,.85), rgba(17,24,39,.85)),
    url("../assets/img/bg-masthead-portfolio.jpg");
  height: 58vh;
  padding-bottom: 0;
  padding-top: 4rem;
}
/* FAQ page + single FAQ */
.page-template-page-faq .masthead,
.post-type-archive-vh_faq,
.single-vh_faq .masthead {
  background-image:
    linear-gradient(90deg, rgba(17,24,39,.85), rgba(17,24,39,.85)),
    url("../assets/img/bg-masthead-faq.jpg");
}

/* Services cards: restore readable text colors */
.page-template-page-services .card .card-body{
  color: #111827; /* default text */
}

.page-template-page-services .card .vh-card-title{
  color: #111827;
}

.page-template-page-services .card .vh-card-text{
  color: #374151;
}
.page-template-page-services .card .vh-card-title a{
  color: #111827;
  text-decoration: none;
}
.page-template-page-services .card .vh-card-title a:hover{
  text-decoration: underline;
}


.masthead h1,
.masthead h3,
.masthead .h1,
.masthead .h3 {
  color: inherit;
}

@media (max-width: 576px) {
  .masthead h1,
  .masthead .h1 {
    font-size: 2.5rem;
  }
}

/* Front page masonry grid (CSS columns): responsive + no JS dependency */
.vh-masonry {
  column-count: 1;
  column-gap: 1.25rem;
}

@media (min-width: 576px) {
  .vh-masonry {
    column-count: 2;
  }
}

@media (min-width: 992px) {
  .vh-masonry {
    column-count: 3;
  }
}

.vh-masonry-item {
  break-inside: avoid;
  display: inline-block;
  width: 100%;
  margin: 0 0 1.25rem;
}

/* Buttons that used to be anchors */
.menu-toggle {
  border: 0;
  cursor: pointer;
}


/* Service card icon (Stylish Portfolio inspired) */
 .service-card .service-icon {
	width: 4.5rem;
	height: 4.5rem;
	background-color: #9fa90b;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.2);
}

.service-card .service-thumb img {
	border-radius: 0.5rem;
	width: 100%;
	height: auto;
}

/* Keep button black, no surprises */
.service-card .btn-dark {
	background-color: #212529;
	border-color: #212529;
}

 .service-card .btn-dark:hover {
	background-color: #000;
	border-color: #000;
}
  /* Light mode plan card (no dark backgrounds) */
  .vh-plan-card{
    background:#fff;
    border:1px solid rgba(0,0,0,.08);
    border-radius:18px;
    box-shadow:0 20px 60px rgba(0,0,0,.08);
  }
  .vh-price{
    font-weight:800;
    font-size:1.5rem;
    line-height:1.1;
    letter-spacing:-.02em;
  }
  .vh-price-suffix{
    font-weight:600;
    font-size:1rem;
    color:rgba(0,0,0,.55);
    margin-left:.15rem;
  }

  /* Check list */
  .vh-checklist{
    list-style:none;
    padding-left:0;
    margin:0;
  }
  .vh-checklist li{
    position:relative;
    padding-left:1.75rem;
    margin: .55rem 0;
    color:rgba(0,0,0,.82);
  }
  .vh-checklist li::before{
    content:"✓";
    position:absolute;
    left:0;
    top:.05rem;
    font-weight:800;
    color:#16a34a; /* green */
  }

  /* Optional: subtle header styling like your screenshot */
  .vh-plan h2{
    font-weight:800;
    letter-spacing:-.02em;
  }

/* ------------------------------------------------------------
   Page + Service layout parity
   Goal: About pages and Service single pages share the same
   header rhythm, widths, and typography (aesthetic only).
------------------------------------------------------------- */

.vh-page-header {
	padding-top: 0.25rem;
}

.vh-page-title {
	font-weight: 800;
	letter-spacing: -0.02em;
}

/* Keep long headings from punching holes in mobile layouts */
@media (max-width: 576px) {
	.vh-page-title {
		font-size: 2rem;
		line-height: 1.1;
	}
}

.vh-page-media img {
	max-height: 520px;
	object-fit: cover;
}

.vh-page-content {
	font-size: 1.05rem;
	line-height: 1.7;
}

.vh-page-content h2,
.vh-page-content h3 {
	margin-top: 2.25rem;
	margin-bottom: 0.75rem;
}

.vh-page-content p,
.vh-page-content ul,
.vh-page-content ol {
	margin-bottom: 1.25rem;
}

.vh-page-content img {
	max-width: 100%;
	height: auto;
}

/* ------------------------------------------------------------
   Global UI tokens + card CTA consistency (aesthetic only)
   Goal: Modern Business cleanliness without changing any queries.
------------------------------------------------------------- */
:root{
	--vh-primary:#9fa90b;
	--vh-primary-dark:#155d74;
	--vh-ink:#111827;
	--vh-ink-2:#0b1220;
	--vh-muted:#6b7280;
	--vh-radius:0.75rem;
	--vh-shadow:0 0.25rem 1rem rgba(0,0,0,.10);
	--vh-shadow-lg:0 0.75rem 2rem rgba(0,0,0,.16);
}

/* Make outline-primary CTAs look like intentional black CTAs inside VH cards
   without changing any PHP button classes. */
.vh-page .card .btn.btn-outline-primary,
body.page .card .btn.btn-outline-primary,
body.single .card .btn.btn-outline-primary{
	color:#fff;
	background-color:var(--vh-ink);
	border-color:var(--vh-ink);
	border-radius:0.5rem;
}

.vh-page .card .btn.btn-outline-primary:hover,
body.page .card .btn.btn-outline-primary:hover,
body.single .card .btn.btn-outline-primary:hover{
	background-color:var(--vh-ink-2);
	border-color:var(--vh-ink-2);
}

/* Card polish (keeps Bootstrap structure) */
.vh-page .card,
body.page .card,
body.single .card{
	border-radius:var(--vh-radius);
	box-shadow:var(--vh-shadow);
	border:0;
	overflow:hidden;
}

/* Improve card image cropping consistency (services/portfolio/testimonials) */
.card .card-img-top{
	width:100%;
	height:auto;
	display:block;
}

@media (min-width: 992px){
	/* Optional: keep testimonial/service thumbs from becoming skyscrapers */
	.single-vh_service .vh-page-media img,
	.page .vh-page-media img{
		max-height:560px;
	}
}

/* Portfolio tile accessibility: visible focus on keyboard navigation */
.portfolio-item:focus-visible{
	outline:3px solid rgba(29,128,159,.65);
	outline-offset:3px;
}

/* ============================================================
   Velocity Hub Presentation Overrides (aesthetic-only)
   ============================================================ */

:root {
  --vh-primary: #9fa90b;
  --vh-ink: #212529;
  --vh-radius: 0.75rem;
  --vh-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.12);
}

/* Presentation Nav Mode
   Top of page: show full navbar
   Scrolled: hide navbar, show off-canvas toggle + sidebar wrapper */

.vh-navbar {
  transition: transform 180ms ease, opacity 180ms ease;
}

.menu-toggle {
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}

#sidebar-wrapper {
  pointer-events: none;
}

body.vh-nav-scrolled .vh-navbar {
  transform: translateY(-110%);
  opacity: 0;
  pointer-events: none;
}

body.vh-nav-scrolled .menu-toggle {
  opacity: 1;
  pointer-events: auto;
}

body.vh-nav-scrolled #sidebar-wrapper {
  pointer-events: auto;
}

/* Make sure off-canvas nav menu items are styled even when wp_nav_menu doesn't add template classes */
#sidebar-wrapper ul,
#sidebar-wrapper li {
  list-style: none;
  margin: 0;
  padding: 0;
}

#sidebar-wrapper li a {
  display: block;
  text-decoration: none;
}

/* ------------------------------------------------------------
   Contact Page (WO-100) - Modern Business style
   - Uses same "masthead" header rhythm as front page
------------------------------------------------------------- */

.vh-page-hero {
  padding: 6rem 0 4rem;
  background: linear-gradient(90deg, rgba(29,128,159,1) 0%, rgba(17,24,39,1) 100%);
  color: #fff;
}

.vh-page-hero .vh-page-title {
  font-weight: 700;
  line-height: 1.15;
}

.vh-page-hero .vh-page-lead {
  opacity: 0.9;
  max-width: 58ch;
}

.vh-contact-card {
  border: 0;
  border-radius: var(--vh-radius);
  box-shadow: var(--vh-shadow);
}

.vh-contact-card .form-control,
.vh-contact-card .form-select {
  border-radius: 0.5rem;
}

.vh-contact-card .btn {
  border-radius: 0.5rem;
}

/* Blog Featured cards (WO-90) */
.vh-post-card {
  border: 0;
  border-radius: var(--vh-radius);
  box-shadow: var(--vh-shadow);
  overflow: hidden;
  height: 100%;
}

.vh-post-card .vh-post-thumb {
  aspect-ratio: 16/9;
  width: 100%;
  object-fit: cover;
  display: block;
}

.vh-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  background: rgba(29,128,159,0.12);
  color: var(--vh-primary);
}

/* Presentation Nav Mode (WO fix)
   - At page top: show full top navbar
   - After scroll: hide top navbar; show Stylish Portfolio menu toggle
*/

.vh-navbar {
  transition: transform 180ms ease, opacity 180ms ease;
}

/* Hide the off-canvas toggle at the top */
body:not(.vh-nav-scrolled) .menu-toggle,
body:not(.vh-nav-scrolled) #sidebar-wrapper {
  opacity: 0;
  pointer-events: none;
}

/* Show the full navbar at the top */
body:not(.vh-nav-scrolled) .vh-navbar {
  transform: translateY(0);
  opacity: 1;
}

/* Scrolled: switch to off-canvas mode */
body.vh-nav-scrolled .vh-navbar {
  transform: translateY(-110%);
  opacity: 0;
  pointer-events: none;
}

body.vh-nav-scrolled .menu-toggle {
  opacity: 1;
  pointer-events: auto;
}

/* Sidebar wrapper exists but stays off-screen until toggled active */
body.vh-nav-scrolled #sidebar-wrapper {
  opacity: 1;
  pointer-events: auto;
}

/* Ensure sidebar menu items look correct even when wp_nav_menu doesn't add template classes */
#sidebar-wrapper ul,
#sidebar-wrapper li {
  list-style: none;
  margin: 0;
  padding: 0;
}

#sidebar-wrapper li a {
  display: block;
  text-decoration: none;
}

/* ============================================================
   WO-110 Navigation spacing + admin bar offsets
   ------------------------------------------------------------
   Fixes:
   - Removes the "mystery gap" under the header when navbar hides.
   - Removes the top gap when the off-canvas nav opens.
   - Keeps full navbar visible ONLY at page top (presentation feel).
   ============================================================ */

body {
  padding-top: 0;
}

/* Keep navbar spacing stable. Do not change body padding when the scroll state flips,
   otherwise the page jumps/bounces as the fixed nav minimizes. */
body.vh-nav-mode-solid {
  padding-top: 0;
}

body.admin-bar.vh-nav-mode-solid {
  padding-top: 0;
}

body.vh-nav-mode-transparent,
body.vh-nav-mode-hidden {
  padding-top: 0;
}

/* The sidebar is position:fixed, so it MUST have a top offset or it keeps its static position. */
#sidebar-wrapper {
  top: 0;
}

/* WP admin bar offsets (uses WP core CSS var when available) */
.admin-bar .vh-navbar {
  top: var(--wp-admin--admin-bar--height, 32px);
}

.admin-bar #sidebar-wrapper {
  top: var(--wp-admin--admin-bar--height, 32px);
  height: calc(100% - var(--wp-admin--admin-bar--height, 32px));
}

.admin-bar .menu-toggle {
  top: calc(15px + var(--wp-admin--admin-bar--height, 32px));
}

/* Modern Business utility used on blog-home layout */
.bg-featured-blog {
  height: 100%;
  min-height: 15rem;
  background-size: cover;
  background-position: center;
}

/* ============================================================
   WO-120 Modern Business aesthetic helpers (blog + portfolio)
   ============================================================ */

.bg-featured-blog,
.vh-blog-card-thumb {
	height: 100%;
	min-height: 15rem;
	background-size: cover;
	background-position: center;
}

.vh-blog-card-thumb {
	min-height: 11rem;
}

.vh-portfolio-media img {
	width: 100%;
	height: auto;
	display: block;
}


/* WO-140 Service cards: icon above thumbnail (aesthetic-only) */
.vh-service-icon-wrap{margin-bottom:.75rem}
.vh-service-icon{width:3rem;height:3rem;background:var(--bs-primary);color:#fff;font-size:1.25rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}
.vh-service-icon i{line-height:1}


/* --- Portfolio tiles (match front-page look) --- */
.vh-portfolio-tile {
  position: relative;
  display: block;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,0.08);
  background: #000;
}
.vh-portfolio-tile__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.vh-portfolio-tile__overlay {
  position: absolute;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 1.25rem 1.25rem 1.35rem;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.75) 100%);
}
.vh-portfolio-tile__meta {
  font-size: 0.75rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: 0.85;
}
.vh-portfolio-tile__title {
  margin: 0.15rem 0 0;
}

/* --- Testimonials (homepage style blocks) --- */
.vh-testimonial-block {
  text-align: center;
  max-width: 820px;
  margin: 0 auto;
}
.vh-testimonial-block__quote {
  font-style: italic;
}
.vh-testimonial-block__author {
  font-weight: 600;
}

/* --- Front page services: landing-page feature grid --- */
.vh-feature {
  height: 100%;
  background: #fff;
  border-radius: 1.25rem;
  padding: 1.25rem;
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,0.06);
}
.vh-feature__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--bs-primary);
  color: #fff;
  margin-bottom: 0.75rem;
}

.vh-feature__icon--image {
	background: transparent;
	color: inherit;
}

.vh-feature__icon--image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
	display: block;
}
.vh-feature__header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.vh-feature__thumb {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 0.75rem;
  flex: 0 0 auto;
  box-shadow: 0 0.5rem 1.25rem rgba(0,0,0,0.12);
}

/* === Service cards: chips + checklist (Services page) === */
.vh-service-card { border-radius: 18px; overflow: hidden; }
.vh-service-card-media { overflow: hidden; }
.vh-service-card-img { width: 100%; height: 220px; object-fit: cover; }
.vh-service-card-img-placeholder { height: 220px; background: rgba(0,0,0,.08); }

.vh-service-chips{
  position:absolute;
  left: 14px;
  bottom: 14px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  z-index: 2;
}

.vh-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 6px 18px rgba(0,0,0,.10);
  font-size: 14px;
  color: #111827;
}

.vh-badge{
  display:inline-block;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(34,197,94,.14);
  color: #166534;
  font-weight: 600;
  font-size: 12px;
  border: 1px solid rgba(34,197,94,.22);
}

.vh-checklist li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin: 8px 0;
  color: #374151;
}
.vh-checklist i{
  margin-top: 2px;
  color: #f97316;
}
.card-body .service-card-subtitle {
  font-family:"Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
.highlights span, .home .service-card .card-text, .masthead .service-card .card-text{
  font-family:sans-serif;
  font-size: 14px;
}
/* === Single Service: highlights bar under header === */
.vh-service-highlights-bar{
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.vh-service-highlights-inner{
  padding: 14px 0;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.vh-check-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.03);
  border: 1px solid rgba(0,0,0,.06);
  color:#111827;
  font-size: 14px;
}
.vh-check-pill i{ color:#f97316; }


/* Service page: center highlights bar */
.single-vh_service .vh-service-highlights-inner{
  justify-content:center;
}
.image-frame {
    max-width: 980px;
    max-height: 55vh;
    min-height: 27vh;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0,0,0,.15);
    background: #e9e4d4; 
}

.image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}

.image-frame:hover img {
    transform: scale(1.03);
}

/* =========================
   AJNA x Unified Footer (VH)
   ========================= */

.vh-footer { padding: 2rem 0 3rem; }

.vh-footer__shell{
  border-radius: 22px;
  overflow: hidden;              /* key: mosaic flush like AJNA */
  box-shadow: 0 22px 60px rgba(0,0,0,.25);
}

/* AJNA mosaic: no gaps */
.vh-footer__mosaic{
  background: #0c0a12;
}

.vh-social-strip{
  width: 100%;
  overflow: clip;
}

.vh-social-strip .vh-social-strip-kicker,
.vh-social-strip .vh-social-strip-title,
.vh-social-strip .vh-social-strip-body{
  transition: color .15s ease;
}

/* Desktop: flush strip, no gaps. Mobile behavior is scoped per strip/footer usage. */
.vh-footer__mosaic-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 0;                        /* key: NO SPACE between tiles */
}


.vh-footer__tile{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 9;
  min-height: 140px;
  background: #111;
  background-size: cover;
  background-position: center;
  text-decoration: none;
  color: #fff;
  padding: 18px;
  text-align: center;
}
.vh-footer__tile-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.62), rgba(0,0,0,.78));
  /*  background: linear-gradient(
  rgba(15, 23, 42, 0.75),
  rgba(15, 23, 42, 0.85)); */
  transition: opacity .15s ease;
}
a.vh-footer__tile:hover .vh-footer__tile-overlay{
  opacity: .92;
}

/* Social tile hover: switch icon + text to brand-yellow (avoid pure white/black) */
a.vh-footer__tile:hover .vh-footer__tile-icon,
a.vh-footer__tile:hover .vh-footer__tile-label,
a.vh-footer__tile:hover .vh-footer__tile-count{
	color: #dbb73c;
}
a.vh-footer__tile:hover .vh-footer__tile-count{
	border-color: rgba(219, 183, 60, .42);
}

/* ------------------------------------------------------------
   Front-page Services rows (category-driven)
------------------------------------------------------------ */
.vh-services-band{
 }

/* Dark bands should visually match the Automation Preview background style */
.vh-services-band.bg-dark{
	color: #fff;
	background:
		radial-gradient(1100px 520px at 18% -10%, rgba(159, 169, 11, .22), transparent 62%),
		radial-gradient(900px 520px at 85% 0%, rgba(56, 189, 248, .10), transparent 60%),
		radial-gradient(900px 520px at 65% 110%, rgba(236, 72, 153, .00), transparent 60%),
		linear-gradient(180deg, #0b1220 0%, #0f1c34 100%);
}

.vh-services-band.bg-dark .card{ background:#fff; color: rgba(15,23,42,.96); }

.vh-cat-image img{ max-width: 140px; height: auto; display:block; }

/* ------------------------------------------------------------
   Features strip (Front Page)
------------------------------------------------------------ */
.vh-features-strip.vh-features-bg--light{ background: #f8f9fa; }
.vh-features-strip.vh-features-bg--dark{ background: #0b1220; }
.vh-features-strip.vh-features-bg--diagram{
	background:
		radial-gradient(1100px 520px at 18% -10%, rgba(159, 169, 11, .22), transparent 62%),
		radial-gradient(900px 520px at 85% 0%, rgba(56, 189, 248, .10), transparent 60%),
		radial-gradient(900px 520px at 65% 110%, rgba(236, 72, 153, .00), transparent 60%),
		linear-gradient(180deg, #0b1220 0%, #0f1c34 100%);
}

/* Feature tiles only (do not style other cards on the page). */
.vh-features-strip .vh-feature-card{
	background: var(--vh-features-card-bg, #fff);
}

/* Optional override: feature tile text/icon color */
.vh-features-strip.vh-features-text--custom .vh-feature-card,
.vh-features-strip.vh-features-text--custom a.vh-feature-card,
.vh-features-strip.vh-features-text--custom .vh-feature-card .card-body,
.vh-features-strip.vh-features-text--custom .vh-feature-card h3,
.vh-features-strip.vh-features-text--custom .vh-feature-card p,
.vh-features-strip.vh-features-text--custom .vh-feature-card i{
	color: var(--vh-features-card-text) !important;
}

/* Optional override: feature tile icon color (separate from text) */
.vh-features-strip.vh-features-icon--custom .vh-feature-card .vh-feature-icon{
	color: var(--vh-features-icon-color) !important;
}

.vh-features-strip.vh-features--dark .vh-feature-card,
.vh-features-strip.vh-features--dark a.vh-feature-card{
	background: var(--vh-features-card-bg, rgba(15, 23, 42, .55));
	border: 1px solid rgba(255,255,255,.12);
	box-shadow: 0 14px 40px rgba(0,0,0,.20);
}
.vh-features-strip.vh-features--dark a.vh-feature-card:hover{ border-color: rgba(255,255,255,.20); transform: translateY(-1px); }
.vh-features-strip a.vh-feature-card{ transition: transform .16s ease, border-color .16s ease; }

.vh-services-band--alt{
	background: #ffffff;
}

.vh-services-band + .vh-services-band{
	border-top: 1px solid rgba(0,0,0,.06);
}
.vh-footer__tile-center{
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-shadow: 0 12px 28px rgba(0,0,0,.45);
}
.vh-footer__tile-icon{
  font-size: 32px;
  line-height: 1;
  opacity: .95;
}
.vh-footer__tile-label{
  font-size: clamp(16px, 1.2vw, 22px);
  font-weight: 900;
  letter-spacing: -0.01em;
  opacity: .98;
}
.vh-footer__tile-count{
  font-size: 13px;
  font-weight: 800;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.40);
  border: 1px solid rgba(255,255,255,.20);
}
.vh-footer__tile-kicker{
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .90;
}
.vh-footer__tile-hashtag{
  font-size: clamp(18px, 1.6vw, 26px);
  font-weight: 900;
  letter-spacing: -0.02em;
}

/* Footer column tiles (widgets/menus inside, not centered like social tiles). */
.vh-footer__mosaic-grid--footer{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 991.98px){
  .vh-footer__mosaic-grid--footer{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767.98px){
  /* Footer tiles should stack (menus/widgets are not great in a horizontal scroll strip). */
  .vh-footer__mosaic-grid--footer{
    grid-auto-flow: initial;
    grid-auto-columns: initial;
    overflow-x: visible;
    scroll-snap-type: none;
    -webkit-overflow-scrolling: auto;
    grid-template-columns: 1fr;
  }
  .vh-footer__mosaic-grid--footer > *{
    scroll-snap-align: unset;
  }
}
@media (max-width: 575.98px){
  .vh-footer__mosaic-grid--footer{
    grid-template-columns: 1fr;
  }
}

.vh-footer__tile--panel{
  aspect-ratio: auto;
  min-height: 230px;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  padding: 36px;
}
.vh-footer__tile--panel:hover .vh-footer__tile-overlay{
  opacity: .92;
}
.vh-footer__tile-panel{
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.vh-footer__tile--panel .vh-footer__links a,
.vh-footer__tile--panel a{
  color: rgba(255,255,255,.92);
  text-decoration: none;
}
.vh-footer__tile--panel .vh-footer__links a:hover,
.vh-footer__tile--panel a:hover{
  color: #fff;
  text-decoration: underline;
}
.vh-footer__tile--panel .vh-footer__tile-widget{
  margin: 0;
}
.vh-footer__tile--panel .vh-footer__tile-widget + .vh-footer__tile-widget{
  margin-top: 12px;
}

/* AJNA dark base */
.vh-footer__base{
  background:
    radial-gradient(900px 420px at 18% 0%, rgba(255,255,255,.08), transparent 60%),
    linear-gradient(180deg, #24173a 0%, #0c0a12 100%);
  color: #fff;
}

/* Unified CTA (centered vertical card) */
.vh-footer__cta{  }
.vh-footer__cta-card{
background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.10);
    color:white;
  color: #111;
  box-shadow: 0 16px 45px rgba(0,0,0,.30);
}
.vh-footer__cta-icon{
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #9fa90b;
  margin-bottom: 10px;
  color: #fff;
}
.vh-footer__cta-title{ font-size: 28px; font-weight: 800; color:white; }
.vh-footer__cta-sub{ color: #6c757d;  }

/* AJNA-like footer typography + spacing */
.vh-footer__content{ padding: 36px 24px 28px; }
.vh-footer__brand{ font-weight: 800; letter-spacing: .02em; }
.vh-footer__kicker{
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65);
  margin-bottom: 10px;
}

.vh-footer__contact li{ margin-bottom: 8px; color: rgba(255,255,255,.80); }
.vh-footer__contact a{ color: rgba(255,255,255,.85); text-decoration: none; }
.vh-footer__contact a:hover{ color:#fff; text-decoration: underline; }

.vh-footer__links a{
  color: rgba(255,255,255,.70);
  text-decoration: none;
}
.vh-footer__links a:hover{ color: #fff; text-decoration: underline; }

.vh-footer__hr{ border-color: rgba(255,255,255,.12); }

.vh-footer__legal{ color: rgba(255,255,255,.55); font-size: 14px; }
.vh-footer__legal-links a{ color: rgba(255,255,255,.55); font-size: 14px; text-decoration: none; }
.vh-footer__legal-links a:hover{ color:#fff; text-decoration: underline; }

@media (max-width: 991.98px){
  .vh-footer__mosaic-grid--footer .vh-footer__tile{ height: auto; min-height: 0; }
  .vh-footer__cta-title{ font-size: 22px; }
}
/* (CSS moved from the original widget) */
#vh-flow-widget-9f3c2{
  --vhfw-bg:#F6F5EE;--vhfw-navy:#0F172A;--vhfw-olive:#8A9B23;--vhfw-sage:#DDE3AE;--vhfw-ink:#111827;--vhfw-muted:#6B7280;--vhfw-card:#fff;--vhfw-ring:rgba(15,23,42,.16);
  --vhfw-shadow:0 14px 30px rgba(15,23,42,.10);--vhfw-shadow-sm:0 10px 20px rgba(15,23,42,.10);
  font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
  color:var(--vhfw-ink);
}
#vh-flow-widget-9f3c2 *{box-sizing:border-box;}
#vh-flow-widget-9f3c2 .vhfw-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 18px 0;}
#vh-flow-widget-9f3c2 .vhfw-title h3{margin:0 0 6px;font-size:20px;line-height:1.2;letter-spacing:-.01em;color:var(--vhfw-navy);}
#vh-flow-widget-9f3c2 .vhfw-title p{margin:0;color:var(--vhfw-muted);font-size:14px;line-height:1.4;}
#vh-flow-widget-9f3c2 .vhfw-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
#vh-flow-widget-9f3c2 :where(.vhfw-btn){appearance:none;border:1px solid rgba(15,23,42,.18);background:var(--vhfw-navy);color:#fff;padding:10px 12px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer;line-height:1;box-shadow:0 8px 16px rgba(15,23,42,.12);transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease;}
#vh-flow-widget-9f3c2 :where(.vhfw-btn:hover){transform:translateY(-1px);}#vh-flow-widget-9f3c2 :where(.vhfw-btn:active){transform:translateY(0);opacity:.92;}
#vh-flow-widget-9f3c2 :where(.vhfw-btn:focus-visible){outline:3px solid rgba(138,155,35,.35);outline-offset:2px;}
#vh-flow-widget-9f3c2 :where(.vhfw-btn-ghost){background:transparent;color:var(--vhfw-navy);box-shadow:none;}
#vh-flow-widget-9f3c2 .vhfw-diagram{position:relative;margin:14px 0 0;padding:18px;background:var(--vhfw-bg);border-radius:18px;border:1px solid rgba(15,23,42,.10);overflow:hidden;}
#vh-flow-widget-9f3c2 .vhfw-grid{position:relative;display:grid;grid-template-columns:1fr 1.6fr;gap:18px;align-items:start;min-height:340px;}
#vh-flow-widget-9f3c2 .vhfw-lines{position:absolute;inset:0;width:100%;height:100%;color:rgba(15,23,42,.75);pointer-events:none;}
#vh-flow-widget-9f3c2 .vhfw-col{display:flex;flex-direction:column;gap:14px;padding:6px;}
#vh-flow-widget-9f3c2 .vhfw-col-label{font-size:11px;font-weight:800;letter-spacing:.12em;color:rgba(15,23,42,.55);margin:0 0 2px;}
#vh-flow-widget-9f3c2 :where(.vhfw-node){width:100%;border:1px solid rgba(15,23,42,.14);border-radius:999px;padding:14px 14px;background:var(--vhfw-card);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:var(--vhfw-shadow-sm);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;text-align:left;}
#vh-flow-widget-9f3c2 :where(.vhfw-node:hover){transform:translateY(-1px);box-shadow:var(--vhfw-shadow);}#vh-flow-widget-9f3c2 :where(.vhfw-node:focus-visible){outline:3px solid rgba(138,155,35,.35);outline-offset:2px;}
#vh-flow-widget-9f3c2 .vhfw-node__text{font-weight:800;color:var(--vhfw-ink);}#vh-flow-widget-9f3c2 .vhfw-node__hint{font-size:12px;font-weight:700;color:var(--vhfw-muted);}
#vh-flow-widget-9f3c2 .vhfw-node--source{background:var(--vhfw-navy);border-color:rgba(255,255,255,.2);}#vh-flow-widget-9f3c2 .vhfw-node--source .vhfw-node__text{color:#fff;letter-spacing:.02em;}#vh-flow-widget-9f3c2 .vhfw-node--source .vhfw-node__hint{color:rgba(255,255,255,.72);}
#vh-flow-widget-9f3c2 .vhfw-node--step{background:var(--vhfw-sage);}#vh-flow-widget-9f3c2 .vhfw-node--accent{background:var(--vhfw-olive);border-color:rgba(15,23,42,.10);}#vh-flow-widget-9f3c2 .vhfw-node--accent .vhfw-node__text{color:#fff;}#vh-flow-widget-9f3c2 .vhfw-node--accent .vhfw-node__hint{color:rgba(255,255,255,.75);}
#vh-flow-widget-9f3c2 .vhfw-check{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.95);border:1px solid rgba(15,23,42,.12);flex:0 0 auto;}#vh-flow-widget-9f3c2 .vhfw-check svg{fill:var(--vhfw-navy);}
#vh-flow-widget-9f3c2 .vhfw-node.is-active{border-color:rgba(138,155,35,.65);box-shadow:0 0 0 4px rgba(138,155,35,.18),var(--vhfw-shadow);}
#vh-flow-widget-9f3c2 .vhfw-footnote{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.65);border:1px dashed rgba(15,23,42,.18);color:rgba(15,23,42,.78);font-size:13px;line-height:1.35;}
#vh-flow-widget-9f3c2 .vhfw-dot{width:10px;height:10px;border-radius:999px;background:var(--vhfw-olive);box-shadow:0 0 0 4px rgba(138,155,35,.18);flex:0 0 auto;}
#vh-flow-widget-9f3c2 .vhfw-overlay{position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:9998;}
#vh-flow-widget-9f3c2 .vhfw-popover{position:fixed;z-index:9999;width:min(420px,calc(100vw - 24px));background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.16);box-shadow:0 24px 60px rgba(15,23,42,.20);overflow:hidden;}
#vh-flow-widget-9f3c2 .vhfw-popover__header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-bottom:1px solid rgba(15,23,42,.10);background:rgba(246,245,238,.55);}
#vh-flow-widget-9f3c2 .vhfw-popover__title{font-weight:900;color:var(--vhfw-navy);letter-spacing:-.01em;}
#vh-flow-widget-9f3c2 .vhfw-popover__body{padding:12px;color:rgba(15,23,42,.90);font-size:14px;line-height:1.45;}
#vh-flow-widget-9f3c2 .vhfw-popover__body ul{margin:8px 0 0 18px;}#vh-flow-widget-9f3c2 .vhfw-popover__body li{margin:6px 0;}
#vh-flow-widget-9f3c2 .vhfw-popover__footer{display:flex;justify-content:flex-end;gap:10px;padding:12px;border-top:1px solid rgba(15,23,42,.10);background:#fff;}
#vh-flow-widget-9f3c2 .vhfw-icon-btn{appearance:none;background:transparent;border:1px solid rgba(15,23,42,.12);border-radius:10px;width:36px;height:36px;display:grid;place-items:center;cursor:pointer;}
#vh-flow-widget-9f3c2 .vhfw-icon-btn svg{fill:rgba(15,23,42,.85);}#vh-flow-widget-9f3c2 .vhfw-icon-btn:focus-visible{outline:3px solid rgba(138,155,35,.35);outline-offset:2px;}
#vh-flow-widget-9f3c2 .vhfw-popover__caret{position:absolute;width:14px;height:14px;background:#fff;border-left:1px solid rgba(15,23,42,.16);border-top:1px solid rgba(15,23,42,.16);transform:rotate(45deg);}
#vh-flow-widget-9f3c2 .vhfw-toastwrap{position:fixed;right:14px;bottom:14px;z-index:9999;display:grid;gap:10px;width:min(380px,calc(100vw - 28px));pointer-events:none;}
#vh-flow-widget-9f3c2 .vhfw-toast{pointer-events:auto;background:rgba(15,23,42,.96);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px;box-shadow:0 16px 44px rgba(15,23,42,.22);display:grid;gap:6px;}
#vh-flow-widget-9f3c2 .vhfw-toast__title{font-weight:900;letter-spacing:-.01em;}#vh-flow-widget-9f3c2 .vhfw-toast__msg{color:rgba(255,255,255,.84);font-size:13px;line-height:1.35;}
@media (max-width:780px){#vh-flow-widget-9f3c2 .vhfw-header{flex-direction:column;align-items:stretch;}#vh-flow-widget-9f3c2 .vhfw-controls{justify-content:flex-start;}#vh-flow-widget-9f3c2 .vhfw-grid{grid-template-columns:1fr;min-height:unset;}#vh-flow-widget-9f3c2 .vhfw-lines{display:none;}}
/* =========================================================
/* ============== VH Automation Preview (Front Page) ============== */

.vh-auto-preview{
	/* Global sizing (avoid “magic numbers” in rules below by using these vars) */
	--vh-brand: #9FA90B; /* matches theme accent */
	--vh-warning: var(--bs-warning, #ffc107);
	--vh-canvas-h: 520px; /* fixed per breakpoint to prevent layout jump */
	--vh-canvas-pad: clamp(18px, 2.2vw, 26px);
	--vh-tab-min-h: 86px;

	--vh-step-min: 160px;
	--vh-step-max: 225px;
	--vh-step-pad-y: 12px;
	--vh-step-pad-x: 14px;
	--vh-step-gap: 10px;
	--vh-dot: 12px;
	--vh-title: .95rem;
	--vh-sub: .83rem;
	--vh-conn: clamp(14px, 2.4vw, 34px);

	/* per-tab theme vars (updated by JS: data-theme="solo|growing|multi") */
	--vh-accent-a: rgba(159, 169, 11, .22); /* green */
	--vh-accent-b: rgba(56, 189, 248, .12); /* cyan */
	--vh-accent-c: rgba(236, 72, 153, .00); /* magenta (off by default) */

	padding: clamp(28px, 3.4vw, 44px) 0;
	color: #fff;
	transition: background 220ms ease;
	background:
		radial-gradient(1100px 520px at 18% -10%, var(--vh-accent-a), transparent 62%),
		radial-gradient(900px 520px at 85% 0%, var(--vh-accent-b), transparent 60%),
		radial-gradient(900px 520px at 65% 110%, var(--vh-accent-c), transparent 60%),
		linear-gradient(180deg, #0b1220 0%, #0f1c34 100%);
}

.vh-auto-preview[data-theme="solo"]{
	--vh-accent-a: rgba(159, 169, 11, .28);
	--vh-accent-b: rgba(56, 189, 248, .10);
	--vh-accent-c: rgba(236, 72, 153, .00);
}
.vh-auto-preview[data-theme="growing"]{
	/* Neutral / existing base background */
	--vh-accent-a: rgba(255, 255, 255, .03);
	--vh-accent-b: rgba(255, 255, 255, .02);
	--vh-accent-c: rgba(255, 255, 255, .01);
}
.vh-auto-preview[data-theme="multi"]{
	--vh-accent-a: rgba(236, 72, 153, .22);
	--vh-accent-b: rgba(159, 169, 11, .10);
	--vh-accent-c: rgba(168, 85, 247, .18);
}

@media (max-width: 1199.98px){
	.vh-auto-preview{ --vh-canvas-h: 480px; }
}
@media (max-width: 991.98px){
	.vh-auto-preview{ --vh-canvas-h: 420px; }
}

.vh-auto-preview .vh-section-title{
	font-weight: 900;
	letter-spacing: -0.02em;
	margin-bottom: 0.25rem;
}
.vh-auto-preview .vh-section-lead{ max-width: 64ch; opacity: .92; }

/* Tabs */
.vh-n8n-tabs{ gap: 12px;min-height: var(--vh-tab-min-h); }
.vh-n8n-cta{ display:flex; align-items:stretch; }
.vh-n8n-tab{
	display:flex;
	flex-direction:column;
	gap: 2px;
	min-width: 240px;
	padding: 14px 16px;
	border-radius: 14px;
	border: 1px solid rgba(255,255,255,.12);
	background: rgba(15, 23, 42, .55);
	color: rgba(255,255,255,.92);
	text-align:left;
	box-shadow: 0 14px 40px rgba(0,0,0,.25);
	transition: transform .16s ease, border-color .16s ease, background .16s ease;
	position: relative;
	isolation: isolate;
	cursor: pointer;
}
.vh-n8n-tab:hover{ transform: translateY(-1px); border-color: rgba(255,255,255,.18); }
.vh-n8n-tab.is-active{
	border-color: rgba(var(--bs-warning-rgb, 255, 193, 7), .55);
	background: linear-gradient(180deg, rgba(var(--bs-warning-rgb, 255, 193, 7), .16), rgba(15, 23, 42, .70));
	box-shadow: 0 18px 48px rgba(0,0,0,.34), 0 0 0 1px rgba(var(--bs-warning-rgb, 255, 193, 7), .20) inset, 0 0 26px rgba(var(--bs-warning-rgb, 255, 193, 7), .14);
}
.vh-n8n-tab.is-active:before{
	content:"";
	position:absolute;
	inset: 8px;
	border-radius: 10px;
	border: 1px solid rgba(var(--bs-warning-rgb, 255, 193, 7), .18);
	opacity: .9;
	pointer-events:none;
	z-index: -1;
}

.vh-n8n-tab--cta{
	text-decoration:none;
	justify-content:center;
	align-items:center;
	flex-direction: row;
	min-width: 160px;
	text-align:center;
	background: transparent;
	border-color: rgba(255,255,255,.24);
	box-shadow: none;
}
.vh-n8n-tab--cta:hover{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.36); }

/* Canvas */
.vh-n8n-canvas{
	box-sizing: border-box;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius: 24px;
	border: 8px solid rgba(255,255,255,.10);
	background:
radial-gradient(circle at 25% 20%, rgba(255, 0, 180, .08), transparent 58%),
radial-gradient(circle at 70% 80%, rgba(159, 169, 11, .06), transparent 62%),
linear-gradient(180deg, rgba(30, 41, 59, .88), rgba(15, 23, 42, .92));
	box-shadow: 0 30px 90px rgba(0,0,0,.45);
	overflow: hidden;
	height: var(--vh-canvas-h);
	padding: var(--vh-canvas-pad);
	position: relative;
}

.vh-n8n-frame{
	width: 100%;
	height: 100%;
	display:flex;
	align-items:center;
	justify-content:center;
	min-height: 0;
	min-width: 0;
	overflow:hidden;
}
.vh-n8n-canvas:before{
	content:"";
	position:absolute;
	inset:0;
	background-image: radial-gradient(rgba(255,255,255,0.085) 1px, transparent 1px);
	background-size: 18px 18px;
	opacity: .28;
	pointer-events:none;
}

/* Panels: fixed height + centered so the page never jumps */
.vh-n8n-diagram{
	display:none;
	width:100%;
	height:100%;
	align-items:center;
	justify-content:center;
	flex-direction: column;
	gap: 18px;
	position: relative;
	z-index: 1;
	overflow:hidden;
}
.vh-n8n-diagram.is-active{ display:flex; }

/* Node slider (dynamic area above the flow) */
.vh-node-slider{
	flex: 0 0 auto;
	width: 100%;
	border-radius: 18px;
	border: 1px solid rgba(255,255,255,.12);
	background: #ad2a36;
	box-shadow: 0 18px 55px rgba(0,0,0,.26);
	backdrop-filter: blur(6px);
}
.vh-node-slider__inner{
	display:flex;
	align-items: stretch;
	gap: 14px;
	padding: 14px 16px;
}
.vh-node-slider__nav{
	display:flex;
	flex-direction: column;
	gap: 8px;
	justify-content: center;
}
.vh-node-slider__btn{
	appearance:none;
	border: 1px solid rgba(255,255,255,.14);
	background: rgba(15, 23, 42, .55);
	color: rgba(255,255,255,.92);
	border-radius: 12px;
	width: 40px;
	height: 40px;
	display:grid;
	place-items:center;
	cursor:pointer;
	transition: transform .14s ease, border-color .14s ease, background .14s ease;
}
.vh-node-slider__btn:hover{ transform: translateY(-1px); border-color: rgba(var(--bs-warning-rgb,255,193,7), .45); background: rgba(15,23,42,.70); }
.vh-node-slider__btn:focus-visible{ outline: 3px solid rgba(var(--bs-warning-rgb,255,193,7), .35); outline-offset: 2px; }

.vh-node-slider__body{ min-width: 0; flex: 1 1 auto; }
.vh-node-slider__media{
	flex: 0 0 260px;
	min-width: 220px;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius: 14px;
	border: 1px solid rgba(255,255,255,.10);
	background: rgba(15, 23, 42, .35);
	overflow:hidden;
}
.vh-node-slider__img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display:block;
}

/* Placeholder when a step has no image */
.vh-node-slider__img--ph{
	background:
		radial-gradient(520px 240px at 30% 20%, rgba(159, 169, 11, .22), transparent 62%),
		radial-gradient(520px 240px at 78% 20%, rgba(56, 189, 248, .16), transparent 60%),
		linear-gradient(180deg, rgba(15, 23, 42, .38), rgba(15, 23, 42, .22));
}

@media (max-width: 991.98px){
	.vh-node-slider__media{ display:none !important; }
}
.vh-node-slider__label{ font-size: 12px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: rgba(226,232,240,.70); }
.vh-node-slider__title{ font-weight: 900; letter-spacing: -0.02em; font-size: 18px; margin-top: 2px; }
.vh-node-slider__context{ margin-top: 6px; color: rgba(226,232,240,.86); font-size: 13px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vh-node-slider__context p{ margin: 0; }
.vh-node-slider__list{ margin: 10px 0 0; padding-left: 1.1rem; color: rgba(226,232,240,.90); font-size: 13px; line-height: 1.35; }
.vh-node-slider__list li{ margin: 4px 0; }

/* Slide-in micro animation when content changes */
.vh-node-slider.is-anim .vh-node-slider__body{
	animation: vhNodeSlideIn .18s ease;
}
@keyframes vhNodeSlideIn{
	from{ transform: translateY(4px); opacity: .70; }
	to{ transform: translateY(0); opacity: 1; }
}

/* Scale target (JS sets --vh-fit-scale per panel so flows fit the fixed canvas). */
.vh-diagram-fit{
	display:inline-block;
	transform: scale(var(--vh-fit-scale, 1));
	transform-origin: center;
	will-change: transform;
	max-width:100%;
}

/* Base diagram layout */
.vh-flow{ width:max-content; }
.vh-flow--row{
	display:flex;
	align-items:center;
	justify-content:center;
	gap: 0;
	flex-wrap: nowrap;
	width: max-content;
}

/* Step nodes */
.vh-step{
	flex: 0 1 var(--vh-step-max);
	min-width: var(--vh-step-min);
	max-width: var(--vh-step-max);
	display:flex;
	align-items:center;
	gap: var(--vh-step-gap);
	padding: var(--vh-step-pad-y) var(--vh-step-pad-x);
	border-radius: 16px;
	border: 1px solid rgba(148,163,184,.24);
	background:
		linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)),
		rgba(17, 24, 39, .62);
	box-shadow: 0 18px 55px rgba(0,0,0,.30), 0 0 0 1px rgba(255,255,255,.03) inset;
	position: relative;
	isolation: isolate;
}

/* Clickable + selected state */
.vh-step--clickable{ cursor: pointer; }
.vh-step--clickable:hover{ border-color: rgba(255,255,255,.30); transform: translateY(-1px); transition: transform .14s ease, border-color .14s ease; }
.vh-step--clickable:focus-visible{ outline: 3px solid rgba(var(--bs-warning-rgb,255,193,7), .35); outline-offset: 2px; }
.vh-step.is-selected{
	border-color: rgba(var(--bs-warning-rgb,255,193,7), .55);
	box-shadow: 0 20px 60px rgba(0,0,0,.32), 0 0 0 1px rgba(var(--bs-warning-rgb,255,193,7), .18) inset, 0 0 26px rgba(var(--bs-warning-rgb,255,193,7), .14);
}
.vh-step:before{
	content:"";
	position:absolute;
	left: 10px;
	right: 10px;
	top: 10px;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent);
	opacity: .7;
	pointer-events:none;
	z-index: 0;
}
.vh-step__dot{ width: var(--vh-dot); height: var(--vh-dot); border-radius:999px; background: var(--vh-brand); box-shadow: 0 0 0 6px rgba(255,255,255,.06); flex:0 0 auto; }
.vh-step__title{ font-weight: 900; font-size: var(--vh-title); line-height: 1.15; margin:0; padding-bottom: .4rem; margin-bottom: .4rem; position:relative; }
.vh-step__title:after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background: rgba(148,163,184,.22); }
.vh-step__desc{ margin:0; font-size: var(--vh-sub); color: rgba(226,232,240,.90); line-height: 1.25; }

/* Connectors (shortened to save space) */
.vh-connector{ position: relative; flex: 0 0 var(--vh-conn); height: 2px; background: rgba(226,232,240,.35); }
.vh-connector:after{ content:""; position:absolute; right:-2px; top:50%; transform: translateY(-50%); border-left: 7px solid rgba(226,232,240,.55); border-top: 5px solid transparent; border-bottom: 5px solid transparent; }

/* Multi-location diagram layout */
.vh-multi-layout{ display:flex; align-items:center; justify-content:center; gap: clamp(12px, 1.4vw, 18px); width: max-content; }
.vh-multi-main{ display:flex; align-items:center; gap: clamp(12px, 1.4vw, 18px); flex-wrap: nowrap; }
.vh-multi-row{ display:flex; align-items:center; gap: clamp(10px, 1.2vw, 16px); flex-wrap: nowrap; }

.vh-stack{ max-width: 360px; }
.vh-stack-list{ padding-left: 1.05rem; margin: .35rem 0 0; color: rgba(226,232,240,.88); font-size: .86rem; }
.vh-stack-list li{ margin: .12rem 0; }

.vh-location-col{ display:flex; flex-direction:column; gap: 10px; min-width: 200px; }
.vh-location{ padding: 12px 14px; border-radius: 16px; background: rgba(15, 23, 42, 0.92); border: 1px solid rgba(255, 255, 255, 0.10); box-shadow: 0 10px 25px rgba(0,0,0,.25); color: #fff; font-weight: 900; letter-spacing: .2px; text-align:center; }

/* Do not show on mobile */
@media (max-width: 767.98px){
	.vh-auto-preview{ display:none; }
}

/* ============== End VH Automation Preview ============== */
    /* Scoped styles: won't affect the rest of the site */
    .vh-demo{
      --bg: #ffffff;
      --ink: #0f172a;
      --muted: #5b6b82;
      --line: #e7eefc;
      --card: #f5f8ff;
      --brand: #1d4ed8;
      --brand2: #2563eb;
      --radius: 16px;
      --shadow: 0 14px 34px rgba(2, 6, 23, .08);

      background: var(--bg);
      color: var(--ink);
      font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
      max-width: 980px;
      margin: 0 auto;
      padding: 28px 18px;
    }

    .vh-demo *{ box-sizing: border-box; }

    .vh-demo__header{
      display: grid;
      gap: 12px;
      margin-bottom: 18px;
    }

    .vh-demo__kicker{
      font-weight: 700;
      color: var(--brand);
      letter-spacing: .08em;
      text-transform: uppercase;
      font-size: 12px;
    }

    .vh-demo__title{
      font-size: clamp(26px, 3.5vw, 40px);
      line-height: 1.12;
      margin: 0;
      font-weight: 800;
      letter-spacing: -0.02em;
    }

    .vh-demo__lede{
      margin: 0;
      color: var(--muted);
      line-height: 1.6;
      max-width: 68ch;
      font-size: 15px;
    }

    /* Tiles */
    .vh-demo__tiles{
      display: grid;
      gap: 14px;
      grid-template-columns: 1fr;
      margin: 18px 0 22px;
    }
    @media (min-width: 720px){
      .vh-demo__tiles{ grid-template-columns: repeat(3, 1fr); }
    }

    .vh-demo__tile{
      background: var(--card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 18px 16px;
      box-shadow: var(--shadow);
      position: relative;
      overflow: hidden;
      transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
      min-height: 168px;
    }
    .vh-demo__tile:hover{
      transform: translateY(-2px);
      border-color: rgba(37, 99, 235, .35);
      box-shadow: 0 18px 44px rgba(2, 6, 23, .12);
    }

    .vh-demo__icon{
      width: 56px;
      height: 56px;
      border-radius: 999px;
      background: radial-gradient(100% 100% at 30% 20%, rgba(37,99,235,.25), rgba(37,99,235,.08) 55%, rgba(37,99,235,.04));
      border: 2px solid rgba(37,99,235,.18);
      display: grid;
      place-items: center;
      margin-bottom: 10px;
    }
    .vh-demo__icon svg{
      width: 26px;
      height: 26px;
      fill: var(--brand2);
    }

    .vh-demo__tile h3{
      margin: 0 0 6px;
      font-size: 16px;
      font-weight: 800;
      letter-spacing: -0.01em;
    }
    .vh-demo__tile p{
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.55;
    }

    /* Timeline */
    .vh-demo__timeline{
      margin-top: 18px;
      border-radius: var(--radius);
      border: 1px solid var(--line);
      background: #fff;
      overflow: hidden;
    }

    .vh-demo__timelineHeader{
      padding: 14px 16px;
      background: linear-gradient(180deg, rgba(37,99,235,.06), rgba(37,99,235,0));
      border-bottom: 1px solid var(--line);
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 10px;
    }

    .vh-demo__timelineHeader strong{
      font-size: 14px;
      letter-spacing: -0.01em;
    }
    .vh-demo__timelineHeader span{
      color: var(--muted);
      font-size: 12px;
    }

    .vh-demo__tlist{
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .vh-demo__titem{
      display: grid;
      grid-template-columns: 80px 1fr;
      gap: 14px;
      padding: 14px 16px;
      position: relative;
    }
    .vh-demo__titem + .vh-demo__titem{
      border-top: 1px solid var(--line);
    }

    .vh-demo__year{
      font-weight: 900;
      color: var(--brand);
      letter-spacing: -0.02em;
      font-size: 14px;
      display: flex;
      align-items: flex-start;
      gap: 10px;
    }

    .vh-demo__dotwrap{
      position: relative;
      width: 14px;
      display: flex;
      justify-content: center;
      margin-top: 2px;
    }

    .vh-demo__dot{
      width: 10px;
      height: 10px;
      border-radius: 999px;
      background: var(--brand2);
      box-shadow: 0 0 0 4px rgba(37,99,235,.18);
      z-index: 1;
    }

    .vh-demo__line{
      position: absolute;
      top: 12px;
      bottom: -16px;
      width: 2px;
      background: rgba(37,99,235,.22);
      border-radius: 2px;
    }

    .vh-demo__titem:last-child .vh-demo__line{ display: none; }

    .vh-demo__desc{
      padding-top: 1px;
    }
    .vh-demo__desc h4{
      margin: 0 0 4px;
      font-size: 14px;
      font-weight: 800;
      letter-spacing: -0.01em;
    }
    .vh-demo__desc p{
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.55;
    }

    /* Bottom note */
    .vh-demo__note{
      margin-top: 18px;
      border: 1px solid var(--line);
      background: #f8fbff;
      border-radius: 999px;
      padding: 10px 14px;
      display: flex;
      align-items: center;
      gap: 10px;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.35;
    }
    .vh-demo__pill{
      width: 20px;
      height: 20px;
      border-radius: 999px;
      background: radial-gradient(circle at 30% 30%, rgba(37,99,235,.35), rgba(37,99,235,.08));
      border: 1px solid rgba(37,99,235,.22);
      flex: 0 0 auto;
    }

    /* Make it breathe on very small screens */
    @media (max-width: 380px){
      .vh-demo__titem{ grid-template-columns: 70px 1fr; }
    }

/* ------------------------------------------------------------
   Demo Gallery Mosaic (Service + Portfolio)
------------------------------------------------------------- */
.vh-mosaic-grid{
	border-radius: 1rem;
	overflow: hidden;
  background-color: white;
	box-shadow: var(--vh-shadow-lg, 0 0.75rem 2rem rgba(0,0,0,.16));
}

/* Back-compat: front-page mosaic class used elsewhere */
.vh-front-portfolio-grid{
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: var(--vh-shadow-lg, 0 0.75rem 2rem rgba(0,0,0,.16));
}

.vh-mosaic-grid > [class*="col-"]{
	padding: 0;
}

.vh-front-portfolio-grid > [class*="col-"]{
	padding: 0;
}


.vh-front-portfolio-shortcode {
	width: 100%;
}

.vh-front-portfolio-shortcode > :last-child {
	margin-bottom: 0;
}

.vh-front-portfolio-grid .portfolio-item{
	max-width: none;
	margin: 0;
}

.vh-mosaic-grid .vh-gallery-tile{
	margin: 0 !important;
	box-shadow: none;
}

.vh-gallery-tile{
	display: block;
	width: 100%;
	height: 16rem;
	padding: 0;
	border: 0;
	border-radius: 0;
}

.vh-gallery-tile::before{
	border-radius: 0;
}

.vh-gallery-tile img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

@media (min-width: 768px){
	.vh-gallery-tile{ height: 18rem; }
}

@media (min-width: 992px){
	.vh-gallery-tile{ height: 22rem; }
}

/* Lightbox modal for demo galleries */
.vh-gallery-modal .modal-content{
	background: #0c0a12;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 18px;
}
.vh-gallery-modal .modal-body{
	padding: 0.75rem 0.75rem 1rem;
}
.vh-gallery-modal .carousel-item img{
	max-height: 80vh;
	object-fit: contain;
	background: rgba(0,0,0,.35);
}

.vh-demo-gallery{
	padding-top: 2rem;
	padding-bottom: 2.5rem;
}

/* Tablet & smaller: inline full-width slider for demo galleries */
.vh-demo-gallery-carousel{
	border-radius: 1rem;
	overflow: hidden;
	background: #fff;
	box-shadow: var(--vh-shadow-lg, 0 0.75rem 2rem rgba(0,0,0,.16));
}

@media (max-width: 991.98px){
	/* full-bleed feel */
	.vh-demo-gallery-carousel{ border-radius: 0; }
}

.vh-demo-gallery-carousel .carousel-item{
	aspect-ratio: 16 / 9;
	background: #fff;
}

.vh-demo-gallery--ratio-square .vh-demo-gallery-carousel .carousel-item{
	aspect-ratio: 1 / 1;
}

.vh-demo-gallery--ratio-portrait .vh-demo-gallery-carousel .carousel-item{
	aspect-ratio: 9 / 16;
}

.vh-demo-gallery--ratio-vertical .vh-demo-gallery-carousel .carousel-item{
	aspect-ratio: 4 / 5;
}

.vh-demo-gallery--ratio-auto .vh-demo-gallery-carousel .carousel-item{
	aspect-ratio: auto;
}

.vh-demo-gallery-carousel .vh-gallery-slide{
	display: block;
	width: 100%;
	height: 100%;
}

.vh-demo-gallery-carousel .carousel-item img{
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #fff;
	display: block;
}

.vh-demo-gallery--ratio-auto .vh-demo-gallery-carousel .vh-gallery-slide,
.vh-demo-gallery--ratio-auto .vh-demo-gallery-carousel .carousel-item img{
	height: auto;
}

.vh-demo-gallery-carousel .carousel-control-prev,
.vh-demo-gallery-carousel .carousel-control-next{
	width: 18%;
}

.vh-demo-gallery-carousel .carousel-control-prev-icon,
.vh-demo-gallery-carousel .carousel-control-next-icon{
	filter: invert(1);
	opacity: .9;
}

.single-vh_service .vh-demo-gallery,
.single-vh_portfolio .vh-demo-gallery{
	margin-top: -7.5rem;
	position: relative;
	z-index: 1000;
}

.single-vh_faq .vh-demo-gallery{
	margin-top: -7.5rem;
	position: relative;
	z-index: 1000;
}

@media (max-width: 576px){
	.single-vh_service .vh-demo-gallery,
	.single-vh_portfolio .vh-demo-gallery,
	.single-vh_faq .vh-demo-gallery{ margin-top: -2rem; }
}
/* -------------------------------------------------------------
   Services page: instant filter bar
------------------------------------------------------------- */
.vh-services-filterbar .form-control,
.vh-services-filterbar .form-select {
  border-radius: 0.9rem;
}

.vh-services-filterbar .btn {
  border-radius: 0.9rem;
}

/* -------------------------------------------------------------
   Term tiles: center + contain (best for icon-style category images)
------------------------------------------------------------- */
.vh-term-tile .vh-tile-bg {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: rgba(255,255,255,0.06);
}


/* === Workflow Section (Safe Inject) === */
.workflow-section {
    width: 100%;
    padding: 0;
}


/* ------------------------------------------------------------
   Single Service + Portfolio polish
------------------------------------------------------------- */
.single-vh_service .vh-single-hero,
.single-vh_portfolio .vh-single-hero{
  min-height: clamp(34rem, 72vh, 50rem);
  height: auto !important;
  padding-top: clamp(5.5rem, 8vw, 7.5rem);
  padding-bottom: clamp(5.5rem, 8vw, 7.5rem);
}

.single-vh_service .vh-single-hero .my-5,
.single-vh_portfolio .vh-single-hero .my-5{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.vh-action-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.5rem;
  padding: .95rem 1.5rem;
  border-radius: .9rem;
  border-width: 1px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}

.vh-action-btn:hover,
.vh-action-btn:focus{
  transform: translateY(-1px);
  box-shadow: 0 .75rem 1.75rem rgba(15, 23, 42, .18);
}

.vh-action-btn--primary,
.vh-action-btn--primary:focus{
  background: var(--vh-btn-primary-bg, #9fa90b);
  border-color: var(--vh-btn-primary-border, var(--vh-btn-primary-bg, #9fa90b));
  color: var(--vh-btn-primary-text, #fff);
}

.vh-action-btn--primary:hover{
  background: var(--vh-btn-primary-hover-bg, #155d74);
  border-color: var(--vh-btn-primary-hover-border, var(--vh-btn-primary-hover-bg, #155d74));
  color: var(--vh-btn-primary-hover-text, #fff);
}

.vh-action-btn--secondary,
.vh-action-btn--secondary:focus{
  background: transparent;
  border-color: rgba(255,255,255,.34);
  color: #fff;
}

.vh-action-btn--secondary:hover{
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.5);
  color: #fff;
}

.vh-action-btn--secondary-dark,
.vh-action-btn--secondary-dark:focus{
  background: var(--vh-btn-dark-bg, #212529);
  border-color: var(--vh-btn-dark-border, var(--vh-btn-dark-bg, #212529));
  color: var(--vh-btn-dark-text, #fff);
}

.vh-action-btn--secondary-dark:hover{
  background: var(--vh-btn-dark-hover-bg, #111827);
  border-color: var(--vh-btn-dark-hover-border, var(--vh-btn-dark-hover-bg, #111827));
  color: var(--vh-btn-dark-hover-text, #fff);
}

.vh-single-hero .vh-action-btn{
  min-width: min(100%, 14rem);
}

.vh-side-actions .vh-action-btn{
  width: 100%;
}

.vh-front-portfolio-grid--single{
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}

.vh-front-portfolio-grid--single > [class*="col-"]{
  padding: 0;
}

.vh-front-portfolio-grid--single .portfolio-item{
  height: 100%;
  border-radius: 1.1rem;
  overflow: hidden;
  box-shadow: 0 1rem 2rem rgba(15,23,42,.18);
  background: #0f172a;
}

.vh-front-portfolio-grid--single .portfolio-item img{
  width: 100%;
  min-height: 20rem;
  object-fit: cover;
}

.vh-front-portfolio-grid--single .portfolio-item .caption{
  background: linear-gradient(180deg, rgba(2,6,23,.12), rgba(2,6,23,.78));
}

@media (min-width: 992px){
  .vh-front-portfolio-grid--single .portfolio-item:hover img{
    clip-path: inset(1rem);
  }

  .vh-front-portfolio-grid--single .portfolio-item:hover .caption{
    background: linear-gradient(180deg, rgba(79,116,255,.20), rgba(15,23,42,.84));
    clip-path: inset(1rem);
  }
}

@media (max-width: 767.98px){
  .vh-single-hero .vh-action-btn{
    width: 100%;
  }

  .vh-front-portfolio-grid--single .portfolio-item img{
    min-height: 16rem;
  }
}


/* Front-page offer ladder / service rows */
.vh-services-band .service-body{
  max-width: 1420px;
}
.vh-services-layout{
  align-items: stretch;
}
.vh-services-intro{
  max-width: 360px;
  padding-top: .5rem;
}
.vh-services-intro__title{
  font-size: clamp(2rem, 2.2vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.vh-services-grid > .col{
  display: flex;
}
.vh-services-grid .service-card{
  width: 100%;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15,23,42,.08) !important;
}
.vh-services-grid .service-card .card-body{
  padding: 1.35rem 1.35rem 1.25rem;
}
.vh-services-grid .service-card-subtitle{
  font-size: .8rem;
  letter-spacing: .13em;
  font-weight: 700;
  color: #64748b !important;
  margin-bottom: .85rem !important;
}
.vh-services-grid .service-card .card-title{
  font-size: clamp(1.55rem, 1.2vw, 1.9rem);
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: #0f172a;
  margin-bottom: .95rem !important;
}
.vh-services-grid .service-card .card-text{
  font-size: 1rem;
  line-height: 1.65;
  color: #334155;
  margin-bottom: 1.1rem !important;
}
.vh-services-grid .highlights{
  gap: .55rem !important;
  padding-top: .95rem !important;
  padding-bottom: .15rem !important;
}
.vh-services-grid .highlights span{
  display: block;
  width: 100%;
  font-size: .98rem;
  line-height: 1.45;
  color: #0f172a !important;
  font-weight: 600;
}
.vh-services-grid .service-card .highlights span.text-light,
.vh-services-grid .service-card .highlights span.text-white,
.vh-services-grid .service-card .highlights span.vh-service-card__highlight{
  color: #0f172a !important;
}
.vh-services-grid .vh-service-card__hint{
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
}
.vh-services-grid .image-frame{
  min-height: 240px;
  max-height: none;
  box-shadow: none;
  background: #d6d3cb;
}
.vh-services-grid .image-frame img{
  object-fit: cover;
  background: transparent;
}
.vh-services-band.bg-dark .vh-services-intro .text-muted,
.vh-services-band.bg-dark .vh-services-intro .text-white{
  color: rgba(255,255,255,.72) !important;
}
@media (max-width: 1399.98px){
  .vh-services-intro{
    max-width: 330px;
  }
  .vh-services-intro__title{
    font-size: clamp(1.85rem, 2.05vw, 2.7rem);
  }
}
@media (max-width: 1199.98px){
  .vh-services-intro{ max-width: none; }
  .vh-services-intro__title{ font-size: clamp(1.9rem, 4vw, 2.8rem); }
  .vh-services-grid .service-card .card-title{ font-size: 1.55rem; }
}
@media (max-width: 767.98px){
  .vh-services-band .service-body{ padding-left: 1rem !important; padding-right: 1rem !important; }
  .vh-services-grid .service-card .card-body{ padding: 1.2rem 1.1rem 1rem; }
  .vh-services-grid .service-card .card-title{ font-size: 1.35rem; }
  .vh-services-grid .service-card .card-text{ font-size: .98rem; line-height: 1.6; }
  .vh-services-grid .highlights span{ font-size: .95rem; }
  .vh-services-grid .image-frame{ min-height: 210px; }
}

/* Global button tokens controlled from Customizer > Colors */
.vh-btn-primary,
.btn.btn-primary,
.btn.bg-brandgreen {
    background-color: var(--vh-btn-primary-bg, #9fa90b);
    border-color: var(--vh-btn-primary-border, #9fa90b);
    color: var(--vh-btn-primary-text, #ffffff);
}
.vh-btn-primary:hover,
.vh-btn-primary:focus,
.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn.bg-brandgreen:hover,
.btn.bg-brandgreen:focus {
    background-color: var(--vh-btn-primary-hover-bg, #155d74);
    border-color: var(--vh-btn-primary-hover-border, #155d74);
    color: var(--vh-btn-primary-hover-text, #ffffff);
}
.vh-btn-dark,
.btn.btn-dark {
    background-color: var(--vh-btn-dark-bg, #212529);
    border-color: var(--vh-btn-dark-border, #212529);
    color: var(--vh-btn-dark-text, #ffffff);
}
.vh-btn-dark:hover,
.vh-btn-dark:focus,
.btn.btn-dark:hover,
.btn.btn-dark:focus {
    background-color: var(--vh-btn-dark-hover-bg, #111827);
    border-color: var(--vh-btn-dark-hover-border, #111827);
    color: var(--vh-btn-dark-hover-text, #ffffff);
}
.vh-btn-outline,
.btn.btn-outline-dark,
.btn.btn-outline-secondary,
.btn.btn-outline-primary {
    background-color: var(--vh-btn-outline-bg, transparent);
    border-color: var(--vh-btn-outline-border, #212529);
    color: var(--vh-btn-outline-text, #212529);
}
.vh-btn-outline:hover,
.vh-btn-outline:focus,
.btn.btn-outline-dark:hover,
.btn.btn-outline-dark:focus,
.btn.btn-outline-secondary:hover,
.btn.btn-outline-secondary:focus,
.btn.btn-outline-primary:hover,
.btn.btn-outline-primary:focus {
    background-color: var(--vh-btn-outline-hover-bg, #212529);
    border-color: var(--vh-btn-outline-hover-border, #212529);
    color: var(--vh-btn-outline-hover-text, #ffffff);
}

/* ------------------------------------------------------------
   Velocity Hub universal hero layouts
   Added for one shared hero-layout dropdown across page types.
------------------------------------------------------------- */
.vh-layout-hero{
  display:flex;
  align-items:center;
  min-height:clamp(26rem, 72vh, 48rem);
  padding-top:clamp(5rem, 9vw, 8rem);
  padding-bottom:clamp(5rem, 9vw, 8rem);
  isolation:isolate;
}
.vh-layout-hero .container{position:relative;z-index:2;}
.vh-layout-hero .vh-hero-title{
  color:inherit;
  font-weight:800;
  line-height:1.05;
  letter-spacing:-.035em;
  font-size:clamp(2.4rem, 5vw, 5.4rem);
  max-width:min(100%, 34ch);
}
.vh-layout-hero .vh-hero-copy--center .vh-hero-title,
.vh-layout-hero .vh-hero-copy--minimal .vh-hero-title{max-width:min(100%, 34ch);margin-left:auto;margin-right:auto;}
.vh-layout-hero .vh-hero-lead{
  color:rgba(255,255,255,.84);
  font-size:clamp(1.05rem, 1.35vw, 1.35rem);
  line-height:1.62;
  max-width:44rem;
}
.vh-layout-hero .vh-hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-bottom:1rem;
  padding:.45rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-weight:800;
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.vh-layout-hero .vh-hero-actions .btn{border-radius:.75rem;padding:.85rem 1.15rem;font-weight:800;}
.vh-layout-hero .vh-hero-media{
  position:relative;
  overflow:hidden;
  border-radius:1.35rem;
  background:rgba(255,255,255,.07);
  border:0;
  box-shadow:0 1.25rem 3rem rgba(0,0,0,.28);
}
.vh-layout-hero .vh-hero-media img{display:block;width:100%;height:auto;}
.vh-layout-hero .vh-hero-placeholder{min-height:320px;display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:900;color:rgba(255,255,255,.24);background:rgba(0,0,0,.2);}
.vh-layout-hero .vh-hero-media-label{position:absolute;left:1rem;bottom:1rem;padding:.35rem .65rem;border-radius:.55rem;background:rgba(0,0,0,.66);color:#fff;font-weight:800;font-size:.8rem;}
.vh-layout-hero .vh-hero-play{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:4.25rem;height:4.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:#111827;box-shadow:0 .75rem 2rem rgba(0,0,0,.3);}
.vh-layout-hero .vh-hero-proof{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:1rem;max-width:42rem;}
.vh-layout-hero .vh-avatar-stack{display:flex;align-items:center;}
.vh-layout-hero .vh-avatar-stack .vh-avatar{width:34px;height:34px;border-radius:999px;border:2px solid rgba(255,255,255,.9);object-fit:cover;margin-left:-10px;}
.vh-layout-hero .vh-avatar-stack .vh-avatar:first-child{margin-left:0;}
.vh-layout-hero .vh-rating{font-weight:900;color:#fff;}
.vh-layout-hero .vh-proof-line{color:rgba(255,255,255,.78);font-size:.95rem;}
.vh-layout-hero .vh-hero-wide-media{max-width:960px;}
.vh-layout-hero .vh-hero-copy--overlay{max-width:760px;}
.vh-layout-hero .vh-hero-copy--minimal{max-width:860px;}
.vh-hero-layout-editorial_center{background-color:#f7f5ef;color:#100b22;}
.vh-hero-layout-editorial_center:before,
.vh-hero-layout-editorial_center:after,
.vh-hero-layout-minimal_page:before,
.vh-hero-layout-minimal_page:after{display:none;}
.vh-hero-layout-editorial_center .vh-hero-title,
.vh-hero-layout-minimal_page .vh-hero-title{color:#100b22;}
.vh-hero-layout-editorial_center .vh-hero-lead,
.vh-hero-layout-minimal_page .vh-hero-lead{color:#1f2937;}
.vh-hero-layout-editorial_center .vh-hero-eyebrow,
.vh-hero-layout-minimal_page .vh-hero-eyebrow{background:#ffd4c1;color:#100b22;border-color:#ffd4c1;}
.vh-hero-layout-minimal_page{background:#f8fafc;color:#111827;min-height:22rem;padding-top:5rem;padding-bottom:5rem;}
.vh-hero-layout-minimal_page .vh-hero-actions .vh-action-btn--secondary{color:#111827;border-color:#111827;}
.vh-hero-collage{position:relative;padding:1.5rem;}
.vh-hero-collage-main{transform:rotate(0deg);}
.vh-hero-floating-card{position:relative;display:inline-flex;flex-direction:column;gap:.25rem;max-width:15rem;margin:.75rem -.5rem 0 1rem;padding:1rem;border-radius:1rem;background:#fff;color:#111827;box-shadow:0 1rem 2.5rem rgba(0,0,0,.2);}
.vh-hero-floating-card strong{font-weight:900;}
.vh-hero-floating-card span{font-size:.88rem;color:#4b5563;}
.vh-hero-proof-bar{display:grid;grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr);gap:1rem;align-items:stretch;}
.vh-hero-proof-bar .vh-hero-proof{height:100%;max-width:none;}
.vh-hero-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.vh-hero-feature-card{padding:1.15rem;border-radius:1rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#fff;}
.vh-hero-feature-index{color:#a3b51a;font-weight:900;font-size:.8rem;margin-bottom:.45rem;}
.vh-hero-feature-card h3{font-size:1rem;font-weight:900;margin:0 0 .4rem;color:inherit;}
.vh-hero-feature-card p{font-size:.92rem;line-height:1.5;margin:0;color:rgba(255,255,255,.76);}
.vh-hero-before-after{display:grid;grid-template-columns:1fr 1fr;gap:1rem;position:relative;}
.vh-hero-before-after:before{content:'→';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#a3b51a;color:#111827;font-weight:900;z-index:2;}
.vh-hero-before-after>div{min-height:14rem;padding:1.25rem;border-radius:1.2rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);}
.vh-hero-before-after span{display:block;color:#a3b51a;font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;margin-bottom:.75rem;}
.vh-hero-before-after strong{display:block;color:#fff;font-size:1.35rem;line-height:1.25;}
.vh-hero-finder{max-width:850px;padding:1rem;border-radius:1rem;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);}
.vh-hero-finder form,.vh-hero-finder .row{margin-bottom:0;}
.vh-hero-portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.vh-hero-portfolio-card{position:relative;display:block;min-height:12rem;border-radius:1rem;overflow:hidden;background:rgba(255,255,255,.09);border:0;color:#fff;text-decoration:none;}
.vh-hero-portfolio-card img{width:100%;height:100%;min-height:12rem;object-fit:cover;display:block;filter:saturate(.95) contrast(.98);transition:transform .2s ease;}
.vh-hero-portfolio-card:hover img{transform:scale(1.035);}
.vh-hero-portfolio-card span{position:absolute;left:.85rem;right:.85rem;bottom:.85rem;padding:.45rem .6rem;border-radius:.6rem;background:rgba(0,0,0,.66);font-weight:800;}
.vh-hero-portfolio-placeholder{height:100%;min-height:12rem;background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.03));}
.vh-hero-asym-wrap{position:relative;}
.vh-hero-layout-asymmetric_magazine .vh-hero-title{font-size:clamp(2.75rem,6vw,6.5rem);max-width:12ch;}
.vh-hero-media--offset{transform:translateY(1.5rem) rotate(1.2deg);}
.vh-hero-extra{position:relative;z-index:3;}
.vh-hero-extra .text-white{color:#fff!important;}
@media (max-width: 991.98px){
  .vh-layout-hero{text-align:center;min-height:auto;}
  .vh-layout-hero .vh-hero-title{max-width:none;margin-left:auto;margin-right:auto;}
  .vh-layout-hero .vh-hero-lead{margin-left:auto;margin-right:auto;}
  .vh-layout-hero .vh-hero-proof{margin-left:auto;margin-right:auto;justify-content:center;}
  .vh-hero-proof-bar{grid-template-columns:1fr;}
}
@media (max-width: 575.98px){
  .vh-hero-feature-grid,
  .vh-hero-before-after,
  .vh-hero-portfolio-grid{grid-template-columns:1fr;}
  .vh-hero-before-after:before{display:none;}
}
.vh-layout-hero{height:auto!important;}
.vh-hero-filter-panel{padding:1rem;border-radius:1rem;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);}
.vh-hero-filter-panel .form-label{color:#fff;font-weight:800;}
.vh-hero-taxonomy-tiles{max-width:1100px;margin-left:auto;margin-right:auto;}

/* ------------------------------------------------------------
   Universal hero layout usability pass
   - Customizer-controlled hero colors
   - Better line lengths for quick setup across industries
   - Fixed cards/search/before-after layouts
------------------------------------------------------------- */
.vh-layout-hero.masthead{
  background-color: var(--vh-hero-bg, #070b15) !important;
  color: var(--vh-hero-text, #ffffff) !important;
  min-height: clamp(30rem, 72vh, 46rem);
}
.vh-layout-hero.masthead:before{
  background:
    radial-gradient(900px 480px at 8% 18%, rgba(98, 132, 255, .18), transparent 60%),
    radial-gradient(760px 420px at 82% 24%, rgba(126, 87, 255, .14), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.10));
  opacity: 1;
}
.vh-layout-hero.masthead:after{
  opacity: .55;
}
.vh-layout-hero .vh-hero-title{
  color: var(--vh-hero-text, #ffffff) !important;
  font-size: clamp(2.35rem, 4.4vw, 4.85rem);
  line-height: 1.06;
  max-width: min(100%, 34ch);
  overflow-wrap: normal;
  word-break: normal;
  text-wrap: balance;
}
.vh-layout-hero .vh-hero-copy--center .vh-hero-title,
.vh-layout-hero .vh-hero-copy--minimal .vh-hero-title{
  max-width: min(100%, 34ch);
}
.vh-layout-hero .vh-hero-lead{
  color: var(--vh-hero-muted, #d1d5db) !important;
  opacity: 1;
  max-width: 48rem;
}
.vh-layout-hero .vh-hero-eyebrow{
  color: var(--vh-hero-text, #ffffff);
  border-color: color-mix(in srgb, var(--vh-hero-text, #ffffff) 18%, transparent);
  background: color-mix(in srgb, var(--vh-hero-text, #ffffff) 11%, transparent);
}
.vh-layout-hero .vh-action-btn--primary{
  background-color: var(--vh-btn-primary-bg, #5865f2);
  border-color: var(--vh-btn-primary-border, var(--vh-btn-primary-bg, #5865f2));
  color: var(--vh-btn-primary-text, #ffffff);
}
.vh-layout-hero .vh-action-btn--secondary{
  background: transparent;
  border-color: color-mix(in srgb, var(--vh-hero-text, #ffffff) 40%, transparent);
  color: var(--vh-hero-text, #ffffff);
}
.vh-layout-hero .vh-hero-media{
  border-radius: 1.15rem;
}
.vh-layout-hero .vh-hero-media img{
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.vh-hero-layout-editorial_center,
.vh-hero-layout-minimal_page{
  background-color: var(--vh-hero-bg, #070b15) !important;
  color: var(--vh-hero-text, #ffffff) !important;
}
.vh-hero-layout-editorial_center .vh-hero-title,
.vh-hero-layout-minimal_page .vh-hero-title{
  color: var(--vh-hero-text, #ffffff) !important;
}
.vh-hero-layout-editorial_center .vh-hero-lead,
.vh-hero-layout-minimal_page .vh-hero-lead{
  color: var(--vh-hero-muted, #d1d5db) !important;
}
.vh-hero-layout-editorial_center .vh-hero-eyebrow,
.vh-hero-layout-minimal_page .vh-hero-eyebrow{
  color: var(--vh-hero-text, #ffffff);
  background: color-mix(in srgb, var(--vh-hero-text, #ffffff) 11%, transparent);
  border-color: color-mix(in srgb, var(--vh-hero-text, #ffffff) 18%, transparent);
}
.vh-hero-layout-lifestyle_collage .vh-hero-title,
.vh-hero-layout-video_hero .vh-hero-title,
.vh-hero-layout-portfolio_grid .vh-hero-title{
  max-width: 20ch;
}
.vh-hero-collage{
  padding: 0;
}
.vh-hero-collage-cards{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.vh-hero-floating-card{
  position: static;
  display: flex;
  min-width: 0;
  max-width: none;
  width: 100%;
  min-height: 6.5rem;
  margin: 0;
  justify-content: center;
  padding: 1rem;
  border: 1px solid rgba(15,23,42,.08);
}
.vh-hero-floating-card strong{
  line-height: 1.25;
}
.vh-hero-floating-card span{
  line-height: 1.45;
}
.vh-hero-proof-bar{
  display: block;
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}
.vh-hero-proof-bar .vh-hero-proof{
  max-width: none;
  margin-bottom: 1rem;
  min-height: 6.5rem;
}
.vh-hero-proof-bar .vh-hero-feature-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.vh-hero-feature-grid{
  align-items: stretch;
}
.vh-hero-feature-card{
  min-height: 9rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: color-mix(in srgb, var(--vh-hero-text, #ffffff) 8%, transparent);
  border-color: color-mix(in srgb, var(--vh-hero-text, #ffffff) 14%, transparent);
  color: var(--vh-hero-text, #ffffff);
}
.vh-hero-feature-card p{
  color: var(--vh-hero-muted, #d1d5db);
}
.vh-hero-before-after{
  align-items: stretch;
}
.vh-hero-before-after > div{
  min-height: 15rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: color-mix(in srgb, var(--vh-hero-text, #ffffff) 8%, transparent);
  border-color: color-mix(in srgb, var(--vh-hero-text, #ffffff) 14%, transparent);
}
.vh-hero-before-after strong{
  font-size: clamp(1.25rem, 2vw, 1.85rem);
  color: var(--vh-hero-text, #ffffff);
}
.vh-hero-before-after p{
  margin: .75rem 0 0;
  color: var(--vh-hero-muted, #d1d5db);
  line-height: 1.55;
}
.vh-hero-finder{
  width: min(100%, 860px);
  padding: 1rem;
}
.vh-hero-finder-form{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
}
.vh-hero-finder-form input[type="search"]{
  width: 100%;
  min-height: 3.25rem;
  border-radius: .85rem;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.96);
  color: #111827;
  padding: 0 1rem;
}
.vh-hero-finder-form button{
  min-height: 3.25rem;
  border-radius: .85rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  font-weight: 800;
}
@media (max-width: 991.98px){
  .vh-layout-hero .vh-hero-title{
    max-width: min(100%, 30ch);
    margin-left: auto;
    margin-right: auto;
  }
  .vh-hero-proof-bar .vh-hero-feature-grid{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 575.98px){
  .vh-layout-hero{
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }
  .vh-layout-hero .vh-hero-title{
    font-size: clamp(2.05rem, 11vw, 3.3rem);
    max-width: min(100%, 20ch);
  }
  .vh-hero-collage-cards,
  .vh-hero-finder-form{
    grid-template-columns: 1fr;
  }
}

/* ------------------------------------------------------------
   Universal hero layout follow-up cleanup
   - Removes card-heavy behavior from quick setup layouts
   - Moves search/finder buttons below the input
   - Adds Customizer-controlled typography variables
------------------------------------------------------------- */
.vh-layout-hero{
  font-family: var(--vh-hero-font-family, inherit);
}
.vh-layout-hero .vh-hero-title{
  color: var(--vh-hero-title-color, var(--vh-hero-text, #ffffff)) !important;
  font-family: var(--vh-hero-font-family, inherit);
  font-size: clamp(2.05rem, 3.85vw, var(--vh-hero-title-size, 66px));
  line-height: 1.07;
  letter-spacing: -.03em;
  max-width: 23ch;
}
.vh-layout-hero .vh-hero-lead,
.vh-layout-hero .vh-action-btn,
.vh-layout-hero .vh-hero-eyebrow,
.vh-layout-hero .vh-hero-proof,
.vh-layout-hero .vh-hero-inline-detail,
.vh-layout-hero .vh-hero-finder{
  font-family: var(--vh-hero-font-family, inherit);
}
.vh-hero-layout-asymmetric_magazine .vh-hero-title{
  font-size: clamp(2.25rem, 4.2vw, var(--vh-hero-title-size, 66px));
  max-width: 16ch;
}
.vh-hero-layout-lifestyle_collage .vh-hero-title,
.vh-hero-layout-video_hero .vh-hero-title,
.vh-hero-layout-portfolio_grid .vh-hero-title,
.vh-hero-layout-default_split .vh-hero-title{
  max-width: 21ch;
}
.vh-hero-inline-detail-stack{
  display: grid;
  grid-template-columns: 1fr;
  gap: .85rem;
  max-width: 44rem;
}
.vh-hero-inline-detail{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .25rem;
  padding-left: 1rem;
  border-left: 4px solid var(--vh-btn-primary-bg, #d9b42f);
  color: var(--vh-hero-text, #ffffff);
  text-align: left;
}
.vh-hero-inline-detail strong{
  color: var(--vh-hero-title-color, var(--vh-hero-text, #ffffff));
  font-weight: 900;
  line-height: 1.28;
}
.vh-hero-inline-detail span{
  color: var(--vh-hero-muted, #d1d5db);
  line-height: 1.45;
}
.vh-hero-layout-lifestyle_collage .vh-hero-collage{
  padding: 0;
}
.vh-hero-layout-lifestyle_collage .vh-hero-media{
  box-shadow: 0 1.25rem 3rem rgba(0,0,0,.22);
}
.vh-hero-layout-lifestyle_collage .vh-hero-floating-card,
.vh-hero-layout-lifestyle_collage .vh-hero-collage-cards{
  display: none !important;
}
.vh-hero-finder{
  width: min(100%, 860px);
  padding: 1rem;
}
.vh-hero-finder-form{
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .85rem;
  align-items: stretch;
}
.vh-hero-finder-form input[type="search"]{
  width: 100%;
  min-height: 3.5rem;
}
.vh-hero-finder-form button{
  justify-self: center;
  width: min(100%, 220px);
  min-height: 3.25rem;
}
.vh-hero-finder + .vh-hero-actions{
  margin-top: 1.25rem !important;
}
.vh-hero-layout-minimal_page .vh-action-btn--secondary,
.vh-hero-layout-editorial_center .vh-action-btn--secondary{
  color: var(--vh-hero-text, #ffffff) !important;
  border-color: color-mix(in srgb, var(--vh-hero-text, #ffffff) 55%, transparent) !important;
  background: transparent !important;
  opacity: 1 !important;
}
.vh-hero-layout-minimal_page .vh-action-btn--secondary:hover,
.vh-hero-layout-minimal_page .vh-action-btn--secondary:focus,
.vh-hero-layout-editorial_center .vh-action-btn--secondary:hover,
.vh-hero-layout-editorial_center .vh-action-btn--secondary:focus{
  color: var(--vh-hero-bg, #070b15) !important;
  background: var(--vh-hero-text, #ffffff) !important;
  border-color: var(--vh-hero-text, #ffffff) !important;
}
@media (max-width: 991.98px){
  .vh-layout-hero .vh-hero-title{
    font-size: clamp(2rem, 8vw, calc(var(--vh-hero-title-size, 66px) * .72));
    max-width: 18ch;
    margin-left: auto;
    margin-right: auto;
  }
  .vh-hero-inline-detail-stack{
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 575.98px){
  .vh-layout-hero .vh-hero-title{
    font-size: clamp(1.9rem, 10vw, 3rem);
    max-width: 15ch;
  }
}

/* ------------------------------------------------------------
   Universal hero layout sizing/search fix v3
   - Makes Customizer title/subtitle/body/button sizes apply directly
   - Removes Search/Finder panel box
   - Recenters Search/Finder title/content
------------------------------------------------------------- */
.vh-layout-hero .vh-hero-title{
  font-size: var(--vh-hero-title-size, 56px) !important;
  line-height: 1.06 !important;
}
.vh-layout-hero .vh-hero-lead{
  font-size: var(--vh-hero-subtitle-size, 18px) !important;
}
.vh-layout-hero .vh-hero-eyebrow{
  font-size: var(--vh-hero-eyebrow-size, 13px) !important;
}
.vh-layout-hero .vh-action-btn,
.vh-layout-hero .vh-hero-finder-form button{
  font-size: var(--vh-hero-button-size, 16px) !important;
}
.vh-layout-hero .vh-proof-line,
.vh-layout-hero .vh-hero-inline-detail,
.vh-layout-hero .vh-hero-inline-detail span,
.vh-layout-hero .vh-hero-before-after p,
.vh-layout-hero .vh-hero-feature-card p,
.vh-layout-hero .vh-hero-media-label,
.vh-layout-hero .vh-hero-extra,
.vh-layout-hero .vh-hero-finder input,
.vh-layout-hero .vh-hero-finder select,
.vh-layout-hero .vh-hero-finder textarea{
  font-size: var(--vh-hero-body-size, 16px) !important;
}
.vh-hero-layout-search_finder .vh-hero-copy{
  width: 100%;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
.vh-hero-layout-search_finder .vh-hero-title{
  max-width: 22ch !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
.vh-hero-layout-search_finder .vh-hero-lead{
  max-width: 58rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.vh-hero-layout-search_finder .vh-hero-finder{
  width: min(100%, 820px) !important;
  margin: 1.5rem auto 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.vh-hero-layout-search_finder .vh-hero-finder-form{
  width: 100% !important;
  max-width: 820px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .9rem !important;
  align-items: stretch !important;
}
.vh-hero-layout-search_finder .vh-hero-finder-form input[type="search"]{
  width: 100% !important;
  min-height: 3.6rem !important;
  border-radius: .9rem !important;
}
.vh-hero-layout-search_finder .vh-hero-finder-form button{
  justify-self: center !important;
  width: min(100%, 220px) !important;
  min-height: 3.25rem !important;
}
.vh-hero-layout-search_finder .vh-hero-actions{
  justify-content: center !important;
  margin-top: 1.35rem !important;
}
.vh-hero-layout-minimal_page .vh-action-btn--secondary,
.vh-hero-layout-editorial_center .vh-action-btn--secondary{
  color: var(--vh-hero-text, #ffffff) !important;
  opacity: 1 !important;
}
@media (max-width: 991.98px){
  .vh-layout-hero .vh-hero-title{
    font-size: min(var(--vh-hero-title-size, 56px), 44px) !important;
  }
}
@media (max-width: 575.98px){
  .vh-layout-hero .vh-hero-title{
    font-size: min(var(--vh-hero-title-size, 56px), 38px) !important;
  }
}

/* ------------------------------------------------------------
   Universal hero layout cleanup v4
   - Before/After uses only the two dedicated cards plus images
   - Portfolio hero color controls
------------------------------------------------------------- */
.vh-hero-before-after-card{
  overflow: hidden;
}
.vh-hero-before-after-image{
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: .95rem;
  margin: 0 0 1rem;
  border: 1px solid color-mix(in srgb, var(--vh-hero-text, #ffffff) 14%, transparent);
  background: color-mix(in srgb, var(--vh-hero-text, #ffffff) 8%, transparent);
}
.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card{
  color: var(--vh-hero-portfolio-link-color, #ffffff) !important;
}
.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card span{
  color: var(--vh-hero-portfolio-link-color, #ffffff) !important;
  background: color-mix(in srgb, var(--vh-hero-portfolio-title-box-color, #000000) 82%, transparent) !important;
}
.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card:hover,
.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card:focus,
.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card:hover span,
.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card:focus span{
  color: var(--vh-hero-portfolio-link-hover-color, #d9b42f) !important;
}

/* ------------------------------------------------------------
   Universal hero layout polish v5
   - Flush before/after card images, reference-style card body
   - Single combined search/finder input + button
------------------------------------------------------------- */
.vh-hero-before-after-card{
  padding: 0 !important;
  overflow: hidden !important;
  justify-content: flex-start !important;
  background: color-mix(in srgb, var(--vh-hero-text, #ffffff) 8%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--vh-hero-text, #ffffff) 14%, transparent) !important;
  border-radius: 1.2rem !important;
}
.vh-hero-before-after-image{
  display: block !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  object-fit: cover !important;
  border: 0 !important;
  border-radius: 1.2rem 1.2rem 0 0 !important;
  margin: 0 !important;
  background: color-mix(in srgb, var(--vh-hero-text, #ffffff) 8%, transparent) !important;
}
.vh-hero-before-after-body{
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  padding: 1.35rem !important;
  text-align: left;
}
.vh-hero-before-after-card--has-image .vh-hero-before-after-body{
  justify-content: flex-start;
  padding-top: 1.05rem !important;
}
.vh-hero-before-after-body span{
  display: block;
  color: var(--vh-btn-primary-bg, #a3b51a) !important;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: var(--vh-hero-eyebrow-size, 13px) !important;
  margin-bottom: .75rem;
}
.vh-hero-before-after-body strong{
  display: block;
  color: var(--vh-hero-title-color, var(--vh-hero-text, #ffffff)) !important;
  font-size: clamp(1.35rem, 2vw, 2rem) !important;
  line-height: 1.18;
}
.vh-hero-before-after-body p{
  margin: .75rem 0 0 !important;
  color: var(--vh-hero-muted, #d1d5db) !important;
  line-height: 1.55;
}
.vh-hero-layout-search_finder .vh-hero-finder{
  width: min(100%, 900px) !important;
}
.vh-hero-layout-search_finder .vh-hero-finder-form{
  display: flex !important;
  flex-direction: row !important;
  gap: 0 !important;
  align-items: stretch !important;
  width: min(100%, 900px) !important;
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.vh-hero-layout-search_finder .vh-hero-finder-form input[type="search"]{
  flex: 1 1 auto !important;
  min-width: 0 !important;
  min-height: 3.75rem !important;
  border-radius: .95rem 0 0 .95rem !important;
  border-right: 0 !important;
  margin: 0 !important;
}
.vh-hero-layout-search_finder .vh-hero-finder-form button{
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 9.5rem !important;
  min-height: 3.75rem !important;
  border-radius: 0 .95rem .95rem 0 !important;
  margin: 0 !important;
  justify-self: auto !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
@media (max-width: 575.98px){
  .vh-hero-layout-search_finder .vh-hero-finder-form{
    flex-direction: column !important;
    gap: .75rem !important;
  }
  .vh-hero-layout-search_finder .vh-hero-finder-form input[type="search"],
  .vh-hero-layout-search_finder .vh-hero-finder-form button{
    width: 100% !important;
    border-radius: .95rem !important;
    border-right: 1px solid rgba(255,255,255,.22) !important;
  }
}

/* ============================================================
   Blog index fixes: real post images, customizer colors, dark mode
   ============================================================ */
.vh-blog-index {
  --vh-blog-bg: #ffffff;
  --vh-blog-card-bg: #ffffff;
  --vh-blog-card-border: rgba(15, 23, 42, .08);
  --vh-blog-text: #0f172a;
  --vh-blog-muted: #4b5563;
  --vh-blog-rule: rgba(15, 23, 42, .12);
  --vh-blog-list-hover: rgba(var(--bs-primary-rgb, 159, 169, 11), .06);
  --vh-blog-page-bg: #ffffff;
  --vh-blog-page-border: rgba(15, 23, 42, .16);
  background: var(--vh-blog-bg);
  color: var(--vh-blog-text);
}

.vh-blog-index--dark {
  --vh-blog-bg: #07111f;
  --vh-blog-card-bg: #0f172a;
  --vh-blog-card-border: rgba(255, 255, 255, .12);
  --vh-blog-text: #ffffff;
  --vh-blog-muted: rgba(255, 255, 255, .76);
  --vh-blog-rule: rgba(255, 255, 255, .14);
  --vh-blog-list-hover: rgba(var(--bs-primary-rgb, 159, 169, 11), .16);
  --vh-blog-page-bg: #0f172a;
  --vh-blog-page-border: rgba(255, 255, 255, .18);
}

.vh-blog-index h1,
.vh-blog-index h2,
.vh-blog-index .h1,
.vh-blog-index .h2,
.vh-blog-index .h3,
.vh-blog-index .h4,
.vh-blog-index .h5,
.vh-blog-index .h6,
.vh-blog-index .fw-bolder,
.vh-blog-index .fw-bold {
  color: var(--vh-blog-text);
}

.vh-blog-index .text-muted,
.vh-blog-index .lead.text-muted,
.vh-blog-index .card-text,
.vh-blog-index .small.text-muted {
  color: var(--vh-blog-muted) !important;
}

.vh-blog-index .border-bottom {
  border-color: var(--vh-blog-rule) !important;
}

.vh-blog-index .card {
  background: var(--vh-blog-card-bg);
  color: var(--vh-blog-text);
  border-color: var(--vh-blog-card-border) !important;
}

.vh-blog-index .list-group-item {
  background: transparent;
  color: var(--vh-blog-text);
  border-color: var(--vh-blog-rule);
}

.vh-blog-index .vh-blog-card-badge {
  --vh-blog-card-badge-bg: var(--vh-btn-primary-bg, var(--bs-primary, #9fa90b));
  --vh-blog-card-badge-text: var(--vh-btn-primary-text, #ffffff);
  background: var(--vh-blog-card-badge-bg) !important;
  background-color: var(--vh-blog-card-badge-bg) !important;
  background-image: none !important;
  border-color: var(--vh-blog-card-badge-bg) !important;
  color: var(--vh-blog-card-badge-text) !important;
  text-decoration: none;
}

.vh-blog-index a.vh-blog-card-badge:hover,
.vh-blog-index a.vh-blog-card-badge:focus {
  filter: brightness(.94);
  color: var(--vh-blog-card-badge-text) !important;
}

.vh-blog-index a:not(.btn):not(.badge) {
  color: var(--vh-link, var(--bs-link-color));
}

.vh-blog-index a:not(.btn):not(.badge):hover,
.vh-blog-index a:not(.btn):not(.badge):focus {
  color: var(--bs-link-hover-color, var(--vh-link));
}

.vh-blog-index .bg-featured-blog {
  min-height: 18rem;
  background-color: #111827;
}

.vh-blog-index .vh-blog-card-thumb-wrap {
  aspect-ratio: 16 / 9;
  min-height: 11rem;
  background: #111827;
}

.vh-blog-index .vh-blog-card-image,
.vh-blog-index .vh-blog-card-thumb-wrap > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.vh-blog-index .vh-blog-image-fallback {
  width: 100%;
  height: 100%;
  min-height: inherit;
  background:
    radial-gradient(circle at 20% 20%, rgba(var(--bs-primary-rgb, 159, 169, 11), .35), transparent 35%),
    linear-gradient(135deg, #111827, #1f2937);
  color: #ffffff;
  font-weight: 800;
  letter-spacing: -.02em;
}

.vh-blog-index .list-group-item-action:hover,
.vh-blog-index .list-group-item-action:focus {
  background-color: var(--vh-blog-list-hover);
}

.vh-blog-index .page-link {
  background: var(--vh-blog-page-bg);
  border-color: var(--vh-blog-page-border);
  color: var(--vh-blog-pagination-text, var(--vh-link, var(--bs-link-color)));
}

.vh-blog-index .page-link:hover,
.vh-blog-index .page-link:focus {
  background: var(--vh-blog-list-hover);
  border-color: var(--bs-primary);
  color: var(--bs-link-hover-color, var(--vh-link));
}

.vh-blog-index .page-item.active .page-link {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: var(--vh-blog-pagination-active-text, #ffffff);
}

.vh-blog-index .page-item.disabled .page-link {
  background: var(--vh-blog-page-bg);
  border-color: var(--vh-blog-page-border);
  color: var(--vh-blog-muted) !important;
}

/* Portfolio/results archive cleanup
   Keep flush sections visually tight by default, but let Velocity Hub Settings
   section-shell controls win when they output --vh-section-pad-* variables. */
#results-portfolio.content-section.vh-content-section-flush,
.content-section.vh-content-section-flush {
  padding-top: var(--vh-section-pad-top, 0) !important;
  padding-bottom: var(--vh-section-pad-bottom, 0) !important;
}

/* ------------------------------------------------------------
   Hero card aspect ratio controls
   - Global + archive-specific Customizer ratio controls
   - Applies to media cards, feature cards, portfolio cards in Auto mode,
     and Before & After cards/images when selected.
------------------------------------------------------------- */
.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-media--offset img{
  aspect-ratio: var(--vh-hero-card-aspect-ratio, 16 / 10) !important;
  object-fit: cover !important;
}
.vh-layout-hero .vh-hero-feature-card,
.vh-layout-hero .vh-hero-floating-card,
.vh-layout-hero .vh-hero-inline-detail{
  aspect-ratio: var(--vh-hero-card-aspect-ratio, auto);
}
.vh-hero-portfolio-grid--ratio-auto .vh-hero-portfolio-card{
  aspect-ratio: var(--vh-hero-card-aspect-ratio, auto);
}
.vh-hero-portfolio-grid--ratio-auto .vh-hero-portfolio-card img,
.vh-hero-portfolio-grid--ratio-auto .vh-hero-portfolio-placeholder{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.vh-hero-before-after-image{
  aspect-ratio: var(--vh-hero-before-after-card-aspect-ratio, 16 / 9) !important;
}
.vh-hero-before-after-ratio-square .vh-hero-before-after-card,
.vh-hero-before-after-ratio-portrait .vh-hero-before-after-card,
.vh-hero-before-after-ratio-landscape .vh-hero-before-after-card,
.vh-hero-before-after-ratio-wide .vh-hero-before-after-card,
.vh-hero-before-after-ratio-vertical .vh-hero-before-after-card{
  aspect-ratio: var(--vh-hero-before-after-card-aspect-ratio, auto);
}
.vh-hero-before-after-ratio-square .vh-hero-before-after-image,
.vh-hero-before-after-ratio-portrait .vh-hero-before-after-image,
.vh-hero-before-after-ratio-landscape .vh-hero-before-after-image,
.vh-hero-before-after-ratio-wide .vh-hero-before-after-image,
.vh-hero-before-after-ratio-vertical .vh-hero-before-after-image{
  aspect-ratio: var(--vh-hero-before-after-card-aspect-ratio, 16 / 9) !important;
}

/* -------------------------------------------------------------
   Gallery ratio fixes: apply selected ratio to desktop grid and modal.
   The gallery keeps the mosaic/grid structure; the selected ratio controls
   each tile's crop box and the lightbox viewing box.
-------------------------------------------------------------- */
.vh-demo-gallery:not(.vh-demo-gallery--ratio-auto) .vh-gallery-tile{
  height: auto !important;
  aspect-ratio: 16 / 9;
}

.vh-demo-gallery--ratio-landscape .vh-gallery-tile{ aspect-ratio: 16 / 9; }
.vh-demo-gallery--ratio-square .vh-gallery-tile{ aspect-ratio: 1 / 1; }
.vh-demo-gallery--ratio-portrait .vh-gallery-tile{ aspect-ratio: 9 / 16; }
.vh-demo-gallery--ratio-vertical .vh-gallery-tile{ aspect-ratio: 4 / 5; }

.vh-demo-gallery--ratio-auto .vh-gallery-tile{
  aspect-ratio: auto;
}

.vh-gallery-modal .carousel-inner{
  width: 100%;
  max-height: 80vh;
  margin-inline: auto;
  background: rgba(0,0,0,.35);
}

.vh-gallery-modal--ratio-landscape .carousel-inner{
  aspect-ratio: 16 / 9;
  max-width: min(100%, calc(80vh * 16 / 9));
}

.vh-gallery-modal--ratio-square .carousel-inner{
  aspect-ratio: 1 / 1;
  max-width: min(100%, 80vh);
}

.vh-gallery-modal--ratio-portrait .carousel-inner{
  aspect-ratio: 9 / 16;
  max-width: min(100%, calc(80vh * 9 / 16));
}

.vh-gallery-modal--ratio-vertical .carousel-inner{
  aspect-ratio: 4 / 5;
  max-width: min(100%, calc(80vh * 4 / 5));
}

.vh-gallery-modal:not(.vh-gallery-modal--ratio-auto) .carousel-item{
  height: 100%;
}

.vh-gallery-modal:not(.vh-gallery-modal--ratio-auto) .carousel-item img{
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
}

.vh-gallery-modal--ratio-auto .carousel-inner{
  aspect-ratio: auto;
}


/* -------------------------------------------------------------
   Demo gallery grid ratio enforcement v2
   The ratio selector must resize the actual desktop grid cards, not only
   the image inside each card. Applying the ratio to the Bootstrap column
   gives the row a real calculated height; the tile then fills that box.
-------------------------------------------------------------- */
.vh-demo-gallery:not(.vh-demo-gallery--ratio-auto) .vh-demo-gallery-grid > [class*="col-"]{
  position: relative;
  aspect-ratio: var(--vh-demo-gallery-aspect-ratio, 16 / 9) !important;
}

.vh-demo-gallery:not(.vh-demo-gallery--ratio-auto) .vh-demo-gallery-grid .vh-gallery-tile{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  min-height: 0 !important;
}

.vh-demo-gallery:not(.vh-demo-gallery--ratio-auto) .vh-demo-gallery-grid .vh-gallery-tile img{
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block !important;
}

.vh-demo-gallery--ratio-auto .vh-demo-gallery-grid > [class*="col-"]{
  position: static;
  aspect-ratio: auto;
}

/* -------------------------------------------------------------
   Hero card ratio enforcement v2
   - Makes Customizer aspect-ratio controls resize the actual card box,
     not only the image inside the card.
   - Before/After cards with images behave like portfolio/image cards:
     image fills the chosen ratio and copy sits as an overlay.
-------------------------------------------------------------- */
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-media,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-collage-main,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-feature-card,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-floating-card,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-inline-detail{
  aspect-ratio: var(--vh-hero-card-aspect-ratio, auto) !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-media > img,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-media > picture,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-media > picture > img,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-media .vh-hero-video,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-placeholder,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-collage-main img{
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
}

.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-feature-card,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-floating-card,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-inline-detail{
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after{
  align-items: stretch !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card{
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  min-height: 0 !important;
  height: auto !important;
  aspect-ratio: var(--vh-hero-before-after-card-aspect-ratio, auto) !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--has-image .vh-hero-before-after-image{
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  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;
  border-radius: inherit !important;
  margin: 0 !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--has-image::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.66) 100%);
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-body{
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--has-image .vh-hero-before-after-body{
  margin-top: auto !important;
  padding: 1.1rem 1.25rem 1.25rem !important;
  background: transparent !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--text-only .vh-hero-before-after-body{
  min-height: 100% !important;
  justify-content: center !important;
}

.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--has-image .vh-hero-before-after-body span,
.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--has-image .vh-hero-before-after-body strong,
.vh-layout-hero[class*="vh-hero-before-after-ratio-"] .vh-hero-before-after-card--has-image .vh-hero-before-after-body p{
  text-shadow: 0 1px 1.2rem rgba(0,0,0,.55);
}

/* ------------------------------------------------------------
   Single portfolio hero spacing controls
   Allows tall Portfolio Grid Hero cards to breathe above the screenshot gallery.
------------------------------------------------------------- */
.single-vh_portfolio .vh-hero-context-portfolio{
  padding-top: var(--vh-single-portfolio-hero-padding-top, clamp(5.5rem, 8vw, 7.5rem)) !important;
  padding-bottom: var(--vh-single-portfolio-hero-padding-bottom, clamp(5.5rem, 8vw, 7.5rem)) !important;
  overflow: visible;
}
.single-vh_portfolio .vh-hero-context-portfolio .container{
  width: 100%;
}
@media (max-width: 767.98px){
  .single-vh_portfolio .vh-hero-context-portfolio{
    padding-top: var(--vh-single-portfolio-hero-padding-top-mobile, 4.5rem) !important;
    padding-bottom: var(--vh-single-portfolio-hero-padding-bottom-mobile, 4.5rem) !important;
  }
}

/* ------------------------------------------------------------
   Responsive hero layout variants
   Lets Customizer sections choose different hero layouts/card ratios
   for desktop, tablet, and mobile without forcing one structure everywhere.
------------------------------------------------------------- */
.vh-responsive-hero{display:none !important;}
@media (min-width: 992px){
  .vh-responsive-hero--desktop{display:block !important;}
}
@media (min-width: 768px) and (max-width: 991.98px){
  .vh-responsive-hero--tablet{display:block !important;}
}
@media (max-width: 767.98px){
  .vh-responsive-hero--mobile{display:block !important;}
}

@media (min-width: 768px) and (max-width: 991.98px){
  .single-vh_portfolio .vh-hero-context-portfolio{
    padding-top: var(--vh-single-portfolio-hero-padding-top-tablet, clamp(4.75rem, 7vw, 6.5rem)) !important;
    padding-bottom: var(--vh-single-portfolio-hero-padding-bottom-tablet, clamp(4.75rem, 7vw, 6.5rem)) !important;
  }
}

/* ------------------------------------------------------------
   Post-hero gallery overlap v3
   Demo galleries on single service/portfolio pages should intentionally
   overlap the hero/header. Hero bottom padding may increase, but the gallery
   keeps a stable upward offset so the overlap aesthetic is preserved.
------------------------------------------------------------- */
.single-vh_service .vh-demo-gallery,
.single-vh_portfolio .vh-demo-gallery,
.vh-demo-gallery.vh-post-hero-overlap{
  --vh-post-hero-overlap: clamp(4.75rem, 8vw, 7.5rem);
  margin-top: calc(var(--vh-post-hero-overlap) * -1) !important;
  position: relative;
  z-index: 1000;
}

@media (min-width: 600px) and (max-width: 991.98px){
  .single-vh_service .vh-demo-gallery,
  .single-vh_portfolio .vh-demo-gallery,
  .vh-demo-gallery.vh-post-hero-overlap{
    --vh-post-hero-overlap: clamp(3.5rem, 7vw, 5.5rem);
  }
}

@media (max-width: 599.98px){
  .single-vh_service .vh-demo-gallery,
  .single-vh_portfolio .vh-demo-gallery,
  .vh-demo-gallery.vh-post-hero-overlap{
    --vh-post-hero-overlap: 2rem;
  }
}


/* ------------------------------------------------------------
   Responsive hero breakpoint correction v1.1.1
   WordPress Customizer tablet preview is ~720px wide, so tablet
   hero controls must apply below Bootstrap's 768px cutoff too.
------------------------------------------------------------- */
@media (min-width: 600px) and (max-width: 991.98px){
  .vh-responsive-hero{display:none !important;}
  .vh-responsive-hero--tablet{display:block !important;}
  .single-vh_portfolio .vh-hero-context-portfolio{
    padding-top: var(--vh-single-portfolio-hero-padding-top-tablet, clamp(4.75rem, 7vw, 6.5rem)) !important;
    padding-bottom: var(--vh-single-portfolio-hero-padding-bottom-tablet, clamp(4.75rem, 7vw, 6.5rem)) !important;
  }
}
@media (max-width: 599.98px){
  .vh-responsive-hero{display:none !important;}
  .vh-responsive-hero--mobile{display:block !important;}
  .single-vh_portfolio .vh-hero-context-portfolio{
    padding-top: var(--vh-single-portfolio-hero-padding-top-mobile, 4.5rem) !important;
    padding-bottom: var(--vh-single-portfolio-hero-padding-bottom-mobile, 4.5rem) !important;
  }
}

/* Inline text details should not become ratio cards. They are text callouts,
   not media cards; otherwise single portfolio hero left columns become huge. */
.vh-layout-hero .vh-hero-inline-detail,
.vh-layout-hero[class*="vh-hero-card-ratio-"] .vh-hero-inline-detail{
  aspect-ratio: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  display: grid !important;
  justify-content: initial !important;
}

/* --------------------------------------------------------------------------
   Universal Hero secondary action contrast
   Secondary links inherit the hero's actual text color. This keeps plain
   pre-order/read links visible on light hero backgrounds while preserving
   white actions on dark heroes.
   -------------------------------------------------------------------------- */
.vh-layout-hero .vh-hero-actions .vh-action-btn--secondary,
.vh-layout-hero .vh-hero-actions .vh-action-btn--secondary:focus {
  color: inherit;
  border-color: color-mix(in srgb, currentColor 40%, transparent);
}

.vh-layout-hero .vh-hero-actions .vh-action-btn--secondary:hover {
  color: inherit;
  background-color: color-mix(in srgb, currentColor 8%, transparent);
  border-color: color-mix(in srgb, currentColor 55%, transparent);
}

/* Keep text-link CTAs readable when a light hero uses a secondary/plain anchor. */
.vh-layout-hero .vh-hero-copy a:not(.vh-action-btn),
.vh-layout-hero .vh-hero-actions a:not(.vh-action-btn) {
  color: inherit;
  text-decoration-color: currentColor;
}

.vh-layout-hero .vh-hero-copy a:not(.vh-action-btn):hover,
.vh-layout-hero .vh-hero-actions a:not(.vh-action-btn):hover {
  color: inherit;
  opacity: .78;
}


/* Light-surface CTA contrast: plain secondary/pre-order links must never inherit white. */
.bg-light .vh-hero-actions .vh-action-btn--secondary,
.vh-section--light .vh-hero-actions .vh-action-btn--secondary,
.bg-white .vh-hero-actions .vh-action-btn--secondary{
  color:var(--vh-text, #111827) !important;
  border-color:color-mix(in srgb, var(--vh-text, #111827) 34%, transparent) !important;
}
.bg-light .vh-hero-actions .vh-action-btn--secondary:hover,
.vh-section--light .vh-hero-actions .vh-action-btn--secondary:hover,
.bg-white .vh-hero-actions .vh-action-btn--secondary:hover{
  color:var(--vh-text, #111827) !important;
  background:color-mix(in srgb, var(--vh-text, #111827) 8%, transparent) !important;
}
.bg-light .vh-hero-copy > a:not(.btn),
.vh-section--light .vh-hero-copy > a:not(.btn),
.bg-white .vh-hero-copy > a:not(.btn){
  color:var(--vh-text, #111827) !important;
}


/* ------------------------------------------------------------
   Hero + card customizer polish v1.4.29
   - Centered text hero variation with media aligned to the section bottom
   - Card radius / grid styling controls
------------------------------------------------------------- */
.vh-hero-layout-editorial_center_bottom_image.masthead{
  align-items: stretch;
  padding-bottom: 0 !important;
  overflow: hidden;
}
.vh-hero-layout-editorial_center_bottom_image.masthead:not(.vh-responsive-hero){
  display: flex !important;
}
.vh-hero-layout-editorial_center_bottom_image.masthead > .container{
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: inherit;
}
.vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
  max-width: 960px;
  margin-top: auto;
  margin-bottom: clamp(1.5rem, 4vh, 3.5rem);
}
.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
  width: min(100%, 1120px);
  max-width: 1120px;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge{
  margin-bottom: 0 !important;
  transform: translateY(1px);
}
.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.vh-hero-layout-editorial_center_bottom_image .vh-hero-title{
  margin-left: auto;
  margin-right: auto;
}
.vh-hero-layout-editorial_center_bottom_image .vh-hero-lead{
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 991.98px){
  .vh-hero-layout-editorial_center_bottom_image.masthead{
    padding-bottom: 0 !important;
  }
  .vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
    margin-bottom: 2rem;
  }
}
@media (max-width: 575.98px){
  .vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge{
    width: calc(100% + 2rem);
    max-width: calc(100% + 2rem);
    margin-left: -1rem !important;
    margin-right: -1rem !important;
  }
}


/* ------------------------------------------------------------
   Hero bottom-image responsive visibility fix v1.4.31
   The bottom-image layout uses flex display, but responsive hero
   variants must still stay hidden until their breakpoint is active.
------------------------------------------------------------- */
.vh-responsive-hero.vh-hero-layout-editorial_center_bottom_image{
  display: none !important;
}
@media (min-width: 992px){
  .vh-responsive-hero--desktop.vh-hero-layout-editorial_center_bottom_image{
    display: flex !important;
  }
}
@media (min-width: 600px) and (max-width: 991.98px){
  .vh-responsive-hero--tablet.vh-hero-layout-editorial_center_bottom_image{
    display: flex !important;
  }
}
@media (max-width: 599.98px){
  .vh-responsive-hero--mobile.vh-hero-layout-editorial_center_bottom_image{
    display: flex !important;
  }
}

/* --------------------------------------------------------------
   Section and card radius controls v1.4.31
-------------------------------------------------------------- */


/* ------------------------------------------------------------
   Homepage hero image radius controls v1.4.32
   Applies the Hero section's top/bottom radius controls directly
   to centered hero media wrappers and the rendered image.
------------------------------------------------------------- */
.vh-layout-hero .vh-hero-wide-media,
.vh-layout-hero .vh-hero-media{
  border-top-left-radius: var(--vh-hero-media-radius-top, 1.35rem) !important;
  border-top-right-radius: var(--vh-hero-media-radius-top, 1.35rem) !important;
  border-bottom-left-radius: var(--vh-hero-media-radius-bottom, 1.35rem) !important;
  border-bottom-right-radius: var(--vh-hero-media-radius-bottom, 1.35rem) !important;
  overflow: hidden !important;
}
.vh-layout-hero .vh-hero-wide-media img,
.vh-layout-hero .vh-hero-media img{
  border-top-left-radius: var(--vh-hero-media-radius-top, 1.35rem) !important;
  border-top-right-radius: var(--vh-hero-media-radius-top, 1.35rem) !important;
  border-bottom-left-radius: var(--vh-hero-media-radius-bottom, 1.35rem) !important;
  border-bottom-right-radius: var(--vh-hero-media-radius-bottom, 1.35rem) !important;
}


/* ------------------------------------------------------------
   Overflow, scroll-top, and Founder Note layout fixes v1.4.35
------------------------------------------------------------- */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}
@supports not (overflow-x: clip) {
  html,
  body {
    overflow-x: hidden;
  }
}
#page,
.site,
body.home #content,
body.home .site-main {
  max-width: 100%;
  overflow-x: clip;
}
.scroll-to-top {
  z-index: 1105 !important;
  right: max(1rem, env(safe-area-inset-right)) !important;
  bottom: max(1rem, env(safe-area-inset-bottom)) !important;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.22);
}
body.vh-announcement-position-bottom-fixed .scroll-to-top {
  bottom: calc(var(--vh-announcement-fixed-space, 60px) + max(1rem, env(safe-area-inset-bottom))) !important;
}
body.home #founder-note.vh-founder-note-section {
  overflow-x: clip;
}
body.home #founder-note .container {
  max-width: min(1180px, calc(100vw - 2rem));
}
body.home #founder-note .vh-founder-note-card {
  max-width: 1180px;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: hidden;
  background: var(--bs-body-bg, #ffffff);
}
body.home #founder-note .vh-founder-note-media-col {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.03);
}
body.home #founder-note .vh-founder-note-media {
  width: 100%;
  aspect-ratio: var(--vh-founder-image-ratio, 1 / 1);
  max-height: min(72vh, 720px);
  overflow: hidden;
}
body.home #founder-note .vh-founder-note-media img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  display: block;
}
body.home #founder-note .vh-founder-note-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
}
body.home #founder-note .vh-founder-note-text > :last-child {
  margin-bottom: 0;
}
@media (max-width: 991.98px) {
  body.home #founder-note .container {
    max-width: min(760px, calc(100vw - 1.5rem));
  }
  body.home #founder-note .vh-founder-note-card {
    display: block;
  }
  body.home #founder-note .vh-founder-note-media {
    max-height: 72vh;
  }
  body.home #founder-note .vh-founder-note-copy {
    min-height: auto;
    text-align: left;
  }
}
@media (max-width: 599.98px) {
  .scroll-to-top {
    width: 46px;
    height: 46px;
    line-height: 46px;
  }
  body.home #founder-note .container {
    max-width: calc(100vw - 1rem);
  }
}

/* Footer / final CTA layout controls */
#final-cta.vh-footer-cta-section {
  width: 100%;
  padding: clamp(3rem, 7vw, 6rem) 1.25rem;
  overflow: hidden;
}

#final-cta .vh-footer-cta-wrap {
  width: min(100%, 1360px);
  margin-inline: auto;
}

#final-cta .vh-footer-cta-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  overflow: hidden;
  border-radius: clamp(1rem, 2vw, 1.75rem);
  background: #fff;
  box-shadow: 0 1.25rem 3.5rem rgba(15, 23, 42, 0.14);
}

#final-cta .vh-footer-cta-copy {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: clamp(2rem, 5vw, 4.5rem);
}

#final-cta .vh-footer-cta-copy-inner {
  width: min(100%, 640px);
  margin-inline: auto;
  text-align: center;
}

#final-cta .vh-footer-cta-title {
  margin: 0 0 1rem;
  font-size: clamp(2rem, 4.5vw, 4rem);
  line-height: 0.98;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--vh-footer-cta-title-color, inherit);
}

#final-cta .vh-footer-cta-body {
  margin: 0 auto 1.5rem;
  max-width: 46rem;
  font-size: clamp(1rem, 1.55vw, 1.25rem);
  line-height: 1.65;
  color: var(--vh-footer-cta-body-color, inherit);
}

#final-cta .vh-footer-cta-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

#final-cta .vh-footer-cta-button {
  --bs-btn-bg: var(--vh-footer-cta-button-bg, var(--bs-primary));
  --bs-btn-color: var(--vh-footer-cta-button-text, #fff);
  --bs-btn-border-color: var(--vh-footer-cta-button-border, var(--vh-footer-cta-button-bg, var(--bs-primary)));
  --bs-btn-hover-bg: var(--vh-footer-cta-button-hover-bg, var(--vh-footer-cta-button-bg, var(--bs-primary)));
  --bs-btn-hover-color: var(--vh-footer-cta-button-hover-text, var(--vh-footer-cta-button-text, #fff));
  --bs-btn-hover-border-color: var(--vh-footer-cta-button-hover-border, var(--vh-footer-cta-button-border, var(--vh-footer-cta-button-bg, var(--bs-primary))));
  background-color: var(--bs-btn-bg) !important;
  color: var(--bs-btn-color) !important;
  border-color: var(--bs-btn-border-color) !important;
  padding-inline: 1.5rem;
}

#final-cta .vh-footer-cta-button:hover,
#final-cta .vh-footer-cta-button:focus {
  background-color: var(--bs-btn-hover-bg) !important;
  color: var(--bs-btn-hover-color) !important;
  border-color: var(--bs-btn-hover-border-color) !important;
}

#final-cta .vh-footer-cta-media {
  min-width: 0;
  aspect-ratio: var(--vh-footer-cta-image-ratio, 4 / 3);
  height: auto;
  max-height: min(760px, 84vh);
  overflow: hidden;
  align-self: center;
}

#final-cta .vh-footer-cta-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 991.98px) {
  #final-cta .vh-footer-cta-card {
    grid-template-columns: 1fr;
  }

  #final-cta .vh-footer-cta-media {
    order: -1;
    width: 100%;
    max-height: none;
  }

  #final-cta .vh-footer-cta-copy {
    padding: clamp(1.75rem, 8vw, 3rem) clamp(1.25rem, 6vw, 2.25rem);
  }
}

@media (max-width: 575.98px) {
  #final-cta.vh-footer-cta-section {
    padding-inline: 1rem;
  }

  #final-cta .vh-footer-cta-title {
    font-size: clamp(1.85rem, 10vw, 2.75rem);
  }
}

/* Velocity Hub 1.4.40: Front Page → Portfolio / What's Included grid layout wiring. */
.vh-front-portfolio-grid--layout-controlled {
  display: grid !important;
  grid-template-columns: repeat(var(--vh-front-portfolio-cols-mobile, 1), minmax(0, 1fr));
  width: min(100%, var(--vh-front-portfolio-max-mobile, 100%));
  max-width: var(--vh-front-portfolio-max-mobile, 100%);
  margin-left: auto !important;
  margin-right: auto !important;
}

.vh-front-portfolio-grid--layout-controlled > [class*="col-"] {
  width: auto !important;
  max-width: none !important;
  flex: initial !important;
  padding: 0 !important;
}

@media (min-width: 768px) {
  .vh-front-portfolio-grid--layout-controlled {
    grid-template-columns: repeat(var(--vh-front-portfolio-cols-tablet, var(--vh-front-portfolio-cols-desktop, 2)), minmax(0, 1fr));
    width: min(100%, var(--vh-front-portfolio-max-tablet, var(--vh-front-portfolio-max-desktop, 72rem)));
    max-width: var(--vh-front-portfolio-max-tablet, var(--vh-front-portfolio-max-desktop, 72rem));
  }
}

@media (min-width: 992px) {
  .vh-front-portfolio-grid--layout-controlled {
    grid-template-columns: repeat(var(--vh-front-portfolio-cols-desktop, 2), minmax(0, 1fr));
    width: min(100%, var(--vh-front-portfolio-max-desktop, 72rem));
    max-width: var(--vh-front-portfolio-max-desktop, 72rem);
  }
}


/* ============================================================
   VH 1.4.45 Template grid stabilization
   ------------------------------------------------------------
   Makes portfolio listing/category pages use a real CSS grid so
   columns, gaps, image ratios, and section height settings have
   predictable visible output.
   ============================================================ */
.vh-template-listing-container{
  width:100%;
  margin-left:auto;
  margin-right:auto;
}
.vh-template-listing-grid{
  display:grid;
  width:100%;
  margin:0;
  padding:0;
  align-items:stretch;
}
.vh-template-listing-grid--portfolio{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
}
.vh-template-listing-cell{
  min-width:0;
  width:auto;
  max-width:none;
  margin:0;
  padding:0;
}
.vh-template-listing-grid--portfolio .portfolio-item{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:1 / 1;
}
.vh-template-listing-grid--portfolio .vh-tile-media,
.vh-template-listing-grid--portfolio .vh-template-listing-media{
  width:100%;
  height:100%;
  min-height:0;
  aspect-ratio:inherit;
  overflow:hidden;
}
.vh-template-listing-grid--portfolio .vh-tile-media::before{
  display:none !important;
}
.vh-template-listing-grid--portfolio .portfolio-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.vh-template-listing-grid--portfolio .portfolio-item .caption{
  inset:0 !important;
}
@media (max-width: 991.98px){
  .vh-template-listing-grid--portfolio{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 767.98px){
  .vh-template-listing-grid--portfolio{grid-template-columns:1fr;}
}
/* Category tiles should behave like photographic cards, not icon placeholders. */
.vh-hero-taxonomy-tiles .vh-term-tile .vh-tile-bg{
  background-size:cover !important;
  background-position:center center !important;
}
/* Prevent template/term archive hero areas from producing mystery horizontal overflow. */
body.tax-vh_portfolio_category,
body.tax-vh_portfolio_tag,
body.page-template-page-portfolio{
  overflow-x:hidden;
}


/* ------------------------------------------------------------
   VH 1.4.50 Critical Bootstrap/Nav Fallback
   ------------------------------------------------------------
   Safety net for cases where Bootstrap CSS is delayed/blocked/cached.
   The theme now also enqueues Bootstrap CSS explicitly, but these rules
   prevent the top nav and off-canvas menu from rendering as an unstyled
   bullet list above the hero.
------------------------------------------------------------- */
.vh-navbar.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;}
.vh-navbar.navbar{display:flex;align-items:center;min-height:44px;padding:.35rem 0;}
.vh-navbar .container{width:100%;max-width:1320px;margin-left:auto;margin-right:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
@media (min-width:1400px){.vh-navbar .container{max-width:1320px;}}
@media (min-width:1200px) and (max-width:1399.98px){.vh-navbar .container{max-width:1140px;}}
@media (min-width:992px) and (max-width:1199.98px){.vh-navbar .container{max-width:960px;}}
@media (min-width:768px) and (max-width:991.98px){.vh-navbar .container{max-width:720px;}}
@media (min-width:576px) and (max-width:767.98px){.vh-navbar .container{max-width:540px;}}
.vh-navbar .navbar-brand{display:block;text-decoration:none;white-space:nowrap;margin-right:1rem;}
.vh-navbar .navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center;}
.vh-navbar .navbar-nav{display:flex;flex-direction:column;padding-left:0;margin:0;list-style:none;}
.vh-navbar .nav-link{display:block;text-decoration:none;padding:.5rem .75rem;}
.vh-navbar .navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:.375rem;color:inherit;}
.vh-navbar .navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%;}
.vh-navbar.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");}
@media (min-width:992px){.vh-navbar.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start;}.vh-navbar.navbar-expand-lg .navbar-toggler{display:none;}.vh-navbar.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto;}.vh-navbar.navbar-expand-lg .navbar-nav{flex-direction:row;align-items:center;}.vh-navbar .ms-auto{margin-left:auto!important;}.vh-navbar .mb-lg-0{margin-bottom:0!important;}}
@media (max-width:991.98px){.vh-navbar .navbar-collapse:not(.show){display:none;}.vh-navbar .navbar-collapse.show{display:block;width:100%;}.vh-navbar .container{flex-wrap:wrap;}}
body:not(.vh-nav-scrolled) #sidebar-wrapper{transform:translateX(250px)!important;right:0!important;opacity:0!important;pointer-events:none!important;}
body.vh-nav-scrolled #sidebar-wrapper{opacity:1;}
#sidebar-wrapper{position:fixed;z-index:1040;top:0;right:0;width:250px;height:100%;transform:translateX(250px);}
#sidebar-wrapper.active{right:250px;transform:translateX(250px);}
#sidebar-wrapper ul,#sidebar-wrapper li{list-style:none;margin:0;padding:0;}
#sidebar-wrapper li a{display:block;text-decoration:none;}
.menu-toggle{position:fixed;right:15px;top:15px;z-index:1100;}
html body{padding-top:0!important;}

/* Velocity Hub 1.4.55 — portfolio hero title/excerpt stack and restoration controls */
.vh-hero-portfolio-card .vh-hero-portfolio-title{position:absolute;left:.85rem;right:.85rem;bottom:.85rem;padding:.45rem .6rem;border-radius:.6rem;background:rgba(0,0,0,.66);font-weight:800;z-index:3;}
.vh-hero-portfolio-card .vh-hero-portfolio-excerpt{position:absolute;left:.85rem;right:.85rem;bottom:.85rem;padding:.45rem .6rem;border-radius:.6rem;background:rgba(0,0,0,.66);font-size:.85rem;line-height:1.35;z-index:3;}
.vh-hero-portfolio-card .vh-hero-portfolio-title + .vh-hero-portfolio-excerpt{bottom:.85rem;}
.vh-hero-portfolio-card:has(.vh-hero-portfolio-excerpt) .vh-hero-portfolio-title{bottom:3.25rem;}


/* Velocity Hub 1.4.61 — Portfolio Grid Hero caption stack + color control fix
   The old title/excerpt rules positioned each text line as a separate absolute box.
   Long excerpts then collided with titles. Keep one absolute caption shell and let
   title/excerpt stack naturally inside it. */
.vh-hero-portfolio-card .vh-hero-portfolio-caption{
  position:absolute !important;
  left:.85rem !important;
  right:.85rem !important;
  bottom:.85rem !important;
  z-index:4 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:.28rem !important;
  max-height:calc(100% - 1.7rem) !important;
  overflow:hidden !important;
  padding:.48rem .62rem !important;
  border-radius:.65rem !important;
  color:var(--vh-hero-portfolio-link-color, #ffffff) !important;
  background:var(--vh-hero-portfolio-title-box-color, #000000) !important;
  background:color-mix(in srgb, var(--vh-hero-portfolio-title-box-color, #000000) var(--vh-hero-portfolio-title-box-opacity, 62%), transparent) !important;
  transition:background-color .2s ease,color .2s ease !important;
}
.vh-hero-portfolio-card:hover .vh-hero-portfolio-caption,
.vh-hero-portfolio-card:focus .vh-hero-portfolio-caption{
  color:var(--vh-hero-portfolio-link-hover-color, #d9b42f) !important;
}
.vh-hero-portfolio-card .vh-hero-portfolio-title,
.vh-hero-portfolio-card .vh-hero-portfolio-excerpt{
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  display:block !important;
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:inherit !important;
  z-index:auto !important;
}
.vh-hero-portfolio-card .vh-hero-portfolio-title{
  font-weight:800 !important;
  line-height:1.2 !important;
}
.vh-hero-portfolio-card .vh-hero-portfolio-excerpt{
  font-size:.85rem !important;
  line-height:1.35 !important;
}
.vh-hero-portfolio-card .vh-hero-portfolio-title + .vh-hero-portfolio-excerpt,
.vh-hero-portfolio-card:has(.vh-hero-portfolio-excerpt) .vh-hero-portfolio-title{
  bottom:auto !important;
}


/* Velocity Hub 1.4.62 — Portfolio Grid Hero softer caption overlay
   Keeps title/excerpt readable without the opaque block look. The PHP fix file
   can override --vh-hero-portfolio-title-box-opacity per context. */
.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card .vh-hero-portfolio-caption{
  background:color-mix(in srgb, var(--vh-hero-portfolio-title-box-color, #000000) var(--vh-hero-portfolio-title-box-opacity, 62%), transparent) !important;
  -webkit-backdrop-filter:blur(7px) saturate(120%);
  backdrop-filter:blur(7px) saturate(120%);
  box-shadow:0 10px 28px rgba(0,0,0,.22) !important;
}
@supports not (background: color-mix(in srgb, #000 50%, transparent)){
  .vh-hero-layout-portfolio_grid .vh-hero-portfolio-card .vh-hero-portfolio-caption{
    background:rgba(0,0,0,.62) !important;
  }
}


/* Velocity Hub 1.4.63 — Portfolio Grid Hero caption and padding safety net.
   Runtime CSS in inc/vh-release-1463-fixes.php supplies context-specific
   padding and rgba caption variables. These static rules keep old span rules
   from re-breaking title/excerpt stacking. */
.vh-layout-hero.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card > span:not(.vh-hero-portfolio-caption){
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  padding:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:inherit !important;
}
.vh-layout-hero.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card > .vh-hero-portfolio-caption{
  background:var(--vh-hero-portfolio-caption-bg, rgba(0,0,0,.52)) !important;
  color:var(--vh-hero-portfolio-link-color, #ffffff) !important;
}
.vh-layout-hero.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card > .vh-hero-portfolio-caption > .vh-hero-portfolio-title,
.vh-layout-hero.vh-hero-layout-portfolio_grid .vh-hero-portfolio-card > .vh-hero-portfolio-caption > .vh-hero-portfolio-excerpt{
  position:static !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  color:inherit !important;
}


/* Velocity Hub 1.4.73/1.4.74 — structural hardening layer
   Consolidates component contracts instead of adding context-only overrides. */

/* Transition overlays: real child layers rendered by hero/front-page section templates. */
.vh-layout-hero{
  position: relative;
  isolation: isolate;
}
body.home .vh-section-transition-source{
  position: relative;
}
.vh-layout-hero > .vh-section-transition-overlay,
body.home .vh-section-transition-source > .vh-section-transition-overlay,
body.home section > .vh-section-transition-overlay{
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  pointer-events: none;
  z-index: 80;
}
.vh-layout-hero > .vh-section-transition-overlay--top,
body.home .vh-section-transition-source > .vh-section-transition-overlay--top,
body.home section > .vh-section-transition-overlay--top{top: 0;}
.vh-layout-hero > .vh-section-transition-overlay--bottom,
body.home .vh-section-transition-source > .vh-section-transition-overlay--bottom,
body.home section > .vh-section-transition-overlay--bottom{bottom: 0;}
.vh-layout-hero > .container{
  position: relative;
  z-index: 3;
}
.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-media{
  position: relative;
  z-index: 2;
}

/* Social Media Strip: remove Bootstrap layout dependency and hard-coded borders. */
.vh-social-strip{
  --vh-social-strip-divider-color: rgba(15, 23, 42, .14);
  --vh-social-strip-divider-width: 0;
  width: 100%;
  overflow: clip;
  border: 0;
  background: inherit;
}
.vh-social-strip--has-divider{
  --vh-social-strip-divider-width: 1px;
}
.vh-social-strip__intro{
  padding: clamp(2.5rem, 6vw, 5rem) 1.25rem clamp(1.5rem, 4vw, 3rem);
  border-bottom: var(--vh-social-strip-divider-width) solid var(--vh-social-strip-divider-color);
}
.vh-social-strip__intro-inner{
  width: min(100%, 58rem);
  margin-inline: auto;
  text-align: center;
}
.vh-social-strip-kicker{
  margin: 0 0 .6rem;
  color: var(--vh-social-strip-eyebrow-color, var(--bs-secondary, #6c757d));
  font-size: clamp(.85rem, 1vw, 1rem);
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;
}
.vh-social-strip-title{
  margin: 0;
  color: var(--vh-social-strip-title-color, inherit);
  font-size: clamp(2rem, 5vw, 4.25rem);
  line-height: .98;
}
.vh-social-strip-body{
  margin: 1rem auto 0;
  max-width: 48rem;
  color: var(--vh-social-strip-body-color, inherit);
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  line-height: 1.55;
  font-style: italic;
}
.vh-social-strip .vh-footer__mosaic,
.vh-social-strip .vh-footer__mosaic-grid{
  border: 0 !important;
}
.vh-social-strip .vh-footer__tile{
  color: var(--vh-social-strip-tile-color, #fff);
  text-decoration: none;
}
.vh-social-strip a.vh-footer__tile:hover,
.vh-social-strip a.vh-footer__tile:focus,
.vh-social-strip a.vh-footer__tile:hover *,
.vh-social-strip a.vh-footer__tile:focus *{
  color: var(--vh-social-strip-tile-hover-color, currentColor);
}

/* WO46: Social strip mobile keeps a compact mosaic instead of stacking into a long column. */
@media (max-width: 767.98px){
  #vh-social-strip .vh-social-strip__intro{
    padding: clamp(1.75rem, 8vw, 2.75rem) 1rem clamp(1rem, 5vw, 1.5rem);
  }
  #vh-social-strip .vh-social-strip-title{
    font-size: clamp(1.7rem, 8vw, 2.65rem);
    line-height: 1.05;
  }
  #vh-social-strip .vh-social-strip-body{
    max-width: 34rem;
    font-size: clamp(.98rem, 4vw, 1.12rem);
    line-height: 1.45;
  }
  #vh-social-strip .vh-social-strip__grid{
    grid-auto-flow: initial;
    grid-auto-columns: initial;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    overflow-x: visible;
    scroll-snap-type: none;
    -webkit-overflow-scrolling: auto;
  }
  #vh-social-strip .vh-social-strip__grid > *{
    min-width: 0;
    scroll-snap-align: unset;
  }
  #vh-social-strip .vh-footer__tile{
    aspect-ratio: 1 / 1;
    min-height: 124px;
    padding: clamp(.75rem, 3vw, 1rem);
  }
  #vh-social-strip .vh-footer__tile--seasonal{
    grid-column: 1 / -1;
    aspect-ratio: 16 / 7;
    min-height: 104px;
  }
  #vh-social-strip .vh-footer__tile-center{
    max-width: 100%;
    min-width: 0;
    gap: 6px;
  }
  #vh-social-strip .vh-footer__tile-icon{
    font-size: clamp(1.35rem, 7vw, 2rem);
  }
  #vh-social-strip .vh-footer__tile-label,
  #vh-social-strip .vh-footer__tile-hashtag{
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  #vh-social-strip .vh-footer__tile-label{
    font-size: clamp(.98rem, 4.8vw, 1.22rem);
    line-height: 1.08;
  }
  #vh-social-strip .vh-footer__tile-hashtag{
    font-size: clamp(1rem, 5.2vw, 1.45rem);
    line-height: 1.05;
  }
  #vh-social-strip .vh-footer__tile-count{
    max-width: 100%;
    padding: .32rem .58rem;
    font-size: clamp(.72rem, 3.4vw, .82rem);
    white-space: normal;
    overflow-wrap: anywhere;
  }
}
@media (max-width: 359.98px){
  #vh-social-strip .vh-social-strip__grid{
    grid-template-columns: 1fr !important;
  }
  #vh-social-strip .vh-footer__tile{
    aspect-ratio: 16 / 9;
  }
}

/* Portfolio caption component shared by hero grid, archive grid, homepage grid, and related grids. */
.vh-portfolio-caption,
.vh-layout-hero .vh-hero-portfolio-card > .vh-hero-portfolio-caption,
.portfolio-item .caption-content,
.vh-portfolio-tile__overlay{
  display: flex;
  flex-direction: column;
  gap: .28rem;
  width: auto;
  color: var(--vh-portfolio-caption-color, var(--vh-hero-portfolio-link-color, #fff));
  background: var(--vh-portfolio-caption-bg, var(--vh-hero-portfolio-caption-bg, rgba(0,0,0,.56)));
  border-radius: var(--vh-portfolio-caption-radius, .65rem);
  padding: var(--vh-portfolio-caption-padding, .5rem .65rem);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  -webkit-backdrop-filter: blur(6px) saturate(125%);
  backdrop-filter: blur(6px) saturate(125%);
}
.vh-layout-hero .vh-hero-portfolio-card > .vh-hero-portfolio-caption,
.portfolio-item .caption-content{
  position: absolute !important;
  left: .85rem !important;
  right: .85rem !important;
  bottom: .85rem !important;
  z-index: 4 !important;
  margin: 0 !important;
  max-height: calc(100% - 1.7rem);
  overflow: hidden;
}
.portfolio-item .caption{
  display: block;
  inset: 0;
  background: linear-gradient(180deg, rgba(2,6,23,.08), rgba(2,6,23,.34));
}
.vh-portfolio-tile__overlay.vh-portfolio-caption{
  position: absolute;
  left: .85rem;
  right: .85rem;
  bottom: .85rem;
  z-index: 4;
  background: var(--vh-portfolio-caption-bg, rgba(0,0,0,.56));
}
.vh-portfolio-caption__title,
.vh-portfolio-caption__excerpt,
.vh-hero-portfolio-caption > .vh-hero-portfolio-title,
.vh-hero-portfolio-caption > .vh-hero-portfolio-excerpt,
.portfolio-item .caption-content h2,
.portfolio-item .caption-content p{
  position: static !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: inherit !important;
  text-transform: none;
  letter-spacing: 0;
}
.vh-portfolio-caption__title,
.vh-hero-portfolio-caption > .vh-hero-portfolio-title,
.portfolio-item .caption-content h2{
  font-weight: 800 !important;
  line-height: 1.18 !important;
  font-size: clamp(1rem, 1.45vw, 1.28rem) !important;
}
.vh-portfolio-caption__excerpt,
.vh-hero-portfolio-caption > .vh-hero-portfolio-excerpt,
.portfolio-item .caption-content p{
  font-size: clamp(.82rem, 1vw, .95rem) !important;
  line-height: 1.35 !important;
  font-weight: 600;
  opacity: .94;
}
.vh-hero-portfolio-card:hover > .vh-hero-portfolio-caption,
.vh-hero-portfolio-card:focus > .vh-hero-portfolio-caption,
.portfolio-item:hover .caption-content,
.portfolio-item:focus .caption-content,
.vh-portfolio-tile:hover .vh-portfolio-caption,
.vh-portfolio-tile:focus .vh-portfolio-caption{
  color: var(--vh-portfolio-caption-hover-color, var(--vh-hero-portfolio-link-hover-color, #f6d365)) !important;
}


/* -------------------------------------------------------------
   Velocity Hub 1.4.98 — Hero media/embed placement contract
   Scope: only active when the new media position setting is used.
-------------------------------------------------------------- */
.vh-layout-hero.vh-hero-media-position-below .vh-hero-media-slot--below{
  margin-inline:auto;
}
.vh-layout-hero.vh-hero-media-position-below .vh-hero-media-slot--below > .vh-hero-media,
.vh-layout-hero.vh-hero-media-position-below .vh-hero-media-slot--below > .vh-hero-collage{
  width:100%;
  max-width:min(100%, 960px);
  margin-inline:auto;
}
.vh-layout-hero.vh-hero-media-position-left .vh-hero-media,
.vh-layout-hero.vh-hero-media-position-below .vh-hero-media{
  max-width:100%;
}


/* Velocity Hub 1.5.0 — hero shell background visibility contract.
   The full hero shell background image now renders as an explicit layer so it
   cannot be confused with, or hidden by, the hero media/card image slot. */
.vh-layout-hero.vh-hero-has-shell-bg-image{
  position: relative;
  overflow: hidden;
}
.vh-layout-hero > .vh-hero-shell-bg-media{
  display:block;
  position:absolute !important;
  inset:0;
  z-index:0 !important;
  pointer-events:none;
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  transform:translateZ(0);
}
.vh-layout-hero.vh-hero-has-shell-bg-image.masthead:before,
.vh-layout-hero.vh-hero-has-shell-bg-image.masthead:after{
  z-index:1;
}
.vh-layout-hero.vh-hero-has-shell-bg-image > .container{
  position:relative;
  z-index:3;
}
.vh-layout-hero.vh-hero-has-shell-bg-image > .vh-section-transition-overlay{
  z-index:8;
}

/* WO16: Listing page breathing room + Testimonials page cards */
#results-services.content-section,
#results-events.content-section,
#results-testimonials.content-section {
  padding-top: var(--vh-listing-section-padding-top, 4.5rem) !important;
  padding-bottom: var(--vh-listing-section-padding-bottom, 4.5rem) !important;
}

.vh-testimonials-archive__intro {
  max-width: 780px;
  color: rgba(15, 23, 42, 0.72);
}

.vh-testimonials-grid {
  align-items: stretch;
}

.vh-testimonial-archive-card,
.vh-testimonial-archive-card__link {
  height: 100%;
}

.vh-testimonial-archive-card__link {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.5rem;
  border-radius: 1.25rem;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
  color: inherit;
  text-decoration: none;
}

.vh-testimonial-archive-card__link:hover,
.vh-testimonial-archive-card__link:focus {
  transform: translateY(-2px);
  box-shadow: 0 22px 48px rgba(15, 23, 42, 0.12);
  color: inherit;
}

.vh-testimonial-archive-card__quote-mark {
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.06);
  font-size: 1.8rem;
  line-height: 1;
  font-weight: 800;
}

.vh-testimonial-archive-card__quote {
  margin: 0;
  color: rgba(15, 23, 42, 0.76);
  line-height: 1.7;
}

.vh-testimonial-archive-card__person {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.vh-testimonial-archive-card__person img {
  border-radius: 999px;
  object-fit: cover;
  flex: 0 0 auto;
}

.vh-testimonial-archive-card__title {
  margin: 0;
  font-size: 1rem;
  line-height: 1.2;
}

.vh-testimonial-archive-card__role {
  margin: 0.15rem 0 0;
  color: rgba(15, 23, 42, 0.58);
  font-size: 0.9rem;
}

.vh-testimonial-archive-card__cta {
  display: inline-flex;
  align-items: center;
  font-weight: 700;
  font-size: 0.95rem;
}

/* ------------------------------------------------------------
   Velocity Hub 1.5.5 WO20
   Surgical repair: restore original testimonial text-slider visual,
   keep full-slide clickability, and stop portfolio hard overrides.
------------------------------------------------------------- */
.vh-front-testimonials-slider{
  width:100%;
  position:relative;
}
.vh-front-testimonials-slider .carousel{
  padding-bottom:2.25rem;
}
.vh-front-testimonial-slide-link{
  display:block;
  color:inherit;
  text-decoration:none !important;
  padding:clamp(.75rem, 2vw, 1.25rem) 0;
}
.vh-front-testimonial-slide-link:hover,
.vh-front-testimonial-slide-link:focus{
  color:inherit;
  text-decoration:none !important;
}
.vh-front-testimonial-slide-link .fs-4{
  font-size:clamp(1.25rem, 2vw, 1.8rem) !important;
  line-height:1.55;
}
.vh-front-testimonials-arrow{
  width:3rem;
  opacity:1;
  color:var(--vh-accent, var(--bs-primary, #1d809f));
  font-size:3.5rem;
  font-weight:300;
  line-height:1;
  text-shadow:none;
}
.vh-front-testimonials-arrow:hover,
.vh-front-testimonials-arrow:focus{
  color:var(--vh-accent-hover, var(--vh-accent, var(--bs-primary, #1d809f)));
  opacity:1;
}
.vh-front-testimonials-arrow span[aria-hidden="true"]{
  display:block;
  transform:translateY(-.1rem);
}
.vh-front-testimonials-slider .carousel-control-prev-icon,
.vh-front-testimonials-slider .carousel-control-next-icon{
  display:none;
}
.vh-front-testimonials-slider .carousel-control-prev{
  left:clamp(-1rem, -3vw, -3rem);
}
.vh-front-testimonials-slider .carousel-control-next{
  right:clamp(-1rem, -3vw, -3rem);
}
.vh-front-testimonials-slider .carousel-indicators{
  position:static;
  margin-top:1.2rem;
  margin-bottom:0;
}
.vh-front-testimonials-slider .carousel-indicators [data-bs-target]{
  width:.72rem;
  height:.72rem;
  border-radius:999px;
  border:0;
  background-color:rgba(29,128,159,.28);
}
.vh-front-testimonials-slider .carousel-indicators .active{
  background-color:var(--vh-accent, var(--bs-primary, #1d809f));
}

/* Portfolio: let the existing grid/ratio system work. Only wire the importable gap variable. */
#whats-included .vh-front-portfolio-grid--layout-controlled{
  gap:var(--vh-front-portfolio-gap-mobile, clamp(1rem, 2vw, 1.5rem)) !important;
}
@media (min-width:768px){
  #whats-included .vh-front-portfolio-grid--layout-controlled{
    gap:var(--vh-front-portfolio-gap-tablet, var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem))) !important;
  }
}
@media (min-width:992px){
  #whats-included .vh-front-portfolio-grid--layout-controlled{
    gap:var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem)) !important;
  }
}

/* Velocity Hub 1.5.6 WO21 marker: testimonial card slider + portfolio radius repair lives in assets/css/front-page.css. */

/* Front page audit checklist icon toggle. */
body.home #audit-offer .vh-checklist--no-icons li {
  padding-left: 0;
}

body.home #audit-offer .vh-checklist--no-icons li::before {
  content: none;
  display: none;
}

/* 1.5.25 — Sitewide front-page-style CTA/founder sections on non-front pages. */
body:not(.home) .vh-final-cta__card {
  background: #fff;
  border-radius: 1.25rem;
}

body:not(.home) .vh-final-cta__image {
  display: block;
  width: 100%;
  min-height: 100%;
  object-fit: cover;
}

body:not(.home) .vh-final-cta__image--placeholder {
  min-height: 320px;
  background: linear-gradient(135deg, rgba(159, 169, 11, 0.16), rgba(15, 23, 42, 0.1));
}

body:not(.home) .vh-final-cta__card .btn.btn-primary {
  --bs-btn-bg: var(--vh-fp-cta-button-bg, var(--bs-primary));
  --bs-btn-color: var(--vh-fp-cta-button-text, #fff);
  --bs-btn-border-color: var(--vh-fp-cta-button-border, var(--vh-fp-cta-button-bg, var(--bs-primary)));
  --bs-btn-hover-bg: var(--vh-fp-cta-button-hover-bg, var(--vh-fp-cta-button-bg, var(--bs-primary)));
  --bs-btn-hover-color: var(--vh-fp-cta-button-hover-text, var(--vh-fp-cta-button-text, #fff));
  --bs-btn-hover-border-color: var(--vh-fp-cta-button-hover-border, var(--vh-fp-cta-button-border, var(--vh-fp-cta-button-bg, var(--bs-primary))));
  background-color: var(--bs-btn-bg) !important;
  color: var(--bs-btn-color) !important;
  border-color: var(--bs-btn-border-color) !important;
}

body:not(.home) .vh-final-cta__card .btn.btn-primary:hover,
body:not(.home) .vh-final-cta__card .btn.btn-primary:focus {
  background-color: var(--bs-btn-hover-bg) !important;
  color: var(--bs-btn-hover-color) !important;
  border-color: var(--bs-btn-hover-border-color) !important;
}

body:not(.home) #lead-magnet .btn.btn-lg,
body:not(.home) #final-cta .btn.btn-lg {
  border-radius: 0.65rem;
}

body:not(.home) #founder-note.vh-founder-note-section {
  overflow-x: clip;
}

body:not(.home) #founder-note .container {
  max-width: min(1180px, calc(100vw - 2rem));
}

body:not(.home) #founder-note .vh-founder-note-card {
  max-width: 1180px;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: hidden;
  background: var(--bs-body-bg, #ffffff);
}

body:not(.home) #founder-note .vh-founder-note-media-col {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.03);
}

body:not(.home) #founder-note .vh-founder-note-media {
  width: 100%;
  aspect-ratio: var(--vh-founder-image-ratio, 1 / 1);
  max-height: min(72vh, 720px);
  overflow: hidden;
}

body:not(.home) #founder-note .vh-founder-note-media img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  display: block;
}

body:not(.home) #founder-note .vh-founder-note-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
}

body:not(.home) #founder-note .vh-founder-note-text > :last-child {
  margin-bottom: 0;
}

@media (max-width: 991.98px) {
  body:not(.home) #founder-note .container {
    max-width: min(760px, calc(100vw - 1.5rem));
  }
  body:not(.home) #founder-note .vh-founder-note-card {
    display: block;
  }
  body:not(.home) #founder-note .vh-founder-note-media {
    max-height: 72vh;
  }
  body:not(.home) #founder-note .vh-founder-note-copy {
    min-height: auto;
    text-align: left;
  }
}

/* WO39: default dark-shell contrast guard for front-page sales sections.
   These sections can inherit a dark shell even when no Customizer background
   color is saved, so Bootstrap light-mode text utilities become unreadable. */
body.home #process.vh-sales-section,
body.home #audit-offer.vh-sales-section,
body.home #services-offer-row-1 > #offer-ladder,
body.home #vh-features-custom-cards {
  color: #f8fafc;
}

body.home #process.vh-sales-section h1,
body.home #process.vh-sales-section h2,
body.home #process.vh-sales-section h3:not(.vh-media-card__title),
body.home #audit-offer.vh-sales-section h1,
body.home #audit-offer.vh-sales-section h2,
body.home #audit-offer.vh-sales-section h3,
body.home #services-offer-row-1 > #offer-ladder h1,
body.home #services-offer-row-1 > #offer-ladder h2,
body.home #services-offer-row-1 > #offer-ladder h3,
body.home #vh-features-custom-cards > .container > .d-flex h1,
body.home #vh-features-custom-cards > .container > .d-flex h2,
body.home #vh-features-custom-cards > .container > .d-flex h3 {
  color: #f8fafc;
}

body.home #process.vh-sales-section .text-muted,
body.home #audit-offer.vh-sales-section .text-muted,
body.home #services-offer-row-1 > #offer-ladder .text-muted {
  color: rgba(255, 255, 255, 0.68) !important;
}

body.home #process.vh-sales-section .text-secondary,
body.home #process.vh-sales-section .lead,
body.home #audit-offer.vh-sales-section .text-secondary,
body.home #audit-offer.vh-sales-section .lead,
body.home #services-offer-row-1 > #offer-ladder .text-secondary,
body.home #services-offer-row-1 > #offer-ladder .lead,
body.home #vh-features-custom-cards .text-body-secondary {
  color: rgba(255, 255, 255, 0.78) !important;
}

body.home #audit-offer.vh-sales-section .btn-outline-dark {
  color: #f8fafc;
  border-color: rgba(255, 255, 255, 0.55);
}

body.home #audit-offer.vh-sales-section .btn-outline-dark:hover,
body.home #audit-offer.vh-sales-section .btn-outline-dark:focus {
  color: #0f172a;
  background-color: #f8fafc;
  border-color: #f8fafc;
}



/* Velocity Hub 1.5.36 — WO50 mobile announcement/responsive stability
   Fixes narrow mobile overflow in front-page hero/FAQ/blog while keeping desktop styles intact. */
@media (max-width: 767.98px) {
  body.home .content-section,
  body.home #vh-features-custom-cards,
  body.home #front-faq,
  body.home .vh-sales-section {
    overflow-x: clip;
  }

  body.home .container,
  body.home .container-fluid {
    max-width: 100% !important;
  }

  body.home .container.px-4,
  body.home .container.px-lg-5,
  body.home .container.px-4.px-lg-5 {
    padding-left: clamp(0.95rem, 4.8vw, 1.15rem) !important;
    padding-right: clamp(0.95rem, 4.8vw, 1.15rem) !important;
  }

  body.home .vh-layout-hero {
    min-height: auto !important;
    padding-top: clamp(5rem, 18vw, 6.25rem) !important;
    padding-bottom: clamp(3.25rem, 14vw, 4.75rem) !important;
    overflow: hidden;
  }

  body.home .vh-layout-hero .container {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.home .vh-layout-hero .row {
    --bs-gutter-x: 1.25rem;
  }

  body.home .vh-layout-hero .vh-hero-copy,
  body.home .vh-layout-hero .vh-hero-lead,
  body.home .vh-layout-hero .vh-hero-actions,
  body.home .vh-layout-hero .vh-hero-proof {
    max-width: 100% !important;
  }

  body.home .vh-layout-hero .vh-hero-eyebrow {
    max-width: min(100%, 28rem) !important;
    white-space: normal !important;
    text-wrap: balance;
    overflow-wrap: anywhere;
    line-height: 1.18 !important;
    justify-content: center;
  }

  body.home .vh-layout-hero .vh-hero-title {
    font-size: clamp(2rem, 10.5vw, 2.55rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em !important;
    max-width: min(100%, 14ch) !important;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
    text-wrap: balance;
  }

  body.home .vh-layout-hero .vh-hero-lead {
    font-size: clamp(1rem, 4.7vw, 1.12rem) !important;
    line-height: 1.55 !important;
    max-width: min(100%, 32ch) !important;
    text-wrap: pretty;
    overflow-wrap: break-word;
  }

  body.home .vh-layout-hero .vh-hero-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: stretch !important;
    gap: .75rem !important;
    width: min(100%, 22rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.home .vh-layout-hero .vh-action-btn,
  body.home .vh-layout-hero .vh-hero-actions .btn {
    width: 100% !important;
    min-height: 2.9rem;
    white-space: normal !important;
  }

  body.home #front-faq .accordion {
    max-width: 100% !important;
  }

  body.home #front-faq .accordion-button {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: .55rem;
    padding: 1rem 2.65rem 1rem 1rem;
    line-height: 1.18;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body.home #front-faq .accordion-button::after {
    position: absolute;
    right: 1rem;
    top: 1rem;
    margin-left: 0;
  }

  body.home #front-faq .accordion-button .badge {
    flex: 1 1 100%;
    width: fit-content;
    max-width: 100%;
    margin-left: 0 !important;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: left;
    line-height: 1.2;
  }

  body.home #front-faq .accordion-body {
    overflow-wrap: anywhere;
  }

  body.home #vh-features-custom-cards > .container > .d-flex.align-items-end.justify-content-between {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 1rem !important;
  }

  body.home #vh-features-custom-cards > .container > .d-flex.align-items-end.justify-content-between > div {
    min-width: 0;
  }

  body.home #vh-features-custom-cards > .container > .d-flex.align-items-end.justify-content-between .btn {
    align-self: flex-start;
    width: auto;
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }

  body.home #vh-features-custom-cards .card-cover {
    min-height: 18rem;
  }

  body.home #vh-features-custom-cards .card-cover h3,
  body.home #vh-features-custom-cards .card-cover p {
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 380px) {
  body.home .vh-layout-hero .vh-hero-title {
    font-size: clamp(1.85rem, 10.25vw, 2.3rem) !important;
    max-width: min(100%, 13ch) !important;
  }

  body.home .vh-layout-hero .vh-hero-lead {
    font-size: clamp(.98rem, 4.6vw, 1.06rem) !important;
  }
}


/* Velocity Hub 1.5.37 — WO51 social strip + founder note responsive hardening
   Stabilizes tablet/mobile layout after staging screenshots showed grid auto-fit and shared footer tile rules squashing front-page tiles. */
#vh-social-strip,
#vh-social-strip .vh-social-strip__mosaic,
#vh-social-strip .vh-social-strip__grid {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

#vh-social-strip .vh-social-strip__grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)) !important;
  grid-auto-flow: row !important;
  grid-auto-columns: initial !important;
  gap: 0 !important;
  align-items: stretch;
}

#vh-social-strip .vh-social-strip__grid > * {
  min-width: 0 !important;
  max-width: 100% !important;
}

#vh-social-strip .vh-footer__tile {
  height: auto !important;
  min-height: 140px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
}

#vh-social-strip .vh-footer__tile-center,
#vh-social-strip .vh-footer__tile-label,
#vh-social-strip .vh-footer__tile-count,
#vh-social-strip .vh-footer__tile-hashtag,
#vh-social-strip .vh-footer__tile-kicker {
  min-width: 0;
  max-width: 100%;
}

#vh-social-strip .vh-footer__tile-label,
#vh-social-strip .vh-footer__tile-count,
#vh-social-strip .vh-footer__tile-hashtag {
  overflow-wrap: anywhere;
  word-break: normal;
  white-space: normal;
}

@media (max-width: 1199.98px) {
  #vh-social-strip .vh-social-strip__intro {
    padding: clamp(2.25rem, 5.5vw, 3.5rem) 1rem clamp(1.25rem, 3.8vw, 2rem);
  }

  #vh-social-strip .vh-social-strip-title {
    font-size: clamp(2rem, 5.6vw, 3.25rem);
    line-height: 1.02;
    text-wrap: balance;
  }

  #vh-social-strip .vh-social-strip-body {
    font-size: clamp(1rem, 2.4vw, 1.22rem);
    line-height: 1.5;
  }

  #vh-social-strip .vh-social-strip__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  #vh-social-strip .vh-footer__tile {
    aspect-ratio: 16 / 10;
    min-height: 150px;
    padding: clamp(.85rem, 2vw, 1.1rem);
  }
}

@media (max-width: 991.98px) {
  body.vh-nav-scrolled .menu-toggle,
  .menu-toggle {
    width: 46px;
    height: 46px;
    line-height: 46px;
    right: max(.75rem, env(safe-area-inset-right));
  }

  #vh-social-strip .vh-social-strip__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #vh-social-strip .vh-footer__tile--seasonal {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 6;
    min-height: 112px;
  }

  #vh-social-strip .vh-footer__tile:not(.vh-footer__tile--seasonal) {
    aspect-ratio: 1 / 1;
    min-height: 148px;
  }

  #vh-social-strip .vh-footer__tile-icon {
    font-size: clamp(1.45rem, 4.5vw, 2rem);
  }

  #vh-social-strip .vh-footer__tile-label {
    font-size: clamp(1rem, 3.4vw, 1.22rem);
    line-height: 1.08;
  }

  #vh-social-strip .vh-footer__tile-hashtag {
    font-size: clamp(1.15rem, 3.8vw, 1.55rem);
    line-height: 1.05;
  }

  #vh-social-strip .vh-footer__tile-count {
    font-size: clamp(.72rem, 2.4vw, .84rem);
    line-height: 1.15;
    padding: .35rem .6rem;
  }

  body.home #founder-note.vh-founder-note-section,
  body:not(.home) #founder-note.vh-founder-note-section {
    overflow-x: clip;
  }

  body.home #founder-note .container,
  body:not(.home) #founder-note .container {
    width: 100% !important;
    max-width: min(760px, calc(100vw - 1.5rem)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.home #founder-note .vh-founder-note-card,
  body:not(.home) #founder-note .vh-founder-note-card {
    --bs-gutter-x: 0;
    display: block !important;
    width: 100%;
    max-width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: hidden;
  }

  body.home #founder-note .vh-founder-note-media-col,
  body.home #founder-note .vh-founder-note-copy,
  body:not(.home) #founder-note .vh-founder-note-media-col,
  body:not(.home) #founder-note .vh-founder-note-copy {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  body.home #founder-note .vh-founder-note-media,
  body:not(.home) #founder-note .vh-founder-note-media {
    aspect-ratio: 16 / 10;
    max-height: none !important;
  }

  body.home #founder-note .vh-founder-note-copy,
  body:not(.home) #founder-note .vh-founder-note-copy {
    padding: clamp(1.25rem, 4vw, 2rem) !important;
  }

  body.home #founder-note .vh-founder-note-copy h1,
  body:not(.home) #founder-note .vh-founder-note-copy h1 {
    font-size: clamp(1.8rem, 5.8vw, 2.55rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.02em;
    margin-bottom: .85rem;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  body.home #founder-note .vh-founder-note-text,
  body:not(.home) #founder-note .vh-founder-note-text {
    font-size: clamp(1rem, 2.8vw, 1.12rem) !important;
    line-height: 1.55 !important;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 575.98px) {
  #vh-social-strip .vh-social-strip__intro {
    padding: clamp(1.75rem, 8vw, 2.5rem) .95rem clamp(1rem, 5vw, 1.35rem);
  }

  #vh-social-strip .vh-social-strip-title {
    font-size: clamp(1.7rem, 8.4vw, 2.35rem);
  }

  #vh-social-strip .vh-social-strip-body {
    font-size: clamp(.96rem, 4.1vw, 1.08rem);
  }

  #vh-social-strip .vh-footer__tile:not(.vh-footer__tile--seasonal) {
    min-height: 138px;
  }

  body.home #founder-note,
  body:not(.home) #founder-note {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.home #founder-note .container,
  body:not(.home) #founder-note .container {
    max-width: calc(100vw - 1rem) !important;
  }

  body.home #founder-note .vh-founder-note-media,
  body:not(.home) #founder-note .vh-founder-note-media {
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 359.98px) {
  #vh-social-strip .vh-social-strip__grid {
    grid-template-columns: 1fr !important;
  }

  #vh-social-strip .vh-footer__tile,
  #vh-social-strip .vh-footer__tile:not(.vh-footer__tile--seasonal),
  #vh-social-strip .vh-footer__tile--seasonal {
    aspect-ratio: 16 / 9;
    min-height: 126px;
    grid-column: auto;
  }
}

/* Velocity Hub 1.5.38 — WO52 founder note + footer tablet/mobile containment
   Staging screenshots showed two separate failures: Founder Note could leak outside its card at customizer tablet/mobile sizes, and footer panel tiles inherited a short tablet height that caused menus/widgets/images to overlap. This layer makes both sections content-sized and viewport-contained without changing data or Customizer setting IDs. */
html body #founder-note,
html body .vh-footer,
html body .vh-footer__shell,
html body .vh-footer__mosaic-grid--footer {
  max-width: 100%;
  box-sizing: border-box;
}

html body #founder-note *,
html body .vh-footer__mosaic-grid--footer * {
  box-sizing: border-box;
}

/* Founder Note: keep the card as the visible container even when the section has its own background image/color. */
html body #founder-note.vh-founder-note-section {
  overflow-x: clip;
  isolation: isolate;
}

html body #founder-note .container {
  width: 100%;
}

html body #founder-note .vh-founder-note-card {
  width: 100%;
  max-width: 1180px;
  min-width: 0;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: hidden !important;
  background: var(--vh-founder-card-bg, var(--bs-body-bg, #fff)) !important;
  color: var(--vh-founder-card-color, var(--bs-body-color, #111827));
}

html body #founder-note .vh-founder-note-media-col,
html body #founder-note .vh-founder-note-copy {
  min-width: 0 !important;
  max-width: 100% !important;
}

html body #founder-note .vh-founder-note-media-col:empty {
  display: none !important;
}

html body #founder-note .vh-founder-note-media,
html body #founder-note .vh-founder-note-media img {
  max-width: 100% !important;
}

html body #founder-note .vh-founder-note-copy,
html body #founder-note .vh-founder-note-copy *,
html body #founder-note .vh-founder-note-text,
html body #founder-note .vh-founder-note-text * {
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: normal;
}

@media (max-width: 1199.98px) {
  html body #founder-note.vh-founder-note-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  html body #founder-note .container {
    max-width: min(860px, calc(100vw - 2rem)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 991.98px) {
  html body #founder-note.vh-founder-note-section {
    padding-top: clamp(2rem, 6vw, 3rem) !important;
    padding-bottom: clamp(2rem, 6vw, 3rem) !important;
  }

  html body #founder-note .container {
    max-width: min(620px, calc(100vw - 1.25rem)) !important;
  }

  html body #founder-note .vh-founder-note-card {
    --bs-gutter-x: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin: 0 auto !important;
    border-radius: clamp(.9rem, 3vw, 1.25rem) !important;
  }

  html body #founder-note .vh-founder-note-media-col,
  html body #founder-note .vh-founder-note-copy {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  html body #founder-note .vh-founder-note-media {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  html body #founder-note .vh-founder-note-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: clamp(1.25rem, 4.8vw, 2rem) !important;
    background: var(--vh-founder-copy-bg, inherit) !important;
  }

  html body #founder-note .vh-founder-note-copy h1,
  html body #founder-note .vh-founder-note-copy .display-4 {
    font-size: clamp(1.7rem, 6vw, 2.25rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.02em;
    margin-bottom: .85rem !important;
  }

  html body #founder-note .vh-founder-note-text,
  html body #founder-note .vh-founder-note-text p {
    font-size: clamp(.98rem, 3.6vw, 1.08rem) !important;
    line-height: 1.55 !important;
  }
}

@media (max-width: 575.98px) {
  html body #founder-note .container {
    max-width: calc(100vw - 1rem) !important;
  }

  html body #founder-note .vh-founder-note-media {
    aspect-ratio: 4 / 3 !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: 1.15rem !important;
  }
}

/* Footer panels: widgets/menus need content-sized cards, not the short social-tile height. */
html body .vh-footer__mosaic-grid--footer {
  align-items: stretch;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__tile,
html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel {
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel {
  padding: clamp(1.35rem, 3vw, 2.25rem) !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  text-align: left !important;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__tile-panel,
html body .vh-footer__mosaic-grid--footer .widget,
html body .vh-footer__mosaic-grid--footer .wp-block-group,
html body .vh-footer__mosaic-grid--footer .wp-block-image,
html body .vh-footer__mosaic-grid--footer figure,
html body .vh-footer__mosaic-grid--footer p,
html body .vh-footer__mosaic-grid--footer ul,
html body .vh-footer__mosaic-grid--footer ol {
  max-width: 100% !important;
  min-width: 0 !important;
}

html body .vh-footer__mosaic-grid--footer img,
html body .vh-footer__mosaic-grid--footer picture,
html body .vh-footer__mosaic-grid--footer video,
html body .vh-footer__mosaic-grid--footer iframe {
  max-width: 100% !important;
  height: auto !important;
}

html body .vh-footer__mosaic-grid--footer .wp-block-image,
html body .vh-footer__mosaic-grid--footer figure {
  margin: 0 0 1rem !important;
}

html body .vh-footer__mosaic-grid--footer .wp-block-image img,
html body .vh-footer__mosaic-grid--footer figure img,
html body .vh-footer__mosaic-grid--footer .widget_media_image img {
  display: block !important;
  width: 100% !important;
  max-height: 260px;
  object-fit: cover;
  border-radius: .75rem;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__links,
html body .vh-footer__mosaic-grid--footer .menu {
  margin-bottom: 0 !important;
  padding-left: 1rem;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__links a,
html body .vh-footer__mosaic-grid--footer .menu a,
html body .vh-footer__mosaic-grid--footer p,
html body .vh-footer__mosaic-grid--footer li {
  overflow-wrap: anywhere;
  word-break: normal;
}

@media (max-width: 991.98px) {
  html body .vh-footer__mosaic-grid--footer {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    grid-auto-columns: initial !important;
    overflow-x: clip !important;
  }

  html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel {
    padding: clamp(1.2rem, 5vw, 1.75rem) !important;
  }

  html body .vh-footer__mosaic-grid--footer .wp-block-image img,
  html body .vh-footer__mosaic-grid--footer figure img,
  html body .vh-footer__mosaic-grid--footer .widget_media_image img {
    max-height: 220px;
  }
}

@media (max-width: 575.98px) {
  html body .vh-footer {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  html body .vh-footer__shell {
    border-radius: 0 !important;
  }

  html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel {
    padding: 1.15rem !important;
  }
}

/* Velocity Hub 1.5.39 — WO53 founder/footer bottom-gap hotfix
   Staging screenshot showed a white/blank end gap below the Founder Note on mobile. The cause is the stacked Bootstrap py-5 spacing around the Founder Note/card area at small preview widths. Keep the section readable, but remove the empty page-end gutter on tablet/mobile and ensure the footer panel strip owns its bottom background. */
@media (max-width: 991.98px) {
  html body #founder-note.vh-founder-note-section {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  html body #founder-note.vh-founder-note-section > .container,
  html body #founder-note.vh-founder-note-section > .container.py-5 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  html body #founder-note .vh-founder-note-card {
    margin-bottom: 0 !important;
  }

  html body #founder-note + .vh-footer__mosaic-grid--footer,
  html body #founder-note + #final-cta,
  html body #final-cta + .vh-footer__mosaic-grid--footer {
    margin-top: 0 !important;
  }
}

html body .vh-footer__mosaic-grid--footer {
  margin-bottom: 0 !important;
  background: #0c0a12;
}

html body .vh-footer__mosaic-grid--footer > .vh-footer__tile:last-child {
  margin-bottom: 0 !important;
}


/* Velocity Hub 1.5.40 — WO54 Founder Note and Footer structural fix
   Replace Bootstrap row/col behavior in Founder Note with an owned grid contract,
   restore a centered copyright bar, and make the footer own the final page
   background so mobile/tablet previews cannot end with a white gutter. */
html body .vh-footer.site-footer {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  background: #0c0a12 !important;
  color: #fff;
  overflow: clip;
}

html body .vh-footer.site-footer .vh-footer__mosaic-grid--footer {
  width: 100%;
  margin: 0 !important;
  background: #0c0a12 !important;
}

html body .vh-footer__legal-bar {
  width: 100%;
  padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));
  background: #050509;
  color: rgba(255,255,255,.72);
  border-top: 1px solid rgba(255,255,255,.10);
  text-align: center;
}

html body .vh-footer__legal-bar .container {
  width: min(100%, 1180px);
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: 0;
}

html body .vh-footer__copyright {
  margin: 0 !important;
  color: inherit;
  font-size: clamp(.82rem, 2.5vw, .95rem);
  line-height: 1.45;
  text-align: center !important;
}

html body #founder-note.vh-founder-note-section {
  display: block !important;
  width: 100%;
  overflow: clip !important;
  background-color: var(--vh-section-bg-color, transparent);
}

html body #founder-note .vh-founder-note-container,
html body #founder-note.vh-founder-note-section > .container,
html body #founder-note.vh-founder-note-section > .container.py-5 {
  width: min(100%, 1180px) !important;
  max-width: min(1180px, calc(100vw - 2rem)) !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

html body #founder-note .vh-founder-note-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  background: var(--bs-body-bg, #fff) !important;
  color: var(--bs-body-color, #111827);
}

html body #founder-note .vh-founder-note-card--no-media {
  grid-template-columns: minmax(0, 1fr) !important;
}

html body #founder-note .vh-founder-note-media-col,
html body #founder-note .vh-founder-note-copy {
  min-width: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

html body #founder-note .vh-founder-note-media-col {
  display: block !important;
  padding: 0 !important;
  background: rgba(15, 23, 42, .04);
}

html body #founder-note .vh-founder-note-media {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  aspect-ratio: var(--vh-founder-image-ratio, 1 / 1) !important;
  overflow: hidden !important;
}

html body #founder-note .vh-founder-note-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}

html body #founder-note .vh-founder-note-copy {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: clamp(2rem, 4vw, 4rem) !important;
  background: var(--bs-body-bg, #fff) !important;
  text-align: left !important;
  overflow-wrap: anywhere;
}

html body #founder-note .vh-founder-note-title,
html body #founder-note .vh-founder-note-copy .display-4 {
  margin: 0 0 1rem !important;
  max-width: 100%;
  font-size: clamp(2rem, 4vw, 3.8rem) !important;
  line-height: 1.02 !important;
}

html body #founder-note .vh-founder-note-text,
html body #founder-note .vh-founder-note-text p {
  max-width: 100%;
  font-size: clamp(1rem, 1.35vw, 1.25rem) !important;
  line-height: 1.6 !important;
}

html body #founder-note .vh-founder-note-signature {
  margin-top: 1.5rem;
}

html body .vh-footer.site-footer + * {
  margin-top: 0 !important;
}

@media (max-width: 991.98px) {
  html body #founder-note.vh-founder-note-section {
    padding-top: clamp(1.5rem, 5vw, 2.5rem) !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  html body #founder-note .vh-founder-note-container,
  html body #founder-note.vh-founder-note-section > .container,
  html body #founder-note.vh-founder-note-section > .container.py-5 {
    max-width: min(640px, calc(100vw - 1rem)) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  html body #founder-note .vh-founder-note-card,
  html body #founder-note .vh-founder-note-card--has-media,
  html body #founder-note .vh-founder-note-card--no-media {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body #founder-note .vh-founder-note-media {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: clamp(1.25rem, 5vw, 2rem) !important;
  }

  html body #founder-note .vh-founder-note-title,
  html body #founder-note .vh-founder-note-copy .display-4 {
    font-size: clamp(1.65rem, 6vw, 2.2rem) !important;
    line-height: 1.08 !important;
  }

  html body #founder-note .vh-founder-note-text,
  html body #founder-note .vh-founder-note-text p {
    font-size: clamp(.98rem, 3.5vw, 1.08rem) !important;
    line-height: 1.55 !important;
  }

  html body .vh-footer.site-footer {
    padding-bottom: 0 !important;
  }
}

@media (max-width: 575.98px) {
  html body #founder-note .vh-founder-note-container,
  html body #founder-note.vh-founder-note-section > .container,
  html body #founder-note.vh-founder-note-section > .container.py-5 {
    max-width: 100% !important;
  }

  html body #founder-note .vh-founder-note-card {
    border-radius: 0 !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: 1.15rem !important;
  }

  html body .vh-footer__legal-bar {
    padding-inline: 1rem;
  }
}


/* Velocity Hub 1.5.41 — WO55 mobile footer/founder/announcement hardening
   Own the page-end background, remove Bootstrap spacing from Founder Note,
   make footer legal area the true bottom surface, and prevent old persistent
   announcement dismissals from making the bar appear missing. */
html,
html body {
  min-height: 100%;
  background: var(--vh-page-canvas, #f8fafc) !important;
}

html body #page,
html body .site,
html body .site-main {
  max-width: 100%;
  overflow-x: clip;
}

html body #page {
  background: transparent;
}

html body #founder-note.vh-founder-note-section {
  margin: 0 !important;
  padding: clamp(2rem, 5vw, 4rem) 0 0 !important;
  overflow: clip !important;
}

html body #founder-note .vh-founder-note-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

html body #founder-note .vh-founder-note-card {
  box-shadow: 0 18px 48px rgba(0,0,0,.18);
}

html body #founder-note .vh-founder-note-media-col {
  overflow: hidden !important;
}

html body #founder-note .vh-founder-note-copy > :last-child,
html body #founder-note .vh-founder-note-text > :last-child,
html body #founder-note .vh-founder-note-text p:last-child {
  margin-bottom: 0 !important;
}

html body .vh-footer.site-footer {
  display: block !important;
  position: relative;
  z-index: 1;
  margin: 0 !important;
  padding: 0 !important;
  background: #050509 !important;
  min-height: 0 !important;
}

html body .vh-footer.site-footer::after {
  content: "";
  display: block;
  height: max(1px, env(safe-area-inset-bottom));
  background: #050509;
}

html body .vh-footer.site-footer .vh-footer__mosaic-grid--footer {
  margin: 0 !important;
  background: #0c0a12 !important;
}

html body .vh-footer__legal-bar {
  display: block !important;
  margin: 0 !important;
  padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom)) !important;
  background: #050509 !important;
  text-align: center !important;
}

html body .vh-footer__legal-bar .container,
html body .vh-footer__copyright {
  text-align: center !important;
  justify-content: center;
}

html body .scroll-to-top {
  bottom: calc(1rem + env(safe-area-inset-bottom)) !important;
}

@media (max-width: 991.98px) {
  html body #founder-note.vh-founder-note-section {
    padding-top: clamp(1rem, 4vw, 1.75rem) !important;
    padding-bottom: 0 !important;
  }

  html body #founder-note .vh-founder-note-container,
  html body #founder-note.vh-founder-note-section > .container {
    width: 100% !important;
    max-width: min(640px, calc(100vw - 1.25rem)) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  html body #founder-note .vh-founder-note-card {
    border-radius: clamp(.75rem, 2.5vw, 1rem) !important;
  }

  html body #founder-note .vh-founder-note-media {
    aspect-ratio: 16 / 9 !important;
    max-height: 240px !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: clamp(1rem, 4.5vw, 1.5rem) !important;
  }

  html body #founder-note .vh-founder-note-title,
  html body #founder-note .vh-founder-note-copy .display-4 {
    font-size: clamp(1.55rem, 5.5vw, 2rem) !important;
    line-height: 1.12 !important;
  }

  html body #founder-note .vh-founder-note-text,
  html body #founder-note .vh-founder-note-text p {
    font-size: clamp(.95rem, 3.4vw, 1rem) !important;
    line-height: 1.55 !important;
  }

  html body .vh-footer.site-footer .vh-footer__mosaic-grid--footer {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
  }

  html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel {
    border-radius: 0 !important;
  }
}

@media (max-width: 575.98px) {
  html body #founder-note .vh-founder-note-container,
  html body #founder-note.vh-founder-note-section > .container {
    max-width: calc(100vw - 1rem) !important;
  }

  html body #founder-note .vh-founder-note-media {
    aspect-ratio: 16 / 9 !important;
    max-height: 210px !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: 1rem !important;
  }

  html body .menu-toggle,
  html body.vh-nav-scrolled .menu-toggle {
    width: 44px !important;
    height: 44px !important;
    line-height: 44px !important;
    right: calc(.75rem + env(safe-area-inset-right)) !important;
    top: calc(.75rem + env(safe-area-inset-top)) !important;
  }

  html body.admin-bar .menu-toggle,
  html body.admin-bar.vh-nav-scrolled .menu-toggle {
    top: calc(var(--wp-admin--admin-bar--height, 46px) + .75rem + env(safe-area-inset-top)) !important;
  }

  html body .vh-footer__legal-bar {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
}

@media (max-width: 360px) {
  html body #founder-note .vh-founder-note-container,
  html body #founder-note.vh-founder-note-section > .container {
    max-width: calc(100vw - .75rem) !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: .95rem !important;
  }
}

/* Velocity Hub 1.5.42 — WO56 final mobile safe-zone for Founder Note + Footer
   This is a containment pass after staging screenshots showed lingering mobile/tablet
   instability around the Founder Note, footer panels, copyright bar, page-end gap,
   and the menu button when an announcement bar is present. */
html,
html body,
html body.home,
html body.customize-preview,
html.customize-preview body,
html body.customize-partial-edit-shortcuts-shown {
  min-height: 100%;
  background-color: var(--vh-page-canvas, #f8fafc) !important;
}

html body #page,
html body .site,
html body .site-main,
html body main.site-main {
  max-width: 100% !important;
  overflow-x: clip !important;
}

html body #founder-note.vh-founder-note-section,
html body .vh-footer.site-footer,
html body .vh-footer.site-footer * {
  box-sizing: border-box;
}

html body #founder-note.vh-founder-note-section {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  isolation: isolate;
}

html body #founder-note .vh-founder-note-container {
  width: min(100%, 1180px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

html body #founder-note .vh-founder-note-card {
  position: relative;
  z-index: 1;
  transform: translateZ(0);
}

html body #founder-note .vh-founder-note-copy,
html body #founder-note .vh-founder-note-copy * {
  overflow-wrap: anywhere;
  word-break: normal;
}

html body #founder-note .vh-founder-note-text {
  max-width: 62ch;
}

html body .vh-footer.site-footer {
  clear: both;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #050509 !important;
  color: #fff;
  overflow: clip !important;
  isolation: isolate;
}

html body .vh-footer.site-footer::before,
html body .vh-footer.site-footer::after {
  content: "";
  display: block;
  height: 1px;
  margin: 0;
  background: #050509;
}

html body .vh-footer__mosaic-grid--footer {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  background: #0c0a12 !important;
  overflow: clip !important;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel {
  position: relative;
  min-height: 0 !important;
  background-color: #0c0a12;
  background-size: cover;
  background-position: center center;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__tile-overlay {
  opacity: .88;
  background: linear-gradient(180deg, rgba(0,0,0,.58), rgba(0,0,0,.86)) !important;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__tile-panel {
  position: relative;
  z-index: 2;
  min-width: 0 !important;
  max-width: 100% !important;
}

html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel[style*="background-image"] .vh-footer__tile-panel {
  width: 100%;
  padding: clamp(.85rem, 2vw, 1rem);
  border-radius: .85rem;
  background: rgba(0, 0, 0, .48);
  backdrop-filter: blur(2px);
}

html body .vh-footer__mosaic-grid--footer .vh-footer__tile-panel > :first-child { margin-top: 0 !important; }
html body .vh-footer__mosaic-grid--footer .vh-footer__tile-panel > :last-child { margin-bottom: 0 !important; }

html body .vh-footer__legal-bar {
  display: block !important;
  visibility: visible !important;
  position: relative;
  z-index: 3;
  width: 100% !important;
  margin: 0 !important;
  background: #050509 !important;
  color: rgba(255,255,255,.78) !important;
  border-top: 1px solid rgba(255,255,255,.12) !important;
  text-align: center !important;
}

html body .vh-footer__legal-bar .container {
  display: flex !important;
  align-items: center;
  justify-content: center !important;
  width: min(100%, 1180px) !important;
  max-width: 1180px !important;
  margin-inline: auto !important;
  padding-inline: 1rem !important;
}

html body .vh-footer__copyright {
  display: block !important;
  width: 100%;
  margin: 0 !important;
  text-align: center !important;
  overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
  html body #founder-note.vh-founder-note-section {
    padding-top: clamp(.75rem, 4vw, 1.5rem) !important;
    padding-bottom: 0 !important;
    background-attachment: scroll !important;
  }

  html body #founder-note .vh-founder-note-container {
    width: 100% !important;
    max-width: min(640px, calc(100vw - 1rem)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  html body #founder-note .vh-founder-note-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    margin: 0 auto !important;
    border-radius: .9rem !important;
    overflow: hidden !important;
  }

  html body #founder-note .vh-founder-note-media-col,
  html body #founder-note .vh-founder-note-copy {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  html body #founder-note .vh-founder-note-media {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 220px !important;
    aspect-ratio: 16 / 9 !important;
  }

  html body #founder-note .vh-founder-note-media img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: clamp(1rem, 4.25vw, 1.35rem) !important;
  }

  html body #founder-note .vh-founder-note-title,
  html body #founder-note .vh-founder-note-copy .display-4 {
    font-size: clamp(1.45rem, 5.4vw, 1.95rem) !important;
  }

  html body #founder-note .vh-founder-note-text,
  html body #founder-note .vh-founder-note-text p {
    font-size: clamp(.94rem, 3.6vw, 1rem) !important;
    line-height: 1.5 !important;
  }

  html body .vh-footer__mosaic-grid--footer {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
  }

  html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel {
    min-height: auto !important;
    padding: clamp(1rem, 4.75vw, 1.5rem) !important;
  }

  html body .vh-footer__mosaic-grid--footer .vh-footer__tile--panel[style*="background-image"] {
    min-height: clamp(240px, 62vw, 360px) !important;
    display: flex !important;
    align-items: flex-end !important;
  }

  html body .vh-footer__legal-bar {
    padding-top: .95rem !important;
    padding-bottom: calc(.95rem + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 575.98px) {
  html body #founder-note .vh-founder-note-container {
    max-width: calc(100vw - .75rem) !important;
  }

  html body #founder-note .vh-founder-note-card {
    border-radius: .75rem !important;
  }

  html body #founder-note .vh-founder-note-media {
    max-height: 190px !important;
  }

  html body #founder-note .vh-founder-note-copy {
    padding: 1rem !important;
  }

  html body .vh-footer__legal-bar .container {
    padding-inline: .75rem !important;
  }
}


/* Velocity Hub 1.5.43 — WO56B staging QA gate fix
   Static QA found header-dark.php lacked the below-nav announcement render slot.
   No additional visual CSS was added in this package. */

/* Velocity Hub 1.5.48 — WO58 mobile menu/announcement overlap fix
   Final authority: keep the floating menu below visible above-nav/top-fixed announcements. */
:root {
  --vh-menu-measured-top: var(--vh-menu-safe-top, auto);
}

body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,
body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle,
body.admin-bar.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,
body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {
  top: var(--vh-menu-measured-top, calc(var(--vh-adminbar-height, 0px) + max(var(--vh-announcement-height, 44px), 44px) + .75rem + env(safe-area-inset-top))) !important;
}

@media (max-width: 599.98px) {
  body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-announcement-bar__inner,
  body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-announcement-bar__inner {
    padding-right: calc(var(--vh-announcement-dismiss-size, 2rem) + 1rem) !important;
  }
}

/* Velocity Hub 1.5.50 — WO47B browser audit fixes
   Findings from the authenticated 320px Customizer/front-end audit:
   - FAQ Bootstrap gx-5 row leaked ~9px outside the viewport on mobile.
   - The legacy off-canvas sidebar can be detected outside the viewport while closed.
   - The floating menu button could overlap an above-nav announcement in logged-in mobile previews.
   Keep these fixes scoped to homepage/mobile so the multipurpose theme stays generic. */
@media (max-width: 575.98px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  body.home #front-faq,
  body.home #front-faq .container,
  body.home #front-faq .container-fluid {
    max-width: 100% !important;
    overflow-x: clip !important;
  }

  body.home #front-faq .row,
  body.home #front-faq .row.gx-5 {
    --bs-gutter-x: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.home #front-faq .row > [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.home #front-faq .accordion,
  body.home #front-faq .accordion-item,
  body.home #front-faq .accordion-header,
  body.home #front-faq .accordion-button,
  body.home #front-faq .accordion-body {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  body.home #front-faq .accordion-button {
    align-items: flex-start !important;
    flex-wrap: wrap !important;
    gap: .45rem !important;
    padding: .9rem 1rem !important;
  }

  body.home #front-faq .accordion-button .badge {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    margin-left: 0 !important;
  }
}

@media (max-width: 991.98px) {
  html body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,
  html body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle,
  html body.admin-bar.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,
  html body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle,
  html body.customize-preview.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,
  html body.customize-preview.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {
    top: calc(var(--vh-adminbar-height, 46px) + max(var(--vh-announcement-height, 38px), 38px) + 10px + env(safe-area-inset-top)) !important;
  }

  html body.vh-announcement-dismissed .menu-toggle,
  html body.admin-bar.vh-announcement-dismissed .menu-toggle {
    top: calc(var(--vh-adminbar-height, 0px) + 12px + env(safe-area-inset-top)) !important;
  }

  body.home #sidebar-wrapper:not(.active) {
    visibility: hidden;
    pointer-events: none;
  }

  body.home #sidebar-wrapper.active {
    visibility: visible;
    pointer-events: auto;
  }
}



/* WO78: Hero seamless transition feathering polish.
   Keep hero transition spans above the masthead media/pseudo layers and remove
   any residual bottom rule so the seam reads as a feather, not a hard stripe. */
body.home #page-top.vh-hero-has-seamless-overlap,
body.home .vh-layout-hero.vh-hero-has-seamless-overlap{
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}
body.home #page-top.vh-hero-has-seamless-overlap > .vh-section-transition-overlay,
body.home .vh-layout-hero.vh-hero-has-seamless-overlap > .vh-section-transition-overlay{
  z-index: 90 !important;
}


/* Velocity Hub 1.5.98 — WO95 off-canvas sidebar branding.
   Show the configured Custom Logo and align both logo/title with the menu-link column. */
#sidebar-wrapper .sidebar-nav > .sidebar-brand {
  height: auto;
  min-height: 80px;
  line-height: normal;
  padding: 0;
}

#sidebar-wrapper .sidebar-nav > .sidebar-brand > .vh-sidebar-brand-link {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: .55rem;
  width: 100%;
  min-height: 80px;
  box-sizing: border-box;
  padding: 15px;
  color: #fff;
  text-decoration: none;
}

#sidebar-wrapper .vh-sidebar-logo {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 52px;
  object-fit: contain;
  object-position: left center;
}

#sidebar-wrapper .vh-sidebar-brand-title {
  display: block;
  max-width: 100%;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

/* Velocity Hub 1.5.99 — WO96 structured homepage hero star rating. */

/* Velocity Hub 1.5.101 — WO98 rating row center-alignment correction. */

/* Velocity Hub 1.5.102 — WO99 hero media background and FAQ short-answer contract. */

/* Velocity Hub 1.5.103 — WO100 off-canvas menu state + nested submenus.
   The toggle icon is CSS-driven from aria-expanded, so close/open state cannot drift
   when Font Awesome replaces DOM nodes or presentation mode closes the menu. */
.menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  line-height: 1;
  cursor: pointer;
  appearance: none;
}
.vh-menu-toggle-glyph { position: relative; display: inline-block; width: 22px; height: 16px; }
.vh-menu-toggle-glyph > span {
  position: absolute; left: 0; width: 22px; height: 2px; border-radius: 999px;
  background: currentColor; transform-origin: center;
  transition: transform 160ms ease, opacity 120ms ease, top 160ms ease;
}
.vh-menu-toggle-glyph > span:nth-child(1) { top: 0; }
.vh-menu-toggle-glyph > span:nth-child(2) { top: 7px; }
.vh-menu-toggle-glyph > span:nth-child(3) { top: 14px; }
.menu-toggle[aria-expanded="true"] .vh-menu-toggle-glyph > span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .vh-menu-toggle-glyph > span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .vh-menu-toggle-glyph > span:nth-child(3) { top: 7px; transform: rotate(-45deg); }
body.vh-offcanvas-open { overflow: hidden; }
#sidebar-wrapper .sidebar-nav { height: 100%; overflow-y: auto; overscroll-behavior: contain; padding-bottom: 2rem; }
#sidebar-wrapper .vh-sidebar-menu-row { display: flex; align-items: stretch; width: 100%; color: #fff; }
#sidebar-wrapper .vh-sidebar-menu-link { flex: 1 1 auto; min-width: 0; }
#sidebar-wrapper .vh-sidebar-submenu-toggle {
  flex: 0 0 48px; width: 48px; min-height: 48px; display: inline-flex;
  align-items: center; justify-content: center; border: 0;
  border-left: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.05); color: #fff; cursor: pointer;
}
#sidebar-wrapper .vh-sidebar-submenu-toggle:hover,
#sidebar-wrapper .vh-sidebar-submenu-toggle:focus-visible { background: rgba(255,255,255,.16); color: inherit; }
#sidebar-wrapper .vh-sidebar-submenu-toggle:focus-visible, .menu-toggle:focus-visible {
  outline: 3px solid currentColor; outline-offset: -3px;
}
#sidebar-wrapper .vh-sidebar-submenu-chevron {
  width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px,-2px); transition: transform 160ms ease;
}
#sidebar-wrapper .vh-sidebar-submenu-toggle[aria-expanded="true"] .vh-sidebar-submenu-chevron {
  transform: rotate(225deg) translate(-2px,-2px);
}
#sidebar-wrapper .sidebar-sub-menu { margin: 0; padding: 0; background: rgba(0,0,0,.12); }
#sidebar-wrapper .sidebar-sub-menu[hidden] { display: none !important; }
#sidebar-wrapper .vh-sidebar-depth-1 > .vh-sidebar-menu-row .vh-sidebar-menu-link { padding-left: 30px; font-size: .95em; }
#sidebar-wrapper .vh-sidebar-depth-2 > .vh-sidebar-menu-row .vh-sidebar-menu-link { padding-left: 45px; font-size: .9em; }
#sidebar-wrapper .current-menu-item > .vh-sidebar-menu-row .vh-sidebar-menu-link,
#sidebar-wrapper .current-menu-ancestor > .vh-sidebar-menu-row .vh-sidebar-menu-link {
  font-weight: 700; background: rgba(255,255,255,.12);
}
@media (prefers-reduced-motion: reduce) {
  .vh-menu-toggle-glyph > span, #sidebar-wrapper .vh-sidebar-submenu-chevron { transition: none; }
}


/* Velocity Hub 1.5.104 — WO101 navigation mode reconciliation.
   Horizontal-navbar mode always wins over stale off-canvas state. Child menu
   controls remain visible even when upstream filters omit child marker classes. */
body:not(.vh-nav-scrolled) .menu-toggle {
  opacity: 0 !important;
  pointer-events: none !important;
}
body:not(.vh-nav-scrolled) #sidebar-wrapper {
  transform: translateX(250px) !important;
  right: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
#sidebar-wrapper .vh-sidebar-has-children > .vh-sidebar-menu-row > .vh-sidebar-submenu-toggle {
  visibility: visible;
  opacity: 1;
}
#sidebar-wrapper .sidebar-sub-menu:not([hidden]) {
  display: block;
}


/* Velocity Hub 1.5.113 — WO105A.1 universal transition stacking contract.
   Transition layers sit above backgrounds/media but below section content. */
.vh-layout-hero > .vh-section-transition-overlay,
body.home .vh-section-transition-source > .vh-section-transition-overlay,
body.home section > .vh-section-transition-overlay{
  z-index:2 !important;
}
.vh-layout-hero > .container,
body.home .vh-section-transition-source > *:not(.vh-section-transition-overlay),
body.home section > *:not(.vh-section-transition-overlay),
body.home .vh-section-transition-source + * > *:not(.vh-section-transition-overlay){
  position:relative;
  z-index:3;
}


/* Velocity Hub 1.5.114 — WO105A.2 bottom-image transition layering.
   The centered bottom-image media is intentionally beneath the decorative
   transition so the image edge dissolves into the seam. Hero copy remains
   above the effect, and following-section content keeps its existing layer. */
.vh-layout-hero.vh-hero-has-seamless-overlap.vh-hero-layout-editorial_center_bottom_image > .container{
  z-index:auto !important;
}
.vh-layout-hero.vh-hero-has-seamless-overlap.vh-hero-layout-editorial_center_bottom_image .vh-hero-copy--bottom-image{
  position:relative;
  z-index:5 !important;
}
.vh-layout-hero.vh-hero-has-seamless-overlap.vh-hero-layout-editorial_center_bottom_image .vh-hero-wide-media--bottom-edge,
.vh-layout-hero.vh-hero-has-seamless-overlap.vh-hero-layout-editorial_center_bottom_image .vh-hero-media--bottom-edge{
  position:relative;
  z-index:1 !important;
}

/* WO107 — Universal hero supporting data / proof controls. The modular
   hero-layout-base stylesheet loads later and is the authoritative contract. */
.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;}

/* Velocity Hub 1.5.151 — WO118 aligned footer grid
   Optional layout: one shared 12-column owner for the Social Media Strip and footer.
   The legacy four-column footer remains selectable and untouched. */
html body .vh-footer.site-footer.vh-footer--aligned {
  --vh-footer-aligned-divider: var(--vh-footer-border-color, rgba(255,255,255,.12));
}

html body.vh-footer-layout-aligned #vh-social-strip .vh-social-strip__grid,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  grid-auto-columns: initial !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  overflow: clip !important;
  align-items: stretch !important;
  box-sizing: border-box !important;
}

html body.vh-footer-layout-aligned #vh-social-strip .vh-social-strip__grid > *,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid > * {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid {
  background: inherit !important;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel {
  position: relative;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  padding: clamp(1.5rem, 2.6vw, 2.4rem) !important;
  text-align: left !important;
  background-color: inherit;
  background-size: cover;
  background-position: center center;
  color: var(--vh-footer-text-color, #fff);
  overflow: hidden;
  isolation: isolate;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel .vh-footer__tile-panel {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel .vh-footer__tile-overlay {
  position: absolute;
  z-index: 1;
  inset: 0;
  opacity: .88;
  background: linear-gradient(180deg, rgba(0,0,0,.54), rgba(0,0,0,.84)) !important;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel-content,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel-content > *,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel .widget,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel .wp-block-group,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel figure,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel p,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel ul,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel ol {
  min-width: 0;
  max-width: 100%;
  margin-top: 0;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel a {
  color: var(--vh-footer-link-color, rgba(255,255,255,.92));
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel a:hover,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel a:focus-visible {
  color: var(--vh-footer-link-hover-color, #fff);
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__contact-name {
  font-weight: 700;
  line-height: 1.2;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__contact-name .custom-logo-link,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__contact-name .custom-logo {
  display: block;
  width: auto;
  max-width: min(100%, 220px);
  height: auto;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__contact {
  display: grid;
  gap: .65rem;
  width: 100%;
  padding: 0;
  margin: 0;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__contact > li {
  display: grid;
  grid-template-columns: 1.15rem minmax(0, 1fr);
  align-items: start;
  gap: .55rem;
  width: 100%;
  margin: 0;
  overflow-wrap: anywhere;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__contact > li > i,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__contact > li > svg {
  margin-top: .2em;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--featured .wp-block-image,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--featured figure,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--featured .widget_media_image {
  width: 100%;
  margin: 0 auto;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--featured img {
  display: block;
  width: 100%;
  max-width: 440px;
  height: auto;
  max-height: 300px;
  margin-inline: auto;
  object-fit: contain;
  border-radius: .85rem;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--about p {
  max-width: 42ch;
  overflow-wrap: anywhere;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation {
  grid-column: 1 / -1 !important;
  border-top: 1px solid var(--vh-footer-aligned-divider);
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__tile-panel {
  display: grid;
  grid-template-columns: minmax(8rem, auto) minmax(0, 1fr);
  align-items: start;
  gap: 1rem clamp(1.5rem, 4vw, 4rem);
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__tile-kicker {
  margin: .25rem 0 0;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__aligned-panel-content {
  min-width: 0;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__tile-widget,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .widget,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation nav {
  width: 100%;
  margin: 0;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .menu,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__links,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .wp-block-navigation__container,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .wp-block-page-list {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start;
  gap: .55rem clamp(1rem, 2vw, 2rem) !important;
  width: 100%;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .menu > li,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__links > li,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .wp-block-navigation-item,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .page_item {
  min-width: 0;
  margin: 0;
  list-style: none !important;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .menu-item-has-children,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .page_item_has_children {
  flex-basis: 100%;
  display: grid;
  grid-template-columns: minmax(7rem, auto) minmax(0, 1fr);
  align-items: start;
  gap: .55rem 1.25rem;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .sub-menu,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .children {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .45rem 1.25rem !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation a {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  text-decoration: none;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation a:hover,
html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation a:focus-visible {
  text-decoration: underline;
  text-underline-offset: .2em;
}

/* Desktop: six social tiles at 2/12 each; three footer panels at 4/12 each. */
@media (min-width: 1280px) {
  html body.vh-footer-layout-aligned #vh-social-strip .vh-social-strip__grid > * {
    grid-column: span 2 !important;
  }
}

/* Small desktop: three social tiles per row; the footer remains three equal columns. */
@media (min-width: 1024px) and (max-width: 1279.98px) {
  html body.vh-footer-layout-aligned #vh-social-strip .vh-social-strip__grid > * {
    grid-column: span 4 !important;
  }
}

@media (min-width: 1024px) {
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-3 > .vh-footer__aligned-panel:not(.vh-footer__aligned-panel--navigation) {
    grid-column: span 4 !important;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-2 > .vh-footer__aligned-panel:not(.vh-footer__aligned-panel--navigation) {
    grid-column: span 6 !important;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-1 > .vh-footer__aligned-panel:not(.vh-footer__aligned-panel--navigation) {
    grid-column: span 12 !important;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-3 > .vh-footer__aligned-panel--contact,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-3 > .vh-footer__aligned-panel--featured,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-2 > .vh-footer__aligned-panel--contact {
    border-right: 1px solid var(--vh-footer-aligned-divider);
  }
}

/* Tablet: two social tiles per row; Contact + Featured share a row, About and Nav span full width. */
@media (min-width: 700px) and (max-width: 1023.98px) {
  html body.vh-footer-layout-aligned #vh-social-strip .vh-social-strip__grid > * {
    grid-column: span 6 !important;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-3 > .vh-footer__aligned-panel--contact,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-3 > .vh-footer__aligned-panel--featured,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-2 > .vh-footer__aligned-panel:not(.vh-footer__aligned-panel--navigation) {
    grid-column: span 6 !important;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-3 > .vh-footer__aligned-panel--about,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-1 > .vh-footer__aligned-panel:not(.vh-footer__aligned-panel--navigation) {
    grid-column: span 12 !important;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-3 > .vh-footer__aligned-panel--contact,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-2 > .vh-footer__aligned-panel--contact {
    border-right: 1px solid var(--vh-footer-aligned-divider);
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid--main-count-3 > .vh-footer__aligned-panel--about {
    border-top: 1px solid var(--vh-footer-aligned-divider);
  }
}

/* Mobile: one social/footer panel per row; navigation becomes a compact link grid. */
@media (max-width: 699.98px) {
  html body.vh-footer-layout-aligned #vh-social-strip .vh-social-strip__grid > *,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-grid > * {
    grid-column: span 12 !important;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel {
    min-height: auto !important;
    padding: clamp(1.1rem, 5.5vw, 1.5rem) !important;
    border-right: 0 !important;
    border-top: 1px solid var(--vh-footer-aligned-divider);
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel:first-child {
    border-top: 0;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__tile-panel {
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .menu,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__links,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .wp-block-navigation__container,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .wp-block-page-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem .9rem !important;
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .menu-item-has-children,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .page_item_has_children {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr);
  }
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .sub-menu,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .children {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .4rem .9rem !important;
  }
}

@media (max-width: 419.98px) {
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .menu,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .vh-footer__links,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .wp-block-navigation__container,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .wp-block-page-list,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .sub-menu,
  html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--navigation .children {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Velocity Hub 1.5.151 — WO118 front-page category image and fixed announcement boundary. */
html body.home .vh-services-intro__category-image {
  display: block;
  width: 100%;
  margin-top: 1rem !important;
}

html body.home .vh-services-intro__category-image img {
  display: block;
  width: 100%;
  max-width: 220px;
  height: auto;
}

body.vh-announcement-position-bottom-fixed:not(.vh-announcement-dismissed) {
  padding-bottom: var(--vh-announcement-height, 56px) !important;
}

html body .vh-footer.site-footer.vh-footer--aligned .vh-footer__aligned-panel--menu-location .vh-footer__horizontal-menu {
  width: 100%;
}
