/* ===========================
   internship.css — INTERNSHIP 詳細ページ
   Figma 574:5207 メタデータ忠実版
   =========================== */

/* デフォルト page-hero accent (赤線) は非表示 - 独自実装 */
body[data-page="internship"] .page-hero__accent { display: none; }

/* ============================================
   1. FV / Page Hero (Figma 574:5216 KV : 1200×500)
   レイヤー (下→上): 画像 → 青レイヤー(右寄せ) → 青パネル(左) → 文字
   ============================================ */
.intern-hero {
  position: relative;
  width: 100%;
  height: 41.667vw;              /* 500 @1200 */
  min-height: 320px;
  overflow: hidden;
  background-color: #1a4f8a;
}

/* z:1 ベース画像 */
.intern-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.intern-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* z:2 青レイヤー (872×500、右寄せ) - 装飾要素を全て含む */
.intern-hero__overlay {
  position: absolute;
  top: 0;
  right: 0;
  width: min(872px, 72.66%);     /* 872 / 1200 */
  height: 100%;
  z-index: 2;
  background-image: url('../../assets/images/common/blue-overlay.png');
  background-size: contain;
  background-position: right center;
  background-repeat: no-repeat;
  pointer-events: none;
}

/* z:3 左側 青パネル (Rectangle 319: 582×500 = 48.5% of 1200) */
.intern-hero__panel {
  position: absolute;
  top: 0;
  left: 0;
  width: 56%;                    /* 元 48.5% / Figma 582 → 拡張で約 672 相当 */
  height: 100%;
  background-image: url('../../assets/images/common/blue-back.png');
  background-size: cover;
  background-position: center;
  z-index: 3;
}

/* タグテキスト (INTERNSHIP + インターンシップ) + 白線 を一つのコンテナにまとめる */
.intern-hero {
  --tag-left: max(20px, 7vw);           /* タグ左位置 (上限解除) */
}

.intern-hero__tag {
  position: absolute;
  top: max(110px, 13.583vw);            /* 163 @1200, 最低110 */
  left: var(--tag-left);
  z-index: 4;                           /* 最前面: 画像→青レイヤー→青パネル→文字 */
  color: var(--color-white);
}

.intern-hero__tag-en {
  font-family: var(--ff-en-body); /* Poppins */
  font-size: max(48px, 5.667vw);        /* 68 @1200, 最低48 */
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  line-height: 1;
  animation: hero-fade-up 0.9s cubic-bezier(0.2, 0.7, 0.3, 1) 0.15s both;
}

.intern-hero__tag-jp {
  margin-top: 0;                       /* user spec: 0 */
  font-family: var(--ff-jp);
  font-size: max(16px, 1.833vw);       /* 22 @1200, 最低16 */
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  line-height: 1.3;
  animation: hero-fade-up 0.9s cubic-bezier(0.2, 0.7, 0.3, 1) 0.4s both;
}

/* タグ下の白い横線 (画面左端 ⇒ タグ内 16.417vw まで、文字より 1.333vw 下) */
.intern-hero__tag-line {
  margin-top: 1.333vw;                                /* 16 @1200 */
  margin-left: calc(-1 * var(--tag-left));            /* タグ位置を相殺して画面左端から開始 */
  width: calc(var(--tag-left) + 16.417vw);            /* 可変左部 + 197 @1200 */
  height: 0.25vw;                                     /* 3 @1200 */
  min-height: 2px;
  background-color: var(--color-white);
  transform-origin: left center;
  animation: hero-slide-line 0.7s cubic-bezier(0.4, 0.0, 0.2, 1) 0.85s both;
}

/* ============ Hero animations ============ */
@keyframes hero-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes hero-slide-line {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* prefers-reduced-motion 配慮 */
@media (prefers-reduced-motion: reduce) {
  .intern-hero__tag-en,
  .intern-hero__tag-jp,
  .intern-hero__tag-line {
    animation: none;
  }
}

/* 旧 装飾要素は blue-overlay.png に内包されたため非表示 */
.intern-hero__accent-red,
.intern-hero__accent-vert,
.intern-hero__accent-bar,
.intern-hero__accent-box,
.intern-hero__band {
  display: none;
}


/* ============================================
   2. Lead 文 (Hero下)
   ============================================ */
.intern-lead {
  padding: 4.667vw 2vw 1.333vw;        /* 56 / 24 / 16 @1200 */
  text-align: center;
  background: var(--color-white);
}

.intern-lead__text {
  max-width: 73.333vw;                 /* 880 @1200 */
  margin: 0 auto;
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  line-height: 2;
  color: #155c99;
  letter-spacing: 0.05em;
}


/* ============================================
   3. Tabs (Figma 574:5227 : 1200×468)
   各カード = 横分割 (左ラベル + 右画像) ＋ 矢印
   ============================================ */
.intern-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;             /* 行内のカードを中央寄せ (2列目に1個だけ残った時) */
  gap: 1vw;                            /* 12 @1200 */
  max-width: 92.667vw;                 /* 1112 @1200 */
  margin: 2.667vw auto 6.667vw;        /* 32 / 80 @1200 */
  padding: 0 2vw;                      /* 24 @1200 */
}

.intern-tab {
  position: relative;
  /* Figma: label 167×168 + image 167×168 = 334×168 (50:50) */
  display: grid;
  grid-template-columns: 1fr 1fr;
  aspect-ratio: 334 / 168;
  /* flex 子: 基本 334px、 横幅足りなければ最小 280px まで縮む */
  flex: 1 1 280px;
  max-width: 334px;
  min-width: 0;
  text-decoration: none;
  background: var(--color-white);
  box-shadow: 0 4px 14px rgba(0, 44, 106, 0.10);
  transition: transform var(--transition-base);
}

.intern-tab:hover { transform: translateY(-2px); opacity: 1; }

.intern-tab__label {
  background-image: url('../../assets/images/internship/rect-bg.jpg');  /* Figma Rectangle 388 */
  background-size: cover;
  background-position: center;
  color: var(--color-white);
  padding: 0;
  position: relative;
  overflow: hidden;
}
/* sub-top + name + sub-bottom のテキスト3行を 1枚の画像で置換 (1day/5days/logifes 順)
   画像は label 全面にフィット、テキストは aria 用に残し視覚的に非表示 */
.intern-tab__label::after {
  content: "";
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  z-index: 1;
  pointer-events: none;
}
.intern-tab:nth-child(1) .intern-tab__label::after {
  background-image: url('../../assets/images/internship/intern-tab-bg-1.png');
}
.intern-tab:nth-child(2) .intern-tab__label::after {
  background-image: url('../../assets/images/internship/intern-tab-bg-2.png');
}
.intern-tab:nth-child(3) .intern-tab__label::after {
  background-image: url('../../assets/images/internship/intern-tab-bg-3.png');
}
/* テキストは a11y のためDOMに残しつつ視覚的に非表示 */
.intern-tab__sub-top,
.intern-tab__name,
.intern-tab__sub-bottom {
  visibility: hidden;
}

