  @import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap');

 :root {
  --cc-primary: #0099ff;
  --cc-primary-dark: #006fbd;
  --cc-accent: #0099ff;

  --cc-white: #ffffff;
  --cc-text: #15232d;
  --cc-muted: #687782;
}

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    
body{
    font-family: "Bricolage Grotesque", sans-serif !important;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  
}

    /* =========================================
       MAIN HERO
    ========================================= */
    .cc-london-hero {
      position: relative;
      min-height: 680px;
      overflow: hidden;
      background:
        linear-gradient(
          90deg,
          rgba(8, 20, 18, 0.91) 0%,
          rgba(10, 27, 24, 0.82) 35%,
          rgba(12, 27, 25, 0.48) 64%,
          rgba(10, 20, 19, 0.20) 100%
        ),
        url("images/banner.png") center center / cover no-repeat;
    }

    /* subtle zoom animation */
    .cc-london-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background: url("images/banner.png") center center / cover no-repeat;
      z-index: 0;
      animation: ccHeroZoom 14s ease-in-out infinite alternate;
    }

    .cc-london-hero::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(
          90deg,
          rgba(7, 19, 17, 0.94) 0%,
          rgba(10, 27, 24, 0.84) 34%,
          rgba(10, 26, 23, 0.53) 62%,
          rgba(6, 15, 14, 0.20) 100%
        );
    }

    @keyframes ccHeroZoom {
      0% {
        transform: scale(1);
      }
      100% {
        transform: scale(1.06);
      }
    }

    /* =========================================
       HEADER
    ========================================= */
    .cc-main-header {
      position: relative;
      z-index: 10;
      border-bottom: 1px solid rgba(255, 255, 255, 0.16);
      background: rgba(12, 24, 22, 0.18);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
    }

    .cc-header-inner {
      min-height: 92px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }

    .cc-brand-logo {
      display: inline-flex;
      align-items: center;
      text-decoration: none;
      animation: ccFadeDown 0.8s ease both;
    }

    .cc-brand-logo img {
      width: auto;
      height: 62px;
      max-width: 220px;
      object-fit: contain;
      display: block;
    }

    .cc-header-book-btn {
      min-height: 50px;
      padding: 0 25px;
      border-radius: 6px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      background: var(--cc-accent);
      color: #fff;
      font-size: 14px;
      font-weight: 800;
      text-decoration: none;
      border: 1px solid var(--cc-accent);
      transition: all 0.35s ease;
      animation: ccFadeDown 0.8s 0.15s ease both;
    }

    .cc-header-book-btn:hover {
      color: #fff;
      background: var(--cc-primary);
      border-color: rgba(255, 255, 255, 0.45);
      transform: translateY(-3px);
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
    }

    /* =========================================
       HERO CONTENT
    ========================================= */
    .cc-hero-content-wrap {
      position: relative;
      z-index: 5;
      min-height: 588px;
      display: flex;
      align-items: center;
      padding: 65px 0 75px;
    }

    .cc-hero-content {
      max-width: 800px;
    }

    .cc-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 20px;
      padding: 9px 14px;
      border: 1px solid rgba(255, 255, 255, 0.22);
      border-radius: 100px;
      background: rgba(255, 255, 255, 0.09);
      backdrop-filter: blur(8px);
      color: #fff;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 1.3px;
      text-transform: uppercase;
      animation: ccFadeUp 0.8s 0.15s ease both;
    }

    .cc-eyebrow-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--cc-accent);
      box-shadow: 0 0 0 5px rgba(216, 205, 184, 0.14);
      animation: ccPulse 2s infinite;
    }

    .cc-hero-title {
      max-width: 760px;
      margin-bottom: 22px;
      color: #fff;
      font-size: 50px;
      line-height: 1.06;
      /*letter-spacing: -2.5px;*/
      font-weight: 800;
      animation: ccFadeUp 0.9s 0.28s ease both;
    }

    .cc-hero-title span {
     color: #0099ff;
    }

    .cc-hero-subtitle {
      max-width: 720px;
      margin-bottom: 32px;
      color: rgba(255, 255, 255, 0.82);
      font-size: 17px;
      line-height: 1.8;
      font-weight: 400;
      animation: ccFadeUp 0.9s 0.42s ease both;
    }

    /* =========================================
       BUTTONS
    ========================================= */
    .cc-hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 14px;
      margin-bottom: 35px;
      animation: ccFadeUp 0.9s 0.55s ease both;
    }

    .cc-primary-btn,
    .cc-secondary-btn {
      min-height: 56px;
      padding: 0 25px;
      border-radius: 6px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      font-size: 14px;
      font-weight: 800;
      text-decoration: none;
      transition: all 0.35s ease;
    }

    .cc-primary-btn {
      color: #fff;
      background: var(--cc-accent);
      border: 1px solid var(--cc-accent);
    }

    .cc-primary-btn:hover {
      color: #fff;
      background: var(--cc-primary);
      border-color: var(--cc-primary);
      transform: translateY(-4px);
      box-shadow: 0 15px 35px rgba(0, 0, 0, 0.25);
    }

    .cc-secondary-btn {
      color: #fff;
      background: rgba(255, 255, 255, 0.07);
      border: 1px solid rgba(255, 255, 255, 0.42);
      backdrop-filter: blur(8px);
    }

    .cc-secondary-btn:hover {
      color: var(--cc-text);
      background: #fff;
      border-color: #fff;
      transform: translateY(-4px);
    }

    /* =========================================
       TRUST ITEMS
    ========================================= */
    .cc-trust-row {
      display: flex;
      flex-wrap: wrap;
      gap: 12px 26px;
      animation: ccFadeUp 0.9s 0.68s ease both;
    }

    .cc-trust-item {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      color: rgba(255, 255, 255, 0.92);
      font-size: 13px;
      font-weight: 600;
    }

    .cc-trust-icon {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      background: #0099ff;
      /*border: 1px solid rgba(216, 205, 184, 0.40);*/
      color: #fff;
      font-size: 13px;
    }

    /* =========================================
       DECORATIVE ELEMENT
    ========================================= */
    .cc-side-line {
      position: absolute;
      z-index: 4;
      right: 4%;
      bottom: 45px;
      display: flex;
      align-items: center;
      gap: 12px;
      color: rgba(255, 255, 255, 0.62);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      transform: rotate(-90deg);
      transform-origin: right bottom;
    }

    .cc-side-line::before {
      content: "";
      width: 55px;
      height: 1px;
      background: rgba(255, 255, 255, 0.45);
    }

    /* =========================================
       ANIMATIONS
    ========================================= */
    @keyframes ccFadeUp {
      from {
        opacity: 0;
        transform: translateY(28px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes ccFadeDown {
      from {
        opacity: 0;
        transform: translateY(-20px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes ccPulse {
      0%, 100% {
        box-shadow: 0 0 0 4px rgba(216, 205, 184, 0.12);
      }
      50% {
        box-shadow: 0 0 0 9px rgba(216, 205, 184, 0.02);
      }
    }

    /* =========================================
       TABLET
    ========================================= */
    @media (max-width: 991.98px) {
      .cc-london-hero {
        min-height: 650px;
      }

      .cc-hero-content-wrap {
        min-height: 558px;
      }

      .cc-hero-title {
        max-width: 680px;
        font-size: 52px;
      }

      .cc-side-line {
        display: none;
      }
    }

    /* =========================================
       MOBILE
    ========================================= */
    @media (max-width: 767.98px) {
      .cc-london-hero {
        min-height: auto;
      }

      .cc-london-hero::after {
        background:
          linear-gradient(
            90deg,
            rgba(7, 19, 17, 0.94) 0%,
            rgba(8, 23, 20, 0.86) 100%
          );
      }

      .cc-header-inner {
        min-height: 76px;
      }

      .cc-brand-logo img {
        height: 48px;
        max-width: 150px;
      }

      .cc-header-book-btn {
        min-height: 44px;
        padding: 0 16px;
        font-size: 12px;
      }

      .cc-hero-content-wrap {
        min-height: auto;
        padding: 75px 0 70px;
      }

      .cc-eyebrow {
        font-size: 10px;
        letter-spacing: 0.9px;
      }

      .cc-hero-title {
        font-size: 40px;
        line-height: 1.1;
        letter-spacing: -1.5px;
      }

      .cc-hero-subtitle {
        font-size: 15px;
        line-height: 1.7;
      }

      .cc-trust-row {
        gap: 13px 18px;
      }
    }

    /* =========================================
       SMALL MOBILE
    ========================================= */
    @media (max-width: 480px) {
      .cc-header-book-btn span {
        display: none;
      }

      .cc-header-book-btn {
        width: 45px;
        padding: 0;
        border-radius: 50%;
      }

      .cc-hero-title {
        font-size: 34px;
      }

      .cc-hero-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
      }

      .cc-primary-btn,
      .cc-secondary-btn {
        padding: 0 14px;
        font-size: 12px;
      }

      .cc-trust-row {
        flex-direction: column;
        gap: 12px;
      }
    }

    /* =========================================
   HERO - CLEAN PREMIUM BACKGROUND FIX
========================================= */

.cc-london-hero {
  position: relative;
  min-height: 680px;
  overflow: hidden;
  background: #07131c;
}

/* Background Image */
.cc-london-hero::before {
  content: "";
  position: absolute;
  inset: 0;

  background:
    url("images/banner.png")
    center center / cover no-repeat;

  z-index: 0;

  /* image একটু controlled */
  transform: scale(1.03);

  animation:
    ccHeroZoom 16s ease-in-out infinite alternate;
}

/* Professional Overlay */
.cc-london-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;

  background:
    linear-gradient(
      90deg,
      rgba(3, 14, 22, 0.97) 0%,
      rgba(4, 20, 31, 0.94) 22%,
      rgba(4, 28, 43, 0.82) 43%,
      rgba(4, 28, 43, 0.48) 65%,
      rgba(3, 15, 23, 0.14) 100%
    );
}


.cc-trust-row {
  display: grid;
  grid-template-columns:
    repeat(3, max-content);

  align-items: center;

  gap: 14px 28px;

  margin-top: 4px;
}

@media (max-width: 991.98px) {
  .cc-trust-row {
    grid-template-columns:
      repeat(2, max-content);
  }
}

@media (max-width: 575.98px) {
  .cc-trust-row {
    grid-template-columns: 1fr;
  }
}



/* =========================================
   WHY CHOOSE US
   PREMIUM BLUE COMMERCIAL DESIGN
========================================= */

.wcblue-section {
  position: relative;
  overflow: hidden;

  padding: 105px 0 115px;

  background:
    radial-gradient(
      circle at 10% 10%,
      rgba(0, 153, 255, 0.055),
      transparent 26%
    ),
    linear-gradient(
      180deg,
      #f8fbfd 0%,
      #ffffff 52%,
      #f7fafc 100%
    );
}


/* =========================================
   BACKGROUND DECORATIONS
========================================= */

.wcblue-orb {
  position: absolute;

  border-radius: 50%;

  pointer-events: none;
}

.wcblue-orb-one {
  width: 380px;
  height: 380px;

  top: -210px;
  right: -130px;

  background:
    rgba(0, 153, 255, 0.055);

  animation:
    wcblueFloat 8s ease-in-out infinite;
}

.wcblue-orb-two {
  width: 260px;
  height: 260px;

  left: -130px;
  bottom: -130px;

  border:
    1px solid rgba(0, 153, 255, 0.12);

  animation:
    wcblueFloat 10s ease-in-out infinite reverse;
}


/* =========================================
   HEADING
========================================= */

.wcblue-heading {
  position: relative;

  margin-bottom: 58px;

  text-align: center;
}

.wcblue-eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 13px;

  margin-bottom: 17px;
}

.wcblue-eyebrow-line {
  width: 34px;
  height: 1px;

  background:
    linear-gradient(
      90deg,
      transparent,
      #0099ff
    );
}

.wcblue-eyebrow-line:last-child {
  background:
    linear-gradient(
      90deg,
      #0099ff,
      transparent
    );
}

.wcblue-eyebrow-text {
  color: #0088e5;

  font-size: 12px;
  font-weight: 800;

  letter-spacing: 1.8px;

  text-transform: uppercase;
}

.wcblue-heading h2 {
  max-width: 760px;

  margin:
    0 auto 18px;

  color: #102431;

  font-size:
    clamp(36px, 4vw, 54px);

  line-height: 1.1;

  font-weight: 800;

  letter-spacing: -2px;
}

.wcblue-heading h2 span {
  display: block;

  color: #0099ff;
}

.wcblue-heading p {
  max-width: 650px;

  margin: 0 auto;

  color: #6a7881;

  font-size: 16px;

  line-height: 1.75;

  font-weight: 500;
}


/* =========================================
   CARD ROW
========================================= */

.wcblue-card-row {
  position: relative;

  z-index: 3;
}


/* =========================================
   CARD
========================================= */

.wcblue-card {
  position: relative;

  height: 100%;

  min-height: 365px;

  padding:
    30px 27px 25px;

  display: flex;

  flex-direction: column;

  overflow: hidden;

  background:
    rgba(255, 255, 255, 0.96);

  border:
    1px solid rgba(15, 43, 60, 0.09);

  border-radius: 18px;

  box-shadow:
    0 12px 35px
    rgba(16, 49, 69, 0.065);

  transition:
    transform 0.45s cubic-bezier(.2,.8,.2,1),
    box-shadow 0.45s ease,
    border-color 0.45s ease;
}


/* Top blue line */

.wcblue-card::before {
  content: "";

  position: absolute;

  top: 0;
  left: 0;

  width: 0;
  height: 3px;

  background:
    linear-gradient(
      90deg,
      #0099ff,
      #52bcff
    );

  transition:
    width 0.5s ease;
}


/* Decorative glow */

.wcblue-card::after {
  content: "";

  position: absolute;

  width: 170px;
  height: 170px;

  top: -110px;
  right: -110px;

  border-radius: 50%;

  background:
    rgba(0, 153, 255, 0.055);

  transition:
    width 0.55s ease,
    height 0.55s ease,
    transform 0.55s ease;
}


/* Hover */

.wcblue-card:hover {
  transform:
    translateY(-10px);

  border-color:
    rgba(0, 153, 255, 0.25);

  box-shadow:
    0 26px 60px
    rgba(11, 66, 99, 0.14);
}

.wcblue-card:hover::before {
  width: 100%;
}

.wcblue-card:hover::after {
  width: 240px;
  height: 240px;

  transform:
    translate(-20px, 20px);
}


/* =========================================
   NUMBER
========================================= */

.wcblue-card-number {
  position: absolute;

  top: 25px;
  right: 24px;

  z-index: 4;

  color:
    rgba(0, 153, 255, 0.22);

  font-size: 12px;

  font-weight: 800;

  letter-spacing: 1px;
}


/* =========================================
   ICON
========================================= */

.wcblue-icon-box {
  position: relative;

  z-index: 4;

  width: 68px;
  height: 68px;

  margin-bottom: 27px;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 17px;

  background:
    linear-gradient(
      145deg,
      rgba(0, 153, 255, 0.12),
      rgba(0, 153, 255, 0.045)
    );

  border:
    1px solid rgba(0, 153, 255, 0.15);

  box-shadow:
    inset 0 1px 0
    rgba(255, 255, 255, 0.9),

    0 9px 22px
    rgba(0, 153, 255, 0.08);

  transition:
    transform 0.45s ease,
    background 0.4s ease,
    box-shadow 0.4s ease;
}


/* SVG */

.wcblue-icon-box svg {
  width: 31px;

  height: 31px;

  fill: none;

  stroke: #0099ff;

  stroke-width: 1.7;

  stroke-linecap: round;

  stroke-linejoin: round;

  transition:
    stroke 0.4s ease,
    transform 0.45s ease;
}


/* Icon hover */

.wcblue-card:hover
.wcblue-icon-box {

  transform:
    translateY(-6px)
    rotate(-3deg);

  background:
    linear-gradient(
      135deg,
      #0099ff,
      #007fd5
    );

  box-shadow:
    0 15px 32px
    rgba(0, 153, 255, 0.25);
}

.wcblue-card:hover
.wcblue-icon-box svg {

  stroke: #ffffff;

  transform:
    scale(1.08);
}


/* =========================================
   CARD CONTENT
========================================= */

.wcblue-card-content {
  position: relative;

  z-index: 4;
}

.wcblue-card-content h3 {
  margin:
    0 0 14px;

  color: #102431;

  font-size: 20px;

  line-height: 1.35;

  font-weight: 800;

  letter-spacing: -0.4px;
}

.wcblue-card-content p {
  margin: 0;

  color: #6d7981;

  font-size: 14px;

  line-height: 1.75;

  font-weight: 500;
}


/* =========================================
   FOOTER
========================================= */

.wcblue-card-footer {
  position: relative;

  z-index: 4;

  margin-top: auto;

  padding-top: 22px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 12px;

  border-top:
    1px solid rgba(15, 43, 60, 0.08);
}

.wcblue-card-footer > span {
  color: #087cbf;

  font-size: 10px;

  font-weight: 800;

  letter-spacing: 0.7px;

  text-transform: uppercase;
}


/* =========================================
   ARROW
========================================= */

.wcblue-arrow {
  width: 34px;

  height: 34px;

  flex-shrink: 0;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 50%;

  background:
    rgba(0, 153, 255, 0.08);

  transition:
    transform 0.4s ease,
    background 0.4s ease;
}

.wcblue-arrow svg {
  width: 15px;

  height: 15px;

  fill: none;

  stroke: #0099ff;

  stroke-width: 2;

  stroke-linecap: round;

  stroke-linejoin: round;
}

.wcblue-card:hover
.wcblue-arrow {

  transform:
    rotate(45deg);

  background:
    #0099ff;
}

.wcblue-card:hover
.wcblue-arrow svg {

  stroke:
    #ffffff;
}


/* =========================================
   SCROLL ANIMATION
========================================= */

/* Default visible:
   JS fail করলেও section hide হবে না */

.wcblue-animate {
  opacity: 1;

  transform:
    translateY(0);
}


/* JS working হলে prepare */

html.wcblue-js
.wcblue-animate {

  opacity: 0;

  transform:
    translateY(35px);

  transition:
    opacity 0.8s ease,
    transform 0.8s
    cubic-bezier(.2,.8,.2,1);
}


/* Visible */

html.wcblue-js
.wcblue-animate.wcblue-visible {

  opacity: 1;

  transform:
    translateY(0);
}


/* =========================================
   FLOAT
========================================= */

@keyframes wcblueFloat {

  0%,
  100% {
    transform:
      translateY(0);
  }

  50% {
    transform:
      translateY(18px);
  }

}


/* =========================================
   TABLET
========================================= */

@media (max-width: 991.98px) {

  .wcblue-section {
    padding:
      85px 0 95px;
  }

  .wcblue-heading {
    margin-bottom:
      45px;
  }

  .wcblue-card {
    min-height:
      340px;
  }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 767.98px) {

  .wcblue-section {
    padding:
      70px 0 75px;
  }

  .wcblue-heading {
    margin-bottom:
      38px;
  }

  .wcblue-heading h2 {
    font-size:
      34px;

    letter-spacing:
      -1.2px;
  }

  .wcblue-heading p {
    font-size:
      14px;
  }

  .wcblue-card {
    min-height:
      315px;

    padding:
      25px 23px 22px;
  }

  .wcblue-icon-box {
    width:
      61px;

    height:
      61px;

    margin-bottom:
      22px;
  }

  .wcblue-icon-box svg {
    width:
      28px;

    height:
      28px;
  }

}


/* =========================================
   REDUCED MOTION
========================================= */

@media (prefers-reduced-motion: reduce) {

  .wcblue-orb {
    animation: none;
  }

  .wcblue-animate,
  html.wcblue-js .wcblue-animate {
    opacity: 1;

    transform: none;

    transition: none;
  }

}


/* =========================================
   SERVICES - PREMIUM COMMERCIAL DESIGN
========================================= */

.srvpro-section {
  position: relative;
  overflow: hidden;

  padding: 110px 0 120px;

  background:
    linear-gradient(
      180deg,
      #071722 0%,
      #091d2a 52%,
      #071722 100%
    );
}


/* =========================================
   SUBTLE GRID BACKGROUND
========================================= */

.srvpro-grid-bg {
  position: absolute;
  inset: 0;

  opacity: 0.055;

  background-image:
    linear-gradient(
      rgba(255, 255, 255, 0.35) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.35) 1px,
      transparent 1px
    );

  background-size: 55px 55px;

  pointer-events: none;
}


/* =========================================
   BACKGROUND GLOWS
========================================= */

.srvpro-glow {
  position: absolute;

  border-radius: 50%;

  filter: blur(10px);

  pointer-events: none;
}

.srvpro-glow-one {
  width: 420px;
  height: 420px;

  top: -230px;
  right: -120px;

  background:
    rgba(0, 153, 255, 0.11);

  animation:
    srvproFloat 8s ease-in-out infinite;
}

.srvpro-glow-two {
  width: 300px;
  height: 300px;

  bottom: -170px;
  left: -100px;

  background:
    rgba(0, 153, 255, 0.07);

  animation:
    srvproFloat 10s ease-in-out infinite reverse;
}


/* =========================================
   HEADING
========================================= */

.srvpro-heading {
  position: relative;

  z-index: 3;

  margin-bottom: 58px;

  text-align: center;
}

.srvpro-eyebrow {
  display: flex;

  align-items: center;

  justify-content: center;

  gap: 13px;

  margin-bottom: 18px;
}

.srvpro-eyebrow > span:nth-child(2) {
  color: #39afff;

  font-size: 12px;

  font-weight: 800;

  letter-spacing: 1.8px;

  text-transform: uppercase;
}

.srvpro-line {
  width: 34px;
  height: 1px;

  background:
    linear-gradient(
      90deg,
      transparent,
      #0099ff
    );
}

.srvpro-line:last-child {
  background:
    linear-gradient(
      90deg,
      #0099ff,
      transparent
    );
}

.srvpro-heading h2 {
  max-width: 900px;

  margin:
    0 auto 18px;

  color: #ffffff;

  font-size:
    40px;

  line-height: 1.1;

  font-weight: 800;

  /*letter-spacing: -2px;*/
}

.srvpro-heading h2 strong {
  display: block;

  color: #0099ff;

  font-weight: 800;
}

.srvpro-heading p {
  max-width: 650px;

  margin: 0 auto;

  color:
    rgba(255, 255, 255, 0.65);

  font-size: 16px;

  line-height: 1.75;

  font-weight: 500;
}


/* =========================================
   ROW
========================================= */

.srvpro-row {
  position: relative;

  z-index: 4;
}

.srvpro-row-second {
  margin-top: 0;
}


/* =========================================
   SERVICE CARD
========================================= */

.srvpro-card {
  position: relative;

  height: 100%;

  min-height: 345px;

  padding:
    29px 26px 24px;

  display: flex;

  flex-direction: column;

  overflow: hidden;

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.095),
      rgba(255, 255, 255, 0.045)
    );

  border:
    1px solid rgba(255, 255, 255, 0.11);

  border-radius: 18px;

  backdrop-filter:
    blur(10px);

  -webkit-backdrop-filter:
    blur(10px);

  box-shadow:
    0 18px 45px
    rgba(0, 0, 0, 0.16);

  transition:
    transform 0.45s cubic-bezier(.2,.8,.2,1),
    border-color 0.45s ease,
    box-shadow 0.45s ease,
    background 0.45s ease;
}


