/* ------------------------------------------------------------

   Front Page (Stylish Portfolio alignment)

   Scope: front page only

------------------------------------------------------------- */



@media (max-width: 576px) {

  body.home .content-section {

    padding-top: 5rem;

    padding-bottom: 5rem;

  }

}



/* Match the Stylish Portfolio heading rhythm */

body.home .content-section-heading h3 {

  font-size: 0.9rem;

  font-weight: 700;

  letter-spacing: 0.08em;

  text-transform: uppercase;

}



body.home .content-section-heading h2 {

  font-weight: 700;

  line-height: 1.15;

}



/* ------------------------------------------------------------

   Masthead polish (keeps your gradient fallback)

   Your theme already sets a readable background for .masthead.

------------------------------------------------------------- */



/* Modern-business hero layout (text left, media right) */

body.home .masthead {

  color: #fff;

  padding-top: 6rem;

  padding-bottom: 6rem;

}

.footer.masthead {

  color: #fff;

  padding-top:0;

  padding-bottom: 0;

}

@media (min-width: 992px) {

  body.home .masthead {

    padding-top: 8rem;

    padding-bottom: 8rem;

  }

  .footer.masthead {

  color: #fff;

  padding-top:0;

  padding-bottom: 0;

}

}



body.home .vh-hero-title {

  font-weight: 800;

  line-height: 1.05;

  letter-spacing: -0.02em;

  font-size: clamp(2.25rem, 2.8vw, 4.25rem);

}



body.home .vh-hero-lead {

  color: rgba(255, 255, 255, 0.82);

  font-size: 1.125rem;

  line-height: 1.55;

  max-width: 38rem;

}



body.home .vh-hero-media {

  background: rgba(255, 255, 255, 0.06);

  border: 1px solid rgba(255, 255, 255, 0.10);

}



body.home .vh-hero-media img {

  width: 100%;

  height: auto;

  display: block;

}



body.home .vh-hero-placeholder {

  min-height: 320px;

  display: flex;

  align-items: center;

  justify-content: center;

  background: rgba(0, 0, 0, 0.25);

  color: rgba(255, 255, 255, 0.22);

  font-weight: 700;

  font-size: 3.5rem;

  letter-spacing: 0.08em;

}



@media (max-width: 576px) {

  body.home .vh-hero-placeholder {

    min-height: 220px;

    font-size: 2.5rem;

  }

}



body.home .masthead .btn.btn-xl {

  border-radius: 0.5rem;

}



body.home .masthead .btn.btn-dark {

  background-color: #212529;

  border-color: #212529;

}



body.home .masthead .btn.btn-primary {

  background-color: #9fa90b;

  border-color: #9fa90b;

}



body.home .masthead .btn.btn-primary:hover,

body.home .masthead .btn.btn-primary:focus {

  background-color: #155d74;

  border-color: #155d74;

}



/* ------------------------------------------------------------

   Services section

   front-page.php uses:

   <section id="services" class="content-section bg-primary text-white">

   and inside: .card (white) + .btn-dark (requested)

------------------------------------------------------------- */



body.home #services.bg-primary {

  background-color: #9fa90b !important;

}



/* Icon above the image (Stylish Portfolio inspired, but modernized) */

body.home #services .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);

}



body.home #services .card {

  border: 0;

  border-radius: 0.75rem;

  overflow: hidden;

  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.12);

  transition: transform 0.15s ease, box-shadow 0.15s ease;

}



body.home #services .card:hover {

  transform: translateY(-2px);

  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.16);

}



body.home #services .card-body {

  padding: 1rem 1rem 1.5rem;

}



body.home #services .card img {

  width: 100%;

  height: auto;

}



body.home #services .card h3 a {

  color: #0f172a;

  text-decoration: none;

}



body.home #services .card h3 a:hover {

  text-decoration: underline;

}



/* Keep the Learn more button black, but make it feel intentional */

body.home #services .card .btn.btn-dark {

  background-color: #111827;

  border-color: #111827;

}



body.home #services .card .btn.btn-dark:hover,

body.home #services .card .btn.btn-dark:focus {

  background-color: #0b1220;

  border-color: #0b1220;

}



/* ------------------------------------------------------------

   FAQ section

   front-page.php wraps accordion with inline max-width + margin auto.

   We'll style the accordion items to match the template’s clean look.

------------------------------------------------------------- */



body.home #front-faq .accordion {

  max-width: 920px; /* matches your inline intent */

  margin-left: auto;

  margin-right: auto;

}



body.home #front-faq .accordion-item {

  border-radius: 0.75rem;

  overflow: hidden;

  border: 1px solid rgba(17, 24, 39, 0.08);

  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.06);

}



body.home #front-faq .accordion-item + .accordion-item {

  margin-top: 0.75rem;

}



body.home #front-faq .accordion-button {

  font-weight: 600;

  padding: 1rem 1.25rem;

}



body.home #front-faq .accordion-button .badge {

  font-weight: 600;

  border: 1px solid rgba(17, 24, 39, 0.12);

}



body.home #front-faq .accordion-body {

  color: #374151;

}



body.home #front-faq a {

  color: #0f172a;

  text-decoration: none;

}



body.home #front-faq a:hover {

  text-decoration: underline;

}

/* ------------------------------------------------------------

   Portfolio section

   front-page.php uses Stylish Portfolio .portfolio-item grid.

------------------------------------------------------------- */

#front-portfolio {

}

/* Light section background (repeatable pattern) */

.vh-section--light {

    background-image:linear-gradient(to bottom, #11182721 0%, #F6F7F3 60%), url(/wp-content/uploads/2026/02/vh-pattern-speckle.png);



    background-repeat: no-repeat, repeat;

    background-size: 100% 100%, 240px 240px;

    background-blend-mode: normal;

}





/* Transition band between dark hero and light section */

.vh-section--transition {

  background-color: #F8FAFC;

  background-image:

    linear-gradient(to bottom, #0F172A 0%, rgba(15,23,42,0.0) 55%),

    url("/wp-content/uploads/vh-pattern-dots.svg");

  background-repeat: no-repeat, repeat;

  background-size: 100% 100%, 240px 240px;

}



 .vh-front-portfolio-grid {

  border-radius: 1rem;

  overflow: hidden;

  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.16);

}



 .vh-front-portfolio-grid > [class*="col-"] {

  padding: 0;

}



/* Consistent tile height; image is cropped intentionally for a clean grid */

 .portfolio-item {

  height: 18rem;

}



@media (min-width: 992px) {

   .portfolio-item {

    height: 24rem;

  }

}



@media (max-width: 576px) {

   .portfolio-item {

    height: 15rem;

  }

}







/* Section-level ratio control for Front Page → Portfolio / What's Included grid. */

.vh-front-portfolio-grid--ratio-controlled .portfolio-item {

  height: auto !important;

  aspect-ratio: var(--vh-front-portfolio-ratio-mobile, 1 / 1);

}



@media (min-width: 768px) {

  .vh-front-portfolio-grid--ratio-controlled .portfolio-item {

    aspect-ratio: var(--vh-front-portfolio-ratio-tablet, var(--vh-front-portfolio-ratio-desktop, 1 / 1));

  }

}



@media (min-width: 992px) {

  .vh-front-portfolio-grid--ratio-controlled .portfolio-item {

    aspect-ratio: var(--vh-front-portfolio-ratio-desktop, 1 / 1);

  }

}



 .portfolio-item img {  width: 100%;

  height: 100%;

  object-fit: cover;

  display: block;

}



/* Make the overlay content fit the smaller tile height */

 .portfolio-item .caption .caption-content {

  margin: auto 1.75rem 1.75rem;

}



@media (min-width: 992px) {

   .portfolio-item .caption .caption-content {

    margin-left: 2.5rem;

    margin-right: 2.5rem;

    margin-bottom: 2.5rem;

  }

}



 .vh-portfolio-kicker {

  display: inline-block;

  font-size: 0.75rem;

  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: 0.08em;

  opacity: 0.95;

  margin-bottom: 0.5rem;

}



/* ------------------------------------------------------------

   Testimonials

   front-page.php outputs a grid of testimonial cards.

------------------------------------------------------------- */



body.home #front-testimonials .row {

  max-width: 920px; /* matches your inline intent */

  margin-left: auto;

  margin-right: auto;

}



