/* ============================================================
   new_gra.css — 新卒採用 (/recruit/new_gra/)
   ============================================================ */

/* ----------------------------------------------------------
   1. Hero
   ---------------------------------------------------------- */
.ngra-hero {
  position: relative;
  /*background: linear-gradient(135deg, #002e18 0%, #004d28 55%, #006b38 100%);*/
  background: linear-gradient(135deg, #006171 0%, #002d4d 55%, #00436b 100%);
  overflow: hidden;
  min-height: clamp(460px, 54vw, 720px);
  display: flex;
  align-items: flex-start;
  padding-top: clamp(64px, 4.9vw, 94px);
}

.ngra-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  padding: clamp(48px, 5.2vw, 100px) clamp(20px, 13.5vw, 260px);
}

.ngra-hero__text {
  max-width: 580px;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 1.25vw, 20px);
}

.ngra-hero__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3em;
  color: rgba(255,255,255,0.45);
}

.ngra-hero__title {
  font-size: clamp(36px, 4.69vw, 72px);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.ngra-hero__subtitle {
  font-size: clamp(14px, 1.15vw, 18px);
  color: #FFF;
  line-height: 1.8;
}

/* Stats row */
.ngra-hero__stats {
  display: flex;
  gap: clamp(24px, 3.65vw, 52px);
  padding: clamp(16px, 1.56vw, 24px) 0;
  border-top: 1px solid rgba(255,255,255,0.12);
  border-bottom: 1px solid rgba(255,255,255,0.12);
  margin: 4px 0;
}

.ngra-hero__stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ngra-hero__stat-num {
  /*font-size: clamp(22px, 2.6vw, 38px);*/
  font-size: clamp(32px, 3.65vw, 52px);
  font-weight: 700;
  color: #ccf5ff;
  line-height: 1;
  letter-spacing: -0.02em;
  display: flex;
  align-items: baseline;
  gap: 2px;
}

.ngra-hero__stat-unit {
  font-size: clamp(12px, 1.04vw, 16px);
  font-weight: 700;
  color: #FFF;
}

.ngra-hero__stat-label {
  font-size: 11px;
  color: #FFF;
  letter-spacing: 0.05em;
}

/* Action buttons */
.ngra-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(10px, 1.04vw, 14px);
}

.ngra-hero__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: clamp(13px, 0.94vw, 15px);
  font-weight: 700;
  padding: clamp(13px, 1.15vw, 17px) clamp(22px, 2.08vw, 32px);
  border-radius: 6px;
  text-decoration: none;
  transition: transform 0.15s, box-shadow 0.2s, background 0.2s;
}

.ngra-hero__btn--primary {
  background: #fff;
  color: #333;
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
}

.ngra-hero__btn--primary:hover {
  background: #F0FAF5;
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.22);
}

.ngra-hero__btn--secondary {
  background: rgba(255,255,255,0.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.28);
}

.ngra-hero__btn--secondary:hover {
  background: rgba(255,255,255,0.18);
  transform: translateY(-2px);
}

.ngra-hero__btn-arrow {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(0, 58, 86, 0.24);
  flex-shrink: 0;
  position: relative;
}

.ngra-hero__btn-arrow::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 52%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 6px;
  height: 6px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
}

/* Hero photo */
.ngra-hero__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
}

.ngra-hero__photo::before {
  content: '';
  position: absolute;
  inset: 0;
  /*background: linear-gradient(to right, #002e18 0%, transparent 40%);*/
  z-index: 1;
}

.ngra-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.ngra-hero .arch {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  z-index: 3;
  line-height: 0;
}

.ngra-hero .arch img {
  width: 100%;
  display: block;
}

/* ----------------------------------------------------------
   2. Shared section head
   ---------------------------------------------------------- */
.recruit .content_section.content {
    padding: clamp(40px, 4.2vw, 80px) clamp(20px, 13.5vw, 260px) clamp(60px, 6.25vw, 120px);
    padding-left: clamp(16px, 5vw, 24px);
    padding-right: clamp(16px, 5vw, 24px);
}

.ngra-section-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: clamp(28px, 3.13vw, 48px);
}

.ngra-section-head__tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #009A59;
  background: #F0FAF5;
  border: 1px solid #009A59;
  border-radius: 3px;
  padding: 2px 8px;
  display: inline-block;
  width: fit-content;
}

