@charset "UTF-8";
/* -------------------------------------------*/
/* -------------------------------------------*/
/* -------------------------------------------*/
/* -------------------------------------------*/
/* -------------------------------------------*/
:root {
  --content_width: 1000px;
  --content-both_space: 15px;
  --header_height: 90px;
  --waves_height: 60px;
}
.u-center {
  text-align: center;
}
/* -------------------------------------------*/
/* -------------------------------------------*/
/* -------------------------------------------*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}
a,
button {
  color: inherit;
  text-decoration: none;
}
input,
button,
select,
optgroup,
textarea {
  background-color: transparent;
  border: none;
  border: none;
  box-sizing: border-box;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
  position: relative;
  vertical-align: middle;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -webkit-border-radius: 0;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html [type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
img {
  max-width: 100%;
  vertical-align: middle;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
*,
*:before,
*:after {
  box-sizing: border-box;
}

html {
  -ms-overflow-style: scrollbar;
  font-size: 62.5%;
  scroll-behavior: smooth;
}

/* 1280px〜667px: 1280px時の比率をそのままvwでスケール（0.78125vw = 10px @ 1280px） */
@media screen and (min-width: 667px) and (max-width: 1280px) {
  html {
    font-size: 0.78125vw;
  }
}

@media screen and (min-width: 1440px) {
  html {
    font-size: 68.75%;
  }
}

/* 1rem=11px */
@media screen and (min-width: 1600px) {
  html {
    font-size: 72%;
  }
}

/* 1rem=13px */

body {
  background-color: #ff514d;
  color: #000000;
  font-family:
    'Noto Sans JP', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', '游ゴシック', YuGothic, 'メイリオ', Meiryo,
    sans-serif;
  font-size: 16px;
  font-weight: 400;
  height: 100%;
  letter-spacing: 0;
  line-height: 1.5;
  min-width: 100%;
  overflow-x: hidden;
  position: relative;
  width: 100%;
}
.u-pc {
  display: block !important;
  @media screen and (max-width: 666px) {
    display: none !important;
  }
}
.u-sp {
  display: none !important;
  @media screen and (max-width: 666px) {
    display: block !important;
  }
}
.u-c-white {
  color: #fff;
}
/* ---- LP 固定ヘッダー ---- */
.p-newgraduate-hdr {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}
.p-newgraduate-hdr__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 10.8rem;
  padding: 0 3.2rem 0 3.7rem;
}
.p-newgraduate-hdr__logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  gap: 2.4rem;
}
.p-newgraduate-hdr__logo img {
  height: 3.6rem;
  width: auto;
  display: block;
}
.p-newgraduate-hdr__text {
  display: inline-block;
  margin-bottom: 1rem;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  white-space: nowrap;
}
.p-newgraduate-hdr__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 17.2rem;
  height: 6rem;
  background: #1b2222;
  border-radius: 50rem;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  transition: 0.3s;
}
.p-newgraduate-hdr__btn:hover {
  opacity: 0.8;
}

/* ---- LP フッター ---- */
.p-newgraduate-ftr {
  position: relative;
}
.p-newgraduate-ftr::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url(../images/footer_back.webp) no-repeat center / cover;
  z-index: 0;
}
.p-newgraduate-ftr__body {
  position: relative;
  z-index: 1;
  padding: 25.1rem 4.6rem 6rem 10rem;
}
.p-newgraduate-ftr__inner {
  display: flex;
  align-items: start;
  justify-content: space-between;
  max-width: 128rem;
  width: 100%;
  margin-inline: auto;
}
.p-newgraduate-ftr__logo {
  display: block;
  width: 18.5rem;
}
.p-newgraduate-ftr__logo img {
  width: 100%;
  height: auto;
}
.p-newgraduate-ftr__address {
  margin-top: 1rem;
  font-style: normal;
  color: #fff;
  font-size: 1.7rem;
  line-height: 1.82;
}
.p-newgraduate-ftr__corp-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 1.6rem;
  color: #fff;
  font-size: 1.6rem;
  transition: opacity 0.2s;
}
.p-newgraduate-ftr__corp-link::after {
  content: '';
  display: inline-block;
  width: 1.6rem;
  aspect-ratio: 18/14;
  background: url(../images/icon_outlink.svg) no-repeat top center/contain;
}
.p-newgraduate-ftr__corp-link:hover {
  opacity: 0.7;
}
.p-newgraduate-ftr__bnr {
  display: block;
  width: 18.9rem;
  margin-left: auto;
  transition: opacity 0.2s;
}
.p-newgraduate-ftr__bnr:hover {
  opacity: 0.8;
}
.p-newgraduate-ftr__bnr img {
  display: block;
  width: 100%;
  height: auto;
}
.p-newgraduate-ftr__sns {
  display: flex;
  justify-content: end;
  align-items: center;
  gap: 1.5rem;
  margin-top: 3rem;
}
.p-newgraduate-ftr__sns a {
  display: block;
  width: 4.7rem;
  transition: opacity 0.2s;
}
.p-newgraduate-ftr__sns a:hover {
  opacity: 0.75;
}
.p-newgraduate-ftr__sns img {
  display: block;
  width: 100%;
  height: auto;
}
.p-newgraduate-ftr__copy {
  position: relative;
  margin-top: 3rem;
  z-index: 1;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 300;
  letter-spacing: 0.025em;
  text-align: right;
}

/* ---- FV ---- */
.p-newgraduate-fv {
  position: relative;
  width: 100%;
  margin-inline: auto;
  padding-bottom: 52.5rem;
  overflow-x: hidden;
}
.p-newgraduate-fv::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 2560/1851;
  background: url(../images/fv_deco-pc.webp) no-repeat top center/contain;
  z-index: -1;
}
.p-newgraduate-fv__bg {
  position: relative;
  width: 93%;
  max-width: 118.8rem;
  padding-top: 14rem;
  margin: 0 auto;
  z-index: 1;
}
.p-newgraduate-fv__bg::before {
  content: '';
  display: block;
  position: absolute;
  right: -6rem;
  bottom: -30.5rem;
  width: 48.8rem;
  aspect-ratio: 488/605;
  background: url(../images/fv_loope.webp) no-repeat top center/contain;
}
.p-newgraduate-fv__bg img {
  width: 100%;
  height: auto;
  display: block;
}

.p-newgraduate-fv__inner {
  position: absolute;
  top: -2rem;
  left: 50%;
  transform: translate(-50%, 0);
  z-index: 3;
  width: 85%;
}
.p-newgraduate-fv__catch {
  width: 90%;
  max-width: 97.1rem;
  margin-inline: auto;
}
.p-newgraduate-fv__catch img {
  display: block;
  width: 100%;
  height: auto;
}
.p-newgraduate-fv__subcopy {
  width: 34%;
  max-width: 36.2rem;
}

/* 本体 */
.js-newgraduate-glitch {
  position: relative;
  display: block;
  overflow: hidden;
  isolation: isolate;
  line-height: 0;
}

/* 元画像 */
.js-newgraduate-glitch picture,
.js-newgraduate-glitch img {
  display: block;
  width: 100%;
  height: auto;
}

/* 擬似要素共通 */
.js-newgraduate-glitch::before,
.js-newgraduate-glitch::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  z-index: 2;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  will-change: transform, clip-path, opacity, filter;
}

/* SP画像 */
.js-newgraduate-glitch::before,
.js-newgraduate-glitch::after {
  background-image: url('../images/fv_catch-sp.webp');
}

/* PC画像 */
@media (min-width: 668px) {
  .js-newgraduate-glitch::before,
  .js-newgraduate-glitch::after {
    background-image: url('../images/fv_catch-pc.webp');
  }
}

/* 赤チャンネル側 */
.js-newgraduate-glitch::before {
  mix-blend-mode: screen;
  filter: drop-shadow(12px 0 0 rgba(255, 0, 80, 0.95)) saturate(1.5);
}
.js-newgraduate-glitch.is-glitch::before {
  animation: graduate-glitch-red 1350ms linear forwards;
}

/* 青チャンネル側 */
.js-newgraduate-glitch::after {
  mix-blend-mode: screen;
  filter: drop-shadow(-12px 0 0 rgba(0, 220, 255, 0.95)) saturate(1.5);
}
.js-newgraduate-glitch.is-glitch::after {
  animation: graduate-glitch-blue 1350ms linear forwards;
}

/* ノイズライン */
.js-newgraduate-glitch picture {
  position: relative;
  z-index: 1;
}

.js-newgraduate-glitch picture::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  opacity: 0;
  background: repeating-linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0 4px,
    rgba(255, 255, 255, 0.16) 4px 7px,
    rgba(0, 0, 0, 0.12) 7px 10px
  );
  mix-blend-mode: overlay;
  /* animation は .is-glitch 付与時に開始 */
}
.js-newgraduate-glitch.is-glitch picture::after {
  animation: graduate-noise 1350ms linear forwards;
}

/* ========== 赤側 ========== */
@keyframes graduate-glitch-red {
  0% {
    opacity: 0;
    transform: translate(0, 0);
    clip-path: inset(0 0 0 0);
  }

  5% {
    opacity: 1;
    transform: translate(-30px, -4px);
    clip-path: inset(0% 0 68% 0);
  }
  10% {
    transform: translate(22px, 4px);
    clip-path: inset(56% 0 0% 0);
  }
  15% {
    transform: translate(-18px, -3px);
    clip-path: inset(18% 0 24% 0);
  }
  20% {
    transform: translate(30px, 5px);
    clip-path: inset(70% 0 0% 0);
  }
  25% {
    transform: translate(-26px, -5px);
    clip-path: inset(4% 0 46% 0);
  }
  30% {
    transform: translate(18px, 3px);
    clip-path: inset(34% 0 10% 0);
  }
  35% {
    transform: translate(-34px, -4px);
    clip-path: inset(12% 0 36% 0);
  }
  40% {
    transform: translate(26px, 5px);
    clip-path: inset(60% 0 2% 0);
  }
  45% {
    transform: translate(-16px, -2px);
    clip-path: inset(0% 0 74% 0);
  }
  50% {
    transform: translate(34px, 4px);
    clip-path: inset(24% 0 12% 0);
  }
  55% {
    transform: translate(-30px, -5px);
    clip-path: inset(76% 0 0% 0);
  }
  60% {
    transform: translate(22px, 3px);
    clip-path: inset(14% 0 20% 0);
  }
  65% {
    transform: translate(-18px, -4px);
    clip-path: inset(42% 0 4% 0);
  }
  70% {
    transform: translate(28px, 5px);
    clip-path: inset(6% 0 44% 0);
  }
  75% {
    transform: translate(-24px, -3px);
    clip-path: inset(82% 0 0% 0);
  }
  80% {
    transform: translate(16px, 4px);
    clip-path: inset(28% 0 14% 0);
  }
  85% {
    opacity: 1;
    transform: translate(-12px, -2px);
    clip-path: inset(2% 0 64% 0);
  }
  100% {
    opacity: 0;
    transform: translate(0, 0);
    clip-path: inset(0 0 0 0);
  }
}