/* Top Accent */

.srvpro-card::before {
  content: "";

  position: absolute;

  top: 0;
  left: 0;

  width: 0;
  height: 3px;

  background:
    linear-gradient(
      90deg,
      #0099ff,
      #62c4ff
    );

  transition:
    width 0.5s ease;
}


/* Hover Glow */

.srvpro-card::after {
  content: "";

  position: absolute;

  width: 180px;
  height: 180px;

  top: -115px;
  right: -115px;

  border-radius: 50%;

  background:
    rgba(0, 153, 255, 0.10);

  transition:
    width 0.55s ease,
    height 0.55s ease,
    transform 0.55s ease;
}


.srvpro-card:hover {
  transform:
    translateY(-10px);

  border-color:
    rgba(0, 153, 255, 0.38);

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.12),
      rgba(0, 153, 255, 0.055)
    );

  box-shadow:
    0 28px 65px
    rgba(0, 0, 0, 0.27);
}

.srvpro-card:hover::before {
  width: 100%;
}

.srvpro-card:hover::after {
  width: 250px;
  height: 250px;

  transform:
    translate(-20px, 20px);
}


/* =========================================
   NUMBER
========================================= */

.srvpro-number {
  position: absolute;

  top: 24px;
  right: 23px;

  z-index: 4;

  color:
    rgba(255, 255, 255, 0.20);

  font-size: 12px;

  font-weight: 800;

  letter-spacing: 1px;

  transition:
    color 0.35s ease;
}

.srvpro-card:hover
.srvpro-number {
  color:
    rgba(0, 153, 255, 0.70);
}


/* =========================================
   ICON
========================================= */

.srvpro-icon {
  position: relative;

  z-index: 4;

  width: 66px;
  height: 66px;

  margin-bottom: 25px;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 17px;

  background:
    rgba(0, 153, 255, 0.10);

  border:
    1px solid rgba(0, 153, 255, 0.24);

  box-shadow:
    inset 0 1px 0
    rgba(255, 255, 255, 0.08),

    0 10px 25px
    rgba(0, 153, 255, 0.08);

  transition:
    transform 0.45s ease,
    background 0.4s ease,
    box-shadow 0.4s ease;
}


.srvpro-icon svg {
  width: 30px;
  height: 30px;

  fill: none;

  stroke: #36afff;

  stroke-width: 1.65;

  stroke-linecap: round;

  stroke-linejoin: round;

  transition:
    stroke 0.4s ease,
    transform 0.45s ease;
}


.srvpro-card:hover
.srvpro-icon {

  transform:
    translateY(-6px)
    rotate(-3deg);

  background:
    linear-gradient(
      135deg,
      #0099ff,
      #007fd5
    );

  box-shadow:
    0 15px 32px
    rgba(0, 153, 255, 0.25);
}


.srvpro-card:hover
.srvpro-icon svg {

  stroke: #ffffff;

  transform:
    scale(1.08);
}


/* =========================================
   CONTENT
========================================= */

.srvpro-content {
  position: relative;

  z-index: 4;
}

.srvpro-content h3 {
  margin:
    0 0 13px;

  color: #ffffff;

  font-size: 19px;

  line-height: 1.35;

  font-weight: 800;

  letter-spacing: -0.35px;
}

.srvpro-content p {
  margin: 0;

  color:
    rgba(255, 255, 255, 0.60);

  font-size: 14px;

  line-height: 1.72;

  font-weight: 500;
}


/* =========================================
   CARD FOOTER
========================================= */

.srvpro-footer {
  position: relative;

  z-index: 4;

  margin-top: auto;

  padding-top: 20px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 12px;

  border-top:
    1px solid rgba(255, 255, 255, 0.09);
}

.srvpro-footer > span {
  color: #39afff;

  font-size: 10px;

  font-weight: 800;

  letter-spacing: 0.75px;

  text-transform: uppercase;
}


/* =========================================
   ARROW
========================================= */

.srvpro-arrow {
  width: 34px;
  height: 34px;

  flex-shrink: 0;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 50%;

  background:
    rgba(0, 153, 255, 0.10);

  transition:
    transform 0.4s ease,
    background 0.4s ease;
}

.srvpro-arrow svg {
  width: 15px;
  height: 15px;

  fill: none;

  stroke: #39afff;

  stroke-width: 2;

  stroke-linecap: round;

  stroke-linejoin: round;
}

.srvpro-card:hover
.srvpro-arrow {

  transform:
    rotate(45deg);

  background:
    #0099ff;
}

.srvpro-card:hover
.srvpro-arrow svg {

  stroke: #ffffff;
}


/* =========================================
   SAFE SCROLL ANIMATION
========================================= */

/* Default visible */
.srvpro-reveal {
  opacity: 1;

  transform:
    translateY(0);
}


/* JS active */
html.srvpro-js
.srvpro-reveal {

  opacity: 0;

  transform:
    translateY(35px);

  transition:
    opacity 0.8s ease,
    transform 0.8s
    cubic-bezier(.2,.8,.2,1);
}


/* Visible */
html.srvpro-js
.srvpro-reveal.srvpro-visible {

  opacity: 1;

  transform:
    translateY(0);
}


/* =========================================
   FLOAT ANIMATION
========================================= */

@keyframes srvproFloat {

  0%,
  100% {
    transform:
      translateY(0);
  }

  50% {
    transform:
      translateY(18px);
  }

}


/* =========================================
   TABLET
========================================= */

@media (max-width: 991.98px) {

  .srvpro-section {
    padding:
      85px 0 95px;
  }

  .srvpro-heading {
    margin-bottom:
      45px;
  }

  .srvpro-card {
    min-height:
      325px;
  }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 767.98px) {

  .srvpro-section {
    padding:
      70px 0 75px;
  }

  .srvpro-heading {
    margin-bottom:
      38px;
  }

  .srvpro-heading h2 {
    font-size:
      34px;

    letter-spacing:
      -1.2px;
  }

  .srvpro-heading p {
    font-size:
      14px;
  }

  .srvpro-card {
    min-height:
      305px;

    padding:
      25px 23px 22px;
  }

  .srvpro-icon {
    width:
      60px;

    height:
      60px;

    margin-bottom:
      22px;
  }

  .srvpro-icon svg {
    width:
      27px;

    height:
      27px;
  }

}


/* =========================================
   REDUCED MOTION
========================================= */

@media (prefers-reduced-motion: reduce) {

  .srvpro-glow {
    animation: none;
  }

  .srvpro-reveal,
  html.srvpro-js .srvpro-reveal {

    opacity: 1;

    transform: none;

    transition: none;
  }

}


/* =========================================
   PREMIUM BOOKING SYSTEM
========================================= */

.bkpro-section {
  position: relative;
  overflow: hidden;
  padding: 110px 0 120px;
  background:
    radial-gradient(
      circle at 8% 12%,
      rgba(0, 153, 255, 0.07),
      transparent 26%
    ),
    linear-gradient(
      180deg,
      #f7fbfe 0%,
      #ffffff 48%,
      #f5f9fc 100%
    );
}

