/* ==========================================================================
   Safety (50+ years accident-free)
   Crimson card with a layered background (photo, crimson shade, multiplied
   fan render) and the HAI award strip overlapping its bottom edge.
   The card carries id="safety" so the nav "Safety" link lands on it.
   ========================================================================== */
.safety {
  padding-block: 48px;
  background: var(--white);
}
.safety__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ---- Card ---- */
.safety__card {
  position: relative;
  z-index: 0;
  width: 100%;
  margin-bottom: -43px;
  padding: 48px 24px 96px;
  overflow: clip;
  border-radius: 28px;
  background: var(--deep);
}
@media (min-width: 768px) {
  .safety__card {
    padding: 56px 48px 96px;
  }
}
@media (min-width: 1280px) {
  .safety__card {
    height: 500px;
    padding: 0;
  }
}

/* ---- Background stage ---- */
.safety__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.safety__photo {
  position: absolute;
  top: -60px;
  left: 0;
  width: 1328px;
  height: 560px;
  opacity: 0.55;
}
.safety__photo img {
  object-fit: cover;
}
.safety__shade {
  position: absolute;
  inset: 0;
  background: var(--crimson);
}
/* Fan render, anchored to the card's right edge and multiplied over the shade */
.safety__fan {
  position: absolute;
  top: -122px;
  right: -420px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 926.686px;
  height: 743.075px;
  mix-blend-mode: multiply;
}
@media (min-width: 768px) {
  .safety__fan {
    right: -194.05px;
  }
}
.safety__fan-tilt {
  flex: none;
  rotate: -10deg;
}
.safety__fan-box {
  position: relative;
  width: 833.862px;
  height: 607.505px;
  overflow: hidden;
  opacity: 0.5;
}
.safety__fan-img {
  position: absolute;
  top: 0;
  left: 3.85%;
  width: 94.54%;
  height: 100%;
}
.safety__fan-img img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: fill;
}

/* ---- Content ---- */
.safety__content {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.safety__copy {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.safety__title {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  column-gap: 24px;
  font-weight: var(--fw-regular);
  color: var(--sand);
}
.safety__big {
  font-weight: var(--fw-light);
  font-size: 104px;
  line-height: 1.1;
  letter-spacing: -0.04em;
}
.safety__caption {
  margin-top: 16px;
  font-size: 22px;
  line-height: 28px;
  letter-spacing: -0.03em;
}
/* From 768px the caption overlaps the big number's grid cell */
@media (min-width: 768px) {
  .safety__title {
    display: grid;
    grid-template-columns: max-content;
    grid-template-rows: max-content;
  }
  .safety__big,
  .safety__caption {
    grid-area: 1 / 1;
  }
  .safety__big {
    font-size: 160px;
    line-height: 176px;
    letter-spacing: -6.4px;
  }
  .safety__caption {
    margin: 62px 0 0 280px;
    font-size: 28px;
    line-height: 34px;
    letter-spacing: -0.84px;
  }
}
.safety__text {
  max-width: 576px;
  font-weight: var(--fw-news);
  font-size: 16px;
  line-height: 20px;
  color: rgba(255, 255, 255, 0.82);
}
.safety__certs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.safety__cert {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px 7px 8px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  font-weight: var(--fw-news);
  font-size: 14px;
  line-height: 18px;
  white-space: nowrap;
  color: var(--white);
}

/* ---- Stats ---- */
.safety__stats {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 36px;
}
@media (min-width: 640px) {
  .safety__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.safety__stat {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-left: 20px;
  border-left: 1px solid rgba(255, 255, 255, 0.22);
  white-space: nowrap;
}
.safety__stat-value {
  font-weight: var(--fw-news);
  font-size: 56px;
  line-height: 64px;
  letter-spacing: -0.04em;
  color: var(--sand);
}
.safety__stat-label {
  font-size: 16px;
  line-height: 20px;
  color: var(--white);
}
.safety__stat-note {
  font-weight: var(--fw-news);
  font-size: 14px;
  line-height: 18px;
  color: rgba(255, 255, 255, 0.65);
}
@media (min-width: 768px) {
  .safety__stat-value {
    font-size: 72px;
    line-height: 80px;
    letter-spacing: -2.88px;
  }
}

/* From 1280px the copy and stats are pinned inside the fixed-height card */
@media (min-width: 1280px) {
  .safety__content {
    display: block;
  }
  .safety__copy {
    position: absolute;
    top: 64px;
    right: 600px;
    left: 64px;
  }
  .safety__stats {
    position: absolute;
    top: 112px;
    right: 0;
    width: 560px;
  }
}

/* ---- HAI awards strip ---- */
.safety__awards {
  position: relative;
  z-index: 10;
  max-width: 100%;
  margin-inline: auto;
  padding: 20px;
  border: 1px solid #f6cd7b;
  border-radius: 22px;
  background-image: linear-gradient(to right, #f6f2ee, #f6e6d6);
}
@media (min-width: 768px) {
  .safety__awards {
    padding: 22px 26px;
  }
}
.safety__awards-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px 20px;
}
.safety__awards-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  line-height: 16px;
  white-space: nowrap;
  text-transform: uppercase;
  color: var(--navy);
}
.safety__years {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
}
.safety__year {
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--white);
  font-size: 16px;
  line-height: 20px;
  white-space: nowrap;
  color: var(--navy);
}
.safety__awards-note {
  font-size: 12px;
  line-height: 16px;
  white-space: nowrap;
  text-transform: uppercase;
  color: var(--crimson);
}

/* Hidden until safety.js reveals them (only when JS + GSAP are running) */
.js .safety__card,
.js .safety__awards,
.js .safety__year {
  opacity: 0;
}