body.home #front-testimonials .card {

  border: 0;

  border-radius: 0.75rem;

  overflow: hidden;

  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.10);

}



body.home #front-testimonials .card img {

  width: 100%;

  height: auto;

  display: block;

}



/* Carousel indicators (mobile) */

body.home #front-testimonials .carousel-indicators {

  position: static;

  margin-top: 1rem;

}



body.home #front-testimonials .carousel-indicators [data-bs-target] {

  width: 0.75rem;

  height: 0.75rem;

  border-radius: 999px;

  background-color: rgba(29, 128, 159, 0.45);

}



body.home #front-testimonials .carousel-indicators .active {

  background-color: #9fa90b;

}



/* ------------------------------------------------------------

   Above-fold social proof strip

------------------------------------------------------------- */



body.home .vh-hero-proof {

  display: flex;

  align-items: center;

  gap: 1rem;

  padding: 0.75rem 1rem;

  background: rgba(255, 255, 255, 0.06);

  border: 1px solid rgba(255, 255, 255, 0.10);

  border-radius: 0.75rem;

  max-width: 40rem;

}



body.home .vh-avatar-stack {

  display: flex;

  align-items: center;

}



body.home .vh-avatar-stack .vh-avatar {

  width: 34px;

  height: 34px;

  border-radius: 999px;

  border: 2px solid rgba(255, 255, 255, 0.9);

  object-fit: cover;

  margin-left: -10px;

}



body.home .vh-avatar-stack .vh-avatar:first-child {

  margin-left: 0;

}



body.home .vh-proof-text .vh-rating {

  font-weight: 700;

  line-height: 1.1;

}



body.home .vh-proof-text .vh-proof-line {

  color: rgba(255, 255, 255, 0.82);

  font-size: 0.95rem;

}



/* ------------------------------------------------------------

   Value anchors strip

------------------------------------------------------------- */



body.home .vh-anchors {

  background: #fff;

  padding: 1.25rem 0;

}



body.home .vh-anchor {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  padding: 0.9rem 1rem;

  border: 1px solid rgba(17, 24, 39, 0.10);

  border-radius: 0.75rem;

  background: #fff;

  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.06);

  height: 100%;

}



body.home .vh-anchor i {

  width: 2.25rem;

  height: 2.25rem;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  border-radius: 0.65rem;

  background: rgba(29, 128, 159, 0.10);

  color: #9fa90b;

}



body.home .vh-anchor span {

  font-weight: 600;

  color: #111827;

}



/* ------------------------------------------------------------

   Features + objections

------------------------------------------------------------- */



body.home .vh-feature {

  gap: 0.9rem;

  padding: 0.9rem 1rem;

  border: 1px solid rgba(17, 24, 39, 0.08);

  border-radius: 0.75rem;

  background: #fff;

  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.06);

}



body.home .vh-feature + .vh-feature {

  margin-top: 0.9rem;

}



body.home .vh-feature-icon {

  width: 1rem;

  height: 1rem;

  border-radius: 0.9rem;

  background: rgba(29, 128, 159, 0.10);

  color: #9fa90b;

  display: flex;

  align-items: center;

  justify-content: center;

  flex: 0 0 auto;

}



body.home .vh-feature-title {

  font-weight: 700;

  color: #111827;

}



body.home .vh-feature-text {

  color: #4b5563;

}



body.home .vh-objection {

  padding: 0.9rem 1rem;

  border: 1px solid rgba(17, 24, 39, 0.08);

  border-radius: 0.75rem;

  background: #fff;

  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.06);

}



body.home .vh-objection + .vh-objection {

  margin-top: 0.9rem;

}



body.home .vh-objection-q {

  font-weight: 700;

  color: #111827;

  margin-bottom: 0.25rem;

}



body.home .vh-objection-a {

  color: #4b5563;

}



/* ------------------------------------------------------------

   Second CTA + Founder note

------------------------------------------------------------- */



body.home .vh-cta2 {

  padding: 4rem 0;

  background: #0b1220;

  color: #fff;

}



body.home .vh-cta2-card {

  border: 1px solid rgba(255, 255, 255, 0.12);

  border-radius: 1rem;

  background: rgba(255, 255, 255, 0.06);

  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.28);

  padding: 2rem;

  max-width: 920px;

  margin: 0 auto;

  text-align: center;

}



body.home .vh-cta2-title {

  font-weight: 800;

  margin-bottom: 0.75rem;

}



body.home .vh-cta2-text {

  color: rgba(255, 255, 255, 0.82);

  margin-bottom: 1.25rem;

}



body.home .vh-founder-card {

  max-width: 920px;

  margin: 0 auto;

  background: #fff;

  border-radius: 1rem;

  border: 1px solid rgba(17, 24, 39, 0.08);

  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.10);

  padding: 2rem;

  display: flex;

  gap: 1.25rem;

  align-items: flex-start;

}



@media (max-width: 576px) {

  body.home .vh-founder-card {

    flex-direction: column;

    align-items: center;

    text-align: left;

  }

}



body.home .vh-founder-photo {

  width: 72px;

  height: 72px;

  border-radius: 999px;

  object-fit: cover;

  border: 2px solid rgba(17, 24, 39, 0.12);

}



body.home .vh-founder-text {

  color: #374151;

}



body.home .vh-founder-signature {

  margin-top: 0.75rem;

  font-weight: 700;

  color: #111827;

}



/* ------------------------------------------------------------

   Footer social dots (if you’re using Stylish Portfolio footer markup)

------------------------------------------------------------- */



