/* ---------------------------------------------
   common.css
   全ページ共通のスタイルをまとめたファイル。

   構成:
     LAYOUT    — ヘッダー・ナビ・セクション・フッター等のレイアウト
     COMPONENT — カルーセル・タイトル・ボタン等の UI コンポーネント
     UTILITY   — 背景色・テキスト色等のユーティリティクラス
     レスポンシブ — 1024px / 640px のメディアクエリ

   読み込み順: base.css → common.css → 各ページ固有の CSS
   ---------------------------------------------  */


/* ========================================
   LAYOUT
   ======================================== */

/*--------------- HEADER ---------------*/

/* NEC テンプレートの JS が is-fixed を付与する前から固定させ、ページ遷移時のブレを防ぐ */
.site-header-03 > .inner {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.l-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 134px;
  background: var(--white);
  z-index: 100;
}

.l-header-top-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background-image: radial-gradient(circle at 100% 100%, #a0d8ad 0, #65b3a4 10%, #50919b 20%, #2f5b8e 35%, #183384 45%, #091a7e 60%, #04127c 65%);
}

.l-header-white {
  position: absolute;
  top: 6px;
  left: 0;
  right: 0;
  /* height: 84px; */
  background: var(--white);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding:19px 0 12px 24px;
}

.l-header-logo {
  display: flex;
  align-items: center;
  gap: 0;
}

.l-header-logo__tagline {
  height: 14px;
  width: auto;
  margin-left: 8px;
}

.l-header-site-name {
  font-size: 14px;
  font-weight: 500;
  color: #000;
  margin-top: 19px;
  line-height: 1.2;
}

.l-header-nav {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 43px;
  background: var(--nec-blue);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: var(--side-pad);
}

.l-header-nav__list {
  display: flex;
  align-items: stretch;
  gap: 27px;
}

.l-header-nav__item {
  position: relative;
  display: flex;
  align-items: center;
  cursor: default;
}

.l-header-nav__item.is-current > .l-header-nav__link {
  text-decoration: underline;
  text-decoration-color: #fff;
  text-decoration-thickness: 1px;
  text-underline-offset: 8px;
}

.l-header-nav__item.is-current:has(.l-header-nav__entry) > .l-header-nav__link {
  text-decoration: none;
}

.l-header-nav__item:has(.l-header-nav__link) .l-header-nav__link {
  transition: opacity 0.2s;
}
.l-header-nav__item:has(.l-header-nav__link):hover .l-header-nav__link {
  opacity: 0.7;
}

.l-header-nav__item a {
  line-height: 1;
  display: flex;
  align-items: center;
}

.l-header-nav__link {
  font-weight: 600;
  font-size: 14px;
  color: var(--white);
  line-height: 1;
  white-space: nowrap;
}

.l-header-nav__home-icon {
  width: 18px;
  height: 18px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 10px;
  filter: brightness(0) invert(1);
}

.l-header-nav__item:has(.l-header-nav__dropdown) .l-header-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.l-header-nav__item:has(.l-header-nav__dropdown) .l-header-nav__link::after {
  content: '';
  display: block;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-1px) rotate(45deg);
  transition: transform 0.2s;
  flex-shrink: 0;
}
.l-header-nav__item:has(.l-header-nav__dropdown):hover .l-header-nav__link::after,
.l-header-nav__item:has(.l-header-nav__dropdown):focus-within .l-header-nav__link::after {
  transform: translateY(1px) rotate(45deg);
}

.l-header-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 180px;
  background: var(--white);
  border-radius: 8px;
  list-style: none;
  padding: 8px 0;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  z-index: 200;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
}

.l-header-nav__item:hover .l-header-nav__dropdown,
.l-header-nav__item:focus-within .l-header-nav__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s;
}

.l-header-nav__dropdown li a {
  display: block;
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 600;
  color: var(--black);
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s;
}

.l-header-nav__dropdown li a:hover {
  background: #eff2f6;
}

.l-header-nav__entry {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  color: var(--nec-blue);
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  border-radius: 500px;
  padding: 5px 20px;
  height: 30px;
  white-space: nowrap;
  border: 1.5px solid var(--white);
  cursor: default;
  transition: background 0.25s, color 0.25s, letter-spacing 0.4s ease;
}
.l-header-nav__item:hover .l-header-nav__entry {
  background: var(--nec-blue);
  color: var(--white);
  letter-spacing: 0.05em;
}

.l-header-nav__dropdown--entry {
  left: auto;
  right: 0;
  transform: translateY(6px);
}
.l-header-nav__item:hover .l-header-nav__dropdown--entry {
  transform: translateY(0);
}

main {
  padding-top: 127px;
}

/*--------------- HERO ---------------*/

.l-hero {
  background: var(--white);
  padding-top: 64px;
  padding-bottom: 32px;
}

.l-hero__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding-left: 70px;
  padding-right: 70px;
}

.l-hero__category {
  font-weight: 600;
  font-size: 16px;
  color: var(--black);
  line-height: 1.2;
  margin-bottom: 8px;
}

.l-hero__title {
  font-weight: 600;
  font-size: 48px;
  color: var(--black);
  line-height: 1.2;
  margin: 0 0 16px;
}

.l-hero__desc {
  font-weight: 600;
  font-size: 16px;
  color: var(--black);
  line-height: 1.6;
  max-width: 1300px;
}

