/* ===========================
   people.css — PEOPLE 各ページ
   - INDEX : Figma 710:8310
   =========================== */

body[data-page="people"] .page-hero__accent { display: none; }

/* 説明セクション (196px 高さ, 712px max-width, 15px Medium #155c99) */
.person-intro {
  background-color: var(--color-white);
  padding: 4.167vw 2vw;                /* 50 / 24 @1200 */
  text-align: center;
}
.person-intro__text {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  font-weight: var(--fw-medium);
  line-height: 2;                      /* 30/15 */
  color: #155c99;
  max-width: 59.333vw;                 /* 712 @1200 */
  margin: 0 auto;
}

/* ============================================
   各人カード (272px height) - フル幅、写真左、テキスト右
   写真は右側にグラデーション
   ============================================ */
.person-card {
  display: flex;
  align-items: stretch;
  width: 66.667vw;                     /* 800 @1200 */
  max-width: 100%;
  height: 17.167vw;                    /* 206 @1200 */
  margin: 0 auto 5.667vw;              /* 68 @1200 */
  background-color: var(--color-white);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  border-right: 1px solid #0091dd;
  border-bottom: 1px solid #0091dd;
}

/* 写真エリア (左側、w:265, h:206) */
.person-card__photo {
  flex: 0 0 22.083vw;                  /* 265 @1200 */
  height: 17.167vw;                    /* 206 @1200 */
  overflow: hidden;
}
.person-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* テキスト本文 (写真右) */
.person-card__body {
  flex: 1;
  padding: 0 1.667vw 0 2.75vw;         /* 20 / 33 @1200 */
}

/* タイトル (24px Noto Sans JP Medium, color #0091dd, line-height 40px) */
.person-card__title {
  font-family: var(--ff-jp);
  font-size: max(16px, 2vw);           /* 24 @1200 / 最低16 */
  font-weight: var(--fw-medium);
  color: #0091dd;
  letter-spacing: 0.2em;
  line-height: 1.667;                  /* 40/24 */
  margin: 0 0 1vw;                     /* 12 @1200 */
}

/* 名前 (20px Noto Sans JP Medium, color #0091dd) */
.person-card__name {
  font-family: var(--ff-jp);
  font-size: max(14px, 1.667vw);       /* 20 @1200 / 最低14 */
  font-weight: var(--fw-medium);
  color: #0091dd;
  margin-top: 0.667vw;                 /* 8 @1200 */
  margin-bottom: 1vw;                  /* 12 @1200 */
  letter-spacing: 0.04em;
  line-height: 1;
}

/* メタ情報 (14px Noto Sans JP Medium, color #0091dd, line-height 20px) */
.person-card__meta {
  font-family: var(--ff-jp);
  font-size: max(12px, 1.167vw);       /* 14 @1200 / 最低12 */
  font-weight: var(--fw-medium);
  color: #0091dd;
  line-height: 1.429;                  /* 20/14 */
  letter-spacing: 0.02em;
}

.person-card:hover {
  background-color: #f7fbfd;
}

/* ============ Tablet (max 1199px) ============ */
@media (max-width: 1199px) {
  .person-intro { padding: 40px 24px; }
  .person-intro__text { font-size: 14px; line-height: 26px; }

  .person-card__title { font-size: 18px; line-height: 28px; }
  .person-card__name { font-size: 16px; }
  .person-card__meta { font-size: 12px; line-height: 18px; }
}

/* ============ Mobile (max 767px) ============ */
@media (max-width: 767px) {
  .person-intro { padding: 32px 16px; }
  .person-intro__text { font-size: 12px; line-height: 1.95; max-width: 100%; margin: 0 16px; }
  .person-intro__text br { display: none; }

  .person-card {
    flex-direction: column;
    height: auto;
    align-items: stretch;
    width: calc(100% - 32px);
    margin-bottom: 40px;
    padding: 16px;
    border: 1px solid #0091dd;
  }
  .person-card__photo {
    flex: none;
    width: 265px;
    max-width: 100%;
    height: auto;
    aspect-ratio: 265 / 206;
    margin: 0 auto;
  }
  .person-card__body {
    flex: none;
    padding: 16px 0 0;
  }
  .person-card__title { font-size: 16px; line-height: 24px; }
}

/* ============================================
   PERSON Detail (01-06)
   Figma: 668:9419 etc
   ============================================ */

/* ===== Hero (KV) =====
   レイヤー (下→上):
   1. KV.png 背景
   2. 青マスク透かし (rgba(0,145,221,0.22))
   3. コンテンツボックス (1112×503, 右上寄り, 92.6%幅)
      内部レイヤー: 人物画像 < fv-ガラ < 見出し+名前 < PERSON文字 */
.pdetail-hero {
  position: relative;
  width: 100%;
  height: 587px;
  overflow: hidden;
}

/* 1. KV.png 背景 */
.pdetail-hero__bg {
  position: absolute;
  inset: 0;
  background-image: url('../../assets/images/people/KV.png');
  background-size: cover;
  background-position: center;
  z-index: 1;
}

/* 2. 青マスク透かし */
.pdetail-hero__tint {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 145, 221, 0.22);
  mix-blend-mode: multiply;
  z-index: 2;
}

/* 3. コンテンツボックス (右上寄り)
   - viewport 1200px 以下: right: 0 で右端
   - viewport 1200px 超: 余白を左右均等に配分 */
.pdetail-hero__content {
  position: absolute;
  top: 0;
  right: max(0px, calc((100vw - 1200px) / 2));
  width: 92.6%;             /* 1112/1200 */
  max-width: 1112px;
  height: 503px;
  z-index: 3;
}

