
/* ===== Sticky narrative layout ===== */
.ohm-sticky-narrative { position: relative; }
.ohm-sticky-narrative .ohm-pin{
  position: sticky; top: 14vh; z-index: 2;
  text-align: center; margin-bottom: 12vh;
  color: #1C1C1C;
}
#header.transparent-header.dark ~ #content .ohm-sticky-narrative .ohm-pin { color:#fff; }

.ohm-pin__eyebrow{
  font-family: var(--font-body, "Archivo"); letter-spacing:.08em; text-transform:uppercase;
  opacity:.75; margin-bottom:.5rem; font-size: clamp(12px,1.4vw,14px);
}
.ohm-pin__title{
  font-family: var(--font-display, "Clash Display", "Archivo", system-ui); font-weight:700;
  font-size: clamp(28px, 4vw, 56px); line-height:1.1; margin: 0 0 .4rem;
}
.ohm-pin__sub{
  font-size: clamp(16px, 2vw, 22px); color: #555; max-width: 52ch; margin: 0 auto;
}

.ohm-panels { position: relative; }
.ohm-panel{
  position: relative; min-height: 85vh;
  display: grid; place-items: center;
  background: #000 center/cover no-repeat;
  background-image: var(--bg);
  filter: saturate(105%);
}
.ohm-panel::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.25), rgba(0,0,0,.08));
  pointer-events:none;
}

@media (prefers-reduced-motion: no-preference){
  .ohm-panel{ /* parallax disabled for compatibility */ }
}

@media (max-width: 767.98px){
  .ohm-pin{ padding: 0 1rem; }
}


/* ----------------------------------------------------------------
  Custom CSS
-----------------------------------------------------------------*/

/* === Webfonts (single source) === */
@font-face{
  font-family: "Clash Display";
  src: url("../fonts/ClashDisplay-Bold.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face{
  font-family: "Archivo";
  src: url("../fonts/Archivo-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}

/* === Modular scale: Major Third (Ã—1.25), base 16px === */
:root{
  --step--2: 10.24px;
  --step--1: 12.80px;
  --step-0:  16.00px;
  --step-1:  20.00px;
  --step-2:  25.00px;
  --step-3:  31.25px;
  --step-4:  39.06px;
  --step-5:  48.83px;
  --step-6:  61.04px;
  --step-7:  76.30px;
  --step-8:  95.38px;
}

/* === Global typography === */
:root{
  --font-display: "Clash Display", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --font-body:    "Archivo",       system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}
html{ text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body,button,input,textarea,select{ font-family: var(--font-body); font-weight:400; font-size:var(--step-0); line-height:1.5; }
h1,h2,h3,h4,h5,h6{ font-family: var(--font-display); font-weight:700; margin:0 0 .5em; }
h1{ font-size: var(--step-6); line-height:1.1; }
h2{ font-size: var(--step-5); line-height:1.15; }
h3{ font-size: var(--step-4); line-height:1.2; }
h4{ font-size: var(--step-3); line-height:1.25; }
h5{ font-size: var(--step-2); line-height:1.3; }
h6{ font-size: var(--step-1); line-height:1.35; }
.small{ font-size:var(--step--1); } .x-small{ font-size:var(--step--2); }

/* ===== HERO ===== */
.ohm-hero{ overflow:hidden; }
.ohm-hero .slider-inner{ position:relative; display:flex; align-items:center; justify-content:center; text-align:center; min-height:60vh; padding:4rem 1rem; }
@media (min-width:768px){ .ohm-hero .slider-inner{ min-height:100vh; } }

.ohm-hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}

/* Shapes */
.ohm-shape{
  position:absolute; z-index:1; will-change: transform, opacity;
  opacity:0; transform: translateY(30px) scale(.96);
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.35));
}
.ohm-shape--left{
  left: clamp(0px, 4vw, 60px);
  top:  clamp(40px, 8vh, 120px);
  width: clamp(180px, 28vw, 420px);
  animation: ohm-float-1 8s ease-in-out infinite alternate;
  animation-delay: .2s;
}
.ohm-shape--right{
  right: clamp(-10px, 5vw, 60px);
  bottom: clamp(-10px, 8vh, 60px);
  width: clamp(200px, 30vw, 460px);
  animation: ohm-float-2 10s ease-in-out infinite alternate;
  animation-delay: .35s;
}
body.ohm-loaded .ohm-shape{
  opacity:1; transform: translateY(0) scale(1);
  transition: transform .9s cubic-bezier(.2,.8,.2,1), opacity .6s ease;
}
@keyframes ohm-float-1 { from { transform: translateY(-6px) } to { transform: translateY(6px) } }
@keyframes ohm-float-2 { from { transform: translateY(8px)  } to { transform: translateY(-8px)} }
@media (prefers-reduced-motion: reduce){ .ohm-shape{ animation:none !important; } }

/* Hero text */
#slider .slider-caption .ohm-hero-title{
  font-family: var(--font-display); font-weight:700; line-height:1.05; letter-spacing:.2px; margin:0 0 .75rem; color:#fff;
  font-size: clamp(var(--step-3), 6.5vw, var(--step-7));
}
#slider .slider-caption .ohm-hero-sub{
  font-family: var(--font-body); font-weight:400; line-height:1.5; margin:0; color:#DDE2DE; opacity:.95;
  font-size: clamp(var(--step-0), 2.2vw, var(--step-2));
}
.ohm-hero-center{ position:relative; z-index:1; max-width:960px; margin-inline:auto; }