/*--------------- SECTION ---------------*/

.l-section{
  padding: 76px 0;
}

.l-section__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--side-pad);
}

.l-section__content--row{
  display: flex;
  justify-content: space-between;
  gap: 30px;
}

.l-section__content--col{
  flex: 1;
}

/*--------------- ページ下部採用メッセージ ---------------*/

.future-together {
  position: relative;
  /* padding: 120px 30px 180px; */
  padding: 120px 0 0;
  overflow: hidden;
}

.future-together::before {
  content: '';
  position: absolute;
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: calc(40px + 40px);
  background-color: #535a6e;
  z-index: 0;
}

.future-together__inner{
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: repeat(2, auto);
    row-gap: 44.8px;
    /* min-height: 452px; */
    min-height: 350px;
    /* border-radius: 300px; */
    background-color: var(--white);
    background-image: linear-gradient(to bottom, #535a6e 0%, #535a6e 100%);
    background-size: 2px 20%;
    background-position: center top;
    background-repeat: no-repeat;
    padding: 0 30px;
}

.future-together__text {
  text-align: center;
}

.future-together__heading {
    margin-bottom: 16px;
    grid-area: 1 / 1 / 2 / 2;
    color: var(--nec-blue);
    align-self: end;
    text-align: center;
    font-weight: 600;
    font-size: 40px;
    line-height: 1.2;
}

.future-together__sub {
    grid-area: 2 / 1 / 3 / 2;
    justify-self: center;
    text-align: center;
    /* font-weight: 600; */
    font-size: 24px;
    line-height: 1.5;
    margin-top: -30px;
}

.future-together__circles {
    order: -1;
    grid-area: 1 / 1 / 3 / 2;
    display: grid;
    grid-template-columns: repeat(2, auto);
    grid-template-rows: repeat(2, auto);
}
.future-together__circle-wrap:nth-child(2),
.future-together__circle-wrap:nth-child(3){
    width: 235px;
}

.future-together__circle-wrap {
  width: 300px;
  height: 240px;
}

.future-together__circle-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}

.future-together__circle-wrap--tl {
    align-self: start;
    justify-self: start;
    margin-block-start: -112px;
    margin-inline-start: -48px;
}

.future-together__circle-wrap--tr {
    align-self: start;
    justify-self: end;
    margin-block-start: -112px;
    margin-inline-end: 0px;
}

.future-together__circle-wrap--bl {
    align-self: end;
    justify-self: start;
    margin-block-end: -96px;
    margin-inline-start: -48px;
}

.future-together__circle-wrap--br {
    align-self: end;
    justify-self: end;
    margin-block-end: -80px;
    margin-inline-end: -64px;
}

/*--------------- ENTRY (CTA) ---------------*/

.entry-section {
  position: relative;
  height: 405px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gray-bg);
}

.entry-section::before {
  content: '';
  position: absolute;
  inset: 30px 0;
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.6)  0, rgba(255, 255, 255, 0.6)  1px, transparent 1px, transparent 20px),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.6)  0, rgba(255, 255, 255, 0.6)  1px, transparent 1px, transparent 20px);
  pointer-events: none;
}

.entry-section__content {
  position: relative;
  z-index: 1;
  width: 900px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.entry-section__title {
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 600;
  font-size: 60px;
  color: var(--black);
  text-align: center;
  line-height: 1;
}

.entry-section__subtitle {
  font-weight: 600;
  font-size: 18px;
  color: var(--black);
  text-align: center;
  line-height: 1.6;
}

.entry-section__buttons {
  display: flex;
  gap: 24px;
  justify-content: center;
  flex-wrap: wrap;
}

.entry-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: var(--nec-blue);
  color: var(--white);
  font-weight: 600;
  font-size: 20px;
  border-radius: 100px;
  width: 320px;
  height: 70px;
  padding: 0 22px;
  border: 2px solid var(--nec-blue);
  transition: background 0.25s, color 0.25s, letter-spacing 0.4s ease;
}

.entry-btn:hover {
  background: var(--white);
  color: var(--nec-blue);
  letter-spacing: 0.05em;
}

.entry-btn:hover .entry-btn__arrow {
  --fill-0: var(--nec-blue);
  --stroke-0: white;
}

.entry-btn__arrow {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}

.entry-section__links {
  display: flex;
  gap: 32px;
  align-items: center;
  justify-content: center;
}

.entry-link {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 16px;
  color: var(--black);
  transition: opacity 0.2s;
}

.entry-section__newgrad,
.entry-section__career {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.entry-section__desc {
  font-size: 14px;
  text-align: center;
}

.entry-section__links .entry-link {
  justify-content: center;
  gap: 15px;
  color: var(--nec-blue);
}

.entry-link:hover {
  opacity: 0.6;
}

.entry-link img {
  width: 14px;
  height: 14px;
}

/*--------------- Floating Entry Button ---------------*/

.floating-entry-bg {
  position: fixed;
  bottom: 64px;
  right: 0;
  width: 206px;
  height: 172px;
  background: #eff2f6;
  border-radius: 100px 0 0 100px;
  z-index: 198;
  pointer-events: none;
}

.floating-entry {
  position: fixed;
  bottom: 70px;
  right: 40px;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 200;
  text-decoration: none;
  transition: box-shadow 0.3s, letter-spacing 0.4s ease, opacity 0.3s;
}

.floating-entry.is-hidden,
.floating-entry-bg.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.floating-entry:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  letter-spacing: 0.05em;
}

