@charset "utf-8";

/* ==========================================================================
SP base / 480px)
   ========================================================================== */
/* 共通・SPの基本指定。タブレット専用の指定はなく、1024pxまではこのスタイルを使用する。 */
/* 親クラスは適用場所・状態の区別に必要な場合のみ付ける（例：補足ボックス内の本文、ホバー時）。 */
/* このページで使用する基本スタイル（environment.css から移植）。 */
.original-gradient {
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
  pointer-events: none;
}

.engineer-strength-cards,
.section-label-diamond,
.engineer-course-list,
.engineer-career-diagram,
.interview-card-wrap {
  position: relative;
  z-index: 3;
}

body {
  overflow-x: hidden;
  margin: 0;
  width: 100%;
  font-family: "NotoSansJP";
  background: #f8f8f8;
  color: #081a00;
}

a { color: inherit; text-decoration: none; }

.header-list-txt { color: #081A00; }

.l-header.is-dark-theme .header-list-txt { color: #fff; }

.br-pc { display: none; }

.br-sp { display: inline; }

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* ファーストビュー */
.l-fv {
  position: relative;
  width: 100%;
  height: 71.88vw;
  overflow: hidden;
}

.fv-bg {
  position: absolute;
  inset: 0;
}

/* pictureも画像枠いっぱいに広げ、PC・SPとも専用画像を表示する。 */
.fv-bg picture {
  display: block;
  width: 100%;
  height: 100%;
}

.fv-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fv-title {
  position: absolute;
  left: 5vw;
  bottom: 10vw;
}

.fv-label {
  display: flex;
  align-items: center;
  gap: 1.67vw;
  margin-bottom: 1.88vw;
}

.fv-label-diamond {
  display: inline-block;
  width: 2.65vw;
  height: 2.65vw;
  background: #00ff6a;
  border-radius: 1px;
  transform: rotate(45deg);
}

.fv-label-txt {
  font-family: "PlusJakartaSans", "Plus Jakarta Sans", sans-serif;
  font-size: 3.54vw;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.48px;
  line-height: 1.4;
}

.fv-heading {
  font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
  font-size: 10vw;
  font-weight: 700;
  color: #fff;
  line-height: 1.38;
  letter-spacing: 1.92px;
  font-feature-settings: "palt" 1;
}

/* 導入文 */
.l-intro {
  position: relative;
  padding: 13.33vw 0vw 0;
  overflow: hidden;
}

/* 装飾パーティクルの位置カスタム記述 */
.intro-particles {
  position: absolute;
  top: -188vw;
  left: -19vw;
  width: 212vw;
  height: 240vw;
  pointer-events: none;
}

.intro-inner {
  position: relative;
  padding: 0 5vw;
}

.intro-heading {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 8.33vw;
  font-weight: 700;
  color: #081a00;
  line-height: 1.48;
  letter-spacing: 3.2px;
  font-feature-settings: "palt" 1;
  margin-bottom: 9.17vw;
  
  position: relative;
  z-index: 4;
}

.intro-body {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 3.33vw;
  font-weight: 500;
  color: #081a00;
  line-height: 1.9;
  text-align: justify;
  letter-spacing: 0.48px;
  margin-bottom: 13.33vw;
}

.intro-scroll-txt {
  width: 100vw;
  margin-left: 0;
  overflow: hidden;
  margin-top: 12.5vw;
  margin-bottom: 4.17vw;
}

.intro-scroll-track {
  display: flex;
  width: max-content;
  animation: infiniteScroll 20s linear infinite;
}

.intro-scroll-track span {
  font-family: "PlusJakartaSans", "Plus Jakarta Sans", sans-serif;
  font-size: 20.83vw;
  font-weight: 600;
  color: #00ff6a;
  letter-spacing: 2.08vw;
  line-height: 1.48;
  white-space: nowrap;
  flex-shrink: 0;
  margin-right: 6.25vw;
}

/* サイドナビ・セクション共通 */
.l-side-nav {
  display: none;
}

.section-label {
  display: flex;
  align-items: center;
  gap: 1.67vw;
  margin-bottom: 3.75vw;
}

.section-label-diamond {
  display: inline-block;
  width: 2.65vw;
  height: 2.65vw;
  background: #00ff6a;
  border-radius: 2px;
  transform: rotate(45deg);
}

.section-label-txt {
  font-family: "PlusJakartaSans", "Plus Jakarta Sans", sans-serif;
  font-size: 3.54vw;
  font-weight: 700;
  color: #081a00;
  letter-spacing: 1.28px;
}

.section-heading {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 9.17vw;
  font-weight: 700;
  color: #081a00;
  line-height: 1.39;
  letter-spacing: 3.52px;
  font-feature-settings: "palt" 1;
  margin-bottom: 8.33vw;
}

.section-desc {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 3.75vw;
  font-weight: 500;
  color: #081a00;
  line-height: 1.9;
  letter-spacing: 0.32px;
  margin-bottom: 12vw;
}

/* エンジニア組織の強み */
.engineer-strengths {
  position: relative;
  padding: 16.67vw 5vw 0;
}

.engineer-strengths::before {
  display: none;
}

.engineer-strength-cards {
  display: flex;
  flex-direction: column;
  gap: 20vw;
}

.engineer-strength-card {
  display: flex;
  flex-direction: column;
  gap: 8.33vw;
}

.engineer-strength-card-img {
  position: relative;
  width: 100vw;
  margin-left: -5vw;
  margin-right: -5vw;
  border-radius: 0;
  overflow: hidden;
}

.engineer-strength-card-img picture {
  display: block;
  width: 100%;
  height: 100%;
}

.engineer-strength-card-img img {
  width: 100%;
  height: auto;
  display: block;
}

.engineer-strength-card-img-accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  background: #00ff6a;
  border-radius: 0;
  z-index: 2;
}

.engineer-strength-card-txt {
  flex: 1;
}

.engineer-strength-card-num {
  font-family: "PlusJakartaSans", "Plus Jakarta Sans", sans-serif;
  font-size: 4.17vw;
  font-weight: 700;
  color: #959595;
  line-height: 1.48;
  display: block;
  margin-bottom: 0;
}

.engineer-strength-card-title {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 6.67vw;
  font-weight: 700;
  color: #081a00;
  line-height: 1.48;
  margin-bottom: 5vw;
}

.engineer-strength-card-body {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 3.33vw;
  font-weight: 500;
  color: #081a00;
  line-height: 2;
}

/* 働く環境 */
.engineer-environment-table {
  position: relative;
  z-index: 3;
  background: #fff;
  border-radius: 0 0 4px 4px;
}

.engineer-environment-table-accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0.83vw;
  background: #00ff6a;
  border-radius: 4px 0 0 4px;
}