/* ========== 青側 ========== */
@keyframes graduate-glitch-blue {
  0% {
    opacity: 0;
    transform: translate(0, 0);
    clip-path: inset(0 0 0 0);
  }

  5% {
    opacity: 1;
    transform: translate(30px, 4px);
    clip-path: inset(64% 0 0% 0);
  }
  10% {
    transform: translate(-22px, -4px);
    clip-path: inset(0% 0 68% 0);
  }
  15% {
    transform: translate(18px, 3px);
    clip-path: inset(36% 0 8% 0);
  }
  20% {
    transform: translate(-30px, -5px);
    clip-path: inset(10% 0 34% 0);
  }
  25% {
    transform: translate(26px, 5px);
    clip-path: inset(78% 0 0% 0);
  }
  30% {
    transform: translate(-18px, -3px);
    clip-path: inset(2% 0 50% 0);
  }
  35% {
    transform: translate(34px, 4px);
    clip-path: inset(26% 0 14% 0);
  }
  40% {
    transform: translate(-26px, -5px);
    clip-path: inset(58% 0 0% 0);
  }
  45% {
    transform: translate(16px, 2px);
    clip-path: inset(0% 0 78% 0);
  }
  50% {
    transform: translate(-34px, -4px);
    clip-path: inset(18% 0 22% 0);
  }
  55% {
    transform: translate(30px, 5px);
    clip-path: inset(72% 0 0% 0);
  }
  60% {
    transform: translate(-22px, -3px);
    clip-path: inset(8% 0 38% 0);
  }
  65% {
    transform: translate(18px, 4px);
    clip-path: inset(46% 0 2% 0);
  }
  70% {
    transform: translate(-28px, -5px);
    clip-path: inset(0% 0 58% 0);
  }
  75% {
    transform: translate(24px, 3px);
    clip-path: inset(32% 0 10% 0);
  }
  80% {
    transform: translate(-16px, -4px);
    clip-path: inset(84% 0 0% 0);
  }
  85% {
    opacity: 1;
    transform: translate(12px, 2px);
    clip-path: inset(12% 0 34% 0);
  }
  100% {
    opacity: 0;
    transform: translate(0, 0);
    clip-path: inset(0 0 0 0);
  }
}

/* ========== ノイズ線 ========== */
@keyframes graduate-noise {
  0% {
    opacity: 0;
    transform: translateY(0);
  }
  10% {
    opacity: 0.75;
    transform: translateY(-4px);
  }
  20% {
    opacity: 0.35;
    transform: translateY(5px);
  }
  35% {
    opacity: 0.82;
    transform: translateY(-3px);
  }
  50% {
    opacity: 0.28;
    transform: translateY(4px);
  }
  65% {
    opacity: 0.66;
    transform: translateY(-5px);
  }
  80% {
    opacity: 0.24;
    transform: translateY(3px);
  }
  100% {
    opacity: 0;
    transform: translateY(0);
  }
}

/* FV 左下の手：読み込み後に左下端外からスライドイン */
.p-newgraduate-fv__hand {
  position: absolute;
  left: 0;
  bottom: 29.5rem;
  width: 66.2rem;
  transform: translate(-66.2rem, 29.5rem);
  height: auto;
  opacity: 0;
  transition:
    transform 1s cubic-bezier(0.22, 1, 0.36, 1) 0.3s,
    opacity 1s ease 0.3s;
  pointer-events: none;
  z-index: 2;
}
.p-newgraduate-fv__hand img {
  width: 100%;
  height: auto;
  display: block;
}
.p-newgraduate-fv.is-loaded .p-newgraduate-fv__hand {
  transform: translate(0, 0);
  opacity: 1;
}

/* 写真マーキー（右から左へ無限スクロール） */
.p-newgraduate-fv__photos {
  position: absolute;
  bottom: 9rem;
  left: 0;
  right: 0;
  overflow: hidden;
  z-index: 2;
  pointer-events: none;
}
.p-newgraduate-fv__photos-track {
  display: flex;
  width: max-content;
  animation: fv-marquee 50s linear infinite;
  will-change: transform;
}
.p-newgraduate-fv__photos-img {
  display: block;
  height: 38rem;
  width: auto;
  flex-shrink: 0;
}
@keyframes fv-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* ---- EPISODE セクション共通 ---- */
.p-newgraduate-ep {
  position: relative;
}
/* sticky: セクション上部がビューポート上部についてから上部が抜けるまで追従 */
.p-newgraduate-ep__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  z-index: 0;
}
.p-newgraduate-ep__bg {
  position: absolute;
  height: 100%;
  inset: 0;
}
.p-newgraduate-ep__bg picture {
  height: 100%;
}
.p-newgraduate-ep__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}
/* EPISODEバッジ（左上固定） */
.p-newgraduate-ep__badge {
  position: absolute;
  top: 1.6rem;
  left: 1.6rem;
  z-index: 2;
  background: #d92b2b;
  border-radius: 50%;
  width: 7.2rem;
  height: 7.2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}
.p-newgraduate-ep__badge span {
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.p-newgraduate-ep__badge strong {
  color: #fff;
  font-size: 2.6rem;
  font-weight: 900;
  margin-top: 0.1em;
}
/* 背景上のテキスト（初期：非表示 → 左からスライドイン） */
.p-newgraduate-ep__headline {
  display: flex;
  align-items: end;
  position: absolute;
  right: 9.7vw;
  top: 0;
  height: calc(100vh - 4.5rem);
  z-index: 2;
  transition: none;
}
.p-newgraduate-ep__headline p {
  font-size: 7.7rem;
  font-weight: 700;
  letter-spacing: 0.075em;
  text-align: right;
  line-height: 0.85;
}
.p-newgraduate-ep__headline small {
  font-feature-settings: 'palt';
}
.p-newgraduate-ep__headline .line-bg {
  display: inline-block;
  background-color: #ff5449;
  padding: 0.02em 1rem 0.15em 1rem;
  border: solid 1px #000000;
  vertical-align: middle;
  line-height: 0.9;
}

.p-newgraduate-ep__headline .text-scale {
  display: inline-block;
  transform: scaleY(0.85);
  transform-origin: center;
  font-weight: bold;
}
/* コンテンツ（スティッキーの下に続く） */
.p-newgraduate-ep__content {
  position: relative;
  padding: 7rem 4.5rem 20rem 4rem;
  overflow-y: clip;
  z-index: 1;
}
#ep06 .p-newgraduate-ep__content {
  padding-bottom: 16rem;
}
.p-newgraduate-ep__content .ng-inner {
  position: relative;
  max-width: 128rem;
  width: 100%;
  margin-inline: auto;
  background-color: #fff8ef;
  border: 1px solid #000;
}
.p-newgraduate-ep__content .ng-inner::before {
  content: '';
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #fff8ef;
  border: 1px solid #000;
  z-index: -2;
}
.p-newgraduate-ep__content .ng-inner:not(:first-child) {
  margin-top: 10.7rem;
}

/* ---- EPISODE 丸ロゴ（画像版・EP1用） ---- */
.p-newgraduate-ep__logo {
  position: absolute;
  top: -6.5rem;
  left: 12.5rem;
  z-index: 2;
  width: 18rem;
  height: auto;
  opacity: 0;
  transform: scale(1.2);
  transform-origin: center;
}
.p-newgraduate-ep__logo img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---- finding内 画像バッジ（調査・証言） ---- */
.p-newgraduate-finding__badge-img {
  position: absolute;
  top: -7.5rem;
  left: 9.7rem;
  width: 15.7rem;
}
.p-newgraduate-finding__badge-img img {
  width: 100%;
  height: auto;
}

/* ---- stat＋画像 横並び行 ---- */
.p-newgraduate-ep__main-row {
  position: relative;
  min-height: 56rem;
  padding: 12.2rem 8.7rem 5.3rem;
}

#ep04 .ng-inner:nth-child(1) .p-newgraduate-ep__main-row {
  min-height: 68rem;
  overflow-x: hidden;
}
.p-newgraduate-finding__lead {
  line-height: 3;
}
.p-newgraduate-finding__lead span {
  display: inline-block;
  padding: 0 0.8rem 0.7rem;
  background-color: #000;
  color: #fff;
  font-size: 4.9rem;
  font-weight: 700;
  line-height: 1;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}
.p-newgraduate-finding__lead.is-inview span {
  transform: scaleX(1);
}
.p-newgraduate-finding__lead.is-inview span:nth-of-type(2) {
  transition-delay: 0.13s;
}
.p-newgraduate-finding__lead.is-inview span:nth-of-type(3) {
  transition-delay: 0.26s;
}
.p-newgraduate-finding__lead.is-inview span:nth-of-type(4) {
  transition-delay: 0.39s;
}
.p-newgraduate-finding__lead.is-inview span:nth-of-type(5) {
  transition-delay: 0.52s;
}
.p-newgraduate-stat__label {
  font-size: 1.3rem;
  font-weight: 700;
  color: #444;
  margin-bottom: 0.4rem;
  line-height: 1.5;
}
.p-newgraduate-stat__num {
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: #ff483c;
  line-height: 0.95;
}
.p-newgraduate-stat__num[data-text] {
  font-size: 6.2rem;
  font-weight: 700;
}
.p-newgraduate-stat__num em {
  font-size: 20.4rem;
  font-weight: 700;
  font-family: 'Oswald', 'Dela Gothic One', sans-serif;
}
#ep03 .p-newgraduate-stat__num em,
#ep04 .p-newgraduate-stat__num em,
#ep05 .p-newgraduate-stat__num em {
  font-size: 21.9rem;
}
#ep06 .p-newgraduate-stat__num em {
  font-size: 17rem;
}
.p-newgraduate-stat__num span {
  position: relative;
  top: -0.1em;
  font-size: 7.9rem;
  font-weight: 700;
}
#ep06 .p-newgraduate-stat__num span {
  font-size: 6.9rem;
}
.p-newgraduate-stat [data-text] {
  display: inline-block;
  position: relative;
  z-index: 1;
}
.p-newgraduate-stat [data-text]::before {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  font-size: 1em;
  -webkit-text-stroke: 2px #000;
  z-index: -1;
}
.p-newgraduate-stat .smup[data-text] {
  margin-top: 0.3em;
  vertical-align: top;
  font-size: 6.2rem;
}
.p-newgraduate-stat__text {
  width: 50%;
  margin-top: 4rem;
  margin-bottom: 2rem;
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 1.8;
}
.p-newgraduate-stat__reaction {
  font-size: 1.6rem;
  font-weight: 800;
  color: #ff483c;
  margin-top: 0.8rem;
}

/* ---- イラスト ---- */
.p-newgraduate-ep__apps {
  position: absolute;
  z-index: 2;
}
.p-newgraduate-ep__apps img {
  width: 100%;
  height: auto;
  display: block;
}

#ep01 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
  bottom: -4.9rem;
  right: 2rem;
  width: 55rem;
}
#ep01 .ng-inner:nth-child(2) .p-newgraduate-ep__apps {
  top: 15%;
  right: 2rem;
  width: 56.6rem;
}
#ep02 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
  top: 13%;
  right: 0.5rem;
  width: 60.8rem;
}
#ep02 .ng-inner:nth-child(2) .p-newgraduate-ep__apps {
  top: -5%;
  right: 6rem;
  width: 47.4rem;
}
#ep03 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
  top: 12%;
  right: 0rem;
  width: 61.8rem;
}
#ep03 .ng-inner:nth-child(2) .p-newgraduate-ep__apps {
  top: 0;
  right: 6rem;
  width: 40.4rem;
}
#ep04 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
  top: 18%;
  right: 8rem;
  width: 48.7rem;
}
#ep04 .ng-inner:nth-child(2) .p-newgraduate-ep__apps {
  top: 2%;
  right: -2.5rem;
  width: 72.7rem;
}
#ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
  top: 10%;
  right: 0rem;
  width: 61.8rem;
}
#ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
  bottom: 0;
  right: 6.5rem;
  width: 51.7rem;
}