.floating-entry__ring {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* animation: floating-ring-rotate 10s linear infinite; */
}
.floating-entry__ring text {
  color: var(--nec-blue);
}

@keyframes floating-ring-rotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.floating-entry__center {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.floating-entry__year {
  font-style: italic;
  font-size: 36px;
  color: var(--nec-blue);
  line-height: 1;
}

.floating-entry__label {
  font-style: italic;
  font-size: 28px;
  color: var(--nec-blue);
  line-height: 1;
}

.floating-entry__arrow {
  width: 72px;
  margin-top: 6px;
}

.floating-entry__arrow-line {
  width: 100%;
  height: 1.5px;
  background: var(--nec-blue);
  position: relative;
}

.floating-entry__arrow-line::after {
  content: '';
  position: absolute;
  right: -1px;
  top: -4px;
  width: 8px;
  height: 8px;
  border-top: 1.5px solid var(--nec-blue);
  border-right: 1.5px solid var(--nec-blue);
  transform: rotate(45deg);
}

/*--------------- FOOTER ---------------*/

.l-footer {
  background: var(--gray-9);
  position: relative;
}

.l-footer__breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 1290px;
  margin: 0 auto;
  padding: 40px 30px 8px;
}

.l-footer__bc-link,
.l-footer__bc-current {
  font-weight: 500;
  font-size: 14px;
  color: var(--black);
  line-height: 1.2;
}

.l-footer__bc-arrow {
  width: 6px;
  height: 10px;
}

.l-footer__inner{
  margin: 0 auto;
  padding: 80px 30px;
  max-width: 1290px;
}

.l-footer__main {
  display: flex;
  gap: 60px;
}

.l-footer__nav {
  display: flex;
  gap: 50px;
  flex: 1;
}

.l-footer__nav-group {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.l-footer__nav-head {
  font-weight: 600;
  font-size: 16px;
  color: var(--white);
  line-height: 1.2;
  margin-bottom: 16px;
}

.l-footer ul{
    list-style: none;
}

.l-footer__nav-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.l-footer__nav-list a {
  font-weight: normal;
  font-size: 14px;
  color: var(--white);
  line-height: 1.2;
  transition: opacity 0.2s;
}

.l-footer__nav-list a:hover {
  opacity: 0.8;
}

.l-footer__entry-links {
  flex-shrink: 0;
}

.l-footer__entry-head {
  font-weight: 600;
  font-size: 16px;
  color: var(--white);
  line-height: 1.2;
  margin-bottom: 16px;
}

.l-footer__entry-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 20px;
}

.l-footer__entry-list a {
  font-weight: 600;
  font-size: 16px;
  color: var(--white);
  line-height: 2;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: opacity 0.2s;
}

.l-footer__entry-list a img {
  width: 6px;
  height: 10px;
  flex-shrink: 0;
  filter: brightness(0) invert(1);
}

.l-footer__entry-list a:hover {
  opacity: 0.8;
}

.l-footer__corporate-link {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: var(--white);
  line-height: 2;
}

.l-footer__corporate-link img {
  width: 6px;
  height: 10px;
  filter: brightness(0) invert(1);
}

.l-footer__copyright {
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 12px;
  color: var(--white);
  line-height: 2;
}

/* ========================================
   ハンバーガーボタン
   ======================================== */
.l-hamburger {
  display: none;
  position: absolute;
  right: 16px;
  top: 80px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  background: #286ebe;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}

.l-hamburger__bar {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--nec-blue);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.l-hamburger.is-open .l-hamburger__bar {
  border-radius: 0;
}
.l-hamburger.is-open .l-hamburger__bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.l-hamburger.is-open .l-hamburger__bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.l-hamburger.is-open .l-hamburger__bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ========================================
   SP ナビゲーション オーバーレイ
   ======================================== */
.l-sp-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--white);
  z-index: 1001;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.l-sp-nav.is-open {
  transform: translateX(0);
}

.l-sp-nav__body {
  padding: calc(var(--header-h, 73px) + 56px) 20px 48px;
}

/* 採用サイトTOP */
.l-sp-nav__top-link {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  font-size: 16px;
  color: #000;
  text-decoration: none;
  padding: 0 4px;
  margin-bottom: 20px;
}
.l-sp-nav__home-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.l-sp-nav__top-link svg {
  width: 8px;
  height: 14px;
  color: var(--nec-blue);
  margin-left: auto;
  flex-shrink: 0;
}

/* エントリーボタン */
.l-sp-nav__entries {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.l-sp-nav__entry-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 58px;
  background: var(--nec-blue);
  color: var(--white);
  font-weight: 600;
  font-size: 18px;
  border-radius: 100px;
  text-decoration: none;
  padding: 0 24px;
}

.l-sp-nav__entry-btn svg {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 14px;
}

/* アコーディオンメニュー */
.l-sp-nav__menu {
  display: flex;
  flex-direction: column;
}

.l-sp-nav__divider {
  border: none;
  border-top: 1px solid #e0e0e0;
  margin: 0;
}