.bkpro-grid {
  position: absolute;
  inset: 0;
  opacity: 0.025;
  background-image:
    linear-gradient(#0a3852 1px, transparent 1px),
    linear-gradient(90deg, #0a3852 1px, transparent 1px);
  background-size: 55px 55px;
  pointer-events: none;
}

.bkpro-glow {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.bkpro-glow-one {
  width: 420px;
  height: 420px;
  top: -220px;
  right: -140px;
  background: rgba(0, 153, 255, 0.07);
  animation: bkproFloat 8s ease-in-out infinite;
}

.bkpro-glow-two {
  width: 280px;
  height: 280px;
  bottom: -150px;
  left: -110px;
  border: 1px solid rgba(0, 153, 255, 0.12);
  animation: bkproFloat 10s ease-in-out infinite reverse;
}


/* =========================================
   HEADING
========================================= */

.bkpro-heading {
  text-align: center;
  margin-bottom: 55px;
}

.bkpro-eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  margin-bottom: 17px;

  color: #0088e5;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

.bkpro-eyebrow span {
  width: 34px;
  height: 1px;
  background: #0099ff;
}

.bkpro-heading h2 {
  margin: 0 0 18px;
  color: #102431;
  font-size: clamp(36px, 4vw, 54px);
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -2px;
}

.bkpro-heading h2 strong {
  display: block;
  color: #0099ff;
}

.bkpro-heading p {
  max-width: 680px;
  margin: 0 auto;
  color: #697983;
  font-size: 16px;
  line-height: 1.75;
}


/* =========================================
   MAIN SHELL
========================================= */

.bkpro-shell {
  position: relative;
  z-index: 3;

  overflow: hidden;

  background: #ffffff;

  border:
    1px solid rgba(16, 53, 74, 0.09);

  border-radius: 26px;

  box-shadow:
    0 30px 80px rgba(13, 55, 80, 0.12);
}


/* =========================================
   FORM SIDE
========================================= */

.bkpro-form-side {
  padding: 46px 42px 48px;
}

.bkpro-panel-head {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 36px;
}

.bkpro-panel-icon {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 15px;

  background:
    linear-gradient(
      135deg,
      #0099ff,
      #007fd5
    );

  box-shadow:
    0 12px 25px rgba(0, 153, 255, 0.22);
}

.bkpro-panel-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: #ffffff;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bkpro-panel-head > div:last-child > span {
  display: block;
  margin-bottom: 3px;

  color: #0099ff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}

.bkpro-panel-head h3 {
  margin: 0 0 4px;
  color: #102431;
  font-size: 22px;
  font-weight: 800;
}

.bkpro-panel-head p {
  margin: 0;
  color: #78868e;
  font-size: 13px;
  line-height: 1.6;
}


/* =========================================
   FORM FIELDS
========================================= */

.bkpro-field label {
  display: block;
  margin-bottom: 8px;

  color: #213642;
  font-size: 12px;
  font-weight: 750;
}

.bkpro-field label em {
  color: #0099ff;
  font-style: normal;
}

.bkpro-input-wrap {
  position: relative;
}

.bkpro-field-icon {
  position: absolute;
  left: 16px;
  top: 50%;

  width: 20px;
  height: 20px;

  transform: translateY(-50%);

  display: flex;
  align-items: center;
  justify-content: center;

  pointer-events: none;
}

.bkpro-field-icon svg {
  width: 18px;
  height: 18px;

  fill: none;
  stroke: #82919a;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;

  transition: stroke 0.3s ease;
}

.bkpro-field input,
.bkpro-field select,
.bkpro-field textarea {
  width: 100%;

  color: #17303e;

  background: #f8fafb;

  border:
    1px solid #dfe7eb;

  border-radius: 12px;

  outline: none;

  font-size: 13px;

  transition:
    border-color 0.3s ease,
    background 0.3s ease,
    box-shadow 0.3s ease;
}

.bkpro-field input {
  height: 52px;
  padding: 0 16px 0 47px;
}

.bkpro-field select {
  height: 52px;
  padding: 0 42px 0 16px;
  cursor: pointer;
}

.bkpro-field textarea {
  padding: 15px 16px;
  resize: vertical;
  min-height: 112px;
}

.bkpro-field input:focus,
.bkpro-field select:focus,
.bkpro-field textarea:focus {
  background: #ffffff;

  border-color: #0099ff;

  box-shadow:
    0 0 0 4px rgba(0, 153, 255, 0.09);
}

.bkpro-input-wrap:focus-within
.bkpro-field-icon svg {
  stroke: #0099ff;
}

.bkpro-field input::placeholder,
.bkpro-field textarea::placeholder {
  color: #9aa7ae;
}


/* =========================================
   TIME SELECTION
========================================= */

.bkpro-time-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.bkpro-time-card {
  margin: 0 !important;
  cursor: pointer;
}

.bkpro-time-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.bkpro-time-ui {
  min-height: 84px;
  padding: 15px;

  display: flex;
  align-items: center;
  gap: 12px;

  background: #f8fafb;

  border:
    1px solid #dfe7eb;

  border-radius: 14px;

  transition:
    border-color 0.3s ease,
    background 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.bkpro-time-card:hover .bkpro-time-ui {
  transform: translateY(-2px);
  border-color: rgba(0, 153, 255, 0.4);
}

.bkpro-time-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 11px;

  background: rgba(0, 153, 255, 0.09);
}

.bkpro-time-icon svg {
  width: 21px;
  height: 21px;

  fill: none;
  stroke: #0099ff;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bkpro-time-ui strong {
  display: block;
  color: #17303e;
  font-size: 13px;
  font-weight: 800;
}

.bkpro-time-ui small {
  display: block;
  margin-top: 2px;
  color: #78868e;
  font-size: 11px;
}

.bkpro-radio-check {
  width: 18px;
  height: 18px;

  margin-left: auto;
  flex: 0 0 18px;

  border:
    2px solid #c8d2d8;

  border-radius: 50%;

  transition: 0.3s ease;
}

.bkpro-time-card input:checked
+ .bkpro-time-ui {
  background:
    rgba(0, 153, 255, 0.055);

  border-color: #0099ff;

  box-shadow:
    0 8px 25px rgba(0, 153, 255, 0.09);
}

.bkpro-time-card input:checked
+ .bkpro-time-ui
.bkpro-radio-check {
  border: 5px solid #0099ff;
}


/* =========================================
   CALENDAR SIDE
========================================= */

.bkpro-calendar-side {
  height: 100%;

  padding: 46px 36px 42px;

  background:
    linear-gradient(
      160deg,
      #071b28 0%,
      #09283b 100%
    );

  border-left:
    1px solid rgba(255, 255, 255, 0.05);
}

.bkpro-calendar-sticky {
  position: sticky;
  top: 25px;
}

.bkpro-calendar-head h3 {
  color: #ffffff;
}

.bkpro-calendar-head p {
  color:
    rgba(255, 255, 255, 0.58);
}


/* =========================================
   CALENDAR
========================================= */

.bkpro-calendar {
  padding: 20px;

  background:
    rgba(255, 255, 255, 0.065);

  border:
    1px solid rgba(255, 255, 255, 0.10);

  border-radius: 18px;
}

.bkpro-cal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;

  margin-bottom: 22px;
}

.bkpro-nav-btn {
  width: 38px;
  height: 38px;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 0;

  background:
    rgba(255, 255, 255, 0.07);

  border:
    1px solid rgba(255, 255, 255, 0.10);

  border-radius: 10px;

  cursor: pointer;

  transition:
    background 0.3s ease,
    transform 0.3s ease;
}

.bkpro-nav-btn:hover {
  background: #0099ff;
  transform: translateY(-2px);
}

.bkpro-nav-btn svg {
  width: 18px;
  height: 18px;

  fill: none;
  stroke: #ffffff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bkpro-month-title {
  text-align: center;
}

.bkpro-month-title strong {
  display: block;

  color: #ffffff;

  font-size: 16px;
  font-weight: 800;
}

.bkpro-month-title span {
  display: block;
  margin-top: 2px;

  color:
    rgba(255, 255, 255, 0.48);

  font-size: 11px;
}


/* Weekdays */

.bkpro-weekdays,
.bkpro-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}

.bkpro-weekdays {
  margin-bottom: 9px;
}

.bkpro-weekdays span {
  text-align: center;

  color:
    rgba(255, 255, 255, 0.42);

  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}


/* Calendar Day */

.bkpro-day {
  position: relative;

  aspect-ratio: 1;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 0;

  color: #ffffff;

  background:
    rgba(255, 255, 255, 0.055);

  border:
    1px solid transparent;

  border-radius: 9px;

  font-size: 11px;
  font-weight: 750;

  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease;
}

button.bkpro-day {
  cursor: pointer;
}


/* Empty */

.bkpro-day-empty {
  background: transparent;
}


/* Available */

.bkpro-day-available {
  color: #ffffff;

  background:
    rgba(0, 153, 255, 0.15);

  border-color:
    rgba(0, 153, 255, 0.35);
}

.bkpro-day-available:hover {
  z-index: 2;

  background: #0099ff;

  border-color: #0099ff;

  transform:
    translateY(-3px)
    scale(1.05);

  box-shadow:
    0 8px 18px
    rgba(0, 153, 255, 0.25);
}


/* Unavailable */

.bkpro-day-unavailable {
  color:
    rgba(255, 255, 255, 0.25);

  background:
    rgba(255, 255, 255, 0.025);

  cursor: not-allowed;
}


/* Fully Booked */

.bkpro-day-booked {
  color:
    rgba(255, 255, 255, 0.25);

  background:
    rgba(255, 255, 255, 0.025);

  cursor: not-allowed;
}


/* Selected */

.bkpro-day-selected {
  color: #ffffff !important;

  background: #0099ff !important;

  border-color: #45b7ff !important;

  box-shadow:
    0 8px 20px
    rgba(0, 153, 255, 0.34);
}


/* Today marker */

.bkpro-day-today::after {
  content: "";

  position: absolute;

  bottom: 4px;
  left: 50%;

  width: 3px;
  height: 3px;

  transform:
    translateX(-50%);

  border-radius: 50%;

  background: #ffffff;
}


/* =========================================
   SELECTED DATE
========================================= */

.bkpro-selected-date {
  margin-top: 18px;
  padding: 14px 15px;

  display: flex;
  align-items: center;
  gap: 12px;

  background:
    rgba(0, 153, 255, 0.09);

  border:
    1px solid rgba(0, 153, 255, 0.20);

  border-radius: 13px;

  transition:
    background 0.3s ease,
    transform 0.3s ease;
}

.bkpro-selected-date.has-date {
  background:
    rgba(0, 153, 255, 0.16);

  transform:
    translateY(-2px);
}

.bkpro-selected-icon {
  width: 38px;
  height: 38px;

  flex: 0 0 38px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 10px;

  background: #0099ff;
}

.bkpro-selected-icon svg {
  width: 19px;
  height: 19px;

  fill: none;
  stroke: #ffffff;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bkpro-selected-date span {
  display: block;

  margin-bottom: 2px;

  color:
    rgba(255, 255, 255, 0.46);

  font-size: 9px;
  font-weight: 800;

  letter-spacing: 0.8px;

  text-transform: uppercase;
}

.bkpro-selected-date strong {
  display: block;

  color: #ffffff;

  font-size: 12px;
  font-weight: 750;
}


/* =========================================
   LEGEND
========================================= */

.bkpro-legend {
  margin-top: 16px;

  display: flex;
  flex-wrap: wrap;

  gap: 10px 15px;
}

.bkpro-legend > div {
  display: flex;
  align-items: center;
  gap: 6px;

  color:
    rgba(255, 255, 255, 0.52);

  font-size: 9px;
  font-weight: 650;
}

.bkpro-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.bkpro-dot-available {
  background:
    rgba(0, 153, 255, 0.45);

  border:
    1px solid #0099ff;
}

.bkpro-dot-booked {
  background:
    rgba(255, 255, 255, 0.16);
}

.bkpro-dot-selected {
  background: #0099ff;

  box-shadow:
    0 0 0 3px
    rgba(0, 153, 255, 0.14);
}


/* =========================================
   INFO BOX
========================================= */

.bkpro-info-box {
  margin-top: 18px;
  padding: 13px 14px;

  display: flex;
  align-items: flex-start;
  gap: 10px;

  background:
    rgba(255, 255, 255, 0.045);

  border:
    1px solid rgba(255, 255, 255, 0.075);

  border-radius: 12px;
}

.bkpro-info-icon {
  width: 22px;
  height: 22px;

  flex: 0 0 22px;
}

.bkpro-info-icon svg {
  width: 100%;
  height: 100%;

  fill: none;
  stroke: #39afff;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bkpro-info-box p {
  margin: 0;

  color:
    rgba(255, 255, 255, 0.53);

  font-size: 10px;
  line-height: 1.65;
}


/* =========================================
   SUBMIT BUTTON
========================================= */

.bkpro-submit {
  width: 100%;
  min-height: 56px;

  margin-top: 20px;
  padding: 0 20px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      #0099ff,
      #007fd5
    );

  border: none;

  border-radius: 13px;

  font-size: 13px;
  font-weight: 800;

  cursor: pointer;

  box-shadow:
    0 14px 30px
    rgba(0, 153, 255, 0.22);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}

.bkpro-submit:hover {
  transform: translateY(-3px);

  box-shadow:
    0 20px 38px
    rgba(0, 153, 255, 0.31);
}

.bkpro-submit svg {
  width: 18px;
  height: 18px;

  fill: none;
  stroke: #ffffff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;

  transition:
    transform 0.3s ease;
}

.bkpro-submit:hover svg {
  transform: translateX(4px);
}

.bkpro-submit-note {
  margin: 11px 0 0;

  color:
    rgba(255, 255, 255, 0.40);

  text-align: center;

  font-size: 9px;
  line-height: 1.5;
}


/* =========================================
   REVEAL ANIMATION
========================================= */

.bkpro-reveal {
  opacity: 1;
  transform: translateY(0);
}

html.bkpro-js .bkpro-reveal {
  opacity: 0;
  transform: translateY(35px);

  transition:
    opacity 0.85s ease,
    transform 0.85s
    cubic-bezier(.2,.8,.2,1);
}

html.bkpro-js
.bkpro-reveal.bkpro-visible {
  opacity: 1;
  transform: translateY(0);
}


/* =========================================
   FLOAT
========================================= */

@keyframes bkproFloat {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(18px);
  }
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1199.98px) {

  .bkpro-calendar-side {
    border-left: 0;

    border-top:
      1px solid rgba(255, 255, 255, 0.06);
  }

  .bkpro-calendar-sticky {
    position: static;
  }

}


@media (max-width: 767.98px) {

  .bkpro-section {
    padding: 70px 0 75px;
  }

  .bkpro-heading {
    margin-bottom: 38px;
  }

  .bkpro-heading h2 {
    font-size: 34px;
    letter-spacing: -1.2px;
  }

  .bkpro-form-side {
    padding: 30px 20px 34px;
  }

  .bkpro-calendar-side {
    padding: 30px 18px 32px;
  }

  .bkpro-time-grid {
    grid-template-columns: 1fr;
  }

  .bkpro-calendar {
    padding: 14px;
  }

  .bkpro-weekdays,
  .bkpro-days {
    gap: 4px;
  }

  .bkpro-day {
    font-size: 10px;
    border-radius: 7px;
  }

}


@media (max-width: 420px) {

  .bkpro-form-side {
    padding-left: 15px;
    padding-right: 15px;
  }

  .bkpro-calendar-side {
    padding-left: 12px;
    padding-right: 12px;
  }

  .bkpro-calendar {
    padding: 10px;
  }

}


/* Reduced Motion */

@media (prefers-reduced-motion: reduce) {

  .bkpro-glow {
    animation: none;
  }

  .bkpro-reveal,
  html.bkpro-js .bkpro-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

}