/* シアンオーバーレイ Figma: rgba(0,163,255,0.5) */
.intern-tab__label::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 163, 255, 0.5);
  z-index: 0;
  display: none;
}

.intern-tab__label > * {
  position: relative;
  z-index: 1;
}

/* 右画像にも暗紺オーバーレイ Figma: rgba(0,44,106,0.4) */
.intern-tab__image {
  position: relative;
  overflow: hidden;
}

/* Figma 実値: リアルを知ろう 16px Regular at y=0 */
.intern-tab__sub-top {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  font-family: var(--ff-jp);
  font-size: max(13px, 1.333vw);       /* 16 @1200 / 最低13 */
  font-weight: 400;
  line-height: 1.076;                  /* 17.222/16 */
  color: var(--color-white);
  white-space: nowrap;
}

/* Figma 実値: 1DAY 42px Poppins Light at y=103 */
.intern-tab__name {
  position: absolute;
  top: 9.667vw;                        /* 116 @1200 */
  left: 0;
  z-index: 2;
  font-family: var(--ff-en-body);
  font-size: max(28px, 3.5vw);         /* 42 @1200 / 最低28 */
  font-weight: 300;
  line-height: 0.619;                  /* 26/42 */
  letter-spacing: -0.02em;
  color: var(--color-white);
  margin: 0;
  white-space: nowrap;
}

/* Figma 実値: 企業説明会 33.68px Regular at y=127 */
.intern-tab__sub-bottom {
  position: absolute;
  top: 11.333vw;                       /* 136 @1200 */
  left: 0;
  z-index: 2;
  font-family: var(--ff-jp);
  font-size: max(22px, 2.807vw);       /* 33.68 @1200 / 最低22 */
  font-weight: 400;
  line-height: 1.5;                    /* 50.5/33.68 ≒ 1.5 */
  color: var(--color-white);
  display: flex;
  align-items: center;
  gap: 0.333vw;                        /* 4 @1200 */
  white-space: nowrap;
  margin: 0;
}

/* 5DAYS タブ専用: sub-bottom 内の各要素を絶対配置 */
.intern-tab__sub-bottom:has(.intern-tab__big),
.intern-tab__sub-bottom:has(.intern-tab__tiny) {
  display: block;
  inset: 0;
  width: 100%;
  height: 100%;
  top: 0;
}
.intern-tab__big {
  position: absolute;
  font-family: var(--ff-jp);
  font-size: 33.68px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 50.5px;
  color: var(--color-white);
}
/* 3PL: 左下 (Figma y=141) */
.intern-tab__big:first-child {
  top: 136px;
  left: 0;
}
/* 体験: やや右上 (Figma y=128) */
.intern-tab__big:last-child {
  top: 136px;
  left: 98px;
}
/* 物流 コンサル ティング: 3PLと体験の間の小さな縦文字 */
.intern-tab__tiny {
  position: absolute;
  top: 148px;
  left: 56px;
  font-family: var(--ff-jp);
  font-size: 10px;
  font-weight: 400;
  line-height: 11px;
  color: var(--color-white);
  display: inline-block;
  vertical-align: middle;
  text-align: center;
  white-space: normal;
  width: 42px;
}

.intern-tab__image {
  overflow: hidden;
}

.intern-tab__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 矢印: 26×26 白塗り + 中に水平線+右上斜線 (青) */
.intern-tab__arrow {
  position: absolute;
  bottom: 10px;
  right: 10px;
  width: max(22px, 2.167vw);           /* 26 @1200 / 最低22 */
  height: max(22px, 2.167vw);
  background-color: #ffffff;
  z-index: 2;
}
.intern-tab__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  right: max(5px, 0.5vw);              /* 6 @1200 / 最低5 */
  width: max(12px, 1.167vw);           /* 14 @1200 / 最低12 */
  height: 1px;
  background: #008BD3;
  transform: translateY(-50%);
}
.intern-tab__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  right: max(5px, 0.5vw);              /* 6 @1200 / 最低5 */
  width: max(6px, 0.583vw);            /* 7 @1200 / 最低6 */
  height: 1px;
  background: #008BD3;
  transform-origin: right center;
  transform: translateY(-50%) rotate(35deg);
}
.intern-tab__arrow img { display: none; }


/* ============================================
   4. Program section (説明 : 1200×1080)
   ============================================ */
