


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>United Healthcare - Oral-B Dental Kit</title>

  <style type="text/css">
    html { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
    img { max-width: 100%; height: auto; display: block; }

    body, table, thead, tbody, tr, td, img {
      padding: 0;
      margin: 0;
      border: none;
      font-family: Arial, sans-serif;
      border-spacing: 0px;
      border-collapse: collapse;
      vertical-align: top;
    }

    body { background-color: #e9e9e9; padding-top: 10px; }
    .wrapper { padding-left: 10px; padding-right: 10px; }

    h1, h2, h3, h4, h5, h6, p, a {
      margin: 0; padding: 0; line-height: 1.2;
      font-family: Arial, sans-serif; color: #1C1C1C; text-decoration: none;
    }

    .logo { max-width: 120px; max-height: 70px; }

    .gdnt {
      background: linear-gradient(90deg, #001f5b 0%, #001f5b 44%, rgba(50,60,65,0) 125%);
      padding: 30px;
      text-align: left;
    }

    .qqq {
      font-size: 14px;
      padding-top: 20px;
      padding-bottom: 15px;
      color: #fff;
      max-width: 60%;
    }

    .big {
      font-size: 17px;
      font-weight: bold;
      display: inline-block;
      color: #fff;
      padding-bottom: 6px;
    }

    .aaw {
      font-size: 20px;
      color: #000;
      padding-top: 15px;
      margin-bottom: -20px;
      text-align: center;
    }

    .cta-title {
      font-size: 20px; font-weight: bold; padding-top: 20px; padding-bottom: 15px; text-align: center; color: #1C1C1C;
    }

    .list {
      font-size: 13px; line-height: 1.5; margin: 15px 0; padding: 8px;
      background-color: #f1f1f1; color: #333;
    }

    .cta-container { text-align: center; margin: 15px 0; }

    .cta-button {
      display: inline-block; background-color: #001f5b; color: #fff;
      padding: 12px 46px; text-decoration: none; border-radius: 5px; font-size: 22px;
      transition: background-color 0.3s; margin-bottom: 25px;
    }

    .feature-img { width: 60%; max-width: 260px; margin: 0 auto; display: block; }

    .bg-wrap {
      background-size: 100%;
      background-repeat: no-repeat;
      background-position: 140px top;
    }

    @media only screen and (max-width: 480px) {
      .wrapper .section, .wrapper .column { width: 100% !important; display: block !important; }
      .bg-wrap {
        background-size: 85% !important;
        background-repeat: no-repeat !important;
        background-position: 140px top !important;
      }
      .gdnt {
        background: linear-gradient(90deg, #001f5b 0%, #001f5b 44%, rgba(243,112,33,0) 125%) !important;
        text-align: left !important; padding: 30px !important;
      }
    }
  </style>
</head>

<body>
  <table width="100%" role="presentation">
    <tr>
      <td class="wrapper" width="500" align="center">

        <!-- Main content -->
        <table width="500" class="section header" align="center" role="presentation" 
               style="margin:20px auto; box-shadow:0 4px 12px rgba(0,0,0,0.1);">
          <tr>
            <td align="center" bgcolor="#EFEFED"
                background="https://imageio.forbes.com/specials-images/imageserve/67542768df626fd74e597c99/United-Healthcare-CEO-Brian-Thompson-Fatally-Shot-In-Midtown-Manhattan/960x0.jpg?format=jpg&width=960"
                class="column bg-wrap">
              <div class="gdnt">
                <img src="https://freelogopng.com/images/all_img/1683009366united-healthcare-logo-white.png" alt="United Healthcare" class="logo" />
                <p class="qqq">
                  <span class="big">Hello!</span><br>
                  You've been selected to claim a complimentary <b>Oral-B Dental Kit</b> from United Healthcare.<br>
                  Complete a short survey and receive yours — limited stock available!
                </p>
              </div>
            </td>
          </tr>

          <tr>
            <td align="center" bgcolor="#EFEFED" class="column details" style="border-top: 1px solid #ccc;">
              <p class="cta-title">
                Keep Your Smile Healthy<br>
                <span style="color:#001f5b;">Claim Your Oral-B Dental Kit Now</span>
              </p>

              <!-- Product image -->
              <div class="cta-container">
                <a href="http://kiunbtus.ufcfan.org/4vsTgN218RkZJ14gwkrnmbhbm4OVZULOFTFMDGUUP86918FIBG114c7">
                  <img src="https://686.efuserassets.com/686/offers/17789/thumb/pz.png" alt="Oral-B Dental Kit" class="feature-img">
                </a>
              </div>

              <!-- Description -->
              <div style="max-width: 90%; margin: 15px auto; text-align: center;">
                <p class="list">
                  The Oral-B Complete Dental Kit brings together the ultimate in oral care technology and daily freshness. Featuring the premium Oral-B iO10 electric toothbrush designed by Braun, advanced AquaCare Series 6 irrigator, soothing Sensitivity & Gum Calm toothpaste, refreshing Arctic Mint mouthwash, and essential mint floss, this kit ensures a superior clean, healthier gums, and lasting freshness with every use.
                </p>
              </div>

              <!-- CTA -->
              <div class="cta-container">
                <a class="cta-button" href="http://kiunbtus.ufcfan.org/4mMUGN218vVof14rpvwlfgoqm4CLRMZHZFKSEICMW86918LVTV114Z7">Claim Yours</a>
              </div>
            </td>
          </tr>
        </table>

        <!-- Unsubscribe -->
        <table width="500" align="center" role="presentation" style="margin:10px auto;">
          <tr>
            <td align="center" style="padding: 15px 10px; font-size: 11px; color: #797979;">
			<a href="http://kiunbtus.ufcfan.org/5vdTCn218XxID14kstqmabmgx4AARDRUEWLMLKWKE86918EGKK114a7">Unsubscribe</a>
			</table>
			</table>


<img src="http://kiunbtus.ufcfan.org/track/3CjxzY218CVLg14vdfcsvljaz4IJDWSISJQBPOFAO86918QWBM114k7" width="1" height="1" border="0" alt="" style="display: none;">