.l-sp-nav__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 18px 4px;
  background: none;
  border: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 16px;
  color: #000;
  text-align: left;
}

.l-sp-nav__head-icon {
  position: relative;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.l-sp-nav__head-icon::before,
.l-sp-nav__head-icon::after {
  content: '';
  position: absolute;
  background: var(--nec-blue);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.l-sp-nav__head-icon::before {
  width: 2px;
  height: 14px;
  top: 0;
  left: 6px;
}

.l-sp-nav__head-icon::after {
  width: 14px;
  height: 2px;
  top: 6px;
  left: 0;
}

.l-sp-nav__head[aria-expanded="true"] .l-sp-nav__head-icon::before {
  opacity: 0;
  transform: rotate(90deg);
}

/* サブメニュー（アコーディオン） */
.l-sp-nav__sub {
  list-style: none;
  overflow: hidden;
  max-height: 0;
  padding: 0;
  margin: 0;
  transition: max-height 0.3s ease;
}

.l-sp-nav__section.is-open .l-sp-nav__sub {
  max-height: 400px;
}

.l-sp-nav__sub li {
  padding-bottom: 4px;
}

.l-sp-nav__sub li:first-child {
  padding-top: 4px;
}

.l-sp-nav__sub li:last-child {
  padding-bottom: 16px;
}

.l-sp-nav__sub a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 4px;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  line-height: 2;
}

.l-sp-nav__sub-child {
  font-size: 14px !important;
  padding-left: 20px !important;
}

.l-sp-nav__sub li:has(+ li > .l-sp-nav__sub-child) {
  padding-bottom: 0;
}

.l-sp-nav__sub li:has(.l-sp-nav__sub-child) {
  padding-bottom: 0;
}

.l-sp-nav__bullet {
  display: block;
  width: 10px;
  height: 1px;
  background: #000;
  flex-shrink: 0;
}

.l-sp-nav__external {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 4px 0;
  font-weight: 600;
  font-size: 14px;
  color: #000;
  text-decoration: none;
}

.l-sp-nav__external svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--nec-blue);
}

/* PC ドロップダウン内の外部リンク */
.l-header-nav__ext-link {
  display: flex !important;
  align-items: center;
  gap: 6px;
}
.l-header-nav__ext-link svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: currentColor;
}

/* SP ナビ サブメニュー内の外部リンクアイコン */
.l-sp-nav__sub-external-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-left: auto;
  color: var(--nec-blue);
}

/* ========================================
   COMPONENT
   ======================================== */

.c-title__wrapper {
  display: flex;
  align-items: flex-end;
  gap: 46px;
  margin-bottom: 44px;
}

.c-title__wrapper--row {
  margin-bottom: 40px;
}

.c-title {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}

.c-title__wrapper--row .c-title {
  margin-bottom: 24px;
}

.c-label {
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-style: italic;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.2;
  color: var(--nec-blue);
  margin-bottom: 5px;
}

.c-heading {
  font-weight: 600;
  line-height: 1.2;
}

.c-desc {
  font-weight: 600;
  color: var(--black);
  line-height: 1.6;
  flex: 1;
}

.c-intro__inner {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--side-pad);
  display: flex;
  flex-direction: column;
}

.c-intro__heading {
  font-size: 32px;
  font-weight: 600;
  color: var(--black);
  line-height: 1.3;
  margin-bottom: 16px;
}

.c-intro__row {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}

.c-intro__img-wrap {
  flex: 1;
  min-width: 0;
}

.c-intro__img {
  width: 100%;
  display: block;
  border-radius: 20px;
  object-fit: cover;
}

.c-intro__text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.6em;
}

.c-intro__text p {
  font-size: 20px;
  font-weight: 600;
  color: var(--black);
  line-height: 1.6;
}

.c-section-title {
  font-size: 26px;
  line-height: 1.4;
}

/*-------- アイコンカード ---------*/
.c-icon-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  align-items: start;
}