/* 3-1. 人物画像 (コンテンツボックス内 z:1, 全面) */
.pdetail-hero__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}
.pdetail-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 3-2. fv-ガラ (Figma の装飾画像) */
.pdetail-hero__glass {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image: url('../../assets/images/people/fv-glass.png');
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

/* 3-3. 見出し + 名前 + メタ (左寄り, top:102, max-width:445) */
.pdetail-hero__inner {
  position: absolute;
  left: 0;
  top: 102px;
  z-index: 3;
  max-width: 445px;
}

/* タイトル: width 445px、#006AB7 0.8 を2層重ね（左414px濃い + 右31px薄い）*/
.pdetail-hero__title {
  display: flex;
  align-items: center;
  width: 445px;
  min-height: 167px;
  /* 上から: 左414pxだけ #006AB7@0.8 透明 + 全幅 #006AB7@0.8
     0-414 = 2層重なりで濃い (effective ~0.96), 414-445 = 1層のみで薄い (0.8) */
  background-image:
    linear-gradient(90deg, rgba(0, 106, 183, 0.8) 414px, transparent 414px),
    linear-gradient(90deg, rgba(0, 106, 183, 0.8) 0%, rgba(0, 106, 183, 0.8) 100%);
  padding: 12px 20px 12px 31px;
  color: var(--color-white);
  box-sizing: border-box;
}

/* 名前とメタは左 31px に寄せる */
.pdetail-hero__name-jp,
.pdetail-hero__meta {
  padding-left: 31px;
}

/* 3-4. "PERSON" 大文字 (右下, line-height 0.72, right:-18) */
.pdetail-hero__big {
  position: absolute;
  right: -18px;
  bottom: 0;
  font-family: var(--ff-en-body);
  font-size: 132px;
  font-weight: var(--fw-medium);
  color: rgba(0, 145, 221, 0.9);
  letter-spacing: 0.1em;
  line-height: 0.72;
  margin: 0;
  z-index: 4;
  white-space: nowrap;
}

.pdetail-hero__title {
  font-family: var(--ff-jp);
  font-size: 28px;
  font-weight: var(--fw-medium);
  line-height: 40px;
  letter-spacing: 0.2em;
  color: var(--color-white);
  margin: 0 0 16px;
}

.pdetail-hero__name-jp {
  margin: 30px 0 12px;
  font-family: var(--ff-jp);
  font-size: 28px;
  font-weight: var(--fw-medium);
  color: #0091dd;
  letter-spacing: 0.04em;
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.pdetail-hero__name-en {
  font-family: var(--ff-en-body);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: #0091dd;
  letter-spacing: 0;
}

.pdetail-hero__meta {
  font-family: var(--ff-jp);
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 20px;
  color: #0091dd;
}

/* ===== PROFILE bar ===== */
.pdetail-profile {
  position: relative;
  width: 100%;
  min-height: 135px;
  background-color: #155c99;
  padding: 15px 88px 15px 146px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.pdetail-profile__stripe {
  position: absolute;
  top: 0;
  left: 88px;
  width: 31px;
  height: 100%;
  background-color: #1399e0;
}

.pdetail-profile__title {
  font-family: var(--ff-en-body);
  font-size: 25px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.1em;
  margin: 0 0 8px;
}

.pdetail-profile__text {
  font-family: var(--ff-jp);
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 18px;
  color: var(--color-white);
  letter-spacing: 0.08em;
  max-width: 712px;
}

/* ===== Article (記事) ===== */
.pdetail-article {
  position: relative;
  background-color: var(--color-white);
  padding: 80px 88px 50px;
}

/* 右上の装飾ボックス: 600×276 #ebf2f6 (Figma) */
.pdetail-article::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 600px;
  height: 276px;
  background-color: #ebf2f6;
  z-index: 0;
}

/* article 子要素を装飾ボックスより前面に */
.pdetail-article > * {
  position: relative;
  z-index: 1;
}

/* 写真: 1112px / max 92.6%, 左寄せ (親 padding 88px を脱出) */
.pdetail-article__photo {
  width: 1112px;
  max-width: 92.6vw;
  margin: 0 -88px 56px -88px;
  height: 450px;
  overflow: hidden;
}
.pdetail-article__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pdetail-article__row {
  width: 937px;
  max-width: 100%;
  margin: 0 auto 56px;
  display: flex;
  justify-content: center;
  gap: 78px;
}

.pdetail-article__block {
  text-align: left;
}

.pdetail-article__heading {
  position: relative;
  font-family: var(--ff-jp);
  font-size: 20px;
  font-weight: var(--fw-medium);
  color: #245681;
  text-align: center;
  margin: 0;
  padding-bottom: 12px;
  letter-spacing: 0.04em;
}

/* 見出しの下のみデバイダー線 */
.pdetail-article__heading::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background-color: #0091dd;
}

.pdetail-article__text {
  font-family: var(--ff-jp);
  font-size: 14px;
  line-height: 18px;          /* Figma: leading-[18px] */
  color: #333;
  letter-spacing: 1.4px;      /* Figma: tracking-[1.4px] */
  text-align: justify;
  padding: 25px;
}

/* block 下の区切り線のみ (padding-bottom なし) */
.pdetail-article__block {
  width: 425px;
  border-bottom: 1px solid #0091dd;
}

.pdetail-article__block--full {
  width: 937px;
  max-width: 100%;
  margin: 24px auto 0;
}
.pdetail-article__block--full .pdetail-article__heading {
  padding-bottom: 12px;
  margin-bottom: 0;
}

/* ===== Q&A + Schedule =====
   上半分は透明、写真の途中から #ebf2f6 背景 */
.pdetail-qa {
  position: relative;
  padding-top: 100px;
  background-color: transparent;
}

/* 背景レイヤー: top:405 から下を #ebf2f6 */
.pdetail-qa::after {
  content: "";
  position: absolute;
  top: 405px;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ebf2f6;
  z-index: 0;
}

/* 左上の装飾バー: top:53, 374×47, 左88px濃青 + 286px ebf2f6 */
.pdetail-qa::before {
  content: "";
  position: absolute;
  top: 53px;
  left: 0;
  width: 374px;
  max-width: 100%;
  height: 47px;
  background: linear-gradient(90deg,
    #1399e0 0,
    #1399e0 88px,
    #ebf2f6 88px,
    #ebf2f6 374px
  );
  z-index: 3;
}

/* 写真エリア: 1112px / max 92.6% 左寄せ */
.pdetail-qa__photo {
  position: relative;
  width: 1112px;
  max-width: 92.6%;
  margin-left: 0;
  height: 450px;
  overflow: hidden;
  z-index: 1;
}
.pdetail-qa__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pdetail-qa__inner {
  position: relative;
  padding: 37px 5% 78px;
  text-align: center;
  z-index: 3;                          /* schedule(z:2) より上に重ねるため */
}

/* Q&Aセクション右下→1DAY SCHEDULE上部にまたがる装飾 (Figma: 32×304 #1399E0) */
.pdetail-qa__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -42px;                       /* schedule に 42px はみ出す */
  width: 32px;
  height: 304px;
  background-color: #1399e0;
  z-index: 1;
}

.pdetail-qa__title {
  font-family: var(--ff-en-body);
  font-size: 65px;
  font-weight: var(--fw-medium);
  color: #245681;
  letter-spacing: 0.1em;
  line-height: 1.2;
  margin: 0 0 32px;
}

.pdetail-qa__list {
  max-width: 634px;
  margin: 0 auto;
  text-align: left;
}

.pdetail-qa__q {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--ff-jp);
  font-size: 18px;
  font-weight: var(--fw-medium);
  color: #245681;
  margin-top: 24px;
  letter-spacing: 0.04em;
}

.pdetail-qa__a {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--ff-jp);
  font-size: 14px;
  line-height: 18px;
  color: #333;
  margin-top: 8px;
  letter-spacing: 0.1em;
  margin-left: 0;
}

.pdetail-qa__marker {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  font-family: var(--ff-en-body);
  font-size: 25px;
  font-weight: var(--fw-medium);
  background-color: #245681;
  color: #ebf2f6;
  flex-shrink: 0;
  letter-spacing: 0.1em;
}