.intern-program {
  position: relative;
  padding-bottom: 100px;
  background: linear-gradient(180deg, #d8ecf6 0%, #c0dceb 100%);  /* 薄ブルー背景 */
}

/* 上部 青背景バンド (Rectangle 410: 1200×235) */
.intern-program__title-band {
  height: 19.583vw;                    /* 235 @1200 */
  background-color: #3cabe6;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 4.583vw;                /* 55 @1200 */
}

.intern-program__heading {
  font-family: var(--ff-jp);
  font-size: max(22px, 2.667vw);       /* 32 @1200 / 最低22 */
  font-weight: 500;
  color: var(--color-white);
  letter-spacing: 0.14em;
  text-align: center;
}

/* 1200px センター固定コンテナ - 画像と白パネルの位置基準 */
.intern-program__container {
  position: relative;
  max-width: 100vw;                    /* 1200 → vw連動で内部の absolute 子と整合 */
  margin: -7.25vw auto 0;              /* -87 @1200 */
}

/* 白パネル (Rectangle 409: 1025×791) - x:88 から 88px インセット */
.intern-program__panel {
  position: relative;
  width: calc(100% - 14.583vw); /* 175 @1200 */
  max-width: 85.417vw;          /* 1025 @1200 */
  height: 65.917vw;             /* 791 @1200 */
  margin: 0 auto;
  background-color: var(--color-white);
  padding: 4.167vw 5vw;         /* 50 / 60 @1200 */
  z-index: 2;
  box-shadow: 0 6px 24px rgba(0, 44, 106, 0.08);
}

.intern-program__lead {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 1.571;                  /* 22/14 */
  font-weight: 500;
  color: var(--color-black);
  text-align: center;
  margin-bottom: 0;
}

/* インターン3 1 : コンテナ左端から (Figma x:0, y:296, 530×284) */
.intern-program__img-left {
  position: absolute;
  top: 12.333vw;               /* 148 @1200 */
  left: 0;
  width: 44.167vw;             /* 530 @1200 */
  height: 23.667vw;            /* 284 @1200 */
  z-index: 3;
}

.intern-program__img-left img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* インターン4 1 : コンテナ右端まで (Figma x:636, y:558, 564×295) */
.intern-program__img-right {
  position: absolute;
  top: 34.167vw;               /* 410 @1200 */
  right: 0;
  width: 47vw;                 /* 564 @1200 */
  height: 24.583vw;            /* 295 @1200 */
  z-index: 3;
}

.intern-program__img-right img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 右上: サブタイトル + 説明文 (枠付き) - Figma section x:568, y:347 */
.intern-program__caption-1 {
  position: absolute;
  top: 16.583vw;               /* 199 @1200 */
  left: 47.333vw;              /* 568 @1200 */
  width: 36vw;                 /* 432 @1200 */
  z-index: 4;
}

body[data-path="/internship/5days/"] .intern-program__caption-1 { top: 12.333vw; }   /* 148 */
body[data-path="/internship/5days/"] .intern-program__img-right { top: 44.583vw; }   /* 535 */
body[data-path="/internship/5days/"] .intern-program__heading { line-height: 1.094; }/* 35/32 */
body[data-path="/internship/5days/"] .intern-program__title-band { padding-top: 3.5vw; } /* 42 */

/* サブタイトル "ニチレイロジの"リアル"に触れる1日" - 四角枠で囲む */
.intern-program__caption-title {
  display: inline-flex;
  align-items: center;
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  font-weight: 500;
  line-height: 1.429;                  /* 20/14 */
  color: #155c99;
  letter-spacing: 0.02em;
  padding: 0.417vw 1.25vw;             /* 5 / 15 @1200 */
  border: 1px solid #3cabe6;
  background-color: transparent;
  margin-bottom: 1.333vw;              /* 16 @1200 */
}

.intern-program__caption-text {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 1.9;
  color: var(--color-black);
}

/* 左下: このプログラムで得られること + 箇条書き - Figma section x:143, y:650 */
.intern-program__caption-2 {
  position: absolute;
  top: 41.833vw;               /* 502 @1200 */
  left: 11.917vw;              /* 143 @1200 */
  width: 40.417vw;             /* 485 @1200 */
  z-index: 4;
}

/* "このプログラムで得られること" - caption-titleと同じ枠スタイル */
.intern-program__list-title {
  display: inline-flex;
  align-items: center;
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  font-weight: 500;
  line-height: 1.429;                  /* 20/14 */
  color: #155c99;
  letter-spacing: 0.02em;
  padding: 0.417vw 1.25vw;             /* 5 / 15 @1200 */
  border: 1px solid #3cabe6;
  background-color: transparent;
  margin-bottom: 1.333vw;              /* 16 @1200 */
}

.intern-program__list {
  list-style: none;
  padding: 0;
}

.intern-program__list li {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 2;
  color: var(--color-text);
}


/* ============================================
   5. Schedule (スケジュール : 1200×717)
   - SCHEDULE タイトル下半分から薄青背景
   - 4つの円を縦線で繋ぐ
   - 円の中にアイコン+時間ラベル
   - 右の画像は2行スパン
   ============================================ */
.intern-schedule {
  position: relative;
  padding: 8.333vw 0 6.667vw;  /* 100 / 80 @1200 */
  background: var(--color-white);
}

/* 薄青背景 (Rectangle 335: y:31以降) - タイトル下半分から始まる */
.intern-schedule__bg {
  position: absolute;
  top: 11vw;                          /* 132 @1200 */
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, #d8ecf6 0%, #c5dff0 100%);
  z-index: 1;
}

.intern-schedule__header {
  position: relative;
  max-width: 90vw;                    /* 1080 @1200 */
  margin: 0 auto;
  padding: 0 2vw;                     /* 24 @1200 */
  z-index: 2;
}

.intern-schedule__title {
  font-family: var(--ff-en-body);
  font-size: max(40px, 6.667vw);      /* 80 @1200 / 最低40 */
  font-weight: var(--fw-medium);
  color: #3cabe6;
  letter-spacing: 0.04em;
  line-height: 1;
}

.intern-schedule__sub {
  font-family: var(--ff-jp);
  font-size: max(12px, 1.083vw);      /* 13 @1200 / 最低12 */
  color: var(--color-blue-dark);
  letter-spacing: 0.08em;
  margin-top: 0.667vw;                /* 8 @1200 */
  margin-bottom: 2.667vw;             /* 32 @1200 */
}

/* 全体 grid : 110px(marker) 1fr(content) 380px(image, span 2) */
.intern-schedule__inner {
  position: relative;
  z-index: 2;
  max-width: 90vw;                    /* 1080 @1200 */
  margin: 0 auto;
  padding: 1.333vw 2vw 0;             /* 16 / 24 @1200 */
  display: grid;
  grid-template-columns: 10.833vw 1fr 31.667vw;  /* 130 / 380 @1200 */
  column-gap: 2.667vw;                /* 32 @1200 */
  row-gap: 0.667vw;                   /* 8 @1200 */
  align-items: start;
}

/* 画像なしバージョン (5days, logifes) - 2カラム */
.intern-schedule__inner--no-img {
  grid-template-columns: 10.833vw 1fr;  /* 130 @1200 */
}

/* マーカー (中央列) */
.intern-sched-marker {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-self: center;
  padding-top: 4px;
}

/* 円 (AM/LUNCH/PM 用 : 110×110, アイコン+時間ラベル INSIDE) */
.intern-sched-circle {
  width: 9.167vw;                     /* 110 @1200 */
  height: 9.167vw;
  border-radius: 50%;
  background-color: var(--color-white);
  border: 2px solid #3cabe6;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  box-shadow: 0 4px 12px rgba(0, 44, 106, 0.08);
}

.intern-sched-circle img {
  width: 3.167vw;                     /* 38 @1200 */
  height: 3.167vw;
  display: block;
  margin-bottom: 0.167vw;             /* 2 @1200 */
}

.intern-sched-circle .intern-sched-time {
  font-family: var(--ff-en-body);
  font-size: max(14px, 1.667vw);      /* 20 @1200 / 最低14 */
  font-weight: 600;
  color: #155c99;
  letter-spacing: 0.02em;
  line-height: 1.5;                   /* 30/20 */
}

/* 5days用: 日数の大きな数字 */
.intern-sched-day {
  font-family: var(--ff-en-body);
  font-size: max(24px, 3.167vw);      /* 38 @1200 / 最低24 */
  font-weight: var(--fw-medium);
  color: var(--color-blue-dark);
  line-height: 1;
}

.intern-sched-day + .intern-sched-time {
  margin-top: 0.333vw;                /* 4 @1200 */
}

/* Fin 用 小円 (43×43, 紺塗り + 白文字) - 1day専用 */
.intern-sched-circle--small {
  width: 3.667vw;                     /* 44 @1200 */
  height: 3.667vw;
  margin-top: 1.333vw;                /* 16 @1200 */
  background-color: #155c99;
  border-color: #155c99;
  box-shadow: none;
}

.intern-sched-circle--small .intern-sched-fin {
  font-family: var(--ff-en-body);
  font-size: max(12px, 1.333vw);      /* 16 @1200 / 最低12 */
  font-weight: var(--fw-medium);
  color: #ffffff;
  letter-spacing: 0.04em;
}

/* "さらに" 大円 (110×110) - logifes EXTRA用、塗りつぶし */
.intern-sched-circle--large-text {
  background-color: #155c99;
  border-color: #155c99;
}

.intern-sched-circle--large-text .intern-sched-fin {
  font-family: var(--ff-jp);
  font-size: max(14px, 1.833vw);       /* 22 @1200 / 最低14 */
  font-weight: var(--fw-medium);
  color: var(--color-white);   /* 白文字 */
  letter-spacing: 0.06em;
}

/* さらに セクションの コンテンツ - 通常より大きめ */
/* "さらに" 行: 経営層へ直接質問できる (24px) */
.intern-sched-marker:has(.intern-sched-circle--large-text) + .intern-sched-body .intern-sched-title {
  font-family: var(--ff-jp);
  font-size: 24px;
  font-weight: 500;
  color: #155c99;
  line-height: 1.3;
  margin-bottom: 6px;
}

/* 貴重なQ&A時間もご用意！ (混在サイズ) */
.intern-sched-marker:has(.intern-sched-circle--large-text) + .intern-sched-body .intern-sched-desc {
  font-family: var(--ff-jp);
  font-weight: 500;
  color: #155c99;
  line-height: 1.3;
  margin: 0;
}
.intern-sched-desc--lg { font-size: max(20px, 2.667vw); }  /* 32 @1200 / 最低20 */
.intern-sched-desc--en {
  font-family: var(--ff-en-body);
  font-size: max(22px, 3vw);          /* 36 @1200 / 最低22 */
}
.intern-sched-desc--sm { font-size: max(16px, 2vw); }     /* 24 @1200 / 最低16 */

/* 縦線 (Vector 50: 円を繋ぐ) - 棒線 */
.intern-schedule__inner::before {
  content: "";
  position: absolute;
  top: 6.667vw;                       /* 80 @1200 */
  bottom: 5.667vw;                    /* 68 @1200 */
  left: calc(2vw + 10.833vw / 2);     /* padding24 + marker 130 / 2 @1200 */
  width: 2px;
  background-color: #3cabe6;
  z-index: 1;
}

/* コンテンツ (中央列) */
.intern-sched-body { padding-top: 2vw; }  /* 24 @1200 */

.intern-sched-title {
  font-family: var(--ff-jp);
  font-size: max(16px, 2vw);          /* 24 @1200 / 最低16 */
  font-weight: 500;
  color: #155c99;
  margin-bottom: 1vw;                 /* 12 @1200 */
  letter-spacing: 0.04em;
  line-height: 1.3;
}

.intern-sched-desc {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);      /* 14 @1200 / 最低13 */
  line-height: 1.429;                 /* 20/14 */
  color: #000000;
  margin: 0 0 1.167vw;                /* 14 @1200 */
}