/* ---- BODY---- */
.p-newgraduate-content {
  position: relative;
  padding: 10rem 9rem 0;
  border-top: 1px solid #000;
  z-index: 1;
}
.p-newgraduate-content::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cpath d='M 100 0.5 L 0.5 0.5 L 0.5 100' fill='none' stroke='black' stroke-width='2' stroke-dasharray='5 5'/%3E%3C/svg%3E");
  background-size: 4rem 4rem;
  background-repeat: repeat;
}
.p-newgraduate-ep__circle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 100%;
  height: 42rem;
  margin-inline: auto;
}
.p-newgraduate-ep__circle::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  border-radius: 50%;
  border: 1px solid #000;
  z-index: -1;
}
.p-newgraduate-ep__circle-text {
  display: flex;
  flex-direction: column;
  align-items: center;
}
#ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text {
  align-items: flex-start;
  padding-left: 22%;
}
.p-newgraduate-ep__circle-text strong {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.73;
}
.p-newgraduate-ep__circle-text p {
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.p-newgraduate-ep__circle-text p:not(:first-child) {
  margin-top: 1.6rem;
}
#ep01 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text p {
  font-size: 3rem;
  font-weight: 700;
  text-align: center;
}
#ep02 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text p {
  font-size: 3rem;
  font-weight: 700;
  text-align: center;
}
#ep02 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-text p {
  font-size: 2.5rem;
  font-weight: 700;
  text-align: center;
}
#ep03 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-text p {
  text-align: center;
}

#ep01 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img:nth-child(1) {
  position: absolute;
  top: 1.6rem;
  left: 4.4rem;
  width: 14.5rem;
  height: auto;
}
#ep01 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img:nth-child(2) {
  position: absolute;
  bottom: -3.5rem;
  right: -1rem;
  width: 18.4rem;
  height: auto;
}
#ep01 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-img img:nth-child(1) {
  position: absolute;
  top: -3rem;
  right: 25%;
  width: 15rem;
  height: auto;
}
#ep02 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img {
  display: block;
  width: 65%;
  height: auto;
  margin-top: 4rem;
  margin-inline: auto;
  padding-left: 5%;
}
#ep02 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-img img {
  display: block;
  width: 69%;
  height: auto;
  margin-top: 3rem;
  margin-inline: auto;
  padding-left: 5%;
}
#ep03 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-img img:nth-child(1) {
  position: absolute;
  top: -14rem;
  left: -4.5rem;
  display: block;
  width: 41%;
  height: auto;
}
#ep03 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-img img:nth-child(2) {
  position: absolute;
  bottom: -6rem;
  right: -12.5rem;
  display: block;
  width: 40%;
  height: auto;
}
#ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img:nth-child(1) {
  position: absolute;
  bottom: 2rem;
  left: 7.6rem;
  display: block;
  width: 20%;
  height: auto;
}
#ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img:nth-child(2) {
  position: absolute;
  top: -8rem;
  right: 3rem;
  display: block;
  width: 17.5%;
  height: auto;
}
#ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text ul {
  display: flex;
  justify-content: center;
}
#ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text li {
  width: 13rem;
  font-size: 2.2rem;
  font-weight: 500;
  text-align: center;
  letter-spacing: -0.005em;
}
#ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text li img {
  display: block;
  width: 8rem;
  aspect-ratio: 1/1;
  margin-inline: auto;
  margin-bottom: 0.5rem;
}
#ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text em {
  margin-top: 3rem;
  font-size: 2.8rem;
  font-weight: 700;
  text-align: center;
}
#ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text strong {
  font-size: 3.2rem;
  line-height: 1;
}
#ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text strong span {
  color: #ff5449;
  font-size: 4.7rem;
}
#ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text strong img {
  position: relative;
  top: 0.2rem;
  margin-left: 0.5rem;
  width: 4.7rem;
  height: auto;
}

.p-newgraduate-ep__decor {
  position: absolute;
  inset: -20% -25%;
  pointer-events: none;
}
.p-newgraduate-ep__decor img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* ---- EP01：証言（吹き出し＋人物） ---- */
.p-newgraduate-ep__testimony {
  display: flex;
  position: relative;
  padding-bottom: 7rem;
}
.p-newgraduate-ep__testimony:not(:first-child) {
  margin-top: 11rem;
}
.p-newgraduate-ep__fukidashi {
  width: 64.6%;
}
.p-newgraduate-ep__fukidashi-badge {
  position: absolute;
  top: -11rem;
  left: 1rem;
  width: 15.7rem;
  z-index: 1;
}
/* オレンジ吹き出し（テキスト版） */
.p-newgraduate-ep__speech {
  background-color: #ff5449;
  border: 1px solid #000;
  border-radius: 2rem;
  font-size: 2.1rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  line-height: 1.8;
  padding: 5.2rem 4rem 5rem 4rem;
  position: relative;
}
.p-newgraduate-ep__speech .js-ep-marker {
  display: inline;
  padding: 0 0.08em 0.1em;
  border-radius: 0.15em;
  background-image: linear-gradient(transparent 0%, #ffe55a 0);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 0% 100%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  transition: background-size 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
.p-newgraduate-ep__speech.is-inview .js-ep-marker {
  background-size: 100% 100%;
}
.p-newgraduate-ep__speech::before {
  content: '';
  position: absolute;
  bottom: -0.5rem;
  right: -0.5rem;
  width: 100%;
  height: 100%;
  background-color: #000;
  border-radius: 2rem;
  z-index: -1;
}
.p-newgraduate-ep__speech::after {
  content: '';
  position: absolute;
  top: 27%;
  right: -6.3rem;
  width: 6.4rem;
  aspect-ratio: 64/34;
  background: url(../images/fukidashi_arrow-pc.svg) no-repeat top center/contain;
  z-index: 1;
}
.p-newgraduate-ep__person {
  position: absolute;
  bottom: 0;
  right: -3rem;
  width: 36%;
}
.p-newgraduate-ep__person img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---- EP汎用サイド画像（チャート・カレンダー・SNS等） ---- */
.p-newgraduate-ep__img {
  flex-shrink: 0;
  width: 28rem;
}
.p-newgraduate-ep__img img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---- EP01：タクシーチケット ---- */
.p-newgraduate-ep__ticket {
  flex-shrink: 0;
  width: 14rem;
}
.p-newgraduate-ep__ticket img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---- EP01：重要通達リスト（マル秘ブロック） ---- */
.p-newgraduate-ep__maruhi {
  background: #1a1a2e;
  border-radius: 1.2rem;
  padding: 3rem;
  margin-top: 2rem;
}

/* ---- EP01：重要通達リスト（マル秘） ---- */
.p-newgraduate-finding--maruhi {
  background: #1a1a2e;
}
.p-newgraduate-ep__maruhi-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.6rem;
}
.p-newgraduate-ep__maruhi-icon {
  flex-shrink: 0;
  width: 4.4rem;
}
.p-newgraduate-ep__maruhi-icon img {
  width: 100%;
  height: auto;
  display: block;
}
.p-newgraduate-ep__maruhi-title {
  font-size: 1.8rem;
  font-weight: 900;
  color: #ffe200;
  letter-spacing: 0.04em;
}
.p-newgraduate-ep__maruhi-list {
  list-style: disc;
  padding-left: 1.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-bottom: 1.2rem;
}
.p-newgraduate-ep__maruhi-list li {
  font-size: 1.3rem;
  color: #ddd;
  line-height: 1.6;
}
.p-newgraduate-finding--maruhi .p-newgraduate-finding__text {
  color: #bbb;
}

/* ---- 発見！/ 現場検証 ラベル ---- */
.p-newgraduate-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.4rem 1rem 0.4rem 0.8rem;
  border-radius: 2px;
  margin-bottom: 1.2rem;
}
.p-newgraduate-label--find {
  background: #ffe200;
  color: #0d1933;
}
.p-newgraduate-label--check {
  background: #0d1933;
  color: #fff;
}
.p-newgraduate-label--secret {
  background: #333;
  color: #ffe200;
  border: 1px solid #ffe200;
}

/* ---- 調査カード（Finding） ---- */
.p-newgraduate-finding {
  background: #fff;
  border-radius: 6px;
  padding: 2rem 2rem 2.4rem;
  border: 1px solid #c8bfb0;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.p-newgraduate-finding--secret {
  background: #1a1a2e;
}
.p-newgraduate-finding--mizo {
  display: flex;
  gap: 1.6rem;
  align-items: flex-start;
}

/* ---- アプリロゴ ---- */
.p-newgraduate-apps img {
  max-width: 28rem;
  height: auto;
  display: block;
  margin: 0.8rem 0;
}

/* ---- 棒グラフ（EP2） ---- */
.p-newgraduate-chart {
  margin: 1.6rem 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.p-newgraduate-chart__row {
  display: grid;
  grid-template-columns: 8rem 1fr 7.2rem;
  align-items: center;
  gap: 0.8rem;
}
.p-newgraduate-chart__name {
  font-size: 1.2rem;
  font-weight: 600;
  color: #0d1933;
  text-align: right;
}
.p-newgraduate-chart__bar-wrap {
  background: #e8e2d9;
  border-radius: 3px;
  height: 2rem;
  overflow: hidden;
}
.p-newgraduate-chart__bar {
  height: 100%;
  background: #999;
  border-radius: 3px;
  width: 0;
  transition: width 1s ease 0.3s;
}
.p-newgraduate-chart__bar--accent {
  background: #d92b2b;
}
.p-newgraduate-chart__val {
  font-size: 1.2rem;
  font-weight: 700;
  color: #0d1933;
  white-space: nowrap;
}

/* ---- カレンダー（EP4） ---- */
.p-newgraduate-calendar {
  margin: 1.4rem 0;
  background: #faf7f2;
  border: 1px solid #c8bfb0;
  border-radius: 6px;
  padding: 1.4rem;
}
.p-newgraduate-calendar__note {
  font-size: 1.2rem;
  color: #666;
  margin-bottom: 1rem;
  line-height: 1.5;
}
.p-newgraduate-calendar__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.4rem;
}
.p-newgraduate-calendar__cell {
  aspect-ratio: 1/1;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
}
.p-newgraduate-calendar__cell.is-work {
  background: #d92b2b;
  color: #fff;
}
.p-newgraduate-calendar__cell.is-off {
  background: #e8e2d9;
  color: #666;
}

/* ---- SNSアイコン（EP6） ---- */
.p-newgraduate-sns {
  display: flex;
  gap: 1.2rem;
  margin: 1.2rem 0;
  flex-wrap: wrap;
}
.p-newgraduate-sns img {
  width: 3.6rem;
  height: 3.6rem;
  object-fit: contain;
}

/* ---- みぞ部長（EP6） ---- */
.p-newgraduate-mizo {
  flex-shrink: 0;
  width: 9rem;
  text-align: center;
}
.p-newgraduate-mizo img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
}
.p-newgraduate-mizo__title {
  font-size: 1.2rem;
  font-weight: 700;
  margin-top: 0.4rem;
  color: #0d1933;
}
section {
  overflow-x: clip;
}
/* ---- 追跡結果 ---- */
.p-newgraduate-result {
  position: relative;
  padding-bottom: 9rem;
  overflow-x: clip;
}

/* 赤背景エリア */
.p-newgraduate-result__head {
  position: relative;
  width: 100%;
}
.p-newgraduate-result__head::before {
  content: '';
  position: absolute;
  top: -9rem;
  left: 0;
  width: 35.2rem;
  aspect-ratio: 703/843;
  background: url(../images/result_bag.webp) no-repeat top center/contain;
}