.pdetail-qa__marker--a {
  background-color: #0091dd;
}

/* Schedule section (within Q&A) */
.pdetail-schedule {
  position: relative;
  z-index: 2;
  padding: 33px 88px 53px;
  background-color: #155c99;
}

.pdetail-schedule__title {
  text-align: center;
  font-family: var(--ff-en-body);
  font-size: 37px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.04em;
  margin: 0 0 4px;
}

.pdetail-schedule__sub {
  text-align: center;
  font-family: var(--ff-jp);
  font-size: 20px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  margin: 0 0 40px;
}

.pdetail-schedule__list {
  list-style: none;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 14px;                       /* 22 → 14 で各 li の幅を確保 */
  max-width: 1180px;               /* 1100 → 1180 で総幅余裕 */
  margin: 0 auto;
  position: relative;
}

.pdetail-schedule__list::before {
  content: "";
  position: absolute;
  top: 44px;
  left: 0;
  right: 0;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.5);
}

.pdetail-schedule__list li {
  position: relative;
  text-align: center;
  width: 152px;                  /* 132 → 152 (泣き別れ防止) */
  flex-shrink: 0;
}

/* 狭いバリエーション (例: 13:00) */
.pdetail-schedule__list li.pdetail-schedule__list-item--narrow {
  width: 124px;                  /* 107 → 124 */
}

.pdetail-schedule__list li::before {
  content: "";
  position: absolute;
  top: 37px;
  left: 50%;
  transform: translateX(-50%);
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: var(--color-white);
  z-index: 2;
}

.pdetail-schedule__time {
  font-family: var(--ff-en-body);
  font-size: 20px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.08em;
  margin: 0 0 30px;
}

.pdetail-schedule__label {
  font-family: var(--ff-jp);
  font-size: 18px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  margin: 10px 0 12px;               /* 丸から 10px 下 */
  line-height: 1.222;                /* 22/18 ratio */
  /* 1行/2行 混在で desc 開始位置を揃えるため、最低 2行分の高さを確保 */
  min-height: calc(1.222em * 2);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.pdetail-schedule__desc {
  font-family: var(--ff-jp);
  font-size: 14px;
  font-weight: var(--fw-regular);
  line-height: 1.286;                /* 18/14 ratio */
  color: var(--color-white);
  letter-spacing: 0.1em;
  /* 最終行に1文字だけ残らないようバランス調整 (対応ブラウザのみ) */
  text-wrap: pretty;
}

/* ===== FUTURE / OFF ===== */
.pdetail-future {
  position: relative;
  background-color: #cfdef1;
  padding: 92px 88px 39px;
  display: grid;
  grid-template-columns: 506px 506px;
  justify-content: center;
  gap: 12px;
  overflow: hidden;
}

/* 左下の装飾ボックス (Figma: 88×72 #1399E0) */
.pdetail-future::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 88px;
  height: 72px;
  background-color: #1399e0;
  z-index: 3;
}

/* 背景画像 (一番下) */
.pdetail-future__bg {
  position: absolute;
  inset: 0;
  background-image: url("../../assets/images/people/future-off-bg.png");
  background-size: cover;
  background-position: center;
  z-index: 1;
}

/* 青透かし (画像の上、コンテンツの下) */
.pdetail-future__tint {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 145, 221, 0.22);
  mix-blend-mode: multiply;
  z-index: 2;
}

.pdetail-future__col {
  position: relative;
  z-index: 3;
  background-color: rgba(255, 255, 255, 0.8);
  padding: 28px 32px;
  min-height: 301px;
}

/* FUTURE / OFF 大文字: パネル上端から上半分はみ出す */
.pdetail-future__big {
  font-family: var(--ff-en-body);
  font-size: 55px;
  font-weight: var(--fw-medium);             /* Poppins Medium 500 */
  color: rgba(0, 145, 221, 0.9);
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
  margin: -55px 0 28px;                      /* 上に半分くらいはみ出る */
}

.pdetail-future__heading {
  font-family: var(--ff-jp);
  font-size: 22px;
  font-weight: var(--fw-medium);
  color: #245681;
  text-align: center;
  margin: 0 0 16px;
}

.pdetail-future__text {
  font-family: var(--ff-jp);
  font-size: 14px;
  line-height: 18px;
  color: #333;
  letter-spacing: 0.1em;
  text-align: justify;
}

.pdetail-future__off-row {
  display: grid;
  grid-template-columns: 185px 1fr;
  gap: 16px;
  align-items: flex-start;
}

.pdetail-future__off-photo {
  width: 185px;
  height: 163px;
  overflow: hidden;
}
.pdetail-future__off-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pdetail-future__note {
  grid-column: 1 / -1;
  margin: 0;
  text-align: right;
  position: relative;
  z-index: 3;
  font-family: var(--ff-jp);
  font-size: 12px;
  color: #245681;
}

/* ===== Nav (Figma: 1200x168, bg #155c99, 上下に水平線 + btn間に縦区切り) ===== */
.pdetail-nav {
  position: relative;
  background-color: #155c99;
  height: 168px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 上下の水平線 (Figma: y=61/104, x=316-880, width 564, opacity 0.2) */
.pdetail-nav::before,
.pdetail-nav::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 564px;
  max-width: calc(100% - 48px);
  height: 1px;
  background-color: rgba(255, 255, 255, 0.2);
}
.pdetail-nav::before { top: 61px; }
.pdetail-nav::after { top: 104px; }

/* 3 ボタンのコンテナ (中央寄せ) */
.pdetail-nav__btns,
.pdetail-nav {
  /* flexはpdetail-nav本体で行う */
}

.pdetail-nav__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 193px;                        /* Figma: btn間隔 (744-551 / 551-358 = 193) */
  height: 28px;
  font-family: var(--ff-en-body);
  font-size: 15px;
  font-weight: var(--fw-medium);       /* Poppins Medium */
  color: var(--color-white);
  text-decoration: none;
  letter-spacing: 0.05em;              /* 0.75/15 */
}

/* 縦区切り線 (Figma: btn間に高さ13pxの白線) */
.pdetail-nav__btn:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(50%, -50%);
  width: 1px;
  height: 13px;
  background-color: var(--color-white);
}