.engineer-environment-row {
  position: relative;
  padding: 6.67vw 5.83vw;
}

.engineer-environment-row::after {
  content: "";
  position: absolute;
  left: 5.83vw;
  right: 5.83vw;
  bottom: 0;
  height: 1px;
  background: #eaeaea;
}

.engineer-environment-row:last-child::after {
  display: none;
}

.engineer-environment-row-title {
  font-family: "PlusJakartaSans";
  font-size: 4.17vw;
  font-weight: 700;
  color: #3a3a3a;
  margin-bottom: 3.33vw;
}

.engineer-environment-row-desc {
  font-family: "NotoSansJP";
  font-size: 3.33vw;
  font-weight: 500;
  color: #081a00;
  line-height: 1.8;
  letter-spacing: 0.42px;
}

/* セクションの基本レイアウト */
.engineer-courses {
  padding: 33.33vw 5vw 33.33vw;
  background: #ffffff;
}

.engineer-interview {
  padding: 33.33vw 0vw 33.33vw;
  background: #ffffff;
}

.engineer-career,
.engineer-environment {
  padding: 33.33vw 5vw 33.33vw;
  background: #f8f8f8;
}

.engineer-interview-ttl {
  padding-left: 5vw;
  padding-right: 5vw;
  margin-bottom: 13vw;
}

/* 詳細リンク */
.engineer-more-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.08vw;
  margin: 4.17vw 0 8.33vw;
  padding: 3.33vw;
  background: rgba(196, 196, 196, 0.15);
  border-radius: 4px;
  text-decoration: none;
  color: #081a00;
  transition: background 0.3s ease;
}

.engineer-more-link-txt {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 4.0vw;
  font-weight: 700;
}

.engineer-more-link-arrow {
  width: 3.0vw;
  height: 3.0vw;
  /* リンクの文字色に追従させ、通常時・ホバー時とも同色にする。 */
  fill: currentColor;
}

.engineer-more-link:hover {
  background: #e8e8e8;
}

/* パンくず */
.l-breadcrumb {
  background: #313131;
  padding: 2.08vw 5vw;
  display: flex;
  align-items: center;
  gap: 3.33vw;
}