body.home footer.footer .social-link {

  border-radius: 999px;

}

.home #services {

 }

/* ------------------------------------------------------------

   Features strip (Dedicated Support)

   Goals:

   - Stronger hierarchy (title > subtitle > grid)

   - Taller tiles with consistent padding

   - Fixed icon container so icons align

   - Support line stays short (2-line clamp)

------------------------------------------------------------- */



body.home .vh-features-strip .vh-features-head{

  margin-bottom: 2.25rem;

}



body.home .vh-features-strip .vh-features-title{

  font-weight: 800;

  letter-spacing: -0.015em;

  font-size: clamp(1.75rem, 1.8vw, 2.35rem);

}



body.home .vh-features-strip .vh-features-subtitle{

  max-width: 44rem;

  margin-left: auto;

  margin-right: auto;

  font-size: 0.95rem;

  line-height: 1.45;

  opacity: 0.82;

}



body.home .vh-features-strip .vh-feature-card{

  border-radius: 0.9rem;

  overflow: hidden;

}



/* Make tiles feel intentional: taller, more padding, aligned icon + copy */

body.home .vh-features-strip .vh-feature-card .card-body{

  padding: 0.75rem;

  display: grid;

  grid-template-columns: 56px 1fr;

  column-gap: 1rem;

  align-content: start;

}



@media (min-width: 992px){

  body.home .vh-features-strip .vh-feature-card .card-body{

        display: flex;

        align-content: center;

        align-items: center;

        position: relative;

        flex-direction: row;

        flex-wrap: wrap;

  }

}



/* The first child is the icon wrapper in your markup (it uses .mb-2). */

body.home .vh-features-strip .vh-feature-card .card-body > .mb-2{

  width: 36px;

  height: 36px;

  margin: 0 !important;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 0.75rem;

  grid-row: 1 / span 2;

}



body.home .vh-features-strip.vh-features--dark .vh-feature-card .card-body > .mb-2{

  background: rgba(255,255,255,0.08);

}



body.home .vh-features-strip.vh-features--light .vh-feature-card .card-body > .mb-2{

  background: rgba(15,23,42,0.06);

}



body.home .vh-features-strip .vh-feature-icon{

  font-size: 1.6rem;

  line-height: 1;

}



body.home .vh-features-strip .vh-feature-card h3{

  margin: 0;

  font-size: 1.05rem;

  font-weight: 800;

  letter-spacing: -0.01em;

}



body.home .vh-features-strip .vh-feature-card p{

  margin: 0.35rem 0 0;

  font-size: 0.95rem;

  line-height: 1.35;

  max-width: 34ch;

  display: -webkit-box;

  -webkit-line-clamp: 2;

  -webkit-box-orient: vertical;

  overflow: hidden;

}



/* Small hover feedback (only when the feature tiles are links) */

body.home .vh-features-strip a.vh-feature-card:hover{

  transform: translateY(-2px);

}



/* ------------------------------------------------------------

   Sales-flow sections added for reordered homepage

------------------------------------------------------------- */



body.home .vh-sales-section {

  position: relative;

}



body.home .vh-sales-card {

  height: 100%;

  background: #fff;

  border: 1px solid rgba(17, 24, 39, 0.08);

  border-radius: 1rem;

  box-shadow: 0 0.5rem 1.5rem rgba(15, 23, 42, 0.06);

  padding: 1.4rem;

}



body.home .vh-sales-card h3 {

  font-weight: 800;

  letter-spacing: -0.01em;

  color: #111827;

}



body.home .vh-sales-card p {

  color: #4b5563;

  line-height: 1.55;

}



body.home .vh-sales-card--problem {

  color: inherit;

}



body.home .vh-sales-card__icon {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  color: #9fa90b;

  font-size: 1.25rem;

}



body.home .vh-sales-card--step {

  padding-top: 1.1rem;

}



body.home .vh-step-num {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  min-width: 3rem;

  height: 3rem;

  margin-bottom: 1rem;

  border-radius: 999px;

  background: rgba(159, 169, 11, 0.14);

  color: #8b9408;

  font-weight: 800;

  letter-spacing: 0.08em;

}



body.home .vh-cta-panel {

  background: linear-gradient(135deg, #0f172a 0%, #111827 100%);

  color: #fff;

  border-radius: 1.25rem;

  padding: 1.5rem;

  box-shadow: 0 0.75rem 2rem rgba(15, 23, 42, 0.18);

}



body.home .vh-cta-panel__eyebrow {

  font-size: 0.8rem;

  letter-spacing: 0.08em;

  text-transform: uppercase;

  color: rgba(255, 255, 255, 0.72);

  margin-bottom: 0.9rem;

  font-weight: 700;

}



body.home .vh-checklist {

  list-style: none;

  padding: 0;

}



body.home .vh-checklist li {

  position: relative;

  padding-left: 1.5rem;

  color: rgba(255, 255, 255, 0.9);

}



body.home .vh-checklist li + li {

  margin-top: 0.85rem;

}



body.home .vh-checklist li::before {

  content: "✓";

  position: absolute;

  left: 0;

  top: 0;

  color: #9fa90b;

  font-weight: 800;

}



body.home .vh-checklist--no-icons li {

  padding-left: 0;

}



body.home .vh-checklist--no-icons li::before {

  content: none;

  display: none;

}



body.home .vh-check-card {

  height: 100%;

  display: flex;

  align-items: flex-start;

  gap: 0.65rem;

  background: #fff;

  border: 1px solid rgba(17, 24, 39, 0.08);

  border-radius: 1rem;

  box-shadow: 0 0.4rem 1.2rem rgba(15, 23, 42, 0.05);

  padding: 1rem 1.1rem;

  color: #111827;

  font-weight: 600;

}



body.home .vh-check-card i {

  color: #9fa90b;

  margin-top: 0.2rem;

}



body.home .vh-final-cta__card {

  background: #fff;

  border-radius: 1.25rem;

}



body.home .vh-final-cta__image {

  display: block;

  width: 100%;

  min-height: 100%;

  object-fit: cover;

}



body.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.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.home .vh-final-cta__card .btn.btn-primary:hover,

body.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.home #audit-offer .btn.btn-xl,

body.home #lead-magnet .btn.btn-lg,

body.home #final-cta .btn.btn-lg {

  border-radius: 0.65rem;

}



body.home #solution .container > .row:first-child {

  max-width: 920px;

  margin-left: auto;

  margin-right: auto;

}



@media (max-width: 991.98px) {

  body.home #offer-ladder .container,

  body.home .vh-services-band .service-body {

    padding-left: 1.25rem !important;

    padding-right: 1.25rem !important;

  }

}



/* ------------------------------------------------------------

   2026-03 homepage refinements: audit CTA, support cards,

   who-it's-for cards, clickable service cards, process image cards

------------------------------------------------------------- */



body.home .vh-support-strip {

  background: #d4b53f;

}



