/* ============================================================
   インターンシップLP (/internship/)
   Figma: 株式会社ヤマムラ様_インターンLP (PC: 71-2 / SP: 71-191)
   1920px基準の比率スケール（--u = 100vw/1920、最大1px）
   ============================================================ */
html {
  scroll-behavior: smooth;
}
html,
body {
  overflow-x: hidden; /* SPでの横パン防止（このCSSは/internship/のみ読込） */
}
.p-internship {
  --u: min(1px, calc(100vw / 1920));
  --ip-red: #b31933;
  --ip-beige: #efebdf;
  --ip-brown: #6d6751;
  --ip-orange: #c56a27;
  --ip-gothic: "Noto Sans JP", sans-serif;
  --ip-mincho: "Shippori Mincho B1", "Shippori Mincho", serif;
  --ip-pop: "Mochiy Pop One", "Noto Sans JP", sans-serif;
  font-family: var(--ip-gothic);
  color: #000;
  background: #fff;
  overflow-x: clip;
  line-height: 1.6;
}
.p-internship img {
  display: block;
  max-width: 100%;
}
.p-internship a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}
.p-internship a:hover {
  opacity: 0.75;
}

/* テーマのaルールに負けないよう明示的に白指定 */
.p-internship a.p-internship__fixed-cta,
.p-internship a.p-internship__band-cta,
.p-internship a.p-internship__bottom-btn,
.p-internship a.p-internship__anchor {
  color: #fff;
}

/* ---------------- 固定エントリータブ ---------------- */
.p-internship__fixed-cta {
  position: fixed;
  right: 0;
  top: calc(242 * var(--u));
  z-index: 50;
  width: calc(72 * var(--u));
  height: calc(354 * var(--u));
  background: var(--ip-red);
  border-radius: calc(10 * var(--u)) 0 0 calc(10 * var(--u));
  display: flex;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  color: #fff;
  font-size: calc(18 * var(--u));
  font-weight: 800;
  letter-spacing: calc(4.5 * var(--u));
}

/* ---------------- FV（写真コラージュ） ---------------- */
.p-internship__fv {
  position: relative;
  height: calc(1053 * var(--u));
  background: #fff;
}
.p-internship__fv-photo {
  position: absolute;
  overflow: hidden;
}
.p-internship__fv-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-internship__fv-photo--left   { left: calc(234 * var(--u));  top: calc(116 * var(--u)); width: calc(261 * var(--u)); height: calc(605 * var(--u)); }
.p-internship__fv-photo--top    { left: calc(537 * var(--u));  top: calc(116 * var(--u)); width: calc(553 * var(--u)); height: calc(251 * var(--u)); }
.p-internship__fv-photo--top img    { object-position: 50% 90%; }
.p-internship__fv-photo--bottom { left: calc(537 * var(--u));  top: calc(403 * var(--u)); width: calc(553 * var(--u)); height: calc(318 * var(--u)); }
.p-internship__fv-photo--bottom img { object-position: 50% 30%; }
.p-internship__fv-photo--right  { left: calc(1137 * var(--u)); top: calc(116 * var(--u)); width: calc(617 * var(--u)); height: calc(822 * var(--u)); }
.p-internship__fv-photo--right img  { object-position: 43% 55%; }
.p-internship__fv-title {
  position: absolute;
  left: calc(208 * var(--u));
  top: calc(748 * var(--u));
  width: calc(820 * var(--u));
  margin: 0;
}
.p-internship__fv-title img {
  width: 100%;
  height: auto;
}

/* ---------------- 赤帯CTA ---------------- */
.p-internship__band-cta {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: calc(229 * var(--u));
  background: var(--ip-red);
  overflow: hidden;
}
.p-internship__band-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(../img/internship/hero-02.webp) center / cover no-repeat;
  opacity: 0.2;
  pointer-events: none;
}
.p-internship__band-cta-line {
  position: relative;
  width: calc(3 * var(--u));
  height: calc(62 * var(--u));
  background: #fff;
}
.p-internship__band-cta-text {
  position: relative;
  margin-top: calc(36 * var(--u));
  color: #fff;
  font-size: calc(40 * var(--u));
  font-weight: 600;
  line-height: 1.2;
}