.breadcrumb-link {
  font-family: "PlusJakartaSans", "Plus Jakarta Sans", sans-serif;
  font-size: 2.92vw;
  font-weight: 500;
  color: #fff;
}

.breadcrumb-sep {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
}

.breadcrumb-current {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 2.92vw;
  font-weight: 400;
  color: #fff;
}

/* interview のカード・操作ボタンを流用 */
.interview-card {
  display: flex;
  flex-direction: column;
  gap: 3.33vw;
  text-decoration: none;
  color: inherit;
}

.interview-card.is-hidden {
  display: none;
}

.interview-interview-head.is-hidden,
.interview-special-head.is-hidden {
  display: none;
}

.interview-card-img {
  position: relative;
  width: 100%;
  height: 44.17vw;
  border-radius: 8px;
  overflow: hidden;
}

.interview-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* リンク画像をホバーで拡大 */
.interview-card-img {
  overflow: hidden;
}

.interview-card-img img {
  transition: transform 0.3s ease;
}

.interview-card:hover .interview-card-img img {
  transform: scale(1.1);
}

.interview-card:hover .interview-card-title {
  color: #00E35F;
  transition: color 0.3s ease;
}

.interview-card-body {
  display: flex;
  flex-direction: column;
  gap: 3.33vw;
  padding: 0 0.83vw;
  flex: 1;
}

.interview-card-title {
  margin: 0;
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 4.17vw;
  font-weight: 500;
  line-height: 1.63;
  color: #000;
}

.interview-card-title-arrow {
  display: none;
  width: 3.33vw;
  height: auto;
  margin-left: 1.25vw;
  vertical-align: middle;
}

.l-interview-special .interview-card-title-arrow {
  display: inline-block;
}

.interview-card-tags {
  margin: 0;
  margin-top: auto;
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 3.33vw;
  font-weight: 500;
  line-height: normal;
  color: #00e35f;
}

.interview-related-ctrl {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2.08vw;
  margin-top: 12vw;
  padding: 0 3.33vw;
}

.interview-related-prev,
.interview-related-next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 11.67vw;
  height: 11.67vw;
  border-radius: 4px;
  background: #081a00;
  cursor: pointer;
  transition: background 0.3s ease;
  border: none;
}

.interview-related-prev svg,
.interview-related-next svg {
  width: 3.33vw;
  height: 3.33vw;
  fill: #fff;
}

.interview-related-prev:hover,
.interview-related-next:hover {
  background: #00ff6a;
}

.interview-related-prev:hover svg,
.interview-related-next:hover svg {
  fill: #081a00;
}

.interview-related-prev svg {
  transform: rotate(180deg);
}

/* 新規ページ固有のレイアウト。色は既存サイトのパレットのみ。 */
.fv-bg::after {
  content: none;
}

/* 用意されたFV画像の構図を中央基準で表示する。 */
.fv-bg img {
  object-position: center;
}

.engineer-fv-space {
  display: none;
}

.intro-body p+p {
  margin-top: 1em;
}

.side-nav-scope section {
  scroll-margin-top: 24px;
}

.engineer-strengths {
  padding-bottom: 33.33vw;
}

.engineer-course {
  border-top: 1px solid #c4c4c4;
}

.engineer-course:last-child {
  border-bottom: 1px solid #c4c4c4;
}

.engineer-course-toggle {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 5vw;
  padding: 7vw 0;
  cursor: pointer;
  list-style: none;
}

.engineer-course-toggle::-webkit-details-marker {
  display: none;
}

.engineer-course-summary {
  min-width: 0;
  display: block;
  margin-left: 5vw;
}

.engineer-course-name {
  display: block;
  font-size: 5vw;
  font-weight: 700;
  line-height: 1.5;
}

.engineer-course-copy {
  display: block;
  margin-top: 2.5vw;
  font-size: 3.33vw;
  line-height: 1.8;
}

.engineer-course-icon {
  margin-left: auto;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  position: relative;
  border: 0;
  border-radius: 50%;
  background: #fff;
}

.engineer-course-icon::before, .engineer-course-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 14px;
  height: 2px;
  background: #081a00;
  transform: translate(-50%, -50%);
}

.engineer-course-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.engineer-course[open] .engineer-course-icon::after {
  transform: translate(-50%, -50%) rotate(180deg);
}

.engineer-course-toggle:hover .engineer-course-icon {
  background: #fff;
}

.engineer-links {
  display: flex;
  flex-direction: column;
  gap: 4vw;
  margin-top: 10vw;
}

.engineer-links .engineer-more-link {
  margin: 0;
}