/* CTA button */
.ohm-cta{
  display:inline-flex; align-items:center; gap:.6rem; margin-top:clamp(16px,3vh,28px);
  padding:.85rem 1.4rem; border-radius:999px; font-size:var(--step-1); color:#05150E; background:#38f08a;
  box-shadow:0 .6rem 1.5rem rgba(0,0,0,.25); position:relative; overflow:hidden;
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s;
}
.ohm-cta__icon{
  width:1.35em; height:1.35em; display:inline-grid; place-items:center; border-radius:50%;
  background:rgba(0,0,0,.07); transition: transform .4s cubic-bezier(.2,.8,.2,1);
}
.ohm-cta__icon img{ width:60%; height:60%; object-fit:contain; }
.ohm-cta::before{
  content:""; position:absolute; inset:-200%; background: radial-gradient(60% 60% at 50% 50%, rgba(255,255,255,.25), transparent 60%);
  transform: translateX(-60%); transition: transform .6s cubic-bezier(.2,.8,.2,1);
}
.ohm-cta:hover{ transform: translateY(-2px); box-shadow:0 1rem 2rem rgba(0,0,0,.28); }
.ohm-cta:hover::before{ transform: translateX(20%); }
.ohm-cta:hover .ohm-cta__icon{ transform: rotate(20deg) scale(1.05); }

/* Header: transparent over hero â†’ solid after */
#header.header-solid{ background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.08); }
#header.header-solid #primary-menu .menu-link{ color:#222; }
#header.header-solid #logo img{ filter:none; }

/* Remove vertical dividers beside logo/menu on wide screens */
@media (min-width:992px){
  .full-header #logo,
  .full-header .primary-menu .menu-container{ border-right:0; }
}

/* Ensure hero elements show correctly */
.ohm-hero { overflow: hidden; }
.ohm-hero .slider-inner {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  text-align: center;
  min-height: 60vh; padding: 4rem 1rem;
}
@media (min-width:768px){ .ohm-hero .slider-inner{ min-height: 100vh; } }

.ohm-hero-bg{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; z-index: 0;
}

.ohm-shape{
  position: absolute; z-index: 1;
  will-change: transform, opacity;
  opacity: 100; transform: translateY(30px) scale(.96);
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.35));
}
.ohm-shape--left{
  left: clamp(0px, 4vw, 60px);
  top: clamp(40px, 8vh, 120px);
  width: clamp(180px, 28vw, 420px);
  animation: ohm-float-1 8s ease-in-out infinite alternate;
  animation-delay: .2s;
}
.ohm-shape--right{
  right: clamp(-10px, 5vw, 60px);
  bottom: clamp(-10px, 8vh, 60px);
  width: clamp(200px, 30vw, 460px);
  animation: ohm-float-2 10s ease-in-out infinite alternate;
  animation-delay: .35s;
}
body.ohm-loaded .ohm-shape{
  opacity: 1; transform: translateY(0) scale(1);
  transition: transform .9s cubic-bezier(.2,.8,.2,1), opacity .6s ease;
}
@keyframes ohm-float-1 { from { transform: translateY(-6px) } to { transform: translateY(6px) } }
@keyframes ohm-float-2 { from { transform: translateY(8px) }  to { transform: translateY(-8px)} }
@media (prefers-reduced-motion: reduce){ .ohm-shape{ animation: none !important; } }

