:root {
  --bv-blue: #0A66FF;
  --bv-blue-hover: #084FC7;
  --bv-navy: #081320;
  --bv-text: #182433;
  --bv-muted: #68707B;
  --bv-silver: #C0C4CC;
  --bv-border: #E2E7EC;
  --bv-light: #F5F8FC;
  --bv-white: #FFFFFF;

  --bv-radius-sm: 10px;
  --bv-radius-md: 16px;
  --bv-radius-lg: 24px;

  --bv-shadow-sm: 0 8px 24px rgba(8, 19, 32, .07);
  --bv-shadow-md: 0 18px 48px rgba(8, 19, 32, .11);

  --bv-container: 1200px;
  --bv-section-space: 96px;
}

html {
  scroll-behavior: smooth;
}

body.bv-site {
  color: var(--bv-text);
  background: var(--bv-white);
  font-family: "Inter", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.bv-site h1,
body.bv-site h2,
body.bv-site h3,
body.bv-site h4,
body.bv-site h5,
body.bv-site h6 {
  color: var(--bv-navy);
  font-family: "Montserrat", Arial, sans-serif;
  letter-spacing: -0.025em;
}

body.bv-site p,
body.bv-site li {
  color: var(--bv-muted);
  line-height: 1.7;
}

body.bv-site a {
  transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease;
}

/* Shared layout */
.bv-container {
  width: min(calc(100% - 40px), var(--bv-container));
  margin-inline: auto;
}

.bv-section {
  padding-block: var(--bv-section-space);
}

.bv-section--light {
  background: var(--bv-light);
}

.bv-section--dark {
  background: var(--bv-navy);
  color: var(--bv-white);
}

/* Eyebrow / labels */
.bv-eyebrow {
  color: var(--bv-blue);
  font-family: "Inter", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* Buttons */
body.bv-site .bv-btn,
body.bv-site .elementor-button.bv-btn {
  min-height: 50px;
  padding: 13px 22px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-family: "Inter", Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}

body.bv-site .bv-btn--primary,
body.bv-site .elementor-button.bv-btn--primary {
  color: var(--bv-white);
  background: var(--bv-blue);
  border: 1px solid var(--bv-blue);
}

body.bv-site .bv-btn--primary:hover,
body.bv-site .elementor-button.bv-btn--primary:hover {
  color: var(--bv-white);
  background: var(--bv-blue-hover);
  border-color: var(--bv-blue-hover);
  transform: translateY(-1px);
}

body.bv-site .bv-btn--outline {
  color: var(--bv-navy);
  background: transparent;
  border: 1px solid var(--bv-border);
}

body.bv-site .bv-btn--outline:hover {
  color: var(--bv-blue);
  border-color: var(--bv-blue);
}

/* Cards */
.bv-card {
  background: var(--bv-white);
  border: 1px solid var(--bv-border);
  border-radius: var(--bv-radius-md);
  box-shadow: var(--bv-shadow-sm);
}

/* Header */
.bv-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(226,231,236,.9);
  backdrop-filter: blur(10px);
}

.bv-header .elementor-nav-menu a,
.bv-header .menu-item > a {
  color: var(--bv-navy);
  font-family: "Inter", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
}

.bv-header .elementor-nav-menu a:hover,
.bv-header .elementor-nav-menu .elementor-item-active,
.bv-header .current-menu-item > a {
  color: var(--bv-blue);
}

/* Footer */
.bv-footer {
  background: var(--bv-navy);
  color: var(--bv-white);
}

.bv-footer h2,
.bv-footer h3,
.bv-footer h4,
.bv-footer strong {
  color: var(--bv-white) !important;
}

.bv-footer p,
.bv-footer li,
.bv-footer a {
  color: rgba(255,255,255,.72);
}

.bv-footer a:hover {
  color: var(--bv-white);
}

.bv-footer__logo-card {
  display: inline-flex;
  padding: 12px 16px;
  border-radius: 10px;
  background: var(--bv-white);
}

.bv-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.12);
}

/* Utility classes */
.bv-text-blue { color: var(--bv-blue) !important; }
.bv-text-muted { color: var(--bv-muted) !important; }
.bv-bg-light { background: var(--bv-light) !important; }
.bv-bg-dark { background: var(--bv-navy) !important; }
.bv-border { border-color: var(--bv-border) !important; }

/* Elementor defaults cleanup */
body.bv-site .elementor-widget-text-editor p:last-child {
  margin-bottom: 0;
}

body.bv-site .elementor-widget-heading .elementor-heading-title {
  font-family: "Montserrat", Arial, sans-serif;
}

@media (max-width: 1024px) {
  :root {
    --bv-section-space: 78px;
  }

  .bv-container {
    width: min(calc(100% - 36px), var(--bv-container));
  }
}

@media (max-width: 767px) {
  :root {
    --bv-section-space: 62px;
  }

  .bv-container {
    width: min(calc(100% - 28px), var(--bv-container));
  }

  body.bv-site .bv-btn,
  body.bv-site .elementor-button.bv-btn {
    min-height: 48px;
  }
}

/* =========================================
   BLUE VOLT — PREMIUM HERO
   ========================================= */

.bv-hero {
  /* Reemplazar estas URLs cuando subas las imágenes definitivas */
  --bv-hero-image: url("https://wallpaperaccess.com/full/1859246.jpg");
  --bv-hero-image-mobile: var(--bv-hero-image);

  position: relative;
  min-height: clamp(620px, 74vh, 760px);
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;

  background-color: var(--bv-navy);
  background-image: var(--bv-hero-image);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* Imagen en una capa independiente para permitir slow zoom */
.bv-hero::before {
  content: "";
  position: absolute;
  inset: -3%;
  z-index: -3;

  background-image: var(--bv-hero-image);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;

  transform: scale(1.03);
  will-change: transform;
  animation: bvHeroZoom 18s ease-in-out infinite alternate;
}

/* Overlay oscuro para mantener legibilidad */
.bv-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: -2;

  background:
    linear-gradient(
      90deg,
      rgba(8, 19, 32, .97) 0%,
      rgba(8, 19, 32, .88) 33%,
      rgba(8, 19, 32, .55) 58%,
      rgba(8, 19, 32, .12) 100%
    );
}

/* Glow azul ambiental */
.bv-hero::after {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  right: -180px;
  bottom: -280px;
  z-index: -1;

  background: rgba(10, 102, 255, .22);
  filter: blur(100px);
  border-radius: 50%;
  opacity: .65;
  pointer-events: none;

  animation: bvHeroGlow 6s ease-in-out infinite alternate;
}

.bv-hero__inner {
  position: relative;
  z-index: 2;

  width: min(calc(100% - 64px), var(--bv-container));
  margin-inline: auto;
}

.bv-hero__content {
  max-width: 620px;
  padding: 105px 0 95px;

  animation: bvHeroContent .8s ease both;
}

/* Eyebrow */
.bv-hero .bv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  margin: 0 0 18px;

  color: rgba(255, 255, 255, .76);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .14em;

  animation: bvEyebrowReveal .7s .12s ease both;
}

/* Línea azul animada */
.bv-hero .bv-eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  flex: 0 0 auto;

  background: linear-gradient(
    90deg,
    var(--bv-blue),
    #58A0FF
  );

  box-shadow: 0 0 12px rgba(10, 102, 255, .38);

  transform-origin: left center;
  animation: bvLineReveal .8s .22s ease both;
}

/* H1: menos compresión para evitar letras pegadas */
.bv-hero__title {
  max-width: 590px;
  margin: 0;

  color: #FFFFFF !important;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: clamp(52px, 5.3vw, 76px);
  font-weight: 800;
  line-height: 1.03;
  letter-spacing: -0.015em;

  text-wrap: balance;
}

.bv-hero__text {
  max-width: 520px;
  margin: 25px 0 34px;

  color: rgba(255, 255, 255, .80) !important;
  font-size: 18px;
  line-height: 1.7;
}

.bv-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}

/* CTA principal */
.bv-hero .bv-btn--primary {
  position: relative;
  overflow: hidden;
  isolation: isolate;

  box-shadow: 0 12px 35px rgba(10, 102, 255, .28);
}

.bv-hero .bv-btn--primary:hover {
  box-shadow: 0 16px 42px rgba(10, 102, 255, .38);
}

/* Shimmer sólo al hover */
.bv-hero .bv-btn--primary::after {
  content: "";
  position: absolute;
  top: -60%;
  left: -75%;
  z-index: 1;

  width: 42%;
  height: 220%;

  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, .28),
    transparent
  );

  transform: rotate(18deg);
  transition: left .65s ease;
  pointer-events: none;
}

.bv-hero .bv-btn--primary:hover::after {
  left: 135%;
}

/* CTA secundario */
.bv-hero__call {
  color: #FFFFFF;
  background: rgba(8, 19, 32, .28);
  border: 1px solid rgba(255, 255, 255, .56);
  backdrop-filter: blur(8px);
}

.bv-hero__call:hover {
  color: #FFFFFF;
  background: rgba(255, 255, 255, .12);
  border-color: #FFFFFF;
  transform: translateY(-2px);
}


/* =========================================
   HERO ANIMATIONS
   ========================================= */

@keyframes bvHeroZoom {
  from {
    transform: scale(1.03);
  }

  to {
    transform: scale(1.09);
  }
}

@keyframes bvHeroGlow {
  from {
    opacity: .50;
    transform: scale(.95);
  }

  to {
    opacity: .82;
    transform: scale(1.08);
  }
}