/* ============ Responsive ============ */
@media (max-width: 1199px) {
  .pdetail-hero { height: 500px; }
  .pdetail-hero__big { font-size: 80px; left: auto; right: 88px; bottom: 24px; top: auto; }
  .pdetail-hero__inner { left: 32px; top: 100px; }
  .pdetail-hero__title { font-size: 22px; line-height: 30px; min-height: 0; }

  /* stripe を 32px 寄せに合わせ、content 余白も追従 */
  .pdetail-profile { padding: 28px 32px 28px 80px; }
  .pdetail-profile__stripe { left: 32px; }
  .pdetail-article { padding: 56px 32px; }
  .pdetail-article__photo { margin: 0 -32px 40px; }
  .pdetail-article__row { gap: 32px; }

  /* QA inner: padding をモバイル向けに緩める */
  .pdetail-qa__inner { padding: 37px 32px 78px; }
  .pdetail-qa__inner::after { right: 0; }

  .pdetail-schedule { padding: 33px 32px 53px; }
  .pdetail-schedule__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px 16px;
  }
  /* グリッド時は全体線を隠し、行ごとに li::after で線を作る */
  .pdetail-schedule__list::before { display: none; }
  .pdetail-schedule__list li,
  .pdetail-schedule__list li.pdetail-schedule__list-item--narrow { width: auto; }
  .pdetail-schedule__list li::after {
    content: "";
    position: absolute;
    top: 44px;                            /* 丸の中心と一致 */
    left: -8px;                           /* gap の半分まで延長 */
    right: -8px;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.5);
    z-index: 1;
  }
  .pdetail-schedule__list li::before { z-index: 2; }

  /* FUTURE/OFF: 506px固定 → 縮小可能なminmaxへ */
  .pdetail-future {
    grid-template-columns: minmax(0, 506px) minmax(0, 506px);
    padding: 60px 32px 39px;
  }
}

@media (max-width: 767px) {
  /* hero: flex縦並びにして h1 → 写真 → 名前 → メタ の順に並べ替え */
  .pdetail-hero { height: auto; padding: 40px 0 48px; }
  .pdetail-hero__content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    height: auto;
    padding: 0 16px;
    box-sizing: border-box;
  }
  /* inner は子要素を親に貫通させる */
  .pdetail-hero__inner {
    display: contents;
  }
  /* 並び: title(1) → photo(2) → name(3) → meta(4) */
  .pdetail-hero__title { order: 1; }
  .pdetail-hero__photo { order: 2; }
  .pdetail-hero__name-jp { order: 3; }
  .pdetail-hero__meta { order: 4; }

  /* タイトル帯: 95%幅、透明度0.75、写真と少し被る */
  .pdetail-hero__title {
    width: 95%;
    background-image: none;
    background-color: rgba(0, 106, 183, 0.75);
    padding: 14px 18px;
    margin: 0 0 -16px;                       /* 写真上に16px被る */
    font-size: 18px;
    line-height: 28px;
    letter-spacing: 0.08em;
    box-sizing: border-box;
    position: relative;
    z-index: 3;
  }

  /* 写真 */
  .pdetail-hero__photo {
    position: relative;
    inset: auto;
    width: 100%;
    height: 260px;
    z-index: 1;
  }
  .pdetail-hero__glass { display: none; }

  .pdetail-hero__name-jp {
    margin: 20px 0 8px;
    padding-left: 0;
    font-size: 22px;
  }
  .pdetail-hero__name-en {
    font-size: 11px;
  }
  .pdetail-hero__meta {
    padding-left: 0;
    font-size: 12px;
    line-height: 18px;
  }
  /* PERSON 大文字: SP では非表示 (重なって読みにくくなるため) */
  .pdetail-hero__big {
    position: absolute;
    right: -8px;
    bottom: -8px;
    font-size: 64px;
    line-height: 0.72;
    color: rgba(255, 255, 255, 0.18);
    z-index: 0;
    order: 5;
  }

  .pdetail-profile { padding: 24px 16px 24px 60px; }
  .pdetail-profile__stripe { left: 16px; width: 20px; }
  .pdetail-profile__title { font-size: 18px; }
  .pdetail-profile__text { font-size: 12px; line-height: 18px; }

  .pdetail-article { padding: 40px 16px; }
  .pdetail-article__photo { margin: 0 -16px 32px; height: 250px; }
  .pdetail-qa__photo { height: 250px; }

  /* SP: 写真内のフォーカス位置をページごとに調整 (object-position) */
  /* 02: 1→左、2→右 */
  body[data-path="/people/02/"] .pdetail-article__photo img { object-position: left center; }
  body[data-path="/people/02/"] .pdetail-qa__photo img { object-position: right center; }
  /* 03: 1→右、2→中央 */
  body[data-path="/people/03/"] .pdetail-article__photo img { object-position: right center; }
  body[data-path="/people/03/"] .pdetail-qa__photo img { object-position: center center; }
  /* 04: 両方右 */
  body[data-path="/people/04/"] .pdetail-article__photo img,
  body[data-path="/people/04/"] .pdetail-qa__photo img { object-position: right center; }
  /* 06: 1→左、2→右 */
  body[data-path="/people/06/"] .pdetail-article__photo img { object-position: left center; }
  body[data-path="/people/06/"] .pdetail-qa__photo img { object-position: right center; }
  .pdetail-article__row {
    flex-direction: column;
    grid-template-columns: 1fr;
    gap: 32px;
    width: 100%;
  }
  .pdetail-article__block { width: 100%; max-width: 100%; }
  .pdetail-article__block--full { width: 100%; max-width: 100%; }
  .pdetail-article__text { font-size: 12px; padding: 16px 8px; }
  .pdetail-article__heading { font-size: 16px; }

  .pdetail-qa__title { font-size: 36px; }
  .pdetail-qa__inner { padding: 32px 16px 56px; }
  /* SPでは右下の32x304装飾を細く目立ちすぎないように */
  .pdetail-qa__inner::after { width: 16px; height: 200px; bottom: -28px; }
  .pdetail-qa__q, .pdetail-qa__a { font-size: 13px; }
  .pdetail-qa__marker { width: 32px; height: 32px; font-size: 20px; }

  .pdetail-schedule { padding: 28px 16px 40px; }
  .pdetail-schedule__title { font-size: 28px; }
  .pdetail-schedule__sub { font-size: 14px; }
  .pdetail-schedule__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px 8px;
  }
  .pdetail-schedule__list li,
  .pdetail-schedule__list li.pdetail-schedule__list-item--narrow { width: auto; }
  /* SP: 時間と丸を離して被らないように、各li::afterで線を引く */
  .pdetail-schedule__time { font-size: 16px; margin: 0 0 24px; }
  .pdetail-schedule__list li::before { top: 30px; }
  .pdetail-schedule__list li::after {
    top: 37px;                            /* 丸の中心 (30 + 7.5) */
    left: -4px;                           /* 8px gap の半分まで延長 */
    right: -4px;
  }
  .pdetail-schedule__label { font-size: 14px; margin: 18px 0 8px; }
  .pdetail-schedule__desc { font-size: 11px; line-height: 1.5; }

  /* FUTURE/OFF: 縦並び、上はみ出し量を縮小 */
  .pdetail-future {
    grid-template-columns: 1fr;
    padding: 48px 16px 32px;
    gap: 36px;
  }
  .pdetail-future__col { padding: 24px 20px; min-height: 0; }
  .pdetail-future__big {
    font-size: 36px;
    margin: -36px 0 16px;
  }
  .pdetail-future__off-row { grid-template-columns: 1fr; gap: 16px; }
  .pdetail-future__off-photo { width: 100%; max-width: 280px; height: auto; aspect-ratio: 185 / 163; margin: 0 auto; }
  .pdetail-future::before { width: 64px; height: 48px; }

  /* NEXT nav: 横幅ぎゅっと、btn幅も縮小 */
  .pdetail-nav { height: 120px; }
  .pdetail-nav__btn { width: auto; flex: 1; font-size: 13px; }
  .pdetail-nav::before,
  .pdetail-nav::after { width: calc(100% - 48px); }
  .pdetail-nav::before { top: 40px; }
  .pdetail-nav::after { top: 80px; }
}

