:root {
  --nm-benefit-bg: #f7fbf7;
  --nm-benefit-surface: #ffffff;
  --nm-benefit-ink: #12342c;
  --nm-benefit-text: #1c4338;
  --nm-benefit-muted: rgba(28, 67, 56, 0.66);
  --nm-benefit-line: rgba(18, 52, 44, 0.11);
  --nm-benefit-green: #0f7a58;
  --nm-benefit-teal: #0f8f83;
  --nm-benefit-amber: #d88b18;
  --nm-benefit-amber-soft: #fff3d4;
  --nm-benefit-shadow: 0 18px 48px rgba(18, 52, 44, 0.08);
}

.nm-benefits {
  position: relative;
  overflow: hidden;
  padding: clamp(50px, 5.2vw, 72px) 0 clamp(54px, 5.6vw, 76px);
  background:
    radial-gradient(circle at 18% 10%, rgba(15, 122, 88, 0.095), transparent 31%),
    radial-gradient(circle at 88% 76%, rgba(216, 139, 24, 0.06), transparent 27%),
    linear-gradient(180deg, #ffffff 0%, var(--nm-benefit-bg) 100%);
  color: var(--nm-benefit-text);
}

.nm-benefits__route {
  position: absolute;
  inset: 0;
  background-image: url("../assets/images/hero-bg-route.svg");
  background-repeat: no-repeat;
  background-position: 8% 38%;
  background-size: 860px auto;
  opacity: 0.045;
  pointer-events: none;
}

.nm-benefits::after {
  content: "";
  position: absolute;
  right: -120px;
  top: 70px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(15, 122, 88, 0.10);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  pointer-events: none;
}

.nm-benefits__inner {
  position: relative;
  z-index: 1;
  width: min(1160px, calc(100% - 48px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(310px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(22px, 3.2vw, 38px);
  align-items: stretch;
}

.nm-benefits__panel {
  position: relative;
  min-height: 100%;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid rgba(15, 122, 88, 0.14);
  border-radius: 30px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(242, 250, 245, 0.88)),
    var(--nm-benefit-surface);
  box-shadow: var(--nm-benefit-shadow);
}

.nm-benefits__panel::before {
  content: "";
  position: absolute;
  inset: 16px 16px auto auto;
  width: 76px;
  height: 76px;
  border-radius: 28px;
  background:
    linear-gradient(145deg, rgba(15, 122, 88, 0.18), rgba(15, 143, 131, 0.08)),
    rgba(255, 255, 255, 0.6);
  transform: rotate(10deg);
  opacity: 0.7;
  pointer-events: none;
}

.nm-benefits__eyebrow {
  position: relative;
  width: fit-content;
  margin: 0 0 11px;
  padding: 6px 10px;
  border: 1px solid rgba(15, 122, 88, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--nm-benefit-green);
  font-size: 11px;
  font-weight: 620;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.nm-benefits h2 {
  position: relative;
  max-width: 460px;
  margin: 0;
  color: var(--nm-benefit-ink);
  font-size: clamp(25px, 2.25vw, 36px);
  font-weight: 620;
  letter-spacing: -0.018em;
  line-height: 1.14;
  text-wrap: balance;
}

.nm-benefits__lead {
  max-width: 460px;
  margin: 14px 0 0;
  color: var(--nm-benefit-muted);
  font-size: 14.8px;
  font-weight: 420;
  line-height: 1.58;
  text-wrap: pretty;
}

.nm-benefits__mini {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.nm-benefits__mini span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 7px 10px;
  border: 1px solid rgba(15, 122, 88, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #173a32;
  font-size: 12.5px;
  font-weight: 560;
  line-height: 1;
}

.nm-benefits__mini span:first-child {
  border-color: rgba(216, 139, 24, 0.28);
  background: var(--nm-benefit-amber-soft);
  color: #7b4c08;
}

.nm-benefits__cta {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid rgba(18, 52, 44, 0.10);
}

.nm-benefits__cta p {
  margin: 0 0 12px;
  color: var(--nm-benefit-ink);
  font-size: 14px;
  font-weight: 610;
  line-height: 1.35;
}

.nm-benefits__cta div {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.nm-benefits__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 15px;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 650;
  line-height: 1;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.nm-benefits__btn:hover {
  transform: translateY(-1px);
}

.nm-benefits__btn--call {
  border: 1px solid rgba(216, 139, 24, 0.44);
  background: linear-gradient(180deg, #e7a63b 0%, var(--nm-benefit-amber) 100%);
  color: #1e1402;
  box-shadow: 0 12px 26px rgba(216, 139, 24, 0.20);
}

.nm-benefits__btn--zalo {
  border: 1px solid rgba(15, 122, 88, 0.18);
  background: rgba(255, 255, 255, 0.76);
  color: var(--nm-benefit-green);
}

.nm-benefits__btn--zalo:hover {
  border-color: rgba(15, 122, 88, 0.34);
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(18, 52, 44, 0.08);
}

.nm-benefits__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-content: stretch;
}

.nm-benefit-card {
  position: relative;
  min-height: 176px;
  padding: 18px;
  overflow: hidden;
  border: 1px solid var(--nm-benefit-line);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 34px rgba(18, 52, 44, 0.055);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.nm-benefit-card:hover {
  transform: translateY(-2px);
  border-color: rgba(15, 122, 88, 0.20);
  box-shadow: 0 18px 44px rgba(18, 52, 44, 0.08);
}

.nm-benefit-card::after {
  content: "";
  position: absolute;
  right: -36px;
  top: -36px;
  width: 96px;
  height: 96px;
  border-radius: 999px;
  background: rgba(15, 122, 88, 0.055);
  pointer-events: none;
}

.nm-benefit-card--featured {
  border-color: rgba(15, 122, 88, 0.24);
  background:
    linear-gradient(145deg, rgba(237, 248, 241, 0.95), rgba(255, 255, 255, 0.88)),
    #ffffff;
}

.nm-benefit-card--soft {
  border-color: rgba(216, 139, 24, 0.22);
  background:
    linear-gradient(145deg, rgba(255, 243, 212, 0.72), rgba(255, 255, 255, 0.9)),
    #ffffff;
}

.nm-benefit-card__icon {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 14px;
  border: 1px solid rgba(15, 122, 88, 0.13);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.86);
}

.nm-benefit-card__icon img {
  width: 22px;
  height: 22px;
  display: block;
}

.nm-benefit-card h3 {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--nm-benefit-ink);
  font-size: 16px;
  font-weight: 650;
  letter-spacing: -0.006em;
  line-height: 1.22;
}

.nm-benefit-card p {
  position: relative;
  z-index: 1;
  margin: 8px 0 0;
  color: var(--nm-benefit-muted);
  font-size: 13.5px;
  font-weight: 410;
  line-height: 1.48;
}

@media (max-width: 1020px) {
  .nm-benefits__inner {
    grid-template-columns: 1fr;
  }

  .nm-benefits__panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.52fr);
    column-gap: 28px;
    align-items: end;
  }

  .nm-benefits__lead,
  .nm-benefits__mini {
    grid-column: 1;
  }

  .nm-benefits__cta {
    grid-column: 2;
    grid-row: 1 / span 4;
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    border-left: 1px solid rgba(18, 52, 44, 0.10);
    padding-left: 24px;
  }

  .nm-benefits__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .nm-benefits {
    padding: 38px 0 44px;
  }

  .nm-benefits__inner {
    width: min(100% - 30px, 680px);
    gap: 14px;
  }

  .nm-benefits__panel {
    display: block;
    padding: 22px;
    border-radius: 24px;
  }

  .nm-benefits__panel::before {
    width: 58px;
    height: 58px;
    border-radius: 20px;
  }

  .nm-benefits h2 {
    max-width: 100%;
    font-size: clamp(24px, 7vw, 30px);
    line-height: 1.14;
  }

  .nm-benefits__lead {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.52;
  }

  .nm-benefits__mini {
    margin-top: 14px;
    gap: 7px;
  }

  .nm-benefits__mini span {
    min-height: 30px;
    padding: 7px 9px;
    font-size: 12px;
  }

  .nm-benefits__cta {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(18, 52, 44, 0.10);
    border-left: 0;
    padding-left: 0;
  }

  .nm-benefits__cta div {
    display: grid;
    grid-template-columns: 1fr;
  }

  .nm-benefits__btn {
    min-height: 44px;
    width: 100%;
  }

  .nm-benefits__grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .nm-benefit-card {
    min-height: 0;
    padding: 15px 15px 15px 58px;
    border-radius: 20px;
  }

  .nm-benefit-card__icon {
    position: absolute;
    left: 15px;
    top: 15px;
    width: 34px;
    height: 34px;
    margin: 0;
    border-radius: 13px;
  }

  .nm-benefit-card__icon img {
    width: 18px;
    height: 18px;
  }

  .nm-benefit-card h3 {
    font-size: 15px;
  }

  .nm-benefit-card p {
    margin-top: 5px;
    font-size: 13px;
    line-height: 1.43;
  }
}

@media (max-width: 390px) {
  .nm-benefits__inner {
    width: min(100% - 24px, 680px);
  }

  .nm-benefits__panel {
    padding: 19px;
  }

  .nm-benefits__mini {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nm-benefits__mini span {
    justify-content: center;
  }
}