body.home .vh-support-card,

body.home .vh-check-card {

  display: flex;

  align-items: center;

  gap: 0.95rem;

  padding: 1rem 1.15rem;

  border-radius: 1rem;

  background: #fff;

  border: 1px solid rgba(17, 24, 39, 0.08);

  box-shadow: 0 0.45rem 1.2rem rgba(15, 23, 42, 0.08);

}



body.home .vh-support-card span,

body.home .vh-check-card span {

  color: #111827;

  font-weight: 600;

  line-height: 1.4;

}



body.home .vh-icon-pill {

  flex: 0 0 2.9rem;

  width: 2.9rem;

  height: 2.9rem;

  border-radius: 0.85rem;

  background: #f1f2f4;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  overflow: hidden;

  color: #111827;

}



body.home .vh-icon-pill img {

  width: 1.5rem;

  height: 1.5rem;

  object-fit: contain;

}



body.home .vh-icon-pill i {

  font-size: 1rem;

  line-height: 1;

}



body.home .vh-check-card {

  align-items: flex-start;

  min-height: 100%;

}



body.home .vh-check-card .vh-icon-pill {

  margin-top: 0.05rem;

}



body.home .vh-process-card {

  position: relative;

  min-height: 22rem;

  border: 0;

  isolation: isolate;

}



body.home .vh-process-card .vh-tile-bg,

body.home .vh-process-card .vh-process-card__bg {

  position: absolute;

  inset: 0;

  background-position: center;

  background-repeat: no-repeat;

  background-size: cover;

  transform: scale(1.01);

}



body.home .vh-process-card .vh-process-card__bg {

  background: linear-gradient(135deg, #102245 0%, #0f172a 50%, #1f2937 100%);

}



body.home .vh-process-card::after {

  content: "";

  position: absolute;

  inset: 0;

  background: linear-gradient(180deg, rgba(15, 23, 42, 0.12) 0%, rgba(15, 23, 42, 0.76) 68%, rgba(2, 6, 23, 0.92) 100%);

  z-index: 0;

}



body.home .vh-process-card .position-relative {

  z-index: 1;

}



body.home .vh-process-card__num {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  min-width: 3rem;

  height: 3rem;

  border-radius: 999px;

  background: rgba(255, 255, 255, 0.92);

  color: #8b9408;

  font-weight: 800;

  letter-spacing: 0.08em;

  box-shadow: 0 0.5rem 1rem rgba(2, 6, 23, 0.12);

}



body.home .vh-process-card p {

  color: rgba(255, 255, 255, 0.92);

  line-height: 1.5;

}



body.home .service-card a {

  transition: transform 0.16s ease;

}



body.home .service-card:hover a {

  transform: translateY(-2px);

}



body.home .vh-service-card__hint {

  display: inline-flex;

  align-items: center;

  font-size: 0.95rem;

  font-weight: 700;

  color: #111827;

}



@media (max-width: 991.98px) {

  body.home .vh-process-card {

    min-height: 19rem;

  }

}



/* ------------------------------------------------------------

   Homepage media cards / metrics

------------------------------------------------------------- */

body.home .vh-media-card {

  position: relative;

  display: flex;

  min-height: 320px;

  border-radius: 24px;

  overflow: hidden;

  background: linear-gradient(135deg, #0f172a, #172554);

  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.18);

}



body.home .vh-media-card__bg,

body.home .vh-media-card__overlay,

body.home .vh-media-card__content {

  position: absolute;

  inset: 0;

}



body.home .vh-media-card__bg {

  background-position: center;

  background-size: cover;

  transform: scale(1.02);

}



body.home .vh-media-card__overlay {

  background: linear-gradient(

    180deg,

    rgba(2, 6, 23, 0.28) 0%,

    rgba(2, 6, 23, var(--vh-card-overlay, 0.62)) 52%,

    rgba(2, 6, 23, 0.90) 100%

  );

}



body.home .vh-media-card__content {

  z-index: 2;

  display: flex;

  flex-direction: column;

  justify-content: flex-end;

  padding: 1.5rem;

  color: #fff;

}



body.home .vh-media-card__eyebrow,

body.home .vh-media-card__step {

  display: inline-flex;

  align-items: center;

  align-self: flex-start;

  margin-bottom: 0.9rem;

  padding: 0.45rem 0.7rem;

  border-radius: 999px;

  background: rgba(255, 255, 255, 0.14);

  color: #fff;

  font-size: 0.78rem;

  font-weight: 700;

  letter-spacing: 0.08em;

  text-transform: uppercase;

  backdrop-filter: blur(6px);

}



body.home .vh-media-card__title {

  display: block;

  margin-bottom: 0.6rem;

  color: #fff;

  font-size: clamp(1.25rem, 1vw, 1.75rem);

  font-weight: 800;

  line-height: 1.15;

}



body.home .vh-media-card__body {

  display: block;

  color: rgba(255, 255, 255, 0.92);

  font-size: 0.9rem;

  line-height: 1.6;

  max-width: 42ch;

}



body.home .vh-media-card__chips {

  display: flex;

  flex-wrap: wrap;

  gap: 0.5rem;

  margin-top: 1rem;

}



body.home .vh-media-chip {

  display: inline-flex;

  align-items: center;

  padding: 0.4rem 0.7rem;

  border-radius: 999px;

  background: rgba(255, 255, 255, 0.16);

  color: #fff;

  font-size: 0.78rem;

  line-height: 1.25;

}



body.home .vh-media-card--compact {

  min-height: 210px;

}



body.home .vh-media-card--info,

body.home .vh-media-card--included,

body.home .vh-media-card--process,

body.home .vh-media-card--service {

  min-height: 360px;

}



body.home .vh-media-card--service .vh-media-card__content {

  justify-content: flex-end;

}



body.home .vh-media-card--service .vh-media-card__title {

  font-size: clamp(1.35rem, 2.2vw, 1.9rem);

}



body.home .vh-metric-card {

  height: 100%;

  padding: 1.75rem;

  border-radius: 24px;

  border: 1px solid rgba(15, 23, 42, 0.08);

  background: #fff;

  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);

}



body.home .vh-metric-card__value {

  display: flex;

  align-items: flex-end;

  gap: 0.1rem;

  margin-bottom: 1rem;

  color: #0f172a;

  line-height: 1;

}



body.home .vh-metric-card__prefix,

body.home .vh-metric-card__suffix {

  font-size: 1.5rem;

  font-weight: 700;

}



body.home .vh-metric-card__number {

  font-size: clamp(2.3rem, 4vw, 3.25rem);

  font-weight: 900;

}



body.home .vh-metric-card__label {

  margin-bottom: 0.55rem;

  color: #0f172a;

  font-size: 1.15rem;

  font-weight: 800;

}



body.home .vh-metric-card__body {

  color: #475569;

  line-height: 1.65;

}



body.home #offer-ladder + .vh-services-band .row.row-cols-md-4 {

  row-gap: 1rem;

}