.c-icon-card {
  flex: 1;
  min-width: 0;
  background: var(--white);
  border: 1px solid #a7afc1;
  border-radius: 10px;
  min-height: 300px;
  padding: 32px 16px 24px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.c-icon-card:hover {
  border-color: var(--nec-blue);
  box-shadow: 0 4px 16px rgba(4, 18, 124, 0.12);
}

.c-icon-card__icon-wrap {
  width: 200px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.c-icon-card__icon {
  font-weight: 600;
  font-size: 20px;
  color: var(--white);
}

.c-icon-card__title {
  font-weight: 600;
  font-size: 18px;
  line-height: 1.4;
  color: var(--black);
  text-align: center;
}

.c-icon-card__add {
  font-size: 16px;
  font-weight: 500;
}

.c-ellipse__img-wrap{
  aspect-ratio: 534 / 403;
  overflow: hidden;
  border-radius: 0 1000px 1000px 0;
}

.c-ellipse__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/*-------- モーダルウィンドウ ---------*/
.c-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.c-modal[hidden] {
  display: none;
}

.c-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
}

.c-modal__container {
  position: relative;
  z-index: 1;
  background: var(--white);
  border-radius: 8px;
  width: 100%;
  max-width: 660px;
  max-height: calc(100dvh - 32px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.c-modal__header {
  display: flex;
  justify-content: flex-end;
  padding: 24px 24px 0;
  flex-shrink: 0;
}

.c-modal__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: none;
  cursor: pointer;
  color: var(--black);
  border-radius: 50%;
  transition: background 0.2s;
  -webkit-tap-highlight-color: transparent;
}

.c-modal__close:focus:not(:focus-visible) {
  outline: none;
}

.c-modal__close:hover {
  background: rgba(4, 18, 124, 0.08);
}

.c-modal__body {
  overflow-y: auto;
  padding: 0 32px 40px;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.c-modal__title {
  font-weight: 600;
  font-size: 24px;
  line-height: 1.4;
  color: var(--black);
  margin-bottom: 16px;
}

.c-modal__title span{
  font-weight: 500;
  font-size: 18px;
}

.c-modal__subtitle{
  font-weight: 700;
  color: var(--nec-blue);
}

.c-modal__text {
  font-weight: 500;
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 24px;
}

.c-modal__detail{
  font-size: 12px;
}

.c-modal__img-wrap {
  border-radius: 8px;
  overflow: hidden;
}

.c-modal__img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

/*-------- アンカーナビ ---------*/
.anchor-nav{
  padding: 0 var(--side-pad);
}

.anchor-nav__list {
  max-width: 1140px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--nec-blue);
}

.anchor-nav__item {
  flex: 1;
}

.anchor-nav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 12px;
  font-weight: 500;
  font-size: 20px;
  transition: opacity 0.2s;
  white-space: nowrap;
}

.anchor-nav__link:hover {
  opacity: 0.7;
}

.anchor-nav__icon {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  color: var(--nec-blue);
}

.anchor-nav__link svg {
  color: var(--nec-blue);
  flex-shrink: 0;
}

/*-------- インタビューカルーセル ---------*/
.js-interview-swiper {
  padding-bottom: 48px;
}

.swiper-slide {
  width: 280px;
  background: #fff;
  overflow: hidden;
}

.slide-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* 写真エリア */
.slide-img-wrap {
  overflow: hidden;
  border-radius: 20px;
  position: relative;
}

.slide-img-wrap::after {
  content: '';
  position: absolute;
  inset: 5px;
  border: 1.5px solid #fff;
  border-radius: 20px;
  pointer-events: none;
  z-index: 1;
}

.slide-img {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 20px;
  object-fit: cover;
  object-position: top;
  display: block;
  transition: transform 0.4s ease;
}

.swiper-slide:hover .slide-img {
  transform: scale(1.1);
}

/* テキストエリア */
.slide-body {
  padding: 16px 8px 24px;
}

.slide-catch {
  font-size: 20px;
  font-weight: 600;
  color: var(--black);
  line-height: 1.6;
  margin-bottom: 12px;
}

.slide-meta {
  font-size: 14px;
  color: var(--black);
  line-height: 1.8;
}

.slide-name {
  font-size: 16px;
  font-weight: 600;
  color: var(--black);
  margin-top: 4px;
}

/* 左右のぼかし */
.js-interview-swiper::before,
.js-interview-swiper::after {
  content: '';
  position: absolute;
  top: 0;
  width: 130px;
  height: 100%;
  pointer-events: none;
  z-index: 10;
  transition: opacity 0.3s ease;
}

.js-interview-swiper::before {
  left: 0;
  background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
  opacity: 0;
}

.js-interview-swiper::after {
  right: 0;
  background: linear-gradient(to left, #fff, rgba(255, 255, 255, 0));
  opacity: 1;
}

.js-interview-swiper.is-beginning::before { opacity: 0; }
.js-interview-swiper:not(.is-beginning)::before { opacity: 1; }
.js-interview-swiper.is-end::after { opacity: 0; }

/* ナビゲーション矢印ボタン */
.swiper-button-next,
.swiper-button-prev {
  width: 48px;
  height: 48px;
  background: #fff;
  border: solid 1.5px var(--nec-blue);
  border-radius: 50%;
  box-shadow: 0 2px 12px rgba(0,0,0,0.15);
  top: 38%;
  z-index: 20;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  font-size: 16px;
  color: var(--nec-blue);
  font-weight: 600;
}

.swiper-button-prev { left: 12px; }
.swiper-button-next { right: 12px; }

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled { visibility: hidden; }

/* ページネーション（ドット） */
.swiper-pagination {
  bottom: 12px;
  text-align: right;
  padding-left: 48px;
  z-index: 20;
}

.swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  border: solid 1.5px var(--nec-blue);
  background: #fff;
  opacity: 1;
}

.swiper-pagination-bullet-active {
  background: var(--nec-blue);
}

/* 「一覧を見る」ボタン */
.btn-wrap {
  text-align: right;
  padding: 24px 0 0 48px;
}

.btn-list {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #fff;
  color: var(--nec-blue);
  font-size: 16px;
  font-weight: 600;
  padding: 12px 16px;
  width: 244px;
  border-radius: 999px;
  text-decoration: none;
  border: 2px solid var(--nec-blue);
  transition: background 0.25s, color 0.25s, letter-spacing 0.4s ease;
}

.btn-list:hover {
  background: var(--nec-blue);
  color: var(--white);
  letter-spacing: 0.05em;
}

.btn-list .arrow {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

/*-------- 動画再生ボタン・モーダル --------*/
.intro__play-btn {
  width: 62px;
  height: 62px;
  display: block;
  margin: 0 auto;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.intro__play-circle {
  transition: fill-opacity 0.25s ease;
}

.intro__play-btn:hover .intro__play-circle {
  fill-opacity: 0.8;
}

.video-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: flex;
  align-items: center;
  justify-content: center;
}

.video-modal[hidden] {
  display: none;
}

.video-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
}

.video-modal__content {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 960px;
}

.video-modal__close {
  position: absolute;
  top: -48px;
  right: 0;
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  line-height: 0;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.video-modal__close:hover {
  opacity: 1;
}

.video-modal__player {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  background: #000;
}

.video-modal__player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}


/* ========================================
   UTILITY
   ======================================== */

.u-bg--gray {
  background: var(--gray-bg);
}

.u-bg--blue {
  background: var(--nec-blue);
}

.u-text--white {
  color: var(--white);
}

.u-text--blue {
  color: var(--nec-blue);
}

.u-text--dark {
  color: var(--black);
}

.u-text--small {
  font-size: 12px;
  line-height: 1.6;
}

.u-pb-0 {
  padding-bottom: 0;
}

@media (max-width: 790px) {
  .u-for-pc{
    display: none;
  }
}

@media (min-width: 641px) {
  .u-for-sp {
    display: none;
  }
}



/* ========================================
   レスポンシブ 1024px
   ======================================== */
@media (max-width: 1024px) {

  /* Section row → 縦並び */
  .l-section__content--row { flex-direction: column; }

  /* Hero */
  .l-hero { padding-top: 48px; padding-bottom: 24px; }
  .l-hero__title { font-size: 28px; margin-bottom: 24px; }
  .l-hero__desc { font-size: 14px; }

  /* Section */
  .l-section { padding: 40px 0; }
  .l-section__inner { padding: 0 16px; max-width: 790px; }
  .l-hero__inner { padding-left: 16px; padding-right: 16px; max-width: 790px; }

  .c-desc { font-size: 14px; }
  .c-intro__heading { font-size: 24px;}
  .c-intro__row { flex-direction: column; }
  .c-intro__text p { font-size: 16px; }

  .c-section-title {
    font-size: 20px;
    line-height: 1.3;
  }

  /* c-icon-card */
  .c-icon-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .c-icon-card {
    min-height: 226px;
    padding: 24px 8px 16px;
    gap: 12px;
  }

  .c-icon-card__icon-wrap {
    width: 120px;
  }

  .c-icon-card__icon {
    font-size: 14px;
  }

  .c-icon-card__title {
    font-size: 15px;
  }

  .c-icon-card__add {
    font-size: 10px;
  }

  /* interview */
  .js-interview-swiper {
    padding-bottom: 24px;
  }
  .slide-catch{
    font-size: 18px;
    line-height: 1.3;
  }

  .slide-name{
    font-size: 14px;
  }

  .btn-list{
    padding: 8px 20px;
    width: 224px;
    font-size: 13px;
  }
  /* アンカーナビ */
  .anchor-nav{
    max-width: 790px;
    margin: 0 auto;
  }

  .anchor-nav__list {
    flex-direction: column;
    align-items: stretch;
    border-bottom: none;
  }

  .anchor-nav__item {
    border-bottom: 1px solid var(--nec-blue);
  }

  .anchor-nav__link {
    justify-content: space-between;
    padding: 16px 0;
    font-size: 16px;
    white-space: normal;
  }

  .anchor-nav__link::before {
    content: '';
    width: 26px;
    flex-shrink: 0;
  }
  /* modal */
  .c-modal__title{
    font-size: 20px;
  }
  .c-modal__text{
    font-size: 14px;;
  }

  /* Entry */
  .entry-section { height: auto; padding: 48px var(--side-pad); }
  .entry-section__content { width: 100%; }
  .entry-section__title { font-size: 40px; }
  .entry-section__subtitle { font-size: 14px; }
  .entry-section__buttons { flex-direction: column; align-items: center; }
  .entry-btn { width: 100%; max-width: 320px; height: 56px; font-size: 16px; }
  /* 新卒・キャリアのラッパー幅を揃え、ボタン幅を同一(≤320px)にする */
  .entry-section__newgrad,
  .entry-section__career { width: 100%; max-width: 320px; }
  .entry-section__links { flex-direction: column; gap: 16px; }

  /* Future Together */
  /* .future-together { padding: 80px 0; } */
  .future-together::before { height: 80px; top: 0; }
  .future-together__inner {
    /* min-height: 280px; */
    /* max-width: calc(100vw - 220px); */
    /* margin-block-start: 0; */
  }
  .future-together__circle-wrap,
  .future-together__circle-wrap:nth-child(2),
  .future-together__circle-wrap:nth-child(3) {
    width: 170px;
    height: 140px;
  }
  .future-together__circle-wrap--tl { margin-block-start: -64px; margin-inline-start: -64px; }
  .future-together__circle-wrap--tr { margin-block-start: -64px; margin-inline-end: -64px; }
  .future-together__circle-wrap--bl { margin-block-end: -64px; margin-inline-start: -64px; }
  .future-together__circle-wrap--br { margin-block-end: -64px; margin-inline-end: -64px; }
  .future-together__heading { font-size: 26px; }
  .future-together__sub { font-size: 16px; font-weight: 500; margin-top: -50px; }

  /* Footer */
  .l-footer__breadcrumb { padding: 40px 16px 8px; max-width: 790px; }
  .l-footer__bc-link,
  .l-footer__bc-current { font-size: 12px; }
  .l-footer__inner { padding: 40px 16px 60px; max-width: 790px; }
  .l-footer__main { flex-direction: column; gap: 0; }
  .l-footer__nav { flex-direction: column; gap: 0; }
  .l-footer__nav-group {
    padding: 4px 0 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
    margin-bottom: 16px;
  }
  .l-footer__nav-head { line-height: 1.6; margin-bottom: 10px; }
  .l-footer__nav-list { gap: 10px; padding-left: 10px; }
  .l-footer__nav-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 24px;
  }
  .l-footer__nav-list li::before {
    content: "";
    display: block;
    width: 10px;
    height: 1px;
    background: var(--white);
    flex-shrink: 0;
  }
  .l-footer__nav-list a { font-size: 14px; line-height: 1; }
  .l-footer__entry-links { padding-left: 2px; }
  .l-footer__entry-list { gap: 0; margin-bottom: 16px; }
  .l-footer__entry-list a { font-size: 16px; line-height: 2.2; }
  .l-footer__corporate-link { font-size: 14px; line-height: 2; }
  .l-footer__copyright { text-align: center; padding-top: 24px; }

  /* Floating Button */
  .floating-entry { width: 110px; height: 110px; bottom: 66px; right: 10px; }
  .floating-entry__year { font-size: 26px; }
  .floating-entry__label { font-size: 20px; }
  .floating-entry__arrow { width: 52px; }
  .floating-entry-bg { bottom: 62px; width: 125px; height: 118px; }
  /* 新卒TOP: floating-entry-group wrapper でスコープ */
  .floating-entry-group .floating-entry { width: 90px; height: 90px; }
  .floating-entry-group .floating-entry__label { font-size: 18px; }
  .floating-entry-group .floating-entry__arrow { width: 34px; }
  .floating-entry-group .floating-entry__arrow-line { height: 1px; }
  .floating-entry-group .floating-entry__arrow-line::after { right: 0; }
  body:has(.floating-entry-group) .floating-entry-bg { width: 100px; height: 96px; bottom: 62px; }

  /* Carousel */
  .c-title__wrapper { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 28px; }
  .c-title__wrapper--row { margin-bottom: 24px; }
  .swiper-slide { width: 240px; }
  .js-interview-swiper::before,
  .js-interview-swiper::after { width: 60px; }
  .btn-wrap { text-align: center; padding: 24px 0 0; }
  .swiper-pagination { text-align: center; padding-left: 0; }
}