/* =========================================
   PREMIUM CALENDAR TOOLTIP
========================================= */

.bkpro-day {
  position: relative;
  overflow: visible !important;
}

/* Tooltip Box */
.bkpro-day::before {
  content: attr(data-tooltip);

  position: absolute;
  left: 50%;
  bottom: calc(100% + 11px);

  z-index: 9999;

  min-width: max-content;

  padding: 7px 10px;

  color: #ffffff;

  background: #071722;

  border:
    1px solid rgba(255, 255, 255, 0.12);

  border-radius: 7px;

  box-shadow:
    0 10px 25px rgba(0, 0, 0, 0.28);

  font-size: 9px;
  font-weight: 800;

  letter-spacing: 0.3px;

  white-space: nowrap;

  pointer-events: none;

  opacity: 0;

  visibility: hidden;

  transform:
    translateX(-50%)
    translateY(6px)
    scale(0.96);

  transition:
    opacity 0.22s ease,
    visibility 0.22s ease,
    transform 0.22s ease;
}


/* Tooltip Arrow */
.bkpro-day::after {
  content: "";

  position: absolute;

  left: 50%;
  bottom: calc(100% + 5px);

  z-index: 9998;

  width: 10px;
  height: 10px;

  background: #071722;

  border-right:
    1px solid rgba(255, 255, 255, 0.10);

  border-bottom:
    1px solid rgba(255, 255, 255, 0.10);

  pointer-events: none;

  opacity: 0;

  visibility: hidden;

  transform:
    translateX(-50%)
    rotate(45deg);

  transition:
    opacity 0.22s ease,
    visibility 0.22s ease;
}


/* Show Tooltip */
.bkpro-day[data-tooltip]:hover::before,
.bkpro-day[data-tooltip]:hover::after {
  opacity: 1;
  visibility: visible;
}

.bkpro-day[data-tooltip]:hover::before {
  transform:
    translateX(-50%)
    translateY(0)
    scale(1);
}


/* =========================================
   AVAILABLE TOOLTIP
========================================= */

.bkpro-day-available::before {
  background:
    linear-gradient(
      135deg,
      #0099ff,
      #007fd5
    );

  border-color:
    rgba(255, 255, 255, 0.18);

  box-shadow:
    0 10px 25px
    rgba(0, 153, 255, 0.25);
}

.bkpro-day-available::after {
  background: #008eea;
}


/* =========================================
   FULLY BOOKED TOOLTIP
========================================= */

.bkpro-day-booked::before {
  background:
    linear-gradient(
      135deg,
      #344652,
      #22343f
    );
}

.bkpro-day-booked::after {
  background: #2c3f4a;
}


/* =========================================
   UNAVAILABLE TOOLTIP
========================================= */

.bkpro-day-unavailable::before {
  background:
    linear-gradient(
      135deg,
      #4c5961,
      #34434c
    );
}

.bkpro-day-unavailable::after {
  background: #404f58;
}


/* Calendar must allow tooltip outside */
.bkpro-calendar {
  overflow: visible !important;
}

.bkpro-days {
  overflow: visible !important;
}



/* TODAY DATE - CLEAR HIGHLIGHT */
.bkpro-day-today {
    position: relative;
    background: #0099ff !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
    box-shadow:
        0 0 0 3px rgba(0, 153, 255, 0.28),
        0 8px 20px rgba(0, 153, 255, 0.25) !important;
    opacity: 1 !important;
}

/* Small TODAY label */
.bkpro-day-today::before {
    content: "TODAY";
    position: absolute;
    top: -9px;
    left: 50%;
    transform: translateX(-50%);
    background: #ffffff;
    color: #0099ff;
    font-size: 6px;
    font-weight: 900;
    letter-spacing: 0.4px;
    padding: 2px 4px;
    border-radius: 4px;
    line-height: 1;
    z-index: 5;
}



/* =========================================
   COMMERCIAL PRICING SECTION
========================================= */

.ccprice-section {
    position: relative;
    overflow: hidden;
    padding: 110px 0;
    background:
        linear-gradient(
            180deg,
            #f8fbfd 0%,
            #ffffff 45%,
            #f5faff 100%
        );
}


/* Subtle Grid Background */
.ccprice-section::before {
    content: "";
    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            rgba(0, 153, 255, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 153, 255, 0.035) 1px,
            transparent 1px
        );

    background-size: 42px 42px;

    pointer-events: none;
}


/* =========================================
   DECORATIVE GLOWS
========================================= */

.ccprice-glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(2px);
}

.ccprice-glow-one {
    width: 380px;
    height: 380px;

    top: -180px;
    right: -120px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.12),
            transparent 70%
        );

    animation:
        ccpriceFloat 8s ease-in-out infinite;
}

.ccprice-glow-two {
    width: 320px;
    height: 320px;

    bottom: -160px;
    left: -100px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.09),
            transparent 70%
        );

    animation:
        ccpriceFloat 10s ease-in-out infinite reverse;
}


@keyframes ccpriceFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-22px);
    }
}


/* =========================================
   HEADING
========================================= */

.ccprice-heading {
    margin-bottom: 55px;
}

.ccprice-eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    margin-bottom: 18px;

    color: #0099ff;

    font-size: 12px;
    font-weight: 800;

    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.ccprice-eyebrow span {
    width: 34px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff
        );
}

.ccprice-eyebrow span:last-child {
    background:
        linear-gradient(
            90deg,
            #0099ff,
            transparent
        );
}


.ccprice-heading h2 {
    margin: 0;

    color: #102738;

    font-size: 30px;
    font-weight: 800;

    /*letter-spacing: -2px;*/
    line-height: 1.08;
}

.ccprice-heading h2 span {
    color: #0099ff;
}


.ccprice-heading p {
    max-width: 780px;

    margin:
        20px auto 0;

    color: #6d7d88;

    font-size: 16px;
    font-weight: 500;

    line-height: 1.8;
}


/* =========================================
   MAIN CARD
========================================= */

.ccprice-card {
    position: relative;

    overflow: hidden;

    background: #ffffff;

    border:
        1px solid rgba(13, 45, 64, 0.10);

    border-radius: 26px;

    box-shadow:
        0 30px 80px rgba(18, 51, 70, 0.11);
}


/* Top Blue Line */
.ccprice-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 8%;
    right: 8%;

    height: 3px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff,
            transparent
        );
}


/* =========================================
   CARD TOP
========================================= */

.ccprice-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    padding: 30px 34px;

    border-bottom:
        1px solid #e8eff3;
}


.ccprice-top-left {
    display: flex;
    align-items: center;

    gap: 16px;
}


.ccprice-top-icon {
    flex: 0 0 54px;

    width: 54px;
    height: 54px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 15px;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #0099ff,
            #007fd5
        );

    box-shadow:
        0 12px 28px rgba(0, 153, 255, 0.25);

    font-size: 22px;
}


.ccprice-top-left span {
    display: block;

    margin-bottom: 4px;

    color: #0099ff;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 1.2px;
    text-transform: uppercase;
}


.ccprice-top-left h3 {
    margin: 0;

    color: #142d3d;

    font-size: 19px;
    font-weight: 750;
}


.ccprice-badge {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    padding: 10px 14px;

    color: #166447;

    background: #effaf5;

    border:
        1px solid #d8f0e5;

    border-radius: 50px;

    font-size: 11px;
    font-weight: 800;
}


/* =========================================
   TABLE
========================================= */

.ccprice-table-wrap {
    width: 100%;
    overflow-x: auto;
}


.ccprice-table {
    width: 100%;

    border-collapse: collapse;
}


.ccprice-table thead {
    background: #0a2636;
}


.ccprice-table th {
    width: 33.333%;

    padding: 22px 28px;

    text-align: left;

    border-right:
        1px solid rgba(255, 255, 255, 0.08);
}


.ccprice-table th:last-child {
    border-right: none;
}


.ccprice-th-content {
    display: flex;
    align-items: center;

    gap: 13px;
}


.ccprice-th-icon {
    flex: 0 0 40px;

    width: 40px;
    height: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 11px;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.12);

    font-size: 17px;
}


.ccprice-th-content small {
    display: block;

    margin-bottom: 3px;

    color:
        rgba(255, 255, 255, 0.45);

    font-size: 8px;
    font-weight: 800;

    letter-spacing: 1px;
}


.ccprice-th-content strong {
    display: block;

    color: #ffffff;

    font-size: 14px;
    font-weight: 750;
}


.ccprice-th-content em {
    display: block;

    margin-top: 2px;

    color:
        rgba(255, 255, 255, 0.55);

    font-size: 9px;
    font-style: normal;
    font-weight: 600;
}


/* =========================================
   TABLE BODY
========================================= */

.ccprice-table tbody tr {
    transition:
        background 0.25s ease,
        transform 0.25s ease;
}


.ccprice-table tbody tr:hover {
    background:
        rgba(0, 153, 255, 0.035);
}


.ccprice-table td {
    padding: 20px 28px;

    border-bottom:
        1px solid #edf2f5;

    border-right:
        1px solid #edf2f5;
}


.ccprice-table td:last-child {
    border-right: none;
}


.ccprice-area {
    display: flex;
    align-items: center;

    gap: 13px;
}


.ccprice-area span {
    width: 34px;
    height: 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 34px;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.08);

    border-radius: 9px;

    font-size: 9px;
    font-weight: 900;
}


.ccprice-area strong {
    color: #183343;

    font-size: 14px;
    font-weight: 750;
}


/* Price */
.ccprice-price {
    display: flex;
    align-items: baseline;

    gap: 8px;
}


.ccprice-price small {
    color: #93a1aa;

    font-size: 9px;
    font-weight: 700;

    text-transform: uppercase;
}


.ccprice-price strong {
    color: #102d3e;

    font-size: 23px;
    font-weight: 850;

    letter-spacing: -0.7px;
}


.ccprice-night-price strong {
    color: #0099ff;
}


/* =========================================
   BESPOKE ROW
========================================= */

.ccprice-bespoke-row {
    background:
        linear-gradient(
            90deg,
            rgba(0, 153, 255, 0.035),
            rgba(0, 153, 255, 0.07)
        );
}


.ccprice-quote {
    display: inline-flex;
    align-items: center;

    gap: 9px;

    color: #0099ff;
}


.ccprice-quote i {
    font-size: 17px;
}


.ccprice-quote strong {
    font-size: 13px;
    font-weight: 800;
}


/* =========================================
   BOTTOM
========================================= */

.ccprice-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    padding: 26px 34px;

    background: #f8fbfd;
}


.ccprice-note {
    display: flex;
    align-items: center;

    gap: 12px;
}


.ccprice-note-icon {
    width: 38px;
    height: 38px;

    flex: 0 0 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.09);

    border-radius: 50%;
}


.ccprice-note p {
    margin: 0;

    color: #71818b;

    font-size: 12px;
    font-weight: 550;

    line-height: 1.6;
}


.ccprice-note p strong {
    color: #1b3747;
}


/* Button */
.ccprice-book-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 12px;

    flex-shrink: 0;

    padding: 14px 20px;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #0099ff,
            #0087e1
        );

    border-radius: 11px;

    text-decoration: none;

    font-size: 12px;
    font-weight: 800;

    box-shadow:
        0 12px 25px rgba(0, 153, 255, 0.22);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}


.ccprice-book-btn:hover {
    color: #ffffff;

    transform: translateY(-3px);

    box-shadow:
        0 17px 32px rgba(0, 153, 255, 0.30);
}


.ccprice-book-btn i {
    transition:
        transform 0.25s ease;
}


.ccprice-book-btn:hover i {
    transform:
        translate(3px, -3px);
}


/* =========================================
   SCROLL REVEAL ANIMATION
========================================= */

.ccprice-reveal {
    opacity: 0;

    transform:
        translateY(35px);

    transition:
        opacity 0.8s ease,
        transform 0.8s
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );
}


.ccprice-reveal.ccprice-visible {
    opacity: 1;

    transform:
        translateY(0);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991.98px) {

    .ccprice-section {
        padding: 85px 0;
    }

    .ccprice-card-top,
    .ccprice-bottom {
        padding:
            25px 24px;
    }

    .ccprice-table th,
    .ccprice-table td {
        padding:
            18px 20px;
    }

}


@media (max-width: 767.98px) {

    .ccprice-section {
        padding:
            70px 0;
    }

    .ccprice-heading {
        margin-bottom: 38px;
    }

    .ccprice-heading h2 {
        font-size: 35px;
        letter-spacing: -1.3px;
    }

    .ccprice-heading p {
        font-size: 14px;
    }


    .ccprice-card {
        border-radius: 20px;
    }


    .ccprice-card-top {
        flex-direction: column;
        align-items: flex-start;
    }


    .ccprice-table {
        min-width: 680px;
    }


    .ccprice-bottom {
        flex-direction: column;
        align-items: stretch;
    }


    .ccprice-book-btn {
        width: 100%;
    }

}


@media (max-width: 575.98px) {

    .ccprice-section {
        padding:
            60px 0;
    }

    .ccprice-heading h2 {
        font-size: 30px;
    }

    .ccprice-eyebrow {
        font-size: 9px;
        gap: 8px;
    }

    .ccprice-eyebrow span {
        width: 22px;
    }


    .ccprice-card-top {
        padding:
            21px 18px;
    }


    .ccprice-top-icon {
        width: 48px;
        height: 48px;
        flex-basis: 48px;
    }


    .ccprice-top-left h3 {
        font-size: 15px;
    }


    .ccprice-bottom {
        padding:
            22px 18px;
    }

}


/* =========================================
   PREMIUM BEFORE / AFTER SECTION
========================================= */

.ba-premium-section {
    position: relative;
    overflow: hidden;
    padding: 110px 0;
    background:
        linear-gradient(
            180deg,
            #071e2b 0%,
            #092534 55%,
            #061a26 100%
        );
}

/* Grid Pattern */
.ba-premium-section::before {
    content: "";
    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            rgba(255,255,255,0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,0.025) 1px,
            transparent 1px
        );

    background-size: 48px 48px;
    pointer-events: none;
}


/* =========================================
   GLOWS
========================================= */

.ba-bg-glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.ba-glow-one {
    width: 500px;
    height: 500px;
    top: -240px;
    right: -160px;

    background:
        radial-gradient(
            circle,
            rgba(0,153,255,0.18),
            transparent 70%
        );

    animation: baFloat 9s ease-in-out infinite;
}

.ba-glow-two {
    width: 420px;
    height: 420px;
    bottom: -220px;
    left: -160px;

    background:
        radial-gradient(
            circle,
            rgba(0,153,255,0.12),
            transparent 70%
        );

    animation: baFloat 11s ease-in-out infinite reverse;
}

@keyframes baFloat {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-25px);
    }
}


/* =========================================
   HEADING
========================================= */

.ba-section-heading {
    margin-bottom: 55px;
}

.ba-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    margin-bottom: 18px;

    color: #0099ff;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.ba-eyebrow span {
    width: 35px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff
        );
}

.ba-eyebrow span:last-child {
    background:
        linear-gradient(
            90deg,
            #0099ff,
            transparent
        );
}

.ba-section-heading h2 {
    margin: 0;

    color: #ffffff;

    font-size: clamp(36px, 4vw, 56px);
    font-weight: 850;

    letter-spacing: -2px;
    line-height: 1.08;
}

.ba-section-heading h2 span {
    color: #0099ff;
}

.ba-section-heading p {
    max-width: 690px;

    margin: 20px auto 0;

    color: rgba(255,255,255,0.62);

    font-size: 16px;
    line-height: 1.8;
}