/* テーマ/質問例 等 ラベル付きボックス */
.intern-sched-tag-row {
  display: flex;
  align-items: flex-start;
  gap: 1.333vw;                       /* 16 @1200 */
  margin-top: 1.167vw;                /* 14 @1200 */
  margin-bottom: 0;
}

.intern-sched-tag-row + .intern-sched-tag-row { margin-top: 0.667vw; }  /* 8 */

.intern-sched-tag {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  background: var(--color-white);
  border: 1px solid #155c99;
  color: #155c99;
  font-family: var(--ff-jp);
  font-size: max(12px, 1.167vw);      /* 14 @1200 / 最低12 */
  font-weight: 700;
  line-height: 1.429;                 /* 20/14 */
  padding: 0.417vw 1.25vw;            /* 5 / 15 @1200 */
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.intern-sched-tag-text {
  flex: 1;
  font-family: var(--ff-jp);
  font-size: max(12px, 1.083vw);      /* 13 @1200 / 最低12 */
  line-height: 1.8;
  color: var(--color-black);
}

/* 画像 (右列、2行スパン) */
.intern-sched-img {
  align-self: start;
  margin-top: 8px;
}

.intern-sched-img--span2 {
  grid-row: span 2;
}

.intern-sched-img img {
  width: 100%;
  aspect-ratio: 378 / 266;
  object-fit: cover;
  display: block;
}


/* ============================================
   6. Review (声 : 1200×762)
   - 背景: 6つの回転四角形 (Figma準拠)
   - タイトル白
   - 吹き出し: 薄青半透明 + 深青文字
   ============================================ */
.intern-review {
  position: relative;
  padding: 5vw 0 1.5vw;
  background-color: var(--color-white);
  overflow: hidden;
  min-height: 63.5vw;                 /* 762 @1200 (shape 表示エリア確保) */
}

/* 6つの背景図形 (Figma 574:5351, 5367-5371) */
.intern-review__shapes {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

.intern-review__shape {
  position: absolute;
  /* 各シェイプはコンテナ内で回転中心軸を持つ */
}

.intern-review__shape-inner {
  width: 100%;
  height: 100%;
  background-color: #0091dd;
  opacity: 0.6;
}

.intern-review__shape--light .intern-review__shape-inner {
  background-color: #d5e9f4;
  opacity: 0.7;
}

.intern-review__shape--light2 .intern-review__shape-inner {
  background-color: #d5e9f4;
  opacity: 0.8;
}

/* Figma実値の各シェイプ位置・サイズ・回転 */
/* 各シェイプの位置は Figma 1200px 設計を中央基準に再計算
   left: calc(50% - 600px + Xpx) = calc(50% + (X-600)px)
   これで 1200px 超のビューポートでも中央寄せでバランスが崩れない */

/* Rect 345 (574:5371) -10.23deg blue 60%: top:-291, left:-345, w:1594, h:553
   z-index で shape--2 より上に重ねる */
.intern-review__shape--1 {
  top: -24.25vw; left: calc(50% - 78.75vw); width: 132.833vw; height: 46.083vw;
  display: flex; align-items: center; justify-content: center;
  z-index: 2;
}
.intern-review__shape--1 .intern-review__shape-inner {
  width: 130.75vw; height: 23.25vw;
  transform: rotate(-10.23deg);
}

/* Rect 344 (574:5370) 11.21deg light 80%: top:-356, left:357, w:980, h:505 */
.intern-review__shape--2 {
  top: -29.667vw; left: calc(50% - 20.25vw); width: 81.667vw; height: 42.083vw;
  display: flex; align-items: center; justify-content: center;
}
.intern-review__shape--2 .intern-review__shape-inner {
  width: 77.75vw; height: 27.5vw;
  transform: rotate(11.21deg);
}

/* Rect 347 (574:5368) 42.35deg blue 60%: top:336, left:-377, w:733, h:703 */
.intern-review__shape--3 {
  top: 28vw; left: calc(50% - 81.417vw); width: 61.083vw; height: 58.583vw;
  display: flex; align-items: center; justify-content: center;
}
.intern-review__shape--3 .intern-review__shape-inner {
  width: 61.5vw; height: 23.25vw;
  transform: rotate(42.35deg);
}

/* Rect 346 (574:5351) -36.58deg light 70%: top:328, left:677, w:776, h:679 */
.intern-review__shape--4 {
  top: 29.333vw; left: calc(50% + 6.417vw); width: 64.667vw; height: 56.583vw;
  display: flex; align-items: center; justify-content: center;
}
.intern-review__shape--4 .intern-review__shape-inner {
  width: 62.917vw; height: 23.75vw;
  transform: rotate(-36.58deg);
  background-color: #d5e9f4; opacity: 0.7;
}

/* Rect 343 (574:5369) 16.87deg light 70%: top:471, left:-554, w:1088, h:572 */
.intern-review__shape--5 {
  top: 41.25vw; left: calc(50% - 96.167vw); width: 90.667vw; height: 47.667vw;
  display: flex; align-items: center; justify-content: center;
}
.intern-review__shape--5 .intern-review__shape-inner {
  width: 87.75vw; height: 23.25vw;
  transform: rotate(16.87deg);
  background-color: #d5e9f4; opacity: 0.7;
}

/* Rect 342 (574:5367) -20.36deg blue 60%: top:414, left:296, w:1241, h:686 */
.intern-review__shape--6 {
  top: 34.5vw; left: calc(50% - 25.333vw); width: 103.417vw; height: 57.167vw;
  display: flex; align-items: center; justify-content: center;
}
.intern-review__shape--6 .intern-review__shape-inner {
  width: 101.667vw; height: 23.25vw;
  transform: rotate(-20.36deg);
}

/* タイトル (白文字、左上) - inner の flex 子として top-left に配置 */
.intern-review__header {
  position: absolute;
  top: 2.5vw;                          /* 30 @1200 */
  left: 6.917vw;                       /* 83 @1200 */
  z-index: 4;
}

.intern-review__title {
  font-family: var(--ff-en-body); /* Poppins Regular */
  font-size: max(40px, 5.833vw);       /* 70 @1200 / 最低40 */
  font-weight: var(--fw-regular);
  color: var(--color-white);
  letter-spacing: 0.04em;
  line-height: 1;
}

.intern-review__sub {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.333vw);      /* 16 @1200 / 最低13 */
  font-weight: var(--fw-medium);
  color: var(--color-white);
  margin-top: 1.333vw;                /* 16 @1200 */
  letter-spacing: 0.05em;
}

/* 1200px幅 absolute コンテナ (中身を直接配置) */
.intern-review__inner {
  position: relative;
  z-index: 3;
  max-width: 100vw;
  margin: 0 auto;
  /* 3 row + rating を縦並びに (header は absolute で別位置) */
  display: flex;
  flex-direction: column;
  gap: 2vw;                            /* 24 @1200 行間 */
  padding-top: 11.75vw;
}

/* 吹き出し共通 - row wrapper の中で flex 子。 幅は max-width で固定し、 内容に応じて伸縮 */
.intern-review__quote {
  position: relative;
  width: auto;
  max-width: 51.917vw;                /* 623 @1200 */
  background-color: rgba(213, 233, 244, 0.85);
  padding: 1.667vw 1.25vw;            /* 20 / 15 @1200 */
  display: flex;
  align-items: center;
  justify-content: center;
}

.intern-review__quote-text {
  width: 49.333vw;                    /* 592 @1200 */
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);      /* 14 @1200 (13→14底上げ) / 最低13 */
  font-weight: var(--fw-medium);
  line-height: 1.429;                 /* 20/14 */
  color: #155c99;
  text-align: justify;
  margin: 0;
}