/* ========================================
   レスポンシブ 640px（SP）
   ======================================== */
@media (max-width: 640px) {
  /* Header → ハンバーガー切り替え */
  .l-header { height: 70px; }
  .l-header-top-bar { height: 4px; }
  .l-header-white { top: 4px; height: 70px; padding-left: var(--side-pad); }
  .l-header-site-name { margin-top: 6px; font-size: 12px; }
  .l-header-nav { display: none; }
  .l-hamburger { display: flex; }
  main { padding-top: 90px; }

/* Future Together */
  .future-together {
    padding: 50px 0 0;
  }
  .future-together::before {
    height: 50px;
  }
  .future-together__inner {
    /* min-height: 210px; */
    min-height: 210px;
    /* max-width: 170px; */
    /* border-radius: 160px; */
    /* row-gap: 12.8px; */
    row-gap: 8px;
    margin-block-start: 0;
  }
  .future-together__circle-wrap,
  .future-together__circle-wrap:nth-child(2),
  .future-together__circle-wrap:nth-child(3) {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.75);
  }
  .future-together__circle-wrap--tl {
    margin-block-start: -48px;
    margin-inline-start: -16px;
  }
  .future-together__circle-wrap--tr {
    margin-block-start: -48px;
    margin-inline-end: -16px;
  }
  .future-together__circle-wrap--bl {
    margin-block-end: -48px;
    margin-inline-start: -16px;
  }
  .future-together__circle-wrap--br {
    margin-block-end: -48px;
    margin-inline-end: -16px;
  }
  .future-together__heading { font-size: 22px; margin-top: 16px;}
  .future-together__sub { font-size: 16px; margin-top: -10px; }
}