body.home .vh-services-band .col.mb-5.h-100 {

  margin-bottom: 0 !important;

}



@media (max-width: 991.98px) {

  body.home .vh-media-card,

  body.home .vh-media-card--info,

  body.home .vh-media-card--included,

  body.home .vh-media-card--process,

  body.home .vh-media-card--service {

    min-height: 300px;

  }

}



@media (max-width: 767.98px) {

  body.home .vh-media-card,

  body.home .vh-media-card--info,

  body.home .vh-media-card--included,

  body.home .vh-media-card--process,

  body.home .vh-media-card--service,

  body.home .vh-media-card--compact {

    min-height: 260px;

  }



  body.home .vh-media-card__content {

    padding: 1.15rem;

  }



  body.home .vh-metric-card {

    padding: 1.35rem;

  }

}



/* ------------------------------------------------------------

   2026-03 patch: cleaner metric counters + service screenshot cards

   Keeps the user's front-page.php service markup while improving polish.

------------------------------------------------------------- */

body.home .vh-metric-card {

  display: flex;

  flex-direction: column;

  justify-content: flex-start;

  gap: 0.35rem;

}



body.home .vh-metric-card__value {

  display: inline-flex;

  align-items: flex-end;

  flex-wrap: nowrap;

  gap: 0.14em;

  margin-bottom: 0.45rem;

  color: #0f172a;

  font-variant-numeric: tabular-nums lining-nums;

  letter-spacing: -0.04em;

}



body.home .vh-metric-card__prefix,

body.home .vh-metric-card__suffix {

  display: inline-flex;

  line-height: 1;

  font-weight: 800;

  color: #334155;

}



body.home .vh-metric-card__prefix {

  align-self: flex-start;

  margin-top: 0.48rem;

  font-size: clamp(1rem, 3vw, 3.28rem);

}



body.home .vh-metric-card__number {

  line-height: 0.9;

  font-size: clamp(3rem, 4.9vw, 4.2rem);

  font-weight: 900;

  color: #0f172a;

}



body.home .vh-metric-card__suffix {

  align-self: flex-end;

  margin-bottom: 0.38rem;

  font-size: clamp(0.98rem, 1.3vw, 1.18rem);

  letter-spacing: -0.01em;

}



body.home .vh-metric-card__label {

  margin-bottom: 0.35rem;

  color: #0f172a;

  font-size: 1.12rem;

  font-weight: 800;

  line-height: 1.32;

}



body.home .vh-metric-card__body {

  margin-bottom: 0;

  color: #475569;

  line-height: 1.68;

}



body.home .vh-services-band .service-card {

  height: 100%;

  border: 0;

  border-radius: 1.5rem;

  overflow: hidden;

  background: #ffffff;

  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);

  transition: transform 0.18s ease, box-shadow 0.18s ease;

}



body.home .vh-services-band .service-card:hover {

  transform: translateY(-6px);

  box-shadow: 0 24px 54px rgba(15, 23, 42, 0.16);

}



body.home .vh-services-band .service-card a {

  display: flex;

  flex-direction: column;

  height: 100%;

}



body.home .vh-services-band .service-card .image-frame {

  position: relative;

  width: 100%;

  max-width: none;

  max-height: none;

  min-height: 0;

  aspect-ratio: 16 / 10;

  padding: 0;

  display: block;

  background: #d7d1c5;

  box-shadow: none;

  overflow: hidden;

}



body.home .vh-services-band .service-card .image-frame img {

  display: block;

  width: 100%;

  height: 100%;

  object-fit: cover;

  object-position: center;

  transform: none;

}



body.home .vh-services-band .service-card .card-body {

  display: flex;

  flex-direction: column;

  padding: 1.35rem 1.35rem 1.25rem;

}



body.home .vh-services-band .service-card .service-card-subtitle {

  margin-bottom: 0.55rem !important;

  color: #64748b !important;

  font-size: 0.78rem;

  font-weight: 800;

  letter-spacing: 0.08em;

}



body.home .vh-services-band .service-card .card-title {

  color: #0f172a;

  font-size: 1.55rem;

  font-weight: 800;

  line-height: 1.2;

}



body.home .vh-services-band .service-card .card-text {

  margin-bottom: 0.95rem !important;

  color: #334155;

  font-size: 0.98rem;

  line-height: 1.65;

}



body.home .vh-services-band .service-card .highlights {

  gap: 0.45rem 0.75rem !important;

  margin-top: auto;

  border-top-color: rgba(15, 23, 42, 0.08) !important;

}



body.home .vh-services-band .service-card .highlights span {

  display: inline-flex;

  align-items: flex-start;

  color: #0f172a !important;

  font-size: 0.86rem;

  font-weight: 600;

  line-height: 1.45;

}



/* Service cards sit on white backgrounds even when the service row is dark.

   Keep card checklist text dark so Bootstrap text-light/text-white utilities

   from the surrounding dark section cannot make it white-on-white. */

body.home .vh-services-band .service-card .highlights span.text-light,

body.home .vh-services-band .service-card .highlights span.text-white,

body.home .vh-services-band .service-card .highlights span.vh-service-card__highlight {

  color: #0f172a !important;

}



body.home .vh-services-band .service-card .highlights i {

  margin-top: 0.18rem;

}



body.home .vh-services-band .vh-service-card__hint {

  display: inline-flex;

  align-items: center;

  gap: 0.35rem;

  padding-top: 0.2rem;

  color: #0f172a;

  font-size: 0.95rem;

  font-weight: 800;

}



body.home .vh-services-band .vh-service-card__hint i {

  transition: transform 0.18s ease;

}



body.home .vh-services-band .service-card:hover .vh-service-card__hint i {

  transform: translateX(3px);

}



@media (max-width: 767.98px) {

  body.home .vh-metric-card__value {

    gap: 0.12em;

  }



  body.home .vh-metric-card__prefix {

    margin-top: 0.35rem;

  }



  body.home .vh-metric-card__suffix {

    margin-bottom: 0.22rem;

  }



  body.home .vh-services-band .service-card .image-frame {

    padding: 1rem;

    aspect-ratio: 16 / 11;

  }

}





/* Weekly support cards: split image/content layout */

body.home .vh-features-strip .vh-features-head--sidebar {

  text-align: left;

  margin-bottom: 0;

  max-width: 320px;

}



