<style>
  :root{
    --primary-dark:#0B2B3F;
    --primary-blue:#1a2e3f;
    --accent-cyan:#1acae1;
    --accent-cyan2:#5fddeb;
    --accent-purple:#8A2BE2;
    --gradient-primary: linear-gradient(135deg, #0066ff, #00dbde) !important;
    --gradient-soft: radial-gradient(circle at top, rgba(26, 202, 225, .10) 0%, transparent 65%),
                     radial-gradient(circle at 80% 20%, rgba(138, 43, 226, .10) 0%, transparent 60%);
    --text-dark:#0b1220;
    --text-gray:#6b7280;
    --bg-white:#ffffff;
    --shadow-sm: 0 10px 30px rgba(11,43,63,.06);
    --shadow-md: 0 16px 50px rgba(11,43,63,.10);
    --shadow-lg: 0 22px 70px rgba(11,43,63,.12);
    --transition: .25s ease;
  }

  /* ================= BASE ================= */
  *{box-sizing:border-box;}
  body{
    background:#ededed;
    color:var(--text-dark);
  }
  
  .visxp-h2-bold {
    /*font-size: 2.5rem !important;*/
    /*font-weight: 800 !important;*/
    /*letter-spacing: -1.5px !important;*/
}
  /* ================= HEADER ================= */
  .visxp-contact-hero{
    padding:120px 0 40px;
    background:var(--gradient-soft);
  }

  .visxp-contact-hero h1{
    font-size:clamp(2.4rem, 5vw, 3.6rem);
    margin:0 0 14px;
    font-weight:900;
    letter-spacing:-0.02em;
    line-height:1.1;
  }

  .visxp-contact-hero .hero-gradient{
    background:var(--gradient-primary);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
  }

  .visxp-contact-hero p{
    margin:0 auto;
    max-width:860px;
    color:var(--text-gray);
    line-height:1.75;
    font-size:15px;
  }

  .visxp-divider{
    /*width:90px;*/
    height:4px;
    border-radius:999px;
    margin:18px auto 0;
    background:var(--gradient-primary);
  }

  /* ================= INFO BAR ================= */
  .visxp-info-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:18px;
    margin-top:26px;
    margin-bottom:38px;
    padding-left: 40px !important;
      padding-right: 40px !important;
  }

  .visxp-info-card{
    background:var(--bg-white);
    /*border:1px solid rgba(11,43,63,.06);*/
    border-radius:8px;
    box-shadow:var(--shadow-sm);
    padding:22px 22px;
    display:flex;
    gap:16px;
    align-items:flex-start;
    transition:var(--transition);
  }

  .visxp-info-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
    border-color:rgba(26,202,225,.35);
  }

  .visxp-info-ic{
    width:56px;
    height:56px;
    border-radius:8px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    flex:0 0 auto;
    box-shadow:0 12px 30px rgba(11,43,63,.10);
    border:1px solid rgba(95,221,235,.20);
    color:var(--primary-dark);
    background:#fff;
  }

  .visxp-info-card h6{
    margin:2px 0 6px;
    font-weight:800;
    color:var(--primary-dark);
    letter-spacing:.2px;
  }

  .visxp-info-card p{
    margin:0;
    color:var(--text-gray);
    font-size:13.5px;
    line-height:1.65;
  }

  .visxp-info-card a{
    color:var(--primary-dark);
    text-decoration:none;
    font-weight:700;
  }
  .visxp-info-card a:hover{ text-decoration:underline; }

  /* ================= SPLIT: FORM + MAP ================= */
  .visxp-split{
    display:flex;
    flex-wrap:wrap;
    border-radius:8px;
    overflow:hidden;
    /*background:#fff;*/
    /*box-shadow:var(--shadow-lg);*/
    /*border:1px solid rgba(26,202,225,.14);*/
    padding-left: 40px !important;
    padding-right: 40px !important;
  }

  .visxp-form-side{
    flex:1.2;
    min-width:380px;
    padding:56px;
    position:relative;
    background:
      radial-gradient(800px 350px at 20% 0%, rgba(26,202,225,.08), transparent 55%),
      radial-gradient(800px 350px at 90% 10%, rgba(138,43,226,.08), transparent 55%),
      #fff;
  }

  .visxp-form-side h3{
    margin:0 0 34px;
    font-weight:900;
    color:var(--primary-dark);
    font-size:28px;
    letter-spacing:-0.01em;
    position:relative;
  }

  .visxp-form-side h3::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-12px;
    width:275px;
    height:3px;
    border-radius:999px;
    background:var(--gradient-primary);
  }

  .visxp-map-side{
    flex:1;
    min-width:380px;
    min-height:520px;
    background:#eef5f8;
    line-height:0;
    position:relative;
  }

  .visxp-map-side iframe{
    width:100%;
    height:100%;
    min-height:520px;
    border:0;
    filter:grayscale(.18) contrast(1.08);
    transition:var(--transition);
  }
  .visxp-map-side:hover iframe{ filter:grayscale(0) contrast(1.02); }

  .visxp-map-badge{
    position:absolute;
    top:16px;
    left:16px;
    z-index:2;
    padding:10px 12px;
    border-radius:8px;
    background:rgba(255,255,255,.78);
    border:1px solid rgba(11,43,63,.10);
    backdrop-filter:blur(10px);
    box-shadow:0 12px 30px rgba(11,43,63,.10);
    font-size:12px;
    font-weight:800;
    color:var(--primary-dark);
    letter-spacing:.3px;
    display:flex;
    align-items:center;
    gap:8px;
  }
  .visxp-map-badge i{ color:var(--accent-cyan); }

  /* ================= FLOATING INPUTS ================= */
  .visxp-input-group{
    position:relative;
    margin-bottom:32px;
  }

  .visxp-input-group input,
  .visxp-input-group textarea,
  .visxp-input-group select{
    width:100%;
    padding:12px 0 10px;
    font-size:15px;
    border:none;
    border-bottom:2px solid #e6edf5;
    background:transparent;
    outline:none;
    transition:.3s;
    color:var(--text-dark);
  }

  .visxp-input-group textarea{
    resize:vertical;
    min-height:120px;
  }

  .visxp-input-group select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    padding-right:18px;
  }

  .visxp-input-group label{
    position:absolute;
    top:12px;
    left:0;
    color:#94a3b8;
    pointer-events:none;
    transition:.25s ease;
    font-size:14px;
  }

  .visxp-input-group input:focus ~ label,
  .visxp-input-group input:not(:placeholder-shown) ~ label,
  .visxp-input-group textarea:focus ~ label,
  .visxp-input-group textarea:not(:placeholder-shown) ~ label,
  .visxp-input-group select:focus ~ label,
  .visxp-input-group select:valid ~ label{
    top:-18px;
    font-size:11px;
    color:var(--accent-cyan);
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
  }

  .visxp-input-group .bar{
    position:relative;
    display:block;
    width:100%;
  }

  .visxp-input-group .bar:before{
    content:"";
    height:2px;
    width:0;
    bottom:0;
    position:absolute;
    left:0;
    background:var(--gradient-primary);
    transition:.35s ease;
  }

  .visxp-input-group input:focus ~ .bar:before,
  .visxp-input-group textarea:focus ~ .bar:before,
  .visxp-input-group select:focus ~ .bar:before{
    width:100%;
  }

  .visxp-select-arrow{
    position:absolute;
    right:0;
    top:14px;
    color:#94a3b8;
    font-size:14px;
    pointer-events:none;
  }

  .visxp-cta{
    width:100%;
    border:0;
    border-radius:8px !important;
    padding:14px 16px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
    background:linear-gradient(135deg, #0066ff, #00dbde) !important;
    box-shadow:0 18px 50px rgba(11,43,63,.14);
    transition:var(--transition);
    color:#fff;
  }

  .visxp-cta:hover{
    transform:translateY(-1px);
    filter:brightness(1.03);
  }

  .btn-glow{
    background:var(--gradient-primary);
    box-shadow:0 1px 2px rgba(26,202,225,0.3);
    color:#fff;
  }

  .btn{
    display:inline-block;
    padding:12px 30px;
    font-size:16px;
    font-weight:600;
    text-decoration:none;
    border-radius:30px;
    transition:var(--transition);
    border:none;
    cursor:pointer;
    color:#fff;
  }

  /* ================= TABLET (same base responsive) ================= */
  @media (max-width:991px){
    .visxp-info-grid{ grid-template-columns:1fr; }
    .visxp-form-side{ padding:40px 28px; min-width:100%; }
    .visxp-map-side{ min-width:100%; min-height:360px; }
    .visxp-map-side iframe{ min-height:360px; }
  }

  /* ================= MOBILE ONLY PREMIUM PATCH ================= */
  @media (max-width:767px){

    .visxp-contact-hero{
      padding:112px 0 24px !important;
      position:relative;
      overflow:hidden;
    }

    .visxp-contact-hero::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 15% 20%, rgba(26,202,225,.10), transparent 34%),
        radial-gradient(circle at 85% 12%, rgba(138,43,226,.10), transparent 34%);
      pointer-events:none;
    }

    .visxp-contact-hero .container{
      position:relative;
      z-index:1;
      padding-left:16px !important;
      padding-right:16px !important;
    }

    .visxp-contact-hero h1{
      font-size:30px !important;
      line-height:1.12 !important;
      margin-bottom:10px !important;
      letter-spacing:-.03em !important;
    }

    .visxp-contact-hero p{
      font-size:14px !important;
      line-height:1.7 !important;
      max-width:100% !important;
    }

    .visxp-divider{
      /*width:74px !important;*/
      margin-top:14px !important;
    }

    .pb-5 > .container{
      padding-left:16px !important;
      padding-right:16px !important;
    }

    .visxp-info-grid{
      grid-template-columns:1fr !important;
      gap:12px !important;
      margin-top:18px !important;
      margin-bottom:18px !important;
      
    }

    .visxp-info-card{
      padding:14px 14px !important;
      gap:12px !important;
      border-radius:20px !important;
      box-shadow:0 8px 24px rgba(11,43,63,.06) !important;
      background:rgba(255,255,255,.74) !important;
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
      border:1px solid rgba(11,43,63,.05) !important;
      align-items:center !important;
    }

    .visxp-info-card:hover{
      transform:none !important;
      box-shadow:0 8px 24px rgba(11,43,63,.06) !important;
    }

    .visxp-info-ic{
      width:46px !important;
      height:46px !important;
      border-radius:14px !important;
      font-size:18px !important;
      box-shadow:none !important;
      background:linear-gradient(135deg, rgba(26,202,225,.12), rgba(138,43,226,.10)) !important;
      border:1px solid rgba(26,202,225,.16) !important;
    }

    .visxp-info-card h6{
      font-size:15px !important;
      line-height:1.3 !important;
      margin:0 0 4px !important;
    }

    .visxp-info-card p{
      font-size:13px !important;
      line-height:1.55 !important;
    }

    .visxp-split{
      display:block !important;
      border-radius:24px !important;
      overflow:hidden !important;
      border:1px solid rgba(11,43,63,.05) !important;
      box-shadow:0 10px 28px rgba(11,43,63,.08) !important;
      background:transparent !important;
    }

    .visxp-form-side{
      min-width:100% !important;
      padding:22px 16px 18px !important;
      background:
        radial-gradient(500px 220px at 10% 0%, rgba(26,202,225,.08), transparent 55%),
        radial-gradient(500px 220px at 100% 0%, rgba(138,43,226,.08), transparent 55%),
        rgba(255,255,255,.78) !important;
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
      border-bottom:1px solid rgba(11,43,63,.05);
    }

    .visxp-form-side h3{
      font-size:24px !important;
      line-height:1.2 !important;
      margin:0 0 26px !important;
      text-align:left !important;
    }

    .visxp-form-side h3::after{
      width:120px !important;
      bottom:-10px !important;
      height:3px !important;
    }

    .visxp-input-group{
      margin-bottom:24px !important;
    }

    .visxp-input-group input,
    .visxp-input-group textarea,
    .visxp-input-group select{
      font-size:14px !important;
      padding:14px 0 10px !important;
      border-bottom:2px solid #dde7f0 !important;
    }

    .visxp-input-group textarea{
      min-height:110px !important;
    }

    .visxp-input-group label{
      font-size:13px !important;
      top:14px !important;
    }

    .visxp-input-group input:focus ~ label,
    .visxp-input-group input:not(:placeholder-shown) ~ label,
    .visxp-input-group textarea:focus ~ label,
    .visxp-input-group textarea:not(:placeholder-shown) ~ label,
    .visxp-input-group select:focus ~ label,
    .visxp-input-group select:valid ~ label{
      top:-16px !important;
      font-size:10px !important;
    }

    .visxp-select-arrow{
      top:16px !important;
      font-size:13px !important;
    }

    .visxp-cta{
      border-radius:16px !important;
      min-height:50px !important;
      font-size:13px !important;
      letter-spacing:.05em !important;
      box-shadow:0 12px 28px rgba(11,43,63,.12) !important;
    }

    .visxp-map-side{
      min-width:100% !important;
      min-height:250px !important;
      position:relative !important;
      overflow:hidden !important;
      background:#eaf3f7 !important;
    }

    .visxp-map-side iframe{
      min-height:250px !important;
      height:250px !important;
      filter:grayscale(.08) contrast(1.02) !important;
    }

    .visxp-map-side::after{
      content:"";
      position:absolute;
      inset:auto 0 0 0;
      height:70px;
      background:linear-gradient(to top, rgba(11,43,63,.16), transparent);
      pointer-events:none;
    }

    .visxp-map-badge{
      top:12px !important;
      left:12px !important;
      right:12px !important;
      width:auto !important;
      justify-content:center !important;
      padding:10px 12px !important;
      border-radius:999px !important;
      font-size:11px !important;
      box-shadow:0 8px 20px rgba(11,43,63,.10) !important;
      background:rgba(255,255,255,.84) !important;
    }
  }
  .brand-gradient {
    background: linear-gradient(135deg, #0066ff, #00dbde);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
}

</style>