/* ---------------- リード ---------------- */
.p-internship__lead {
  position: relative;
  height: calc(1129 * var(--u));
  background: var(--ip-beige);
  overflow: hidden;
}
.p-internship__lead-illust {
  position: absolute;
  left: calc(101 * var(--u));
  top: calc(433 * var(--u));
  width: calc(2015 * var(--u));
  height: calc(677 * var(--u));
  background: url(../img/internship/hero-band-illust.webp) center / cover no-repeat;
  opacity: 0.5;
  pointer-events: none;
}
.p-internship__lead-ink {
  position: absolute;
  opacity: 0.44;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.p-internship__lead-ink--1 {
  left: calc(178 * var(--u));
  top: calc(80 * var(--u));
  width: calc(240 * var(--u));
  height: calc(254 * var(--u));
  background-image: url(../img/internship/ink-1.png);
}
.p-internship__lead-ink--2 {
  left: calc(379 * var(--u));
  top: calc(207 * var(--u));
  width: calc(167 * var(--u));
  height: calc(176 * var(--u));
  background-image: url(../img/internship/ink-2.png);
}
.p-internship__lead-box {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(111 * var(--u));
  width: calc(791 * var(--u));
  height: calc(134 * var(--u));
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-internship__lead-box h2 {
  margin: 0;
  width: calc(721 * var(--u));
}
.p-internship__lead-text {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(319 * var(--u));
  width: calc(787 * var(--u));
  margin: 0;
  font-size: calc(16 * var(--u));
  line-height: calc(44 * var(--u));
  text-align: center;
}
.p-internship__scroll {
  position: relative;
  width: fit-content;
  margin: calc(-124 * var(--u)) auto 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-internship__scroll .text {
  color: var(--ip-red);
  font-size: calc(20 * var(--u));
  font-weight: 600;
  line-height: calc(55 * var(--u));
}
.p-internship__scroll .arrow {
  width: calc(2 * var(--u));
  height: calc(149 * var(--u));
  background: #000;
  position: relative;
}
.p-internship__scroll .arrow::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: calc(14 * var(--u));
  height: calc(14 * var(--u));
  border-right: calc(2 * var(--u)) solid #000;
  border-bottom: calc(2 * var(--u)) solid #000;
  transform: translateX(-50%) rotate(45deg);
  transform-origin: center;
}

/* ---------------- アンカーボタン ---------------- */
.p-internship__anchors {
  display: flex;
  justify-content: center;
  gap: calc(88 * var(--u));
  padding: calc(170 * var(--u)) 0 calc(213 * var(--u));
  background: #fff;
}
.p-internship__anchor {
  width: calc(252 * var(--u));
  height: calc(87 * var(--u));
  border-radius: calc(3 * var(--u));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.p-internship__anchor--yamagata { background: var(--ip-brown); }
.p-internship__anchor--tokyo    { background: var(--ip-orange); }
.p-internship__anchor .label {
  font-family: var(--ip-mincho);
  font-size: calc(32 * var(--u));
  line-height: 1.1;
}
.p-internship__anchor .chevron {
  width: calc(24 * var(--u));
  height: calc(24 * var(--u));
}
.p-internship__anchor .chevron svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ---------------- 開催スケジュール ---------------- */
.p-internship__schedule {
  position: relative;
  padding-left: calc(276 * var(--u));
  padding-right: calc(240 * var(--u));
  scroll-margin-top: calc(40 * var(--u));
}
.p-internship__schedule--tokyo {
  margin-top: calc(411 * var(--u));
}
.p-internship__schedule-label {
  position: absolute;
  left: calc(169 * var(--u));
  top: 0;
  width: calc(107 * var(--u));
  height: calc(254 * var(--u));
  border-radius: calc(10 * var(--u)) 0 0 calc(10 * var(--u));
  display: flex;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  color: #fff;
  font-size: calc(36 * var(--u));
  font-weight: 600;
  letter-spacing: calc(8 * var(--u));
}
.p-internship__schedule--yamagata .p-internship__schedule-label { background: var(--ip-brown); }
.p-internship__schedule--tokyo    .p-internship__schedule-label { background: var(--ip-orange); }
.p-internship__schedule-panel {
  position: relative;
  background: var(--ip-beige);
  border-radius: 0 calc(10 * var(--u)) calc(10 * var(--u)) calc(10 * var(--u));
}
.p-internship__schedule--yamagata .p-internship__schedule-panel { height: calc(1853 * var(--u)); }
.p-internship__schedule--tokyo    .p-internship__schedule-panel { height: calc(1767 * var(--u)); }
.p-internship__schedule-catch {
  position: absolute;
  left: calc(460 * var(--u));
  top: calc(49 * var(--u));
  margin: 0;
  color: var(--ip-red);
  font-size: calc(24 * var(--u));
  font-weight: 700;
  line-height: calc(55 * var(--u));
}
.p-internship__schedule-titlebar {
  position: absolute;
  left: calc(386 * var(--u));
  top: calc(111 * var(--u));
  width: calc(565 * var(--u));
  height: calc(79 * var(--u));
  background: #fff;
  display: flex;
  align-items: center;
}
.p-internship__schedule--tokyo .p-internship__schedule-titlebar { left: calc(382 * var(--u)); top: calc(103 * var(--u)); }
.p-internship__schedule-titlebar h2 {
  margin: 0;
  padding-left: calc(43 * var(--u));
  font-family: var(--ip-mincho);
  font-weight: 500;
  font-size: calc(48 * var(--u));
  line-height: 1;
  white-space: nowrap;
}
.p-internship__schedule-date {
  position: absolute;
  left: calc(530 * var(--u));
  top: calc(206 * var(--u));
  margin: 0;
  font-family: var(--ip-pop);
  font-size: calc(40 * var(--u));
  line-height: 1.2;
  z-index: 1;
}

/* タイムライン */
.p-internship__timeline {
  position: absolute;
  inset: 0;
}
.p-internship__tl-line {
  position: absolute;
  left: calc(269 * var(--u));
  top: calc(459 * var(--u));
  width: calc(9 * var(--u));
  height: calc(703 * var(--u));
  background: #fff;
}
.p-internship__tl-marker {
  position: absolute;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: var(--ip-mincho);
  font-size: calc(32 * var(--u));
}
.p-internship__schedule--yamagata .p-internship__tl-marker { background: var(--ip-brown); }
.p-internship__schedule--tokyo    .p-internship__tl-marker { background: var(--ip-orange); }
.p-internship__tl-marker--am  { left: calc(210 * var(--u)); top: calc(371 * var(--u));  width: calc(119 * var(--u)); height: calc(119 * var(--u)); }
.p-internship__tl-marker--sub1 { left: calc(239 * var(--u)); top: calc(643 * var(--u));  width: calc(61 * var(--u));  height: calc(61 * var(--u)); }
.p-internship__tl-marker--pm  { left: calc(210 * var(--u)); top: calc(858 * var(--u));  width: calc(119 * var(--u)); height: calc(119 * var(--u)); }
.p-internship__tl-marker--sub2 { left: calc(239 * var(--u)); top: calc(1131 * var(--u)); width: calc(61 * var(--u));  height: calc(61 * var(--u)); }
.p-internship__tl-item {
  position: absolute;
  left: calc(361 * var(--u));
  width: calc(500 * var(--u));
}
.p-internship__tl-item--1 { top: calc(367 * var(--u)); }
.p-internship__tl-item--2 { top: calc(595 * var(--u)); }
.p-internship__tl-item--3 { top: calc(859 * var(--u)); }
.p-internship__tl-item--4 { top: calc(1101 * var(--u)); left: calc(346 * var(--u)); }
.p-internship__schedule--tokyo .p-internship__tl-item--2 { top: calc(616 * var(--u)); }
.p-internship__tl-title {
  margin: 0;
  display: inline-block;
  background: rgba(255, 255, 255, 0.75);
  padding: 0 calc(14 * var(--u));
  font-size: calc(24 * var(--u));
  font-weight: 600;
  line-height: calc(49 * var(--u));
  white-space: nowrap;
}
.p-internship__tl-desc {
  margin: calc(6 * var(--u)) 0 0;
  font-size: calc(20 * var(--u));
  line-height: calc(39 * var(--u));
}
.p-internship__tl-photo {
  position: absolute;
  left: calc(920 * var(--u));
  width: calc(397 * var(--u));
  height: calc(265 * var(--u));
  border-radius: calc(3 * var(--u));
  overflow: hidden;
}
.p-internship__tl-photo--1 { top: calc(337 * var(--u)); }
.p-internship__tl-photo--2 { top: calc(646 * var(--u)); }
.p-internship__tl-photo--3 { top: calc(955 * var(--u)); }
.p-internship__tl-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ポイント */
.p-internship__point {
  position: absolute;
  left: calc(268 * var(--u));
  top: calc(1307 * var(--u));
  width: calc(917 * var(--u));
}
.p-internship__point-tag {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(155 * var(--u));
  height: calc(49 * var(--u));
  background: var(--ip-red);
  color: #fff;
  font-size: calc(20 * var(--u));
  font-weight: 600;
}
.p-internship__point-text {
  margin: calc(-18 * var(--u)) 0 0;
  background: #fff;
  padding: calc(48 * var(--u)) calc(43 * var(--u)) calc(27 * var(--u));
  font-size: calc(20 * var(--u));
  line-height: calc(39 * var(--u));
}

/* ---------------- ギャラリー（横に流れるループスライダー） ---------------- */
.p-internship__gallery {
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.p-internship__gallery--row1 { margin-top: calc(-222 * var(--u)); }
.p-internship__gallery--row2 { margin-top: calc(-108 * var(--u)); }
.p-internship__gallery-track {
  display: flex;
  width: max-content;
  animation: ip-marquee 45s linear infinite;
}
.p-internship__gallery-set {
  display: flex;
  gap: calc(108 * var(--u));
  padding-right: calc(108 * var(--u));
}
@keyframes ip-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .p-internship__gallery-track { animation: none; }
}
.p-internship__gallery figure {
  margin: 0;
  flex: none;
  width: calc(469 * var(--u));
  height: calc(476 * var(--u));
  overflow: hidden;
}
.p-internship__gallery figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* モザイクギャラリー */
.p-internship__gallery--mosaic {
  margin: 0;
  gap: 0;
  display: block;
  height: calc(509 * var(--u));
  position: relative;
}
.p-internship__gallery--mosaic figure {
  position: absolute;
  width: auto;
  height: auto;
}
.p-internship__gallery--mosaic .m-a  { left: 0;                      top: 0;                       width: calc(409 * var(--u)); height: calc(509 * var(--u)); }
.p-internship__gallery--mosaic .m-b1 { left: calc(409 * var(--u));   top: 0;                       width: calc(572 * var(--u)); height: calc(333 * var(--u)); }
.p-internship__gallery--mosaic .m-b2 { left: calc(409 * var(--u));   top: calc(333 * var(--u));    width: calc(572 * var(--u)); height: calc(176 * var(--u)); }
.p-internship__gallery--mosaic .m-c1 { left: calc(981 * var(--u));   top: 0;                       width: calc(457 * var(--u)); height: calc(226 * var(--u)); }
.p-internship__gallery--mosaic .m-c2 { left: calc(981 * var(--u));   top: calc(226 * var(--u));    width: calc(457 * var(--u)); height: calc(283 * var(--u)); }
.p-internship__gallery--mosaic .m-d  { left: calc(1438 * var(--u));  top: 0;                       width: calc(482 * var(--u)); height: calc(509 * var(--u)); }
.p-internship__gallery--mosaic .m-a img  { object-position: 20% 50%; }
.p-internship__gallery--mosaic .m-b1 img { object-position: 58% 38%; }
.p-internship__gallery--mosaic .m-b2 img { object-position: 50% 35%; }
.p-internship__gallery--mosaic .m-d img  { object-position: 0% 50%; }

/* SP専用コラージュ（PCでは非表示） */
.p-internship__sp-collage {
  display: none;
}

/* ---------------- こんな方におすすめ ---------------- */
.p-internship__recommend {
  position: relative;
  margin-top: calc(127 * var(--u));
  height: calc(835 * var(--u));
}
.p-internship__recommend-torn {
  position: absolute;
  top: 0;
  left: calc(-43 * var(--u));
  width: calc(2013 * var(--u));
  height: calc(113 * var(--u));
  background: url(../img/internship/torn-edge-beige.png) 0 0 / 100% 100% no-repeat;
}
.p-internship__recommend-fill {
  position: absolute;
  top: calc(101 * var(--u));
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--ip-beige);
}
.p-internship__recommend-lead {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(77 * var(--u));
  margin: 0;
  font-size: calc(24 * var(--u));
  font-weight: 600;
  line-height: calc(55 * var(--u));
  white-space: nowrap;
  z-index: 1;
}
.p-internship__recommend-lead .em { color: var(--ip-red); }
.p-internship__recommend-heading {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(132 * var(--u));
  margin: 0;
  width: calc(423 * var(--u));
  height: calc(63 * var(--u));
  border-radius: calc(5 * var(--u));
  background: var(--ip-red);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(36 * var(--u));
  font-weight: 600;
  z-index: 1;
}
.p-internship__recommend-heading .small { font-size: calc(24 * var(--u)); }
.p-internship__recommend-list {
  position: absolute;
  top: calc(325 * var(--u));
  left: 0;
  right: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: center;
  gap: calc(83 * var(--u));
}
.p-internship__recommend-card {
  position: relative;
  width: calc(364 * var(--u));
  height: calc(359 * var(--u));
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.72);
  text-align: center;
}
.p-internship__recommend-card .num {
  display: block;
  margin-top: calc(14 * var(--u));
  color: var(--ip-red);
  font-size: calc(24 * var(--u));
  font-weight: 800;
  line-height: calc(30 * var(--u));
}
.p-internship__recommend-card .title {
  margin: calc(16 * var(--u)) 0 0;
  font-size: calc(20 * var(--u));
  font-weight: 600;
  line-height: calc(27 * var(--u));
}
.p-internship__recommend-card .badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(263 * var(--u));
  height: calc(35 * var(--u));
  margin: calc(14 * var(--u)) auto 0;
  border-radius: calc(3 * var(--u));
  background: var(--ip-red);
  color: #fff;
  font-size: calc(16 * var(--u));
  font-weight: 600;
}
.p-internship__recommend-card .badge small { font-size: calc(13 * var(--u)); font-weight: 600; }
.p-internship__recommend-card .desc {
  margin: calc(14 * var(--u)) auto 0;
  width: calc(296 * var(--u));
  font-size: calc(15 * var(--u));
  line-height: calc(25 * var(--u));
}

