/* Blush section styles */
/* --scale maps px values from the 2048px design to fluid vw units */
/*
 * BREAKPOINTS — find-replace these values to change the breakpoint globally:
 *   min-width: 1024px  →  desktop layout kicks in
 *   max-width: 1023px  →  mobile overrides
 *
 * Note: CSS custom properties cannot be used inside @media conditions.
 * To change breakpoint: Edit > Find > Replace in blush.css
 */

.blush--section-02,
.blush--section-03,
.blush--section-04,
.blush--section-table,
.blush-section--faq,
.blush--social {
  --scale: calc(100vw / 1400);

  @media (max-width: 1023px) {
    --scale: calc(100vw / 560);
  }

  .h2 {
    font-size: calc(42 * var(--scale));

    @media (max-width: 1023px) {
      font-size: calc(36 * var(--scale));
    }
  }
}

/* Scrollbar styles */
.blush--section-02 .blush--section-02__cards {
  scrollbar-width: thin;
  scrollbar-color: #963b31 #f5ced3;

  &::-webkit-scrollbar { height: 6px; }
  &::-webkit-scrollbar-track { background: #f5ced3; }
  &::-webkit-scrollbar-thumb {
    background-color: #963b31;
    border-radius: 99px;
  }
}

.blush--section-table .blush--section-table__scroll {
  scrollbar-width: thin;
  scrollbar-color: #806254 #f8dade;

  &::-webkit-scrollbar { height: 6px; }
  &::-webkit-scrollbar-track { background: #f8dade; }
  &::-webkit-scrollbar-thumb {
    background-color: #806254;
    border-radius: 99px;
  }
}

.blush-section--faq .blush-section--faq__products {
  scrollbar-width: thin;
  scrollbar-color: #644937 #e1eccd;

  &::-webkit-scrollbar { height: 6px; }
  &::-webkit-scrollbar-track { background: #e1eccd; }
  &::-webkit-scrollbar-thumb {
    background-color: #644937;
    border-radius: 99px;
  }
}

.blush--section-01 {
  --scale: calc(100vw / 2048);
  display: flex;
  flex-direction: column;

  @media (min-width: 1024px) {
    flex-direction: row;
  }

  @media (max-width: 1023px) {
    --scale: calc(100vw / 800);
  }
  .image-block {
    order: 1;

    @media (min-width: 1024px) {
      order: 2;
      width: 50%;
    }
  }
  .text-block {
    order: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    @media (min-width: 1024px) {
      order: 1;
      width: 50%;
    }
  }

  .h2 {
    margin-block: calc(30 * var(--scale));
    font-size: calc(72 * var(--scale));
  }
  .body-copy {
    font-size: calc(29 * var(--scale));
    line-height: normal;
    width: calc(614 * var(--scale));
  }
  .content-trio {
    display: flex;
    justify-content: center;
    margin-block: calc(30 * var(--scale));

    li {
      border-radius:  calc(10 * var(--scale));
      width: calc(189 * var(--scale));
      padding: calc(24 * var(--scale));
      margin-inline: calc(20 * var(--scale));

      h3 {
        font-size: calc(29 * var(--scale));
      }
      p {
        font-size: calc(20 * var(--scale));
        line-height: normal;
      }
    }
  }
  .icons {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    margin-bottom: calc(30 * var(--scale));
    li {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: calc(120 * var(--scale));
      margin-inline: calc(32 * var(--scale));
      line-height: normal;
    }
    span {
      margin-top: calc(12 * var(--scale));
      font-size: calc(20 * var(--scale));
    }
  }
  .btn-primary--rose {
    font-size: calc(23 * var(--scale));
    padding: calc(23 * var(--scale));
    margin-bottom: calc(20 * var(--scale));
  }
}

.blush--section-02 {
  display: flex;
  flex-direction: column;
  background-color: #f5ced3;

  h2 {
    margin-top: 70px;
    margin-bottom: 40px;

    @media (max-width: 1023px) {
      margin-top: 40px;
      margin-bottom: 30px;
    }
  }

  .blush--section-02__cards {
    display: flex;
    overflow-x: auto;
    padding-inline: 16px;
    scroll-padding-inline: 16px;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;

    .blush--section-02__card {
      flex-shrink: 0;
      width: calc(100% / 3.3);
      scroll-snap-align: start;
      position: relative;

      @media (min-width: 1024px) {
        width: auto;
        flex: 1;
      }
    }
  }

  .blush--section-02__text-box {
    position: absolute;
    top: 4%;
    left: 40%;
    line-height: normal;

    @media screen and (max-width: 1023px) {
      transform-origin: top left;
    }

    h3 {
      font-size: 18px;
      text-transform: uppercase;

      @media (max-width: 1023px) {
        font-size: 12px;
      }
    }
    p {
      font-size: 18px;

      @media (max-width: 1023px) {
        font-size: 13px;
      }
    }
  } 
  .blush--section-02__badge {
    display: inline-block;
    background-color: #963b31;    
    text-transform: uppercase;
    color: #fff;
    margin-top: 8px;
    padding: 5px 8px;
  }
}

.blush--section-03 {
  --scale: calc(100vw / 1400);
  display: flex;
  flex-direction: column;
  background-color: #e1eccd;

  @media (min-width: 1024px) {
    flex-direction: row;
  }

  @media (max-width: 1023px) {
    --scale: calc(100vw / 560);
  }

  .image-block {
    @media (min-width: 1024px) {
      width: 50%;
    }
  }

  .text-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: calc(24 * var(--scale));

    @media (min-width: 1024px) {
      width: 50%;
      padding: calc(24 * var(--scale));
    }
  }
  h2 {
    margin-bottom: calc(24 * var(--scale));
  }
  h3 {
    margin-bottom: calc(24 * var(--scale));
    font-size: calc(32 * var(--scale));
  }
  .body-lg {
    max-width: calc(480 * var(--scale));

    p {
      font-size: calc(21 * var(--scale));
      line-height: normal;
    }
  }
  .icons {
    display: flex;
    justify-content: center;
    gap: calc(10 * var(--scale));
    margin-top: calc(21 * var(--scale));
    margin-inline: calc(21 * var(--scale));
    flex-wrap: wrap;

    @media (min-width: 1024px) {
      gap: calc(28 * var(--scale));
      margin-inline: 0;
    }

    li {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;

      @media (max-width: 1023px) {
        width: calc(50% - calc(14 * var(--scale)));
      }

      img {
        margin-bottom: calc(14 * var(--scale));
      }
      span {
        font-size: calc(21 * var(--scale));
        line-height: normal;
      }
      p {
        font-size: calc(15 * var(--scale));
        line-height: normal;
      }
    }
  }
  .skin-types img {
    width: calc(66 * var(--scale));
  }
  .best-for img {
    width: calc(72 * var(--scale));
    margin-top: calc(4 * var(--scale));
  }
  .twist-swipe-glow img {
    width: calc(66 * var(--scale));
    margin-top: calc(7 * var(--scale));
  }
  .on-the-go img {
    width: calc(66 * var(--scale));
    margin-top: calc(7 * var(--scale));
  }
}

.blush--section-04 {
  --scale: calc(100vw / 1400);
  display: flex;
  flex-direction: column;
  background-color: #e1eccd;

  @media (min-width: 1024px) {
    flex-direction: row-reverse;
    align-items: center;
  }

  @media (max-width: 1023px) {
    --scale: calc(100vw / 560);
  }

  .image-block {
    position: relative;

    @media (min-width: 1024px) {
      width: 50%;
    }
  }

  .text-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: calc(20 * var(--scale));
    
    @media (min-width: 1024px) {
      padding-inline: 0;
      width: 50%;
    }
  }

  .image-caption {
    position: absolute;
    right: calc(4 * var(--scale));
    bottom: calc(75 * var(--scale));

    @media (min-width: 1024px) {
      right: calc(8 * var(--scale));
      bottom: calc(98 * var(--scale));
    }
    
    li {
      font-size: calc(14 * var(--scale));
      margin-top: calc(16 * var(--scale));
      line-height: 1;

      @media (min-width: 1024px) {
        margin-top: calc(25 * var(--scale));
      }
    }
  }
  h2 {
    margin-bottom: calc(24 * var(--scale));
  }
  h3 {
    font-size: calc(28 * var(--scale));
    margin-bottom: calc(36 * var(--scale));
  }
  .body-lg {
    text-align: left;

    h4 {
      font-size: calc(21 * var(--scale));
      line-height: normal;
    }
    p {
      font-size: calc(15 * var(--scale));
      margin-bottom: calc(24 * var(--scale));
    }
  }
  .body-icons-wrapper {
    display: flex;
  }
  .icons-wrapper {
    margin-left: calc(66 * var(--scale));
    max-width: calc(260 * var(--scale));

    h4 {
      text-align: left;
      font-size: calc(21 * var(--scale));
      margin-left: calc(8 * var(--scale));
      margin-bottom: calc(24 * var(--scale));
      line-height: normal;
    }
  }
  .icons {
    display: flex;
    flex-direction: column;

    li {
      display: flex;
      align-items: flex-start;
      margin-bottom: calc(24 * var(--scale));

      img {
        width: calc(70 * var(--scale));
        margin-right: calc(16 * var(--scale));
      }
      h5 {
        font-size: calc(21 * var(--scale));
        line-height: normal;
      }
      p {
        font-size: calc(15 * var(--scale));
      }
      &:first-child {
        img {
          width: calc(80 * var(--scale));
          margin-left: calc(-10 * var(--scale));
        }
      }
    }
  }
}

.blush--section-table {
  --scale: calc(100vw / 1400);
  background-color: #f5ced3;

  padding-inline: 52px;
  padding-bottom: 52px;

  @media (max-width: 1023px) {
    --scale: calc(100vw / 560);
    padding-inline: 24px;
  }

  h2 {
    padding-top: 36px;
    padding-bottom: 24px;
  }

  .blush--section-table__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid #806254;
    border-radius: 12px;
  }

  table {
    width: 100%;
    border-collapse: collapse;
    background-color: #f8dade;
    color: #563a28;
    font-size: 28px;

    @media (max-width: 1023px) {
      font-size: 18px;
    }

    thead {
      tr {
        border-bottom: 1px solid #806254;
      }
      th[scope="col"] {
        background-color: #ffbcce;
        border-right: 1px solid #806254;
        color: #563a28;
        text-align: center;
        padding: 16px 20px;
        white-space: nowrap;
        text-transform: uppercase;

        &:first-child {
          position: sticky;
          left: 0;
          z-index: 2;
          background-color: #f8dade;
          border-right: 1px solid #806254;
        }
        &:last-child {
          border-right: none;
        }
      }
    }

    tbody {
      tr {
        border-bottom: 1px solid #806254;

        &:last-child {
          border-bottom: none;
        }
      }
      th[scope="row"] {
        position: sticky;
        left: 0;
        z-index: 1;
        background-color: #f8dade;
        color: #563a28;
        font-weight: 500;
        text-align: center;
        padding: 16px 20px;
        border-right: 1px solid #806254;
        white-space: nowrap;
      }
      td {
        background-color: #f8dade;
        color: #563a28;
        border-right: 1px solid #806254;
        text-align: center;
        padding: 16px 20px;
        white-space: nowrap;

        &:last-child {
          border: none;
        }
      }
    }
  }
}