.p-newgraduate-result__head picture {
  position: relative;
  display: block;
}
.p-newgraduate-result__head picture::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../images/result_photo-pic01.webp) no-repeat top center/contain;
  opacity: 0;
  transform: translateY(3rem);
  transition:
    opacity 0.6s ease,
    transform 0.6s ease;
}
.p-newgraduate-result__head picture::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../images/result_photo-pic02.webp) no-repeat top center/contain;
  opacity: 0;
  transform: translateY(3rem);
  transition:
    opacity 0.6s ease 0.35s,
    transform 0.6s ease 0.35s;
}
.p-newgraduate-result__head.is-inview picture::before,
.p-newgraduate-result__head.is-inview picture::after {
  opacity: 1;
  transform: translateY(0);
}
.p-newgraduate-result__head img {
  width: 100%;
  height: auto;
  display: block;
}
.p-newgraduate-result__inner {
  position: relative;
  max-width: 128rem;
  width: calc(100% - 9rem);
  margin-top: -10.3rem;
  margin-inline: auto;
  background-color: #fff8ef;
  border: 1px solid #000;
}
.p-newgraduate-result__inner::before {
  content: '';
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #fff8ef;
  border: 1px solid #000;
  z-index: -2;
}
.p-newgraduate-result__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  position: relative;
  gap: 1rem;
  height: 40.1rem;
  padding: 0 16.5rem;
  z-index: 1;
}
.p-newgraduate-result__tags::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cpath d='M 100 0.5 L 0.5 0.5 L 0.5 100' fill='none' stroke='black' stroke-width='2' stroke-dasharray='5 5'/%3E%3C/svg%3E");
  background-size: 4rem 4rem;
  background-repeat: repeat;
}
.p-newgraduate-result__tags li {
  width: calc(50% - 2rem);
  opacity: 0;
  transform: translateX(-2rem);
  transition:
    opacity 1s ease,
    transform 1s ease;
}
.p-newgraduate-result__tags.is-inview li {
  opacity: 1;
  transform: translateX(0);
}
.p-newgraduate-result__tags.is-inview li:nth-child(1) {
  transition-delay: 0s;
}
.p-newgraduate-result__tags.is-inview li:nth-child(2) {
  transition-delay: 0.15s;
}
.p-newgraduate-result__tags.is-inview li:nth-child(3) {
  transition-delay: 0.3s;
}
.p-newgraduate-result__tags.is-inview li:nth-child(4) {
  transition-delay: 0.45s;
}
.p-newgraduate-result__tags.is-inview li:nth-child(5) {
  transition-delay: 0.6s;
}
.p-newgraduate-result__tags li span {
  display: inline-block;
  padding: 0 1rem;
  background-color: #ff5449;
  border: 1px solid #000;
  font-size: 5.1rem;
  font-weight: 700;
  white-space: nowrap;
}

/* 白背景エリア */
.p-newgraduate-result__content {
  position: relative;
  padding: 5.7rem 16rem 10rem;
}
.p-newgraduate-result__white-inner {
  position: relative;
}
.p-newgraduate-result__exclaim {
  font-size: 5rem;
  font-weight: 900;
  line-height: 1.5;
  font-feature-settings: 'palt';
}
.p-newgraduate-result__exclaim img {
  position: relative;
  top: 0.8rem;
  width: 19.8rem;
  margin-right: 2rem;
  margin-bottom: 1rem;
  transform: scale(0);
  transform-origin: center bottom;
}
.p-newgraduate-result__exclaim img.is-inview {
  animation: ng-exclaim-pop 1.6s cubic-bezier(0.22, 1, 0.44, 1) forwards;
}
@keyframes ng-exclaim-pop {
  0% {
    transform: scale(0);
  }
  65% {
    transform: scale(1.18);
  }
  75% {
    transform: scale(0.93);
  }
  90% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
.p-newgraduate-result__body {
  margin-top: 7.5rem;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.95;
}
.p-newgraduate-result__body p + p {
  margin-top: 1.8em;
}
.p-newgraduate-result__mark {
  background: #ff5449;
  margin-left: -0.3em;
  padding: 0.1em 0.15em;
  font-weight: 700;
  font-feature-settings: 'palt';
}
.p-newgraduate-result__taxi {
  position: absolute;
  top: 1.5rem;
  right: 0;
  width: 55rem;
}
.p-newgraduate-result__taxi img {
  width: 100%;
  height: auto;
  display: block;
}
.p-newgraduate-result__chara {
  position: absolute;
  bottom: 0;
  right: -2rem;
  width: 48.1rem;
}
.p-newgraduate-result__chara img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---- 追加調査：タクシー業界 ---- */
.p-newgraduate-industry {
  position: relative;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14.5vw), 0 100%);
  z-index: 1;
}

/* sticky背景（EPISODEと同仕様） */
.p-newgraduate-industry__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  z-index: 0;
}
.p-newgraduate-industry__bg {
  position: absolute;
  height: 100%;
  inset: 0;
}
.p-newgraduate-industry__bg picture {
  height: 100%;
}
.p-newgraduate-industry__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

/* 見出し（EPISODEの__headlineと同様：sticky外に配置してabsolute） */
.p-newgraduate-industry__headline {
  position: relative;
  z-index: 1;
  margin-top: -53rem;
  text-align: center;
}
.p-newgraduate-industry__title {
  display: inline-block;
  position: relative;
  font-size: 7rem;
  font-weight: 900;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.p-newgraduate-industry__subtitle {
  position: absolute;
  top: -9rem;
  left: -3.8rem;
  display: inline-block;
  font-size: 5.8rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  background: #fff;
  color: #000;
  padding: 0 1.2rem 0.1em;
  line-height: 1;
  transform: scaleY(1) rotate(-17deg);
}
.p-newgraduate-industry__title small {
  font-size: 5.1rem;
}

/* カードコンテンツエリア */
.p-newgraduate-industry__content {
  position: relative;
  margin-top: 11.1rem;
  z-index: 1;
}
.p-newgraduate-industry__inner {
  max-width: 108rem;
  width: 100%;
  margin-inline: auto;
}
.p-newgraduate-industry__grid {
  counter-reset: num;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.p-newgraduate-industry__card {
  position: relative;
  padding: 2rem;
  background-color: #fff;
}
.p-newgraduate-industry__card + .p-newgraduate-industry__card {
  border-left: 1px solid #000;
}
.p-newgraduate-industry__card::before {
  counter-increment: num;
  content: counter(num);
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 11.6rem;
  aspect-ratio: 1/1;
  padding-bottom: 0.15em;
  padding-left: 0.05em;
  font-family: 'Dela Gothic One', sans-serif;
  font-size: 5.7rem;
  color: #000;
  background-color: #ff5449;
  border-radius: 50rem;
  border: 1px solid #000;
}
.p-newgraduate-industry__img {
  aspect-ratio: 497/302;
  overflow: hidden;
}
.p-newgraduate-industry__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-newgraduate-industry__body {
  padding: 3rem 2rem 1.5rem;
}
.p-newgraduate-industry__body h3 {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.46;
}
.p-newgraduate-industry__body p {
  margin-top: 2rem;
  font-size: 2rem;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.p-newgraduate-industry__body--md h3 {
  font-size: 3.5rem;
  font-weight: 700;
  text-align: center;
}

/* ---- 新卒入社の先輩たち ---- */
.p-newgraduate-seniors__inner {
  position: relative;
  margin-top: 18rem;
}
.p-newgraduate-seniors__title {
  font-size: 7rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
}
.p-newgraduate-seniors__title small {
  font-size: 5.1rem;
}
.p-newgraduate-seniors__slider-wrap {
  position: relative;
  margin-top: 7.3rem;
  padding: 0 7.5rem;
  overflow-x: clip;
}
.p-newgraduate-seniors__slider {
  opacity: 0;
}
.p-newgraduate-seniors__slider.slick-initialized {
  opacity: 1;
}

/* slick override */
.p-newgraduate-seniors__slider .slick-list {
  overflow: visible;
}
.p-newgraduate-seniors__slider .slick-slide {
  margin: 0 2.5rem;
  padding: 1rem;
}
.p-newgraduate-seniors__arrows {
  position: absolute;
  top: -8.2rem;
  right: 7.2rem;
  display: flex;
  align-items: center;
}
.p-newgraduate-seniors__arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 7rem;
  aspect-ratio: 5/3.2;
  background-color: #fff;
  border: 1px solid #fff;
  transform: rotate(-18deg);
  border-radius: 50%;
  cursor: pointer;
}
.p-newgraduate-seniors__arrow::before {
  content: '';
  display: block;
  width: 1.3rem;
  aspect-ratio: 13/9;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.41 11.89'%3E%3Cline x1='1' y1='5.95' x2='14.12' y2='5.95' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpolyline points='9.6 10.89 14.41 5.95 9.6 1' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    no-repeat center center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.41 11.89'%3E%3Cline x1='1' y1='5.95' x2='14.12' y2='5.95' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpolyline points='9.6 10.89 14.41 5.95 9.6 1' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    no-repeat center center/contain;
  background-color: #000;
  transform: rotate(18deg);
}
.slick-prev::before {
  transform: rotate(18deg) scale(-1, 1);
}
.p-newgraduate-seniors__arrow.slick-disabled {
  cursor: inherit;
  background-color: transparent;
}
.p-newgraduate-seniors__arrow.slick-disabled::before {
  background-color: #fff;
}
.p-newgraduate-seniors__card {
  position: relative;
  background: #fff;
  overflow: hidden;
  display: block !important;
  cursor: pointer;
}
.p-newgraduate-seniors__card figure {
  position: relative;
  aspect-ratio: 304/393;
}
.p-newgraduate-seniors__card figure::before {
  content: '';
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  bottom: 1.5rem;
  right: 0rem;
  width: 7.5rem;
  aspect-ratio: 75/53;
  background: url(../images/card_arrow.svg) no-repeat center center/contain;
  z-index: 2;
}
.p-newgraduate-seniors__card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.4s ease;
}
.p-newgraduate-seniors__card:hover figure img {
  transform: scale(1.04);
}
.p-newgraduate-seniors__card figcaption {
  display: block;
  width: calc(100% + 2rem);
  position: absolute;
  bottom: 3.4rem;
  left: 0;
  margin-inline: -1rem;
  padding: 1.4rem 2rem;
  background-color: #ff5449;
  font-size: 1.8rem;
  font-weight: 500;
}
/* slick arrows */
.p-newgraduate-seniors__slider .slick-prev,
.p-newgraduate-seniors__slider .slick-next {
  width: 4.8rem;
  height: 4.8rem;
  background: #0a0e1a;
  border-radius: 50%;
  z-index: 10;
  top: 42%;
}
.p-newgraduate-seniors__slider .slick-prev {
  left: -4.5rem;
}
.p-newgraduate-seniors__slider .slick-next {
  right: -4.5rem;
}
.p-newgraduate-seniors__slider .slick-prev:before,
.p-newgraduate-seniors__slider .slick-next:before {
  color: #fff;
  font-size: 2.4rem;
  line-height: 1;
  opacity: 1;
}
.p-newgraduate-seniors__slider .slick-dots {
  bottom: -3.2rem;
}
.p-newgraduate-seniors__slider .slick-dots li button:before {
  font-size: 1rem;
  color: #0a0e1a;
  opacity: 0.25;
}
.p-newgraduate-seniors__slider .slick-dots li.slick-active button:before {
  color: #d92b2b;
  opacity: 1;
}

/* ---- 将来的にはこんな仕事も ---- */
.p-newgraduate-career__inner {
  position: relative;
  max-width: 108rem;
  width: 100%;
  margin-top: 17.5rem;
  margin-inline: auto;
  padding-bottom: 25.2rem;
}
.p-newgraduate-career__title {
  margin-bottom: -2rem;
  font-size: 7rem;
  font-weight: 900;
  color: #fff;
  text-align: center;
}
.p-newgraduate-career__title small {
  font-size: 5.1rem;
}

/* ---- 募集要項 ---- */
.p-newgraduate-req {
  position: relative;
  margin-top: -14.5vw;
  padding-bottom: 4.9rem;
}
.p-newgraduate-req::before {
  content: '';
  position: absolute;
  top: -30rem;
  right: -2rem;
  width: 43rem;
  aspect-ratio: 43/54.7;
  background: url(../images/deco_cofee.webp) no-repeat top center/contain;
  z-index: 100;
}
.p-newgraduate-req__head {
  position: relative;
}
.p-newgraduate-req__head img {
  width: 100%;
  height: auto;
}
.p-newgraduate-req__inner {
  position: relative;
  max-width: 128rem;
  width: calc(100% - 9rem);
  margin-top: -11.3rem;
  margin-inline: auto;
  background-color: #fff8ef;
  border: 1px solid #000;
}
.p-newgraduate-req__inner::before {
  content: '';
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #fff8ef;
  border: 1px solid #000;
  z-index: -2;
}
.p-newgraduate-req__list {
  position: relative;
  padding: 12rem 11.4rem 9.6rem;
}
.p-newgraduate-req__stamp {
  position: absolute;
  bottom: -6rem;
  right: 7.5rem;
  width: 16.6rem;
}
.p-newgraduate-req__item {
  display: flex;
  gap: 2rem;
}
.p-newgraduate-req__item dt {
  width: 20rem;
  padding: 3.8rem 0;
  border-top: 1px solid #000;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.87;
}
.p-newgraduate-req__item dt::before {
  content: '●';
  display: inline-block;
  color: #ff5449;
  margin-right: 0.1em;
}
.p-newgraduate-req__item dd {
  flex: 1;
  padding: 3.8rem 0;
  border-top: 1px solid #000;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.87;
}
.p-newgraduate-req__item dd ol li,
.p-newgraduate-req__item dd ul li {
  position: relative;
  padding-left: 1em;
}
.p-newgraduate-req__item dd ol li::before {
  content: '・';
  position: absolute;
  top: 0;
  left: 0;
}
.p-newgraduate-req__item dd ul li::before {
  content: '※';
  position: absolute;
  top: 0;
  left: 0;
}
.p-newgraduate-req__entry {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 4.1rem;
  padding: 11.5rem 10rem 13.5rem;
  gap: 4rem;
  z-index: 1;
}
.p-newgraduate-req__entry::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cpath d='M 100 0.5 L 0.5 0.5 L 0.5 100' fill='none' stroke='black' stroke-width='2' stroke-dasharray='5 5'/%3E%3C/svg%3E");
  background-size: 4rem 4rem;
  background-repeat: repeat;
}
.p-newgraduate-req__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  gap: 0.8rem;
  width: 46.2rem;
  height: 12rem;
  border: 1px solid #000;
  background-color: #ff5449;
  text-align: center;
  padding-right: 2rem;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  border-radius: 50rem;
  text-decoration: none;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
  box-shadow: 2px 2px 2px 2px rgba(0, 0, 0, 0.25);
}
.p-newgraduate-req__btn::before {
  content: '';
  position: absolute;
  top: 50%;
  right: 2.1rem;
  transform: translate(0, -50%);
  width: 7.8rem;
  aspect-ratio: 75/53;
  background: url(../images/btn_arrow.svg) no-repeat top center/contain;
}
.p-newgraduate-req__btn:hover {
  opacity: 0.85;
  transform: translateY(2px);
}
.p-newgraduate-req__btn-arrow {
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1;
}