/* Make hero text fully visible and sized from your modular scale */
#slider .slider-caption .ohm-hero-title{
  color: #fff;
  font-size: clamp(var(--step-3), 6.5vw, var(--step-7));
  line-height: 1.05; letter-spacing: .2px; margin: 0 0 .75rem;
}
#slider .slider-caption .ohm-hero-sub{
  color: #dde2de; opacity: .98;
  font-size: clamp(var(--step-0), 2.2vw, var(--step-2));
  margin: 0;
}

/* CTA should NOT stretch full width */
.ohm-cta{
  display: inline-flex;
  width: auto; max-width: max-content;
  white-space: nowrap;
  margin-inline: auto; /* center within caption */
  gap: .6rem; padding: .85rem 1.4rem;
  border-radius: 999px;
  font-size: var(--step-0);
  color:#05150E; background: #38f08a;
  box-shadow: 0 .6rem 1.5rem rgba(0,0,0,.25);
  position: relative; overflow: hidden;
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s;
}
.ohm-cta__icon{ width: 1.35em; height: 1.35em; display:inline-grid; place-items:center; border-radius:50%; background: rgba(0,0,0,.07); transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.ohm-cta__icon img{ width: 80%; height: 100%; object-fit: contain; }
.ohm-cta::before{ content:""; position:absolute; inset:-200%; background: radial-gradient(60% 60% at 50% 50%, rgba(255,255,255,.25), transparent 60%); transform: translateX(-60%); transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.ohm-cta:hover{ transform: translateY(-2px); box-shadow: 0 1rem 2rem rgba(0,0,0,.28); }
.ohm-cta:hover::before{ transform: translateX(20%); }
.ohm-cta:hover .ohm-cta__icon{ transform: rotate(20deg) scale(1.05); }

/* ========== GLASS HEADER over hero, SOLID after scroll ========== */

/* Glass look when header is over the hero (header has .dark class) */
#header.transparent-header.dark {

  -webkit-backdrop-filter: saturate(140%) blur(12px);
          backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.18);
  box-shadow: none;
}
#header.transparent-header.dark #primary-menu .menu-link { color: #fff; }
#header.transparent-header.dark .menu-link:hover { color: #C8F7E6; }

/* Solid header when page is below hero */
#header.header-solid{
  background:#fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  border-bottom: 1px solid rgba(0,0,0,.05);
}
#header.header-solid #primary-menu .menu-link { color: #1C1C1C; }
#header.header-solid .menu-link:hover { color: #0FAE6C; }

/* Make sure there are no stray divider lines */
@media (min-width:992px){
  .full-header #logo,
  .full-header .primary-menu .menu-container{ border-right:0; }
}

/* ========== CTA CLEANUP ========== */
.ohm-cta__icon{ background: transparent; }   /* remove the grey chip bg */
.ohm-cta__label{ font-weight: 700; }         /* bold CTA text */

/* ========== HERO TEXT COLOR ========== */
#slider .slider-caption .ohm-hero-sub{
  color: #fff;              /* truly white */
  opacity: 1;
}

/* ========== MORE ACTIVE SHAPE MOTION ========== */
.ohm-shape{
  /* slightly bigger start so the entrance is more noticeable */
  transform: translate3d(0,30px,0) scale(.96);
}
@keyframes ohm-float-1 {
  0%   { transform: translate3d(-4px,-14px,0) }
  100% { transform: translate3d( 6px, 14px,0) }
}
@keyframes ohm-float-2 {
  0%   { transform: translate3d( 5px, 16px,0) }
  100% { transform: translate3d(-5px,-16px,0) }
}

/* Stronger entrance easing */
body.ohm-loaded .ohm-shape{
  transition: transform .9s cubic-bezier(.16,.84,.44,1), opacity .6s ease;
}