.ngra-section-head__title {
  font-size: clamp(20px, 2.08vw, 32px);
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.35;
  padding-bottom: clamp(12px, 1.04vw, 16px);
  border-bottom: 2px solid #e0e0e0;
  position: relative;
}

.ngra-section-head__title::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: clamp(60px, 8vw, 100px);
  height: 2px;
  background: #009A59;
}

/* Light variant */
.ngra-section-head__tag--light {
  color: rgba(255,255,255,0.65);
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.3);
}

.ngra-section-head__title--light {
  color: #fff;
  border-bottom-color: rgba(255,255,255,0.15);
}

.ngra-section-head__title--light::after {
  background: #4cffa0;
}
.diagram-title {
  font-size: clamp(15px, 1.25vw, 22px);
  font-weight: 700;
  color: #333;
  border-left: 4px solid #009A59;
  padding-left: clamp(12px, 1.04vw, 18px);
  line-height: 1.5;
  margin-bottom: 0.5em;
  margin-top: 2em;
}
/* ----------------------------------------------------------
   3. Job description
   ---------------------------------------------------------- */
.ngra-job {
  background: #fff;
  /*padding: clamp(56px, 5.83vw, 96px) clamp(20px, 13.5vw, 260px);*/
}

.ngra-job__inner {
  max-width: 1400px;
  margin: 0 auto;
}

.ngra-job__card {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 28px rgba(0,0,0,0.07);
}

.ngra-job__card-head {
  /*background: linear-gradient(135deg, #002e18 0%, #004d28 50%, #006b38 100%);*/
  background: #009A59;
  padding: clamp(24px, 2.08vw, 36px) clamp(28px, 3.65vw, 56px);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ngra-job__card-badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #000;
  background: #FFF;
  border-radius: 3px;
  padding: 3px 10px;
  display: inline-block;
  width: fit-content;
}

.ngra-job__card-title {
  font-size: clamp(20px, 1.87vw, 30px);
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
}

.ngra-job__card-title span {
  font-size: clamp(13px, 1.04vw, 16px);
  color: #FFF;
  font-weight: 400;
  display: block;
  margin-top: 4px;
}

.ngra-job__card-body {
  background: #fff;
  padding: clamp(24px, 2.6vw, 40px) clamp(28px, 3.65vw, 56px);
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.56vw, 24px);
}

.ngra-job__card-lead {
  font-size: clamp(14px, 1.15vw, 17px);
  color: #444;
  line-height: 1.9;
}

.ngra-job__card-lead strong {
  color: #009A59;
  font-weight: 700;
}

.ngra-job__card-duties {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px clamp(24px, 3.65vw, 56px);
}

.ngra-job__card-duties li {
  font-size: 14px;
  color: #555;
  line-height: 1.7;
  padding-left: 18px;
  position: relative;
}

.ngra-job__card-duties li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 10px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #009A59;
}




.recruit-appeal {
  background: #fff;
  /*padding: clamp(60px, 6.25vw, 100px) clamp(20px, 13.5vw, 260px);*/
  padding: clamp(60px, 6.25vw, 100px) 30px;
}

.recruit-appeal__inner {
  max-width: 1400px;
  margin: 0 auto;
}

.recruit-appeal__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 1.87vw, 28px);
}
.grid_4 {
  grid-template-columns: repeat(4, 1fr);
}
.grid_3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1200px) {
  .grid_3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 800px) {
  .grid_3 {
    grid-template-columns: repeat(1, 1fr);
  }
}
.timeline {
  border-top: 1px solid #e8e8e8;
  background-color: #fff;
  padding: 20px;
}
.timeline:first-child {
  border: none;
}
.time {
  font-size: clamp(12px, 2vw, 20px);
  font-weight: 700;
  color: #009A59;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
  padding-right: 1em;
}

.recruit-appeal-card {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.56vw, 22px);
  padding: clamp(24px, 2.08vw, 36px) clamp(20px, 1.87vw, 28px);
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.05);
  transition: box-shadow 0.2s, transform 0.2s;
  position: relative;
  overflow: hidden;
}

.recruit-appeal-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: #009A59;
}

.recruit-appeal-card:hover {
  box-shadow: 0 8px 40px rgba(0,154,89,0.12);
  transform: translateY(-3px);
}