/* ============================================================
  先輩インタビュー モーダル
============================================================ */

/* オーバーレイ */
.p-newgraduate-modal-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.75);
  z-index: 9000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 7rem 1.5rem 8rem;
  overflow: hidden; /* Perfect Scrollbar に委譲 */
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.p-newgraduate-modal-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* 閉じるボタン（固定位置） */
.p-newgraduate-modal__close {
  position: absolute;
  top: -4rem;
  right: -5rem;
  z-index: 9100;
  width: 13.5rem;
  aspect-ratio: 1/1;
  cursor: pointer;
  transition: 0.3s;
}
.p-newgraduate-modal__close:hover {
  opacity: 0.8;
}

/* モーダル本体 */
.p-newgraduate-modal {
  position: relative;
  background: #fff;
  width: 100%;
  max-width: 114.5rem;
  margin: auto;
}

/* コンテンツ（各先輩分） */
.p-newgraduate-modal__content {
  display: none;
  background: #fff8ef;
}
.p-newgraduate-modal__content.is-active {
  display: block;
}

/* ---- ヒーロー（上部オレンジ背景エリア） ---- */
.p-newgraduate-modal__hero {
  position: relative;
  aspect-ratio: 1145/604;
  background: url(../images/modal/head_back.webp) no-repeat top center/contain;
  overflow: hidden;
}
.p-newgraduate-modal__hero-img {
  width: 100%;
  display: block;
}
.p-newgraduate-modal__hero-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom left;
  display: block;
}

/* Interviewバッジ */
.p-newgraduate-modal__badge {
  position: absolute;
  top: 2rem;
  left: 2rem;
  z-index: 3;
  width: 16.4rem;
  aspect-ratio: 1/1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: url(../images/modal/interview_deco.svg) no-repeat top center/contain;
  font-size: 2.3rem;
  color: #fff;
  font-family: 'dela gothic one', sans-serif;
  line-height: 1;
}

/* ヘッドライン（オレンジ帯テキスト） */
.p-newgraduate-modal__headline {
  position: absolute;
  top: 24.5%;
  left: 50%;
  z-index: 3;
}
.p-newgraduate-modal__headline .p-newgraduate-modal__headline-text {
  font-size: 6.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
}
.p-newgraduate-modal__headline .line-bg {
  display: inline-block;
  background-color: #ff5449;
  padding: 0 0.6rem 0.15em;
  border: solid 1px #000;
  vertical-align: middle;
  line-height: 1;
}
.p-newgraduate-modal__headline .text-scale {
  display: inline-block;
  transform: scaleY(0.9);
  transform-origin: center;
  font-weight: 900;
}
.p-newgraduate-modal__headline small {
  font-feature-settings: 'palt';
}

.p-newgraduate-modal__profile {
  display: inline-block;
  margin-top: 1.2rem;
  padding: 0.4rem 2.7rem;
  background-color: #000;
  color: #fff;
  font-size: 2.3rem;
  font-weight: 500;
}

/* ---- ボディ（インタビュー本文） ---- */
.p-newgraduate-modal__qa-inner {
  padding: 13.5rem 12.5rem 11.5rem;
}
.p-newgraduate-modal__qa:not(:first-child) {
  margin-top: 10.6rem;
}
/* 質問見出し */
.p-newgraduate-modal__q {
  display: inline;
  border: 1px solid #000;
  background-color: #ff5449;
  font-size: 3.1rem;
  font-weight: 1000;
  padding: 0 1.4rem;
  line-height: 1.8;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  font-feature-settings: 'palt';
  white-space: nowrap;
}

/* 回答テキスト */
.p-newgraduate-modal__a {
  margin-top: 2.8rem;
  font-size: 2.1rem;
  font-weight: 500;
  letter-spacing: 0.069em;
  line-height: 1.8;
}

/* 画像付きQA */
.p-newgraduate-modal__qa--with-img .p-newgraduate-modal__qa-row {
  display: flex;
  gap: 10rem;
  align-items: flex-start;
}
.p-newgraduate-modal__qa--with-img .p-newgraduate-modal__qa-text {
  flex: 1;
  min-width: 0;
}
.p-newgraduate-modal__body-img {
  margin-top: 1.9rem;
  width: 43%;
}
.p-newgraduate-modal__body-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* 他の先輩たちを見るエリア */
.p-newgraduate-modal__others-wrap {
  padding: 6.8rem 9rem 8rem;
  position: relative;
  z-index: 1;
}
.p-newgraduate-modal__others-wrap::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cpath d='M 100 0.5 L 0.5 0.5 L 0.5 100' fill='none' stroke='black' stroke-width='2' stroke-dasharray='5 5'/%3E%3C/svg%3E");
  background-size: 4rem 4rem;
  background-repeat: repeat;
}
.p-newgraduate-modal__others-title {
  display: block;
  width: fit-content;
  margin-inline: auto;
  padding: 2.1rem 3.5rem;
  border: 1px solid #000;
  border-radius: 50rem;
  background: #fff;
  font-size: 2.9rem;
  font-weight: 700;
  line-height: 1;
}

/* ページャーラッパー（ピル型コンテナ） */
.p-newgraduate-modal__pager-wrap {
  display: flex;
  align-items: center;
  width: 100%;
  height: 20.2rem;
  background: #fff;
  border: 1px solid #000;
  border-radius: 50rem;
  margin-top: 5.5rem;
  padding: 3rem 4rem;
  gap: 1.2rem;
}

/* 矢印ボタン */
.p-newgraduate-modal__pager-prev,
.p-newgraduate-modal__pager-next {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 7rem;
  aspect-ratio: 5/3.2;
  background-color: #000;
  border: 1px solid #000;
  transform: rotate(-16deg);
  border-radius: 50%;
  cursor: pointer;
}
.p-newgraduate-modal__pager-prev:hover,
.p-newgraduate-modal__pager-next:hover {
  background: #444;
}
.p-newgraduate-modal__pager-prev::before,
.p-newgraduate-modal__pager-next::before {
  content: '';
  display: block;
  width: 1.8rem;
  aspect-ratio: 13/9;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.41 11.89'%3E%3Cline x1='1' y1='5.95' x2='14.12' y2='5.95' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpolyline points='9.6 10.89 14.41 5.95 9.6 1' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    no-repeat center center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.41 11.89'%3E%3Cline x1='1' y1='5.95' x2='14.12' y2='5.95' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpolyline points='9.6 10.89 14.41 5.95 9.6 1' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    no-repeat center center/contain;
  background-color: #fff;
  transform: rotate(16deg);
}
.p-newgraduate-modal__pager-prev::before {
  transform: rotate(16deg) scale(-1, 1);
}

/* カードエリア */
.p-newgraduate-modal__pager-cards {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
}

/* スラッシュ区切り */
.p-newgraduate-modal__pager-sep {
  width: 1px;
  align-self: stretch;
  background: #000;
  margin: 0 1.6rem;
  transform: rotate(37deg);
}

/* サムネイルカード */
.p-newgraduate-modal__pager-card {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 1.4rem;
  cursor: pointer;
  transition: opacity 0.2s;
  min-width: 0;
}
.p-newgraduate-modal__pager-card:last-child {
  justify-content: end;
}
.p-newgraduate-modal__pager-card:hover {
  opacity: 0.7;
}

/* 円形写真 */
.p-newgraduate-modal__pager-card-img {
  width: 18.6rem;
}
.p-newgraduate-modal__pager-card-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* テキスト情報 */
.p-newgraduate-modal__pager-card-info {
  padding-bottom: 0.5em;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.58;
}

.p-newgraduate__pagetop {
  position: fixed;
  bottom: 3rem;
  right: 3rem;
  z-index: 10;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
  a {
    display: block;
    width: 6rem;
  }
}
.p-newgraduate__pagetop.is-visible {
  opacity: 1;
  pointer-events: auto;
}
/* ============================================================
  モーダル表示中のbodyスクロール制御
============================================================ */
body.is-modal-open {
  overflow: hidden;
}