/* ---------------- 開催概要 ---------------- */
.p-internship__overview {
  background: #fff;
  padding: calc(140 * var(--u)) 0 calc(60 * var(--u));
}
.p-internship__overview-heading {
  margin: 0;
  text-align: center;
  font-size: calc(40 * var(--u));
  font-weight: 600;
}
.p-internship__overview-table {
  width: calc(857 * var(--u));
  margin: calc(58 * var(--u)) auto 0;
}
.p-internship__overview-table .row {
  display: flex;
  gap: calc(7 * var(--u));
  margin-bottom: calc(7 * var(--u));
}
.p-internship__overview-table dt {
  flex: none;
  width: calc(202 * var(--u));
  min-height: calc(57 * var(--u));
  background: var(--ip-brown);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(20 * var(--u));
  font-weight: 600;
}
.p-internship__overview-table dd {
  flex: 1;
  margin: 0;
  min-height: calc(57 * var(--u));
  background: var(--ip-beige);
  display: flex;
  align-items: center;
  padding-left: calc(48 * var(--u));
  font-size: calc(16 * var(--u));
}

/* ---------------- メッセージ ---------------- */
.p-internship__message {
  background: #fff;
  padding-bottom: calc(44 * var(--u));
}
.p-internship__message-visual {
  position: relative;
  width: calc(875 * var(--u));
  height: calc(700 * var(--u));
  margin: 0 auto;
}
.p-internship__message-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(../img/internship/message-visual.webp) center / 100% 100% no-repeat;
}
.p-internship__message-visual .text {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(234 * var(--u));
  width: 100%;
  margin: 0;
  text-align: center;
  font-size: calc(24 * var(--u));
  font-weight: 500;
  line-height: calc(55 * var(--u));
}
.p-internship__message-visual .text .em {
  color: var(--ip-red);
  font-weight: 600;
}