/* ============================================
   shortmovie : 社員ショート動画集
   ============================================ */

.movie-intro {
  background: var(--color-white);
  padding: 4.417vw 2vw;                /* 53 / 24 @1200 */
  text-align: center;
}
.movie-intro__text {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  font-weight: var(--fw-medium);
  line-height: 1.857;                  /* 26/14 */
  color: #155c99;
  max-width: 59.333vw;                 /* 712 @1200 */
  margin: 0 auto;
}

.movie-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2vw 1.333vw;                    /* 24 / 16 @1200 */
  max-width: 85.333vw;                 /* 1024 @1200 */
  margin: 0 auto;
  padding: 0 2vw 6.333vw;              /* 24 / 76 @1200 */
}

.movie-card {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
}

.movie-card__thumb {
  width: 100%;
  aspect-ratio: 9 / 16;          /* デフォルト: 縦動画 9:16 */
  overflow: hidden;
  background-color: #000;
}
.movie-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.movie-card__caption {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(60, 171, 230, 0.85);
  color: var(--color-white);
  padding: 1vw 1.167vw 1.5vw;          /* 12 / 14 / 18 @1200 */
}

.movie-card__quote {
  font-family: var(--ff-jp);
  font-size: max(10px, 0.917vw);       /* 11 @1200 / 最低10 */
  line-height: 1.455;                  /* 16/11 */
  margin-bottom: 0.667vw;              /* 8 @1200 */
}

.movie-card__name {
  font-family: var(--ff-jp);
  font-size: max(11px, 1.083vw);       /* 13 @1200 / 最低11 */
  font-weight: var(--fw-medium);
  margin-bottom: 0.333vw;              /* 4 @1200 */
  text-align: right;
}

.movie-card__sub {
  font-family: var(--ff-jp);
  font-size: max(9px, 0.833vw);        /* 10 @1200 / 最低9 */
  text-align: left;
  opacity: 0.9;
}