.blush-section--faq {
  --scale: calc(100vw / 1400);
  display: flex;
  flex-direction: column;

  @media (min-width: 1024px) {
    flex-direction: row;
  }

  @media (max-width: 1023px) {
    --scale: calc(100vw / 560);
  }

  h2 {
    margin-top: 40px;
    margin-bottom: 16px;
    max-width: 600px;
    margin-inline: auto;
  }

  .blush-section--faq__shoppable {
    background-color: #e1eccd;
    
    @media (min-width: 1024px) {
      padding-inline: 28px;
      width: 50%;
    }
    padding-bottom: 36px;
    h2 {
    }
    p {
      font-size: 28px;
      margin-bottom: 12px;
      line-height: normal;

      @media (max-width: 1023px) {
        font-size: 21px;
      }
    }
    .blush-section--faq__products {
      display: flex;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scroll-snap-type: x mandatory;
      align-items: flex-start;
      padding-bottom: 21px;
      padding-inline: 16px;
      scroll-padding-inline: 16px;

      @media (min-width: 1024px) {
        margin-left: 0;
      }

      li {
        flex-shrink: 0;
        width: calc(100% / 3.3);
        scroll-snap-align: start;
        position: relative;

        @media (min-width: 1024px) {
          width: auto;
          flex: 1;
        }

        &:last-child {
          margin-right: 16px;

          @media (min-width: 1024px) {
            margin-right: 0;
          }
        }

        a {
          .faq-shoppable__image {}
          span {
            font-size: 21px;

            @media (max-width: 1023px) {
              font-size: 16px;
            }
          }
          .faq-shoppable__badge {
            position: absolute;
            top: 23%;
            right: 2%;
            width: calc(64 * var(--scale));
            height: calc(64 * var(--scale));
          }
        }
      }
    }
  }

  .blush-section--faq__faq {
    background-color: #fee7e1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-inline: 36px;

    @media (min-width: 1024px) {
      width: 50%;
      padding-bottom: 30px;
    }

    .blush-section--faq__accordion {
      width: 100%;
      border-radius: 16px;
      text-align: center;
      border: solid 1px #644937;
      font-size: 24px;
      margin-bottom: 28px;

      details {
        padding: 12px 16px;
        border-bottom: solid 1px #644937;

        &:last-child {
          border-bottom: none;
        }

        summary {
          display: flex;
          justify-content: center;
          align-items: center;
          position: relative;
          font-size: 28px;
          line-height: normal;
          cursor: pointer;
          list-style: none;

          &::-webkit-details-marker {
            display: none;
          }

          &::after {
            content: "+";
            position: absolute;
            right: 0;
            font-size: 1.2em;
            line-height: 1;
          }

          @media (max-width: 1023px) {
            font-size: 21px;
          }
        }

        &[open] summary::after {
          content: "−";
        }

        .blush-faq__content {
          overflow: hidden;
          transition: height 0.35s ease;

          > div {
            margin-top: 16px;
            font-size: 24px;

            @media (max-width: 1023px) {
              font-size: 18px;
            }
          }
        }
      }
    }
  }
}