/* =========================================
   FEATURED WRAPPER
========================================= */

.ba-featured-wrap {
    overflow: hidden;

    border:
        1px solid rgba(255,255,255,0.11);

    border-radius: 26px;

    background:
        rgba(255,255,255,0.055);

    box-shadow:
        0 30px 80px rgba(0,0,0,0.28);
}


/* Top */
.ba-featured-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding: 24px 28px;

    background:
        rgba(255,255,255,0.04);

    border-bottom:
        1px solid rgba(255,255,255,0.08);
}

.ba-project-info {
    display: flex;
    align-items: center;
    gap: 15px;
}

.ba-project-number {
    width: 46px;
    height: 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 46px;

    color: #ffffff;

    background: #0099ff;

    border-radius: 13px;

    font-size: 12px;
    font-weight: 900;

    box-shadow:
        0 12px 25px rgba(0,153,255,0.25);
}

.ba-project-info small {
    display: block;

    margin-bottom: 4px;

    color: #0099ff;

    font-size: 9px;
    font-weight: 850;

    letter-spacing: 1.3px;
}

.ba-project-info h3 {
    margin: 0;

    color: #ffffff;

    font-size: 18px;
    font-weight: 750;
}

.ba-drag-hint {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 9px 13px;

    color: rgba(255,255,255,0.75);

    border:
        1px solid rgba(255,255,255,0.12);

    border-radius: 50px;

    font-size: 10px;
    font-weight: 750;
}

.ba-drag-hint i {
    color: #0099ff;
}


/* =========================================
   COMPARISON ENGINE
========================================= */

.ba-compare {
    --ba-position: 50%;

    position: relative;
    width: 100%;

    height: 470px;

    overflow: hidden;

    background: #0a202c;

    user-select: none;
}

.ba-gallery-card .ba-compare {
    height: 340px;
}


/* Images */
.ba-image {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;
}

.ba-after-image {
    z-index: 1;
}


/* Before Layer */
.ba-before-layer {
    position: absolute;

    top: 0;
    left: 0;
    bottom: 0;

    width: var(--ba-position);

    overflow: hidden;

    z-index: 2;
}

.ba-before-image {
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    max-width: none;
    object-fit: cover;
}


/*
 IMPORTANT:
 before image width is updated by JS
 to match comparison container width.
*/


/* =========================================
   LABELS
========================================= */

.ba-label {
    position: absolute;
    top: 20px;

    z-index: 6;

    padding: 8px 12px;

    border-radius: 7px;

    color: #ffffff;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: 1px;
    text-transform: uppercase;

    backdrop-filter: blur(8px);
}

.ba-label-before {
    left: 20px;

    background:
        rgba(7,30,43,0.82);

    border:
        1px solid rgba(255,255,255,0.16);
}

.ba-label-after {
    right: 20px;

    background:
        rgba(0,153,255,0.90);

    border:
        1px solid rgba(255,255,255,0.20);
}


/* =========================================
   SLIDER LINE
========================================= */

.ba-slider-line {
    position: absolute;

    top: 0;
    bottom: 0;

    left: var(--ba-position);

    z-index: 5;

    width: 3px;

    background: #ffffff;

    transform: translateX(-50%);

    pointer-events: none;

    box-shadow:
        0 0 18px rgba(0,0,0,0.30);
}


/* Handle */
.ba-slider-handle {
    position: absolute;

    top: 50%;
    left: 50%;

    width: 58px;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    transform:
        translate(-50%, -50%);

    border-radius: 50%;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #0099ff,
            #007fd5
        );

    border:
        4px solid #ffffff;

    box-shadow:
        0 12px 35px rgba(0,0,0,0.32),
        0 0 0 7px rgba(0,153,255,0.18);

    font-size: 13px;

    animation:
        baHandlePulse 2.4s ease-in-out infinite;
}

@keyframes baHandlePulse {
    0%, 100% {
        box-shadow:
            0 12px 35px rgba(0,0,0,0.32),
            0 0 0 6px rgba(0,153,255,0.15);
    }

    50% {
        box-shadow:
            0 12px 35px rgba(0,0,0,0.32),
            0 0 0 12px rgba(0,153,255,0.05);
    }
}


/* =========================================
   INVISIBLE RANGE
========================================= */

.ba-range {
    position: absolute;
    inset: 0;

    z-index: 10;

    width: 100%;
    height: 100%;

    margin: 0;

    opacity: 0;

    cursor: ew-resize;
}


/* =========================================
   SMALL GALLERY CARDS
========================================= */

.ba-gallery-card {
    overflow: hidden;

    height: 100%;

    background:
        rgba(255,255,255,0.055);

    border:
        1px solid rgba(255,255,255,0.10);

    border-radius: 22px;

    box-shadow:
        0 22px 55px rgba(0,0,0,0.18);

    transition:
        transform 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

.ba-gallery-card:hover {
    transform: translateY(-7px);

    border-color:
        rgba(0,153,255,0.38);

    box-shadow:
        0 30px 70px rgba(0,0,0,0.26);
}


.ba-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    padding: 19px 21px;
}

.ba-card-head > div {
    display: flex;
    align-items: center;
    gap: 11px;
}

.ba-card-head span {
    width: 34px;
    height: 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #0099ff;

    background:
        rgba(0,153,255,0.12);

    border-radius: 9px;

    font-size: 9px;
    font-weight: 900;
}

.ba-card-head h3 {
    margin: 0;

    color: #ffffff;

    font-size: 15px;
    font-weight: 750;
}

.ba-card-head small {
    color:
        rgba(255,255,255,0.42);

    font-size: 9px;
    font-weight: 700;
}


/* =========================================
   SCROLL REVEAL
========================================= */

.ba-reveal {
    opacity: 0;

    transform:
        translateY(35px);

    transition:
        opacity 0.8s ease,
        transform 0.8s
        cubic-bezier(0.22, 1, 0.36, 1);
}

.ba-reveal.ba-visible {
    opacity: 1;

    transform:
        translateY(0);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991.98px) {

    .ba-premium-section {
        padding: 85px 0;
    }

    .ba-compare {
        height: 400px;
    }

    .ba-gallery-card .ba-compare {
        height: 330px;
    }

}


@media (max-width: 767.98px) {

    .ba-premium-section {
        padding: 70px 0;
    }

    .ba-section-heading {
        margin-bottom: 40px;
    }

    .ba-section-heading h2 {
        font-size: 36px;
        letter-spacing: -1.4px;
    }

    .ba-featured-top {
        flex-direction: column;
        align-items: flex-start;
    }

    .ba-compare {
        height: 350px;
    }

    .ba-gallery-card .ba-compare {
        height: 300px;
    }

    .ba-slider-handle {
        width: 50px;
        height: 50px;
    }

}


@media (max-width: 575.98px) {

    .ba-premium-section {
        padding: 60px 0;
    }

    .ba-section-heading h2 {
        font-size: 30px;
    }

    .ba-section-heading p {
        font-size: 14px;
    }

    .ba-featured-top {
        padding: 19px 17px;
    }

    .ba-project-info h3 {
        font-size: 14px;
    }

    .ba-compare {
        height: 290px;
    }

    .ba-gallery-card .ba-compare {
        height: 270px;
    }

    .ba-label {
        top: 13px;
        padding: 7px 9px;
        font-size: 8px;
    }

    .ba-label-before {
        left: 13px;
    }

    .ba-label-after {
        right: 13px;
    }

    .ba-card-head {
        padding: 16px;
    }

}


/* =========================================
   PREMIUM TESTIMONIALS
========================================= */

.hctest-section {
    position: relative;
    overflow: hidden;
    padding: 110px 0;
    background:
        linear-gradient(
            180deg,
            #f8fbfd 0%,
            #ffffff 50%,
            #f4faff 100%
        );
}


/* Grid Pattern */
.hctest-section::before {
    content: "";
    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            rgba(0, 153, 255, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 153, 255, 0.035) 1px,
            transparent 1px
        );

    background-size: 44px 44px;
    pointer-events: none;
}


/* =========================================
   DECORATIVE GLOW
========================================= */

.hctest-glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.hctest-glow-one {
    width: 420px;
    height: 420px;
    top: -220px;
    right: -140px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.13),
            transparent 70%
        );

    animation:
        hctestFloat 8s ease-in-out infinite;
}

.hctest-glow-two {
    width: 340px;
    height: 340px;
    bottom: -180px;
    left: -100px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.09),
            transparent 70%
        );

    animation:
        hctestFloat 10s ease-in-out infinite reverse;
}


@keyframes hctestFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-22px);
    }
}


/* =========================================
   HEADING
========================================= */

.hctest-heading {
    margin-bottom: 55px;
}

.hctest-eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    margin-bottom: 17px;

    color: #0099ff;

    font-size: 11px;
    font-weight: 850;

    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.hctest-eyebrow span {
    width: 34px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff
        );
}

.hctest-eyebrow span:last-child {
    background:
        linear-gradient(
            90deg,
            #0099ff,
            transparent
        );
}


.hctest-heading h2 {
    margin: 0;

    color: #102b3b;

    font-size: clamp(35px, 4vw, 54px);
    font-weight: 850;

    letter-spacing: -2px;
    line-height: 1.08;
}

.hctest-heading h2 span {
    display: block;
    color: #0099ff;
}


.hctest-heading p {
    max-width: 650px;

    margin: 19px auto 0;

    color: #70808a;

    font-size: 15px;
    font-weight: 500;

    line-height: 1.8;
}


/* =========================================
   TESTIMONIAL CARD
========================================= */

.hctest-card {
    position: relative;

    height: 100%;
    min-height: 355px;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    padding: 31px;

    background:
        rgba(255, 255, 255, 0.94);

    border:
        1px solid rgba(15, 50, 70, 0.10);

    border-radius: 22px;

    box-shadow:
        0 20px 55px rgba(17, 53, 73, 0.08);

    transition:
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s ease,
        border-color 0.4s ease;
}


/* Blue Top Line */
.hctest-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 30px;
    right: 30px;

    height: 3px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff,
            transparent
        );

    opacity: 0;

    transition:
        opacity 0.35s ease;
}


.hctest-card:hover {
    transform: translateY(-10px);

    border-color:
        rgba(0, 153, 255, 0.28);

    box-shadow:
        0 30px 75px rgba(17, 53, 73, 0.14);
}


.hctest-card:hover::before {
    opacity: 1;
}


/* =========================================
   FEATURED CARD
========================================= */

.hctest-card-featured {
    background:
        linear-gradient(
            145deg,
            #092736 0%,
            #061d29 100%
        );

    border-color:
        rgba(0, 153, 255, 0.26);

    box-shadow:
        0 25px 65px rgba(5, 31, 44, 0.22);
}


.hctest-featured-label {
    position: absolute;

    top: 0;
    right: 24px;

    display: flex;
    align-items: center;
    gap: 6px;

    padding: 8px 12px;

    color: #ffffff;

    background: #0099ff;

    border-radius:
        0 0 9px 9px;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: 0.5px;
    text-transform: uppercase;
}


/* =========================================
   CARD TOP
========================================= */

.hctest-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    margin-bottom: 27px;
}


.hctest-quote-icon {
    width: 48px;
    height: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 48px;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.09);

    border-radius: 14px;

    font-size: 25px;

    transition:
        transform 0.35s ease,
        background 0.35s ease;
}


.hctest-card:hover .hctest-quote-icon {
    transform:
        rotate(-7deg)
        scale(1.07);

    background:
        rgba(0, 153, 255, 0.14);
}


.hctest-card-featured .hctest-quote-icon {
    background:
        rgba(0, 153, 255, 0.14);
}


/* Stars */
.hctest-stars {
    display: flex;
    align-items: center;
    gap: 3px;

    color: #ffb800;

    font-size: 13px;
}


/* =========================================
   QUOTE TEXT
========================================= */

.hctest-card blockquote {
    flex-grow: 1;

    margin: 0;

    color: #203a49;

    font-size: 17px;
    font-weight: 650;

    line-height: 1.75;

    letter-spacing: -0.2px;
}


.hctest-card-featured blockquote {
    color:
        rgba(255, 255, 255, 0.92);
}


/* =========================================
   DIVIDER
========================================= */

.hctest-divider {
    width: 100%;
    height: 1px;

    margin: 26px 0 21px;

    background:
        linear-gradient(
            90deg,
            #e4ebef,
            transparent
        );
}


.hctest-card-featured .hctest-divider {
    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.14),
            transparent
        );
}


/* =========================================
   META
========================================= */

.hctest-meta {
    display: flex;
    align-items: center;
    gap: 12px;
}


.hctest-avatar {
    width: 43px;
    height: 43px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 43px;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.09);

    border-radius: 50%;

    font-size: 17px;
}


.hctest-meta strong {
    display: block;

    margin-bottom: 3px;

    color: #173445;

    font-size: 12px;
    font-weight: 800;
}


.hctest-meta span {
    display: block;

    color: #8b99a1;

    font-size: 10px;
    font-weight: 600;
}


.hctest-card-featured .hctest-meta strong {
    color: #ffffff;
}


.hctest-card-featured .hctest-meta span {
    color:
        rgba(255, 255, 255, 0.48);
}


/* =========================================
   CARD NUMBER
========================================= */

.hctest-card-number {
    position: absolute;

    right: 23px;
    bottom: 20px;

    color:
        rgba(14, 48, 67, 0.055);

    font-size: 48px;
    font-weight: 900;

    line-height: 1;

    pointer-events: none;
}


.hctest-card-featured .hctest-card-number {
    color:
        rgba(255, 255, 255, 0.045);
}


/* =========================================
   TRUST ROW
========================================= */

.hctest-trust-row {
    max-width: 900px;

    margin:
        52px auto 0;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 28px;

    padding: 19px 27px;

    background:
        rgba(255, 255, 255, 0.78);

    border:
        1px solid rgba(15, 50, 70, 0.09);

    border-radius: 16px;

    box-shadow:
        0 15px 40px rgba(17, 53, 73, 0.06);

    backdrop-filter: blur(10px);
}


.hctest-trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
}


.hctest-trust-item > i {
    color: #0099ff;
    font-size: 18px;
}


.hctest-trust-item span {
    color: #7c8c95;

    font-size: 9px;
    font-weight: 650;

    line-height: 1.4;
}


.hctest-trust-item strong {
    display: block;

    color: #183747;

    font-size: 11px;
    font-weight: 850;
}


.hctest-trust-separator {
    width: 1px;
    height: 32px;

    background: #e0e9ee;
}


/* =========================================
   REVEAL ANIMATION
========================================= */

.hctest-reveal {
    opacity: 0;

    transform:
        translateY(35px);

    transition:
        opacity 0.8s ease,
        transform 0.8s
        cubic-bezier(0.22, 1, 0.36, 1);
}


.hctest-reveal.hctest-visible {
    opacity: 1;

    transform:
        translateY(0);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991.98px) {

    .hctest-section {
        padding: 85px 0;
    }

    .hctest-card {
        min-height: 330px;
    }

    .hctest-trust-row {
        flex-wrap: wrap;
    }

}


@media (max-width: 767.98px) {

    .hctest-section {
        padding: 70px 0;
    }

    .hctest-heading {
        margin-bottom: 40px;
    }

    .hctest-heading h2 {
        font-size: 35px;
        letter-spacing: -1.3px;
    }

    .hctest-card {
        min-height: auto;
    }

    .hctest-trust-row {
        align-items: flex-start;
        justify-content: flex-start;
        gap: 18px;
    }

    .hctest-trust-separator {
        display: none;
    }

}