/* Appeal card icons (SVG data URI) */
.recruit-appeal-card__icon {
  width: clamp(48px, 4.17vw, 60px);
  height: clamp(48px, 4.17vw, 60px);
/*  border-radius: 14px;
  background-color: #F0FAF5;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 28px 28px;
  border: 1px solid rgba(0,154,89,0.2);
  flex-shrink: 0;*/
}

/* 01 - building/map */
.recruit-appeal-card__icon--01 {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009A59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='15' rx='1'/%3E%3Cpath d='M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2'/%3E%3Cline x1='12' y1='12' x2='12' y2='16'/%3E%3Cline x1='10' y1='14' x2='14' y2='14'/%3E%3C/svg%3E");
}

/* 02 - megaphone (反響営業) */
.recruit-appeal-card__icon--02 {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009A59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l19-9-9 19-2-8-8-2z'/%3E%3C/svg%3E");
}

/* 03 - gift/bonus */
.recruit-appeal-card__icon--03 {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009A59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Crect x='5' y='12' width='14' height='9' rx='1'/%3E%3Cpath d='M12 8V21'/%3E%3Cpath d='M12 8C12 8 9 5 7 6s-1 4 5 2'/%3E%3Cpath d='M12 8C12 8 15 5 17 6s1 4-5 2'/%3E%3C/svg%3E");
}

/* 04 - calendar/holiday */
.recruit-appeal-card__icon--04 {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009A59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3Ccircle cx='12' cy='16' r='1.5' fill='%23009A59'/%3E%3C/svg%3E");
}

.recruit-appeal-card__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.recruit-appeal-card__title {
  font-size: clamp(14px, 1.15vw, 18px);
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.5;
}

.recruit-appeal-card__text {
  font-size: 13px;
  color: #666;
  line-height: 1.8;
}

.hosoku {
  font-size: 13px;
  padding: 1em;
}
.ngra-section-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: clamp(28px, 3.13vw, 48px);
}
.ngra-section-head__title {
  font-size: clamp(20px, 2.08vw, 32px);
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.35;
  padding-bottom: clamp(12px, 1.04vw, 16px);
  border-bottom: 2px solid #e0e0e0;
  position: relative;
}
.ngra-section-head__title::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: clamp(60px, 8vw, 100px);
  height: 2px;
  background: #009A59;
}
.match {
  list-style-type: disc;
  padding: 1em 2em;
  background-color: aliceblue;
  margin-bottom: 40px;
  font-size: 13px;
  line-height: 1.8;
}
.match p {
  padding: 0 10px 30px 10px;
}
.match p.recruit-appeal-card__title {
  padding-bottom: 10px;
}


.ngra-requirements {
  background: #F7FAF8;
  padding: clamp(56px, 5.83vw, 96px) clamp(20px, 13.5vw, 260px);
}
.ngra-requirements__inner {
  max-width: 1400px;
  margin: 0 auto;
}
.ngra-section-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: clamp(28px, 3.13vw, 48px);
}
.ngra-section-head__title {
  font-size: clamp(20px, 2.08vw, 32px);
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.35;
  padding-bottom: clamp(12px, 1.04vw, 16px);
  border-bottom: 2px solid #e0e0e0;
  position: relative;
}
.ngra-flow__inner .ngra-section-head__title {
  color: #FFF;
}
.section-head__title2 {
  margin-bottom: 2em;
}
.ngra-section-head__title::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: clamp(60px, 8vw, 100px);
  height: 2px;
  background: #009A59;
}
.ngra-req-table {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0,0,0,0.05);
}
.ngra-req-table__row {
  display: grid;
  grid-template-columns: clamp(110px, 11.46vw, 160px) 1fr;
  border-bottom: 1px solid #f0f0f0;
}
.ngra-req-table__label {
  font-size: 13px;
  font-weight: 700;
  color: #009A59;
  background: #F0FAF5;
  padding: clamp(16px, 1.56vw, 24px) clamp(16px, 1.56vw, 22px);
    padding-top: clamp(16px, 1.56vw, 24px);
  letter-spacing: 0.05em;
  display: flex;
  align-items: flex-start;
  padding-top: clamp(18px, 1.77vw, 26px);
}
.ngra-req-table__value {
  font-size: 14px;
  color: #444;
  line-height: 1.8;
  padding: clamp(16px, 1.56vw, 24px) clamp(20px, 2.08vw, 32px);
}
.ngra-req-table__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ngra-req-table__list li {
  padding-left: 16px;
  position: relative;
}
.ngra-req-table__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #009A59;
}
@media (max-width: 480px) {
  .ngra-req-table__row {
    grid-template-columns: 1fr;
  }
}