/* ========== 60% BIGGER SHAPES ON LAPTOPS ========== */
@media (min-width: 1024px) and (max-width: 1440px){
  .ohm-shape--left  { transform: translate3d(0,30px,0) scale(1.6); }
  .ohm-shape--right { transform: translate3d(0,30px,0) scale(1.6); }
  body.ohm-loaded .ohm-shape--left,
  body.ohm-loaded .ohm-shape--right { transform: translate3d(0,0,0) scale(1.6); }
}

/* Donâ€™t overdo motion for those who prefer less */
@media (prefers-reduced-motion: reduce){
  .ohm-shape{ animation:none !important; transform:none !important; }

/* =========================
   HEADER: Glass over hero, Solid after scroll
   ========================= */

/* Glassmorphism when header is over the hero (header has .dark) */
#header.transparent-header.dark,
#header.transparent-header.dark #header-wrap{
  background: rgba(28,28,28,0.25) !important;       /* frosted glass */
  -webkit-backdrop-filter: saturate(140%) blur(12px);
          backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.18) !important;
  box-shadow: none !important;
}

/* Links + logo color while glass (over hero) */
#header.transparent-header.dark #primary-menu .menu-link,
#header.transparent-header.dark .menu-link > div{ color:#FFFFFF !important; }
#header.transparent-header.dark #logo img{
  /* If the theme swap doesn't fire instantly, force a white look */
  filter: brightness(0) invert(1);
}

/* Solid header below hero */
#header.header-solid,
#header.header-solid #header-wrap{
  background:#FFFFFF !important;
  border-bottom: 1px solid rgba(0,0,0,0.05) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08) !important;
}
#header.header-solid #primary-menu .menu-link,
#header.header-solid .menu-link > div{ color:#1C1C1C !important; }
#header.header-solid #logo img{ filter:none; }

/* Remove any leftover dividers */
@media (min-width:992px){
  .full-header #logo,
  .full-header .primary-menu .menu-container{ border-right:0; }
}

/* =========================
   CTA cleanup
   ========================= */
.ohm-cta__icon{ background: transparent !important; } /* remove gray chip */
.ohm-cta__label{ font-weight: 700; }                  /* bold label */

/* =========================
   Hero body copy truly white
   ========================= */
#slider .slider-caption .ohm-hero-sub{
  color:#FFFFFF !important;
  opacity:1 !important;
}

/* =========================
   More active shapes + 60% bigger on laptops
   ========================= */
.ohm-shape{
  transform: translate3d(0,30px,0) scale(.96);
}
@keyframes ohm-float-1 {
  0%   { transform: translate3d(-4px,-14px,0) }
  100% { transform: translate3d( 6px, 14px,0) }
}
@keyframes ohm-float-2 {
  0%   { transform: translate3d( 5px, 16px,0) }
  100% { transform: translate3d(-5px,-16px,0) }
}
body.ohm-loaded .ohm-shape{
  transition: transform .9s cubic-bezier(.16,.84,.44,1), opacity .6s ease;
}

/* 60% bigger on typical laptop widths */
@media (min-width:1024px) and (max-width:1440px){
  .ohm-shape--left,
  .ohm-shape--right{ transform: translate3d(0,30px,0) scale(1.6); }
  body.ohm-loaded .ohm-shape--left,
  body.ohm-loaded .ohm-shape--right{ transform: translate3d(0,0,0) scale(1.6); }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .ohm-shape{ animation:none !important; transform:none !important; }
}

/* Compute header height -> hero sits under it (bg visible), content pushed down */
:root { --header-h: 80px; }                 /* sensible default */
@media (min-width: 992px){ :root { --header-h: 100px; } }

.ohm-hero{ margin-top: calc(-1 * var(--header-h)); }           /* pull hero up under header */
.ohm-hero .slider-inner{ padding-top: calc(var(--header-h) + 4rem); }
/* still keep your existing min-height rules for full-bleed look */


/* === Overrides for this build === */

/* (a) Back-to-top button bottom-left */
#gotoTop{
  left: 18px;
  right: auto;
  bottom: 18px;
  border-radius: 999px;
}

