/* =========================================================
   GIN TATTOOS
   ABOUT SECTION
   ========================================================= */

.about {
  --about-red: #d9000a;
  --about-red-dark: #b80008;
  --about-black: #111111;
  --about-grey: #6f6f6f;
  --about-light-grey: #eeeeee;
  --about-card: #f7f7f7;

  position: relative;

  width: 100%;

  padding:
    125px 0
    130px;

  background: #ffffff;

  overflow: hidden;
}


/* =========================================================
   SUBTLE BACKGROUND DETAIL
   ========================================================= */

.about::before {
  content: "";

  position: absolute;

  width: 400px;
  height: 400px;

  left: -220px;
  top: 15%;

  border-radius: 50%;

  background:
    rgba(217, 0, 10, 0.035);

  filter: blur(80px);

  pointer-events: none;
}


/* =========================================================
   CONTAINER
   ========================================================= */

.about-container {
  width: min(
    1280px,
    calc(100% - 80px)
  );

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    minmax(400px, 0.83fr)
    minmax(0, 1fr);

  gap: 85px;

  align-items: center;
}


/* =========================================================
   IMAGE SIDE
   ========================================================= */

.about-visual {
  position: relative;

  min-width: 0;
}


.about-image-wrap {
  position: relative;

  width: 100%;

  height: 680px;

  overflow: visible;
}


/* =========================================================
   ABOUT IMAGE
   ========================================================= */

.about-image {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  border-radius:
    0
    0
    34px
    34px;

  box-shadow:
    0 25px 60px
    rgba(0, 0, 0, 0.14);

  filter:
    saturate(0.92)
    contrast(1.03);

  transition:
    transform 0.8s
    cubic-bezier(.16, 1, .3, 1),
    filter 0.5s ease;
}


.about-image-wrap:hover .about-image {
  transform:
    scale(1.015);

  filter:
    saturate(1)
    contrast(1.04);
}


/* =========================================================
   IMAGE ACCENT
   ========================================================= */

.about-image-wrap::after {
  content: "";

  position: absolute;

  z-index: -1;

  left: -18px;
  bottom: -18px;

  width: 145px;
  height: 145px;

  border-radius: 50%;

  background:
    rgba(217, 0, 10, 0.08);

  filter: blur(35px);
}


/* =========================================================
   IMAGE LABEL
   ========================================================= */

.about-image-label {
  position: absolute;

  left: 20px;
  bottom: 20px;

  display: flex;

  align-items: center;

  gap: 10px;

  padding:
    12px 17px;

  border-radius: 999px;

  background:
    rgba(17, 17, 17, 0.88);

  color: #ffffff;

  font-family: "Roboto", sans-serif;

  font-size: 0.56rem;

  font-weight: 700;

  letter-spacing: 0.17em;

  backdrop-filter:
    blur(12px);

  -webkit-backdrop-filter:
    blur(12px);

  transition:
    transform 0.3s ease;
}


.about-image-wrap:hover .about-image-label {
  transform:
    translateY(-4px);
}


.about-image-line {
  width: 17px;

  height: 2px;

  border-radius: 999px;

  background:
    var(--about-red);
}


/* =========================================================
   CONTENT
   ========================================================= */

.about-content {
  min-width: 0;
}


/* =========================================================
   RATING
   ========================================================= */

.about-rating {
  display: flex;

  align-items: center;

  gap: 14px;

  margin-bottom: 28px;
}


.about-rating-score {
  display: flex;

  align-items: center;

  gap: 5px;

  color: var(--about-black);

  font-family: "Roboto", sans-serif;

  font-size: 1.4rem;

  font-weight: 900;

  line-height: 1;
}


.about-rating-score span {
  color: var(--about-red);

  font-size: 0.9rem;
}


.about-rating-text {
  padding-left: 14px;

  border-left:
    1px solid #d8d8d8;

  color: #858585;

  font-family: "Roboto", sans-serif;

  font-size: 0.65rem;

  font-weight: 500;

  letter-spacing: 0.05em;
}