/* Row wrapper: inner 内の flex 子。 縦並びを内側で flex 横並び + 中央揃え */
.intern-review__row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1vw;                            /* 12 @1200 */
  width: 100%;
  padding: 0 18.167vw;                 /* 218 @1200 (左右余白) */
}
/* row--2 は左右反転 (HTML上は quote→pointer→avatar 順なので逆方向に詰める) */
.intern-review__row--2 {
  justify-content: flex-end;
}

/* Quote: row 内で flex 子。 position static、 width 固定 */
.intern-review__quote {
  position: relative;
  top: auto;
  left: auto;
  height: auto;
  min-height: 6.667vw;
  flex: 0 1 auto;
}

/* アバター: row 内 flex 子 */
.intern-review__avatar {
  position: relative;
  top: auto;
  left: auto;
  flex: 0 0 auto;
  width: 5.833vw;                     /* 70 @1200 */
  height: 5.833vw;
  border-radius: 50%;
  overflow: hidden;
}
.intern-review__avatar--2 { width: 5.917vw; height: 5.917vw; }

.intern-review__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 三角ポインター: row 内 flex 子 */
.intern-review__pointer {
  position: relative;
  top: auto;
  left: auto;
  flex: 0 0 auto;
  z-index: 3;
  width: 0;
  height: 0;
}

.intern-review__pointer--right {
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 12px solid #3cabe6;
}

.intern-review__pointer--left {
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid #3cabe6;
}

/* 平均評価 (右下) - inner の flex 子として右寄せ */
.intern-review__rating {
  align-self: flex-end;
  margin: 2vw 6.25vw 0 0;             /* 上 24, 右 75 @1200 */
  width: 11.667vw;                    /* 140 @1200 */
  text-align: center;
  color: var(--color-white);
}

.intern-review__rating-label {
  font-family: var(--ff-jp);
  font-size: max(14px, 1.667vw);      /* 20 @1200 / 最低14 */
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.06em;
  line-height: 1.5;                   /* 30/20 */
  margin-bottom: 0;
}

.intern-review__rating-score {
  font-family: 'DIN Alternate', 'Helvetica Neue', 'Arial Narrow', Arial, sans-serif;
  font-size: max(50px, 7.5vw);        /* 90 @1200 / 最低50 */
  font-weight: 700;
  line-height: 1;
  color: var(--color-white);
  letter-spacing: -0.03em;
}

.intern-review__rating-stars {
  margin-top: max(6px, 0.5vw);        /* 6 @1200 / 最低6 */
  display: flex;
  justify-content: center;
  gap: max(3px, 0.25vw);              /* 3 @1200 / 最低3 */
}

.intern-review__rating-stars img {
  width: max(20px, 1.417vw);          /* 17 @1200 / 最低20 (SP保証) */
  height: max(19px, 1.333vw);         /* 16 @1200 / 最低19 */
  /* 白フィルター (元SVGも白だがそのまま) */
}


/* ============================================
   7. 募集要項 (1200×1020)
   ============================================ */
.intern-recruit {
  padding: 6.667vw 0;                 /* 80 @1200 */
  background: var(--color-white);
}