/* (c) Keep header transparent always (no white header on scroll) */
#header.transparent-header.dark,
#header.transparent-header.dark #header-wrap{
  background: transparent !important;
  box-shadow: none !important;
}

/* Better contrast for transparent header over hero */
#header.transparent-header.dark .primary-menu .menu-link{ color:#fff; }
#header.transparent-header.dark #logo img{ filter: brightness(0) invert(1); }

/* Testimonials parallax brightness */
#section-testimonials{ background-size: cover; }

/* ======== HERO SHAPES: make sure they show & float behind text ======== */
.ohm-hero { position: relative; overflow: visible; }
.ohm-hero .slider-inner { position: relative; z-index: 2; }      /* text above shapes */
.ohm-shape { z-index: 1; pointer-events: none; }                  /* shapes below text */

/* If anything prevents the reveal, force-visible as a fallback */
@supports not (backdrop-filter: blur(0)) {
  body.ohm-loaded .ohm-shape { opacity: 1; transform: translateY(0) scale(1); }
}

/* ======== HEADER: desktop = transparent + white content; mobile = white bar ======== */

/* Desktop only */
@media (min-width: 992px){
  /* kill any desktop header background/border/shadow/glass */
  #header.transparent-header.dark,
  #header.transparent-header.dark #header-wrap{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
            backdrop-filter: none !important;
  }

  /* make nav links & logo WHITE on desktop */
  #header.transparent-header.dark .primary-menu .menu-link,
  #header.transparent-header.dark .menu-link > div { color: #FFFFFF !important; }

  /* force light logo treatment on desktop transparent */
  #header.transparent-header.dark #logo img { filter: brightness(0) invert(1); }

  /* desktop hamburger should be white and have no box */
  #primary-menu-trigger { background: transparent !important; border: 0 !important; box-shadow: none !important; color: #FFFFFF; }
}

/* Mobile only (≤ 991.98px): keep white bar + dark content */
@media (max-width: 991.98px){
  #header,
  #header #header-wrap{
    background: #FFFFFF !important;
    border-bottom: 1px solid rgba(0,0,0,0.08) !important;
    box-shadow: none !important;
  }

  /* mobile links & logo back to dark */
  #header .primary-menu .menu-link,
  #header .menu-link > div { color: #1C1C1C !important; }
  #header #logo img { filter: none !important; }

  /* burger: no square; color follows dark text */
  #primary-menu-trigger { background: transparent !important; border: 0 !important; box-shadow: none !important; color: #1C1C1C; }
}

/* Make the SVG burger lines follow the element color (white on desktop, dark on mobile) */
#primary-menu-trigger .svg-trigger path { stroke: currentColor !important; }

/* Optional: smoother hero shapes on load even if JS is late */
body.ohm-loaded .ohm-shape {
  transition: transform .9s cubic-bezier(.2,.8,.2,1), opacity .6s ease;
}

/* === Logo swap by breakpoint === */
#logo .logo--desktop{ display:none; height:28px; }
#logo .logo--mobile{  display:block; height:28px; }

@media (min-width: 992px){
  #logo .logo--desktop{ display:block; }
  #logo .logo--mobile{  display:none; }
}

/* === Desktop header: transparent background, white logo & links === */
@media (min-width: 992px){
  /* remove any desktop header background/border/shadow/glass */
  #header.transparent-header.dark,
  #header.transparent-header.dark #header-wrap{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
            backdrop-filter: none !important;
  }

  /* nav link text white on desktop */
  #header.transparent-header.dark .primary-menu .menu-link,
  #header.transparent-header.dark .menu-link > div{
    color:#FFFFFF !important;
  }

  /* burger white, no square */
  #primary-menu-trigger{
    background: transparent !important; border: 0 !important; box-shadow: none !important;
    color:#FFFFFF !important;
  }
  #primary-menu-trigger .svg-trigger path{ stroke: currentColor !important; }
}