/* ========================================
   NECコーポレートテンプレート ヘッダー
   ======================================== */

body[data-template-id="special-03"] main {
  padding-top: 0;
}

.site-header-03.js-toFixedByScroll {
  position: sticky !important;
  top: 0;
  z-index: 1000;
}
.site-header-03.js-toFixedByScroll > .inner {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  width: 100% !important;
}

.l-subnav {
  position: sticky;
  top: var(--header-h, 0px);
  z-index: 900;
  background: var(--nec-blue);
  min-height: 43px;
}
.l-subnav.is-fixed {
  position: sticky !important;
  top: var(--header-h, 0px) !important;
}
.l-subnav .l-header-nav {
  position: static;
  height: auto;
  padding: 8px 40px 8px 51px;
}
.l-subnav .l-header-nav__list {
  flex: 1;
}
.l-subnav .l-header-nav__list > .l-header-nav__item:first-child {
  margin-right: auto;
}
.l-subnav .l-header-nav__list > .l-header-nav__item:nth-child(3)::after {
  content: '';
  display: block;
  width: 1px;
  height: 16px;
  background: white;
  margin-left: 27px;
  flex-shrink: 0;
}
.l-subnav .l-hamburger {
  display: none;
  position: absolute;
  top: 50%;
  right: var(--side-pad);
  transform: translateY(-50%);
}