.intern-recruit__title {
  text-align: center;
  font-family: var(--ff-jp);
  font-size: max(20px, 2.5vw);        /* 30 @1200 / 最低20 */
  font-weight: var(--fw-medium);
  color: #3cabe6;
  line-height: 1;
  letter-spacing: 0.06em;
  margin-bottom: 2.667vw;             /* 32 @1200 */
}

.intern-recruit__table {
  max-width: 63.333vw;                /* 760 @1200 */
  margin: 0 auto;
  padding: 0 2vw;                     /* 24 @1200 */
}

.intern-recruit__row {
  display: grid;
  grid-template-columns: 8.333vw 1fr; /* 100 @1200 */
  gap: 8.333vw;                       /* 100 @1200 */
  padding: 2.5vw 0;                   /* 30 @1200 */
  border-bottom: 1px solid #000000;
  align-items: start;
}
.intern-recruit__row:first-of-type {
  border-top: 1px solid #000000;
}
.intern-recruit__row:last-of-type { border-bottom: 1px solid #000000; }
/* 応募方法 行は label-value gap が 71px (Figma) */
.intern-recruit__row:has(.intern-recruit__apply-row) {
  gap: 5.917vw;                       /* 71 @1200 */
}

.intern-recruit__label {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);      /* 14 @1200 / 最低13 */
  font-weight: 500;
  line-height: 2.143;                 /* 30/14 */
  color: #000000;
  letter-spacing: 0.02em;
}

.intern-recruit__value {
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);      /* 14 @1200 / 最低13 */
  font-weight: 500;
  line-height: 2.143;                 /* 30/14 */
  color: #000000;
}

.intern-recruit__value p { margin-bottom: 0; }
.intern-recruit__value p:last-child { margin-bottom: 0; }

/* 5days 用: 1回目/2回目 などのサブ見出しボックス */
.intern-recruit__subhead {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 6.917vw;                     /* 83 @1200 */
  height: 2.5vw;                      /* 30 @1200 */
  margin: 0.5vw 0 0.333vw;            /* 6 / 4 @1200 */
  border: 1px solid #000;
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);      /* 14 @1200 / 最低13 */
  font-weight: 500;
  line-height: 2.143;                 /* 30/14 */
  color: #000;
  text-align: center;
}

/* 応募方法: Figma Frame 175 (gap 10px 縦、各行は flex 横並び)
   row1: text(2行) + ENTRYボタン (gap 60px)
   row2: text + MYPAGEボタン (gap 8px) */
.intern-recruit__value:has(.intern-recruit__apply-row) {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.intern-recruit__apply-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.intern-recruit__apply-text {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);      /* 14 @1200 / 最低13 */
  font-weight: 500;
  line-height: 2.143;                 /* 30/14 */
  color: #000000;
  flex: 0 0 auto;
}

/* ENTRY/MYPAGE ボタン - 白背景 + 黒枠 + 黒文字 (Figma準拠) */
.intern-recruit__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 12.333vw;                    /* 148 @1200 */
  height: 2.5vw;                      /* 30 @1200 */
  padding: 0.417vw 1.25vw;            /* 5 / 15 @1200 */
  background: var(--color-white);
  border: 1px solid #000000;
  color: #000000;
  font-family: var(--ff-jp);
  font-size: max(13px, 1.167vw);      /* 14 @1200 / 最低13 */
  font-weight: var(--fw-medium);
  line-height: 1.429;                 /* 20/14 */
  letter-spacing: 0.02em;
  text-decoration: none;
  box-sizing: border-box;
  transition: opacity var(--transition-base);
}

.intern-recruit__btn:hover { opacity: 0.7; }


/* ============================================
   Responsive
   ============================================ */
/* ============================================
   Tablet (768〜1199px)
   ============================================ */