/* ----------------------------------------------------------
   4. Encounter section
   ---------------------------------------------------------- */
.ngra-encounter {
  background: linear-gradient(180deg, #f4faf7 0%, #eef7f2 100%);
  padding: clamp(56px, 5.83vw, 96px) clamp(20px, 13.5vw, 260px);
}

.ngra-encounter__inner {
  max-width: 1400px;
  margin: 0 auto;
}

.ngra-encounter__lead {
  font-size: clamp(15px, 1.25vw, 19px);
  color: #333;
  font-weight: 500;
  line-height: 1.8;
  margin-bottom: clamp(24px, 2.6vw, 40px);
}

/* Profile chips grid */
.ngra-encounter__profiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(clamp(200px, 28%, 300px), 1fr));
  gap: clamp(10px, 1.25vw, 16px);
  list-style: none;
  margin-bottom: clamp(32px, 3.65vw, 56px);
}

.ngra-encounter__profile {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #fff;
  border: 1px solid #d0e8db;
  border-radius: 10px;
  padding: clamp(14px, 1.25vw, 20px) clamp(16px, 1.46vw, 22px);
  font-size: 14px;
  color: #333;
  line-height: 1.6;
  font-weight: 500;
  box-shadow: 0 2px 10px rgba(0,154,89,0.05);
  transition: box-shadow 0.2s, transform 0.2s;
}

.ngra-encounter__profile:hover {
  box-shadow: 0 6px 20px rgba(0,154,89,0.12);
  transform: translateY(-2px);
}

.ngra-encounter__profile-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #009A59;
  flex-shrink: 0;
  margin-top: 1px;
  position: relative;
}

.ngra-encounter__profile-icon::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-40%, -55%) rotate(45deg);
  width: 4px;
  height: 8px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
}

/* Message block */
.ngra-encounter__message {
  background: linear-gradient(160deg, #001f10 0%, #003820 45%, #005530 100%);
  border-radius: 16px;
  padding: clamp(40px, 4.69vw, 80px) clamp(40px, 6.25vw, 104px);
  position: relative;
  overflow: hidden;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

/* Large decorative quotation mark */
.ngra-encounter__message::before {
  content: '\201C';
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  font-size: clamp(120px, 16vw, 220px);
  font-weight: 700;
  color: rgba(76,255,160,0.06);
  line-height: 1;
  pointer-events: none;
  font-family: Georgia, serif;
  letter-spacing: -0.05em;
}

/* Subtle dot pattern */
.ngra-encounter__message::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}

.ngra-encounter__message-text {
  font-size: clamp(13px, 1.04vw, 15px);
  color: rgba(255,255,255,1);
  line-height: 1.8;
  letter-spacing: 0.04em;
  position: relative;
  z-index: 1;
  margin-bottom: clamp(20px, 2.08vw, 32px);
}

.ngra-encounter__quote {
  margin: 0;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(10px, 1.04vw, 16px);
  padding-bottom: clamp(24px, 2.6vw, 40px);
  margin-bottom: clamp(24px, 2.6vw, 40px);
}

/* Separator line below quote */
.ngra-encounter__quote::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(40px, 5vw, 64px);
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(76,255,160,0.5), transparent);
}

.ngra-encounter__quote p {
  font-size: clamp(18px, 1.87vw, 28px);
  color: rgba(255,255,255,0.88);
  line-height: 1.8;
  font-weight: 400;
}

.ngra-encounter__quote strong {
  color: #4cffa0;
  font-size: clamp(22px, 2.6vw, 38px);
  font-weight: 700;
  letter-spacing: -0.01em;
  display: inline-block;
}

.ngra-encounter__cta-text {
  font-size: clamp(14px, 1.25vw, 18px);
  font-weight: 700;
  color: rgba(255,255,255,1);
  line-height: 1.6;
  letter-spacing: 0.02em;
  position: relative;
  z-index: 1;
}

/* ----------------------------------------------------------
   6. Requirements
   ---------------------------------------------------------- */
.ngra-requirements {
  background: #F7FAF8;
  padding: clamp(56px, 5.83vw, 96px) clamp(20px, 13.5vw, 260px);
}

.ngra-requirements__inner {
  max-width: 1400px;
  margin: 0 auto;
}

.ngra-req-table {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0,0,0,0.05);
}