@keyframes bvHeroContent {
  from {
    opacity: 0;
    transform: translateY(18px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes bvEyebrowReveal {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes bvLineReveal {
  from {
    opacity: 0;
    transform: scaleX(0);
  }

  to {
    opacity: 1;
    transform: scaleX(1);
  }
}


/* =========================================
   HERO — TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-hero {
    min-height: 620px;
  }

  .bv-hero__inner {
    width: min(calc(100% - 48px), var(--bv-container));
  }

  .bv-hero__content {
    max-width: 590px;
    padding: 90px 0 80px;
  }

  .bv-hero__title {
    font-size: clamp(48px, 7vw, 64px);
  }

  .bv-hero__text {
    max-width: 500px;
  }
}


/* =========================================
   HERO — MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-hero {
    min-height: 680px;
    align-items: flex-end;

    background-image: var(--bv-hero-image-mobile);
    background-position: center;
  }

  .bv-hero::before {
    background-image: var(--bv-hero-image-mobile);
    background-position: center;
  }

  .bv-hero__overlay {
    background:
      linear-gradient(
        180deg,
        rgba(8, 19, 32, .10) 0%,
        rgba(8, 19, 32, .35) 30%,
        rgba(8, 19, 32, .84) 60%,
        rgba(8, 19, 32, .98) 100%
      );
  }

  .bv-hero__inner {
    width: calc(100% - 40px);
  }

  .bv-hero__content {
    max-width: 100%;
    padding: 145px 0 48px;
  }

  .bv-hero .bv-eyebrow {
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: .12em;
  }

  .bv-hero .bv-eyebrow::before {
    width: 28px;
  }

  .bv-hero__title {
    max-width: 100%;
    font-size: clamp(38px, 11vw, 46px);
    line-height: 1.06;
    letter-spacing: -0.01em;
  }

  .bv-hero__text {
    max-width: 100%;
    margin: 20px 0 27px;
    font-size: 16px;
    line-height: 1.65;
  }

  .bv-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .bv-hero__actions .bv-btn {
    width: 100%;
  }

  .bv-hero::after {
    width: 340px;
    height: 340px;
    right: -180px;
    bottom: -100px;
    filter: blur(80px);
  }
}


/* =========================================
   REDUCED MOTION / ACCESSIBILITY
   ========================================= */

@media (prefers-reduced-motion: reduce) {

  .bv-hero::before,
  .bv-hero::after,
  .bv-hero__content,
  .bv-hero .bv-eyebrow,
  .bv-hero .bv-eyebrow::before {
    animation: none !important;
  }

  .bv-hero .bv-btn--primary::after {
    display: none;
  }
}

/* =========================================
   BLUE VOLT — TRUST BAR
   ========================================= */

.bv-trust {
  position: relative;
  z-index: 5;

  background: rgba(255, 255, 255, .98);
  border-bottom: 1px solid var(--bv-border);

  box-shadow:
    0 10px 30px rgba(8, 19, 32, .045);
}

.bv-trust__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));

  min-height: 96px;
}

.bv-trust__item {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: 11px;
  padding: 20px 14px;

  color: var(--bv-navy);

  transition:
    background-color .25s ease,
    transform .25s ease;
}

/* Separadores */
.bv-trust__item:not(:last-child)::after {
  content: "";
  position: absolute;

  top: 25%;
  right: 0;

  width: 1px;
  height: 50%;

  background: var(--bv-border);
}

/* Icono circular */
.bv-trust__icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;

  display: grid;
  place-items: center;

  color: var(--bv-blue);

  border: 1px solid rgba(10, 102, 255, .26);
  border-radius: 50%;

  background:
    linear-gradient(
      145deg,
      rgba(10, 102, 255, .06),
      rgba(255, 255, 255, .9)
    );

  font-size: 17px;
  font-weight: 800;

  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.bv-trust__text {
  color: var(--bv-navy);

  font-family: "Inter", Arial, sans-serif;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
}

/* Hover muy ligero */
.bv-trust__item:hover {
  background: var(--bv-light);
}

.bv-trust__item:hover .bv-trust__icon {
  transform: translateY(-2px);

  border-color: rgba(10, 102, 255, .5);

  box-shadow:
    0 8px 22px rgba(10, 102, 255, .12);
}


/* Entrada */
.bv-trust__item {
  opacity: 0;
  transform: translateY(8px);

  animation: bvTrustReveal .5s ease forwards;
}

.bv-trust__item:nth-child(1) { animation-delay: .05s; }
.bv-trust__item:nth-child(2) { animation-delay: .10s; }
.bv-trust__item:nth-child(3) { animation-delay: .15s; }
.bv-trust__item:nth-child(4) { animation-delay: .20s; }
.bv-trust__item:nth-child(5) { animation-delay: .25s; }
.bv-trust__item:nth-child(6) { animation-delay: .30s; }

@keyframes bvTrustReveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* Tablet */

@media (max-width: 1024px) {

  .bv-trust__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .bv-trust__item {
    min-height: 82px;
  }

  .bv-trust__item:nth-child(3)::after,
  .bv-trust__item:nth-child(6)::after {
    display: none;
  }

  .bv-trust__item:nth-child(-n+3) {
    border-bottom: 1px solid var(--bv-border);
  }
}


/* Mobile */

@media (max-width: 767px) {

  .bv-trust {
    box-shadow: none;
  }

  .bv-trust__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .bv-trust__item {
    justify-content: flex-start;

    min-height: 76px;
    padding: 15px 12px;
  }

  .bv-trust__item:nth-child(odd)::after {
    display: block;
  }

  .bv-trust__item:nth-child(even)::after {
    display: none;
  }

  .bv-trust__item:nth-child(-n+4) {
    border-bottom: 1px solid var(--bv-border);
  }

  .bv-trust__icon {
    width: 34px;
    height: 34px;
    flex-basis: 34px;

    font-size: 15px;
  }

  .bv-trust__text {
    font-size: 12px;
  }
}


/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

  .bv-trust__item {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/* =========================================
   BLUE VOLT — CUSTOM SOLUTIONS / PROCESS
   ========================================= */

.bv-process {
  position: relative;
  overflow: hidden;

  padding: 105px 0 110px;

  background:
    linear-gradient(
      180deg,
      #F8FAFD 0%,
      #FFFFFF 100%
    );

  border-top: 1px solid rgba(226,231,236,.75);
}


/* Heading */

.bv-process__heading {
  max-width: 800px;

  margin: 0 auto 65px;

  text-align: center;
}

.bv-process .bv-eyebrow {
  margin: 0 0 12px;
}

.bv-process__title {
  margin: 0;

  color: var(--bv-navy);

  font-family: "Montserrat", Arial, sans-serif;
  font-size: clamp(38px, 4.4vw, 58px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.bv-process__title span {
  color: var(--bv-blue);
}

.bv-process__intro {
  max-width: 720px;

  margin: 20px auto 0;

  color: var(--bv-muted);

  font-size: 16px;
  line-height: 1.7;
}


/* Track */

.bv-process__track {
  position: relative;

  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));

  gap: 18px;
}


/* Connector line */

.bv-process__track::before {
  content: "";

  position: absolute;

  top: 68px;
  left: 9%;
  right: 9%;

  height: 1px;

  background:
    linear-gradient(
      90deg,
      rgba(10,102,255,.12),
      rgba(10,102,255,.48),
      rgba(10,102,255,.12)
    );

  z-index: 0;
}


/* moving highlight on connector */

.bv-process__track::after {
  content: "";

  position: absolute;

  top: 67px;
  left: 8%;

  width: 12%;
  height: 3px;

  border-radius: 10px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(10,102,255,.70),
      transparent
    );

  filter: blur(.3px);

  opacity: .65;

  z-index: 0;

  animation:
    bvProcessLine 7s ease-in-out infinite;
}


/* Individual step */

.bv-process__step {
  position: relative;
  z-index: 1;

  margin: 0;
  padding: 0 10px;

  text-align: center;
}


/* Number */

.bv-process__number {
  position: absolute;

  top: -8px;
  left: calc(50% - 48px);

  min-width: 27px;
  height: 27px;

  display: grid;
  place-items: center;

  color: #FFFFFF;

  background: var(--bv-blue);

  border:
    3px solid #FFFFFF;

  border-radius: 50%;

  box-shadow:
    0 5px 15px rgba(10,102,255,.22);

  font-family: "Inter", Arial, sans-serif;
  font-size: 9px;
  font-weight: 800;

  z-index: 3;
}


/* Icon circle */

.bv-process__icon {
  width: 84px;
  height: 84px;

  display: grid;
  place-items: center;

  margin: 0 auto 25px;

  color: var(--bv-blue);

  background:
    linear-gradient(
      145deg,
      #FFFFFF,
      #F2F7FF
    );

  border:
    1px solid rgba(10,102,255,.26);

  border-radius: 50%;

  box-shadow:
    0 13px 35px rgba(8,19,32,.06);

  transition:
    color .3s ease,
    background .3s ease,
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease;
}

.bv-process__icon svg {
  width: 34px;
  height: 34px;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Copy */

.bv-process__step h3 {
  max-width: 190px;

  margin:
    0 auto 11px;

  color: var(--bv-navy);

  font-family: "Montserrat", Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.bv-process__step p {
  max-width: 190px;

  margin: 0 auto;

  color: var(--bv-muted);

  font-size: 13px;
  line-height: 1.65;
}


/* Hover */

.bv-process__step:hover
.bv-process__icon {

  color: #FFFFFF;

  background:
    linear-gradient(
      145deg,
      var(--bv-blue),
      #2C7EFF
    );

  border-color: var(--bv-blue);

  transform:
    translateY(-6px)
    scale(1.03);

  box-shadow:
    0 18px 42px rgba(10,102,255,.20);
}

.bv-process__step:hover
.bv-process__number {

  box-shadow:
    0 8px 22px rgba(10,102,255,.32);
}


/* subtle background light */

.bv-process::after {
  content: "";

  position: absolute;

  width: 500px;
  height: 500px;

  left: 50%;
  top: -330px;

  transform:
    translateX(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.055);

  filter: blur(75px);

  pointer-events: none;
}


/* Connector animation */

@keyframes bvProcessLine {

  0% {
    left: 6%;
    opacity: 0;
  }

  12% {
    opacity: .65;
  }

  50% {
    opacity: .65;
  }

  88% {
    opacity: .65;
  }

  100% {
    left: 82%;
    opacity: 0;
  }
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-process {
    padding: 85px 0;
  }

  .bv-process__heading {
    margin-bottom: 55px;
  }

  .bv-process__track {
    grid-template-columns:
      repeat(3, 1fr);

    gap:
      48px 24px;
  }

  .bv-process__track::before,
  .bv-process__track::after {
    display: none;
  }

  .bv-process__step:nth-child(4),
  .bv-process__step:nth-child(5) {
    transform: translateX(50%);
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-process {
    padding: 70px 0 75px;
  }

  .bv-process__heading {
    margin-bottom: 45px;

    text-align: left;
  }

  .bv-process__title {
    font-size: 36px;
  }

  .bv-process__intro {
    margin-top: 17px;

    font-size: 16px;
  }


  .bv-process__track {
    display: flex;
    flex-direction: column;

    gap: 0;
  }


  /* vertical timeline */
  .bv-process__track::before {
    display: block;

    top: 45px;
    bottom: 45px;
    left: 39px;
    right: auto;

    width: 1px;
    height: auto;

    background:
      linear-gradient(
        180deg,
        rgba(10,102,255,.08),
        rgba(10,102,255,.40),
        rgba(10,102,255,.08)
      );
  }

  .bv-process__track::after {
    display: none;
  }


  .bv-process__step,
  .bv-process__step:nth-child(4),
  .bv-process__step:nth-child(5) {

    display: grid;

    grid-template-columns:
      80px 1fr;

    column-gap: 18px;

    min-height: 150px;

    padding:
      0 0 30px;

    text-align: left;

    transform: none;
  }


  .bv-process__icon {

    grid-column: 1;
    grid-row: 1 / 4;

    width: 70px;
    height: 70px;

    margin: 0;

    background: #FFFFFF;
  }


  .bv-process__icon svg {
    width: 29px;
    height: 29px;
  }


  .bv-process__number {
    top: -7px;
    left: 50px;
  }


  .bv-process__step h3 {

    grid-column: 2;

    max-width: none;

    margin:
      6px 0 8px;

    font-size: 16px;
  }


  .bv-process__step p {

    grid-column: 2;

    max-width: none;

    margin: 0;

    font-size: 13px;
  }
}


/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

  .bv-process__track::after {
    animation: none;
  }

  .bv-process__icon {
    transition: none;
  }
}



/* =========================================
   BLUE VOLT — WHY BLUE VOLT
   ========================================= */

.bv-why {
  position: relative;
  overflow: hidden;

  padding: 110px 0;

  background: #FFFFFF;
}

.bv-why__grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 80px;
  align-items: center;
}


/* Content */

.bv-why__content {
  max-width: 570px;
}

.bv-why .bv-eyebrow {
  margin: 0 0 17px;
}

.bv-why__title {
  margin: 0 0 28px;

  color: var(--bv-navy);
  font-family: "Montserrat", Arial, sans-serif;
  font-size: clamp(40px, 4.2vw, 58px);
  font-weight: 800;
  line-height: 1.07;
  letter-spacing: -0.02em;
}

.bv-why__title span {
  color: var(--bv-navy);
}

.bv-why__text {
  max-width: 540px;

  margin: 0 0 17px;

  color: var(--bv-muted);
  font-size: 16px;
  line-height: 1.75;
}


/* Strong statement */

.bv-why__statement {
  position: relative;

  display: flex;
  gap: 18px;
  align-items: stretch;

  margin-top: 30px;
  padding: 20px 24px;

  background:
    linear-gradient(
      135deg,
      rgba(10,102,255,.055),
      rgba(245,248,252,.85)
    );

  border: 1px solid rgba(10,102,255,.10);
  border-radius: 12px;
}

.bv-why__statement-line {
  width: 3px;
  flex: 0 0 3px;

  border-radius: 10px;

  background:
    linear-gradient(
      180deg,
      var(--bv-blue),
      #65A7FF
    );

  box-shadow:
    0 0 14px rgba(10,102,255,.25);
}

.bv-why__statement p {
  margin: 0;

  color: var(--bv-navy) !important;

  font-family: "Montserrat", Arial, sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
}


/* Visual */

.bv-why__visual {
  position: relative;
}

.bv-why__image {
  position: relative;

  min-height: 520px;

  overflow: hidden;

  border-radius: 24px;

  background-image:
    url("WHY-BLUE-VOLT-IMAGE.webp");

  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;

  box-shadow:
    0 28px 70px rgba(8,19,32,.13);

  transition:
    transform .55s ease,
    box-shadow .55s ease;
}

/* subtle overlay */
.bv-why__image::after {
  content: "";

  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      180deg,
      transparent 55%,
      rgba(8,19,32,.13) 100%
    );

  pointer-events: none;
}

.bv-why__visual:hover .bv-why__image {
  transform: translateY(-4px);

  box-shadow:
    0 34px 85px rgba(8,19,32,.17);
}


/* Floating specialty card */

.bv-why__badge {
  position: absolute;

  left: -34px;
  bottom: 32px;

  display: flex;
  align-items: center;
  gap: 14px;

  max-width: 330px;

  padding: 17px 20px;

  background: rgba(255,255,255,.94);

  border:
    1px solid rgba(226,231,236,.9);

  border-radius: 14px;

  box-shadow:
    0 18px 50px rgba(8,19,32,.14);

  backdrop-filter: blur(12px);

  animation:
    bvWhyBadgeFloat 5s ease-in-out infinite alternate;
}

.bv-why__badge-icon {
  width: 43px;
  height: 43px;
  flex: 0 0 43px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  color: #FFFFFF;
  background: var(--bv-blue);

  box-shadow:
    0 8px 22px rgba(10,102,255,.25);
}

.bv-why__badge strong {
  display: block;

  margin-bottom: 3px;

  color: var(--bv-navy);

  font-family: "Montserrat", Arial, sans-serif;
  font-size: 13px;
  font-weight: 800;
}

.bv-why__badge small {
  display: block;

  color: var(--bv-muted);

  font-size: 11px;
  line-height: 1.4;
}


/* Animation */

@keyframes bvWhyBadgeFloat {

  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(-7px);
  }
}


/* Tablet */

@media (max-width: 1024px) {

  .bv-why {
    padding: 85px 0;
  }

  .bv-why__grid {
    gap: 48px;
  }

  .bv-why__image {
    min-height: 460px;
  }

  .bv-why__badge {
    left: -18px;
  }
}


/* Mobile */

@media (max-width: 767px) {

  .bv-why {
    padding: 70px 0;
  }

  .bv-why__grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .bv-why__content {
    max-width: 100%;
  }

  .bv-why__title {
    font-size: 36px;
    line-height: 1.09;
  }

  .bv-why__text {
    font-size: 16px;
  }

  .bv-why__statement {
    padding: 18px 18px;
  }

  .bv-why__statement p {
    font-size: 15px;
  }

  .bv-why__image {
    min-height: 360px;

    border-radius: 18px;
  }

  .bv-why__badge {
    position: relative;

    left: auto;
    bottom: auto;

    max-width: none;

    margin:
      -44px 16px 0;

    animation: none;
  }
}


/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

  .bv-why__badge {
    animation: none;
  }

  .bv-why__image {
    transition: none;
  }
}


/* =========================================
   BLUE VOLT — ECOFLOW OCEAN PRO
   ========================================= */

.bv-ecoflow {
  position: relative;
  overflow: hidden;

  padding: 115px 0;

  color: #FFFFFF;

  background:
    linear-gradient(
      135deg,
      #07121F 0%,
      #081D33 52%,
      #06111D 100%
    );
}


/* subtle technical pattern */

.bv-ecoflow::before {
  content: "";

  position: absolute;
  inset: 0;

  opacity: .13;

  background-image:
    linear-gradient(
      rgba(255,255,255,.045) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(255,255,255,.045) 1px,
      transparent 1px
    );

  background-size:
    55px 55px;

  mask-image:
    linear-gradient(
      90deg,
      transparent,
      black 45%,
      black
    );

  pointer-events: none;
}


/* ambient glow */

.bv-ecoflow__glow {
  position: absolute;

  width: 700px;
  height: 700px;

  right: -230px;
  top: 50%;

  transform:
    translateY(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.22);

  filter: blur(120px);

  pointer-events: none;

  animation:
    bvEcoGlow 7s ease-in-out infinite alternate;
}


/* Layout */

.bv-ecoflow__grid {
  position: relative;
  z-index: 2;

  display: grid;
  grid-template-columns:
    minmax(0, .92fr)
    minmax(420px, 1.08fr);

  gap: 80px;
  align-items: center;
}


/* Content */

.bv-ecoflow .bv-eyebrow {
  margin: 0 0 18px;

  color: #6DA8FF;
}

.bv-ecoflow__brand {
  display: flex;
  align-items: center;
  gap: 11px;

  margin-bottom: 20px;
}

.bv-ecoflow__brand span {

  color: #FFFFFF;

  font-family: "Montserrat", Arial, sans-serif;
  font-size: 17px;
  font-weight: 700;
}