.blush--social {
  --scale: calc(100vw / 1400);
  background-color: #f6afd5;
  position: relative;

  @media (max-width: 1023px) {
    --scale: calc(100vw / 560);
  }

  .blush--social__mobile-image {
    display: block;
    width: 100%;
    height: auto;

    @media (min-width: 1024px) {
      display: none;
    }
  }

  .blush--social__desktop-image {
    display: none;

    @media (min-width: 1024px) {
      display: block;
      width: 100%;
      height: auto;
    }
  }

  .blush--social__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: calc(28 * var(--scale));

    @media (min-width: 1024px) {
      position: absolute;
      top: 0;
      left: 0;
      width: 50%;
      height: 100%;
    }
  }

  h2 {
    margin-bottom: calc(28 * var(--scale));
  }

  p {
    font-size: calc(28 * var(--scale));
    margin-bottom: calc(48 * var(--scale));
    text-align: center;
  }

  .btn-primary--rose {
    font-size: calc(21 * var(--scale));
    margin-bottom: calc(48 * var(--scale));
  }

  .social-share {
    background-color: #e1eccd;
    border-radius: 50%;
    padding: calc(36 * var(--scale));
    width: calc(320 * var(--scale));
    height: calc(320 * var(--scale));
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;

    h2 {
      margin-bottom: calc(8 * var(--scale));
    }

    p {
      font-size: calc(28 * var(--scale));
      margin-bottom: calc(16 * var(--scale));
      line-height: normal;
    }

    .blush--social__links {
      display: flex;
      justify-content: center;

      ul {
        display: flex;
        justify-content: center;
      }
      li {
        margin-inline: calc(8 * var(--scale));

        a {
          display: block;
          border-radius: 50%;
          background-color: #563928;
          padding: calc(6 * var(--scale));
          svg {
            width: calc(50 * var(--scale));
            height: calc(50 * var(--scale));
            path {
              fill: #e1eccd;
            }
          }
        }
      }
    }
  }
}