/* ============================================================
  SP レスポンシブ対応（666px以下）
============================================================ */
@media screen and (max-width: 666px) {
  /* === ヘッダー === */
  .p-newgraduate-hdr__inner {
    height: 7.8rem;
    padding: 0 1.5rem;
  }
  .p-newgraduate-hdr__logo {
    gap: 0.8rem;
  }
  .p-newgraduate-hdr__logo img {
    height: 3.2rem;
  }
  .p-newgraduate-hdr__text {
    margin: 0;
    font-size: 1.25rem;
  }
  .p-newgraduate-hdr__btn {
    width: 12rem;
    height: 4rem;
    font-size: 1.4rem;
  }

  /* === フッター === */
  .p-newgraduate-ftr__body {
    padding: 3.1rem 2rem 2rem;
  }
  .p-newgraduate-ftr::before {
    background: url(../images/footer_back-sp.webp) no-repeat top center/cover;
  }
  .p-newgraduate-ftr__inner {
    display: block;
  }
  .p-newgraduate-ftr__logo {
    width: 13rem !important;
    height: auto;
  }
  .p-newgraduate-ftr__address {
    margin-top: 0.5rem;
    font-size: 1.2rem;
  }
  .p-newgraduate-ftr__bnr {
    position: absolute;
    top: 3.5rem;
    right: 2.1rem;
    width: 12.2rem;
  }
  .p-newgraduate-ftr__corp-link {
    position: absolute;
    bottom: 1.8rem;
    left: 2.5rem;
    margin-top: 0;
    font-size: 1.05rem;
  }
  .p-newgraduate-ftr__sns {
    justify-content: center;
    margin-top: 7.4rem;
  }
  .p-newgraduate-ftr__sns a {
    width: 3.74rem;
  }
  .p-newgraduate-ftr__corp-link::after {
    width: 1.15rem;
  }
  .p-newgraduate-ftr__copy {
    margin-top: 2.3rem;
    font-size: 0.65rem;
  }

  /* === FV === */
  .p-newgraduate-fv {
    padding-bottom: 49.2rem;
  }
  .p-newgraduate-fv::before {
    aspect-ratio: 1125/1388;
    background: url(../images/fv_deco-sp.webp) no-repeat top center/contain;
  }
  .p-newgraduate-fv__bg {
    padding-top: 11rem;
  }
  .p-newgraduate-fv__bg::before {
    right: -8rem;
    bottom: -29.5rem;
    width: 32.8rem;
  }
  .p-newgraduate-fv__inner {
    top: 6.6rem;
    width: 100%;
  }
  .p-newgraduate-fv__subcopy {
    margin-top: 57.5vw;
    margin-left: 11.5vw;
    width: 68%;
  }
  .p-newgraduate-fv__hand {
    width: 40rem;
    bottom: 43rem;
    left: -38%;
    transform: translate(-60rem, 43rem);
  }
  .p-newgraduate-fv.is-loaded .p-newgraduate-fv__hand {
    transform: translate(0, 0);
  }
  .p-newgraduate-fv__photos {
    bottom: 10rem;
  }
  .p-newgraduate-fv__photos-img {
    height: 26rem;
  }

  /* === EPISODE 共通 === */
  .p-newgraduate-ep__logo {
    top: -4.7rem;
    left: 2.7rem;
    width: 10rem;
  }
  .p-newgraduate-ep__badge {
    width: 5.4rem;
    height: 5.4rem;
  }
  .p-newgraduate-ep__badge strong {
    font-size: 2rem;
  }
  .p-newgraduate-ep__headline {
    right: auto;
    left: 6vw;
    transform: none;
    height: min(75vh, 59rem);
  }
  .p-newgraduate-ep__headline .line-bg {
    padding: 0.05em 0.5rem 0.15em 0.5rem;
    line-height: 0.85;
    font-feature-settings: 'palt';
  }
  .p-newgraduate-ep__headline p {
    text-align: left;
    font-size: 3.8rem;
    letter-spacing: 0.05em;
  }
  .p-newgraduate-ep__content {
    margin-top: clamp(calc(-30vh), calc(261px - 59.13vh), calc(-20vh));
    padding: 5rem 1rem 10rem 1rem;
  }
  .p-newgraduate-ep__content .ng-inner:not(:first-child) {
    margin-top: 5.4rem;
  }
  #ep06 .p-newgraduate-ep__content {
    padding-bottom: 12.5rem;
  }
  .p-newgraduate-ep__content .ng-inner::before {
    top: 0.6rem;
    left: 0.6rem;
  }

  /* 調査バッジ */
  .p-newgraduate-finding__badge-img {
    top: -3.7rem;
    left: 2.5rem;
    width: 7.8rem;
  }

  /* main row */
  .p-newgraduate-ep__main-row {
    min-height: 26rem;
    padding: 6rem 2.2rem 0;
    overflow-x: clip;
  }
  #ep04 .ng-inner:nth-child(1) .p-newgraduate-ep__main-row {
    min-height: 30rem;
  }

  /* finding lead */
  .p-newgraduate-finding__lead {
    line-height: 1.9;
  }
  .p-newgraduate-finding__lead span {
    padding: 0.2rem 0.6rem 0.3rem;
    font-size: 2.65rem;
  }

  /* stat numbers */
  .p-newgraduate-stat__num em {
    font-size: 10.9rem;
  }
  #ep03 .p-newgraduate-stat__num em,
  #ep04 .p-newgraduate-stat__num em,
  #ep05 .p-newgraduate-stat__num em {
    font-size: 10.9rem;
  }
  #ep06 .p-newgraduate-stat__num em {
    margin-top: 0.05em;
    font-size: 11rem;
  }
  .p-newgraduate-stat__num span {
    top: -0.05em;
    font-size: 4.25rem;
  }
  #ep06 .p-newgraduate-stat__num span {
    font-size: 4rem;
  }
  .p-newgraduate-stat [data-text]::before {
    -webkit-text-stroke: 1px #000;
  }
  .p-newgraduate-stat__num[data-text] {
    font-size: 3.4rem;
  }
  .p-newgraduate-stat .smup[data-text] {
    font-size: 3.1rem;
  }
  .p-newgraduate-stat__text {
    width: 100%;
    font-size: 1.5rem;
    margin-top: 1.5rem;
    margin-bottom: 6.4rem;
  }
  .p-newgraduate-stat__reaction {
    font-size: 1.4rem;
  }

  /* EP各apps画像 */
  .p-newgraduate-ep__apps {
    position: relative;
    inset: auto !important;
    margin-inline: auto;
    z-index: 2;
  }
  #ep01 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
    width: 29rem;
    margin: 4rem auto -2.5rem;
  }
  #ep01 .ng-inner:nth-child(2) .p-newgraduate-ep__apps {
    width: 96%;
    margin: 4.5rem auto 4.5rem;
  }
  #ep02 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
    width: 98%;
    margin: 2.8rem auto 4rem;
  }
  #ep02 .ng-inner:nth-child(2) .p-newgraduate-ep__apps {
    width: 98%;
    margin: 3rem auto 4rem;
  }
  #ep03 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
    width: 90%;
    margin: 2rem auto 4rem;
  }
  #ep03 .ng-inner:nth-child(2) .p-newgraduate-ep__apps {
    width: 66%;
    margin: -2rem 2.8rem 9.2rem auto;
  }
  #ep04 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
    width: 100%;
    margin: 4rem auto 4rem;
  }
  #ep04 .ng-inner:nth-child(2) .p-newgraduate-ep__apps {
    width: 117%;
    margin: -2.7rem 0 0.5rem 1rem;
  }
  #ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
    width: 100%;
    margin: 2.5rem auto 2.3rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__apps {
    width: 95%;
    margin: 2rem auto 0 -1rem;
  }

  /* content（点線背景）エリア */
  .p-newgraduate-content {
    padding: 4.5rem 2rem 0;
  }
  .p-newgraduate-content::before {
    background-size: 2.1rem 2.1rem;
  }

  /* circle */
  .p-newgraduate-ep__circle {
    min-height: 18.8rem;
    height: auto;
    padding: 4rem 4.2rem 5rem;
    z-index: 1;
  }
  #ep02 .ng-inner:nth-child(1) .p-newgraduate-ep__circle {
    padding: 1.8rem 2.4rem 4rem 1.6rem;
  }
  #ep02 .ng-inner:nth-child(2) .p-newgraduate-ep__circle {
    padding: 4.1rem 1.3rem 7rem 2.1rem;
  }
  #ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle {
    padding: 3.1rem 2.2rem 4rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle {
    padding: 3.1rem 2.2rem 2rem;
  }
  .p-newgraduate-ep__circle-text strong {
    font-size: 1.6rem;
  }
  .p-newgraduate-ep__circle-text p {
    font-size: 1.45rem;
    letter-spacing: 0;
  }
  .p-newgraduate-ep__circle-text p:not(:first-child) {
    margin-top: 0.8rem;
    margin-bottom: 0.8rem;
  }
  #ep01 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text p {
    font-size: 1.45rem;
    text-align: left;
  }
  #ep02 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text p {
    font-size: 1.45rem;
    line-height: 1.75;
    text-align: center;
  }
  #ep02 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-text p {
    font-size: 1.5rem;
    text-align: center;
  }
  #ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text p {
    display: block;
    font-size: 1.6rem;
    text-align: center;
  }
  #ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text p {
    font-size: 1.4rem;
    letter-spacing: -0.004em;
  }
  /* EP01 circle img */
  #ep01 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img:nth-child(1) {
    top: -1.4rem;
    left: 0.4rem;
    width: 6rem;
  }
  #ep01 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img:nth-child(2) {
    width: 7.9rem;
    bottom: -0.5rem;
    right: -1.2rem;
  }
  #ep01 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-img img:nth-child(1) {
    top: -1.5rem;
    right: 7%;
    width: 7.6rem;
  }
  #ep02 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img {
    width: 100%;
    margin-top: 1.5rem;
  }
  #ep02 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-img img {
    width: 100%;
    margin-top: 1.5rem;
    padding-left: 0;
  }
  #ep03 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-img img:nth-child(1) {
    top: min(-12rem, -15vh);
    left: -0.8rem;
    width: 65.5%;
  }
  #ep03 .ng-inner:nth-child(2) .p-newgraduate-ep__circle-img img:nth-child(2) {
    bottom: min(-12rem, -15vh);
    right: -1.5rem;
    width: 66%;
  }
  #ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text {
    padding-left: 0;
    align-items: center;
  }
  #ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img:nth-child(1) {
    bottom: auto;
    top: -9.8rem;
    left: 1.5rem;
    width: 32%;
    z-index: -3;
  }
  #ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-img img:nth-child(2) {
    top: -7rem;
    right: 0rem;
    width: 27%;
  }

  /* EP6 circle */
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text ul {
    flex-wrap: wrap;
    gap: 0.8rem 1.6rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text li:nth-child(1) {
    margin-left: 20%;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text li:nth-child(1) img {
    margin-left: 17%;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text li:nth-child(2) {
    margin-right: 20%;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text li {
    width: 23%;
    font-size: 1.5rem;
    white-space: nowrap;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text li img {
    width: 5rem;
    margin-bottom: -0.02rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text em {
    font-size: 1.45rem;
    margin-top: 1.4rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text strong {
    font-size: 1.6rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text strong span {
    font-size: 3rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text p {
    font-size: 2rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text p span {
    font-size: 1.6rem;
  }
  #ep06 .ng-inner:nth-child(1) .p-newgraduate-ep__circle-text strong img {
    display: block;
    width: 3.65rem;
    margin-top: 1.1rem;
    margin-inline: auto;
  }

  /* testimony */
  .p-newgraduate-ep__testimony {
    display: block;
    padding-bottom: 0;
  }
  .p-newgraduate-ep__testimony:not(:first-child) {
    margin-top: 6rem;
  }
  .p-newgraduate-ep__testimony:first-child {
    margin-top: 3.5rem;
  }
  #ep01 .ng-inner:nth-child(2) .p-newgraduate-ep__testimony:not(:first-child) {
    margin-top: 2.6rem;
  }
  #ep03 .ng-inner:nth-child(2) .p-newgraduate-ep__testimony:not(:first-child) {
    margin-top: 15rem;
  }
  .p-newgraduate-ep__fukidashi {
    width: 100%;
  }
  .p-newgraduate-ep__fukidashi-badge {
    top: -5.5rem;
    left: 0.5rem;
    width: 7.6rem;
  }
  .p-newgraduate-ep__speech {
    font-size: 1.45rem;
    padding: 2.2rem 1.6rem 2rem;
    border-radius: 1.4rem;
    line-height: 1.88;
  }
  .p-newgraduate-ep__speech::before {
    bottom: -0.3rem;
    right: -0.3rem;
    border-radius: 1.4rem;
  }
  .p-newgraduate-ep__speech::after {
    right: auto;
    top: calc(100% - 0.5rem);
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    background: url(../images/fukidashi_arrow-sp.svg) no-repeat top center/contain;
  }
  .p-newgraduate-ep__person {
    position: relative;
    width: 58%;
    margin-top: -2.5rem;
    margin-inline: auto;
    right: -1rem;
  }
  #ep02 .ng-inner:nth-child(2) .p-newgraduate-ep__person {
    margin-top: 1rem;
  }
  #ep03 .ng-inner:nth-child(1) .p-newgraduate-ep__person {
    margin-top: -1rem;
  }
  #ep04 .ng-inner:nth-child(1) .p-newgraduate-ep__person {
    margin-top: -1.5rem;
  }
  #ep04 .ng-inner:nth-child(2) .p-newgraduate-ep__person {
    margin-top: 0.5rem;
  }
  #ep05 .ng-inner:nth-child(1) .p-newgraduate-ep__person {
    margin-top: -1.5rem;
  }

  /* === 追跡結果 === */
  .p-newgraduate-result {
    padding-bottom: 17rem;
    overflow-x: clip;
  }
  .p-newgraduate-result__inner {
    width: calc(100% - 3rem);
    margin-top: -6rem;
  }
  .p-newgraduate-result__head::before {
    width: 15rem;
    top: -9rem;
  }
  .p-newgraduate-result__head picture::before {
    background: url(../images/result_photo-pic01-sp.webp) no-repeat top center/contain;
  }
  .p-newgraduate-result__head picture::after {
    background: url(../images/result_photo-pic02-sp.webp) no-repeat top center/contain;
  }
  .p-newgraduate-result__inner::before {
    top: 0.6rem;
    left: 0.6rem;
  }
  .p-newgraduate-result__tags {
    flex-direction: column;
    align-items: start;
    align-content: start;
    height: auto;
    padding: 3.5rem 1.7rem;
    gap: 0.4rem;
    border-bottom: 1px solid #000;
  }
  .p-newgraduate-result__tags::before {
    background-size: 2rem 2rem;
  }
  .p-newgraduate-result__tags li {
    width: 100%;
  }
  .p-newgraduate-result__tags li:nth-child(2) {
    order: 4;
  }
  .p-newgraduate-result__tags li:nth-child(3) {
    order: 2;
  }
  .p-newgraduate-result__tags li:nth-child(4) {
    order: 5;
  }
  .p-newgraduate-result__tags li:nth-child(5) {
    order: 3;
  }
  /* SP: 表示順（order）に合わせてディレイを上書き */
  .p-newgraduate-result__tags.is-inview li:nth-child(1) {
    transition-delay: 0s;
  }
  .p-newgraduate-result__tags.is-inview li:nth-child(3) {
    transition-delay: 0.15s;
  }
  .p-newgraduate-result__tags.is-inview li:nth-child(5) {
    transition-delay: 0.3s;
  }
  .p-newgraduate-result__tags.is-inview li:nth-child(2) {
    transition-delay: 0.45s;
  }
  .p-newgraduate-result__tags.is-inview li:nth-child(4) {
    transition-delay: 0.6s;
  }
  .p-newgraduate-result__tags li span {
    font-size: 2.6rem;
    padding: 0 0.5rem;
    line-height: 1.4;
  }
  .p-newgraduate-result__content {
    padding: 1.5rem 1.7rem 6.2rem;
    flex-direction: column;
  }
  .p-newgraduate-result__exclaim {
    font-size: 2.5rem;
    line-height: 1.5;
  }
  .p-newgraduate-result__exclaim img {
    width: 10rem;
    margin-right: 1rem;
  }
  .p-newgraduate-result__body {
    margin-top: 3rem;
    font-size: 1.5rem;
    line-height: 1.83;
    letter-spacing: -0.02em;
  }
  .p-newgraduate-result__body p + p {
    margin-top: 2em;
  }
  .p-newgraduate-result__taxi {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    margin-top: 3rem;
  }
  .p-newgraduate-result__chara {
    right: -1.5rem;
    width: 27.5rem;
  }

  /* === タクシー業界について === */
  .p-newgraduate-industry {
    clip-path: inherit;
  }
  .p-newgraduate-industry__headline {
    margin-top: -79vh;
  }
  .p-newgraduate-industry__title {
    font-size: 4.05rem;
  }
  .p-newgraduate-industry__title span {
    font-size: 2.8rem;
    top: -5rem;
    left: -3rem;
  }
  .p-newgraduate-industry__title small {
    font-size: 1em;
  }
  .p-newgraduate-industry__content {
    margin-top: 7.7rem;
    padding: 0 1.6rem;
  }
  .p-newgraduate-industry__grid {
    grid-template-columns: 1fr;
  }
  .p-newgraduate-industry__card {
    padding: 1.5rem;
  }
  .p-newgraduate-industry__card + .p-newgraduate-industry__card {
    border-left: none;
    border-top: 1px solid #000;
    margin-top: 7.8rem;
  }
  .p-newgraduate-industry__card::before {
    top: -0.5rem;
    width: 7.8rem;
    font-size: 3.8rem;
  }
  .p-newgraduate-industry__img {
    aspect-ratio: 621/396;
  }
  .p-newgraduate-industry__body {
    padding: 1.2rem 0;
  }
  .p-newgraduate-industry__body h3 {
    font-size: 2.2rem;
  }
  .p-newgraduate-industry__body p {
    margin-top: 1rem;
    font-size: 1.45rem;
    line-height: 1.86;
  }
  .p-newgraduate-industry__body--md h3 {
    font-size: 2.9rem;
  }

  /* === 新卒入社の先輩たち === */
  .p-newgraduate-seniors__inner {
    position: relative;
    margin-top: 10rem;
    overflow: hidden;
  }
  .p-newgraduate-seniors__title {
    font-size: 4.05rem;
    line-height: 1.2;
  }
  .p-newgraduate-seniors__title small {
    font-size: 1em;
  }
  .p-newgraduate-seniors__slider-wrap {
    margin-top: 10.5rem;
    padding: 0 0.5rem;
  }
  .p-newgraduate-seniors__slider .slick-list {
    overflow: visible;
  }
  .p-newgraduate-seniors__slider .slick-slide {
    margin: 0 1.6rem;
    padding: 1rem;
  }
  .p-newgraduate-seniors__arrows {
    top: -7.5rem;
    right: 2rem;
  }
  .p-newgraduate-seniors__arrow {
    width: 7rem;
  }
  .p-newgraduate-seniors__card figcaption {
    width: calc(100% + 2rem);
    font-size: 1.45rem;
    padding: 1.3rem 2rem;
    margin: 0 -1rem;
    bottom: 2.5rem;
  }
  .p-newgraduate-seniors__card figure::before {
    bottom: 1rem;
    width: 6.2rem;
  }

  /* === 将来的にはこんな仕事も === */
  .p-newgraduate-career__inner {
    margin-top: 6.5rem;
    padding-bottom: 9.2rem;
  }
  .p-newgraduate-career__title {
    margin-bottom: 0;
    font-size: 3.8rem;
    line-height: 1.35;
  }
  .p-newgraduate-career__title small {
    font-size: 1em;
  }

  /* === 募集要項 === */
  .p-newgraduate-req {
    margin: 0;
    overflow-x: clip;
    padding-bottom: 6.5rem;
  }
  .p-newgraduate-req::before {
    width: 18.45rem;
    top: -18rem;
    right: -1rem;
  }
  .p-newgraduate-req__inner {
    margin-top: -4rem;
    width: calc(100% - 2rem);
  }
  .p-newgraduate-req__inner::before {
    top: 0.6rem;
    left: 0.6rem;
  }
  .p-newgraduate-req__list {
    padding: 2.8rem 2rem 1.5rem;
  }
  .p-newgraduate-req__stamp {
    bottom: -6rem;
    right: 1.5rem;
    width: 8.6rem;
  }
  .p-newgraduate-req__item {
    padding: 2rem 0;
    border-top: 1px solid #000;
    flex-direction: column;
    gap: 0;
  }
  .p-newgraduate-req__item:first-child {
    border-top: none;
  }
  .p-newgraduate-req__item dt {
    width: 100%;
    padding: 0;
    border-top: none;
    border-bottom: none;
    font-size: 1.4rem;
  }
  .p-newgraduate-req__item dd {
    padding: 0 0 0 1.3em;
    border-top: none;
    font-size: 1.4rem;
  }
  .p-newgraduate-req__entry {
    flex-direction: column;
    align-items: center;
    padding: 7rem 2rem 7.5rem;
    gap: 3rem;
  }
  .p-newgraduate-req__entry::before {
    top: 0;
    background-size: 2rem 2rem;
  }
  .p-newgraduate-req__btn {
    width: 100%;
    height: 6rem;
    font-size: 1.55rem;
  }
  .p-newgraduate-req__btn::before {
    width: 3.75rem;
  }

  /* ============================================================
    モーダル SP（666px以下）
  ============================================================ */
  /* オーバーレイのスクロールバー（WebKit） */
  .p-newgraduate-modal-overlay {
    padding: 0;
  }
  /* 縦のレール（背景）の幅と色 */
  .ps__rail-y {
    right: 0 !important;
    width: 10px !important;
    background-color: #eaded0 !important;
    opacity: 1 !important;
    z-index: 100;
    border-radius: 20px;
  }

  /* 縦のスクロールバー本体の幅と色 */
  .ps__thumb-y {
    width: 10px !important;
    border-radius: 20px;
    background-color: #f26255 !important;
    border: 1px solid #000;
    opacity: 1 !important;
    z-index: 100;
  }

  /* （参考）横スクロールバー本体の幅と色 */
  .ps__thumb-x {
    border-radius: 20px;
    height: 10px !important;
    background-color: #888 !important;
    opacity: 1 !important;
    z-index: 100;
  }
  /* モーダル本体：全画面幅 */
  .p-newgraduate-modal {
    max-width: 100%;
    width: 100%;
    margin: 0;
    border-radius: 0;
  }

  /* 閉じるボタン：ビューポート右上に固定 */
  .p-newgraduate-modal__close {
    top: 0.6rem;
    right: 0;
    width: 6rem;
  }

  /* ヒーロー：ポートレート比率に変更 */
  .p-newgraduate-modal__hero {
    aspect-ratio: inherit;
    background: none;
  }

  /* Interviewバッジ：縮小 */
  .p-newgraduate-modal__badge {
    width: 7.35rem;
    font-size: 1.05rem;
    top: 1.1rem;
    left: 1.1rem;
  }

  /* ヘッドライン：ヒーロー左下に移動 */
  .p-newgraduate-modal__headline {
    position: relative;
    top: auto;
    left: auto;
    padding: 2.2rem 2.5rem 0;
  }
  .p-newgraduate-modal__headline .p-newgraduate-modal__headline-text {
    font-size: 3.65rem;
    line-height: 1.15;
  }
  .p-newgraduate-modal__headline .line-bg {
    padding: 0.3rem 0.4rem;
  }

  /* プロフィール */
  .p-newgraduate-modal__profile {
    font-size: 1.3rem;
    padding: 0.3rem 1rem;
    margin-top: 0.4rem;
  }

  /* QA内padding縮小 */
  .p-newgraduate-modal__qa-inner {
    padding: 4.5rem 2.2rem 5rem;
  }
  .p-newgraduate-modal__qa:not(:first-child) {
    margin-top: 5rem;
  }

  /* 質問ラベル */
  .p-newgraduate-modal__q {
    font-size: 1.65rem;
    padding: 0 0.5rem;
    line-height: 1.5;
    letter-spacing: 0.075em;
  }

  /* 回答テキスト */
  .p-newgraduate-modal__a {
    margin-top: 1.3rem;
    font-size: 1.45rem;
    line-height: 1.86;
    letter-spacing: -0.004em;
  }

  /* 画像付きQA：縦並びに変更 */
  .p-newgraduate-modal__qa--with-img .p-newgraduate-modal__qa-row {
    flex-direction: column;
    gap: 2rem;
  }
  .p-newgraduate-modal__body-img {
    width: 100%;
  }
  .p-newgraduate-modal__body-img img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* 他の先輩たちを見るエリア */
  .p-newgraduate-modal__others-wrap {
    padding: 3.5rem 2rem;
  }
  .p-newgraduate-modal__others-wrap::before {
    background: #fff;
    border-top: 1px solid #000;
  }
  .p-newgraduate-modal__others-title {
    font-size: 1.45rem;
    padding: 1rem 2rem;
  }

  /* ページャー */
  .p-newgraduate-modal__pager-wrap {
    align-items: start;
    height: auto;
    padding: 0;
    gap: 0.8rem;
    border: none;
    margin-top: 3.3rem;
  }
  .p-newgraduate-modal__pager-prev,
  .p-newgraduate-modal__pager-next {
    width: 4.7rem;
    margin-top: 1.7rem;
  }
  .p-newgraduate-modal__pager-cards {
    gap: 0;
  }
  .p-newgraduate-modal__pager-card {
    gap: 0.8rem;
    flex-direction: column;
    align-items: center;
  }
  .p-newgraduate-modal__pager-card:last-child {
    flex-direction: column-reverse;
  }
  .p-newgraduate-modal__pager-card-img {
    width: 9.5rem;
    flex-shrink: 0;
  }
  .p-newgraduate-modal__pager-card-info {
    font-size: 1.2rem;
    line-height: 1.5;
    text-align: center;
  }
  .p-newgraduate-modal__pager-sep {
    display: none;
  }
}

/* ============================================================
   スタンプ押印アニメーション
============================================================ */
@keyframes ng-stamp {
  0% {
    transform: scale(0.4) rotate(-12deg);
    opacity: 0;
  }
  55% {
    transform: scale(1.1) rotate(3deg);
    opacity: 1;
  }
  75% {
    transform: scale(0.95) rotate(-1deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
}

@keyframes ng-stamp-down {
  0% {
    transform: scale(1.28) rotate(-8deg);
    opacity: 0;
  }
  55% {
    transform: scale(0.92) rotate(2deg);
    opacity: 1;
  }
  75% {
    transform: scale(1.03) rotate(-1deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
}

/* 初期状態：非表示 */
.p-newgraduate-finding__badge-img,
.p-newgraduate-ep__fukidashi-badge {
  opacity: 0;
  transform: scale(0);
  transform-origin: center;
}
.p-newgraduate-req::before,
.p-newgraduate-result__head::before {
  transform: scale(0);
  transform-origin: center;
}
.p-newgraduate-req__stamp img {
  opacity: 0;
  transform: scale(0);
  transform-origin: center;
}

/* 画面内に入ったら押印 */
.p-newgraduate-finding__badge-img.is-inview,
.p-newgraduate-ep__fukidashi-badge.is-inview {
  animation: ng-stamp 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.p-newgraduate-req.is-inview::before,
.p-newgraduate-result__head.is-inview::before {
  animation: ng-stamp 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.p-newgraduate-req__stamp img.is-inview {
  animation: ng-stamp 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.p-newgraduate-ep.is-inview .p-newgraduate-ep__logo {
  animation: ng-stamp-down 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* ============================================================
   スクロールリビール（.js-newgraduate-reveal p）
============================================================ */
.js-newgraduate-reveal p {
  opacity: 0;
  transform: translateX(-30px);
  transition:
    opacity 0.65s ease,
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.js-newgraduate-reveal p.is-inview {
  opacity: 1;
  transform: translateX(0);
}

/* ============================================================
   ローディング画面（初回訪問時）
============================================================ */
.p-ng-loading {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  background: rgba(0, 0, 0, 0.72);
  align-items: center;
  justify-content: center;
  overflow-x: hidden;
  overflow-y: auto;
  transition:
    opacity 0.55s ease,
    visibility 0.55s ease;
}
.ng-first-visit .p-ng-loading {
  display: flex;
}
.p-ng-loading.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* スクロール防止（ローディング表示中） */
.ng-first-visit,
.ng-first-visit .p-newgraduate-body {
  overflow: hidden;
}

/* カード */
.p-ng-loading__card {
  position: relative;
  background: #fff8ef;
  width: 90%;
  max-width: 118.7rem;
  margin: 3rem auto;
  opacity: 1;
  transform: translateY(0) scale(1);
  transition:
    opacity 0.35s ease,
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.p-ng-loading.is-hidden .p-ng-loading__card {
  opacity: 0;
  transform: translateY(12px) scale(0.985);
}

/* 追跡バッジ */
.p-ng-loading__badge {
  position: absolute;
  top: -3.4rem;
  left: -3rem;
  width: 15.7rem;
  aspect-ratio: 1/1;
  z-index: 10;
}

/* タイトル */
.p-ng-loading__title {
  display: inline-block;
  position: relative;
  z-index: 1;
  font-family: 'Dela Gothic One', sans-serif;
  font-size: 6.2rem;
  color: #ff5449;
  letter-spacing: 0.075em;
  white-space: nowrap;
}
.p-ng-loading__title::before {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  font-size: 1em;
  -webkit-text-stroke: 2px #000;
  z-index: -1;
}

/* 本文エリア */
.p-ng-loading__body {
  padding: 4.6rem 6rem 1.5rem 15.5rem;
}
.p-ng-loading__text {
  position: relative;
  padding-bottom: 2rem;
}
.p-ng-loading__text p {
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 2.05;
}

/* ボタン */
.p-ng-loading__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: fit-content;
  position: absolute;
  bottom: 0;
  right: 0;
  height: 9rem;
  padding: 0;
  background: #000;
  border: 1px solid #000;
  color: #fff;
  font-size: 2.32rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.p-ng-loading__btn::before {
  content: '';
  display: block;
  position: absolute;
  top: -15rem;
  right: -4rem;
  width: 16.2rem;
  aspect-ratio: 1/1;
  background: url(../images/ep01_circlr-pic02-1.svg) no-repeat top center/contain;
  z-index: 2;
}
.p-ng-loading__btn:hover {
  opacity: 0.8;
}
.p-ng-loading__btn .p-ng-loading__btn-text {
  padding: 0 1rem;
  display: flex;
  align-items: center;
}
.p-ng-loading__btn-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 11.3rem;
  height: 100%;
  background: #fff;
  overflow: hidden;
}
.p-ng-loading__btn-icon img {
  display: block;
  width: 98%;
  height: auto;
  animation: ng-btn-nudge 1.5s ease infinite;
}
@keyframes ng-btn-nudge {
  0% {
    transform: translateX(0);
  }
  10% {
    transform: translateX(5px);
  }
  20% {
    transform: translateX(0);
  }
  30% {
    transform: translateX(5px);
  }
  40% {
    transform: translateX(0);
  }
  /* 40%〜100% は静止（次のループまで待機） */
  100% {
    transform: translateX(0);
  }
}

/* フッター */
.p-ng-loading__footer {
  position: relative;
  margin-bottom: 6rem;
  border-bottom: 1px solid #000;
}

/* アイドリングアニメーション */
@keyframes ng-car-idle {
  0%,
  100% {
    transform: translateX(var(--ng-stop-x, 0px)) translateY(0px);
  }
  33% {
    transform: translateX(var(--ng-stop-x, 0px)) translateY(-1px) rotate(-0.1deg);
  }
  66% {
    transform: translateX(var(--ng-stop-x, 0px)) translateY(1px) rotate(0.1deg);
  }
}

/* タクシー：初期状態は画面外（チラつき防止） */
.p-ng-loading__car {
  display: block;
  will-change: transform;
  transform: translateX(-200vw);
}
.p-ng-loading__car img {
  height: 7rem;
  width: auto;
  display: block;
}
.p-ng-loading__car-lines {
  display: block;
  width: 3rem;
  height: 3px;
  background: #000;
  position: relative;
  flex-shrink: 0;
}

/* PC版：stamp は button::before で代替するため非表示 */
.p-ng-loading__stamp {
  display: none;
}

/* ============================================================
   SP版（666px以下）
============================================================ */
@media (max-width: 666px) {
  /* SP初回訪問でも表示 */
  .ng-first-visit .p-ng-loading {
    display: flex;
    align-items: flex-start;
    padding: 2rem 0;
  }

  /* スクロール防止 */
  .ng-first-visit,
  .ng-first-visit .p-newgraduate-body {
    overflow: hidden;
  }

  /* カード */
  .p-ng-loading__card {
    inset: inherit;
    top: 5rem;
  }
  .p-ng-loading__card {
    width: 90%;
    margin: 3rem auto 6rem;
  }

  /* 追跡バッジ：右上に */
  .p-ng-loading__badge {
    top: -1.3rem;
    left: auto;
    right: -1.3rem;
    width: 8rem;
  }

  .p-ng-loading__title-wrap {
    margin-top: 1rem;
    line-height: 1.1;
  }
  .p-ng-loading__title {
    display: block;
    font-size: 4.2rem;
  }

  /* 本文エリア */
  .p-ng-loading__body {
    padding: 2rem 3.5rem 2rem;
  }
  .p-ng-loading__text {
    margin-top: 1rem;
  }
  .p-ng-loading__text p {
    font-size: 1.45rem;
    line-height: 1.86;
  }
  /* ボタン：static・全幅 */
  .p-ng-loading__btn {
    position: relative;
    width: 100%;
    height: 6.5rem;
    font-size: 1.45rem;
    margin-top: 3rem;
  }
  .p-ng-loading__btn-icon {
    width: 7.2rem;
  }

  /* PC用::before（stamp装飾）は非表示 */
  .p-ng-loading__btn::before {
    top: 5rem;
    right: -1.5rem;
    width: 6.5rem;
  }

  /* フッター */
  .p-ng-loading__footer {
    margin-bottom: 3rem;
  }

  /* タクシー：SP は定位置スタート（PC の画面外初期値をリセット） */
  .p-ng-loading__car {
    transform: translateX(0);
  }

  .p-ng-loading__car img {
    height: 3.7rem;
  }

  .p-newgraduate__pagetop {
    bottom: 1.7rem;
    right: 1.7rem;
    a {
      width: 4.1rem;
    }
  }
}