.ngra-req-table__row {
  display: grid;
  grid-template-columns: clamp(110px, 11.46vw, 160px) 1fr;
  border-bottom: 1px solid #f0f0f0;
}

.ngra-req-table__row:last-child {
  border-bottom: none;
}

.ngra-req-table__label {
  font-size: 13px;
  font-weight: 700;
  color: #009A59;
  background: #F0FAF5;
  padding: clamp(16px, 1.56vw, 24px) clamp(16px, 1.56vw, 22px);
  letter-spacing: 0.05em;
  display: flex;
  align-items: flex-start;
  padding-top: clamp(18px, 1.77vw, 26px);
}

.ngra-req-table__value {
  font-size: 14px;
  color: #444;
  line-height: 1.8;
  padding: clamp(16px, 1.56vw, 24px) clamp(20px, 2.08vw, 32px);
}

.ngra-req-table__value strong {
  color: #1a1a1a;
  font-weight: 700;
}

.ngra-req-table__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ngra-req-table__list li {
  padding-left: 16px;
  position: relative;
}

.ngra-req-table__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #009A59;
}

.ngra-req-table__note {
  font-size: 12px;
  color: #888;
  margin-top: 4px;
  display: block;
}

/* ----------------------------------------------------------
   5. Salary
   ---------------------------------------------------------- */
.ngra-salary {
  background: #fff;
  /*padding: clamp(56px, 5.83vw, 96px) clamp(20px, 13.5vw, 260px);*/
  padding: clamp(56px, 5.83vw, 96px) 30px;
}

.ngra-salary__inner {
  max-width: 1400px;
  margin: 0 auto;
}

.ngra-salary__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: clamp(16px, 1.87vw, 28px);
  margin-bottom: clamp(32px, 3.65vw, 56px);
}

/* Salary cards */
.ngra-salary-card {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: clamp(20px, 1.87vw, 32px) clamp(22px, 2.08vw, 32px);
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.25vw, 20px);
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}

.ngra-salary-card--main {
  background: linear-gradient(135deg, #002e18 0%, #004d28 50%, #006b38 100%);
  border-color: transparent;
  position: relative;
  overflow: hidden;
}

.ngra-salary-card--main::before {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.07);
  pointer-events: none;
}

.ngra-salary-card__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: #009A59;
}

.ngra-salary-card--main .ngra-salary-card__label {
  color: rgba(255,255,255,0.55);
}

.ngra-salary-card__value {
  display: flex;
  align-items: baseline;
  gap: 4px;
  line-height: 1;
}

.ngra-salary-card__num {
  font-size: clamp(28px, 3.13vw, 46px);
  font-weight: 700;
  color: #FFF;
  letter-spacing: -0.02em;
}

.ngra-salary-card__unit {
  font-size: clamp(14px, 1.25vw, 18px);
  font-weight: 700;
  color: #FFF;
}

.ngra-salary-card__note {
  font-size: 12px;
  color: #FFF;
  line-height: 1.5;
}

/* Salary list */
.ngra-salary-card__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ngra-salary-card__list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid #f0f0f0;
}

.ngra-salary-card__list li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.ngra-salary-card__list-name {
  font-size: 12px;
  color: #555;
  flex: 1;
  line-height: 1.5;
}

.ngra-salary-card__list-amount {
  font-size: clamp(14px, 1.25vw, 18px);
  font-weight: 700;
  color: #009A59;
  white-space: nowrap;
}

.ngra-salary-card__list-amount small {
  font-size: 11px;
  font-weight: 400;
  color: #888;
}

/* Simple list */
.ngra-salary-card__simple-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ngra-salary-card__simple-list li {
  font-size: 14px;
  color: #444;
  padding-left: 16px;
  position: relative;
  line-height: 1.5;
}

.ngra-salary-card__simple-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #009A59;
}

/* Income examples */
.ngra-income-examples {
  background: #F0FAF5;
  border: 1px solid #c8e8d8;
  border-radius: 12px;
  padding: clamp(24px, 2.6vw, 40px) clamp(28px, 3.65vw, 56px);
}

.ngra-income-examples__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: clamp(15px, 1.25vw, 20px);
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: clamp(20px, 2.08vw, 32px);
}

.ngra-income-examples__tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: #fff;
  background: #009A59;
  border-radius: 3px;
  padding: 3px 8px;
}

.ngra-income-examples__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(16px, 1.87vw, 28px);
}