@media (max-width: 1199px) {
  .movie-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .movie-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 10px;
    padding: 24px 16px 48px;
    max-width: 100%;
  }
  .movie-intro__text { font-size: 12px; line-height: 22px; max-width: 100%; }
  .movie-intro__text br { display: none; }
  .movie-card__caption {
    padding: 8px 8px 10px;
  }
  .movie-card__quote {
    font-size: 9px;
    line-height: 13px;
    margin-bottom: 4px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .movie-card__name { font-size: 11px; margin-bottom: 2px; }
  .movie-card__sub {
    font-size: 8px;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

/* ============================================
   survey : 社員アンケート (Figma 574:6284)
   ============================================ */
.survey-intro {
  background: var(--color-white);
  padding: 4.417vw 2vw;                /* 53 / 24 @1200 */
  text-align: center;
}
.survey-intro__text {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  font-weight: var(--fw-medium);
  line-height: 2;                      /* 30/15 */
  color: #155c99;
  max-width: 59.333vw;                 /* 712 @1200 */
  margin: 0 auto;
}

.survey {
  background-color: #ebf2f6;
  padding: 5.833vw 0 2.083vw;          /* 70 / 25 @1200 */
}

/* 各設問パネル: 809px 幅、白bg、border (上はQ1/Questionnaire部分が空く)、padding 34 */
.survey-q {
  max-width: 67.417vw;                     /* 809 @1200 */
  margin: 0 auto 6.25vw;                   /* 75 @1200 */
  background-color: var(--color-white);
  border: 1px solid #0091dd;
  border-top: 0;                           /* 上 border は ::before で部分描画 */
  padding: 2.833vw;                        /* 34 @1200 */
  position: relative;
}
/* 上 border: Q1 / Questionnaire 部分を避けて右側だけ描画 */
.survey-q::before {
  content: "";
  position: absolute;
  top: 0;
  left: 14.167vw;                          /* 170 @1200 */
  right: -1px;
  height: 1px;
  background-color: #0091dd;
}
/* 左の上端を少し描画 (Q1の左より上) */
.survey-q::after {
  content: "";
  position: absolute;
  top: 0;
  left: -1px;
  width: 0;                                /* 現状は0、必要なら調整 */
  height: 1px;
  background-color: #0091dd;
}

/* QXのヘッダー部 (Q番号 + Questionnaire + 質問文)
   Figma: Q1(87x48) と Questionnaire(94x48) は visible panel top から
   24px 上にはみ出す (= Frame201 y=0、panel rect y=24) */
.survey-q__head {
  position: relative;
  margin-bottom: 2vw;                      /* 24 @1200 */
}
/* Q1 / Questionnaire: パネル上端から半分はみ出し (border 側で空けてある) */
.survey-q__num {
  position: absolute;
  top: -4.5vw;                             /* -54 @1200 */
  left: -2vw;                              /* -24 @1200 */
  margin: 0;
  font-family: var(--ff-en-body);          /* Poppins Medium 40px */
  font-size: max(28px, 3.333vw);           /* 40 @1200 / 最低28 */
  font-weight: 500;
  color: #0091dd;
  letter-spacing: 0;
  line-height: 1;
}
.survey-q__sub {
  position: absolute;
  top: -3.167vw;                           /* -38 @1200 */
  left: 3.417vw;                           /* 41 @1200 */
  margin: 0;
  font-family: var(--ff-en-body);          /* Poppins Medium 10px */
  font-size: max(9px, 0.833vw);            /* 10 @1200 / 最低9 */
  font-weight: 500;
  color: #0091dd;
  letter-spacing: 0.05em;
  line-height: 1;
}
.survey-q__qtext {
  font-family: var(--ff-jp);               /* Noto Sans JP Medium 16px */
  font-size: max(14px, 1.333vw);           /* 16 @1200 / 最低14 */
  font-weight: 500;
  line-height: 1.25;                       /* 20/16 */
  color: #0091dd;
  margin: 0;
}

/* チャート画像表示 */
.survey-q__chart-img {
  text-align: left;
}
.survey-q__chart-img img {
  max-width: 100%;
  height: auto;
  display: block;
}
.survey-q__chart-img--center { text-align: center; }
.survey-q__chart-img--center img { margin: 0 auto; }
/* 各 Q ごとの画像幅 (1200px基準でデザイン値)
   width:100% を基本に、 1200vw超では vw 上限でスケール。 親の幅が画像px幅を下回ったら自動で 100% */
.survey-q__chart-img--q2 img { width: 100%; max-width: 59.667vw; }  /* 716 */
.survey-q__chart-img--q3 img { width: 100%; max-width: 61vw; }       /* 732 */
.survey-q__chart-img--q4 img { width: 100%; max-width: 19.667vw; }   /* 236 */
.survey-q__chart-img--q6 img { width: 100%; max-width: 48.167vw; }   /* 578 */
.survey-q__chart-img--q7 {
  text-align: center;
}
.survey-q__chart-img--q7 img {
  width: 100%;
  max-width: 32.583vw;                                               /* 391 */
  margin: 0 auto;
}
/* タブレット以下: max-width vw を解除して 100% 表示 */
@media (max-width: 1199px) {
  .survey-q__chart-img--q2 img,
  .survey-q__chart-img--q3 img,
  .survey-q__chart-img--q4 img,
  .survey-q__chart-img--q6 img,
  .survey-q__chart-img--q7 img {
    max-width: 100%;
  }
  /* Q2/Q3/Q6: 画像は元サイズの 2/3 まで縮小、それ以下は横スクロール */
  .survey-q__chart-img--q2,
  .survey-q__chart-img--q3,
  .survey-q__chart-img--q6 {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .survey-q__chart-img--q2 img { min-width: 477px; }  /* 716 × 2/3 */
  .survey-q__chart-img--q3 img { min-width: 488px; }  /* 732 × 2/3 */
  .survey-q__chart-img--q6 img { min-width: 385px; }  /* 578 × 2/3 */
  /* Q5: タブレットで 2列 */
  .survey-q__icon-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* SP: Q5 1列 */
@media (max-width: 767px) {
  .survey-q__icon-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Q1: テキスト引用グリッド (3列、最終行2件は中央寄せ)
   6カラム+各itemをspan2に分割して、最後の2itemをcol2/col4スタートで中央配置 */
.survey-q__grid-text {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.75vw;                             /* 21 @1200 */
}
.survey-q__grid-text > * {
  grid-column: span 2;
}
.survey-q__grid-text > :nth-last-child(2) {
  grid-column: 2 / span 2;                 /* col 2-3 */
}
.survey-q__quote {
  background-color: #e1eff7;
  border-radius: 7px;
  min-height: 8.333vw;                     /* 100 @1200 */
  padding: 1.333vw 1.667vw;                /* 16 / 20 @1200 */
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
  font-family: var(--ff-jp);
  font-size: max(11px, 1vw);               /* 12 @1200 / 最低11 */
  line-height: 1.667;                      /* 20/12 */
  color: #155c99;
}

/* Q4: ギャップ — donut + テキスト */
.survey-q__gap {
  display: grid;
  grid-template-columns: 19.667vw 1fr;     /* 236 @1200 */
  gap: 3.333vw;                            /* 40 @1200 */
  align-items: end;
}
.survey-q__gap-donut img {
  width: 100%;
  height: auto;
}
.survey-q__gap-text {
  max-width: 35.083vw;                     /* 421 @1200 */
}
.survey-q__gap-text p {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);           /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 1.4;
  color: #000;
}
/* 「・」+ 2行目以降を文字頭にインデント揃え */
.survey-q__gap-item {
  position: relative;
  padding-left: 1em;
  text-indent: 0;
  margin: 0;
}
.survey-q__gap-item::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
.survey-q__gap-text .survey-q__gap-label {
  color: #155c99;
}
.survey-q__gap-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 8.667vw;                          /* 104 @1200 */
  height: 2.5vw;                           /* 30 @1200 */
  padding: 0;
  background-color: var(--color-white);
  border: 1px solid #0091dd;
  font-family: var(--ff-jp);
  font-size: max(12px, 1.083vw);           /* 13 @1200 / 最低12 */
  font-weight: var(--fw-bold);
  color: #155c99;
  margin-bottom: 1.333vw;                  /* 16 @1200 */
}

/* Q5: アイコンカード — 各画像 max 233px、入る分だけ中央寄せで並べる */
.survey-q__icon-grid {
  display: grid;
  justify-content: center;
  gap: 1.333vw;                            /* 16 @1200 */
}
.survey-q__icon-grid img {
  width: 100%;
  max-width: 233px;                       /* 元サイズを上限 (タブレット/SPで拡大を防ぐ) */
  height: auto;
  display: block;
  margin: 0 auto;
}
/* PC: 233 @1200 の 3列 (auto-fit) */
@media (min-width: 1200px) {
  .survey-q__icon-grid {
    grid-template-columns: repeat(auto-fit, 19.417vw);
  }
  .survey-q__icon-grid img {
    max-width: 19.417vw;
  }
}

/* Q7 下部の 一行コメント (画像の下に「他にも… …など」) */
.survey-q__bottom {
  margin-top: 2.333vw;                     /* 28 @1200 */
}
.survey-q__bottom-text {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);           /* 14 @1200 / 最低13 */
  font-weight: 500;
  line-height: 1.6;
  color: #0091dd;
  text-align: center;
}

@media (max-width: 1199px) {
  .survey-q {
    padding: 40px 28px 32px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 60px;
  }
  .survey-q__num { top: -60px; }
  .survey-q__sub { top: -44px; }
  /* 2 列固定。最終2件中央寄せ用の6colオーバーライドを解除 */
  .survey-q__grid-text {
    grid-template-columns: repeat(2, 1fr);
  }
  .survey-q__grid-text > * {
    grid-column: auto;
  }
  .survey-q__grid-text > :nth-last-child(2) {
    grid-column: auto;
  }
  .survey-q__gap { grid-template-columns: 1fr; }
  /* ドーナツ画像など: PC幅 (276px) を超えない */
  .survey-q__gap-donut,
  .survey-q__gap-donut img {
    max-width: 276px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 767px) {
  .survey { padding-bottom: 40px; }
  .survey-intro { padding: 24px 16px; }
  .survey-intro__text { font-size: 12px; max-width: 100%; margin: 0 16px; }
  .survey-q {
    padding: 24px 16px;
    margin: 0 16px 40px;                   /* 左右に余白、画面端から離す */
    max-width: calc(100% - 32px);
  }
  /* Q1 / Questionnaire のはみ出し位置: SP時 番号サイズ縮小 + 上線回避 */
  .survey-q__num { left: -10px; top: -38px; font-size: 28px; }
  .survey-q__sub { top: -28px; left: 32px; }
  /* SP時 ::before 上線の開始位置を Questionnaire 右端より右に (sub.right ≒ 32+90 = 122) */
  .survey-q::before { left: 130px; }
  .survey-q__qtext { font-size: 13px; padding-top: 16px; }
  /* grid-text: タブレットの 2 列 1fr を解除して自然な幅、gap 10 */
  .survey-q__grid-text {
    gap: 10px;
  }
  .survey-q__gap { gap: 20px; }
  /* gap-label SP: vw値が極小になるため固定px + 自然幅 */
  .survey-q__gap-label,
  .survey-q__bottom .survey-q__gap-label {
    width: auto;
    max-width: 100%;
    min-width: 104px;
    height: 30px;
    padding: 0 12px;
    font-size: 13px;
    flex: 0 0 auto;
  }
  /* gap-text SP: 親いっぱい使う */
  .survey-q__gap-text {
    max-width: 100%;
  }
  .survey-q__gap-text p {
    font-size: 13px;
  }
}

.survey-q__title {
  display: flex;
  align-items: baseline;
  gap: 16px;
  font-family: var(--ff-jp);
  font-size: 18px;
  font-weight: var(--fw-bold);
  color: #155c99;
  margin: 0 0 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid #d5e9f4;
}

/* Q1 text grid */
.survey-q__grid--text {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.survey-q__item {
  background-color: #d5e9f4;
  padding: 16px 12px;
  font-family: var(--ff-jp);
  font-size: 12px;
  color: #155c99;
  text-align: center;
  line-height: 18px;
}

/* Bar chart */
.survey-q__chart {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.bar-item {
  display: grid;
  grid-template-columns: 200px 1fr 60px;
  align-items: center;
  gap: 12px;
}
.bar-label {
  font-family: var(--ff-jp);
  font-size: 12px;
  color: #155c99;
  text-align: right;
}
.bar-fill {
  height: 18px;
  background-color: #3cabe6;
  width: var(--w);
}
.bar-val {
  font-family: var(--ff-en-body);
  font-size: 13px;
  color: #155c99;
}

/* Donut */
.survey-q__donut-wrap {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 32px;
  align-items: center;
}
.survey-donut {
  width: 100%;
  height: auto;
}
.survey-q__donut-legend {
  font-family: var(--ff-jp);
  font-size: 13px;
  line-height: 22px;
  color: #155c99;
}
.survey-q__donut-legend ul {
  list-style: disc;
  padding-left: 20px;
  margin: 8px 0 0;
}

.survey-q__small-donut {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 32px;
  align-items: center;
}
.survey-q__caption {
  font-family: var(--ff-jp);
  font-size: 14px;
  color: #155c99;
  font-weight: var(--fw-medium);
}

/* Icon cards Q5 */
.survey-q__icons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.survey-q__icon-card {
  text-align: center;
}
.survey-q__icon-circle {
  width: 64px;
  height: 64px;
  background-color: #d5e9f4;
  border: 2px solid #3cabe6;
  border-radius: 50%;
  margin: 0 auto 12px;
}
.survey-q__icon-card p {
  font-family: var(--ff-jp);
  font-size: 12px;
  color: #155c99;
  line-height: 18px;
}

@media (max-width: 1199px) {
  .survey-q__grid--text { grid-template-columns: repeat(2, 1fr); }
  .survey-q__icons { grid-template-columns: repeat(2, 1fr); }
  .survey-q__donut-wrap, .survey-q__small-donut { grid-template-columns: 1fr; }
  .bar-item { grid-template-columns: 140px 1fr 50px; }
}
@media (max-width: 767px) {
  .bar-item { grid-template-columns: 100px 1fr 40px; gap: 8px; }
  .bar-label { font-size: 11px; }
}

/* ============ pdetail (社員紹介詳細) タブレット/SP ============ */
@media (max-width: 1199px) {
  /* article__row はタブレットでは2カラム維持 (SPで縦並びに切替) */
  .pdetail-article__block--full { padding: 0 24px; }
}

@media (max-width: 767px) {
  .pdetail-article__row { padding: 0 16px; gap: 24px; }
  .pdetail-article__heading { font-size: 16px; }
  .pdetail-article__text { font-size: 13px; line-height: 1.8; }
  .pdetail-article__block--full { padding: 0 16px; }
  .pdetail-qa__title { font-size: 16px; }
  .pdetail-hero__title { font-size: 24px; }
  .pdetail-hero__content { padding: 16px; }
}

/* ============================================================
   PERSON 01 専用: vw 指定テスト
   1200px幅基準で px → vw 換算 (1px = 1/1200 * 100 = 0.0833vw)
   line-height は unitless ratio で固定 (px に依存しない)
   全 person detail (01〜06) に適用
   ============================================================ */
@media (min-width: 1200px) {
  body[data-page="people"][data-path^="/people/0"] {
    /* Hero */
    .pdetail-hero { height: 48.917vw; }                  /* 587 */
    .pdetail-hero__content {
      height: 41.917vw;                                   /* 503 */
      max-width: 92.667vw;                                /* 1112 */
    }
    .pdetail-hero__inner { top: 8.5vw; max-width: 37.083vw; } /* 102 / 445 */
    .pdetail-hero__title {
      width: 37.083vw;                                    /* 445 */
      min-height: 13.917vw;                               /* 167 */
      font-size: 2.333vw;                                 /* 28 */
      line-height: 1.4;
      padding: 1vw 1.667vw 1vw 2.583vw;                   /* 12 20 12 31 */
      margin: 0 0 1.333vw;                                /* 16 */
      background-image:
        linear-gradient(90deg, rgba(0, 106, 183, 0.8) 34.5vw, transparent 34.5vw),
        linear-gradient(90deg, rgba(0, 106, 183, 0.8) 0%, rgba(0, 106, 183, 0.8) 100%);
    }
    .pdetail-hero__name-jp,
    .pdetail-hero__meta { padding-left: 2.583vw; }        /* 31 */
    .pdetail-hero__name-jp {
      margin: 2.5vw 0 1vw;                                /* 30 0 12 */
      font-size: 2.333vw;                                 /* 28 */
      gap: 1.333vw;                                       /* 16 */
    }
    .pdetail-hero__name-en { font-size: 1vw; }            /* 12 */
    .pdetail-hero__meta { font-size: 1.167vw; line-height: 1.4; } /* 14 */
    .pdetail-hero__big {
      font-size: 11vw;                                    /* 132 */
      right: -1.5vw;                                      /* -18 */
      line-height: 0.72;
    }

    /* Profile */
    .pdetail-profile {
      min-height: 11.25vw;                                /* 135 */
      padding: 1.25vw 7.333vw 1.25vw 12.167vw;            /* 15 88 15 146 */
    }
    .pdetail-profile__stripe { left: 7.333vw; width: 2.583vw; }  /* 88 / 31 */
    .pdetail-profile__title { font-size: 2.083vw; line-height: 1.2; }  /* 25 */
    .pdetail-profile__text {
      font-size: 1.167vw;
      line-height: 1.6;
      max-width: 59.333vw;                                /* 712 */
    }

    /* Article */
    .pdetail-article { padding: 6.667vw 7.333vw 4.167vw; } /* 80 88 50 */
    .pdetail-article::before { width: 50vw; height: 23vw; } /* 600 / 276 */
    .pdetail-article__photo {
      width: 92.667vw;                                    /* 1112 */
      height: 37.5vw;                                     /* 450 */
      margin: 0 -7.333vw 4.667vw -7.333vw;                /* 0 -88 56 -88 */
    }
    .pdetail-article__row {
      width: 78.083vw;                                    /* 937 */
      margin: 0 auto 4.667vw;                             /* 56 */
    }
    .pdetail-article__heading { font-size: 1.667vw; line-height: 1.4; padding-bottom: 1vw; }
    .pdetail-article__text { font-size: 1.167vw; line-height: 1.6; padding: 2.083vw; }
    .pdetail-article__block { width: 35.417vw; }          /* 425 */
    .pdetail-article__block--full {
      width: 78.083vw;                                    /* 937 */
      margin: 2vw auto 0;                                 /* 24 */
    }

    /* Q&A */
    .pdetail-qa { padding-top: 8.333vw; }                 /* 100 */
    .pdetail-qa::after { top: 33.75vw; }                  /* 405 */
    .pdetail-qa::before { top: 4.417vw; width: 31.167vw; height: 3.917vw; } /* 53 / 374 / 47 */
    .pdetail-qa__photo {
      width: 92.667vw;                                    /* 1112 */
      height: 37.5vw;                                     /* 450 */
    }
    .pdetail-qa__inner { padding: 3.083vw 5% 6.5vw; }     /* 37 5% 78 */
    .pdetail-qa__inner::after {
      width: 2.667vw;                                     /* 32 */
      height: 25.333vw;                                   /* 304 */
      bottom: -3.5vw;                                     /* -42 */
    }
    .pdetail-qa__title { font-size: 5.417vw; line-height: 1; }
    .pdetail-qa__q { font-size: 1.5vw; line-height: 1.6; }
    .pdetail-qa__a { font-size: 1.167vw; line-height: 1.6; }
    .pdetail-qa__list { max-width: 52.833vw; }            /* 634 */

    /* Schedule */
    .pdetail-schedule { padding: 2.75vw 7.333vw 4.417vw; }              /* 33 88 53 */
    .pdetail-schedule__title { font-size: 3.083vw; line-height: 1; margin: 0 0 0.333vw; }
    .pdetail-schedule__sub { font-size: 1.667vw; margin: 0 0 3.333vw; }
    .pdetail-schedule__list { max-width: 98.333vw; gap: 1.167vw; }      /* 1180 / 14 */
    .pdetail-schedule__list::before { top: 3.667vw; }                   /* 44 */
    .pdetail-schedule__list li { width: 12.667vw; }                     /* 152 */
    .pdetail-schedule__list li.pdetail-schedule__list-item--narrow { width: 10.333vw; }  /* 124 */
    .pdetail-schedule__list li::before {
      top: 3.083vw;                                                     /* 37 */
      width: 1.25vw;                                                    /* 15 */
      height: 1.25vw;
    }
    .pdetail-schedule__time { font-size: 1.667vw; margin: 0 0 2.5vw; }  /* 20 / 30 */
    .pdetail-schedule__label {
      font-size: 1.5vw;
      line-height: 1.833vw;                                             /* 22 */
      margin: 0.833vw 0 1vw;                                            /* 10 / 12 */
    }
    .pdetail-schedule__desc { font-size: 1.167vw; line-height: 1.5vw; }

    /* Future / OFF */
    .pdetail-future {
      padding: 7.667vw 7.333vw 3.25vw;                                  /* 92 88 39 */
      grid-template-columns: 42.167vw 42.167vw;                         /* 506 506 */
      gap: 1vw;                                                         /* 12 */
    }
    .pdetail-future::before { width: 7.333vw; height: 6vw; }            /* 88 72 */
    .pdetail-future__col {
      padding: 2.333vw 2.667vw;                                         /* 28 32 */
      min-height: 25.083vw;                                             /* 301 */
    }
    .pdetail-future__big {
      font-size: 4.583vw;
      line-height: 1;
      margin: -4.583vw 0 2.333vw;                                       /* -55 / 28 */
    }
    .pdetail-future__heading {
      font-size: 1.833vw;
      line-height: 1.4;
      margin: 0 0 1.333vw;                                              /* 16 */
    }
    .pdetail-future__text { font-size: 1.167vw; line-height: 1.7; }
    .pdetail-future__off-row {
      grid-template-columns: 15.417vw 1fr;                              /* 185 */
      gap: 1.333vw;                                                     /* 16 */
    }
    .pdetail-future__off-photo { width: 15.417vw; height: 13.583vw; }   /* 185 / 163 */
    .pdetail-future__note { font-size: 1vw; }

    /* Hero content の right を 0 に戻す (vw化済みなので余白計算不要) */
    .pdetail-hero__content {
      right: 0;
      width: 92.667vw;
      max-width: 92.667vw;
    }

    /* Nav */
    .pdetail-nav { height: 14vw; }                                /* 168 */
    .pdetail-nav::before,
    .pdetail-nav::after {
      width: 47vw;                                                /* 564 */
      max-width: calc(100% - 4vw);                                /* 48 */
    }
    .pdetail-nav::before { top: 5.083vw; }                        /* 61 */
    .pdetail-nav::after  { top: 8.667vw; }                        /* 104 */
    .pdetail-nav__btn {
      width: 16.083vw;                                            /* 193 */
      height: 2.333vw;                                            /* 28 */
      font-size: 1.25vw;                                          /* 15 */
    }
    .pdetail-nav__btn:not(:last-child)::after { height: 1.083vw; } /* 13 */
  }
}

/* ============================================================
   Movie card (button化) + ポップアップモーダル
   ============================================================ */
.movie-card {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-align: left;
  width: 100%;
  font: inherit;
  color: inherit;
}
.movie-card:hover { opacity: 0.85; transition: opacity 0.2s ease; }
.movie-card:focus-visible { outline: 2px solid #0091dd; outline-offset: 2px; }

.movie-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.movie-modal.is-open {
  display: flex;
}
.movie-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}
.movie-modal__inner {
  position: relative;
  width: 100%;
  max-width: 800px;
  z-index: 1;
}
.movie-modal__close {
  position: absolute;
  top: -40px;
  right: 0;
  width: 32px;
  height: 32px;
  background: none;
  border: 0;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.movie-modal__close:hover { opacity: 0.7; }
.movie-modal__video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;  /* 16:9 default; JSで縦動画 (177.78%) を上書き */
  background: #000;
}
.movie-modal__video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
/* 縦動画 (9:16) 用: モーダルを狭めて高さ確保 */
.movie-modal__inner--portrait {
  max-width: 360px;
}
.movie-modal__inner--portrait .movie-modal__video {
  padding-top: 177.78%;
}