@media (max-width: 575.98px) {

    .hctest-section {
        padding: 60px 0;
    }

    .hctest-heading h2 {
        font-size: 30px;
    }

    .hctest-heading p {
        font-size: 14px;
    }

    .hctest-card {
        padding: 26px 23px;
        border-radius: 18px;
    }

    .hctest-card blockquote {
        font-size: 15px;
    }

    .hctest-trust-row {
        padding: 18px;
    }

}


/* =========================================
   AREAS COVERED SECTION
========================================= */

.hacover-section {
    position: relative;
    overflow: hidden;

    padding: 110px 0;

    background:
        linear-gradient(
            180deg,
            #f8fbfd 0%,
            #ffffff 48%,
            #f4faff 100%
        );
}


/* Grid Background */
.hacover-section::before {
    content: "";

    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            rgba(0, 153, 255, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 153, 255, 0.035) 1px,
            transparent 1px
        );

    background-size: 44px 44px;

    pointer-events: none;
}


/* =========================================
   GLOWS
========================================= */

.hacover-glow {
    position: absolute;

    border-radius: 50%;

    pointer-events: none;
}

.hacover-glow-one {
    width: 430px;
    height: 430px;

    top: -220px;
    right: -150px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.13),
            transparent 70%
        );

    animation:
        hacoverFloat 9s ease-in-out infinite;
}

.hacover-glow-two {
    width: 350px;
    height: 350px;

    left: -130px;
    bottom: -170px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.09),
            transparent 70%
        );

    animation:
        hacoverFloat 11s ease-in-out infinite reverse;
}


@keyframes hacoverFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-22px);
    }

}


/* =========================================
   HEADING
========================================= */

.hacover-heading {
    margin-bottom: 55px;
}


.hacover-eyebrow {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 12px;

    margin-bottom: 17px;

    color: #0099ff;

    font-size: 11px;
    font-weight: 850;

    letter-spacing: 1.8px;

    text-transform: uppercase;
}


.hacover-eyebrow span {
    width: 34px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff
        );
}


.hacover-eyebrow span:last-child {
    background:
        linear-gradient(
            90deg,
            #0099ff,
            transparent
        );
}


.hacover-heading h2 {
    margin: 0;

    color: #102b3b;

    font-size:
        clamp(35px, 4vw, 54px);

    font-weight: 850;

    letter-spacing: -2px;

    line-height: 1.08;
}


.hacover-heading h2 span {
    color: #0099ff;
}


.hacover-heading p {
    max-width: 690px;

    margin: 19px auto 0;

    color: #70808a;

    font-size: 15px;
    font-weight: 500;

    line-height: 1.8;
}


/* =========================================
   MAP CARD
========================================= */

.hacover-map-card {
    height: 100%;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            #092736 0%,
            #061d29 100%
        );

    border:
        1px solid rgba(0, 153, 255, 0.18);

    border-radius: 24px;

    box-shadow:
        0 28px 70px
        rgba(8, 39, 55, 0.18);
}


/* Map Top */
.hacover-map-top {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 15px;

    padding: 23px 24px;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.08);
}


.hacover-map-title {
    display: flex;

    align-items: center;

    gap: 13px;
}


.hacover-map-icon {
    width: 46px;
    height: 46px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 46px;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #0099ff,
            #007fd5
        );

    border-radius: 13px;

    box-shadow:
        0 12px 26px
        rgba(0, 153, 255, 0.25);
}


.hacover-map-title small {
    display: block;

    margin-bottom: 3px;

    color: #0099ff;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: 1.2px;
}


.hacover-map-title h3 {
    margin: 0;

    color: #ffffff;

    font-size: 17px;
    font-weight: 750;
}


/* Active Badge */
.hacover-live-badge {
    display: flex;

    align-items: center;

    gap: 7px;

    padding: 8px 11px;

    color:
        rgba(255, 255, 255, 0.72);

    background:
        rgba(255, 255, 255, 0.06);

    border:
        1px solid
        rgba(255, 255, 255, 0.09);

    border-radius: 50px;

    font-size: 9px;
    font-weight: 750;
}


.hacover-live-badge span {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #21d78c;

    box-shadow:
        0 0 0 5px
        rgba(33, 215, 140, 0.10);

    animation:
        hacoverLivePulse
        1.8s ease-in-out infinite;
}


@keyframes hacoverLivePulse {

    0%,
    100% {
        box-shadow:
            0 0 0 4px
            rgba(33, 215, 140, 0.10);
    }

    50% {
        box-shadow:
            0 0 0 9px
            rgba(33, 215, 140, 0);
    }

}


/* =========================================
   VISUAL MAP
========================================= */

.hacover-map-visual {
    position: relative;

    flex-grow: 1;

    min-height: 520px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at center,
            rgba(0, 153, 255, 0.10),
            transparent 45%
        ),
        linear-gradient(
            145deg,
            #082331,
            #061b27
        );
}


/* Map Dots */
.hacover-map-visual::before {
    content: "";

    position: absolute;
    inset: 0;

    background-image:
        radial-gradient(
            rgba(255, 255, 255, 0.10) 1px,
            transparent 1px
        );

    background-size: 22px 22px;

    opacity: 0.35;
}


/* Rings */
.hacover-map-ring {
    position: absolute;

    left: 50%;
    top: 50%;

    border:
        1px solid
        rgba(0, 153, 255, 0.17);

    border-radius: 50%;

    transform:
        translate(-50%, -50%);
}


.hacover-ring-one {
    width: 170px;
    height: 170px;
}


.hacover-ring-two {
    width: 290px;
    height: 290px;
}


.hacover-ring-three {
    width: 420px;
    height: 420px;
}


/* Roads */
.hacover-road {
    position: absolute;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(0, 153, 255, 0.22),
            transparent
        );
}


.hacover-road-one {
    width: 90%;

    left: 5%;
    top: 38%;

    transform: rotate(-18deg);
}


.hacover-road-two {
    width: 95%;

    left: 2%;

    top: 61%;

    transform: rotate(21deg);
}


.hacover-road-three {
    width: 80%;

    left: 10%;

    top: 50%;

    transform: rotate(72deg);
}


/* =========================================
   MAP PINS
========================================= */

.hacover-pin {
    position: absolute;

    z-index: 5;

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 6px;

    padding: 0;

    border: 0;

    color: #ffffff;

    background: transparent;

    cursor: pointer;

    transition:
        transform 0.3s ease;
}


.hacover-pin:hover {
    transform:
        translateY(-5px);
}


.hacover-pin-dot {
    width: 18px;
    height: 18px;

    display: flex;

    align-items: center;
    justify-content: center;

    position: relative;

    border: 4px solid
        rgba(255, 255, 255, 0.95);

    border-radius: 50%;

    background: #0099ff;

    box-shadow:
        0 8px 20px
        rgba(0, 153, 255, 0.30);
}


.hacover-pin-central
.hacover-pin-dot {
    width: 34px;
    height: 34px;

    border-width: 3px;

    color: #ffffff;

    font-size: 12px;
}


.hacover-pin strong {
    padding: 5px 8px;

    color: #ffffff;

    background:
        rgba(4, 23, 33, 0.86);

    border:
        1px solid
        rgba(255, 255, 255, 0.10);

    border-radius: 6px;

    font-size: 8px;
    font-weight: 800;

    white-space: nowrap;

    backdrop-filter: blur(8px);
}


/* Pin Positions */
.hacover-pin-central {
    left: 47%;
    top: 42%;
}

.hacover-pin-north {
    left: 45%;
    top: 15%;
}

.hacover-pin-south {
    left: 49%;
    bottom: 12%;
}

.hacover-pin-east {
    right: 12%;
    top: 45%;
}

.hacover-pin-west {
    left: 12%;
    top: 48%;
}

.hacover-pin-canary {
    right: 18%;
    top: 29%;
}


/* Pulse */
.hacover-pin-pulse {
    position: absolute;

    left: 50%;
    top: 17px;

    width: 42px;
    height: 42px;

    border:
        1px solid #0099ff;

    border-radius: 50%;

    transform:
        translate(-50%, -50%);

    animation:
        hacoverPinPulse
        2s ease-out infinite;
}


@keyframes hacoverPinPulse {

    0% {
        opacity: 0.8;

        transform:
            translate(-50%, -50%)
            scale(0.6);
    }

    100% {
        opacity: 0;

        transform:
            translate(-50%, -50%)
            scale(1.7);
    }

}


/* Center Information */
.hacover-map-center {
    position: absolute;

    z-index: 4;

    left: 50%;
    top: 50%;

    width: 180px;

    padding: 17px;

    text-align: center;

    transform:
        translate(-50%, -50%);

    background:
        rgba(5, 29, 41, 0.88);

    border:
        1px solid
        rgba(0, 153, 255, 0.22);

    border-radius: 16px;

    box-shadow:
        0 20px 45px
        rgba(0, 0, 0, 0.25);

    backdrop-filter:
        blur(12px);
}


.hacover-center-icon {
    width: 38px;
    height: 38px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin:
        0 auto 9px;

    color: #ffffff;

    background: #0099ff;

    border-radius: 11px;
}


.hacover-map-center span {
    display: block;

    margin-bottom: 4px;

    color:
        rgba(255, 255, 255, 0.46);

    font-size: 7px;
    font-weight: 750;

    letter-spacing: 0.7px;

    text-transform: uppercase;
}


.hacover-map-center strong {
    display: block;

    color: #ffffff;

    font-size: 13px;
    font-weight: 800;
}


/* =========================================
   MAP BOTTOM
========================================= */

.hacover-map-bottom {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 15px;

    padding: 20px 23px;

    border-top:
        1px solid
        rgba(255, 255, 255, 0.08);
}


.hacover-map-bottom > div {
    display: flex;

    align-items: center;

    gap: 10px;
}


.hacover-map-bottom > div > i {
    color: #0099ff;
}


.hacover-map-bottom span {
    color:
        rgba(255, 255, 255, 0.45);

    font-size: 8px;

    line-height: 1.4;
}


.hacover-map-bottom strong {
    display: block;

    color: #ffffff;

    font-size: 10px;
}


.hacover-map-bottom a {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    color: #0099ff;

    text-decoration: none;

    font-size: 9px;
    font-weight: 800;
}


/* =========================================
   LOCATIONS CARD
========================================= */

.hacover-locations-card {
    height: 100%;

    overflow: hidden;

    padding: 27px;

    background:
        rgba(255, 255, 255, 0.94);

    border:
        1px solid
        rgba(15, 50, 70, 0.10);

    border-radius: 24px;

    box-shadow:
        0 25px 65px
        rgba(17, 53, 73, 0.09);
}


/* Header */
.hacover-locations-head {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 24px;
}


.hacover-locations-head > div:first-child > span {
    display: block;

    margin-bottom: 4px;

    color: #0099ff;

    font-size: 9px;
    font-weight: 850;

    letter-spacing: 1.2px;
}


.hacover-locations-head h3 {
    margin: 0;

    color: #153344;

    font-size: 22px;
    font-weight: 800;
}


.hacover-count {
    display: flex;

    align-items: center;

    gap: 9px;
}


.hacover-count strong {
    width: 43px;
    height: 43px;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #ffffff;

    background: #0099ff;

    border-radius: 12px;

    font-size: 15px;

    box-shadow:
        0 10px 24px
        rgba(0, 153, 255, 0.22);
}


.hacover-count span {
    max-width: 55px;

    color: #87959d;

    font-size: 8px;
    font-weight: 700;

    line-height: 1.3;
}


/* =========================================
   LOCATION GRID
========================================= */

.hacover-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 11px;
}


.hacover-location {
    position: relative;

    min-height: 76px;

    display: flex;

    align-items: center;

    gap: 11px;

    padding: 13px;

    color: inherit;

    text-decoration: none;

    background: #f8fbfd;

    border:
        1px solid #e7eef2;

    border-radius: 13px;

    transition:
        transform 0.3s ease,
        border-color 0.3s ease,
        background 0.3s ease,
        box-shadow 0.3s ease;
}


.hacover-location:hover,
.hacover-location.active {
    color: inherit;

    transform:
        translateY(-3px);

    background: #ffffff;

    border-color:
        rgba(0, 153, 255, 0.35);

    box-shadow:
        0 12px 28px
        rgba(18, 58, 79, 0.09);
}


.hacover-location-icon {
    width: 38px;
    height: 38px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 38px;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.08);

    border-radius: 10px;

    transition:
        color 0.3s ease,
        background 0.3s ease,
        transform 0.3s ease;
}


.hacover-location:hover
.hacover-location-icon,
.hacover-location.active
.hacover-location-icon {
    color: #ffffff;

    background: #0099ff;

    transform: scale(1.05);
}


.hacover-location > div {
    flex-grow: 1;

    min-width: 0;
}


.hacover-location strong {
    display: block;

    margin-bottom: 3px;

    color: #1a3747;

    font-size: 11px;
    font-weight: 800;
}


.hacover-location small {
    display: block;

    color: #91a0a8;

    font-size: 8px;
    font-weight: 600;
}


.hacover-location > i {
    color: #b1bdc4;

    font-size: 11px;

    transition:
        color 0.3s ease,
        transform 0.3s ease;
}


.hacover-location:hover > i {
    color: #0099ff;

    transform:
        translate(2px, -2px);
}


.hacover-location-wide {
    grid-column: 1 / -1;
}


/* =========================================
   REVEAL ANIMATION
========================================= */

.hacover-reveal {
    opacity: 0;

    transform:
        translateY(35px);

    transition:
        opacity 0.8s ease,
        transform 0.8s
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );
}


.hacover-reveal.hacover-visible {
    opacity: 1;

    transform:
        translateY(0);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991.98px) {

    .hacover-section {
        padding: 85px 0;
    }

    .hacover-map-visual {
        min-height: 460px;
    }

}


@media (max-width: 767.98px) {

    .hacover-section {
        padding: 70px 0;
    }

    .hacover-heading {
        margin-bottom: 40px;
    }

    .hacover-heading h2 {
        font-size: 35px;

        letter-spacing: -1.3px;
    }

    .hacover-map-visual {
        min-height: 430px;
    }

}


@media (max-width: 575.98px) {

    .hacover-section {
        padding: 60px 0;
    }

    .hacover-heading h2 {
        font-size: 30px;
    }

    .hacover-heading p {
        font-size: 14px;
    }

    .hacover-locations-card {
        padding: 19px;
    }

    .hacover-grid {
        grid-template-columns: 1fr;
    }

    .hacover-location-wide {
        grid-column: auto;
    }

    .hacover-map-visual {
        min-height: 390px;
    }

    .hacover-map-bottom {
        flex-direction: column;

        align-items: flex-start;
    }

    .hacover-ring-three {
        width: 340px;
        height: 340px;
    }

}



/* =========================================
   PREMIUM FAQ SECTION
========================================= */

.hcfaq-section {
    position: relative;
    overflow: hidden;

    padding: 115px 0;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #f7fbfe 50%,
            #ffffff 100%
        );
}


/* Grid Background */
.hcfaq-section::before {
    content: "";

    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            rgba(0, 153, 255, 0.032) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 153, 255, 0.032) 1px,
            transparent 1px
        );

    background-size: 45px 45px;

    pointer-events: none;
}


/* =========================================
   BACKGROUND GLOWS
========================================= */