.ngra-income-item {
  background: #fff;
  border-radius: 10px;
  padding: clamp(20px, 1.87vw, 28px) clamp(22px, 2.08vw, 32px);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  border: 1px solid #d8eee3;
}
.ngra-income-item p {
  font-size: 12px;
}
.ngra-income-item--highlight p {
  color: #FFF;
}
.ngra-income-item--highlight {
  background: linear-gradient(135deg, #002e18 0%, #004d28 50%, #006b38 100%);
  border-color: transparent;
}

.ngra-income-item__profile {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ngra-income-item__year {
  font-size: 12px;
  font-weight: 700;
  color: #009A59;
  letter-spacing: 0.05em;
}

.ngra-income-item--highlight .ngra-income-item__year {
  color: #FFF;
}

.ngra-income-item__age {
  font-size: clamp(14px, 1.25vw, 18px);
  font-weight: 700;
  color: #1a1a1a;
}

.ngra-income-item--highlight .ngra-income-item__age {
  color: #fff;
}

.ngra-income-item__amount {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.ngra-income-item__num {
  font-size: clamp(32px, 3.65vw, 52px);
  font-weight: 700;
  color: #009A59;
  letter-spacing: -0.02em;
  line-height: 1;
}

.ngra-income-item--highlight .ngra-income-item__num {
  color: #FFF;
}

.ngra-income-item__unit {
  font-size: clamp(14px, 1.25vw, 18px);
  font-weight: 700;
  color: #009A59;
}

.ngra-income-item--highlight .ngra-income-item__unit {
  color: #FFF;
}

/* ----------------------------------------------------------
   6. Benefits
   ---------------------------------------------------------- */
.ngra-benefits {
  background: #F7FAF8;
  /*padding: clamp(56px, 5.83vw, 96px) clamp(20px, 13.5vw, 260px);*/
  padding: clamp(56px, 5.83vw, 96px) 30px;
}

.ngra-benefits__inner {
  max-width: 1400px;
  margin: 0 auto;
}

.ngra-benefits__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(14px, 1.56vw, 22px);
}

.ngra-benefit-item {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 1.25vw, 18px);
  padding: clamp(20px, 2.08vw, 30px) clamp(18px, 1.87vw, 26px);
  background: #fff;
  border-radius: 10px;
  border: 1px solid #d8eee3;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
  transition: box-shadow 0.2s, transform 0.2s;
}

.ngra-benefit-item:hover {
  box-shadow: 0 6px 24px rgba(0,154,89,0.1);
  transform: translateY(-2px);
}

.ngra-benefit-item__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background-color: #F0FAF5;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 24px 24px;
  border: 1px solid rgba(0,154,89,0.18);
  flex-shrink: 0;
}

.ngra-benefit-item__icon--home {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009A59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9.5L12 3l9 6.5V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z'/%3E%3Crect x='9' y='13' width='6' height='8'/%3E%3C/svg%3E");
}

.ngra-benefit-item__icon--insurance {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009A59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2L3 7v5c0 5.25 3.75 10.15 9 11.5 5.25-1.35 9-6.25 9-11.5V7l-9-5z'/%3E%3Cpolyline points='9 12 11 14 15 10'/%3E%3C/svg%3E");
}

.ngra-benefit-item__icon--study {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009A59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E");
}

.ngra-benefit-item__icon--club {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009A59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v4l3 3'/%3E%3C/svg%3E");
}

.ngra-benefit-item__body {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.ngra-benefit-item__title {
  font-size: clamp(13px, 1.04vw, 15px);
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.4;
}

.ngra-benefit-item__text {
  font-size: 12px;
  color: #777;
  line-height: 1.7;
}

/* ----------------------------------------------------------
   7. Selection flow
   ---------------------------------------------------------- */
.ngra-flow {
  background: linear-gradient(135deg, #002e18 0%, #004d28 55%, #006b38 100%);
  /*padding: clamp(56px, 5.83vw, 96px) clamp(20px, 13.5vw, 260px);*/
  padding: clamp(56px, 5.83vw, 96px) 30px;
  position: relative;
  overflow: hidden;
}

.ngra-flow::before {
  content: '';
  position: absolute;
  top: -80px;
  right: -80px;
  width: clamp(280px, 35vw, 500px);
  height: clamp(280px, 35vw, 500px);
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.04);
  pointer-events: none;
}

.ngra-flow__inner {
  max-width: 1400px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* Horizontal steps (desktop) */
.ngra-flow-steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  position: relative;
}

/* Connecting line */
.ngra-flow-steps::before {
  content: '';
  position: absolute;
  top: clamp(22px, 2.29vw, 32px);
  left: 10%;
  right: 10%;
  height: 2px;
  background: linear-gradient(to right, rgba(76,255,160,0.6), rgba(255,255,255,0.2));
  z-index: 0;
}

.ngra-flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(14px, 1.25vw, 20px);
  padding: 0 clamp(8px, 1.04vw, 16px);
  position: relative;
  z-index: 1;
  text-align: center;
}