.bv-ecoflow__brand small {

  padding: 5px 9px;

  color: #BFD7FF;

  background:
    rgba(10,102,255,.12);

  border:
    1px solid rgba(101,167,255,.22);

  border-radius: 6px;

  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.bv-ecoflow__title {
  max-width: 610px;

  margin: 0;

  color: #FFFFFF !important;

  font-family: "Montserrat", Arial, sans-serif;
  font-size: clamp(42px, 4.6vw, 62px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.bv-ecoflow__title span {
  display: block;

  color: #6DA8FF;
}

.bv-ecoflow__intro {
  max-width: 580px;

  margin: 26px 0 32px;

  color:
    rgba(255,255,255,.70) !important;

  font-size: 16px;
  line-height: 1.75;
}


/* Benefits */

.bv-ecoflow__benefits {
  display: flex;
  flex-direction: column;

  gap: 20px;

  margin-bottom: 34px;
}

.bv-ecoflow__benefit {
  display: flex;
  gap: 15px;

  align-items: flex-start;
}

.bv-ecoflow__benefit-icon {

  width: 30px;
  height: 30px;
  flex: 0 0 30px;

  display: grid;
  place-items: center;

  margin-top: 2px;

  color: #FFFFFF;

  background:
    rgba(10,102,255,.22);

  border:
    1px solid rgba(109,168,255,.40);

  border-radius: 50%;

  font-size: 12px;
  font-weight: 800;
}

.bv-ecoflow__benefit strong {

  display: block;

  margin-bottom: 4px;

  color: #FFFFFF;

  font-family: "Montserrat", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
}

.bv-ecoflow__benefit p {

  max-width: 480px;

  margin: 0;

  color:
    rgba(255,255,255,.60) !important;

  font-size: 13px;
  line-height: 1.6;
}


/* Actions */

.bv-ecoflow__actions {

  display: flex;
  align-items: center;
  flex-wrap: wrap;

  gap: 22px;
}

.bv-ecoflow__link {

  display: inline-flex;
  align-items: center;

  gap: 8px;

  color:
    rgba(255,255,255,.75) !important;

  font-size: 14px;
  font-weight: 600;

  text-decoration: none;
}

.bv-ecoflow__link span {

  color: #6DA8FF;

  transition:
    transform .2s ease;
}

.bv-ecoflow__link:hover {

  color: #FFFFFF !important;
}

.bv-ecoflow__link:hover span {

  transform:
    translateX(4px);
}


/* =========================================
   PRODUCT VISUAL
   ========================================= */

.bv-ecoflow__visual {

  position: relative;

  min-height: 580px;

  display: flex;
  align-items: center;
  justify-content: center;
}


/* soft product platform */

.bv-ecoflow__visual::before {

  content: "";

  position: absolute;

  width: 420px;
  height: 105px;

  left: 50%;
  bottom: 38px;

  transform:
    translateX(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.30);

  filter:
    blur(38px);

  opacity: .55;
}


/* circles behind product */

.bv-ecoflow__orbit {

  position: absolute;

  left: 50%;
  top: 50%;

  border:
    1px solid rgba(109,168,255,.13);

  border-radius: 50%;

  pointer-events: none;
}

.bv-ecoflow__orbit--one {

  width: 460px;
  height: 460px;

  transform:
    translate(-50%,-50%);
}

.bv-ecoflow__orbit--two {

  width: 560px;
  height: 560px;

  transform:
    translate(-50%,-50%);
}


/* Product */

.bv-ecoflow__image-wrap {

  position: relative;
  z-index: 2;

  width: min(100%, 520px);

  animation:
    bvEcoProductFloat
    5.5s
    ease-in-out
    infinite alternate;
}

.bv-ecoflow__image {

  display: block;

  width: 100%;
  height: auto;

  object-fit: contain;

  filter:
    drop-shadow(
      0 32px 45px
      rgba(0,0,0,.28)
    );
}


/* mini floating card */

.bv-ecoflow__mini-card {

  position: absolute;

  z-index: 4;

  left: 5%;
  bottom: 60px;

  display: flex;
  align-items: center;

  gap: 12px;

  padding:
    14px 17px;

  background:
    rgba(255,255,255,.94);

  border:
    1px solid rgba(255,255,255,.65);

  border-radius: 13px;

  box-shadow:
    0 20px 45px
    rgba(0,0,0,.18);

  backdrop-filter:
    blur(12px);
}

.bv-ecoflow__mini-icon {

  width: 38px;
  height: 38px;

  display: grid;
  place-items: center;

  color: #FFFFFF;

  background:
    var(--bv-blue);

  border-radius: 50%;
}

.bv-ecoflow__mini-card small {

  display: block;

  margin-bottom: 2px;

  color:
    var(--bv-muted);

  font-size: 10px;
  line-height: 1.2;
}

.bv-ecoflow__mini-card strong {

  display: block;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 12px;
  font-weight: 800;
}


/* Animations */

@keyframes bvEcoProductFloat {

  from {
    transform:
      translateY(4px);
  }

  to {
    transform:
      translateY(-9px);
  }
}

@keyframes bvEcoGlow {

  from {
    opacity: .45;

    transform:
      translateY(-50%)
      scale(.95);
  }

  to {
    opacity: .75;

    transform:
      translateY(-50%)
      scale(1.08);
  }
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-ecoflow {

    padding:
      90px 0;
  }

  .bv-ecoflow__grid {

    grid-template-columns:
      minmax(0, 1fr)
      minmax(350px, .9fr);

    gap: 42px;
  }

  .bv-ecoflow__visual {

    min-height: 500px;
  }

  .bv-ecoflow__orbit--one {

    width: 370px;
    height: 370px;
  }

  .bv-ecoflow__orbit--two {

    width: 450px;
    height: 450px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-ecoflow {

    padding:
      72px 0 65px;
  }

  .bv-ecoflow__grid {

    grid-template-columns:
      1fr;

    gap: 48px;
  }

  .bv-ecoflow__title {

    font-size: 38px;
  }

  .bv-ecoflow__intro {

    margin:
      21px 0 28px;

    font-size: 16px;
  }

  .bv-ecoflow__actions {

    flex-direction: column;
    align-items: stretch;

    gap: 18px;
  }

  .bv-ecoflow__actions
  .bv-btn {

    width: 100%;
  }

  .bv-ecoflow__link {

    justify-content: center;
  }


  .bv-ecoflow__visual {

    min-height: 410px;
  }

  .bv-ecoflow__image-wrap {

    width:
      min(100%, 360px);
  }

  .bv-ecoflow__orbit--one {

    width: 310px;
    height: 310px;
  }

  .bv-ecoflow__orbit--two {

    width: 390px;
    height: 390px;
  }

  .bv-ecoflow__mini-card {

    left: 50%;
    bottom: 5px;

    width:
      calc(100% - 32px);

    transform:
      translateX(-50%);
  }

  .bv-ecoflow__glow {

    width: 400px;
    height: 400px;

    right: -250px;
  }
}


/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

  .bv-ecoflow__image-wrap,
  .bv-ecoflow__glow {

    animation: none;
  }
}

/* =========================================
   BLUE VOLT — ADVANTAGES
   ========================================= */

.bv-advantages {
  position: relative;
  overflow: hidden;

  padding: 105px 0 110px;

  background: #FFFFFF;
}


/* Heading */

.bv-advantages__heading {
  max-width: 760px;

  margin: 0 auto 58px;

  text-align: center;
}

.bv-advantages .bv-eyebrow {
  margin: 0 0 14px;
}

.bv-advantages__title {
  margin: 0;

  color: var(--bv-navy);

  font-family: "Montserrat", Arial, sans-serif;
  font-size: clamp(38px, 4.2vw, 56px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.bv-advantages__title span {
  display: block;

  color: var(--bv-blue);
}

.bv-advantages__intro {
  max-width: 680px;

  margin: 20px auto 0;

  color: var(--bv-muted);

  font-size: 16px;
  line-height: 1.7;
}


/* Grid */

.bv-advantages__grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap: 22px;
}


/* Cards */

.bv-advantage-card {
  position: relative;

  min-height: 320px;

  padding: 32px 28px;

  overflow: hidden;

  background:
    linear-gradient(
      145deg,
      #FFFFFF,
      #F8FAFD
    );

  border: 1px solid var(--bv-border);

  border-radius: 18px;

  box-shadow:
    0 12px 35px rgba(8,19,32,.045);

  transition:
    transform .35s ease,
    box-shadow .35s ease,
    border-color .35s ease;
}


/* blue accent at top */

.bv-advantage-card::before {
  content: "";

  position: absolute;

  top: 0;
  left: 0;

  width: 100%;
  height: 3px;

  background:
    linear-gradient(
      90deg,
      var(--bv-blue),
      #65A7FF
    );

  transform: scaleX(0);
  transform-origin: left center;

  transition:
    transform .4s ease;
}


/* subtle glow */

.bv-advantage-card::after {
  content: "";

  position: absolute;

  width: 150px;
  height: 150px;

  right: -80px;
  top: -80px;

  border-radius: 50%;

  background:
    rgba(10,102,255,.07);

  filter: blur(25px);

  opacity: 0;

  transition:
    opacity .35s ease;
}


/* Number */

.bv-advantage-card__number {
  position: absolute;

  top: 25px;
  right: 25px;

  color:
    rgba(8,19,32,.11);

  font-family: "Montserrat", Arial, sans-serif;
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
}


/* Icon */

.bv-advantage-card__icon {
  width: 54px;
  height: 54px;

  display: grid;
  place-items: center;

  margin-bottom: 28px;

  color: var(--bv-blue);

  background:
    rgba(10,102,255,.07);

  border:
    1px solid rgba(10,102,255,.14);

  border-radius: 14px;

  transition:
    color .3s ease,
    background .3s ease,
    transform .3s ease,
    box-shadow .3s ease;
}

.bv-advantage-card__icon svg {
  width: 25px;
  height: 25px;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Text */

.bv-advantage-card h3 {
  margin:
    0 0 13px;

  color: var(--bv-navy);

  font-family: "Montserrat", Arial, sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.bv-advantage-card p {
  margin: 0;

  color: var(--bv-muted);

  font-size: 14px;
  line-height: 1.7;
}


/* Hover */

.bv-advantage-card:hover {
  transform:
    translateY(-7px);

  border-color:
    rgba(10,102,255,.22);

  box-shadow:
    0 22px 55px
    rgba(8,19,32,.09);
}

.bv-advantage-card:hover::before {
  transform: scaleX(1);
}

.bv-advantage-card:hover::after {
  opacity: 1;
}

.bv-advantage-card:hover
.bv-advantage-card__icon {

  color: #FFFFFF;

  background:
    var(--bv-blue);

  transform:
    translateY(-2px);

  box-shadow:
    0 10px 25px
    rgba(10,102,255,.22);
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-advantages {
    padding: 85px 0;
  }

  .bv-advantages__grid {
    grid-template-columns:
      repeat(2, 1fr);
  }

  .bv-advantage-card {
    min-height: 280px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-advantages {
    padding: 70px 0;
  }

  .bv-advantages__heading {
    margin-bottom: 40px;

    text-align: left;
  }

  .bv-advantages__title {
    font-size: 36px;
  }

  .bv-advantages__intro {
    margin-top: 17px;

    font-size: 16px;
  }

  .bv-advantages__grid {
    grid-template-columns: 1fr;

    gap: 15px;
  }

  .bv-advantage-card {
    min-height: auto;

    padding: 26px 24px;
  }

  .bv-advantage-card__icon {
    margin-bottom: 22px;
  }

  .bv-advantage-card__number {
    top: 22px;
    right: 22px;

    font-size: 30px;
  }
}


/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

  .bv-advantage-card,
  .bv-advantage-card::before,
  .bv-advantage-card::after,
  .bv-advantage-card__icon {
    transition: none;
  }
}

/* =========================================
   BLUE VOLT — FINAL CTA
   ========================================= */

.bv-final-cta {
  --bv-final-image:
    url("FINAL-CTA-HOME-IMAGE.webp");

  position: relative;
  overflow: hidden;
  isolation: isolate;

  min-height: 650px;

  display: flex;
  align-items: center;

  padding: 105px 0;

  background:
    var(--bv-navy);
}


/* =========================================
   BACKGROUND IMAGE
   ========================================= */

.bv-final-cta__media {
  position: absolute;

  inset: -3%;

  z-index: -4;

  background-image:
    var(--bv-final-image);

  background-position:
    center;

  background-size:
    cover;

  background-repeat:
    no-repeat;

  transform:
    scale(1.03);

  animation:
    bvFinalImageMove
    18s
    ease-in-out
    infinite
    alternate;
}


/* =========================================
   OVERLAY
   ========================================= */

.bv-final-cta__overlay {
  position: absolute;
  inset: 0;

  z-index: -3;

  background:
    linear-gradient(
      90deg,
      rgba(5, 14, 25, .98) 0%,
      rgba(8, 19, 32, .94) 38%,
      rgba(8, 19, 32, .76) 62%,
      rgba(8, 19, 32, .42) 100%
    );
}


/* blue ambient light */

.bv-final-cta__glow {
  position: absolute;

  z-index: -2;

  width: 650px;
  height: 650px;

  right: -260px;
  top: 50%;

  transform:
    translateY(-50%);

  border-radius: 50%;

  background:
    rgba(10, 102, 255, .25);

  filter:
    blur(120px);

  opacity: .65;

  pointer-events: none;

  animation:
    bvFinalGlow
    6s
    ease-in-out
    infinite
    alternate;
}


/* subtle bottom line */

.bv-final-cta::after {
  content: "";

  position: absolute;

  left: 50%;
  bottom: 0;

  width:
    min(1200px, calc(100% - 40px));

  height: 1px;

  transform:
    translateX(-50%);

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.18),
      transparent
    );
}


/* =========================================
   LAYOUT
   ========================================= */

.bv-final-cta__inner {
  position: relative;
  z-index: 2;

  display: grid;

  grid-template-columns:
    minmax(0, 1.12fr)
    minmax(330px, .72fr);

  gap: 90px;

  align-items: center;
}


/* =========================================
   COPY
   ========================================= */

.bv-final-cta__content {
  max-width: 670px;
}


/* eyebrow */

.bv-final-cta .bv-eyebrow {
  display: inline-flex;

  align-items: center;

  gap: 11px;

  margin:
    0 0 18px;

  color:
    rgba(255,255,255,.72);
}


/* animated accent line */

.bv-final-cta .bv-eyebrow::before {
  content: "";

  width: 36px;
  height: 2px;

  flex: 0 0 auto;

  background:
    linear-gradient(
      90deg,
      var(--bv-blue),
      #73B0FF
    );

  box-shadow:
    0 0 13px
    rgba(10,102,255,.45);

  transform-origin:
    left center;

  animation:
    bvFinalLine
    .8s
    ease
    both;
}


/* title */

.bv-final-cta__title {
  max-width: 660px;

  margin: 0;

  color:
    #FFFFFF !important;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    clamp(46px, 5vw, 68px);

  font-weight: 800;

  line-height: 1.04;

  letter-spacing:
    -0.015em;
}


.bv-final-cta__title span {
  display: block;

  color:
    #6DA8FF;
}


/* paragraph */

.bv-final-cta__text {
  max-width: 580px;

  margin:
    26px 0 34px;

  color:
    rgba(255,255,255,.76) !important;

  font-size: 17px;

  line-height: 1.75;
}


/* =========================================
   ACTIONS
   ========================================= */

.bv-final-cta__actions {
  display: flex;

  flex-wrap: wrap;

  gap: 14px;

  align-items: center;
}


/* primary CTA */

.bv-final-cta__primary {
  position: relative;

  overflow: hidden;

  box-shadow:
    0 15px 40px
    rgba(10,102,255,.30);
}


.bv-final-cta__primary:hover {
  box-shadow:
    0 18px 46px
    rgba(10,102,255,.42);
}


/* arrow */

.bv-final-cta__arrow {
  transition:
    transform .25s ease;
}


.bv-final-cta__primary:hover
.bv-final-cta__arrow {
  transform:
    translateX(4px);
}


/* shimmer */

.bv-final-cta__primary::after {
  content: "";

  position: absolute;

  top: -60%;
  left: -75%;

  width: 40%;
  height: 220%;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.28),
      transparent
    );

  transform:
    rotate(18deg);

  transition:
    left .65s ease;

  pointer-events: none;
}


.bv-final-cta__primary:hover::after {
  left: 135%;
}


/* secondary CTA */

.bv-final-cta__call {
  color:
    #FFFFFF !important;

  background:
    rgba(255,255,255,.07);

  border:
    1px solid
    rgba(255,255,255,.40);

  backdrop-filter:
    blur(9px);
}


.bv-final-cta__call:hover {
  color:
    #FFFFFF !important;

  background:
    rgba(255,255,255,.13);

  border-color:
    rgba(255,255,255,.70);

  transform:
    translateY(-2px);
}


/* =========================================
   NOTE
   ========================================= */

.bv-final-cta__note {
  display: inline-flex;

  align-items: center;

  gap: 9px;

  margin-top: 23px;

  color:
    rgba(255,255,255,.58);

  font-family:
    "Inter",
    Arial,
    sans-serif;

  font-size: 12px;

  line-height: 1.5;
}


.bv-final-cta__note-icon {
  width: 20px;
  height: 20px;

  flex: 0 0 20px;

  display: grid;

  place-items: center;

  color:
    #8FB9FF;

  background:
    rgba(10,102,255,.13);

  border:
    1px solid
    rgba(109,168,255,.22);

  border-radius:
    50%;

  font-size: 9px;
}


/* =========================================
   GLASS CARD
   ========================================= */

.bv-final-cta__card {
  position: relative;

  overflow: hidden;

  padding:
    35px 32px 28px;

  background:
    rgba(255,255,255,.08);

  border:
    1px solid
    rgba(255,255,255,.16);

  border-radius:
    22px;

  box-shadow:
    0 30px 70px
    rgba(0,0,0,.23);

  backdrop-filter:
    blur(18px);

  -webkit-backdrop-filter:
    blur(18px);

  transition:
    transform .4s ease,
    border-color .4s ease,
    background .4s ease;
}


/* small blue glow inside card */

.bv-final-cta__card::before {
  content: "";

  position: absolute;

  width: 180px;
  height: 180px;

  right: -90px;
  top: -90px;

  border-radius: 50%;

  background:
    rgba(10,102,255,.20);

  filter:
    blur(35px);

  pointer-events: none;
}


.bv-final-cta__card:hover {
  transform:
    translateY(-5px);

  background:
    rgba(255,255,255,.105);

  border-color:
    rgba(109,168,255,.30);
}


/* icon */

.bv-final-cta__card-icon {
  width: 52px;
  height: 52px;

  display: grid;

  place-items: center;

  margin-bottom:
    28px;

  color:
    #FFFFFF;

  background:
    var(--bv-blue);

  border-radius:
    15px;

  box-shadow:
    0 12px 30px
    rgba(10,102,255,.30);
}


.bv-final-cta__card-icon svg {
  width: 27px;
  height: 27px;

  fill: none;

  stroke:
    currentColor;

  stroke-width:
    1.6;

  stroke-linecap:
    round;

  stroke-linejoin:
    round;
}


/* label */

.bv-final-cta__card-label {
  margin:
    0 0 8px;

  color:
    #72ABFF !important;

  font-family:
    "Inter",
    Arial,
    sans-serif;

  font-size: 10px;

  font-weight: 800;

  letter-spacing:
    .18em;
}


/* card heading */

.bv-final-cta__card h3 {
  max-width: 310px;

  margin:
    0 0 14px;

  color:
    #FFFFFF !important;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 24px;

  font-weight: 700;

  line-height: 1.25;

  letter-spacing:
    -0.015em;
}


/* card paragraph */

.bv-final-cta__card > p:not(.bv-final-cta__card-label) {
  margin: 0;

  color:
    rgba(255,255,255,.62) !important;

  font-size:
    13px;

  line-height:
    1.7;
}


/* divider */

.bv-final-cta__card-line {
  width: 100%;
  height: 1px;

  margin:
    27px 0 20px;

  background:
    rgba(255,255,255,.12);
}


/* bottom */

.bv-final-cta__card-bottom {
  display: flex;

  align-items: center;

  justify-content:
    space-between;

  gap: 12px;

  color:
    rgba(255,255,255,.52);

  font-size: 10px;

  font-weight: 600;

  text-transform:
    uppercase;

  letter-spacing:
    .06em;
}


/* status */

.bv-final-cta__status {
  display:
    inline-flex;

  align-items:
    center;

  gap: 6px;
}


.bv-final-cta__status i {
  width: 7px;
  height: 7px;

  display: block;

  background:
    #45D38A;

  border-radius:
    50%;

  box-shadow:
    0 0 0 4px
    rgba(69,211,138,.10);

  animation:
    bvFinalStatus
    2.5s
    ease-in-out
    infinite;
}


/* =========================================
   ANIMATIONS
   ========================================= */

@keyframes bvFinalImageMove {

  from {
    transform:
      scale(1.03);
  }

  to {
    transform:
      scale(1.09);
  }
}


@keyframes bvFinalGlow {

  from {
    opacity: .45;

    transform:
      translateY(-50%)
      scale(.94);
  }

  to {
    opacity: .78;

    transform:
      translateY(-50%)
      scale(1.08);
  }
}


@keyframes bvFinalLine {

  from {
    opacity: 0;

    transform:
      scaleX(0);
  }

  to {
    opacity: 1;

    transform:
      scaleX(1);
  }
}


@keyframes bvFinalStatus {

  0%,
  100% {
    opacity: .65;

    box-shadow:
      0 0 0 3px
      rgba(69,211,138,.08);
  }

  50% {
    opacity: 1;

    box-shadow:
      0 0 0 6px
      rgba(69,211,138,.14);
  }
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-final-cta {
    min-height: auto;

    padding:
      90px 0;
  }


  .bv-final-cta__inner {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(300px, .7fr);

    gap: 45px;
  }


  .bv-final-cta__card {
    padding:
      30px 27px 25px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-final-cta {
    min-height: auto;

    padding:
      76px 0 68px;
  }


  .bv-final-cta__media {
    background-position:
      62% center;
  }


  .bv-final-cta__overlay {
    background:
      linear-gradient(
        180deg,
        rgba(8,19,32,.82) 0%,
        rgba(8,19,32,.94) 48%,
        rgba(8,19,32,.99) 100%
      );
  }


  .bv-final-cta__inner {
    grid-template-columns:
      1fr;

    gap: 42px;
  }


  .bv-final-cta__title {
    font-size:
      39px;

    line-height:
      1.06;

    letter-spacing:
      -0.01em;
  }


  .bv-final-cta__text {
    margin:
      21px 0 28px;

    font-size:
      16px;
  }


  .bv-final-cta__actions {
    flex-direction:
      column;

    align-items:
      stretch;
  }


  .bv-final-cta__actions
  .bv-btn {
    width: 100%;
  }


  .bv-final-cta__note {
    align-items:
      flex-start;
  }


  .bv-final-cta__card {
    padding:
      27px 24px 24px;

    border-radius:
      18px;
  }


  .bv-final-cta__card h3 {
    font-size:
      21px;
  }


  .bv-final-cta__card-bottom {
    align-items:
      flex-start;

    flex-direction:
      column;
  }
}


/* =========================================
   REDUCED MOTION
   ========================================= */

@media (prefers-reduced-motion: reduce) {

  .bv-final-cta__media,
  .bv-final-cta__glow,
  .bv-final-cta .bv-eyebrow::before,
  .bv-final-cta__status i {
    animation:
      none !important;
  }


  .bv-final-cta__primary::after {
    display:
      none;
  }


  .bv-final-cta__card {
    transition:
      none;
  }
}

/* =========================================
   BLUE VOLT — OCEAN PRO PRODUCT HERO
   ========================================= */

.bv-ocean-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;

  min-height: 760px;

  display: flex;
  align-items: center;

  padding: 105px 0;

  color: #FFFFFF;

  background:
    linear-gradient(
      135deg,
      #06111D 0%,
      #081A2D 48%,
      #071421 100%
    );
}


/* =========================================
   TECHNOLOGY GRID
   ========================================= */

.bv-ocean-hero__grid-bg {
  position: absolute;
  inset: 0;
  z-index: -4;

  opacity: .11;

  background-image:
    linear-gradient(
      rgba(255,255,255,.05) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(255,255,255,.05) 1px,
      transparent 1px
    );

  background-size:
    60px 60px;

  mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.4) 35%,
      #000 100%
    );

  pointer-events: none;
}