.engineer-career {
  padding-bottom: 33.33vw;
  background: #3a3a3a;
  color: #fff;
}

.engineer-career .section-heading, .engineer-career .section-label-txt, .engineer-career .section-desc {
  color: #fff;
}

.engineer-career-diagram {
  padding: 5vw;
  font-size: 4.17vw;
  line-height: 1.6;
  font-weight: 700;
}

.engineer-career-step {
  padding: 5vw 3vw;
  border: 0;
  background: #fff;
  color: #081a00;
  text-align: center;
  border-radius: 4px;
}

.engineer-career-base {
  border: 0;
}

.engineer-career-base h3 {
  font-size: 5vw;
  font-weight: 700;
}

.engineer-career-base p {
  margin-top: 2vw;
  font-size: 3.33vw;
  line-height: 1.8;
  font-weight: 500;
}

.engineer-career-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  vertical-align: middle;
  background-color: currentColor;
  -webkit-mask: var(--career-icon) center / contain no-repeat;
  mask: var(--career-icon) center / contain no-repeat;
}

.engineer-career-icon-south {
  --career-icon: url("../../images/newgrads/engineer/south.svg");
}

.engineer-career-icon-range {
  --career-icon: url("../../images/newgrads/engineer/arrow_range.svg");
}

.engineer-career-arrow {
  text-align: center;
  padding: 2vw;
  font-size: 6vw;
  font-weight: 500;
}

.engineer-career-transition {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4vw;
  padding: 4vw 0;
  font-size: 3.75vw;
  font-weight: 500;
}

.engineer-career-domains {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 5vw;
  color: #081a00;
  background: #eaeaea;
  border-radius: 4px;
}

.engineer-career-domain {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  padding: 4vw;
  text-align: center;
  min-width: 0;
  border-radius: 4px;
}

.engineer-career-cross {
  text-align: center;
  line-height: 1.7;
  transform: rotate(90deg);
}

.engineer-career-goals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3vw;
  font-size: 3.75vw;
}

.engineer-environment {
  padding-bottom: 33.33vw;
}

.engineer-environment-row-title {
  white-space: normal;
  line-height: 1.6;
}

.engineer-tech-stack {
  margin-top: 1.5em;
  overflow-wrap: anywhere;
}

.engineer-environment>.engineer-more-link {
  margin-top: 8vw;
  margin-bottom: 0;
}

/* このページ専用CSSのため、カードとSwiperは各クラスを直接指定する。 */
.engineer-interview-swiper-area {
  overflow: hidden;
}

.engineer-interview-swiper {
  overflow: visible;
}

.swiper-slide {
  height: auto;
  min-width: 0;
}

.interview-card {
  height: 100%;
}

.interview-related-ctrl[hidden] {
  display: none;
}

/* JS/CDNが使えない場合も全記事へ移動できる横スクロールを残す。 */
@media screen and (max-width: 1024px) {
  .engineer-interview-swiper:not(.swiper-initialized) {
    overflow-x: auto;
  }

  .engineer-interview-swiper:not(.swiper-initialized) .swiper-wrapper {
    gap: 30px;
  }

  .engineer-interview-swiper:not(.swiper-initialized) .swiper-slide {
    flex: 0 0 76.923%;
  }
}

:is(summary, a, button, [tabindex]):focus-visible {
  outline: 2px solid #081a00;
  outline-offset: 5px;
}

/* 新卒採用の「こんな人におすすめ！」と同じボックス・文字組み */
.engineer-strength-box {
  position: relative;
  z-index: 3;
  background: #fff;
  border-radius: 8px;
  padding: 6vw;
  margin-top: 5vw;
}

.engineer-strength-subtitle {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 3.33vw;
  font-weight: 700;
  color: #444444;
  letter-spacing: .32px;
  margin: 0 0 2.5vw;
}

.engineer-strength-box .engineer-strength-card-body {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 2.92vw;
  font-weight: 500;
  color: #081a00;
  line-height: 1.6;
  letter-spacing: .28px;
}

.engineer-strength-box .engineer-strength-card-body+.engineer-strength-subtitle {
  margin-top: 7vw;
}

/* 募集要項と同じ白ボックス・区切り線・箇条書き */
.engineer-course-content {
  position: relative;
  z-index: 3;
  padding-top: 2vw;
  padding-bottom: 4vw;
  background: #fff;
  border-radius: 4px;
}

.engineer-course-row {
  position: relative;
  padding: 8.33vw 5.83vw;
}