.ngra-flow-step__badge {
  width: clamp(44px, 4.58vw, 64px);
  height: clamp(44px, 4.58vw, 64px);
  border-radius: 50%;
  background: #FFF;
  border: 2px solid rgba(76,255,160,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px rgba(76,255,160,0.08);
  transition: background 0.2s;
}

.ngra-flow-step:hover .ngra-flow-step__badge {
  /*background: rgba(76,255,160,0.15);*/
}

.ngra-flow-step__badge--final {
  background: #FFF;
  border-color: #4cffa0;
  box-shadow: 0 0 0 4px rgba(76,255,160,0.12), 0 0 20px rgba(76,255,160,0.2);
}

.ngra-flow-step__badge-n {
  font-size: clamp(14px, 1.46vw, 22px);
  font-weight: 700;
  color: #004725;
  line-height: 1;
}

.ngra-flow-step__badge--final .ngra-flow-step__badge-n {
  font-size: clamp(10px, 1.04vw, 14px);
  letter-spacing: 0.05em;
}

.ngra-flow-step__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ngra-flow-step__title {
  font-size: clamp(13px, 1.04vw, 15px);
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
}

.ngra-flow-step__desc {
  font-size: 12px;
  color: #FFF;
  line-height: 1.7;
}

/* Arrow between steps (on desktop) */
.ngra-flow-step__arrow {
  display: none; /* hidden; line via ::before handles it */
}
.check_img{
  display: inline-block;
}
.match {
  list-style-type: disc;
  padding: 1em 2em;
  background-color: aliceblue;
}
.match li{
  /*background:linear-gradient(transparent 60%, #ff6 60%);*/

}
.namberMark{
  display: block;
}

/* ----------------------------------------------------------
   8. CTA
   ---------------------------------------------------------- */
.ngra-cta {
  background: #fff;
  /*padding: clamp(60px, 6.25vw, 100px) clamp(20px, 13.5vw, 260px);*/
  padding: clamp(60px, 6.25vw, 100px) 30px;
  text-align: center;
}

.ngra-cta__inner {
  max-width: 600px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(14px, 1.25vw, 20px);
}

.ngra-cta__tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3em;
  color: #009A59;
}

.ngra-cta__title {
  font-size: clamp(24px, 2.6vw, 40px);
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.35;
}

.ngra-cta__desc {
  font-size: 14px;
  color: #666;
  line-height: 1.9;
}

.ngra-cta__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  margin-top: 8px;
}

.ngra-cta__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: clamp(13px, 0.94vw, 15px);
  font-weight: 700;
  padding: clamp(16px, 1.46vw, 22px) clamp(24px, 2.08vw, 36px);
  border-radius: 8px;
  text-decoration: none;
  transition: transform 0.15s, box-shadow 0.2s, background 0.2s;
}

.ngra-cta__btn--primary {
  background: #009A59;
  color: #fff;
  box-shadow: 0 6px 24px rgba(0,154,89,0.3);
}

.ngra-cta__btn--primary:hover {
  background: #007a44;
  transform: translateY(-2px);
  box-shadow: 0 10px 36px rgba(0,154,89,0.35);
}

.ngra-cta__btn--secondary {
  background: #F7FAF8;
  color: #1a1a1a;
  border: 1px solid #d0e8db;
}

.ngra-cta__btn--secondary:hover {
  background: #EEF7F2;
  transform: translateY(-2px);
}

.ngra-cta__btn-arrow {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
  flex-shrink: 0;
  position: relative;
}

.ngra-cta__btn-arrow--dark {
  background: rgba(0,154,89,0.1);
}

.ngra-cta__btn-arrow::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 52%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}

.ngra-cta__btn-arrow--dark::after {
  border-color: #009A59;
}