@media (max-width: 1024px) {
  .l-subnav {
    position: static;
    background: transparent;
    min-height: 0;
  }
  .l-subnav.is-fixed {
    position: static !important;
    top: auto !important;
  }
  .l-subnav .l-header-nav {
    display: none;
  }
  .l-subnav .l-hamburger {
    display: flex;
    position: fixed;
    top: var(--header-h, 73px);
    right: 8px;
    transform: none;
    z-index: 1002;
    background: #fff;
  }
  .l-subnav .l-hamburger .l-hamburger__bar {
    /* background: var(--nec-blue); */
  }
}

/* ========================================
   ページの先頭に戻るボタン
   ======================================== */

.scroll-top {
  font-size: 12px;
  position: relative;
  margin: 0;
}

.scroll-top > a {
  line-height: 2.5;
  text-decoration: none;
  text-align: right;
  color: #fff;
  background: #646e74;
  position: absolute;
  z-index: 199;
  right: 0;
  bottom: 22px;
  display: block;
  overflow: hidden;
  padding: 0 10px 0 35px;
  pointer-events: none;
  opacity: 0;
  transition: 0.3s opacity ease, 0.3s bottom ease-out;
}

.scroll-top > a::before {
  position: absolute;
  top: 50%;
  left: 7px;
  display: block;
  width: 20px;
  height: 20px;
  margin: -3px 0 0;
  content: "";
  transform: rotate(48deg) skew(6deg);
  border: 1px solid #fff;
  border-width: 1px 0 0 1px;
}

.scroll-top.is-visible > a {
  pointer-events: auto;
  opacity: 1;
}

.scroll-top.is-fixed > a {
  position: fixed;
  right: 0;
  bottom: 20px;
}

.l-footer__nec-copyright {
  background: #0f1ed2;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.l-footer__nec-copyright .copyright {
  margin: 0;
}

.l-footer__nec-copyright .copyright small {
  color: #fff;
  font-size: 12px;
}


/* ===== 新卒ENTRY ドロップダウン（PC:ホバー / SP:タップ展開） ===== */
.entry-dropdown {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}

.entry-dropdown__toggle {
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  font-family: inherit;
}

.entry-dropdown__chevron {
  transition: transform 0.25s ease;
}

.entry-dropdown__menu {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  padding-top: 12px; /* ボタンとの隙間を埋めるホバーブリッジ */
  display: flex;
  flex-direction: column;
  gap: 10px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 5;
}

@media (hover: hover) and (pointer: fine) {
  .entry-dropdown:hover .entry-dropdown__menu,
  .entry-dropdown:focus-within .entry-dropdown__menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .entry-dropdown:hover .entry-dropdown__chevron,
  .entry-dropdown:focus-within .entry-dropdown__chevron {
    transform: rotate(180deg);
  }
}

.entry-dropdown.is-open > .entry-dropdown__menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.entry-dropdown.is-open .entry-dropdown__chevron {
  transform: rotate(180deg);
}

.entry-dropdown__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--white);
  color: var(--nec-blue);
  font-weight: 600;
  font-size: 18px;
  border: 2px solid var(--nec-blue);
  border-radius: 100px;
  height: 60px;
  padding: 0 22px;
  transition: background 0.2s, color 0.2s;
}
.entry-dropdown__item:hover {
  background: var(--nec-blue);
  color: var(--white);
}
.entry-dropdown__item .entry-btn__arrow {
  --fill-0: var(--nec-blue);
  --stroke-0: white;
}
.entry-dropdown__item:hover .entry-btn__arrow {
  --fill-0: white;
  --stroke-0: var(--nec-blue);
}

/* SP / タブレット: アコーディオン展開（下のレイアウトを押し下げる） */
@media (max-width: 1024px) {
  .entry-dropdown {
    width: 100%;
    max-width: 320px;
  }
  .entry-dropdown__menu {
    position: static;
    width: 100%;
    padding-top: 0;
    max-height: 0;
    margin-top: 0;
    overflow: hidden;
    transform: none;
    transition: max-height 0.28s ease, margin-top 0.28s ease, opacity 0.2s ease;
  }
  .entry-dropdown.is-open > .entry-dropdown__menu {
    max-height: 200px;
    margin-top: 12px;
    transform: none;
  }
  .entry-dropdown__item {
    width: 100%;
    height: 56px;
    font-size: 16px;
  }
}

/* ドロップダウンが下方向にはみ出せるよう、対象セクションのみクリップ解除 */
.entry-section:has(.entry-dropdown) {
  overflow: visible;
}

/* PC: 2027/2028 ボタンのホバーで文字間を広げる */
.entry-dropdown__item {
  transition: background 0.2s, color 0.2s, letter-spacing 0.4s ease;
}
@media (hover: hover) and (pointer: fine) {
  .entry-dropdown__item:hover {
    letter-spacing: 0.08em;
  }
}