.engineer-course-row::after {
  content: "";
  position: absolute;
  left: 5vw;
  right: 5vw;
  bottom: 0;
  height: 1px;
  background: #eaeaea;
}

.engineer-course-row:last-child::after {
  display: none;
}

.engineer-course-heading {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 4.17vw;
  font-weight: 700;
  color: #081a00;
  line-height: 1.6;
  letter-spacing: 0.32px;
  margin: 0 0 5.55vw;
}

.engineer-course-row p {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 3.33vw;
  font-weight: 500;
  color: #081a00;
  line-height: 1.9;
  letter-spacing: 0.32px;
  margin: 0 0 3.33vw;
}

.engineer-course-row p:last-child {
  margin-bottom: 0;
}

.engineer-course-row>*:last-child {
  margin-bottom: 0;
}

.engineer-course-bullets {
  list-style: none;
  padding: 0;
}

.engineer-course-bullets li {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 3.33vw;
  font-weight: 500;
  color: #081a00;
  line-height: 1.8;
  letter-spacing: 0.32px;
  padding-left: 4.44vw;
  position: relative;
  margin-bottom: 3.3vw;
}

.engineer-course-bullets li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: #00ff6a;
  font-weight: 900;
}

.engineer-course-content {
  margin-bottom: 7vw;
}

.engineer-course-bullets li:last-child {
  margin-bottom: 0;
}

.engineer-course[open].is-closing .engineer-course-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* ENTRY：新卒採用ページ終盤のエントリー・イベント案内（共通・SP）
 * newgrads.cssから移植。矢印はcommon.cssのflyInFromLeftを利用する。
 */
.l-entry {
  position: relative;
  z-index: 3;
  padding: 33.33vw 5vw;
  overflow: hidden;
}

.entry-bg {
  position: absolute;
  inset: 0;
}

.entry-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.entry-inner {
  position: relative;
  z-index: 1;
  text-align: center;
}

.entry-label {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.67vw;
  margin-bottom: 5vw;
}

.entry-label-diamond {
  display: inline-block;
  width: 2.5vw;
  height: 2.5vw;
  background: #00ff6a;
  border-radius: 2px;
  transform: rotate(45deg);
}

.entry-label-txt {
  font-family: "PlusJakartaSans", "Plus Jakarta Sans", sans-serif;
  font-size: 3.33vw;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1.28px;
}

.entry-heading {
  font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
  font-size: 11.67vw;
  font-weight: 800;
  color: #fff;
  line-height: 1.28;
  margin-bottom: 8.33vw;
}

.entry-desc {
  font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
  font-size: 2.92vw;
  font-weight: 500;
  color: #fff;
  line-height: 2;
  letter-spacing: 0.48px;
  margin-bottom: 12.5vw;
}

.entry-cards {
  display: flex;
  flex-direction: column;
  gap: 5vw;
}

.entry-card {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 36.04vw;
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  color: #081a00;
  transition: transform 0.3s ease;
}

.entry-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #00ff6a 0%, #00ffee 100%);
}

.entry-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  z-index: 1;
  opacity: 0;
}

.entry-card-accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  background: #00ff6a;
  border-radius: 8px 0 0 8px;
  z-index: 2;
}

.entry-card-txt {
  position: relative;
  z-index: 2;
  padding-left: 8.33vw;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 4.17vw;
}

.entry-card-en {
  display: block;
  font-family: "PlusJakartaSans", "Plus Jakarta Sans", sans-serif;
  font-size: 2.92vw;
  font-weight: 600;
  color: #00ff6a;
  letter-spacing: 1.12px;
  line-height: 1.1;
  margin-bottom: 0;
  flex-shrink: 0;
}

.entry-card .entry-card-en {
  color: #fff;
}

.entry-card-title {
  display: block;
  font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
  font-size: 6.67vw;
  font-weight: 700;
  color: #081a00;
  line-height: 1.35;
}

