/* AWS v12 */

@font-face {
  font-family: "AmazonEmberDisplay";
  src: url("../font/AmazonEmberDisplay_Bd.1b53ece2b35c.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: "AmazonEmberDisplay";
  src: url("../font/AmazonEmberDisplay_Rg.c61d8e67dc8f.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "AmazonEmberDisplay";
  src: url("../font/AmazonEmberDisplay_Lt.0117df0aa4bb.ttf") format("truetype");
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: "AmazonEmberDisplay";
  src: url("../font/AmazonEmberDisplay_BdIt.aa014e4b39ca.ttf") format("truetype");
  font-weight: 700;
  font-style: italic;
}
@font-face {
  font-family: "AmazonEmberDisplay";
  src: url("../font/AmazonEmberDisplay_RgIt.3511ef414a00.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
}
@font-face {
  font-family: "AmazonEmberDisplay";
  src: url("../font/AmazonEmberDisplay_LtIt.998d8f49c561.ttf") format("truetype");
  font-weight: 100;
  font-style: italic;
}

@font-face {
  font-family: "AmazonEmberMono";
  src: url("../font/AmazonEmberMono_Bd.255ab342aeb6.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: "AmazonEmberMono";
  src: url("../font/AmazonEmberMono_Rg.1ecf1ae090c4.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}

body:has(.navbar) {
  padding-top: 60.5px;
  @media (max-width: 768px) {
    padding-top: 100px;
  }
}

body {
  background: #eee;
  color: #000;

  * {
    font-family: "AmazonEmberDisplay", "Helvetica Neue", sans-serif !important;
  }

  a {
    color: #ff9900;
    text-decoration: none;
  }

  header.navbar {
    background-color: #141f2e;
    border: none;
    padding: 10px 20px;
    box-shadow: none;
    color: #fff;
    height: 60.5px;

    @media (max-width: 768px) {
      flex-wrap: wrap;
      height: 100px;

      nav {
        order: 3;
        width: 112%;
        margin: 5px -20px -5px -20px;
        background: rgba(255, 255, 255, 0.1);

        .nav-links {
          display: flex;
          justify-content: center;
          flex-direction: row;
          position: relative;
          width: 100%;
          padding: 9px 0;
          margin: 0;
          top: 0;
          left: 0;
          background: transparent;
        }
      }
    }

    .navbar-logo img {
      height: 30px;
      margin-right: 10px;
    }

    button,
    a {
      color: #fff;
    }

    .nav-links a {
      color: #fff;
      padding: 10px 0;
      border-bottom: 0;
    }

    .nav-links a.active {
      color: #ff9900;
    }
  }

  .block-columns {
    display: flex;
    gap: 20px;
  }

  > div,
  footer {
    padding: 20px 20px 0 20px;
  }

  p {
    padding-top: 10px;

    &:first-child {
      padding-top: 0;
    }
  }
}

body.blue {
  background: #141f2e;
  color: #f5f5f5;

  &:has(.navbar) {
    padding-top: 114px;
  }

  .navbar {
    padding: 30px 5vw;
  }

  > .block-form {
    max-width: 50%;
    margin: 0 auto;
  }

  > .block-content {
    h1,
    h2,
    h3 {
      padding: 10px 0;
    }

    padding: 5vw;
    font-size: 16px;
    line-height: 140%;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .block-image {
    padding: 30px 5vw;

    figure {
      margin: 0;
      img {
        width: 100px;
        height: auto;
        /* margin-top: -70px; */
      }
    }
  }

  .block-columns {
    display: flex;
    gap: 5vw;
    padding: 0 5vw;

    .block-left_column .block-content {
      display: flex;
      flex-direction: column;
      gap: 10px;

      h2 {
        font-size: 36px;
        line-height: 130%;
        padding: 20px 0;
      }

      h3 {
        font-size: 24px;
        line-height: 130%;
        padding-top: 10px 0;
      }

      p {
        font-size: 96%;
      }
    }

    .block-right_column {
      min-width: 40%;
      background-color: #ddd;
      border-radius: 20px;
      padding: 35px 45px;

      .block-form {
        padding: 0;
      }

      .block-content {
        margin-top: 30px;
        color: #000;
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 10px;
      }
    }
  }

  footer {
    padding: 5vw;
  }
}

.block-form {
  background-color: #ddd;
  border-radius: 20px;
  padding: 35px 45px;

  form {
    display: flex;
    flex-direction: column;
    align-items: center;
    > div:has(input[type="text"]),
    > div:has(input[type="email"]),
    > div:has(input[type="password"]),
    > div:has(select) {
      label {
        display: none;
      }
    }

    > div {
      display: flex;
      flex-direction: row-reverse;
      flex-wrap: wrap;
      align-items: flex-start;
      gap: 10px;
      width: 100%;
      padding: 7px 0;
      .errorlist {
        order: 3;
        width: 100%;
        font-size: 93%;
        padding: 0;
        margin: 0;
        color: red;
        li {
          list-style: none;
        }
      }

      label {
        font-size: 90%;
        line-height: 130%;
        color: #333;
        order: 99;
        flex: 1;
      }

      input[type="text"],
      input[type="email"],
      input[type="password"],
      select {
        width: 100%;
        border-radius: 15px;
        border: 1px solid #aaa;
        padding: 7px;
      }

      select {
        width: calc(100% + 15px);
      }

      input[type="checkbox"] {
        order: 999;
      }
    }

    input[type="submit"] {
      margin: 20px auto 0;
      display: inline-block;
      background-color: #1d3a8f;
      border: none;
      color: #fff;
      cursor: pointer;
      padding: 10px 30px;
    }
  }
}

body.signup-body {
  > .block-content:first-child p:first-child {
    color: orange;
    font-size: 34px;
    line-height: 140%;
  }
}

@media (max-width: 800px) {
  body .block-columns {
    flex-wrap: wrap;
    .block-left_column,
    .block-right_column {
      width: 100% !important;
      max-width: none;
    }
  }
}

body {
  .select2-container--default {
    width: 100%;
  }

  .select2-container--default .select2-selection--single {
    width: 100%;
    border-radius: 15px;
    border: 1px solid #aaa;
    padding: 7px;
    height: 32px;
  }
  .select2-container--default
    .select2-selection--single
    .select2-selection__rendered {
    color: #000;
    margin-left: -8px;
    font-size: 13px;
    line-height: 17px;
  }
  .select2-container--default
    .select2-selection--single
    .select2-selection__rendered[title="Company Name"] {
    color: #777;
  }
  .select2-container--default
    .select2-selection--single
    .select2-selection__arrow {
    top: 3px;
    right: 8px;
  }

  .select2-container--default .select2-results > .select2-results__options {
    font-size: 13px;
  }
}

.select2-dropdown {
  color: #000;
}

body.home-body {
  > div {
    padding: 0;
  }
  /* Styles game page subheader */
  > .block-content:nth-child(3) {
    text-align: center;
    padding: 20px 20px 10px 20px;
    font-size: 20px;
    line-height: 100%;
  }
  .progress,
  .activities,
  footer {
    margin: 0 auto;
    max-width: 1200px;
  }

  .progress {
    padding: 20px;
    display: flex;
    gap: 20px;

    > div {
      color: #000;
      padding: 15px;
      background: white;
      border: 1px solid #ddd;
      border-radius: 8px;
    }
    .client-logo {
      width: 30%;
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: center;

      a:nth-child(1) {
        display: block;
        line-height: 100%;
      }
      a:nth-child(2) {
        position: absolute;
        top: 10px;
        right: 30px;
      }

      input[type="file"] {
        display: block;
        padding: 10px;
        border: 1px solid #ddd;
        width: 100%;
        margin: 10px 0;
      }
      input[type="submit"] {
        float: right;
      }

      img {
        max-width: 100%;
      }
    }
    .score {
      width: 14%;
      text-align: center;

      .points {
        padding-top: 30px;
        font-size: 36px;
        line-height: 100%;
        display: block;
      }
    }
    .ranking {
      flex: 1;
      > p {
        font-size: 20px;
        font-weight: bold;
        padding-bottom: 30px;
      }
      .progress-bar-container {
        .progress-bar {
          background: linear-gradient(
            90deg,
            #fb281b 0%,
            #fa8422 29.81%,
            #eeb428 61.06%,
            #009e46 100%
          );
          border-radius: 5px;
          height: 35px;
          position: relative;

          .rank-indicator {
            top: -18px;
            width: 26px;
            height: 26px;
            position: absolute;
            background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEaSURBVHgBvZW7DgFBFIb/XQoNleg8gVKvoPQEotBpvISn8AQiOhoF8SxaRCsScVnnxEg2Y3eduawv+brZPXPO7PwbQEaVHJAtskI+yAO5JqdqTQRLArJGXsinelGaS7IIC0JypHYeCb2rzRnRUQ9Ghj7UJkUEMOtEdwthZ0OHIp+uRJwcC7FtSaHIgzP9peKDM6Txr0I3SSHxYWawkCyawO18OEW+UiLpey/hHTvGtzxGCC37kkZ3JY+wp68XyaKO30GadlmNJsGL9xaFerCgDPPMSyXrHp3JDWTwmCtwIITsrKbwcPm7yB7hHZ4Shj+MXUoRjpomPMI7TvrjzpFDXvLvPT5CbyPTKZCrWKEScoQ74K7GcMvC/HgBTcvVnfBGt0QAAAAASUVORK5CYII=);
            margin-left: -13px;
          }
        }
        .progress-labels {
          width: 100%;
          display: flex;
          gap: 5px;
          padding: 5px;

          > span {
            height: 30px;
            position: relative;
            border-right: 1px solid #eee;
            border-bottom: 1px solid #eee;
            border-left: 1px solid #eee;
            display: block;
            font-size: 14px;
            text-align: center;
            color: #fff;

            &::before {
              position: absolute;
              color: #000;
              content: "";
              bottom: -12px;
              background: #fff;
              padding: 4px;
            }
          }

          span:nth-child(1) {
            width: 25%;

            &::before {
              content: "Bottom 25%";
            }
          }
          span:nth-child(2) {
            width: 50%;

            &::before {
              content: "Middle 50%";
            }
          }
          span:nth-child(3) {
            width: 25%;
            &::before {
              content: "Top 25%";
            }
          }
        }
      }
    }

    @media (max-width: 800px) {
      flex-wrap: wrap;

      .client-logo,
      .score {
        flex: 1;
      }
      .ranking {
        flex: 1 1 100%;
      }
    }
    @media (max-width: 500px) {
      flex-wrap: wrap;

      .client-logo,
      .score {
        flex: 1 1 100%;
      }
      .ranking {
        flex: 1 1 100%;
      }
    }
  }

  .activities.block-columns {
    display: flex;
    gap: 20px;
    padding: 20px;

    > div {
      background-color: #fff;
      border-top: 5px solid #000;
      border-radius: 0;
      padding: 10px;
      color: #000;
      border-bottom-left-radius: 10px;
      border-bottom-right-radius: 10px;

      > div {
        h3 {
          text-align: center;
          padding-bottom: 10px;
          font-size: 24px;
        }
        > p {
          font-size: 12px;
          text-align: center;
          padding-bottom: 10px;
        }
      }

      table {
        border-collapse: collapse;
        border: 1px solid #ddd;
        border-radius: 10px;
        width: 100%;

        th {
          font-weight: bold;
        }
        th,
        td {
          text-align: left;
          padding: 4px 6px;
          border: 1px solid #ddd;
        }

        tr th:nth-child(2),
        tr th:nth-child(3),
        tr td:nth-child(1),
        tr td:nth-child(3),
        tr td:nth-child(4) {
          text-align: center;
        }

        td.checked {
          color: #0bda51;
        }
      }
    }
  }
}

/* blue header */
body.blue-bar {
  > .block-content:first-of-type {
    background-color: rgb(9, 114, 211);
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 20px 20px;
    color: #fff;

    p {
      display: none;
    }
    h2 {
      font-weight: 400;
      font-size: 24px;
      line-height: 100%;
    }

    img {
      width: 40px;
      height: auto;
    }
  }

  > .block-content {
    color: #000;
  }
  footer {
    color: #000;
  }
}

body.gamepage-body {
  > div:not(.game-header):first-of-type {
    padding: 0;
  }
  .content-area {
    padding: 20px;
    margin: 20px;
    background-color: #fff;

    a {
      border-color: #ff9900;
      display: inline-block;
      padding: 10px 25px;
      background-color: #ff9900;
      color: #000;
      border-radius: 4px;
      clear: both;
    }

    table {
      background: #fff;
      border-collapse: collapse;
      border: 1px solid #ddd;
      border-radius: 10px;
      margin: 20px 0;
      width: 100%;
      td,
      th {
        border: 1px solid #ddd;
        text-align: left;
        padding: 6px;
      }
    }
  }
}

body.contest-overview-body {
  .block-columns {
    padding: 20px;

    > div {
      width: 50%;
    }

    .block-left_column {
      color: #000;
      width: 65%;

      .block-accordion {
        .block-accordion_content {
          table {
            /* Contest Activities table */
            tr th:nth-child(2),
            tr th:nth-child(3),
            tr td:nth-child(3),
            tr td:nth-child(4) {
              text-align: center;
            }
          }
          /* First p gets extra padding */
          .block-content {
            p[data-block-key="j8jyd"] {
              padding-bottom: 20px;
            }
          }
        }
      }
    }
    .block-right_column {
      background: #fff;
      color: #000;
      padding: 8px;
      border-radius: 8px;
      align-self: flex-start;

      .block-content:first-child {
        background: linear-gradient(90deg, #013181 50%, #eeb428 100%);
        color: #fff;
        padding: 10px;
        margin: 0 0 15px 0;
        border-radius: 8px;
        text-align: center;

        h3 {
          color: #ff9900;
        }
      }
      .block-table {
        tbody tr td {
          padding: 15px;
        }
        tbody tr td:nth-child(1) {
          color: #013181;
          font-size: 26px;
          text-wrap: nowrap;
          border-right: 1px solid #ff9900;
          border-top: 5px solid #fff;
          border-bottom: 5px solid #fff;
          border-radius: 0;
          font-weight: bold;
        }
        tbody tr td:nth-child(2) {
          color: #000;
          font-size: 14px;
          background: #eee;
          line-height: 24px;
          border: 10px solid #fff;
          border-radius: 25px;
          padding-left: 0px;
          width: 100%;

          ul li::marker {
            color: #ff9900;
          }
        }
      }
    }
  }
}

body.bonus-activities-body {
  .block-left_column {
    display: flex;
    gap: 20px;
    > .block-content {
      width: 320px;
      background: #fff;
      padding: 10px;
      margin: 0;
      border-radius: 0;
      border-top: 4px solid #000;
      border-bottom-left-radius: 10px;
      border-bottom-right-radius: 10px;
      min-width: 0;
      text-align: center;

      a {
        display: block;
      }

      > p:first-child a {
        padding: 0;
        margin: 0 0 15px 0;
        color: #000;
        font-weight: bold;
        display: block;
      }

      img {
        padding: 10px;
        border-radius: 10px;
        background-color: #eee;
        width: 300px;
        height: auto;
      }
    }
  }
}

body.resources-body {
  > .block-content {
    padding: 20px;

    &:nth-child(3) {
      max-width: 1200px;
    }
  }
  .block-columns {
    > div {
      display: flex;
      width: auto;
      max-width: none;

      img {
        max-width: 100%;
        height: auto;
      }
    }

    .block-left_column {
      gap: 20px;

      > .block-content {
        max-width: 360px;
        background-color: #fff;
        padding: 10px;
        border-radius: 10px;
        color: #000;
      }
    }
    .block-right_column {
      background-color: transparent;
      padding: 0;
      margin: 0;
      * {
        text-align: left;
      }
    }
  }
}

.block-accordion {
  .block-header {
    background: #333;
    color: #fff;
    padding: 10px 20px;
    border-radius: 10px;
    position: relative;
    margin-top: 20px;
    cursor: pointer;

    &::after {
      width: 10px;
      height: 10px;
      color: #fff;
      content: ">";
      position: absolute;
      right: 20px;
    }
    &.open {
      margin-bottom: 20px;
      &::after {
        content: "v";
      }
    }
  }
  .block-accordion_content {
    table {
      background: #fff;
      border-collapse: collapse;
      border: 1px solid #ddd;
      border-radius: 10px;
      margin: 20px 0;

      th,
      td {
        text-align: left;
        padding: 4px 6px;
        border: 1px solid #ddd;
      }
      th {
        font-weight: bold;
        background: #000;
        color: #fff;
        padding: 15px 10px;
      }
    }
  }
}

.game-header {
  background-color: rgb(9, 114, 211);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 15px;
  width: 100%;
  padding: 20px 20px;
  color: #fff;

  p {
    display: none;
  }
  h2 {
    font-weight: 400;
    font-size: 24px;
    line-height: 100%;
  }

  img {
    width: 40px;
    height: auto;
  }
}

.game-layout {
  .results-container {
    a {
      border-color: #ff9900;
      background-color: #ff9900;
      color: #000;
    }
  }

  &:has(.results-container) {
    .sidebar {
      display: none;
    }
    .main-content {
      box-shadow: 0px 2px 4px 0 #ccc;
    }
  }

  .sidebar {
    background-color: #fff;
    color: #000;
    padding: 20px;
    width: 300px;
    border-top: 6px solid #000;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    box-shadow: 0px 2px 4px 0 #ccc;
    transition: transform 0.3s ease;
    position: relative;
    z-index: 2;
    transform: none;
  }

  .sidebar h1 {
    font-size: 22px;
    margin-bottom: 5px;
  }

  .sidebar h2 {
    font-size: 20px;
    margin: 5px 0 20px;
  }

  .sidebar p {
    margin-top: 30px;
  }

  .sidebar .intro {
    font-size: 15px;
    line-height: 1.5;
    margin-top: 10px;
  }

  .sidebar .intro h1 {
    margin-top: 20px;
  }

  .sidebar .intro ul {
    margin: 10px 0;
    padding-left: 20px;
  }

  .sidebar .score-box {
    background: white;
    padding: 15px;
    margin: 0;
    border-radius: 6px;
    color: black;
    border: none;
  }

  .sidebar .score-box p {
    margin: 10px 0;
    font-size: 14px;
  }

  .sidebar .score-box > p:first-child {
    text-align: center;
    font-size: 20px;
  }

  .sidebar .score-box .the-score {
    background-color: rgb(9, 114, 211);
    color: #fff;
    text-align: center;
    padding: 10px;
    font-size: 32px;
    border-radius: 6px;
  }

  .sidebar .score-box .note {
    border: 1px solid #700000;
    color: #00c48c;
    padding: 10px;
    font-size: 14px;
    margin-bottom: 10px;
  }

  .sidebar .sidebar-play-button {
    margin-top: 30px;
    padding: 6px 40px;
    border: 2px solid white;
    background: #00c48c;
    color: white;
    font-size: large;
    font-weight: bold;
    border-radius: 20px;
    cursor: pointer;
  }

  .sidebar .mobile-play-box {
    display: none;
  }

  /* Responsive Sidebar */
  @media (max-width: 768px) {
    .sidebar {
      position: fixed;
      left: 0;
      top: 100px;
      flex: 1;
      width: 100%;
      height: 100%;
      text-align: center;
      transform: translateX(-100%);
    }

    .sidebar.active {
      transform: translateX(0);
    }

    .sidebar h1 {
      margin-top: 50px;
    }

    .sidebar .mobile-play-box {
      display: block;
      justify-items: center;
      text-align: center;
    }

    .mobile-play-box p {
      margin-top: 50px;
      text-align: center;
    }

    .sidebar ul {
      list-style-position: inside;
    }
  }

  .score-bar {
    margin-bottom: 20px;
    justify-content: space-between;
    align-items: center;
    background: rgb(9, 114, 211);
    color: white;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: bold;
  }

  .main-content {
    color: #000;
    background: #fff;
    margin: 20px 0;
  }
  .answer-option {
    border-color: #ddd;
  }
  .answer-option:has(input:checked) {
    background-color: #000;
    color: #fff;
    border-color: #000;
  }
  .question-progress {
    padding-top: 20px;
  }
  .submit-answer {
    display: flex;
    justify-content: flex-end;
    margin-top: -40px;
    @media (max-width: 768px) {
      display: block;
      margin-top: 0;
      flex: 1;
      button {
        width: 100%;
        padding: 15px;
        font-size: 16px;
      }
    }
  }
  .submit-btn {
    border-color: #ff9900;
    background-color: #ff9900;
    color: #000;
    border-radius: 8px;
  }
}

.errorlist {
  color: red;
  list-style: none;
  padding: 0;
  margin: 10;
}

body.error-page {
  text-align: center;
  padding-top: 100px;
}

h4 {
  /* per Aaron's suggestion */
  text-align: center;
}

.sales-play-tiles {
  overflow: hidden;
  clear: both;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;

  .sales-play {
    position: relative;
    border-radius: 1em;
    border-color: #161d26;
    border-width: 1px;
    border-style: solid;
    text-align: center;
    width: 30%;

    h3 {
      background-color: #161d26;
      color: white;
      border-radius: .7em .7em 0 0;
      padding: 6px;
    }

    .point-value {
      padding: 1em 0;
    }

    a {
      display: block;
      background-color: #ff9900;
      color: white;
      padding: 3px 30px;
      width: fit-content;
      border-radius: 99px;
      margin: 0 auto 1rem;
    }

    .completed-overlay {
      position: absolute;
      height: 100%;
      bottom: 6px;
      right: 6px;
      padding-top: 4rem;
      img {
        height: 4rem;
      }
    }
  }
}

.activities-and-points {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2em;

  .activity-table {
    table {
      border-spacing: 0;

      td, th {
        border-left: 1px solid #c3c1c1;
        border-top: 1px solid #c3c1c1;
        padding: 5px;
      }

      td:first-child {
        width: 2em;
      }
      td:last-child {
        text-align: center;
      }

      tr:last-child td {
        border-bottom: 1px solid #c3c1c1;
      }

      th:last-child, td:last-child {
        border-right: 1px solid #c3c1c1;
      }

      /* Round corners of table */
      th:first-of-type {
        border-top-left-radius: 5px;
      }
      th:last-of-type {
        border-top-right-radius: 5px;
      }
      tr:last-of-type td:first-of-type {
        border-bottom-left-radius: 5px;
      }
      tr:last-of-type td:last-of-type {
        border-bottom-right-radius: 5px;
      }
    }
  }

  .points {
    text-align: center;
    border: 3px solid #161d26;
    border-radius: 6px;
    width: fit-content;

    h3 {
      background-color: #161d26;
      color: white;
      padding: 3px 2em;
    }

    .point-total {
      color: #161d26;
      font-size: 54px;
      padding: auto 20px;
    }
  }
}

.ranking-section {
  background: #eeeeee;
  color: #000;
  padding: 20px 60px;

  p {
    font-size: 34px;
    font-weight: bold;
  }

  @media (max-width: 768px) {
    padding: 30px 15px;
    text-align: center;
    p {
      font-size: 24px;
    }
  }
}

.progress-bar-container {
  margin-top: 10px;
  position: relative;
}

.progress-bar {
  height: 67px;
  background: linear-gradient(90deg, #003691, #f2f4f3);
  border-radius: 0;
  position: relative;
}

.rank-indicator {
  position: absolute;
  color: white;
  bottom: 10px;
  text-shadow: 0px 0px 2px rgba(0, 0, 0);
  transform: translateX(50%) scale(4, 3);
}

.progress-labels {
  display: flex;
  font-size: 14px;
  color: #555;

  @media (max-width: 768px) {
    font-size: 10px;
  }

  span {
    padding-top: 5px;
    text-align: center;
  }

  span:nth-child(1) {
    width: 10%;
  }

  span:nth-child(2) {
    width: 25%;
  }

  span:nth-child(3) {
    width: 50%;
  }

  span:nth-child(4) {
    width: 25%;
  }
}

.bracket-group {
  width: 100%;
  position: relative;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
}

/* Hide the original brackets */
.bracket {
  display: none;
}

.section {
  position: relative;
  text-align: center;
  font-size: 11px;
  font-weight: 500;
  color: black;
  padding-top: 0;
  margin-top: 5px;
  line-height: 1;

  @media (max-width: 768px) {
    font-size: 8px;
    line-height: 6px;
  }
}

/* Adjust specific sections */
.section.top {
  width: 10%;
}

.section.upper {
  width: 15%;
}

.section.middle {
  width: 50%;
}

.section.lower {
  width: 25%;
}

/* Create the bracket effect with text characters */
.section::before {
  content: "└──";
  position: absolute;
  left: 0;
  top: 0;
  font-family: monospace;
  font-size: 14px;
}

.section::after {
  content: "──┘";
  position: absolute;
  right: 0;
  top: 0;
  font-family: monospace;
  font-size: 14px;
}

@media (max-width: 768px) {
  .section::before {
    content: "└─";
  }
  .section::after {
    content: "─┘";
  }
  .section.top {
    display: none;
  }
  .section.upper {
    width: 25%;
  }
}