.ngra-cta__sub {
  display: flex;
  gap: clamp(20px, 2.6vw, 40px);
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 4px;
}

.ngra-cta__sub-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #009A59;
  text-decoration: none;
  transition: opacity 0.2s;
}

.ngra-cta__sub-link:hover {
  opacity: 0.75;
}

.ngra-cta__sub-link-arrow {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #F0FAF5;
  border: 1px solid #009A59;
  position: relative;
  flex-shrink: 0;
}

.ngra-cta__sub-link-arrow::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 52%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 5px;
  height: 5px;
  border-top: 1.5px solid #009A59;
  border-right: 1.5px solid #009A59;
}

/* ----------------------------------------------------------
   9. Responsive – 1200px
   ---------------------------------------------------------- */
@media (max-width: 1200px) {
  .ngra-salary__grid {
    grid-template-columns: 1fr 1fr;
  }

  .ngra-salary__grid > .ngra-salary-card--main {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 0 clamp(24px, 3.65vw, 48px);
    align-items: center;
  }

  .ngra-salary-card--main .ngra-salary-card__label {
    grid-column: 1;
    grid-row: 1;
  }

  .ngra-salary-card--main .ngra-salary-card__value {
    grid-column: 1;
    grid-row: 2;
  }

  .ngra-salary-card--main .ngra-salary-card__note {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
  }
}

/* ----------------------------------------------------------
   10. Responsive – 1024px
   ---------------------------------------------------------- */
@media (max-width: 1024px) {
  .ngra-hero__photo {
    width: 44%;
  }

  .ngra-benefits__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ngra-flow-steps {
    grid-template-columns: 1fr;
    gap: clamp(16px, 2.08vw, 28px);
  }

  .ngra-flow-steps::before {
    top: 0;
    bottom: 0;
    left: clamp(22px, 2.29vw, 32px);
    right: auto;
    width: 2px;
    height: auto;
    background: linear-gradient(to bottom, rgba(76,255,160,0.6), rgba(255,255,255,0.1));
  }

  .ngra-flow-step {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
    padding: 0;
  }

  .ngra-flow-step__body {
    padding-top: 6px;
  }
}

/* ----------------------------------------------------------
   11. Responsive – 768px
   ---------------------------------------------------------- */
@media (max-width: 768px) {
  .ngra-hero__photo {
    width: 100%;
  }

  .ngra-hero {
    min-height: auto;
    padding-bottom: 40px;
  }

  .ngra-hero__stats {
    gap: 18px;
    flex-wrap: wrap;
  }

  .ngra-salary__grid {
    grid-template-columns: 1fr;
  }

  .ngra-salary__grid > .ngra-salary-card--main {
    grid-column: auto;
    display: flex;
    flex-direction: column;
  }

  .ngra-income-examples__grid {
    grid-template-columns: 1fr;
  }

  .ngra-req-table__row {
    grid-template-columns: 90px 1fr;
  }

  .ngra-job__card-duties {
    grid-template-columns: 1fr;
  }

  .ngra-cta__sub {
    flex-direction: column;
    gap: 12px;
    align-items: center;
  }
}

/* ----------------------------------------------------------
   12. Responsive – 480px
   ---------------------------------------------------------- */
@media (max-width: 480px) {
  .ngra-hero__actions {
    flex-direction: column;
  }

  .ngra-hero__btn {
    justify-content: space-between;
  }

  .ngra-benefits__grid {
    grid-template-columns: 1fr;
  }

  .ngra-req-table__row {
    grid-template-columns: 1fr;
  }

  .ngra-req-table__label {
    border-bottom: 1px solid #e8e8e8;
    padding-bottom: clamp(8px, 2vw, 12px);
    padding-top: clamp(14px, 4vw, 20px);
  }

  .ngra-req-table__value {
    padding: 10px;
  }

  .ngra-income-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
.ngra-hero__inner {
  padding: 30px;
}
.ngra-job {
  background: #fff;
  padding: 30px 0;
}
.ngra-encounter,
.ngra-requirements,
.ngra-salary,
.ngra-benefits {
  padding: 30px 0;
}
.recruit-appeal {
  padding: 30px 0;
}
.image_text{
  font-size: 13px;
}
.time {
  display: block;
  font-size: 16px;
}
.timeline {
  font-size: 13px;
}
.ngra-hero__stat-num {
  font-size: clamp(32px, 3.65vw, 52px);
}
.ngra-cta {
    padding: 20px;
}
}