/* =========================================
   AMBIENT GLOW
   ========================================= */

.bv-ocean-hero__glow {
  position: absolute;

  z-index: -3;

  width: 760px;
  height: 760px;

  right: -230px;
  top: 50%;

  transform:
    translateY(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.25);

  filter:
    blur(135px);

  opacity: .65;

  animation:
    bvOceanGlow
    7s
    ease-in-out
    infinite
    alternate;
}


/* =========================================
   LAYOUT
   ========================================= */

.bv-ocean-hero__inner {
  position: relative;
  z-index: 2;

  display: grid;

  grid-template-columns:
    minmax(0, .96fr)
    minmax(420px, 1.04fr);

  gap: 80px;

  align-items: center;
}


/* =========================================
   CONTENT
   ========================================= */

.bv-ocean-hero .bv-eyebrow {
  margin: 0 0 17px;

  color:
    #77B0FF;
}


.bv-ocean-hero__brand {
  display: flex;

  align-items: center;

  gap: 12px;

  margin-bottom: 20px;
}


.bv-ocean-hero__brand span {
  color:
    rgba(255,255,255,.58);

  font-family:
    "Inter",
    Arial,
    sans-serif;

  font-size: 14px;

  font-weight: 600;
}


.bv-ocean-hero__brand strong {
  padding:
    5px 10px;

  color: #FFFFFF;

  background:
    rgba(10,102,255,.14);

  border:
    1px solid
    rgba(109,168,255,.25);

  border-radius: 6px;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 13px;

  font-weight: 700;

  letter-spacing:
    .04em;
}


/* H1 */

.bv-ocean-hero__title {
  max-width: 690px;

  margin: 0;

  color:
    #FFFFFF !important;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    clamp(48px, 5.4vw, 72px);

  font-weight: 800;

  line-height: 1.03;

  letter-spacing:
    -0.015em;
}


.bv-ocean-hero__title span {
  display: block;

  color:
    #6DA8FF;
}


/* main intro */

.bv-ocean-hero__text {
  max-width: 600px;

  margin:
    27px 0 16px;

  color:
    rgba(255,255,255,.78) !important;

  font-size: 17px;

  line-height: 1.72;
}


/* Blue Volt positioning */

.bv-ocean-hero__advisor {
  max-width: 590px;

  margin:
    0 0 34px;

  padding-left: 18px;

  color:
    rgba(255,255,255,.57) !important;

  border-left:
    2px solid
    var(--bv-blue);

  font-size: 13px;

  line-height: 1.65;
}


/* =========================================
   ACTIONS
   ========================================= */

.bv-ocean-hero__actions {
  display: flex;

  align-items: center;

  flex-wrap: wrap;

  gap: 22px;
}


.bv-ocean-hero__primary {
  position: relative;

  overflow: hidden;

  box-shadow:
    0 15px 42px
    rgba(10,102,255,.28);
}


.bv-ocean-hero__primary span {
  transition:
    transform .25s ease;
}


.bv-ocean-hero__primary:hover span {
  transform:
    translateX(4px);
}


/* text link */

.bv-ocean-hero__learn {
  display:
    inline-flex;

  align-items:
    center;

  gap: 8px;

  color:
    rgba(255,255,255,.70) !important;

  font-family:
    "Inter",
    Arial,
    sans-serif;

  font-size: 14px;

  font-weight: 600;

  text-decoration:
    none;
}


.bv-ocean-hero__learn span {
  color:
    #6DA8FF;

  transition:
    transform .25s ease;
}


.bv-ocean-hero__learn:hover {
  color:
    #FFFFFF !important;
}


.bv-ocean-hero__learn:hover span {
  transform:
    translateY(3px);
}


/* =========================================
   PRODUCT VISUAL
   ========================================= */

.bv-ocean-hero__visual {
  position: relative;

  min-height: 570px;

  display: flex;
  align-items: center;
  justify-content: center;
}


/* light under battery */

.bv-ocean-hero__visual::after {
  content: "";

  position: absolute;

  z-index: 0;

  width: 390px;
  height: 95px;

  left: 50%;
  bottom: 15px;

  transform:
    translateX(-50%);

  border-radius:
    50%;

  background:
    rgba(10,102,255,.30);

  filter:
    blur(40px);

  opacity:
    .62;
}


/* =========================================
   ORBITS
   ========================================= */

.bv-ocean-hero__orbit {
  position: absolute;

  z-index: 0;

  left: 50%;
  top: 50%;

  border:
    1px solid
    rgba(109,168,255,.12);

  border-radius:
    50%;

  pointer-events:
    none;
}


.bv-ocean-hero__orbit--1 {
  width: 370px;
  height: 370px;

  transform:
    translate(-50%,-50%);
}


.bv-ocean-hero__orbit--2 {
  width: 470px;
  height: 470px;

  transform:
    translate(-50%,-50%);
}


.bv-ocean-hero__orbit--3 {
  width: 570px;
  height: 570px;

  transform:
    translate(-50%,-50%);
}


/* =========================================
   PRODUCT
   ========================================= */

.bv-ocean-hero__product {
  position: relative;

  z-index: 2;

  width:
    min(100%, 470px);

  animation:
    bvOceanProductFloat
    5.8s
    ease-in-out
    infinite
    alternate;
}


.bv-ocean-hero__product img {
  display: block;

  width: 100%;
  height: auto;

  object-fit: contain;

  filter:
    drop-shadow(
      0 38px 50px
      rgba(0,0,0,.34)
    );
}


/* =========================================
   FLOATING TAGS
   ========================================= */

.bv-ocean-hero__tag {
  position: absolute;

  z-index: 4;

  display: flex;

  align-items: center;

  gap: 11px;

  padding:
    13px 16px;

  background:
    rgba(255,255,255,.92);

  border:
    1px solid
    rgba(255,255,255,.70);

  border-radius:
    12px;

  box-shadow:
    0 18px 42px
    rgba(0,0,0,.18);

  backdrop-filter:
    blur(12px);
}


.bv-ocean-hero__tag--top {
  top: 80px;
  right: 0;
}


.bv-ocean-hero__tag--bottom {
  left: 0;
  bottom: 70px;
}


.bv-ocean-hero__tag-icon {
  width: 35px;
  height: 35px;

  flex: 0 0 35px;

  display: grid;

  place-items: center;

  color: #FFFFFF;

  background:
    var(--bv-blue);

  border-radius: 50%;
}


.bv-ocean-hero__tag small {
  display: block;

  margin-bottom: 1px;

  color:
    var(--bv-muted);

  font-size:
    9px;

  text-transform:
    uppercase;

  letter-spacing:
    .06em;
}


.bv-ocean-hero__tag strong {
  display: block;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    12px;

  font-weight: 700;
}


/* =========================================
   ANIMATION
   ========================================= */

@keyframes bvOceanProductFloat {

  from {
    transform:
      translateY(5px);
  }

  to {
    transform:
      translateY(-10px);
  }
}