.hcfaq-glow {
    position: absolute;

    border-radius: 50%;

    pointer-events: none;
}


.hcfaq-glow-one {
    width: 430px;
    height: 430px;

    top: -220px;
    right: -150px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.12),
            transparent 70%
        );

    animation:
        hcfaqFloat 9s ease-in-out infinite;
}


.hcfaq-glow-two {
    width: 350px;
    height: 350px;

    left: -150px;
    bottom: -170px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.08),
            transparent 70%
        );

    animation:
        hcfaqFloat 11s ease-in-out infinite reverse;
}


@keyframes hcfaqFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-22px);
    }

}


/* =========================================
   LEFT SIDE
========================================= */

.hcfaq-left {
    position: sticky;

    top: 35px;
}


/* Eyebrow */
.hcfaq-eyebrow {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-bottom: 18px;

    color: #0099ff;

    font-size: 10px;
    font-weight: 850;

    letter-spacing: 1.6px;

    text-transform: uppercase;
}


.hcfaq-eyebrow span {
    width: 30px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            #0099ff,
            transparent
        );
}


/* Heading */
.hcfaq-left h2 {
    max-width: 470px;

    margin: 0;

    color: #102b3b;

    font-size:
        clamp(38px, 4.2vw, 57px);

    font-weight: 850;

    letter-spacing: -2.3px;

    line-height: 1.05;
}


.hcfaq-left h2 span {
    display: block;

    color: #0099ff;
}


/* Intro */
.hcfaq-intro {
    max-width: 470px;

    margin: 22px 0 0;

    color: #74838c;

    font-size: 15px;
    font-weight: 500;

    line-height: 1.8;
}


/* =========================================
   SUPPORT CARD
========================================= */

.hcfaq-support-card {
    position: relative;

    overflow: hidden;

    max-width: 470px;

    display: flex;

    gap: 16px;

    margin-top: 36px;

    padding: 25px;

    background:
        linear-gradient(
            145deg,
            #092736 0%,
            #061d29 100%
        );

    border:
        1px solid
        rgba(0, 153, 255, 0.20);

    border-radius: 20px;

    box-shadow:
        0 25px 60px
        rgba(7, 37, 52, 0.18);
}


/* Blue top line */
.hcfaq-support-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 30px;
    right: 30px;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff,
            transparent
        );
}


.hcfaq-support-icon {
    position: relative;
    z-index: 2;

    width: 48px;
    height: 48px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 48px;

    color: #ffffff;

    background: #0099ff;

    border-radius: 14px;

    font-size: 19px;

    box-shadow:
        0 12px 28px
        rgba(0, 153, 255, 0.25);
}


.hcfaq-support-content {
    position: relative;

    z-index: 2;
}


.hcfaq-support-content small {
    display: block;

    margin-bottom: 5px;

    color: #0099ff;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: 1.1px;
}


.hcfaq-support-content h3 {
    margin: 0 0 8px;

    color: #ffffff;

    font-size: 16px;
    font-weight: 800;
}


.hcfaq-support-content p {
    margin: 0 0 15px;

    color:
        rgba(255, 255, 255, 0.56);

    font-size: 11px;

    line-height: 1.7;
}


.hcfaq-support-content a {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    color: #0099ff;

    text-decoration: none;

    font-size: 10px;
    font-weight: 800;

    transition:
        gap 0.3s ease;
}


.hcfaq-support-content a:hover {
    gap: 11px;
}


/* Decoration */
.hcfaq-support-circle {
    position: absolute;

    width: 150px;
    height: 150px;

    right: -65px;
    bottom: -75px;

    border:
        1px solid
        rgba(0, 153, 255, 0.16);

    border-radius: 50%;
}


/* =========================================
   MINI TRUST
========================================= */

.hcfaq-mini-trust {
    max-width: 470px;

    display: flex;

    gap: 28px;

    margin-top: 25px;
}


.hcfaq-mini-trust > div {
    display: flex;

    align-items: center;

    gap: 10px;
}


.hcfaq-mini-trust i {
    color: #0099ff;

    font-size: 18px;
}


.hcfaq-mini-trust span {
    color: #8a98a0;

    font-size: 8px;

    line-height: 1.4;
}


.hcfaq-mini-trust strong {
    display: block;

    color: #183747;

    font-size: 10px;
    font-weight: 800;
}


/* =========================================
   FAQ ACCORDION
========================================= */

.hcfaq-accordion {
    display: flex;

    flex-direction: column;

    gap: 13px;
}


/* FAQ Item */
.hcfaq-item {
    overflow: hidden;

    background:
        rgba(255, 255, 255, 0.95);

    border:
        1px solid
        rgba(15, 50, 70, 0.10);

    border-radius: 17px;

    box-shadow:
        0 12px 35px
        rgba(17, 53, 73, 0.055);

    transition:
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}


.hcfaq-item:hover {
    transform:
        translateY(-2px);

    border-color:
        rgba(0, 153, 255, 0.22);

    box-shadow:
        0 18px 42px
        rgba(17, 53, 73, 0.085);
}


.hcfaq-item.active {
    border-color:
        rgba(0, 153, 255, 0.30);

    box-shadow:
        0 20px 50px
        rgba(0, 153, 255, 0.09);
}


/* =========================================
   QUESTION BUTTON
========================================= */

.hcfaq-question {
    width: 100%;

    display: flex;

    align-items: center;

    gap: 16px;

    padding: 21px 22px;

    border: 0;

    text-align: left;

    background: transparent;

    cursor: pointer;
}


/* Number */
.hcfaq-number {
    width: 37px;
    height: 37px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 37px;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.08);

    border-radius: 10px;

    font-size: 9px;
    font-weight: 850;

    transition:
        color 0.35s ease,
        background 0.35s ease;
}


.hcfaq-item.active
.hcfaq-number {
    color: #ffffff;

    background: #0099ff;

    box-shadow:
        0 9px 22px
        rgba(0, 153, 255, 0.22);
}


/* Question Text */
.hcfaq-question-text {
    flex-grow: 1;

    color: #173445;

    font-size: 15px;
    font-weight: 800;

    line-height: 1.4;
}


/* Toggle */
.hcfaq-toggle {
    width: 34px;
    height: 34px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 34px;

    color: #72828b;

    background: #f3f7f9;

    border-radius: 50%;

    font-size: 13px;

    transition:
        color 0.35s ease,
        background 0.35s ease,
        transform 0.4s ease;
}


.hcfaq-item.active
.hcfaq-toggle {
    color: #ffffff;

    background: #0099ff;

    transform:
        rotate(45deg);
}


/* =========================================
   ANSWER
========================================= */

.hcfaq-answer {
    max-height: 0;

    overflow: hidden;

    opacity: 0;

    transition:
        max-height 0.55s
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        ),
        opacity 0.35s ease;
}


.hcfaq-item.active
.hcfaq-answer {
    opacity: 1;
}


.hcfaq-answer-inner {
    display: flex;

    align-items: flex-start;

    gap: 14px;

    margin:
        0 22px 22px 75px;

    padding:
        17px 18px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 153, 255, 0.055),
            rgba(0, 153, 255, 0.018)
        );

    border-left:
        2px solid #0099ff;

    border-radius:
        0 11px 11px 0;
}


.hcfaq-answer-icon {
    width: 33px;
    height: 33px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 33px;

    color: #0099ff;

    background: #ffffff;

    border:
        1px solid
        rgba(0, 153, 255, 0.12);

    border-radius: 9px;

    font-size: 13px;
}


.hcfaq-answer p {
    margin: 0;

    color: #687a84;

    font-size: 12px;
    font-weight: 500;

    line-height: 1.8;
}


.hcfaq-answer p strong {
    color: #173d52;

    font-weight: 800;
}


.hcfaq-answer-copy p + p {
    margin-top: 10px;
}


/* =========================================
   REVEAL ANIMATION
========================================= */

.hcfaq-reveal {
    opacity: 0;

    transform:
        translateY(35px);

    transition:
        opacity 0.8s ease,
        transform 0.8s
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );
}


.hcfaq-reveal.hcfaq-visible {
    opacity: 1;

    transform:
        translateY(0);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991.98px) {

    .hcfaq-section {
        padding: 85px 0;
    }

    .hcfaq-left {
        position: relative;

        top: auto;
    }

}


@media (max-width: 767.98px) {

    .hcfaq-section {
        padding: 70px 0;
    }

    .hcfaq-left h2 {
        font-size: 38px;

        letter-spacing: -1.5px;
    }

}


@media (max-width: 575.98px) {

    .hcfaq-section {
        padding: 60px 0;
    }

    .hcfaq-left h2 {
        font-size: 31px;
    }

    .hcfaq-support-card {
        padding: 21px;

        flex-direction: column;
    }

    .hcfaq-mini-trust {
        flex-direction: column;

        gap: 15px;
    }

    .hcfaq-question {
        gap: 11px;

        padding: 17px 15px;
    }

    .hcfaq-question-text {
        font-size: 13px;
    }

    .hcfaq-number {
        width: 34px;
        height: 34px;

        flex-basis: 34px;
    }

    .hcfaq-answer-inner {
        margin:
            0 15px 17px 15px;

        padding: 15px;
    }

}


/* =========================================
   FINAL PREMIUM CTA SECTION
========================================= */

.hccta-section {
    position: relative;
    overflow: hidden;

    padding: 105px 0;

    background:
        linear-gradient(
            135deg,
            #061d29 0%,
            #082b3d 48%,
            #061c28 100%
        );
}


/* =========================================
   GRID BACKGROUND
========================================= */

.hccta-grid {
    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            rgba(255, 255, 255, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.035) 1px,
            transparent 1px
        );

    background-size: 46px 46px;

    pointer-events: none;

    mask-image:
        linear-gradient(
            90deg,
            transparent,
            black 20%,
            black 80%,
            transparent
        );
}


/* =========================================
   GLOW EFFECTS
========================================= */

.hccta-glow {
    position: absolute;

    border-radius: 50%;

    pointer-events: none;
}


.hccta-glow-one {
    width: 520px;
    height: 520px;

    top: -270px;
    right: -100px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.20),
            transparent 68%
        );

    animation:
        hcctaGlowFloat
        9s ease-in-out infinite;
}


.hccta-glow-two {
    width: 430px;
    height: 430px;

    left: -220px;
    bottom: -240px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.14),
            transparent 68%
        );

    animation:
        hcctaGlowFloat
        11s ease-in-out infinite reverse;
}


@keyframes hcctaGlowFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-25px);
    }

}


/* =========================================
   DECORATIVE ORBITS
========================================= */

.hccta-orbit {
    position: absolute;

    border:
        1px solid
        rgba(0, 153, 255, 0.09);

    border-radius: 50%;

    pointer-events: none;
}


.hccta-orbit-one {
    width: 360px;
    height: 360px;

    left: -180px;
    top: 50%;

    transform:
        translateY(-50%);
}


.hccta-orbit-two {
    width: 260px;
    height: 260px;

    right: -130px;
    top: 20%;
}


/* =========================================
   MAIN WRAPPER
========================================= */

.hccta-wrapper {
    position: relative;

    display: grid;

    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(320px, 0.75fr);

    align-items: center;

    gap: 60px;

    min-height: 460px;

    padding:
        65px 70px;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.055),
            rgba(255, 255, 255, 0.018)
        );

    border:
        1px solid
        rgba(255, 255, 255, 0.10);

    border-radius: 30px;

    box-shadow:
        0 35px 90px
        rgba(0, 0, 0, 0.24);

    backdrop-filter:
        blur(10px);
}


/* Blue top line */
.hccta-wrapper::before {
    content: "";

    position: absolute;

    top: 0;
    left: 70px;
    right: 70px;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff,
            transparent
        );
}


/* Soft internal glow */
.hccta-wrapper::after {
    content: "";

    position: absolute;

    width: 350px;
    height: 350px;

    right: 3%;
    top: 50%;

    transform:
        translateY(-50%);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.10),
            transparent 68%
        );

    pointer-events: none;
}


/* =========================================
   SIDE LINES
========================================= */

.hccta-side-line {
    position: absolute;

    top: 50%;

    width: 1px;
    height: 110px;

    transform:
        translateY(-50%);

    background:
        linear-gradient(
            transparent,
            rgba(0, 153, 255, 0.55),
            transparent
        );
}


.hccta-side-line-left {
    left: 0;
}


.hccta-side-line-right {
    right: 0;
}


/* =========================================
   CONTENT
========================================= */

.hccta-content {
    position: relative;
    z-index: 5;
}


/* Eyebrow */
.hccta-eyebrow {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-bottom: 20px;

    color: #9edcff;

    font-size: 10px;
    font-weight: 850;

    letter-spacing: 1.5px;

    text-transform: uppercase;
}


.hccta-eyebrow-dot {
    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: #0099ff;

    box-shadow:
        0 0 0 6px
        rgba(0, 153, 255, 0.12);

    animation:
        hcctaDotPulse
        2s ease-in-out infinite;
}


@keyframes hcctaDotPulse {

    0%,
    100% {
        box-shadow:
            0 0 0 5px
            rgba(0, 153, 255, 0.10);
    }

    50% {
        box-shadow:
            0 0 0 10px
            rgba(0, 153, 255, 0);
    }

}


.hccta-eyebrow-line {
    width: 35px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            #0099ff,
            transparent
        );
}


/* =========================================
   HEADLINE
========================================= */

.hccta-content h2 {
    max-width: 680px;

    margin: 0;

    color: #ffffff;

    font-size:
        clamp(42px, 5vw, 68px);

    font-weight: 850;

    letter-spacing: -3px;

    line-height: 1.02;
}


.hccta-content h2 span {
    display: block;

    color: #0099ff;
}


/* =========================================
   DESCRIPTION
========================================= */

.hccta-content > p {
    max-width: 650px;

    margin:
        24px 0 0;

    color:
        rgba(255, 255, 255, 0.65);

    font-size: 15px;
    font-weight: 500;

    line-height: 1.85;
}


/* =========================================
   CTA BUTTON
========================================= */

.hccta-action {
    margin-top: 31px;
}


.hccta-btn {
    position: relative;

    display: inline-flex;

    align-items: center;

    gap: 14px;

    min-height: 62px;

    padding:
        7px 8px 7px 8px;

    overflow: hidden;

    color: #ffffff;

    text-decoration: none;

    background:
        linear-gradient(
            135deg,
            #0099ff,
            #0085df
        );

    border:
        1px solid
        rgba(255, 255, 255, 0.15);

    border-radius: 14px;

    box-shadow:
        0 18px 38px
        rgba(0, 153, 255, 0.25);

    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}


/* Shine */
.hccta-btn::before {
    content: "";

    position: absolute;

    top: 0;
    left: -120%;

    width: 70%;
    height: 100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, 0.28),
            transparent
        );

    transform:
        skewX(-20deg);

    transition:
        left 0.7s ease;
}


.hccta-btn:hover {
    color: #ffffff;

    transform:
        translateY(-4px);

    box-shadow:
        0 25px 50px
        rgba(0, 153, 255, 0.34);
}


.hccta-btn:hover::before {
    left: 150%;
}


/* Button Icon */
.hccta-btn-icon {
    width: 48px;
    height: 48px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 48px;

    color: #ffffff;

    background:
        rgba(255, 255, 255, 0.14);

    border:
        1px solid
        rgba(255, 255, 255, 0.16);

    border-radius: 10px;

    font-size: 17px;
}


.hccta-btn-text {
    position: relative;
    z-index: 2;

    padding-right: 5px;

    font-size: 12px;
    font-weight: 850;
}