@media (max-width: 1199px) {
  /* ---- Hero ---- */
  .intern-hero { height: 420px; }
  .intern-hero__panel { width: 55%; }
  .intern-hero__accent-bar { width: clamp(120px, 14vw, 180px); }
  .intern-hero__accent-vert { width: 56px; }
  .intern-hero__accent-box { width: 36px; height: clamp(80px, 11vw, 120px); }
  .intern-hero__accent-red { right: 70px; }

  /* ---- Tabs ---- */
  .intern-tabs {
    gap: 10px;
    padding: 0 16px;
    margin: 24px auto 56px;
  }
  /* grid-template-columns / aspect-ratio は PC定義 (.intern-tab) のままで OK
     (auto-fit で 2列に切り替わり、 height は aspect-ratio で自動) */
  /* タブレットでは絶対配置をやめて flex 縦並びに */
  .intern-tab__label {
    padding: 14px 14px 12px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .intern-tab__sub-top,
  .intern-tab__name,
  .intern-tab__sub-bottom {
    position: static;
    top: auto;
    left: auto;
  }
  .intern-tab__sub-top { font-size: 11px; line-height: 1.2; }
  .intern-tab__name { font-size: 30px; line-height: 1; margin-top: auto; }
  .intern-tab__sub-bottom { font-size: 22px; line-height: 1.1; }
  /* 5DAYS タブの3要素も flex 化 */
  .intern-tab__sub-bottom:has(.intern-tab__big) {
    display: flex;
    align-items: center;
    gap: 6px;
    height: auto;
  }
  .intern-tab__big {
    position: static;
    top: auto; left: auto;
    font-size: 20px;
    line-height: 1.1;
  }
  .intern-tab__tiny {
    position: static;
    top: auto; left: auto;
    width: auto;
    font-size: 8px;
  }

  /* ---- Program ---- */
  .intern-program { padding-bottom: 80px; }
  .intern-program__title-band {
    height: 180px;
    padding-top: 40px;
  }
  body[data-path="/internship/5days/"] .intern-program__title-band { padding-top: 26px; }
  .intern-program__heading {
    font-size: 22px;
    padding: 0 16px;
  }
  /* コンテナ全体を白パネル化して全コンテンツを内包 */
  .intern-program__container {
    margin: -60px 24px 0;
    min-height: auto;
    background-color: var(--color-white);
    padding: 64px 48px;                         /* 文字とボックス間の余白を確保 */
    box-shadow: 0 16px 40px rgba(0, 44, 106, 0.18);  /* ボックスとわかる影 */
    border-radius: 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
  }
  /* 元の panel は背景を消して中身だけ */
  .intern-program__panel {
    width: 100%;
    height: auto;
    padding: 0;
    background: transparent;
    box-shadow: none;
  }
  /* Absolute → 自然な流れに変える (フレックスアイテム)
     順番: caption-1(リアル) → img-left → caption-2(得られること) → img-right */
  .intern-program__img-left,
  .intern-program__img-right,
  .intern-program__caption-1,
  .intern-program__caption-2 {
    position: static;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    height: auto;
  }
  .intern-program__container { display: flex; flex-direction: column; }
  .intern-program__panel { order: 1; }
  .intern-program__caption-1 { order: 2; }
  .intern-program__img-left { order: 3; }
  .intern-program__caption-2 { order: 4; }
  .intern-program__img-right { order: 5; }
  .intern-program__img-left img,
  .intern-program__img-right img {
    aspect-ratio: 530 / 284;
    height: auto;
  }

  /* ---- Schedule ---- */
  .intern-schedule { padding: 60px 0 60px; }
  .intern-schedule__bg { top: 92px; }
  .intern-schedule__title { font-size: 60px; }
  .intern-schedule__inner {
    grid-template-columns: 110px 1fr;
    column-gap: 24px;
  }
  /* 縦線も 110px マーカー列に合わせる: padding 24 + 110/2 = 79px */
  .intern-schedule__inner::before {
    left: calc(24px + 110px / 2);
  }
  /* 画像列を本文の下に回す: body 列のみ(line と重ねない) */
  .intern-sched-img {
    grid-column: 2;
    width: 100%;
    max-width: 480px;
    margin-top: 8px;
  }
  .intern-sched-img--span2 {
    grid-row: auto;
  }

  /* ---- Review: row wrapper 構造のため、 旧 left override は不要 ---- */
  .intern-review__rating { margin-right: 24px; }

  /* shape の位置を section 下端基準に揃え (タブレット以下) */
  .intern-review__shape--3 { top: auto; bottom: -18vw; }
  .intern-review__shape--4 { top: auto; bottom: -20vw; }
  .intern-review__shape--5 { top: auto; bottom: -22vw; }
  .intern-review__shape--6 { top: auto; bottom: -25vw; }

  /* ---- Recruit ---- */
  .intern-recruit { padding: 56px 0; }
  .intern-recruit__table { padding: 0 16px; max-width: 760px; }
  .intern-recruit__row {
    grid-template-columns: 100px 1fr;
    gap: 16px;
  }
}

/* ============================================
   Mobile (max 767px)
   ============================================ */
@media (max-width: 767px) {
  /* ---- Hero ---- */
  .intern-hero { height: 320px; }
  .intern-hero__panel { width: 75%; }
  /* INFORMATION ページのみ panel を全幅に */
  body[data-page="information"] .intern-hero__panel { width: 100%; }
  .intern-hero__accent-vert { width: 32px; }
  .intern-hero__accent-box { width: 24px; height: 80px; }
  .intern-hero__accent-bar { width: 90px; }
  .intern-hero__accent-red { right: 32px; width: 64px; }
  .intern-hero__band { left: 30%; height: 32px; }
  .intern-hero__tag {
    top: clamp(80px, 18vw, 110px);
  }
  .intern-hero__tag-en { font-size: clamp(40px, 11vw, 56px); }
  .intern-hero__tag-jp { font-size: 14px; }
  .intern-hero__tag-line {
    margin-top: 12px;
    width: calc(var(--tag-left) + 130px);
  }

  /* ---- Lead ---- */
  .intern-lead { padding: 32px 16px 8px; }
  .intern-lead__text { font-size: 12px; line-height: 1.9; }
  .intern-lead__text br { display: none; }

  /* ---- Tabs ---- */
  .intern-tabs {
    gap: 8px;
    padding: 0 16px;
    margin: 16px auto 40px;
  }
  /* grid-template-columns / aspect-ratio は PC定義のまま (1列に自動切替) */
  .intern-tab__label {
    padding: 10px 14px 10px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .intern-tab__sub-top,
  .intern-tab__name,
  .intern-tab__sub-bottom {
    position: static;
    top: auto;
    left: auto;
  }
  .intern-tab__sub-top { font-size: 11px; line-height: 1.2; }
  .intern-tab__name { font-size: 24px; line-height: 1; margin-top: auto; }
  .intern-tab__sub-bottom { font-size: 16px; line-height: 1.1; }
  .intern-tab__sub-bottom:has(.intern-tab__big) {
    display: flex;
    align-items: center;
    gap: 4px;
  }
  .intern-tab__big { font-size: 16px; line-height: 1.1; }
  .intern-tab__tiny { font-size: 8px; width: auto; }
  .intern-tab__arrow { width: 22px; height: 22px; }

  /* ---- Program ---- */
  .intern-program__title-band {
    height: 140px;
    padding-top: 28px;
  }
  body[data-path="/internship/5days/"] .intern-program__title-band { padding-top: 16px; }
  .intern-program__heading {
    font-size: 22px;
    letter-spacing: 0.06em;
  }
  .intern-program__container {
    margin: -40px 16px 0;
    padding: 40px 24px;                              /* mobile も余白十分 */
    box-shadow: 0 10px 28px rgba(0, 44, 106, 0.18);
    gap: 24px;
  }
  .intern-program__panel { padding: 0; }
  .intern-program__lead { font-size: 13px; }
  .intern-program__caption-title,
  .intern-program__list-title { font-size: 14px; }
  .intern-program__caption-text,
  .intern-program__list li { font-size: 12px; }

  /* ---- Schedule ---- */
  .intern-schedule { padding: 60px 0 56px; }
  .intern-schedule__bg { top: 84px; }
  .intern-schedule__title { font-size: 40px; }
  .intern-schedule__inner {
    max-width: 100%;
    grid-template-columns: 80px 1fr;
    column-gap: 16px;
    padding: 12px 16px 0;
  }
  /* 縦線も 80px マーカー列に合わせる: padding 16 + 80/2 = 56px */
  .intern-schedule__inner::before {
    left: calc(16px + 80px / 2);
    top: 60px;
    bottom: 40px;
  }
  .intern-sched-circle {
    width: 72px;
    height: 72px;
    gap: 2px;
    padding: 0;
  }
  .intern-sched-circle img { width: 24px; height: 24px; margin-bottom: 0; }
  .intern-sched-circle .intern-sched-time {
    font-size: 13px;
    line-height: 1;
    margin-top: 4px;
    letter-spacing: 0.04em;
  }
  .intern-sched-day {
    font-size: 22px;
    line-height: 1;
  }
  .intern-sched-day + .intern-sched-time { margin-top: 2px; font-size: 11px; }
  .intern-sched-circle--small {
    width: 38px;
    height: 38px;
    margin-top: 8px;
  }
  .intern-sched-circle--small .intern-sched-fin { font-size: 13px; }
  .intern-sched-circle--large-text { width: 72px; height: 72px; }
  .intern-sched-circle--large-text .intern-sched-fin { font-size: 14px; }
  .intern-sched-circle--large-text .intern-sched-fin { font-size: 16px; }
  .intern-sched-title { font-size: 15px; }
  .intern-sched-desc { font-size: 12px; line-height: 1.8; }
  .intern-sched-tag { font-size: 11px; padding: 4px 8px; }
  .intern-sched-tag-text { font-size: 11px; }
  .intern-sched-tag-row { flex-direction: column; gap: 6px; }
  .intern-sched-img { max-width: 100%; }
  .intern-sched-img img { aspect-ratio: 16 / 10; }

  /* さらに section の大きめテキストもmobileは抑える */
  .intern-sched-marker:has(.intern-sched-circle--large-text) + .intern-sched-body .intern-sched-title {
    font-size: 18px;
  }
  .intern-sched-marker:has(.intern-sched-circle--large-text) + .intern-sched-body .intern-sched-desc {
    font-size: 15px;
  }

  /* ---- Review ---- */
  .intern-review { height: auto; padding: 48px 0 36px; }
  .intern-review__title { font-size: 36px; }
  .intern-review__sub { font-size: 12px; }

  /* SP: row wrapper 自体は static で並べ、 row 内は avatar 左→quote 右で統一 (左右反転を解除) */
  .intern-review__inner {
    position: relative;
    inset: auto;
    padding: 0 16px;
    margin-top: 5vw;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: stretch;
  }
  .intern-review__row,
  .intern-review__row--1,
  .intern-review__row--2,
  .intern-review__row--3 {
    position: relative;
    top: auto;
    left: auto;
    padding: 0;
    width: 100%;
    flex-direction: row;            /* SP も avatar 左 → quote 右 */
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
  }
  /* SP では pointer--2 (本来 left 向き) を右向きに統一 */
  .intern-review__pointer--2 {
    border-left: 0;
    border-right: 12px solid #3cabe6;
  }
  /* row--2 は HTML上 quote → pointer → avatar 順なので、 SPでは順序を反転 (avatar 先頭) */
  .intern-review__row--2 {
    flex-direction: row-reverse;
  }
  .intern-review__header {
    position: relative;
    top: auto;
    left: auto;
    margin: 0 0 8px;
    text-align: center;
  }
  .intern-review__avatar,
  .intern-review__avatar--1,
  .intern-review__avatar--2,
  .intern-review__avatar--3 {
    width: 56px;
    height: 56px;
    margin: 0;
    flex: 0 0 auto;
  }
  .intern-review__quote {
    flex: 1 1 auto;
    width: auto;
    max-width: 100%;
    padding: 12px;
    min-height: 0;
  }
  .intern-review__quote-text {
    width: 100%;
    font-size: 12px;
    line-height: 1.8;
  }
  .intern-review__pointer {
    display: block;
  }
  .intern-review__rating {
    align-self: center;
    margin: 16px auto 0;
    width: 140px;
  }
  .intern-review__rating-label { font-size: 14px; }
  .intern-review__rating-score { font-size: 56px; }
  /* 装飾シェイプはmobileで一部だけ */
  .intern-review__shape--3,
  .intern-review__shape--5 { display: none; }
  /* shape--4: SPでは下寄りに */
  .intern-review__shape--4 {
    top: auto;
    bottom: -20vw;
  }

  /* shape--1: SPは横100% / 左200px・右150pxの台形 (上端に配置) */
  .intern-review__shape--1 {
    top: 0; left: 0; width: 100%; height: 200px;
    display: block;
  }
  .intern-review__shape--1 .intern-review__shape-inner {
    width: 100%;
    height: 100%;
    transform: none;
    /* 左200px、右100px */
    clip-path: polygon(0 0, 100% 0, 100% 100px, 0 200px);
  }

  /* shape--6: SPは横100% / 左150px・右200pxの台形 (下端に配置) */
  .intern-review__shape--6 {
    top: auto; bottom: 0; left: 0; width: 100%; height: 200px;
    display: block;
  }
  .intern-review__shape--6 .intern-review__shape-inner {
    width: 100%;
    height: 100%;
    transform: none;
    /* 下端基準: 左高さ100 (上辺は top:100px)、右高さ200 (上辺は top:0) */
    clip-path: polygon(0 100px, 100% 0, 100% 200px, 0 200px);
  }

  /* quote-text: 折り返しに合わせて quote の高さが自動で伸びるように */
  .intern-review__quote,
  .intern-review__quote--1,
  .intern-review__quote--2,
  .intern-review__quote--3 {
    height: auto;
    min-height: 0;
    align-items: flex-start;
  }
  .intern-review__quote-text {
    width: auto;
    max-width: 100%;
  }

  /* ---- Recruit ---- */
  .intern-recruit { padding: 48px 0; }
  .intern-recruit__title { font-size: 18px; margin-bottom: 24px; }
  .intern-recruit__table { padding: 0 16px; max-width: 100%; }
  .intern-recruit__row {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 14px 0;
  }
  .intern-recruit__label {
    font-size: 13px;
    font-weight: var(--fw-bold);
    line-height: 1.6;
  }
  .intern-recruit__value { font-size: 12px; line-height: 1.8; }
  .intern-recruit__apply-text {
    font-size: 12px;
    line-height: 1.8;
  }
  .intern-recruit__apply { padding: 24px 16px 0; }
  /* SP: apply-row 行も gap 4px (縦並び) */
  .intern-recruit__row:has(.intern-recruit__apply-row) {
    gap: 4px;
  }
  .intern-recruit__apply-row {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .intern-recruit__btn {
    width: 100%;
    height: auto;
    justify-content: center;
    padding: 8px 16px;
  }
  .intern-recruit__subhead {
    width: 60px;
    height: 24px;
    font-size: 12px;
    line-height: 24px;
  }
}


/* 5days recruit: bullet / label / colon / text を flex 4列で配置し、 本文の2行目も col 内で折り返し */
.intern-recruit__day-row {
  display: flex;
  align-items: baseline;
}
.intern-recruit__day-bullet {
  flex: 0 0 auto;
  margin-right: 0.25em;
}
.intern-recruit__day-label {
  flex: 0 0 auto;
  min-width: 5em;     /* "2～5日目" 5字 + 余白 */
}
.intern-recruit__day-colon {
  flex: 0 0 auto;
  margin-right: 0.25em;   /* 「：」 の右に半角スペース分 */
}
.intern-recruit__day-text {
  flex: 1;
  min-width: 0;
}
/* 報酬: ラベル / 「：」 / 本文 を flex 3列で配置し、 本文は独立列で折り返す */
.intern-recruit__pay-row {
  display: flex;
  align-items: baseline;
}
.intern-recruit__pay-label {
  flex: 0 0 auto;
  min-width: 3.5em;   /* "交通費" 3字 + 余白 */
}
.intern-recruit__pay-colon {
  flex: 0 0 auto;
  margin-right: 0.25em;   /* 「：」 の右に半角スペース分の余白 */
  /* 「：」 を独立列にし、 本文側に折り返しが入らないように */
}
.intern-recruit__pay-text {
  flex: 1;
  min-width: 0;
}