@keyframes bvOceanGlow {

  from {
    opacity: .45;

    transform:
      translateY(-50%)
      scale(.94);
  }

  to {
    opacity: .76;

    transform:
      translateY(-50%)
      scale(1.08);
  }
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-ocean-hero {
    min-height: auto;

    padding:
      90px 0;
  }


  .bv-ocean-hero__inner {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(350px, .85fr);

    gap: 40px;
  }


  .bv-ocean-hero__visual {
    min-height:
      500px;
  }


  .bv-ocean-hero__orbit--1 {
    width: 310px;
    height: 310px;
  }


  .bv-ocean-hero__orbit--2 {
    width: 390px;
    height: 390px;
  }


  .bv-ocean-hero__orbit--3 {
    width: 470px;
    height: 470px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-ocean-hero {
    padding:
      72px 0 62px;
  }


  .bv-ocean-hero__inner {
    grid-template-columns:
      1fr;

    gap: 45px;
  }


  .bv-ocean-hero__title {
    font-size:
      40px;

    line-height:
      1.06;

    letter-spacing:
      -0.01em;
  }


  .bv-ocean-hero__text {
    margin-top:
      21px;

    font-size:
      16px;
  }


  .bv-ocean-hero__actions {
    flex-direction:
      column;

    align-items:
      stretch;

    gap: 17px;
  }


  .bv-ocean-hero__actions
  .bv-btn {
    width: 100%;
  }


  .bv-ocean-hero__learn {
    justify-content:
      center;
  }


  .bv-ocean-hero__visual {
    min-height:
      410px;
  }


  .bv-ocean-hero__product {
    width:
      min(100%, 330px);
  }


  .bv-ocean-hero__orbit--1 {
    width: 260px;
    height: 260px;
  }


  .bv-ocean-hero__orbit--2 {
    width: 330px;
    height: 330px;
  }


  .bv-ocean-hero__orbit--3 {
    width: 400px;
    height: 400px;
  }


  .bv-ocean-hero__tag--top {
    top: 12px;
    right: 0;
  }


  .bv-ocean-hero__tag--bottom {
    left: 0;
    bottom: 12px;
  }
}


/* =========================================
   REDUCED MOTION
   ========================================= */

@media (prefers-reduced-motion: reduce) {

  .bv-ocean-hero__product,
  .bv-ocean-hero__glow {
    animation:
      none !important;
  }
}

/* =========================================
   BLUE VOLT — WHAT IS OCEAN PRO
   ========================================= */

.bv-ocean-intro {
  position: relative;
  overflow: hidden;

  padding: 110px 0;

  background: #FFFFFF;
}


/* =========================================
   GRID
   ========================================= */

.bv-ocean-intro__grid {
  display: grid;

  grid-template-columns:
    minmax(0, .92fr)
    minmax(0, 1.08fr);

  gap: 80px;

  align-items: center;
}


/* =========================================
   CONTENT
   ========================================= */

.bv-ocean-intro__content {
  max-width: 590px;
}


.bv-ocean-intro .bv-eyebrow {
  margin: 0 0 16px;
}


.bv-ocean-intro__title {
  margin: 0 0 26px;

  color: var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    clamp(40px, 4.3vw, 58px);

  font-weight: 800;

  line-height: 1.07;

  letter-spacing:
    -0.02em;
}


.bv-ocean-intro__title span {
  display: block;

  color: var(--bv-blue);
}


/* lead paragraph */

.bv-ocean-intro__lead {
  margin: 0 0 18px;

  color:
    var(--bv-text) !important;

  font-size: 17px;

  font-weight: 500;

  line-height: 1.72;
}


/* regular paragraphs */

.bv-ocean-intro__text {
  margin: 0 0 17px;

  color:
    var(--bv-muted) !important;

  font-size: 15px;

  line-height: 1.75;
}


/* =========================================
   CALLOUT
   ========================================= */

.bv-ocean-intro__callout {
  display: flex;

  align-items: flex-start;

  gap: 16px;

  margin-top: 30px;

  padding: 20px 22px;

  background:
    linear-gradient(
      135deg,
      rgba(10,102,255,.055),
      rgba(245,248,252,.92)
    );

  border:
    1px solid
    rgba(10,102,255,.12);

  border-radius: 14px;
}


.bv-ocean-intro__callout-icon {
  width: 40px;
  height: 40px;

  flex: 0 0 40px;

  display: grid;

  place-items: center;

  color: #FFFFFF;

  background:
    var(--bv-blue);

  border-radius: 12px;

  box-shadow:
    0 10px 25px
    rgba(10,102,255,.22);
}


.bv-ocean-intro__callout strong {
  display: block;

  margin-bottom: 5px;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 14px;

  font-weight: 700;
}


.bv-ocean-intro__callout p {
  margin: 0;

  color:
    var(--bv-muted) !important;

  font-size: 12px;

  line-height: 1.6;
}


/* =========================================
   VISUAL
   ========================================= */

.bv-ocean-intro__visual {
  position: relative;
}


.bv-ocean-intro__image {
  position: relative;

  min-height: 560px;

  overflow: hidden;

  border-radius: 24px;

  background-image:
    url("OCEAN-PRO-INSTALLATION.webp");

  background-position: center;

  background-size: cover;

  background-repeat: no-repeat;

  box-shadow:
    0 28px 75px
    rgba(8,19,32,.13);

  transition:
    transform .55s ease,
    box-shadow .55s ease;
}


/* slight image depth */

.bv-ocean-intro__image::after {
  content: "";

  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      180deg,
      transparent 58%,
      rgba(8,19,32,.15) 100%
    );

  pointer-events: none;
}


.bv-ocean-intro__visual:hover
.bv-ocean-intro__image {

  transform:
    translateY(-4px)
    scale(1.006);

  box-shadow:
    0 35px 90px
    rgba(8,19,32,.17);
}


/* =========================================
   FLOATING CARD
   ========================================= */

.bv-ocean-intro__floating {
  position: absolute;

  left: -35px;
  bottom: 34px;

  display: flex;

  align-items: center;

  gap: 13px;

  max-width: 330px;

  padding: 16px 18px;

  background:
    rgba(255,255,255,.94);

  border:
    1px solid
    rgba(226,231,236,.9);

  border-radius: 14px;

  box-shadow:
    0 20px 52px
    rgba(8,19,32,.15);

  backdrop-filter:
    blur(12px);

  animation:
    bvOceanIntroFloat
    5.5s
    ease-in-out
    infinite
    alternate;
}


.bv-ocean-intro__floating-icon {
  width: 42px;
  height: 42px;

  flex: 0 0 42px;

  display: grid;

  place-items: center;

  color: #FFFFFF;

  background:
    var(--bv-blue);

  border-radius: 50%;
}


.bv-ocean-intro__floating-icon svg {
  width: 21px;
  height: 21px;

  fill: none;

  stroke:
    currentColor;

  stroke-width:
    1.7;

  stroke-linecap:
    round;

  stroke-linejoin:
    round;
}


.bv-ocean-intro__floating small {
  display: block;

  margin-bottom: 2px;

  color:
    var(--bv-muted);

  font-size: 9px;

  text-transform:
    uppercase;

  letter-spacing:
    .07em;
}


.bv-ocean-intro__floating strong {
  display: block;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 12px;

  font-weight: 700;
}


/* =========================================
   ANIMATION
   ========================================= */

@keyframes bvOceanIntroFloat {

  from {
    transform:
      translateY(0);
  }

  to {
    transform:
      translateY(-7px);
  }
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-ocean-intro {
    padding: 88px 0;
  }


  .bv-ocean-intro__grid {
    gap: 48px;
  }


  .bv-ocean-intro__image {
    min-height: 480px;
  }


  .bv-ocean-intro__floating {
    left: -18px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-ocean-intro {
    padding: 72px 0;
  }


  .bv-ocean-intro__grid {
    grid-template-columns:
      1fr;

    gap: 42px;
  }


  .bv-ocean-intro__title {
    font-size: 36px;

    line-height: 1.09;
  }


  .bv-ocean-intro__lead {
    font-size: 16px;
  }


  .bv-ocean-intro__text {
    font-size: 15px;
  }


  .bv-ocean-intro__callout {
    padding: 18px;
  }


  .bv-ocean-intro__image {
    min-height: 370px;

    border-radius: 18px;
  }


  .bv-ocean-intro__floating {
    position: relative;

    left: auto;
    bottom: auto;

    max-width: none;

    margin:
      -42px 15px 0;

    animation: none;
  }
}


/* =========================================
   REDUCED MOTION
   ========================================= */

@media (prefers-reduced-motion: reduce) {

  .bv-ocean-intro__floating {
    animation: none;
  }


  .bv-ocean-intro__image {
    transition: none;
  }
}

/* =========================================
   BLUE VOLT — OCEAN PRO FEATURES
   ========================================= */

.bv-ocean-features {
  position: relative;
  overflow: hidden;

  padding: 110px 0 115px;

  background:
    linear-gradient(
      180deg,
      #F6F9FD 0%,
      #FFFFFF 100%
    );

  border-top:
    1px solid rgba(226,231,236,.72);
}


/* subtle ambient background */

.bv-ocean-features::before {
  content: "";

  position: absolute;

  width: 620px;
  height: 620px;

  left: 50%;
  top: -470px;

  transform:
    translateX(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.06);

  filter:
    blur(85px);

  pointer-events: none;
}


/* =========================================
   HEADING
   ========================================= */

.bv-ocean-features__heading {
  position: relative;

  max-width: 820px;

  margin:
    0 auto 64px;

  text-align: center;
}


.bv-ocean-features .bv-eyebrow {
  margin:
    0 0 13px;
}


.bv-ocean-features__title {
  margin: 0;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    clamp(40px, 4.4vw, 58px);

  font-weight: 800;

  line-height: 1.07;

  letter-spacing:
    -0.02em;
}


.bv-ocean-features__title span {
  display: block;

  color:
    var(--bv-blue);
}


.bv-ocean-features__intro {
  max-width: 680px;

  margin:
    20px auto 0;

  color:
    var(--bv-muted) !important;

  font-size: 16px;

  line-height: 1.72;
}


/* =========================================
   GRID
   ========================================= */

.bv-ocean-features__grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap: 20px;
}


/* =========================================
   CARD
   ========================================= */

.bv-ocean-feature {
  position: relative;

  min-height: 350px;

  display: flex;
  flex-direction: column;

  padding:
    29px 27px 24px;

  overflow: hidden;

  background:
    rgba(255,255,255,.90);

  border:
    1px solid
    var(--bv-border);

  border-radius:
    18px;

  box-shadow:
    0 12px 38px
    rgba(8,19,32,.045);

  transition:
    transform .35s ease,
    border-color .35s ease,
    box-shadow .35s ease;
}


/* blue line reveal */

.bv-ocean-feature::before {
  content: "";

  position: absolute;

  top: 0;
  left: 0;

  width: 100%;
  height: 3px;

  background:
    linear-gradient(
      90deg,
      var(--bv-blue),
      #70AEFF
    );

  transform:
    scaleX(0);

  transform-origin:
    left center;

  transition:
    transform .45s ease;
}


/* background glow */

.bv-ocean-feature::after {
  content: "";

  position: absolute;

  width: 180px;
  height: 180px;

  right: -100px;
  top: -100px;

  border-radius: 50%;

  background:
    rgba(10,102,255,.10);

  filter:
    blur(30px);

  opacity: 0;

  transition:
    opacity .4s ease;

  pointer-events: none;
}


/* =========================================
   CARD TOP
   ========================================= */

.bv-ocean-feature__top {
  position: relative;
  z-index: 2;

  display: flex;

  align-items: center;

  justify-content:
    space-between;

  margin-bottom: 30px;
}


/* number */

.bv-ocean-feature__number {
  color:
    rgba(8,19,32,.22);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 12px;

  font-weight: 800;

  letter-spacing:
    .10em;
}


/* icon */

.bv-ocean-feature__icon {
  width: 55px;
  height: 55px;

  display: grid;

  place-items: center;

  color:
    var(--bv-blue);

  background:
    rgba(10,102,255,.065);

  border:
    1px solid
    rgba(10,102,255,.14);

  border-radius: 15px;

  transition:
    color .3s ease,
    background .3s ease,
    transform .3s ease,
    box-shadow .3s ease;
}


.bv-ocean-feature__icon svg {
  width: 26px;
  height: 26px;

  fill: none;

  stroke:
    currentColor;

  stroke-width:
    1.6;

  stroke-linecap:
    round;

  stroke-linejoin:
    round;
}


/* =========================================
   CONTENT
   ========================================= */

.bv-ocean-feature h3 {
  position: relative;
  z-index: 2;

  margin:
    0 0 14px;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    19px;

  font-weight: 700;

  line-height: 1.28;

  letter-spacing:
    -0.012em;
}


.bv-ocean-feature p {
  position: relative;
  z-index: 2;

  margin: 0;

  color:
    var(--bv-muted) !important;

  font-size: 14px;

  line-height: 1.7;
}


/* =========================================
   CARD FOOTER
   ========================================= */

.bv-ocean-feature__footer {
  position: relative;
  z-index: 2;

  display: flex;

  align-items: center;

  justify-content:
    space-between;

  margin-top: auto;

  padding-top: 25px;

  color:
    var(--bv-blue);

  border-top:
    1px solid
    rgba(226,231,236,.80);

  font-family:
    "Inter",
    Arial,
    sans-serif;

  font-size: 11px;

  font-weight: 700;

  letter-spacing:
    .04em;

  text-transform:
    uppercase;
}


.bv-ocean-feature__footer i {
  font-style: normal;

  font-size: 16px;

  transition:
    transform .25s ease;
}


/* =========================================
   HOVER
   ========================================= */

.bv-ocean-feature:hover {
  transform:
    translateY(-7px);

  border-color:
    rgba(10,102,255,.23);

  box-shadow:
    0 24px 60px
    rgba(8,19,32,.09);
}


.bv-ocean-feature:hover::before {
  transform:
    scaleX(1);
}


.bv-ocean-feature:hover::after {
  opacity: 1;
}


.bv-ocean-feature:hover
.bv-ocean-feature__icon {

  color: #FFFFFF;

  background:
    var(--bv-blue);

  transform:
    translateY(-3px)
    rotate(-2deg);

  box-shadow:
    0 11px 28px
    rgba(10,102,255,.24);
}