body.home .vh-features-strip .vh-media-card--feature {

  position: relative;

  display: grid;

  grid-template-columns: 132px minmax(0, 1fr);

  align-items: stretch;

  min-height: 110px;

  border-radius: 20px;

  overflow: hidden;

  background: var(--vh-features-card-bg, #ffffff);

  color: var(--vh-features-card-text, #111827);

  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.10);

}



body.home .vh-features-strip .vh-media-card--feature:hover {

  color: var(--vh-features-card-text, #111827);

}



body.home .vh-features-strip.vh-features--dark .vh-media-card--feature {

 // border: 1px solid rgba(255,255,255,.10);

}



body.home .vh-features-strip .vh-media-card--feature .vh-media-card__thumb {

  display: block;

  max-height: 120px;

  aspect-ratio: 1 / 1;

  background-position: center;

  background-size: cover;

  background-repeat: no-repeat;

}



body.home .vh-features-strip .vh-media-card--feature .vh-media-card__content {

  position: relative;

  inset: auto;

  display: flex;

  flex-direction: column;

  justify-content: center;

  padding: 1rem 1.1rem;

  color: inherit;

  gap: 0.35rem;

}



body.home .vh-features-strip .vh-media-card--feature .vh-media-card__title {

  margin-bottom: 0;

  color: inherit;

  font-size: clamp(1rem, 1vw, 1.2rem);

  font-weight: 700;

  line-height: 1.15;

  display: -webkit-box;

  -webkit-line-clamp: 2;

  -webkit-box-orient: vertical;

  overflow: hidden;

}



body.home .vh-features-strip .vh-media-card--feature .vh-media-card__body {

  max-width: none;

  color: inherit;

  line-height: 1.45;

  font-size: 0.98rem;

  display: -webkit-box;

  -webkit-line-clamp: 3;

  -webkit-box-orient: vertical;

  overflow: hidden;

}



body.home .vh-features-strip.vh-features-text--custom .vh-media-card--feature,

body.home .vh-features-strip.vh-features-text--custom .vh-media-card--feature .vh-media-card__content,

body.home .vh-features-strip.vh-features-text--custom .vh-media-card--feature .vh-media-card__title,

body.home .vh-features-strip.vh-features-text--custom .vh-media-card--feature .vh-media-card__body {

  color: var(--vh-features-card-text, #111827) !important;

}



body.home .vh-features-strip .vh-media-card--feature.vh-media-card--feature-noimage {

  grid-template-columns: 1fr;

}



body.home .vh-features-strip .vh-media-card--feature.vh-media-card--feature-noimage .vh-media-card__content {

  padding-left: 1.1rem;

}



@media (max-width: 991.98px) {

  body.home .vh-features-strip .vh-features-head--sidebar {

    text-align: center;

    margin-bottom: 2rem;

    max-width: none;

    margin-left: 0;

  }



  body.home .vh-features-strip .vh-media-card--feature {

    grid-template-columns: 124px minmax(0, 1fr);

    min-height: 144px;

  }



  body.home .vh-features-strip .vh-media-card--feature .vh-media-card__thumb {

    min-height: 144px;

  }

}



@media (max-width: 767.98px) {

  body.home .vh-features-strip .vh-media-card--feature {

    grid-template-columns: 116px minmax(0, 1fr);

    min-height: 140px;

  }



  body.home .vh-features-strip .vh-media-card--feature .vh-media-card__thumb {

    min-height: 140px;

  }



  body.home .vh-features-strip .vh-media-card--feature .vh-media-card__content {

    padding: 0.9rem 1rem;

  }

}



/* Globalized front-page button tokens from Customizer */

body.home .vh-btn-primary,

body.home .btn.vh-btn-primary,

body.home .btn.btn-primary,

body.home .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);

}



body.home .vh-btn-primary:hover,

body.home .vh-btn-primary:focus,

body.home .btn.vh-btn-primary:hover,

body.home .btn.vh-btn-primary:focus,

body.home .btn.btn-primary:hover,

body.home .btn.btn-primary:focus,

body.home .btn.bg-brandgreen:hover,

body.home .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);

}



body.home .vh-btn-dark,

body.home .btn.vh-btn-dark,

body.home .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);

}



body.home .vh-btn-dark:hover,

body.home .vh-btn-dark:focus,

body.home .btn.vh-btn-dark:hover,

body.home .btn.vh-btn-dark:focus,

body.home .btn.btn-dark:hover,

body.home .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);

}



body.home .vh-btn-outline,

body.home .btn.vh-btn-outline,

body.home .btn.btn-outline-dark,

body.home .btn.btn-outline-secondary,

body.home .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);

}



body.home .vh-btn-outline:hover,

body.home .vh-btn-outline:focus,

body.home .btn.vh-btn-outline:hover,

body.home .btn.vh-btn-outline:focus,

body.home .btn.btn-outline-dark:hover,

body.home .btn.btn-outline-dark:focus,

body.home .btn.btn-outline-secondary:hover,

body.home .btn.btn-outline-secondary:focus,

body.home .btn.btn-outline-primary:hover,

body.home .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);

}



/* Universal hero layout homepage overrides/fixes */

body.home .vh-layout-hero .vh-hero-title{

  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;

}

body.home .vh-layout-hero .vh-hero-copy--center .vh-hero-title,

body.home .vh-layout-hero .vh-hero-copy--minimal .vh-hero-title{

  max-width: min(100%, 34ch);

}

body.home .vh-layout-hero .vh-hero-lead{

  color: var(--vh-hero-muted, #d1d5db) !important;

  max-width: 48rem;

}

body.home .vh-layout-hero.masthead{

  background-color: var(--vh-hero-bg, #070b15) !important;

  color: var(--vh-hero-text, #ffffff) !important;

}

body.home .vh-hero-collage-cards{

  display:grid;

  grid-template-columns:repeat(2,minmax(0,1fr));

  gap:1rem;

  margin-top:1rem;

}

body.home .vh-hero-floating-card{

  position:static;

  max-width:none;

  width:100%;

  min-height:6.5rem;

  margin:0;

}

@media (max-width: 575.98px){

  body.home .vh-layout-hero .vh-hero-title{

    font-size: clamp(2.05rem, 11vw, 3.3rem);

    max-width: min(100%, 20ch);

  }

  body.home .vh-hero-collage-cards{grid-template-columns:1fr;}

}



/* Universal hero layout homepage polish v5 */

body.home .vh-hero-before-after-card{

  padding: 0 !important;

  overflow: hidden !important;

  justify-content: flex-start !important;

  border-radius: 1.2rem !important;

}

body.home .vh-hero-before-after-image{

  width: 100% !important;

  aspect-ratio: 16 / 9 !important;

  object-fit: cover !important;

  border: 0 !important;

  border-radius: 1.2rem 1.2rem 0 0 !important;

  margin: 0 !important;

}

body.home .vh-hero-before-after-body{

  padding: 1.35rem !important;

  text-align: left;

}

body.home .vh-hero-layout-search_finder .vh-hero-finder-form{

  display: flex !important;

  flex-direction: row !important;

  gap: 0 !important;

  width: min(100%, 900px) !important;

  max-width: 900px !important;

}

body.home .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;

}

body.home .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;

  justify-self: auto !important;

}

@media (max-width: 575.98px){

  body.home .vh-hero-layout-search_finder .vh-hero-finder-form{

    flex-direction: column !important;

    gap: .75rem !important;

  }

  body.home .vh-hero-layout-search_finder .vh-hero-finder-form input[type="search"],

  body.home .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;

  }

}