.hccta-btn-arrow {
    width: 38px;
    height: 38px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-right: 5px;

    color: #ffffff;

    background:
        rgba(4, 37, 52, 0.22);

    border-radius: 50%;

    transition:
        transform 0.35s ease;
}


.hccta-btn:hover
.hccta-btn-arrow {
    transform:
        translateX(4px);
}


/* =========================================
   TRUST POINTS
========================================= */

.hccta-trust {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap:
        13px 24px;

    margin-top: 29px;
}


.hccta-trust-item {
    display: flex;

    align-items: center;

    gap: 8px;

    color:
        rgba(255, 255, 255, 0.68);

    font-size: 10px;
    font-weight: 650;
}


.hccta-check {
    width: 22px;
    height: 22px;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #ffffff;

    background:
        rgba(0, 153, 255, 0.15);

    border:
        1px solid
        rgba(0, 153, 255, 0.35);

    border-radius: 50%;

    font-size: 10px;
}


/* =========================================
   RIGHT VISUAL
========================================= */

.hccta-visual {
    position: relative;
    z-index: 4;

    min-height: 350px;
}


/* Rings */
.hccta-visual-ring {
    position: absolute;

    left: 50%;
    top: 50%;

    border:
        1px solid
        rgba(0, 153, 255, 0.17);

    border-radius: 50%;

    transform:
        translate(-50%, -50%);
}


.hccta-ring-one {
    width: 150px;
    height: 150px;
}


.hccta-ring-two {
    width: 240px;
    height: 240px;

    border-style: dashed;

    animation:
        hcctaRotate
        18s linear infinite;
}


.hccta-ring-three {
    width: 330px;
    height: 330px;

    opacity: 0.55;

    animation:
        hcctaRotateReverse
        25s linear infinite;
}


@keyframes hcctaRotate {

    from {
        transform:
            translate(-50%, -50%)
            rotate(0deg);
    }

    to {
        transform:
            translate(-50%, -50%)
            rotate(360deg);
    }

}


@keyframes hcctaRotateReverse {

    from {
        transform:
            translate(-50%, -50%)
            rotate(360deg);
    }

    to {
        transform:
            translate(-50%, -50%)
            rotate(0deg);
    }

}


/* =========================================
   CENTER ICON
========================================= */

.hccta-center-icon {
    position: absolute;

    left: 50%;
    top: 50%;

    transform:
        translate(-50%, -50%);
}


.hccta-icon-box {
    position: relative;
    z-index: 3;

    width: 100px;
    height: 100px;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #0099ff,
            #007fda
        );

    border:
        8px solid
        rgba(255, 255, 255, 0.08);

    border-radius: 28px;

    font-size: 37px;

    box-shadow:
        0 25px 55px
        rgba(0, 153, 255, 0.30);

    animation:
        hcctaIconFloat
        4s ease-in-out infinite;
}


@keyframes hcctaIconFloat {

    0%,
    100% {
        transform:
            translateY(0)
            rotate(0deg);
    }

    50% {
        transform:
            translateY(-10px)
            rotate(2deg);
    }

}


.hccta-icon-pulse {
    position: absolute;

    left: 50%;
    top: 50%;

    width: 120px;
    height: 120px;

    border:
        1px solid #0099ff;

    border-radius: 50%;

    transform:
        translate(-50%, -50%);

    animation:
        hcctaIconPulse
        2.5s ease-out infinite;
}


@keyframes hcctaIconPulse {

    0% {
        opacity: 0.7;

        transform:
            translate(-50%, -50%)
            scale(0.7);
    }

    100% {
        opacity: 0;

        transform:
            translate(-50%, -50%)
            scale(1.7);
    }

}


/* =========================================
   FLOATING BADGES
========================================= */

.hccta-floating-badge {
    position: absolute;

    display: flex;

    align-items: center;

    gap: 9px;

    padding:
        10px 12px;

    background:
        rgba(7, 35, 48, 0.88);

    border:
        1px solid
        rgba(255, 255, 255, 0.11);

    border-radius: 12px;

    box-shadow:
        0 18px 38px
        rgba(0, 0, 0, 0.20);

    backdrop-filter:
        blur(10px);
}


.hccta-badge-icon {
    width: 33px;
    height: 33px;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.12);

    border-radius: 9px;

    font-size: 13px;
}


.hccta-floating-badge small {
    display: block;

    margin-bottom: 2px;

    color:
        rgba(255, 255, 255, 0.38);

    font-size: 6px;
    font-weight: 800;

    letter-spacing: 0.7px;
}


.hccta-floating-badge strong {
    display: block;

    color: #ffffff;

    font-size: 9px;
    font-weight: 750;
}


/* Badge Positions */
.hccta-badge-one {
    top: 24px;
    left: -5px;

    animation:
        hcctaBadgeFloatOne
        5s ease-in-out infinite;
}


.hccta-badge-two {
    right: -5px;
    top: 105px;

    animation:
        hcctaBadgeFloatTwo
        6s ease-in-out infinite;
}


.hccta-badge-three {
    left: 15px;
    bottom: 28px;

    animation:
        hcctaBadgeFloatOne
        5.5s ease-in-out infinite reverse;
}


@keyframes hcctaBadgeFloatOne {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-9px);
    }

}


@keyframes hcctaBadgeFloatTwo {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(10px);
    }

}


/* =========================================
   SCROLL REVEAL
========================================= */

.hccta-reveal {
    opacity: 0;

    transform:
        translateY(40px)
        scale(0.985);

    transition:
        opacity 0.9s ease,
        transform 0.9s
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );
}


.hccta-reveal.hccta-visible {
    opacity: 1;

    transform:
        translateY(0)
        scale(1);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1199.98px) {

    .hccta-wrapper {
        padding:
            55px 50px;

        gap: 35px;
    }

    .hccta-content h2 {
        font-size: 54px;
    }

}


@media (max-width: 991.98px) {

    .hccta-section {
        padding: 85px 0;
    }

    .hccta-wrapper {
        grid-template-columns: 1fr;

        padding:
            55px 45px;
    }

    .hccta-content {
        text-align: center;
    }

    .hccta-content h2,
    .hccta-content > p {
        margin-left: auto;
        margin-right: auto;
    }

    .hccta-eyebrow,
    .hccta-trust {
        justify-content: center;
    }

    .hccta-visual {
        min-height: 360px;
    }

}


@media (max-width: 767.98px) {

    .hccta-section {
        padding: 70px 0;
    }

    .hccta-wrapper {
        padding:
            45px 28px;

        border-radius: 24px;
    }

    .hccta-content h2 {
        font-size: 44px;

        letter-spacing: -2px;
    }

}


@media (max-width: 575.98px) {

    .hccta-section {
        padding: 60px 0;
    }

    .hccta-wrapper {
        padding:
            40px 20px;

        border-radius: 20px;
    }

    .hccta-content h2 {
        font-size: 34px;

        letter-spacing: -1.4px;
    }

    .hccta-content > p {
        font-size: 14px;
    }

    .hccta-btn {
        width: 100%;

        justify-content: flex-start;
    }

    .hccta-btn-text {
        flex-grow: 1;

        text-align: left;

        font-size: 10px;
    }

    .hccta-trust {
        flex-direction: column;

        align-items: flex-start;

        max-width: 270px;

        margin-left: auto;
        margin-right: auto;
    }

    .hccta-visual {
        min-height: 320px;
    }

    .hccta-ring-three {
        width: 280px;
        height: 280px;
    }

    .hccta-badge-two {
        right: 0;
    }

}



/* =========================================
   CLEAN PREMIUM FOOTER
========================================= */

.hcfooter {
    position: relative;

    overflow: hidden;

    padding:
        75px 0 0;

    background:
        linear-gradient(
            145deg,
            #061d29 0%,
            #082736 55%,
            #051923 100%
        );

    color: #ffffff;
}


/* =========================================
   SUBTLE TOP LINE
========================================= */

.hcfooter::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #0099ff,
            transparent
        );
}


/* =========================================
   SOFT GRID BACKGROUND
========================================= */

.hcfooter::after {
    content: "";

    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            rgba(255, 255, 255, 0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.025) 1px,
            transparent 1px
        );

    background-size:
        48px 48px;

    pointer-events: none;

    opacity: 0.65;
}


/* =========================================
   BACKGROUND GLOWS
========================================= */

.hcfooter-glow {
    position: absolute;

    border-radius: 50%;

    pointer-events: none;
}


.hcfooter-glow-one {
    width: 420px;
    height: 420px;

    top: -240px;
    right: -140px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.14),
            transparent 70%
        );
}


.hcfooter-glow-two {
    width: 320px;
    height: 320px;

    left: -160px;
    bottom: -180px;

    background:
        radial-gradient(
            circle,
            rgba(0, 153, 255, 0.09),
            transparent 70%
        );
}


/* =========================================
   MAIN FOOTER
========================================= */

.hcfooter-main {
    position: relative;

    z-index: 3;

    padding-bottom: 50px;
}


/* =========================================
   BRAND
========================================= */

.hcfooter-brand {
    max-width: 360px;
}


.hcfooter-logo {
    display: inline-block;

    margin-bottom: 20px;
}


.hcfooter-logo img {
    display: block;

    max-width: 190px;
    max-height: 70px;

    object-fit: contain;
}


.hcfooter-brand p {
    max-width: 340px;

    margin:
        0 0 23px;

    color:
        rgba(255, 255, 255, 0.55);

    font-size: 12px;
    font-weight: 500;

    line-height: 1.8;
}


/* =========================================
   BOOK BUTTON
========================================= */

.hcfooter-book-btn {
    display: inline-flex;

    align-items: center;

    gap: 9px;

    min-height: 43px;

    padding:
        0 15px;

    color: #ffffff;

    text-decoration: none;

    background:
        rgba(0, 153, 255, 0.13);

    border:
        1px solid
        rgba(0, 153, 255, 0.30);

    border-radius: 10px;

    font-size: 10px;
    font-weight: 800;

    transition:
        transform 0.3s ease,
        background 0.3s ease,
        border-color 0.3s ease;
}


.hcfooter-book-btn:hover {
    color: #ffffff;

    transform:
        translateY(-3px);

    background: #0099ff;

    border-color: #0099ff;
}


.hcfooter-book-btn
i:last-child {
    margin-left: 3px;

    transition:
        transform 0.3s ease;
}


.hcfooter-book-btn:hover
i:last-child {
    transform:
        translate(2px, -2px);
}


/* =========================================
   FOOTER COLUMNS
========================================= */

.hcfooter-column {
    position: relative;

    z-index: 3;
}


.hcfooter-column h3 {
    position: relative;

    margin:
        0 0 23px;

    padding-bottom: 12px;

    color: #ffffff;

    font-size: 13px;
    font-weight: 800;
}


.hcfooter-column h3::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 0;

    width: 28px;
    height: 2px;

    background: #0099ff;

    border-radius: 10px;
}


/* =========================================
   CONTACT / INFO ITEMS
========================================= */

.hcfooter-contact-item,
.hcfooter-info-item {
    display: flex;

    align-items: flex-start;

    gap: 11px;

    margin-bottom: 18px;
}


.hcfooter-contact-item {
    color: inherit;

    text-decoration: none;
}


.hcfooter-item-icon {
    width: 37px;
    height: 37px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 37px;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.10);

    border:
        1px solid
        rgba(0, 153, 255, 0.16);

    border-radius: 10px;

    font-size: 13px;

    transition:
        color 0.3s ease,
        background 0.3s ease,
        transform 0.3s ease;
}


.hcfooter-contact-item:hover
.hcfooter-item-icon {
    color: #ffffff;

    background: #0099ff;

    transform:
        translateY(-2px);
}


.hcfooter-item-copy {
    min-width: 0;
}


.hcfooter-item-copy small {
    display: block;

    margin-bottom: 4px;

    color:
        rgba(255, 255, 255, 0.35);

    font-size: 7px;
    font-weight: 800;

    letter-spacing: 0.9px;
}


.hcfooter-item-copy strong {
    display: block;

    color:
        rgba(255, 255, 255, 0.86);

    font-size: 10px;
    font-weight: 700;

    line-height: 1.5;

    word-break: break-word;
}


.hcfooter-item-copy em {
    display: block;

    margin-top: 3px;

    color: #0099ff;

    font-size: 8px;
    font-weight: 650;

    font-style: normal;
}


/* =========================================
   LEGAL LINKS
========================================= */

.hcfooter-links {
    display: flex;

    flex-direction: column;

    gap: 13px;
}


.hcfooter-links a {
    display: flex;

    align-items: center;

    gap: 9px;

    color:
        rgba(255, 255, 255, 0.56);

    text-decoration: none;

    font-size: 10px;
    font-weight: 650;

    transition:
        color 0.3s ease,
        transform 0.3s ease;
}


.hcfooter-links a span {
    width: 5px;
    height: 5px;

    flex: 0 0 5px;

    background:
        rgba(0, 153, 255, 0.50);

    border-radius: 50%;

    transition:
        background 0.3s ease,
        box-shadow 0.3s ease;
}


.hcfooter-links a:hover {
    color: #ffffff;

    transform:
        translateX(4px);
}


.hcfooter-links a:hover span {
    background: #0099ff;

    box-shadow:
        0 0 0 4px
        rgba(0, 153, 255, 0.10);
}


/* =========================================
   DIVIDER
========================================= */

.hcfooter-divider {
    position: relative;

    z-index: 3;

    display: flex;

    align-items: center;

    gap: 14px;
}


.hcfooter-divider > span {
    flex-grow: 1;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, 0.10)
        );
}


.hcfooter-divider > span:last-child {
    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.10),
            transparent
        );
}


.hcfooter-divider-icon {
    width: 29px;
    height: 29px;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #0099ff;

    background:
        rgba(0, 153, 255, 0.08);

    border:
        1px solid
        rgba(0, 153, 255, 0.14);

    border-radius: 50%;

    font-size: 10px;
}


/* =========================================
   BOTTOM FOOTER
========================================= */

.hcfooter-bottom {
    position: relative;

    z-index: 3;

    min-height: 78px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;
}


.hcfooter-bottom p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.36);

    font-size: 9px;
    font-weight: 600;
}


/* =========================================
   RETURN LINK
========================================= */

.hcfooter-return-link {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    color:
        rgba(255, 255, 255, 0.46);

    text-decoration: none;

    font-size: 9px;
    font-weight: 650;

    transition:
        color 0.3s ease;
}


.hcfooter-return-link i {
    font-size: 10px;

    transition:
        transform 0.3s ease;
}


.hcfooter-return-link:hover {
    color: #0099ff;
}


.hcfooter-return-link:hover i {
    transform:
        translateX(-4px);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991.98px) {

    .hcfooter {
        padding-top: 65px;
    }

    .hcfooter-brand {
        max-width: 500px;

        margin-bottom: 15px;
    }

}


@media (max-width: 767.98px) {

    .hcfooter {
        padding-top: 55px;
    }

    .hcfooter-main {
        padding-bottom: 38px;
    }

    .hcfooter-bottom {
        flex-direction: column;

        align-items: flex-start;

        justify-content: center;

        padding:
            22px 0;
    }

}


@media (max-width: 575.98px) {

    .hcfooter {
        padding-top: 48px;
    }

    .hcfooter-logo img {
        max-width: 165px;
    }

    .hcfooter-column h3 {
        margin-bottom: 18px;
    }

    .hcfooter-bottom {
        text-align: left;
    }

}