/* =========================================================
   LABEL
   ========================================================= */

.about-label {
  display: block;

  margin-bottom: 16px;

  color: var(--about-red);

  font-family: "Roboto", sans-serif;

  font-size: 0.64rem;

  font-weight: 800;

  letter-spacing: 0.22em;
}


/* =========================================================
   TITLE
   ========================================================= */

.about-title {
  margin: 0;

  color: var(--about-black);

  font-family: "Anton", sans-serif;

  font-size: clamp(
    3.5rem,
    5vw,
    5.6rem
  );

  font-weight: 400;

  line-height: 0.9;

  letter-spacing: -0.02em;

  text-transform: uppercase;
}


.about-title span {
  color: var(--about-red);

  position: relative;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.about-description {
  max-width: 650px;

  margin-top: 30px;
}


.about-description p {
  margin:
    0 0 17px;

  color: #676767;

  font-family: "Roboto", sans-serif;

  font-size: 0.95rem;

  font-weight: 400;

  line-height: 1.8;
}


.about-description p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   FEATURE GRID
   ========================================================= */

.about-features {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 12px;

  margin-top: 38px;
}


/* =========================================================
   FEATURE CARD
   ========================================================= */

.about-feature-card {
  position: relative;

  min-height: 190px;

  padding:
    24px 22px 21px;

  display: flex;

  flex-direction: column;

  justify-content: flex-end;

  overflow: hidden;

  background:
    var(--about-card);

  border:
    1px solid #eeeeee;

  border-radius: 20px;

  transition:
    transform 0.35s
      cubic-bezier(.16, 1, .3, 1),

    background 0.35s ease,

    border-color 0.35s ease,

    box-shadow 0.35s ease;
}


.about-feature-card:hover {
  transform:
    translateY(-6px);

  background:
    #ffffff;

  border-color:
    rgba(217, 0, 10, 0.18);

  box-shadow:
    0 18px 40px
    rgba(0, 0, 0, 0.08);
}


/* =========================================================
   CARD NUMBER
   ========================================================= */

.feature-number {
  position: absolute;

  top: 21px;
  left: 22px;

  color: #b5b5b5;

  font-family: "Roboto", sans-serif;

  font-size: 0.57rem;

  font-weight: 800;

  letter-spacing: 0.13em;

  transition:
    color 0.3s ease;
}


.about-feature-card:hover .feature-number {
  color:
    var(--about-red);
}


/* =========================================================
   CARD ICON
   ========================================================= */

.feature-icon {
  position: absolute;

  top: 18px;
  right: 18px;

  width: 48px;
  height: 48px;

  display: flex;

  align-items: center;
  justify-content: center;

  border-radius: 14px;

  background:
    #ffffff;

  border:
    1px solid #e8e8e8;

  box-shadow:
    0 7px 20px
    rgba(0, 0, 0, 0.05);

  transition:
    transform 0.35s
      cubic-bezier(.16, 1, .3, 1),

    background 0.3s ease,

    border-color 0.3s ease;
}


.feature-icon img {
  display: block;

  width: 25px;
  height: 25px;

  object-fit: contain;

  transition:
    transform 0.35s ease;
}


.about-feature-card:hover .feature-icon {
  background:
    var(--about-red);

  border-color:
    var(--about-red);

  transform:
    rotate(4deg);
}


.about-feature-card:hover .feature-icon img {
  transform:
    scale(1.08);
}


/*
   If your uploaded icons are black SVG/PNG files,
   this makes them white when hovering over the red box.

   Remove this if your icons already have their own
   hover colours.
*/

.about-feature-card:hover .feature-icon img {
  filter:
    brightness(0)
    invert(1);
}


/* =========================================================
   CARD CONTENT
   ========================================================= */

.feature-card-content {
  position: relative;

  z-index: 2;
}


.feature-card-content h3 {
  margin: 0 0 9px;

  color: var(--about-black);

  font-family: "Roboto", sans-serif;

  font-size: 0.95rem;

  font-weight: 800;

  letter-spacing: -0.01em;
}


.feature-card-content p {
  max-width: 250px;

  margin: 0;

  color: #777777;

  font-family: "Roboto", sans-serif;

  font-size: 0.72rem;

  line-height: 1.6;
}


/* =========================================================
   CARD ARROW
   ========================================================= */

.feature-arrow {
  position: absolute;

  right: 20px;
  bottom: 20px;

  color: #c4c4c4;

  font-family: "Roboto", sans-serif;

  font-size: 0.95rem;

  transition:
    color 0.3s ease,
    transform 0.3s ease;
}


.about-feature-card:hover .feature-arrow {
  color:
    var(--about-red);

  transform:
    translate(3px, -3px);
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1150px) {

  .about {
    padding:
      105px 0
      110px;
  }


  .about-container {
    width:
      calc(100% - 60px);

    gap: 55px;

    grid-template-columns:
      minmax(350px, 0.8fr)
      minmax(0, 1fr);
  }


  .about-image-wrap {
    height: 610px;
  }


  .about-title {
    font-size:
      clamp(
        3.3rem,
        5vw,
        4.8rem
      );
  }


  .about-description p {
    font-size: 0.9rem;
  }


  .about-feature-card {
    min-height: 180px;
  }

}


/* =========================================================
   TABLET / SMALL LAPTOP
   ========================================================= */

@media (max-width: 900px) {

  .about-container {
    grid-template-columns:
      1fr;

    gap: 55px;
  }


  .about-visual {
    max-width: 680px;

    margin: 0 auto;

    width: 100%;
  }


  .about-image-wrap {
    height: 600px;
  }


  .about-content {
    max-width: 760px;

    margin: 0 auto;
  }


  .about-title {
    font-size:
      clamp(
        3.7rem,
        8vw,
        5.5rem
      );
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

  .about {
    padding:
      85px 0
      90px;
  }


  .about-container {
    width:
      calc(100% - 32px);

    gap: 42px;
  }


  .about-image-wrap {
    height: 460px;
  }


  .about-image {
    border-radius:
      0
      0
      26px
      26px;
  }


  .about-image-label {
    left: 12px;
    bottom: 12px;

    padding:
      10px 13px;

    font-size:
      0.48rem;
  }


  .about-rating {
    margin-bottom: 22px;
  }


  .about-rating-score {
    font-size: 1.25rem;
  }


  .about-rating-text {
    font-size: 0.58rem;
  }


  .about-label {
    font-size: 0.56rem;

    letter-spacing: 0.18em;
  }


  .about-title {
    font-size:
      clamp(
        3.1rem,
        14vw,
        4.5rem
      );

    line-height: 0.9;
  }


  .about-description {
    margin-top: 24px;
  }


  .about-description p {
    font-size: 0.87rem;

    line-height: 1.75;
  }


  .about-features {
    grid-template-columns:
      1fr;

    gap: 10px;

    margin-top: 30px;
  }


  .about-feature-card {
    min-height: 170px;

    padding:
      23px 20px;
  }


  .feature-icon {
    top: 16px;
    right: 16px;

    width: 45px;
    height: 45px;
  }


  .feature-number {
    top: 19px;
    left: 20px;
  }


  .feature-card-content h3 {
    font-size: 0.9rem;
  }


  .feature-card-content p {
    font-size: 0.7rem;
  }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 380px) {

  .about {
    padding:
      75px 0
      80px;
  }


  .about-container {
    width:
      calc(100% - 24px);
  }


  .about-image-wrap {
    height: 410px;
  }


  .about-title {
    font-size: 2.9rem;
  }


  .about-rating {
    gap: 10px;
  }


  .about-rating-text {
    padding-left: 10px;

    font-size: 0.54rem;
  }

}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .about *,
  .about *::before,
  .about *::after {

    animation-duration:
      0.01ms !important;

    animation-iteration-count:
      1 !important;

    transition-duration:
      0.01ms !important;
  }

}