/* Service front-page cards: images should fill the media well edge-to-edge. */

body.home .vh-services-band .service-card .image-frame,

body.home .vh-services-band .service-card .image-frame.vh-hover-tile {

  padding: 0 !important;

  border-radius: 0;

}



body.home .vh-services-band .service-card .image-frame img,

body.home .vh-services-band .service-card .image-frame.vh-hover-tile img {

  width: 100% !important;

  height: 100% !important;

  object-fit: cover !important;

  object-position: center !important;

}



/* Audit Offer: optional three-column media layout */

body.home #audit-offer .vh-audit-offer-grid--has-image {

  align-items: stretch;

}



body.home #audit-offer .vh-audit-offer-image-card {

  height: 100%;

  min-height: 320px;

  border-radius: 1.25rem;

  overflow: hidden;

  box-shadow: 0 0.75rem 2rem rgba(15, 23, 42, 0.18);

  background: rgba(15, 23, 42, 0.08);

}



body.home #audit-offer .vh-audit-offer-image-card img {

  display: block;

  width: 100%;

  height: 100%;

  min-height: 320px;

  object-fit: cover;

}



@media (max-width: 991.98px) {

  body.home #audit-offer .vh-audit-offer-image-card,

  body.home #audit-offer .vh-audit-offer-image-card img {

    min-height: 260px;

  }

}



/* Audit offer localized button color controls */

body.home #audit-offer .vh-audit-button--primary {

  background-color: var(--vh-audit-primary-bg, var(--vh-btn-dark-bg, #212529)) !important;

  border-color: var(--vh-audit-primary-border, var(--vh-btn-dark-border, #212529)) !important;

  color: var(--vh-audit-primary-text, var(--vh-btn-dark-text, #ffffff)) !important;

}



body.home #audit-offer .vh-audit-button--primary:hover,

body.home #audit-offer .vh-audit-button--primary:focus {

  background-color: var(--vh-audit-primary-hover-bg, var(--vh-btn-dark-hover-bg, #111827)) !important;

  border-color: var(--vh-audit-primary-hover-border, var(--vh-btn-dark-hover-border, #111827)) !important;

  color: var(--vh-audit-primary-hover-text, var(--vh-btn-dark-hover-text, #ffffff)) !important;

}



body.home #audit-offer .vh-audit-button--secondary {

  background-color: var(--vh-audit-secondary-bg, var(--vh-btn-outline-bg, transparent)) !important;

  border-color: var(--vh-audit-secondary-border, var(--vh-btn-outline-border, #212529)) !important;

  color: var(--vh-audit-secondary-text, var(--vh-btn-outline-text, #212529)) !important;

}



body.home #audit-offer .vh-audit-button--secondary:hover,

body.home #audit-offer .vh-audit-button--secondary:focus {

  background-color: var(--vh-audit-secondary-hover-bg, var(--vh-btn-outline-hover-bg, #212529)) !important;

  border-color: var(--vh-audit-secondary-hover-border, var(--vh-btn-outline-hover-border, #212529)) !important;

  color: var(--vh-audit-secondary-hover-text, var(--vh-btn-outline-hover-text, #ffffff)) !important;

}



/* 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);

  }

}



/* 1.4.76: Services / Offer Ladder row-1 shell

   The intro band and first service row share one background/transition target.

   Child sections stay transparent so the wrapper color/image is visible as one unit. */

body.home #services-offer-row-1 {

  position: relative;

}



body.home #services-offer-row-1 > #offer-ladder,

body.home #services-offer-row-1 > #services {

  background: transparent;

}



/* WO20: portfolio gap wiring only. Do not override ratio/image height here. */

body.home .vh-front-portfolio-grid--layout-controlled {

	gap: var(--vh-front-portfolio-gap-mobile, clamp(1rem, 2vw, 1.5rem));

}

@media (min-width: 768px) {

	body.home .vh-front-portfolio-grid--layout-controlled {

		gap: var(--vh-front-portfolio-gap-tablet, var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem)));

	}

}

@media (min-width: 992px) {

	body.home .vh-front-portfolio-grid--layout-controlled {

		gap: var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem));

	}

}



/* ------------------------------------------------------------

   Velocity Hub 1.5.8 WO23: homepage testimonial + portfolio contract

   - homepage testimonials now reuse shared testimonial-slide structure

   - homepage portfolio uses CSS grid, responsive image sources, and top/bottom radius vars

------------------------------------------------------------- */

body.home #front-testimonials.vh-front-testimonials-slider {

  width: 100%;

  max-width: 900px;

  margin-left: auto;

  margin-right: auto;

}



body.home #front-testimonials .carousel {

  position: relative;

  padding: 0 3.25rem 2.4rem;

}



body.home #front-testimonials .carousel-inner {

  overflow: hidden;

}



body.home #front-testimonials .vh-front-testimonial-slide-link {

  display: block;

  color: inherit;

  text-decoration: none !important;

  padding: clamp(.75rem, 2vw, 1.25rem) 0;

  border-radius: 1rem;

}



body.home #front-testimonials .vh-front-testimonial-slide-link:hover,

body.home #front-testimonials .vh-front-testimonial-slide-link:focus-visible {

  color: inherit;

  text-decoration: none !important;

  outline: none;

}



body.home #front-testimonials .vh-testimonial-slide__quote {

  font-size: clamp(1.25rem, 2vw, 1.8rem) !important;

  line-height: 1.55;

}



body.home #front-testimonials .vh-testimonial-slide__avatar img {

  width: 44px;

  height: 44px;

  object-fit: cover;

}



body.home #front-testimonials .vh-front-testimonials-arrow {

  width: 3rem;

  opacity: 1;

  color: var(--vh-testimonial-arrow-color, var(--vh-accent, var(--bs-primary, #1d809f)));

  font-size: 3.5rem;

  font-weight: 300;

  line-height: 1;

  text-shadow: none;

}



body.home #front-testimonials .vh-front-testimonials-arrow:hover,

body.home #front-testimonials .vh-front-testimonials-arrow:focus {

  color: var(--vh-accent-hover, var(--vh-testimonial-arrow-color, var(--vh-accent, var(--bs-primary, #1d809f))));

  opacity: 1;

}



body.home #front-testimonials .vh-front-testimonials-arrow span[aria-hidden="true"] {

  display: block;

  transform: translateY(-.1rem);

}



body.home #front-testimonials .carousel-indicators {

  position: static;

  margin-top: 1.2rem;

  margin-bottom: 0;

}



body.home #front-testimonials .carousel-indicators [data-bs-target] {

  width: .72rem;

  height: .72rem;

  border: 0;

  border-radius: 999px;

  background-color: rgba(29, 128, 159, .28);

}



body.home #front-testimonials .carousel-indicators .active {

  background-color: var(--vh-accent, var(--bs-primary, #1d809f));

}



@media (max-width: 767.98px) {

  body.home #front-testimonials .carousel {

    padding-left: 0;

    padding-right: 0;

  }



  body.home #front-testimonials .vh-front-testimonials-arrow {

    display: none;

  }

}



body.home .vh-front-portfolio-grid--layout-controlled {

  display: grid !important;

  grid-template-columns: repeat(var(--vh-front-portfolio-cols-mobile, 1), minmax(0, 1fr));

  width: 100%;

  max-width: var(--vh-front-portfolio-max-mobile, 64rem);

  margin-left: auto;

  margin-right: auto;

  border-radius: 0;

  overflow: visible;

  box-shadow: none;

  gap: var(--vh-front-portfolio-gap-mobile, clamp(1rem, 2vw, 1.5rem));

}



body.home .vh-front-portfolio-grid--layout-controlled > [class*="col-"],

body.home .vh-front-portfolio-grid--layout-controlled > .vh-front-portfolio-cell {

  width: auto !important;

  max-width: none !important;

  padding: 0 !important;

  min-width: 0;

}



body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item {

  display: block;

  position: relative;

  width: 100%;

  max-width: none;

  height: auto !important;

  margin: 0;

  aspect-ratio: var(--vh-front-portfolio-ratio-mobile, 1 / 1);

  border-top-left-radius: var(--vh-front-portfolio-card-radius-top, var(--vh-front-portfolio-card-radius, 1.25rem));

  border-top-right-radius: var(--vh-front-portfolio-card-radius-top, var(--vh-front-portfolio-card-radius, 1.25rem));

  border-bottom-left-radius: var(--vh-front-portfolio-card-radius-bottom, var(--vh-front-portfolio-card-radius, 1.25rem));

  border-bottom-right-radius: var(--vh-front-portfolio-card-radius-bottom, var(--vh-front-portfolio-card-radius, 1.25rem));

  overflow: hidden;

  background: #0f172a;

  box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, 0.14);

}



body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item picture,

body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item img {

  width: 100%;

  height: 100% !important;

  min-height: 0 !important;

  display: block;

}



body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item img {

  object-fit: cover;

  border-radius: inherit;

  clip-path: none !important;

  -webkit-clip-path: none !important;

}



body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item .caption {

  inset: 0;

  border-radius: inherit;

  overflow: hidden;

  clip-path: none !important;

  -webkit-clip-path: none !important;

}



body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item:hover img,

body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item:focus img,

body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item:hover .caption,

body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item:focus .caption {

  clip-path: none !important;

  -webkit-clip-path: none !important;

}



@media (min-width: 768px) {

  body.home .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));

    max-width: var(--vh-front-portfolio-max-tablet, var(--vh-front-portfolio-max-desktop, 64rem));

    gap: var(--vh-front-portfolio-gap-tablet, var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem)));

  }



  body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item {

    aspect-ratio: var(--vh-front-portfolio-ratio-tablet, var(--vh-front-portfolio-ratio-desktop, 1 / 1));

  }

}