.bv-ocean-feature:hover
.bv-ocean-feature__footer i {

  transform:
    translateX(4px);
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-ocean-features {
    padding:
      88px 0;
  }


  .bv-ocean-features__heading {
    margin-bottom:
      50px;
  }


  .bv-ocean-features__grid {
    grid-template-columns:
      repeat(2, 1fr);
  }


  .bv-ocean-feature {
    min-height:
      300px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-ocean-features {
    padding:
      70px 0 74px;
  }


  .bv-ocean-features__heading {
    margin-bottom:
      40px;

    text-align: left;
  }


  .bv-ocean-features__title {
    font-size: 36px;

    line-height: 1.09;
  }


  .bv-ocean-features__intro {
    margin-top:
      17px;

    font-size: 16px;
  }


  .bv-ocean-features__grid {
    grid-template-columns:
      1fr;

    gap: 15px;
  }


  .bv-ocean-feature {
    min-height: auto;

    padding:
      26px 23px 22px;
  }


  .bv-ocean-feature__top {
    margin-bottom:
      24px;
  }


  .bv-ocean-feature__footer {
    margin-top:
      24px;
  }
}


/* =========================================
   REDUCED MOTION
   ========================================= */

@media (prefers-reduced-motion: reduce) {

  .bv-ocean-feature,
  .bv-ocean-feature::before,
  .bv-ocean-feature::after,
  .bv-ocean-feature__icon,
  .bv-ocean-feature__footer i {
    transition:
      none !important;
  }
}

/* =========================================
   BLUE VOLT — OCEAN PRO SMART CONTROL
   ========================================= */

.bv-ocean-control {
  position: relative;
  overflow: hidden;
  isolation: isolate;

  padding: 115px 0;

  color: #FFFFFF;

  background:
    linear-gradient(
      135deg,
      #06111D 0%,
      #081A2D 52%,
      #06111D 100%
    );
}


/* =========================================
   TECH GRID
   ========================================= */

.bv-ocean-control::before {
  content: "";

  position: absolute;
  inset: 0;

  z-index: -4;

  opacity: .11;

  background-image:
    linear-gradient(
      rgba(255,255,255,.045) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(255,255,255,.045) 1px,
      transparent 1px
    );

  background-size:
    58px 58px;

  mask-image:
    linear-gradient(
      90deg,
      #000 0%,
      rgba(0,0,0,.65) 45%,
      transparent 100%
    );

  pointer-events: none;
}


/* =========================================
   AMBIENT GLOW
   ========================================= */

.bv-ocean-control__glow {
  position: absolute;

  z-index: -3;

  width: 650px;
  height: 650px;

  left: -260px;
  top: 50%;

  transform:
    translateY(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.25);

  filter:
    blur(120px);

  opacity: .62;

  animation:
    bvOceanControlGlow
    7s
    ease-in-out
    infinite
    alternate;
}


/* =========================================
   GRID
   ========================================= */

.bv-ocean-control__grid {
  position: relative;
  z-index: 2;

  display: grid;

  grid-template-columns:
    minmax(420px, 1fr)
    minmax(0, .95fr);

  gap: 90px;

  align-items: center;
}


/* =========================================
   PHONE VISUAL
   ========================================= */

.bv-ocean-control__visual {
  position: relative;

  min-height: 610px;

  display: flex;

  align-items: center;
  justify-content: center;
}


/* platform glow */

.bv-ocean-control__visual::after {
  content: "";

  position: absolute;

  width: 330px;
  height: 80px;

  left: 50%;
  bottom: 35px;

  transform:
    translateX(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.35);

  filter:
    blur(36px);

  opacity: .55;
}


/* =========================================
   ORBITS
   ========================================= */

.bv-ocean-control__orbit {
  position: absolute;

  left: 50%;
  top: 50%;

  border:
    1px solid
    rgba(109,168,255,.12);

  border-radius: 50%;

  transform:
    translate(-50%,-50%);

  pointer-events: none;
}


.bv-ocean-control__orbit--1 {
  width: 420px;
  height: 420px;
}


.bv-ocean-control__orbit--2 {
  width: 540px;
  height: 540px;
}


/* =========================================
   PHONE
   ========================================= */

.bv-ocean-control__phone {
  position: relative;
  z-index: 3;

  width:
    min(100%, 300px);

  animation:
    bvOceanPhoneFloat
    5.8s
    ease-in-out
    infinite
    alternate;
}


.bv-ocean-control__phone img {
  display: block;

  width: 100%;
  height: auto;

  object-fit: contain;

  filter:
    drop-shadow(
      0 35px 48px
      rgba(0,0,0,.35)
    );
}


/* =========================================
   FLOATING DATA CHIPS
   ========================================= */

.bv-ocean-control__chip {
  position: absolute;
  z-index: 5;

  display: flex;

  align-items: center;

  gap: 11px;

  min-width: 175px;

  padding:
    13px 15px;

  background:
    rgba(255,255,255,.92);

  border:
    1px solid
    rgba(255,255,255,.70);

  border-radius: 12px;

  box-shadow:
    0 18px 45px
    rgba(0,0,0,.18);

  backdrop-filter:
    blur(12px);

  animation:
    bvOceanChipFloat
    5s
    ease-in-out
    infinite
    alternate;
}


.bv-ocean-control__chip--top {
  top: 90px;
  left: 15px;
}


.bv-ocean-control__chip--right {
  top: 245px;
  right: 0;

  animation-delay:
    .7s;
}


.bv-ocean-control__chip--bottom {
  left: 35px;
  bottom: 80px;

  animation-delay:
    1.2s;
}


/* icon */

.bv-ocean-control__chip-icon {
  width: 35px;
  height: 35px;

  flex: 0 0 35px;

  display: grid;

  place-items: center;

  color: #FFFFFF;

  background:
    var(--bv-blue);

  border-radius: 50%;

  box-shadow:
    0 7px 18px
    rgba(10,102,255,.24);
}


.bv-ocean-control__chip small {
  display: block;

  margin-bottom: 2px;

  color:
    var(--bv-muted);

  font-size: 9px;

  font-weight: 600;

  text-transform: uppercase;

  letter-spacing:
    .06em;
}


.bv-ocean-control__chip strong {
  display: block;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 11px;

  font-weight: 700;
}


/* =========================================
   CONTENT
   ========================================= */

.bv-ocean-control__content {
  max-width: 620px;
}


.bv-ocean-control .bv-eyebrow {
  margin:
    0 0 16px;

  color:
    #70ABFF;
}


.bv-ocean-control__title {
  margin: 0;

  color:
    #FFFFFF !important;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    clamp(42px, 4.5vw, 60px);

  font-weight: 800;

  line-height: 1.06;

  letter-spacing:
    -0.018em;
}


.bv-ocean-control__title span {
  display: block;

  color:
    #6DA8FF;
}


.bv-ocean-control__lead {
  max-width: 590px;

  margin:
    25px 0 34px;

  color:
    rgba(255,255,255,.70) !important;

  font-size: 16px;

  line-height: 1.75;
}


/* =========================================
   BENEFIT LIST
   ========================================= */

.bv-ocean-control__list {
  display: flex;

  flex-direction: column;

  gap: 25px;
}


.bv-ocean-control__item {
  display: flex;

  align-items: flex-start;

  gap: 16px;
}


.bv-ocean-control__item-icon {
  width: 44px;
  height: 44px;

  flex: 0 0 44px;

  display: grid;

  place-items: center;

  color:
    #78B0FF;

  background:
    rgba(10,102,255,.10);

  border:
    1px solid
    rgba(109,168,255,.20);

  border-radius: 12px;

  transition:
    color .3s ease,
    background .3s ease,
    transform .3s ease,
    box-shadow .3s ease;
}


.bv-ocean-control__item-icon svg {
  width: 21px;
  height: 21px;

  fill: none;

  stroke:
    currentColor;

  stroke-width:
    1.6;

  stroke-linecap:
    round;

  stroke-linejoin:
    round;
}


.bv-ocean-control__item:hover
.bv-ocean-control__item-icon {

  color: #FFFFFF;

  background:
    var(--bv-blue);

  transform:
    translateY(-3px);

  box-shadow:
    0 11px 27px
    rgba(10,102,255,.20);
}


.bv-ocean-control__item strong {
  display: block;

  margin-bottom: 5px;

  color:
    #FFFFFF;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 15px;

  font-weight: 700;
}


.bv-ocean-control__item p {
  max-width: 480px;

  margin: 0;

  color:
    rgba(255,255,255,.56) !important;

  font-size: 13px;

  line-height: 1.65;
}


/* =========================================
   BLUE VOLT NOTE
   ========================================= */

.bv-ocean-control__note {
  margin-top: 34px;

  padding:
    19px 21px;

  background:
    rgba(255,255,255,.055);

  border:
    1px solid
    rgba(255,255,255,.11);

  border-radius: 13px;
}


.bv-ocean-control__note span {
  display: block;

  margin-bottom: 5px;

  color:
    #77B0FF;

  font-family:
    "Inter",
    Arial,
    sans-serif;

  font-size: 10px;

  font-weight: 800;

  letter-spacing:
    .12em;

  text-transform: uppercase;
}


.bv-ocean-control__note p {
  margin: 0;

  color:
    rgba(255,255,255,.60) !important;

  font-size: 12px;

  line-height: 1.65;
}


/* =========================================
   ANIMATIONS
   ========================================= */

@keyframes bvOceanPhoneFloat {

  from {
    transform:
      translateY(5px);
  }

  to {
    transform:
      translateY(-10px);
  }
}


@keyframes bvOceanChipFloat {

  from {
    transform:
      translateY(0);
  }

  to {
    transform:
      translateY(-6px);
  }
}


@keyframes bvOceanControlGlow {

  from {
    opacity: .45;

    transform:
      translateY(-50%)
      scale(.95);
  }

  to {
    opacity: .75;

    transform:
      translateY(-50%)
      scale(1.08);
  }
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-ocean-control {
    padding:
      90px 0;
  }


  .bv-ocean-control__grid {
    grid-template-columns:
      minmax(350px, .85fr)
      minmax(0, 1fr);

    gap: 45px;
  }


  .bv-ocean-control__visual {
    min-height:
      530px;
  }


  .bv-ocean-control__chip {
    min-width:
      155px;
  }


  .bv-ocean-control__orbit--1 {
    width: 350px;
    height: 350px;
  }


  .bv-ocean-control__orbit--2 {
    width: 440px;
    height: 440px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-ocean-control {
    padding:
      72px 0;
  }


  .bv-ocean-control__grid {
    grid-template-columns:
      1fr;

    gap: 45px;
  }


  .bv-ocean-control__visual {
    min-height:
      500px;

    order: 2;
  }


  .bv-ocean-control__content {
    order: 1;
  }


  .bv-ocean-control__title {
    font-size:
      38px;

    line-height:
      1.08;
  }


  .bv-ocean-control__lead {
    margin:
      20px 0 29px;

    font-size:
      16px;
  }


  .bv-ocean-control__phone {
    width:
      min(100%, 245px);
  }


  .bv-ocean-control__orbit--1 {
    width: 300px;
    height: 300px;
  }


  .bv-ocean-control__orbit--2 {
    width: 390px;
    height: 390px;
  }


  .bv-ocean-control__chip {
    min-width:
      145px;

    padding:
      11px 12px;
  }


  .bv-ocean-control__chip--top {
    top: 60px;
    left: 0;
  }


  .bv-ocean-control__chip--right {
    top: 210px;
    right: 0;
  }


  .bv-ocean-control__chip--bottom {
    left: 5px;
    bottom: 40px;
  }
}


/* =========================================
   REDUCED MOTION
   ========================================= */

@media (prefers-reduced-motion: reduce) {

  .bv-ocean-control__phone,
  .bv-ocean-control__chip,
  .bv-ocean-control__glow {
    animation:
      none !important;
  }
}

/* =========================================
   BLUE VOLT — OCEAN PRO INSTALLATION
   ========================================= */

.bv-ocean-install {
  position: relative;
  overflow: hidden;

  padding:
    110px 0 115px;

  background:
    #FFFFFF;
}


/* subtle background glow */

.bv-ocean-install::before {
  content: "";

  position: absolute;

  width: 550px;
  height: 550px;

  right: -300px;
  bottom: -320px;

  border-radius: 50%;

  background:
    rgba(10,102,255,.055);

  filter:
    blur(80px);

  pointer-events: none;
}


/* =========================================
   GRID
   ========================================= */

.bv-ocean-install__grid {
  position: relative;

  display: grid;

  grid-template-columns:
    minmax(0, 1.06fr)
    minmax(0, .94fr);

  gap: 80px;

  align-items: center;
}


/* =========================================
   IMAGE
   ========================================= */

.bv-ocean-install__visual {
  position: relative;
}


.bv-ocean-install__image {
  position: relative;

  min-height: 650px;

  overflow: hidden;

  border-radius:
    24px;

  background-image:
    url("BLUE-VOLT-OCEAN-INSTALLATION.webp");

  background-position:
    center;

  background-size:
    cover;

  background-repeat:
    no-repeat;

  box-shadow:
    0 30px 80px
    rgba(8,19,32,.14);

  transition:
    transform .5s ease,
    box-shadow .5s ease;
}


/* subtle image overlay */

.bv-ocean-install__image::after {
  content: "";

  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      180deg,
      transparent 58%,
      rgba(8,19,32,.18) 100%
    );

  pointer-events:
    none;
}


.bv-ocean-install__visual:hover
.bv-ocean-install__image {

  transform:
    translateY(-4px);

  box-shadow:
    0 38px 95px
    rgba(8,19,32,.18);
}


/* =========================================
   FLOATING BADGE
   ========================================= */

.bv-ocean-install__badge {
  position: absolute;

  right: -35px;
  bottom: 38px;

  max-width: 340px;

  display: flex;

  align-items: center;

  gap: 13px;

  padding:
    16px 18px;

  background:
    rgba(255,255,255,.95);

  border:
    1px solid
    var(--bv-border);

  border-radius:
    14px;

  box-shadow:
    0 20px 55px
    rgba(8,19,32,.15);

  backdrop-filter:
    blur(12px);

  animation:
    bvOceanInstallBadge
    5.5s
    ease-in-out
    infinite
    alternate;
}


.bv-ocean-install__badge-icon {
  width: 42px;
  height: 42px;

  flex: 0 0 42px;

  display: grid;

  place-items: center;

  color: #FFFFFF;

  background:
    var(--bv-blue);

  border-radius: 50%;

  font-weight: 800;

  box-shadow:
    0 9px 23px
    rgba(10,102,255,.24);
}


.bv-ocean-install__badge small {
  display: block;

  margin-bottom: 3px;

  color:
    var(--bv-blue);

  font-size: 9px;

  font-weight: 800;

  text-transform:
    uppercase;

  letter-spacing:
    .10em;
}


.bv-ocean-install__badge strong {
  display: block;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 12px;

  font-weight: 700;

  line-height: 1.4;
}


/* =========================================
   CONTENT
   ========================================= */

.bv-ocean-install__content {
  max-width: 610px;
}


.bv-ocean-install .bv-eyebrow {
  margin:
    0 0 15px;
}


.bv-ocean-install__title {
  margin: 0;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    clamp(40px, 4.2vw, 57px);

  font-weight: 800;

  line-height: 1.07;

  letter-spacing:
    -0.02em;
}


.bv-ocean-install__title span {
  display: block;

  color:
    var(--bv-blue);
}


.bv-ocean-install__intro {
  margin:
    25px 0 12px;

  color:
    var(--bv-text) !important;

  font-size: 17px;

  font-weight: 500;

  line-height: 1.7;
}


.bv-ocean-install__text {
  margin:
    0 0 32px;

  color:
    var(--bv-muted) !important;

  font-size: 15px;

  line-height: 1.72;
}


/* =========================================
   PROCESS
   ========================================= */

.bv-ocean-install__steps {
  position: relative;

  display: flex;

  flex-direction: column;

  gap: 0;

  margin-bottom: 34px;
}


/* vertical connector */

.bv-ocean-install__steps::before {
  content: "";

  position: absolute;

  top: 24px;
  bottom: 24px;
  left: 20px;

  width: 1px;

  background:
    linear-gradient(
      180deg,
      rgba(10,102,255,.12),
      rgba(10,102,255,.40),
      rgba(10,102,255,.12)
    );
}


.bv-ocean-install__step {
  position: relative;

  display: grid;

  grid-template-columns:
    42px 1fr;

  gap: 17px;

  padding:
    0 0 27px;
}


.bv-ocean-install__step:last-child {
  padding-bottom:
    0;
}


/* number */

.bv-ocean-install__number {
  position: relative;
  z-index: 2;

  width: 41px;
  height: 41px;

  display: grid;

  place-items: center;

  color:
    var(--bv-blue);

  background:
    #FFFFFF;

  border:
    1px solid
    rgba(10,102,255,.25);

  border-radius:
    50%;

  box-shadow:
    0 7px 20px
    rgba(8,19,32,.06);

  font-family:
    "Inter",
    Arial,
    sans-serif;

  font-size: 9px;

  font-weight: 800;

  transition:
    color .3s ease,
    background .3s ease,
    transform .3s ease,
    box-shadow .3s ease;
}


/* headings */

.bv-ocean-install__step h3 {
  margin:
    1px 0 5px;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 15px;

  font-weight: 700;

  line-height: 1.35;
}


.bv-ocean-install__step p {
  max-width: 490px;

  margin: 0;

  color:
    var(--bv-muted) !important;

  font-size: 13px;

  line-height: 1.62;
}


/* hover */

.bv-ocean-install__step:hover
.bv-ocean-install__number {

  color: #FFFFFF;

  background:
    var(--bv-blue);

  transform:
    scale(1.06);

  box-shadow:
    0 10px 27px
    rgba(10,102,255,.20);
}


/* button arrow */

.bv-ocean-install
.bv-btn span {

  transition:
    transform .25s ease;
}


.bv-ocean-install
.bv-btn:hover span {

  transform:
    translateX(4px);
}


/* =========================================
   ANIMATION
   ========================================= */

@keyframes bvOceanInstallBadge {

  from {
    transform:
      translateY(0);
  }

  to {
    transform:
      translateY(-7px);
  }
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-ocean-install {
    padding:
      88px 0;
  }


  .bv-ocean-install__grid {
    gap:
      48px;
  }


  .bv-ocean-install__image {
    min-height:
      570px;
  }


  .bv-ocean-install__badge {
    right:
      -18px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-ocean-install {
    padding:
      72px 0;
  }


  .bv-ocean-install__grid {
    grid-template-columns:
      1fr;

    gap:
      44px;
  }


  .bv-ocean-install__visual {
    order: 2;
  }


  .bv-ocean-install__content {
    order: 1;

    max-width:
      100%;
  }


  .bv-ocean-install__title {
    font-size:
      36px;

    line-height:
      1.09;
  }


  .bv-ocean-install__intro {
    font-size:
      16px;
  }


  .bv-ocean-install__image {
    min-height:
      400px;

    border-radius:
      18px;
  }


  .bv-ocean-install__badge {
    position: relative;

    right: auto;
    bottom: auto;

    max-width: none;

    margin:
      -42px 15px 0;

    animation:
      none;
  }
}


/* =========================================
   REDUCED MOTION
   ========================================= */

@media (prefers-reduced-motion: reduce) {

  .bv-ocean-install__badge {
    animation:
      none !important;
  }


  .bv-ocean-install__image,
  .bv-ocean-install__number {
    transition:
      none !important;
  }
}

/* =========================================
   BLUE VOLT — IS OCEAN PRO RIGHT FOR YOU
   ========================================= */

.bv-ocean-fit {
  position: relative;
  overflow: hidden;

  padding: 110px 0 115px;

  background:
    linear-gradient(
      180deg,
      #F6F9FD 0%,
      #FFFFFF 100%
    );
}


/* ambient blue light */

.bv-ocean-fit::before {
  content: "";

  position: absolute;

  width: 600px;
  height: 600px;

  left: 50%;
  top: -460px;

  transform:
    translateX(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.065);

  filter:
    blur(90px);

  pointer-events: none;
}


/* =========================================
   HEADING
   ========================================= */

.bv-ocean-fit__heading {
  position: relative;

  max-width: 820px;

  margin:
    0 auto 60px;

  text-align: center;
}


.bv-ocean-fit .bv-eyebrow {
  margin:
    0 0 14px;
}


.bv-ocean-fit__title {
  margin: 0;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    clamp(40px, 4.4vw, 58px);

  font-weight: 800;

  line-height: 1.07;

  letter-spacing:
    -0.02em;
}


.bv-ocean-fit__title span {
  display: block;

  color:
    var(--bv-blue);
}


.bv-ocean-fit__intro {
  max-width: 690px;

  margin:
    20px auto 0;

  color:
    var(--bv-muted) !important;

  font-size: 16px;

  line-height: 1.72;
}


/* =========================================
   GRID
   ========================================= */

.bv-ocean-fit__grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0,1fr));

  gap: 20px;

  margin-bottom: 42px;
}