/* === Mobile header: keep white bg; logo + links dark === */
@media (max-width: 991.98px){
  /* header stays white (theme default); ensure contrast */
  #header, #header #header-wrap{
    background:#FFFFFF !important;
    border-bottom:1px solid rgba(0,0,0,0.08) !important;
    box-shadow:none !important;
  }

  /* nav link text dark on mobile */
  #header .primary-menu .menu-link,
  #header .menu-link > div{
    color:#1C1C1C !important;
  }

  /* mobile burger dark; remove square if any */
  #primary-menu-trigger{
    background: transparent !important; border:0 !important; box-shadow:none !important;
    color:#1C1C1C !important;
  }
  #primary-menu-trigger .svg-trigger path{ stroke: currentColor !important; }
}

/* --- SINGLE SOURCE OF TRUTH FOR LOGO SWAP --- */
#logo .logo--desktop{ display:none; height:28px; }   /* mobile first: hide white logo */
#logo .logo--mobile{  display:block; height:28px; }  /* show dark logo */

@media (min-width: 992px){
  #logo .logo--desktop{ display:block; }             /* desktop: show white logo */
  #logo .logo--mobile{  display:none; }              /* desktop: hide dark logo */
}

/* --- DESKTOP HEADER (transparent over hero): white logo & links --- */
@media (min-width: 992px){
  #header.transparent-header.dark,
  #header.transparent-header.dark #header-wrap{
    background: transparent !important; border: 0 !important; box-shadow: none !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  }
  #header.transparent-header.dark .primary-menu .menu-link,
  #header.transparent-header.dark .menu-link > div{ color:#FFFFFF !important; }
  #header.transparent-header.dark #logo img{ filter: brightness(0) invert(1); } /* force white if needed */
  #primary-menu-trigger{ color:#FFFFFF !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
  #primary-menu-trigger .svg-trigger path{ stroke: currentColor !important; }
}

/* --- MOBILE HEADER (white bar): dark text/logo (#1C1C1C) --- */
@media (max-width: 991.98px){
  #header, #header #header-wrap{
    background:#FFFFFF !important; border-bottom:1px solid rgba(0,0,0,0.08) !important; box-shadow:none !important;
  }
  #header .primary-menu .menu-link,
  #header .menu-link > div{ color:#1C1C1C !important; }
  #header #logo img{ filter: none !important; }      /* ensure original dark logo */
  #primary-menu-trigger{ color:#1C1C1C !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
  #primary-menu-trigger .svg-trigger path{ stroke: currentColor !important; }
}

/* --- Purple bottom glow for the consult section --- */
.ohm-consult-v2 {
  /* nothing else needed here; just keeping scope */
}
.ohm-consult-v2__glow-bottom{
  position: absolute;
  inset: auto 0 0 0;              /* stick to bottom */
  height: 60%;
  pointer-events: none;
  z-index: 0;
  /* soft purple light rising up from the bottom */
  background:
    radial-gradient(120% 70% at 50% 120%,
      rgba(142, 45, 226, .70),    /* #8E2DE2 */
      rgba(142, 45, 226, .24) 35%,
      rgba(142, 45, 226, 0) 70%);
  filter: blur(34px);
  opacity: .9;
}

/* --- Faster float for the consult visuals (left/right) --- */
@keyframes ohm-float-fast-1 { from { transform: translateY(-10px) rotate(-2deg) } to { transform: translateY(10px) rotate(-2deg) } }
@keyframes ohm-float-fast-2 { from { transform: translateY(12px)  rotate(4deg) }  to { transform: translateY(-12px) rotate(4deg) } }

.ohm-consult-v2__visual--left{
  animation: ohm-float-fast-1 5s ease-in-out infinite alternate;
}
.ohm-consult-v2__visual--right{
  animation: ohm-float-fast-2 6s ease-in-out infinite alternate;
}

/* --- Make the hero shapes move faster to match --- */
@media (prefers-reduced-motion: no-preference){
  .ohm-shape--left  { animation-duration: 5s !important; }  /* was ~8s */
  .ohm-shape--right { animation-duration: 6s !important; }  /* was ~10s */
}

/* If any earlier CSS set initial transforms, keep the motion crisp */
.ohm-consult-v2__visual{ will-change: transform; }

/* Services body copy: lock to 16px on phones */
@media (max-width: 680px){
  .ohm-acc-text.prose,
  .ohm-acc-text.prose p,
  .ohm-acc-text.prose li{
    font-size: 16px !important;
    line-height: 1.6;
  }
}