@media (min-width: 992px) {

  body.home .vh-front-portfolio-grid--layout-controlled {

    grid-template-columns: repeat(var(--vh-front-portfolio-cols-desktop, 2), minmax(0, 1fr));

    max-width: var(--vh-front-portfolio-max-desktop, 64rem);

    gap: var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem));

  }



  body.home .vh-front-portfolio-grid--layout-controlled .portfolio-item {

    aspect-ratio: var(--vh-front-portfolio-ratio-desktop, 1 / 1);

  }

}



/* 1.5.9: homepage portfolio Customizer contract hardening.

   Section-level gap/radius controls must beat global card defaults, including 0 values. */

body.home #whats-included .vh-front-portfolio-grid.vh-front-portfolio-grid--layout-controlled {

  gap: var(--vh-front-portfolio-gap-mobile, clamp(1rem, 2vw, 1.5rem)) !important;

  row-gap: var(--vh-front-portfolio-gap-mobile, clamp(1rem, 2vw, 1.5rem)) !important;

  column-gap: var(--vh-front-portfolio-gap-mobile, clamp(1rem, 2vw, 1.5rem)) !important;

}

body.home #whats-included .vh-front-portfolio-grid.vh-front-portfolio-grid--layout-controlled .portfolio-item {

  border-top-left-radius: var(--vh-front-portfolio-card-radius-top, var(--vh-front-portfolio-card-radius, 1.25rem)) !important;

  border-top-right-radius: var(--vh-front-portfolio-card-radius-top, var(--vh-front-portfolio-card-radius, 1.25rem)) !important;

  border-bottom-left-radius: var(--vh-front-portfolio-card-radius-bottom, var(--vh-front-portfolio-card-radius, 1.25rem)) !important;

  border-bottom-right-radius: var(--vh-front-portfolio-card-radius-bottom, var(--vh-front-portfolio-card-radius, 1.25rem)) !important;

  overflow: hidden !important;

}

body.home #whats-included .vh-front-portfolio-grid.vh-front-portfolio-grid--layout-controlled .portfolio-item picture,

body.home #whats-included .vh-front-portfolio-grid.vh-front-portfolio-grid--layout-controlled .portfolio-item img,

body.home #whats-included .vh-front-portfolio-grid.vh-front-portfolio-grid--layout-controlled .portfolio-item .caption {

  border-radius: inherit !important;

  overflow: hidden !important;

}

@media (min-width: 768px) {

  body.home #whats-included .vh-front-portfolio-grid.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;

    row-gap: var(--vh-front-portfolio-gap-tablet, var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem))) !important;

    column-gap: var(--vh-front-portfolio-gap-tablet, var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem))) !important;

  }

}

@media (min-width: 992px) {

  body.home #whats-included .vh-front-portfolio-grid.vh-front-portfolio-grid--layout-controlled {

    gap: var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem)) !important;

    row-gap: var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem)) !important;

    column-gap: var(--vh-front-portfolio-gap-desktop, clamp(1rem, 2vw, 1.5rem)) !important;

  }

}



/* 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.73 — WO70 Final CTA media height contract.
   Fixes the 1024px side-by-side final CTA case where the image used its
   intrinsic ratio instead of matching the card/content height. */
@media (min-width: 992px) {
  body.home .vh-bottom-final-cta .vh-final-cta__card {
    align-items: stretch !important;
  }

  body.home .vh-bottom-final-cta .vh-final-cta__media {
    display: flex !important;
    align-self: stretch !important;
    min-height: 100% !important;
  }

  body.home .vh-bottom-final-cta .vh-final-cta__media > picture,
  body.home .vh-bottom-final-cta .vh-final-cta__media > a {
    display: flex !important;
    width: 100% !important;
    min-height: 100% !important;
  }

  body.home .vh-bottom-final-cta .vh-final-cta__image {
    width: 100% !important;
    height: 100% !important;
    min-height: clamp(320px, 32vw, 520px) !important;
    object-fit: cover !important;
  }
}