/* =========================================
   CARD
   ========================================= */

.bv-ocean-fit__card {
  position: relative;

  min-height: 315px;

  padding:
    28px 26px;

  overflow: hidden;

  background:
    #FFFFFF;

  border:
    1px solid
    var(--bv-border);

  border-radius:
    18px;

  box-shadow:
    0 12px 36px
    rgba(8,19,32,.045);

  transition:
    transform .35s ease,
    border-color .35s ease,
    box-shadow .35s ease;
}


/* blue top line */

.bv-ocean-fit__card::before {
  content: "";

  position: absolute;

  top: 0;
  left: 0;

  width: 100%;
  height: 3px;

  background:
    linear-gradient(
      90deg,
      var(--bv-blue),
      #70AEFF
    );

  transform:
    scaleX(0);

  transform-origin:
    left center;

  transition:
    transform .4s ease;
}


/* number */

.bv-ocean-fit__number {
  position: absolute;

  top: 25px;
  right: 25px;

  color:
    rgba(8,19,32,.12);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 31px;

  font-weight: 800;
}


/* icon */

.bv-ocean-fit__icon {
  width: 54px;
  height: 54px;

  display: grid;

  place-items: center;

  margin-bottom: 27px;

  color:
    var(--bv-blue);

  background:
    rgba(10,102,255,.065);

  border:
    1px solid
    rgba(10,102,255,.14);

  border-radius: 14px;

  transition:
    color .3s ease,
    background .3s ease,
    transform .3s ease,
    box-shadow .3s ease;
}


.bv-ocean-fit__icon svg {
  width: 25px;
  height: 25px;

  fill: none;

  stroke:
    currentColor;

  stroke-width: 1.6;

  stroke-linecap:
    round;

  stroke-linejoin:
    round;
}


.bv-ocean-fit__card h3 {
  margin:
    0 0 12px;

  color:
    var(--bv-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 18px;

  font-weight: 700;

  line-height: 1.3;

  letter-spacing:
    -0.01em;
}


.bv-ocean-fit__card p {
  margin: 0;

  color:
    var(--bv-muted) !important;

  font-size: 13px;

  line-height: 1.7;
}


/* hover */

.bv-ocean-fit__card:hover {
  transform:
    translateY(-6px);

  border-color:
    rgba(10,102,255,.23);

  box-shadow:
    0 22px 55px
    rgba(8,19,32,.085);
}


.bv-ocean-fit__card:hover::before {
  transform:
    scaleX(1);
}


.bv-ocean-fit__card:hover
.bv-ocean-fit__icon {

  color: #FFFFFF;

  background:
    var(--bv-blue);

  transform:
    translateY(-3px);

  box-shadow:
    0 11px 27px
    rgba(10,102,255,.22);
}


/* =========================================
   DECISION PANEL
   ========================================= */

.bv-ocean-fit__decision {
  display: grid;

  grid-template-columns:
    minmax(0,1.3fr)
    minmax(280px,.7fr);

  gap: 50px;

  align-items: center;

  padding:
    38px 40px;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      var(--bv-navy),
      #0A2038
    );

  border-radius:
    20px;

  box-shadow:
    0 22px 60px
    rgba(8,19,32,.12);
}


.bv-ocean-fit__decision-label {
  display: block;

  margin-bottom: 9px;

  color:
    #77B0FF;

  font-size: 10px;

  font-weight: 800;

  letter-spacing:
    .13em;

  text-transform:
    uppercase;
}


.bv-ocean-fit__decision h3 {
  max-width: 650px;

  margin:
    0 0 12px;

  color:
    #FFFFFF !important;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    27px;

  font-weight: 700;

  line-height: 1.25;

  letter-spacing:
    -0.015em;
}


.bv-ocean-fit__decision h3 span {
  color:
    #6DA8FF;
}


.bv-ocean-fit__decision p {
  max-width: 650px;

  margin: 0;

  color:
    rgba(255,255,255,.62) !important;

  font-size: 13px;

  line-height: 1.7;
}


.bv-ocean-fit__decision-action {
  display: flex;

  flex-direction: column;

  align-items: stretch;

  gap: 10px;
}


.bv-ocean-fit__decision-action
.bv-btn {

  width: 100%;
}


.bv-ocean-fit__decision-action
.bv-btn span {

  transition:
    transform .25s ease;
}


.bv-ocean-fit__decision-action
.bv-btn:hover span {

  transform:
    translateX(4px);
}


.bv-ocean-fit__decision-action small {
  color:
    rgba(255,255,255,.46);

  font-size: 10px;

  text-align: center;

  line-height: 1.5;
}


/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {

  .bv-ocean-fit {
    padding:
      88px 0;
  }


  .bv-ocean-fit__grid {
    grid-template-columns:
      repeat(2,1fr);
  }


  .bv-ocean-fit__card {
    min-height:
      280px;
  }


  .bv-ocean-fit__decision {
    gap:
      30px;

    padding:
      34px;
  }
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {

  .bv-ocean-fit {
    padding:
      70px 0;
  }


  .bv-ocean-fit__heading {
    margin-bottom:
      40px;

    text-align: left;
  }


  .bv-ocean-fit__title {
    font-size: 36px;

    line-height: 1.09;
  }


  .bv-ocean-fit__intro {
    margin-top:
      17px;

    font-size:
      16px;
  }


  .bv-ocean-fit__grid {
    grid-template-columns:
      1fr;

    gap:
      15px;
  }


  .bv-ocean-fit__card {
    min-height:
      auto;

    padding:
      25px 23px;
  }


  .bv-ocean-fit__decision {
    grid-template-columns:
      1fr;

    gap: 27px;

    padding:
      29px 24px;

    border-radius:
      18px;
  }


  .bv-ocean-fit__decision h3 {
    font-size:
      23px;
  }
}


/* =========================================
   REDUCED MOTION
   ========================================= */

@media (prefers-reduced-motion: reduce) {

  .bv-ocean-fit__card,
  .bv-ocean-fit__card::before,
  .bv-ocean-fit__icon {
    transition:
      none !important;
  }
}

/* =========================================
   BLUE VOLT — OCEAN PRO FAQ
   ========================================= */

.bv-ocean-faq {
  position: relative;
  overflow: hidden;

  padding: 110px 0;

  background: #FFFFFF;
}


.bv-ocean-faq__grid {
  display: grid;

  grid-template-columns:
    minmax(300px, .72fr)
    minmax(0, 1.28fr);

  gap: 90px;

  align-items: start;
}


/* Heading */

.bv-ocean-faq__heading {
  position: sticky;
  top: 125px;

  max-width: 450px;
}


.bv-ocean-faq .bv-eyebrow {
  margin: 0 0 14px;
}


.bv-ocean-faq__title {
  margin: 0;

  color: var(--bv-navy);

  font-family: "Montserrat", Arial, sans-serif;

  font-size: clamp(38px, 4vw, 54px);

  font-weight: 800;

  line-height: 1.08;

  letter-spacing: -0.02em;
}


.bv-ocean-faq__title span {
  display: block;

  color: var(--bv-blue);
}


.bv-ocean-faq__intro {
  margin: 20px 0 0;

  color: var(--bv-muted) !important;

  font-size: 15px;

  line-height: 1.72;
}


/* Help box */

.bv-ocean-faq__help {
  display: flex;

  align-items: flex-start;

  gap: 13px;

  margin-top: 30px;

  padding: 18px;

  background: var(--bv-light);

  border: 1px solid var(--bv-border);

  border-radius: 13px;
}


.bv-ocean-faq__help-icon {
  width: 37px;
  height: 37px;

  flex: 0 0 37px;

  display: grid;

  place-items: center;

  color: #FFFFFF;

  background: var(--bv-blue);

  border-radius: 50%;

  font-weight: 800;
}


.bv-ocean-faq__help strong {
  display: block;

  margin-bottom: 4px;

  color: var(--bv-navy);

  font-family: "Montserrat", Arial, sans-serif;

  font-size: 12px;
}


.bv-ocean-faq__help p {
  margin: 0;

  color: var(--bv-muted) !important;

  font-size: 11px;

  line-height: 1.6;
}


/* =========================================
   ACCORDION
   ========================================= */

.bv-ocean-faq__items {
  display: flex;

  flex-direction: column;

  gap: 12px;
}


.bv-ocean-faq__item {
  overflow: hidden;

  background: #FFFFFF;

  border: 1px solid var(--bv-border);

  border-radius: 14px;

  box-shadow:
    0 8px 28px rgba(8,19,32,.035);

  transition:
    border-color .3s ease,
    box-shadow .3s ease;
}


.bv-ocean-faq__item[open] {
  border-color:
    rgba(10,102,255,.22);

  box-shadow:
    0 14px 38px rgba(8,19,32,.065);
}


/* remove browser marker */

.bv-ocean-faq__item summary {
  list-style: none;
}


.bv-ocean-faq__item summary::-webkit-details-marker {
  display: none;
}


.bv-ocean-faq__item summary {
  position: relative;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 25px;

  padding: 22px 23px;

  cursor: pointer;

  color: var(--bv-navy);

  font-family: "Montserrat", Arial, sans-serif;

  font-size: 15px;

  font-weight: 700;

  line-height: 1.4;
}


/* plus/minus */

.bv-ocean-faq__item summary i {
  position: relative;

  width: 30px;
  height: 30px;

  flex: 0 0 30px;

  border-radius: 50%;

  background:
    rgba(10,102,255,.07);

  border:
    1px solid rgba(10,102,255,.13);
}


.bv-ocean-faq__item summary i::before,
.bv-ocean-faq__item summary i::after {

  content: "";

  position: absolute;

  left: 50%;
  top: 50%;

  width: 11px;
  height: 1.5px;

  background: var(--bv-blue);

  border-radius: 10px;

  transform:
    translate(-50%,-50%);

  transition:
    transform .25s ease;
}


.bv-ocean-faq__item summary i::after {
  transform:
    translate(-50%,-50%)
    rotate(90deg);
}


.bv-ocean-faq__item[open]
summary i::after {

  transform:
    translate(-50%,-50%)
    rotate(0);
}


/* answer */

.bv-ocean-faq__answer {
  padding:
    0 68px 23px 23px;
}


.bv-ocean-faq__answer p {
  max-width: 650px;

  margin: 0;

  color: var(--bv-muted) !important;

  font-size: 13px;

  line-height: 1.75;
}


/* Tablet */

@media (max-width: 1024px) {

  .bv-ocean-faq {
    padding: 88px 0;
  }


  .bv-ocean-faq__grid {
    gap: 48px;
  }


  .bv-ocean-faq__heading {
    top: 110px;
  }
}


/* Mobile */

@media (max-width: 767px) {

  .bv-ocean-faq {
    padding: 70px 0;
  }


  .bv-ocean-faq__grid {
    grid-template-columns: 1fr;

    gap: 38px;
  }


  .bv-ocean-faq__heading {
    position: static;

    max-width: 100%;
  }


  .bv-ocean-faq__title {
    font-size: 36px;
  }


  .bv-ocean-faq__item summary {
    padding: 19px 18px;

    font-size: 14px;
  }


  .bv-ocean-faq__answer {
    padding:
      0 55px 19px 18px;
  }
}

/* =========================================
   BLUE VOLT — OCEAN PRO FINAL CTA
   ========================================= */

.bv-ocean-final {
  position: relative;

  overflow: hidden;

  isolation: isolate;

  padding: 105px 0;

  color: #FFFFFF;

  background:
    linear-gradient(
      135deg,
      #06111D 0%,
      #081B30 55%,
      #06111D 100%
    );
}


/* subtle grid */

.bv-ocean-final::before {
  content: "";

  position: absolute;

  inset: 0;

  z-index: -3;

  opacity: .09;

  background-image:
    linear-gradient(
      rgba(255,255,255,.05) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(255,255,255,.05) 1px,
      transparent 1px
    );

  background-size:
    60px 60px;
}


/* glow */

.bv-ocean-final__glow {
  position: absolute;

  z-index: -2;

  width: 600px;
  height: 600px;

  right: -200px;
  top: 50%;

  transform:
    translateY(-50%);

  border-radius: 50%;

  background:
    rgba(10,102,255,.25);

  filter:
    blur(115px);

  animation:
    bvOceanFinalGlow
    6.5s
    ease-in-out
    infinite
    alternate;
}


/* layout */

.bv-ocean-final__inner {
  position: relative;

  z-index: 2;

  display: grid;

  grid-template-columns:
    minmax(0,1.15fr)
    minmax(320px,.65fr);

  gap: 85px;

  align-items: center;
}


/* copy */

.bv-ocean-final .bv-eyebrow {
  margin: 0 0 16px;

  color: #70ABFF;
}


.bv-ocean-final__title {
  max-width: 700px;

  margin: 0;

  color: #FFFFFF !important;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size:
    clamp(44px, 4.8vw, 65px);

  font-weight: 800;

  line-height: 1.05;

  letter-spacing:
    -0.015em;
}


.bv-ocean-final__title span {
  display: block;

  color: #6DA8FF;
}


.bv-ocean-final__text {
  max-width: 630px;

  margin:
    24px 0 32px;

  color:
    rgba(255,255,255,.69) !important;

  font-size: 16px;

  line-height: 1.75;
}


/* buttons */

.bv-ocean-final__actions {
  display: flex;

  flex-wrap: wrap;

  gap: 14px;
}


.bv-ocean-final__primary {
  box-shadow:
    0 14px 38px
    rgba(10,102,255,.27);
}


.bv-ocean-final__primary span {
  transition:
    transform .25s ease;
}


.bv-ocean-final__primary:hover span {
  transform:
    translateX(4px);
}


.bv-ocean-final__call {
  color: #FFFFFF !important;

  background:
    rgba(255,255,255,.06);

  border:
    1px solid
    rgba(255,255,255,.35);

  backdrop-filter:
    blur(9px);
}


.bv-ocean-final__call:hover {
  color: #FFFFFF !important;

  background:
    rgba(255,255,255,.12);

  border-color:
    rgba(255,255,255,.65);
}


/* =========================================
   MESSAGE CARD
   ========================================= */

.bv-ocean-final__message {
  padding: 31px 29px;

  background:
    rgba(255,255,255,.075);

  border:
    1px solid
    rgba(255,255,255,.14);

  border-radius: 19px;

  box-shadow:
    0 25px 65px
    rgba(0,0,0,.20);

  backdrop-filter:
    blur(16px);
}


.bv-ocean-final__message-label {
  display: block;

  margin-bottom: 17px;

  color: #70ABFF;

  font-size: 9px;

  font-weight: 800;

  letter-spacing: .15em;
}


.bv-ocean-final__message blockquote {
  margin: 0;

  color: #FFFFFF;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 23px;

  font-weight: 700;

  line-height: 1.4;

  letter-spacing:
    -0.015em;
}


.bv-ocean-final__message-line {
  width: 38px;
  height: 2px;

  margin: 23px 0;

  background:
    var(--bv-blue);

  box-shadow:
    0 0 12px
    rgba(10,102,255,.40);
}


.bv-ocean-final__message p {
  margin: 0;

  color:
    rgba(255,255,255,.58) !important;

  font-size: 12px;

  line-height: 1.65;
}


/* animation */

@keyframes bvOceanFinalGlow {

  from {
    opacity: .45;

    transform:
      translateY(-50%)
      scale(.95);
  }

  to {
    opacity: .76;

    transform:
      translateY(-50%)
      scale(1.08);
  }
}


/* Tablet */

@media (max-width: 1024px) {

  .bv-ocean-final {
    padding: 88px 0;
  }


  .bv-ocean-final__inner {
    gap: 45px;
  }
}


/* Mobile */

@media (max-width: 767px) {

  .bv-ocean-final {
    padding:
      72px 0 68px;
  }


  .bv-ocean-final__inner {
    grid-template-columns: 1fr;

    gap: 40px;
  }


  .bv-ocean-final__title {
    font-size: 38px;
  }


  .bv-ocean-final__text {
    font-size: 16px;
  }


  .bv-ocean-final__actions {
    flex-direction: column;
  }


  .bv-ocean-final__actions
  .bv-btn {

    width: 100%;
  }


  .bv-ocean-final__message {
    padding: 26px 23px;
  }


  .bv-ocean-final__message blockquote {
    font-size: 20px;
  }
}


/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

  .bv-ocean-final__glow {
    animation: none !important;
  }
}