.entry-card-btn {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  width: 9.17vw;
  height: 9.17vw;
  background: #081a00;
  border-radius: 8px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.entry-card-btn svg {
  width: 3.13vw;
  height: 3.13vw;
}

.entry-card:hover .entry-card-btn svg {
  animation: flyInFromLeft 0.4s ease forwards;
}

/* ==========================================================================
   PC (min-width: 1025px / 1440px基準)
   ========================================================================== */

/* PC上書きはここに集約。下記の各セクション内で調整する。 */
@media screen and (min-width: 1025px) {
  /* ページ基本・FV・導入・サイドナビ・各セクション */
  .br-pc { display: inline; }

  .br-sp { display: none; }

  .l-fv { height: 36.11vw; }

  .fv-title {
    left: 5.56vw;
    bottom: 11.53vw;
  }

  .fv-label {
    gap: 0.56vw;
    margin-bottom: 0.83vw;
  }

  .fv-label-diamond { width: 0.76vw; height: 0.76vw; }

  .fv-label-txt { font-size: 1.11vw; }

  .fv-heading {
    font-size: 5.56vw;
    letter-spacing: 3.2px;
  }

  .l-intro {
    padding: 8.33vw 0vw 0;
  }

    /* 装飾パーティクルの位置カスタム記述 */
  .intro-particles {
    top: -133vw;
    left: -62vw;
    width: 126vw;
    height: 180vw;
  }

  .intro-inner {
    text-align: center;
  }

  .intro-heading {
    font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
    font-size: 4.44vw;
    line-height: 1.3;
    letter-spacing: normal;
    font-feature-settings: normal;
    margin-bottom: 2.78vw;
  }

  .intro-body {
    font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
    font-size: 1.11vw;
    line-height: 1.7;
    text-align: center;
    letter-spacing: normal;
    margin-bottom: 5.56vw;
  }

   .intro-scroll-txt {
    margin-left: 0;
    width: 100vw;
    margin-top: 4.17vw;
    margin-bottom: 0;
  }

  .intro-scroll-track span {
    font-size: 11.81vw;
    letter-spacing: 1.18vw;
    line-height: normal;
  }

  .side-nav-scope {
    position: relative;
  }

  .l-side-nav {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 8.33vw;
    left: 5.56vw;
    z-index: 100;
    background: rgba(255, 255, 255, 0.8);
    padding: 1.67vw 1.39vw;
    border-radius: 4px;
    gap: 0.56vw;
    width: 12.78vw;

    backdrop-filter: blur(4px);
  }

  .l-side-nav.is-fixed {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
  }

  .l-side-nav.is-bottom {
    position: absolute;
    top: auto;
    bottom: 0;
    transform: none;
  }

  .side-nav-item {
    font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
    font-size: 0.97vw;
    font-weight: 700;
    color: #c4c4c4;
    text-decoration: none;
    line-height: 1.53;
    letter-spacing: 1.12px;
    padding: 0.28vw 0;
    transition: color 0.3s ease;
  }

  .side-nav-item.is-active {
    color: #081a00;
  }

  .side-nav-item.is-active::before {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    background: #00ff6a;
    border-radius: 1px;
    transform: rotate(45deg);
    margin-right: 0.42vw;
    vertical-align: middle;
  }

  .section-label {
    gap: 0.56vw;
    margin-bottom: 0.83vw;
  }

  .section-label-diamond { width: 0.83vw; height: 0.83vw; }

  .section-label-txt { font-size: 1.11vw; }

  .section-heading {
    font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
    font-size: 5vw;
    line-height: 1.32;
    letter-spacing: normal;
    font-feature-settings: normal;
    margin-bottom: 1.67vw;
  }

  .engineer-environment-ttl {
    margin-bottom: 4.7vw;
  }

  .section-desc {
    font-size: 1.11vw;
    margin-bottom: 5.56vw;
  }

  .engineer-strengths {
    padding: 8.33vw 5.56vw 0;
    padding-left: 21.11vw;
  }

  .engineer-strengths::before {
    content: "";
    display: block;
    position: absolute;
    left: -5vw;
    width: 45vw;
    height: 45vw;
    top: -15vw;
    background: url(../../images/environment/bg_diamond.png) no-repeat center / contain;
    pointer-events: none;
    z-index: -1;
  }

  .engineer-strengths .section-label { margin-bottom: 1.67vw; }

  .engineer-strengths .section-heading { margin-bottom: 2.78vw; }

  .engineer-strength-cards {
    margin-top: 5.6vw;
    gap: 8.89vw;
  }

  .engineer-strength-card {
    flex-direction: row;
    gap: 2.78vw;
    align-items: center;
  }

  .engineer-strength-card--right {
    flex-direction: row-reverse;
  }

  .engineer-strength-card-img {
    flex: 0 0 34.44vw;
    width: 34.44vw;
    height: 34.03vw;
    margin-left: 0;
    margin-right: 0;
  }

  .engineer-strength-card-img img {
    height: 100%;
    object-fit: cover;
  }

  .engineer-strength-card-img-accent {
    border-radius: 8px 0 0 8px;
  }

  .engineer-strength-card-txt {
    flex: 1;
  }

  .engineer-strength-card-num { font-size: 1.25vw; margin-bottom: 0.56vw; }

  .engineer-strength-card-title { font-size: 2.78vw; margin-bottom: 1.67vw; }

  .engineer-strength-card-body { font-size: 1.11vw; }

  .engineer-environment-table-accent {
    width: 0.56vw;
  }

  .engineer-environment-row {
    display: flex;
    align-items: center;
    gap: 2.78vw;
    padding: 2.78vw 5vw;
  }

  .engineer-environment-row-title {
    flex: 0 0 16.67vw;
    font-size: 1.39vw;
    text-align: center;
    margin-bottom: 0;
    white-space: normal;
  }

  .engineer-environment-row-desc {
    flex: 1;
    font-size: 0.97vw;
  }

  .engineer-courses,
  .engineer-interview {
    padding: 13.26vw 5.56vw 13.89vw;
    padding-left: 21.11vw;
  }

  .engineer-interview-ttl {
    padding-left: 0vw;
    padding-right: 0vw;
    margin-bottom: 5.56vw;
  }

  :is(.engineer-courses, .engineer-interview) .section-label { margin-bottom: 1.67vw; }

  :is(.engineer-courses, .engineer-interview) .section-heading { margin-bottom: 2.78vw; }

  .engineer-courses .section-desc { margin-bottom: 6.67vw; }

  .engineer-career,
  .engineer-environment {
    padding: 13.89vw 5.56vw 0;
    padding-left: 21.11vw;
  }

  .engineer-career { 
    padding-bottom: 14.44vw; 
  }

  .engineer-more-link {
    width: fit-content;
    margin: 0 auto 13.56vw;
    padding: 1.11vw 2.78vw;
    gap: 0.83vw;
  }

  .engineer-more-link-txt { font-size: 1.32vw; }

  .engineer-more-link-arrow { width: 0.99vw; height: 0.99vw; margin-top: 0.2vw;}

  /* PCのみ、フッターと同じ共通アニメーションで矢印を左から元の位置へ戻す。 */
  .engineer-more-link:hover .engineer-more-link-arrow {
    animation: flyInFromLeft 0.4s ease forwards;
  }

  .l-breadcrumb {
    padding: 0.69vw 5.56vw;
    gap: 1.11vw;
  }

  .breadcrumb-link,
  .breadcrumb-current { font-size: 1.11vw; }

  .header-logo { display: none; }

  .header-logo-alt { display: flex; }

  /* 社員インタビューのカード・操作ボタン */
  .interview-card {
    gap: 1.67vw;
  }

  .interview-card-img {
    height: 20vw;
  }

  .interview-card-body {
    gap: 1.39vw;
    padding: 0 0.28vw;
  }

  .interview-card-title {
    font-size: 1.67vw;
  }

  .interview-card-tags {
    font-size: 1.25vw;
  }

  .interview-related-ctrl {
    margin-top: 2.78vw;
    gap: 0.83vw;
    justify-content: flex-end;
  }

  .interview-related-prev, .interview-related-next {
    width: 3.89vw;
    height: 3.89vw;
  }

  /* ページ固有レイアウト・募集コース・キャリア・社員インタビュー */
  .engineer-fv-space {
    display: inline;
  }

  .intro-inner {
    max-width: 80vw;
    margin: auto;
  }

  .intro-heading {
    max-width: 75vw;
    margin-left: auto;
    margin-right: auto;
  }

  .intro-body {
    max-width: 61vw;
    margin-left: auto;
    margin-right: auto;
  }

  .engineer-strengths {
    padding-bottom: 13.89vw;
  }

  .engineer-course-toggle {
    padding: 2.78vw 0;
    gap: 2.78vw;
    transition: background-color 0.3s ease;
  }

  @media (hover: hover) and (pointer: fine) {
    .engineer-course-toggle:hover {
      background-color: rgba(196, 196, 196, 0.1);
    }
  }

  .engineer-course-summary {
    margin-left: 1.8vw;
  }

  .engineer-course-name {
    font-size: 2.22vw;
  }

  .engineer-course-copy {
    margin-top: .83vw;
    font-size: 1.11vw;
  }

  .engineer-course-icon {
    margin-right: 1.8vw;
    flex-basis: 3.89vw;
    width: 3.89vw;
    height: 3.89vw;
    min-width: 44px;
    min-height: 44px;
  }

  .engineer-links {
    flex-direction: row;
    justify-content: center;
    gap: 2.78vw;
    margin-top: 4.44vw;
  }

  .engineer-career-diagram {
    padding: 2.78vw;
    font-size: 1.39vw;
  }

  .engineer-career-step {
    padding: 2.22vw 1.67vw;
  }

  .engineer-career-base h3 {
    font-size: 1.67vw;
  }

  .engineer-career-base p {
    margin-top: .83vw;
    font-size: 1.11vw;
  }

  .engineer-career-arrow {
    padding: .83vw;
    font-size: 1.67vw;
  }

  .engineer-career-transition {
    gap: 1.39vw;
    padding: 1.39vw 0;
    font-size: 1.11vw;
  }

  .engineer-career-domains {
    display: grid;
    grid-template-columns: 1fr 1.67vw 1fr 1.67vw 1fr;
    padding: 2.22vw 1.67vw;
    align-items: stretch;
  }

  .engineer-career-domain {
    padding: 1.67vw 1.11vw;
    min-height: 7vw;
    font-size: 1.00vw;
  }

  .engineer-career-cross {
    align-self: center;
    transform: none;
  }

  .engineer-career-goals {
    gap: 2.78vw;
    font-size: 1.39vw;
  }

  .engineer-environment {
    padding-bottom: 13.89vw;
  }

  .engineer-environment>.engineer-more-link {
    margin-top: 3.33vw;
  }

  /* PCは横スクロールしない2列。記事数に応じて行が自然に増える。 */
  .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4.44vw 2.78vw;
  }

  .interview-related-ctrl {
    display: none;
  }

  /* 強みの補足ボックス・募集コースの詳細 */
  .engineer-strength-box {
    padding: 3vw 2.0vw;
    margin-top: 2.22vw;
  }

  .engineer-strength-subtitle {
    font-size: 1.11vw;
    margin-bottom: 1.11vw;
  }

  .engineer-strength-box .engineer-strength-card-body {
    font-size: .97vw;
  }

  .engineer-strength-box .engineer-strength-card-body+.engineer-strength-subtitle {
    margin-top: 3vw;
  }

  .engineer-course-content {
    padding-top: 2vw;
    padding-bottom: 2vw;
  }

  .engineer-course-row {
    padding: 4.3vw 5vw;
  }

  .engineer-course-heading {
    font-size: 1.25vw;
    margin-bottom: 2.2vw;
  }

  .engineer-course-row p {
    font-size: 1.11vw;
    margin-bottom: 1.11vw;
  }

  .engineer-course-bullets li {
    font-size: 1.11vw;
    padding-left: 1.83vw;
    margin-bottom: 1.1vw;
  }

  .engineer-course-content {
    margin-bottom: 2.78vw;
  }

  /* ENTRY：新卒採用ページと同じエントリー・イベント案内（PCの配置・サイズ・ホバー） */
  .l-entry {
    padding: 13.82vw 5.56vw 17.15vw;
  }

  .entry-label {
    gap: 0.56vw;
    margin-bottom: 1.67vw;
  }

  .entry-label-diamond { width: 0.83vw; height: 0.83vw; }
  .entry-label-txt { font-size: 1.11vw; }

  .entry-heading {
    font-size: 5vw;
    margin-bottom: 2.78vw;
  }

  .entry-desc {
    font-size: 1.11vw;
    letter-spacing: 1.6px;
    margin-bottom: 6.67vw;
  }

  .entry-cards {
    flex-direction: row;
    gap: 2.78vw;
    justify-content: center;
  }

  .entry-card {
    width: 43.06vw;
    height: 17.22vw;
  }

  .entry-card-txt {
    padding-left: 3.61vw;
    display: block;
  }

  .entry-card-en {
    font-size: 1.25vw;
    letter-spacing: 1.44px;
    margin-bottom: 0.56vw;
  }

  .entry-card-title {
    font-size: 3.06vw;
  }

  .entry-card-btn {
    width: 4.44vw;
    height: 4.44vw;
  }

  .entry-card-btn svg { width: 1.53vw; height: 1.53vw; }

  .entry-card::after {
    opacity: 1;
    transition: opacity 0.4s cubic-bezier(0.33, 1, 0.68, 1);
  }

  .entry-card .entry-card-en { color: #00ff6a; }

  .entry-card:hover::after { opacity: 0; }
  .entry-card:hover .entry-card-en { color: #fff; }
  .entry-card:hover .entry-card-btn svg {
    animation: flyInFromLeft 0.4s ease forwards;
  }
}