/* ---------------- ボトムCTA ---------------- */
.p-internship__bottom {
  position: relative;
  height: calc(725 * var(--u));
  overflow: hidden;
}
.p-internship__bottom::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(../img/internship/photo-genba-01.webp) 50% 54% / cover no-repeat;
}
.p-internship__bottom::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(107, 96, 88, 0.52);
}
.p-internship__bottom-title {
  position: absolute;
  left: calc(140 * var(--u));
  top: calc(129 * var(--u));
  width: calc(648 * var(--u));
  margin: 0;
  z-index: 1;
}
.p-internship__bottom-btn {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(530 * var(--u));
  z-index: 1;
  width: calc(439 * var(--u));
  height: calc(112 * var(--u));
  border-radius: calc(5 * var(--u));
  background: var(--ip-red);
  box-shadow: 0 calc(4 * var(--u)) calc(4 * var(--u)) rgba(0, 0, 0, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: calc(36 * var(--u));
  font-weight: 600;
}

/* ============================================================
   SP（〜768px）: 390px基準
   ============================================================ */
@media (max-width: 768px) {
  .p-internship {
    --u: calc(100vw / 390);
  }
  .p-internship .u-pc-br {
    display: none;
  }

  /* 固定CTA: SPは画面下固定の横長ボタンに */
  .p-internship__fixed-cta {
    top: auto;
    bottom: calc(12 * var(--u) + env(safe-area-inset-bottom, 0px));
    right: 50%;
    transform: translateX(50%);
    width: calc(360 * var(--u));
    height: calc(64 * var(--u));
    border-radius: calc(10 * var(--u));
    writing-mode: horizontal-tb;
    font-size: calc(17 * var(--u));
    font-weight: 700;
    letter-spacing: calc(5 * var(--u));
    box-shadow: 0 calc(4 * var(--u)) calc(14 * var(--u)) rgba(0, 0, 0, 0.3);
  }

  /* FV（SPコラージュ座標） */
  .p-internship__fv { height: calc(250 * var(--u)); }
  .p-internship__fv-photo--left   { left: calc(18 * var(--u));  top: calc(38 * var(--u));  width: calc(61 * var(--u));  height: calc(142 * var(--u)); }
  .p-internship__fv-photo--top    { left: calc(89 * var(--u));  top: calc(38 * var(--u));  width: calc(130 * var(--u)); height: calc(58 * var(--u)); }
  .p-internship__fv-photo--bottom { left: calc(89 * var(--u));  top: calc(105 * var(--u)); width: calc(130 * var(--u)); height: calc(75 * var(--u)); }
  .p-internship__fv-photo--right  { left: calc(230 * var(--u)); top: calc(38 * var(--u));  width: calc(145 * var(--u)); height: calc(193 * var(--u)); }
  .p-internship__fv-title {
    left: calc(31 * var(--u));
    top: calc(189 * var(--u));
    width: calc(182 * var(--u));
  }

  /* 赤帯CTA: SPは画面下固定CTAがあるため非表示 */
  .p-internship__band-cta { display: none; }

  /* リード：フロー配置に切り替え */
  .p-internship__lead {
    height: auto;
    padding: calc(40 * var(--u)) calc(16 * var(--u)) calc(30 * var(--u));
  }
  .p-internship__lead-box {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    width: 100%;
    height: auto;
    margin: 0 auto;
    padding: calc(18 * var(--u)) calc(14 * var(--u));
  }
  .p-internship__lead-box h2 { width: calc(300 * var(--u)); }
  .p-internship__lead-text {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    width: 100%;
    margin-top: calc(28 * var(--u));
    font-size: calc(13 * var(--u));
    line-height: calc(30 * var(--u));
  }
  .p-internship__lead-illust {
    left: calc(-40 * var(--u));
    top: auto;
    bottom: 0;
    width: calc(470 * var(--u));
    height: calc(158 * var(--u));
  }
  .p-internship__lead-ink--1 { left: calc(20 * var(--u)); top: calc(16 * var(--u)); width: calc(96 * var(--u)); height: calc(102 * var(--u)); }
  .p-internship__lead-ink--2 { left: calc(100 * var(--u)); top: calc(66 * var(--u)); width: calc(67 * var(--u)); height: calc(70 * var(--u)); }
  .p-internship__scroll {
    margin: calc(-20 * var(--u)) auto 0;
  }
  .p-internship__scroll .text { font-size: calc(14 * var(--u)); line-height: calc(30 * var(--u)); }
  .p-internship__scroll .arrow { height: calc(70 * var(--u)); margin-bottom: calc(-50 * var(--u)); }

  /* アンカー */
  .p-internship__anchors {
    gap: calc(24 * var(--u));
    padding: calc(80 * var(--u)) 0 calc(60 * var(--u));
  }
  .p-internship__anchor { width: calc(150 * var(--u)); height: calc(62 * var(--u)); }
  .p-internship__anchor .label { font-size: calc(20 * var(--u)); }
  .p-internship__anchor .chevron { width: calc(18 * var(--u)); height: calc(18 * var(--u)); }

  /* スケジュール（SP座標） */
  .p-internship__schedule {
    padding-left: 0;
    padding-right: calc(8 * var(--u));
  }
  .p-internship__schedule--yamagata { margin-top: calc(70 * var(--u)); }
  .p-internship__schedule--tokyo { margin-top: calc(56 * var(--u)); }
  .p-internship__schedule-label {
    left: 50%;
    transform: translateX(-50%);
    right: auto;
    top: calc(-36 * var(--u));
    width: calc(110 * var(--u));
    height: calc(36 * var(--u));
    border-radius: calc(6 * var(--u)) calc(6 * var(--u)) 0 0;
    writing-mode: horizontal-tb;
    font-size: calc(18 * var(--u));
    letter-spacing: calc(4 * var(--u));
  }
  .p-internship__schedule--yamagata .p-internship__schedule-panel { height: calc(2200 * var(--u)); }
  .p-internship__schedule--tokyo    .p-internship__schedule-panel { height: calc(2200 * var(--u)); }
  .p-internship__schedule-panel { border-radius: 0 calc(10 * var(--u)) calc(10 * var(--u)) 0; }
  .p-internship__schedule-catch {
    left: 50%;
    transform: translateX(-50%);
    top: calc(40 * var(--u));
    font-size: calc(16 * var(--u));
    line-height: 1.5;
    white-space: nowrap;
  }
  .p-internship__schedule-titlebar,
  .p-internship__schedule--tokyo .p-internship__schedule-titlebar {
    left: calc(16 * var(--u));
    right: calc(16 * var(--u));
    top: calc(110 * var(--u));
    width: auto;
    height: calc(56 * var(--u));
    justify-content: center;
  }
  .p-internship__schedule-titlebar h2 {
    padding-left: 0;
    font-size: calc(22 * var(--u));
  }
  .p-internship__schedule-date {
    left: 50%;
    transform: translateX(-50%);
    top: calc(186 * var(--u));
    font-size: calc(24 * var(--u));
    white-space: nowrap;
  }
  .p-internship__schedule-date::before {
    left: calc(-20 * var(--u));
    top: calc(12 * var(--u));
    width: calc(220 * var(--u));
    height: calc(35 * var(--u));
  }
  .p-internship__tl-line {
    left: calc(56 * var(--u));
    top: calc(329 * var(--u));
    width: calc(5 * var(--u));
    height: calc(1369 * var(--u));
  }
  .p-internship__tl-marker--am  { left: calc(26 * var(--u)); top: calc(283 * var(--u));  width: calc(78 * var(--u)); height: calc(78 * var(--u)); }
  .p-internship__tl-marker--sub1 { left: calc(36 * var(--u)); top: calc(752 * var(--u));  width: calc(46 * var(--u)); height: calc(46 * var(--u)); }
  .p-internship__tl-marker--pm  { left: calc(22 * var(--u)); top: calc(1200 * var(--u)); width: calc(78 * var(--u)); height: calc(78 * var(--u)); }
  .p-internship__tl-marker--sub2 { left: calc(36 * var(--u)); top: calc(1652 * var(--u)); width: calc(46 * var(--u)); height: calc(46 * var(--u)); }
  .p-internship__tl-marker { font-size: calc(20 * var(--u)); }
  .p-internship__tl-item,
  .p-internship__tl-item--4 {
    left: calc(117 * var(--u));
    width: calc(240 * var(--u));
  }
  .p-internship__tl-item--1 { top: calc(294 * var(--u)); }
  .p-internship__tl-item--2,
  .p-internship__schedule--tokyo .p-internship__tl-item--2 { top: calc(752 * var(--u)); }
  .p-internship__tl-item--3 { top: calc(1208 * var(--u)); }
  .p-internship__tl-item--4 { top: calc(1675 * var(--u)); }
  .p-internship__tl-title {
    padding: 0 calc(10 * var(--u));
    font-size: calc(16 * var(--u));
    line-height: calc(28 * var(--u));
    white-space: normal;
  }
  .p-internship__tl-desc {
    margin-top: calc(8 * var(--u));
    font-size: calc(14 * var(--u));
    line-height: calc(27 * var(--u));
  }
  .p-internship__tl-photo {
    left: calc(109 * var(--u));
    width: calc(250 * var(--u));
    height: calc(147 * var(--u));
  }
  .p-internship__tl-photo--1 { top: calc(514 * var(--u)); }
  .p-internship__tl-photo--2 { top: calc(972 * var(--u)); }
  .p-internship__tl-photo--3 { top: calc(1432 * var(--u)); }
  .p-internship__point {
    left: calc(16 * var(--u));
    top: calc(1880 * var(--u));
    width: calc(350 * var(--u));
  }
  .p-internship__point-tag {
    width: calc(110 * var(--u));
    height: calc(36 * var(--u));
    font-size: calc(15 * var(--u));
  }
  .p-internship__point-text {
    margin-top: calc(-12 * var(--u));
    padding: calc(28 * var(--u)) calc(18 * var(--u)) calc(18 * var(--u));
    font-size: calc(14 * var(--u));
    line-height: calc(27 * var(--u));
  }

  /* ギャラリー: SPも横に流れる */
  .p-internship__gallery {
    margin-top: 0 !important;
    padding-top: calc(24 * var(--u));
  }
  .p-internship__gallery figure {
    width: calc(260 * var(--u));
    height: calc(200 * var(--u));
  }
  .p-internship__gallery-set {
    gap: calc(12 * var(--u));
    padding-right: calc(12 * var(--u));
  }

  /* モザイクはSPでは非表示 → 素材指定のコラージュに差し替え */
  .p-internship__gallery--mosaic {
    display: none;
  }
  .p-internship__sp-collage {
    display: block;
  }
  .p-internship__sp-collage img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* こんな方におすすめ */
  .p-internship__recommend {
    margin-top: calc(50 * var(--u));
    height: auto;
    padding-bottom: calc(40 * var(--u));
  }
  .p-internship__recommend-torn {
    left: calc(-10 * var(--u));
    width: calc(410 * var(--u));
    height: calc(40 * var(--u));
  }
  .p-internship__recommend-fill { top: calc(36 * var(--u)); }
  .p-internship__recommend-lead,
  .p-internship__recommend-heading,
  .p-internship__recommend-list {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
  }
  .p-internship__recommend-lead {
    padding: calc(56 * var(--u)) calc(16 * var(--u)) 0;
    text-align: center;
    font-size: calc(15 * var(--u));
    line-height: 1.6;
    white-space: normal;
  }
  .p-internship__recommend-heading {
    margin: calc(14 * var(--u)) auto 0;
    width: calc(280 * var(--u));
    height: calc(46 * var(--u));
    font-size: calc(24 * var(--u));
  }
  .p-internship__recommend-heading .small { font-size: calc(17 * var(--u)); }
  .p-internship__recommend-list {
    margin-top: calc(20 * var(--u));
    flex-direction: column;
    align-items: center;
    gap: calc(20 * var(--u));
  }
  .p-internship__recommend-card {
    width: calc(300 * var(--u));
    height: calc(296 * var(--u));
  }
  .p-internship__recommend-card .num { margin-top: calc(16 * var(--u)); font-size: calc(20 * var(--u)); }
  .p-internship__recommend-card .title { margin-top: calc(14 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(23 * var(--u)); }
  .p-internship__recommend-card .badge {
    width: calc(220 * var(--u));
    height: calc(30 * var(--u));
    margin-top: calc(12 * var(--u));
    font-size: calc(13 * var(--u));
  }
  .p-internship__recommend-card .badge small { font-size: calc(11 * var(--u)); }
  .p-internship__recommend-card .desc {
    margin-top: calc(12 * var(--u));
    width: calc(250 * var(--u));
    font-size: calc(13 * var(--u));
    line-height: calc(21 * var(--u));
  }

  /* 開催概要 */
  .p-internship__overview { padding: calc(60 * var(--u)) calc(16 * var(--u)) calc(40 * var(--u)); }
  .p-internship__overview-heading { font-size: calc(26 * var(--u)); }
  .p-internship__overview-table { width: 100%; margin-top: calc(28 * var(--u)); }
  .p-internship__overview-table .row { gap: calc(4 * var(--u)); margin-bottom: calc(4 * var(--u)); }
  .p-internship__overview-table dt {
    width: calc(84 * var(--u));
    min-height: calc(48 * var(--u));
    font-size: calc(14 * var(--u));
  }
  .p-internship__overview-table dd {
    min-height: calc(48 * var(--u));
    padding: calc(6 * var(--u)) calc(12 * var(--u));
    font-size: calc(12 * var(--u));
    line-height: 1.5;
  }

  /* メッセージ */
  .p-internship__message { padding-bottom: calc(30 * var(--u)); }
  .p-internship__message-visual {
    width: calc(360 * var(--u));
    height: calc(288 * var(--u));
  }
  .p-internship__message-visual .text {
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: calc(13 * var(--u));
    line-height: calc(26 * var(--u));
  }

  /* ボトムCTA */
  .p-internship__bottom { height: calc(420 * var(--u)); }
  .p-internship__bottom-title {
    left: calc(24 * var(--u));
    top: calc(60 * var(--u));
    width: calc(250 * var(--u));
  }
  .p-internship__bottom-btn {
    top: calc(260 * var(--u));
    width: calc(240 * var(--u));
    height: calc(70 * var(--u));
    font-size: calc(20 * var(--u));
  }
}