/* =========================================================
   BLUE VOLT — SECTION SPACING SYSTEM
   ========================================================= */

:root {
    --bv-section-space: 88px;
    --bv-section-space-compact: 64px;
    --bv-section-space-tight: 44px;
}

/* ---------------------------------------------------------
   STANDARD SECTION
   --------------------------------------------------------- */

.bv-section {
    margin-top: 0;
    margin-bottom: 0;
}

.bv-section--standard {
    padding-top: var(--bv-section-space);
    padding-bottom: var(--bv-section-space);
}

/* ---------------------------------------------------------
   COMPACT SECTION
   --------------------------------------------------------- */

.bv-section--compact {
    padding-top: var(--bv-section-space-compact);
    padding-bottom: var(--bv-section-space-compact);
}

/* ---------------------------------------------------------
   TIGHT SECTION
   --------------------------------------------------------- */

.bv-section--tight {
    padding-top: var(--bv-section-space-tight);
    padding-bottom: var(--bv-section-space-tight);
}

/* Reduce only top spacing */
.bv-section--tight-top {
    padding-top: var(--bv-section-space-tight);
}

/* Reduce only bottom spacing */
.bv-section--tight-bottom {
    padding-bottom: var(--bv-section-space-tight);
}

/* Remove one side completely */
.bv-section--flush-top {
    padding-top: 0;
}

.bv-section--flush-bottom {
    padding-bottom: 0;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {

    :root {
        --bv-section-space: 72px;
        --bv-section-space-compact: 52px;
        --bv-section-space-tight: 36px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    :root {
        --bv-section-space: 56px;
        --bv-section-space-compact: 42px;
        --bv-section-space-tight: 28px;
    }

}

/* =========================================================
   BLUE VOLT — PREMIUM REFINEMENT LAYER
   =========================================================
   Pase de optimización (2026) — ver informe de benchmarking
   contra Tesla Powerwall, Span, EcoFlow y Anker SOLIX.

   No reemplaza nada de arriba: solo apaga/atenúa la capa de
   efectos decorativos que se repetía en casi todas las
   secciones (glow animado + grid técnico + anillos orbitales +
   shimmer en botones + tarjetas/badges flotando). La idea es
   que cada sección se apoye en un solo recurso visual por vez,
   no en cinco al mismo tiempo.

   Todo lo que sigue son overrides puntuales — se puede borrar
   este bloque completo para volver a la versión anterior.
   ========================================================= */

/* ---------------------------------------------------------
   1) Fondos técnicos (grid punteado) — se quitan.
   Quedaban duplicados con el glow + los anillos en las
   mismas secciones oscuras (EcoFlow, OCEAN Pro hero/control/
   final CTA).
   --------------------------------------------------------- */
.bv-ecoflow::before,
.bv-ocean-hero__grid-bg,
.bv-ocean-control::before,
.bv-ocean-final::before {
  display: none;
}

/* ---------------------------------------------------------
   2) Anillos orbitales — se quitan.
   Eran el tercer efecto decorativo simultáneo alrededor del
   producto (junto al glow y a la luz de piso). El producto
   se sostiene solo con la luz ambiental.
   --------------------------------------------------------- */
.bv-ecoflow__orbit,
.bv-ocean-hero__orbit,
.bv-ocean-control__orbit {
  display: none;
}

/* ---------------------------------------------------------
   3) Glow ambiental — deja de pulsar y se atenúa.
   Sigue estando (da profundidad a las secciones oscuras) pero
   fijo y más discreto, en vez de respirar en loop infinito.
   --------------------------------------------------------- */
.bv-hero::after,
.bv-ecoflow__glow,
.bv-final-cta__glow,
.bv-ocean-hero__glow,
.bv-ocean-control__glow,
.bv-ocean-final__glow {
  animation: none !important;
  opacity: .40 !important;
  transform: translateY(-50%) scale(.92) !important;
}

.bv-hero::after {
  transform: scale(.92) !important;
}

/* ---------------------------------------------------------
   4) Tarjetas y badges flotantes — dejan de flotar.
   El contenido se queda (son datos reales: certificaciones,
   "instalado por Blue Volt", etc.), pero ya no hace falta que
   se muevan solas todo el tiempo para leerse como premium.
   --------------------------------------------------------- */
.bv-why__badge,
.bv-ocean-intro__floating,
.bv-ocean-install__badge,
.bv-ocean-control__chip,
.bv-ecoflow__image-wrap,
.bv-ocean-hero__product,
.bv-ocean-control__phone {
  animation: none !important;
}

/* ---------------------------------------------------------
   5) Shimmer en botones primarios — se quita.
   Es el efecto más "template" del sitio; el botón ya
   comunica jerarquía por color y por el glow del box-shadow,
   no necesita además un brillo barriendo al hover.
   --------------------------------------------------------- */
.bv-hero .bv-btn--primary::after,
.bv-final-cta__primary::after {
  content: none;
  display: none;
}

/* ---------------------------------------------------------
   6) Sombras base — un poco más contenidas.
   Afecta a .bv-card y a cualquier componente que use estos
   tokens; las sombras puntuales de cada sección quedan igual
   (ya eran razonables), esto solo baja el piso general.
   --------------------------------------------------------- */
:root {
  --bv-shadow-sm: 0 6px 18px rgba(8, 19, 32, .05);
  --bv-shadow-md: 0 14px 34px rgba(8, 19, 32, .08);
}

/* ---------------------------------------------------------
   Reduced motion: ya no hay animaciones ambientales que
   apagar acá — se dejaron fijas arriba para todos los
   usuarios, no solo para quienes piden menos movimiento.
   --------------------------------------------------------- */

/* =========================================================
   BLUE VOLT — MOTION & POLISH LAYER (fase 2)
   =========================================================
   Segunda pasada: movimiento con propósito (scroll-reveal,
   una sola vez por elemento, nunca en loop) + terminación de
   detalles — contraste tipográfico, curvas de hover más
   prolijas, y algo más de variación entre secciones.

   Sigue sin tocar ningún shortcode, clase existente ni
   contenido: todo esto son overrides/adiciones al final del
   archivo, igual que la capa anterior.
   ========================================================= */

/* ---------------------------------------------------------
   1) Scroll reveal
   Lo activa blue-volt-reveal.js agregando "bv-reveal" /
   "bv-reveal-fade" + "bv-in-view" cuando el elemento entra en
   pantalla — una vez, no en loop. Progressive enhancement: si
   el script no corre (bloqueado, navegador viejo, JS
   desactivado), estas clases nunca se agregan y no se oculta
   nada por CSS solo. "bv-reveal" es para bloques de contenido
   sin transform propio en hover; "bv-reveal-fade" es solo
   opacidad, para tarjetas/badges que ya tienen su propio
   transform al hacer hover (así no compiten entre sí).
   --------------------------------------------------------- */
.bv-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity .7s cubic-bezier(.16, .8, .3, 1),
    transform .7s cubic-bezier(.16, .8, .3, 1);
  transition-delay: var(--bv-reveal-delay, 0ms);
}

.bv-reveal.bv-in-view {
  opacity: 1;
  transform: translateY(0);
}

.bv-reveal-fade {
  opacity: 0;
  transition: opacity .6s ease;
  transition-delay: var(--bv-reveal-delay, 0ms);
}

.bv-reveal-fade.bv-in-view {
  opacity: 1;
}

/* ---------------------------------------------------------
   2) Contraste tipográfico
   --bv-muted pasa de un gris ~4.6:1 sobre blanco a uno con
   más contraste (~5.9:1) y una pizca más frío — se usa en
   todo el sitio vía variable, así que este único cambio
   ordena la jerarquía de texto en cada sección.
   --------------------------------------------------------- */
:root {
  --bv-muted: #565F6B;
}

/* ---------------------------------------------------------
   3) Curvas de hover más prolijas
   Mismo comportamiento, mejor "feel": se reemplaza el ease
   genérico por una curva con salida más suave en los
   elementos que ya tenían hover con transform.
   --------------------------------------------------------- */
.bv-advantage-card,
.bv-ocean-feature,
.bv-ocean-fit__card,
.bv-process__icon,
.bv-advantage-card__icon,
.bv-ocean-feature__icon,
.bv-ocean-fit__icon,
.bv-btn {
  transition-timing-function: cubic-bezier(.16, .8, .3, 1);
}

/* ---------------------------------------------------------
   4) Ritmo entre secciones
   "Advantages" quedaba blanco puro entre dos secciones ya
   blancas/casi blancas (Custom Solutions arriba, CTA final
   abajo) — un tinte muy sutil le da una pausa visual propia.
   --------------------------------------------------------- */
.bv-advantages {
  background: var(--bv-light);
}

/* ---------------------------------------------------------
   5) Diferenciar las dos grillas de tarjetas de la página de
   producto (Features y "Is OCEAN Pro right for you") — hoy
   usan el mismo ícono redondeado + número fantasma + línea
   azul arriba. Se deja ese lenguaje en Features (aparece
   primero) y en la segunda grilla se simplifica: ícono
   circular sin línea superior ni número, para que no se lean
   como la misma tarjeta repetida dos veces seguidas.
   --------------------------------------------------------- */
.bv-ocean-fit__card::before {
  display: none;
}

.bv-ocean-fit__number {
  display: none;
}

.bv-ocean-fit__icon {
  border-radius: 50%;
}

