/* 個人情報保護方針・情報セキュリティ基本方針（policy-row、PC/モバイル共通クラス、 */
.policy-hero {
  position: relative;
  width: 100%;
  height: 264.59px;
  overflow: visible;
}

.policy-hero__bg {
  position: absolute;
  top: -108px;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgb(72, 165, 222);
}
.policy-hero__inner {
  position: relative;
  width: var(--site-width);
  margin-inline: auto;
  padding-inline: 42px;
  padding-top: 83px;
}

.policy-hero__title {
  font-weight: 800;
  font-size: 70px;
  line-height: 1.1em;
  color: #FFFFFF;
}
.policy-hero__subtitle {
  margin: 2px 0 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 14px;
  color: #FFFFFF;
}

.policy-body {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}
.policy-body__inner {
  width: var(--site-width);
  margin-inline: auto;
  padding: 67px 22px 100px;
  box-sizing: border-box;
}
.policy-row {
  display: flex;
  gap: 35px;
  margin-bottom: 26px;
}
.policy-row__label {
  width: 240px;
  min-width: 240px;
  font-size: 18px;
  line-height: 1.2em;
  color: rgb(50, 50, 50);
}
.policy-row__value {
  width: 705px;
  max-width: 705px;
  font-size: 16px;
  line-height: 1.6em;
  color: #000000;
}
.policy-row__value p { margin: 0 0 1em; }
.policy-row__value p:last-child { margin-bottom: 0; }
.policy-row__value ul { list-style: disc; margin: 0; padding-left: 1.3em; }
.policy-row__value li { margin-bottom: 0.3em; }
.policy-row__divider {
  border-top: 1px solid rgb(50, 50, 50);
  height: 0;
  margin-bottom: 26px;
}
.policy-row__divider:last-child {}

.policy-body--stacked .policy-row { display: block; }
.policy-body--stacked .policy-row__label {
  width: auto;
  font-size: 20px;
  margin-bottom: 18.5px;
}
.policy-body--stacked .policy-row__value {
  width: 100%;
  max-width: none;
}

/* COMPANY（会社案内、PC版） */

.company-hero {
  position: relative;
  width: 100%;
  height: 400px;
  overflow: visible;
}
.company-hero__bg { position: absolute; top: -108px; left: 0; right: 0; bottom: 0; background: #000; }
.company-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.6; }
.company-hero__inner {
  position: relative;
  width: var(--site-width);
  margin-inline: auto;
  padding-inline: 22px;
  padding-top: 40px;
}
.company-hero__title {
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 70px;
  line-height: 1.1em;
  color: #fff;
}
.company-hero__subtitle { margin-top: 2px; }

.company-hero__subtitle h1 {
  font-family: var(--font-base);
  font-weight: 400;
  color: #fff;
  font-size: 14px;
}

.column-hero {
  position: relative;
  width: 100%;
  height: 264px;
  overflow: visible;
}
.column-hero__bg { position: absolute; top: -108px; left: 0; right: 0; bottom: 0; background: #000; }
.column-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.6; object-position: center 59%; }
.column-hero__inner {
  position: relative;
  width: var(--site-width);
  margin-inline: auto;
  padding-inline: 22px;
  padding-top: 80px;
}
.column-hero__title {
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 70px;
  line-height: 1.1em;
  color: #fff;
}
.column-hero__subtitle { margin-top: 2px; }
.column-hero__subtitle h1 {
  font-family: var(--font-base);
  font-weight: 400;
  color: #fff;
  font-size: 14px;
}

.company-track { position: relative; width: 100%; height: 232px; }
.company-track__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.company-track__runners { position: absolute; left: 50%; transform: translateX(-50%); top: -106px; width: 996px; height: 257px; z-index: 1; }

.company-track__runners-img { display: block; width: 100%; height: 100%; }

.company-track__runners-img.js-motion {
  --motion-scale: 2;
  animation: motion-fadeIn 960ms 1ms cubic-bezier(0.25, 0.46, 0.45, 0.94) backwards 1 paused,
    motion-dropIn 1200ms 1ms cubic-bezier(0.175, 0.885, 0.32, 1.275) backwards 1 paused;
}

.op-section {
  position: relative;
  width: 1440px;
  min-width: 1440px;
  margin-inline: auto;
  padding: 165px 230px 80px;
  box-sizing: border-box;
  overflow: hidden;
}
.op-section--yellow { background-color: rgb(244, 208, 31); color: #000000; }
.op-section--blue { background-color: rgb(72, 165, 222); color: #FFFFFF; }
.op-section--green { background-color: rgb(80, 180, 64); color: #FFFFFF; }
.op-section--gray { background-color: rgb(232, 230, 230); color: #000000; }
.op-section__bg { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 980px; height: auto; z-index: 0; opacity: 0.5; }

.op-section__bg ~ * { position: relative; z-index: 1; }

.op-flag {
  position: absolute;
  left: 230px;
  top: -77px;
  width: 522px;
  height: 223px;
}
.op-flag img { position: absolute; inset: 0; width: 100%; height: 100%; }

.op-flag__en { position: absolute; left: 89px; top: 20px; width: 353px; margin: 0; font-family: 'Orbitron', sans-serif; font-size: 50px; line-height: 1.1em; font-weight: 800; color: #FFFFFF; }
.op-flag__ja { position: absolute; left: 89px; top: 74px; width: 300px; margin: 0; font-size: 14px; color: #FFFFFF; }

.company-section {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}
.company-section--yellow { background-color: rgb(244, 208, 31); color: #000000; }
.company-section--blue { background-color: rgb(72, 165, 222); color: #FFFFFF; }
.company-section--green { background-color: rgb(80, 180, 64); color: #FFFFFF; }
.company-section--gray { background-color: rgb(232, 230, 230); color: #000000; }
.company-section__inner {
  position: relative;
  z-index: 1;
  width: var(--site-width);
  margin-inline: auto;
  padding: 165px 22px 120px;
  box-sizing: border-box;
}

.company-flag {
  position: absolute;
  left: 22px;
  top: -77px;
  width: 522px;
  height: 223px;
}

.company-flag.js-motion {
  animation: motion-fadeIn 600ms 1ms cubic-bezier(0.47, 0, 0.745, 0.715) backwards 1 paused,
    motion-turnIn-precise 1000ms 1ms cubic-bezier(0.175, 0.885, 0.32, 1.275) backwards 1 paused;
  --motion-origin: -50%, 50%;
  --motion-origin-invert: 50%, -50%;
  --motion-rotate-z: -50deg;
}

.company-flag--mission { position: relative; left: 0; top: auto; margin: 0 0 60px; }

.company-flag--dark .op-flag__en,
.company-flag--dark .op-flag__ja {
  color: #000;
}

.op-flag__en--sm { font-size: 43px; left: 52px; }
.op-flag__ja--sm { left: 52px; }

.op-profile-mascot { position: absolute; left: 557px; top: -56px; width: 450px; height: 247px; }

.company-section .op-info-table { margin: -60px 0 0 100px; }
.info-table-row { display: flex; gap: 14px; margin-bottom: 20px; }
.info-table-row__label { width: 134px; min-width: 134px; font-size: 16px; font-weight: 500; }
.info-table-row__value { width: 822px; max-width: 822px; font-size: 16px; line-height: 1.6em; }
.info-table-row__value p { margin: 0 0 0.3em; }
.info-table-row__value p:last-child { margin-bottom: 0; }
.info-table-row__divider { border-top: 1px solid rgba(0, 0, 0, 0.3); height: 0; margin-bottom: 20px; }

/* ACCESS: オフィス2件 */
.op-office { position: relative; margin: -60px 0 0 100px; padding-bottom: 40px; border-bottom: 1px solid rgba(255, 255, 255, 0.4); min-height: 380px; color: #000; }
.op-office + .op-office { margin-top: 40px; }
.op-office:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 20px; }
.op-office__header { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.op-office__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 135px;
  height: 35px;
  background: rgb(0, 87, 225);
  color: #fff;
  font-weight: 400;
  font-size: 20px;
}
.op-office__label { font-size: 16px; font-weight: 700; margin: 0; }
.op-office__body { width: 380px; }
.op-office__caption { font-size: 16px; font-weight: 400; margin: 0 0 6px; color: inherit; }
.op-office__caption--station {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 135px;
  height: 35px;
  margin: 10px 0 6px;
  background: rgb(89, 89, 89);
  color: #fff;
  font-size: 18px;
}
.op-office__text { font-size: 16px; line-height: 1.5em; margin: 0 0 6px; white-space: pre-line; }

.op-office__map-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 16px;
  width: 300px;
  height: 60px;
  box-sizing: border-box;
  background: #fff;
  color: rgb(0, 87, 225);
  border: 1px solid rgb(0, 87, 225);
  border-radius: 7px;
  font-size: 16px;
  font-weight: 400;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}
.op-office__map-btn:hover {
  background: rgb(0, 87, 225);
  color: #fff;
}
.op-office__photo { position: absolute; right: 0; top: 0; width: 468px; height: 364px; overflow: hidden; }
.op-office__photo img { width: 100%; height: 100%; object-fit: cover; }

.op-achievements__lead { text-align: center; font-size: 20px; margin: -60px 0 40px; }
.op-pill-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; max-width: 800px; margin: 0 auto 80px; font-family: var(--font-heading); }
.op-pill {
  background: #fff;
  color: rgb(80, 180, 64);
  border: 2px solid rgb(80, 180, 64);
  border-radius: 6px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  padding: 20px;
}
.op-pill__note { font-size: 14px; font-weight: 400; }
.company-section .op-pill {
  min-height: 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.op-flag--mission { position: relative; left: auto; top: auto; margin: 0 auto 60px; }
.op-textblock { max-width: 980px; margin: 0 auto; font-size: 20px; line-height: 1.8em; }
.op-textblock--mission { margin: -100px 0 20px 100px; }
.op-textblock p { margin: 0 0 1.2em; }
.op-textblock p:last-child { margin-bottom: 0; }
.op-highlight { font-weight: 800; }

.op-strength { max-width: 980px; margin: 0 auto 50px; }
.op-strength { margin: 20px 0 50px 100px; }
.company-flag + .op-strength { margin-top: -60px; }
.op-strength:last-child { margin-bottom: 0; }

.op-strength__no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 83px;
  height: 58px;
  border-radius: 7px;
  background: #000;
  color: #fff;
  font-weight: 700;
  font-size: 20px;
  margin-right: 20px;
}
.op-strength__title { display: inline-block; font-family: var(--font-heading); font-size: 26px; font-weight: 700; vertical-align: middle; }
.op-strength__body { font-size: 17px; line-height: 1.8em; margin-top: 16px; }
.op-strength__body ul { list-style: disc; margin: 0.5em 0; padding-left: 1.3em; }
.op-strength__body li { margin-bottom: 0.2em; }
.op-strength__body p + p { margin-top: 1em; }

.op-message { margin: -60px 0 0 100px; }

.op-message.js-motion {
  animation: motion-floatIn 1200ms 1ms cubic-bezier(0.445, 0.05, 0.55, 0.95) backwards 1 paused;
}
.op-message__photo { width: 100%; height: auto; display: block; margin-bottom: 20px; }

.op-message__photo.js-motion {
  --motion-scale: 0.8;
  animation: motion-fadeIn 1200ms 600ms linear backwards 1 paused,
    motion-expandIn 1200ms 600ms cubic-bezier(0.645, 0.045, 0.355, 1) backwards 1 paused;
}
.op-message__headline { font-size: 40px; font-family: var(--font-heading); font-weight: 800; line-height: 1.3em; color: #000000; margin: 0 0 30px; }
.op-message__body { font-size: 17px; line-height: 1.9em; color: #000000; }
.op-message__body p { margin: 0 0 1.2em; }
.op-message__body p:last-child { margin-bottom: 0; text-align: right; }
.op-message__diorama { width: 100%; height: auto; }

.company-town { position: relative; }
.company-town__frame { position: absolute; inset: 0; width: 1440px; margin-inline: auto; }
.company-town__superman { position: absolute; left: 1009px; top: 53px; width: 201px; height: 140px; }
.company-town__superman-img {
  position: absolute;
  left: 0;
  top: 0;
  width: 201px;
  height: 125px;
  transition: opacity 0.2s ease-out, visibility 0.2s ease-out;
}
.company-town__superman-img--hover { opacity: 0; visibility: hidden; transition: opacity 0.4s ease-in-out, visibility 0.4s ease-in-out; }
.company-town__superman:hover .company-town__superman-img--base { opacity: 0; visibility: hidden; }
.company-town__superman:hover .company-town__superman-img--hover { opacity: 1; visibility: visible; }

/* RECRUIT（採用情報、PC版） */
.recruit-hero,
.recruit-ycc,
.recruit-service,
.recruit-interview,
.recruit-cta {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}

/* HERO */
.recruit-hero {
  background-color: rgb(80, 180, 64);
  color: #FFFFFF;
}

.recruit-hero__photo {
  position: absolute;
  top: -108px;
  left: 0;
  right: 0;
  height: 993px;

  background-color: #000000;
  border-radius: 0 0 999px 999px;
  overflow: hidden;
  pointer-events: none;
}
.recruit-hero__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.7;
}
.recruit-hero__inner {
  position: relative;
  z-index: 1;
  width: 980px;
  margin-inline: auto;
  padding-top: 336px;
}

.recruit-hero__title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 78px;
  line-height: 1.1em;
  color: #FFFFFF;
}
.recruit-hero__lead {
  margin: 10px 0 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.8em;
  color: #FFFFFF;
}
.recruit-hero__mascot {
  position: absolute;
  left: calc(50% - 720px + 792px);
  top: 128.08px;
  width: 425px;
  height: 650px;
  z-index: 1;
  pointer-events: none;
}

.recruit-hero__mascot.js-motion {
  animation: motion-breathe-1 600ms 1ms linear infinite paused;
  animation-composition: replace;
  --motion-breathe-distance: 20px;
  --motion-breathe-x: 0;
  --motion-breathe-y: 1;
  --motion-breathe-z: 0;
}

.recruit-hero__actions {
  display: flex;
  justify-content: flex-end;
  padding: 301.8px 0 50px;
}

.recruit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 300px;
  height: 60px;
  border-radius: 7px;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 24px;
  text-decoration: none;
}
.recruit-btn--green {
  background-color: rgb(80, 180, 64);
  border: 2px solid #FFFFFF;
  color: #FFFFFF;
}
.recruit-btn--blue {
  background-color: rgb(72, 165, 222);
  border: 2px solid #000000;
  color: #000000;
}

/* You can change.（緑） */
.recruit-ycc {
  background-color: rgb(80, 180, 64);
  color: #FFFFFF;
}
.recruit-ycc__inner {
  display: grid;
  grid-template-columns: 425px 519px;
  gap: 36px;
  width: 980px;
  margin-inline: auto;

  padding-bottom: 287.58px;
}
.recruit-ycc__col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.recruit-ycc__title {
  width: 443px;
  margin: 0 0 30px;
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 84px;
  line-height: 1.1em;
  color: #FFFFFF;
}
.recruit-ycc__text {
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.8em;
  color: #FFFFFF;
}

.recruit-ycc__text p { margin: 0 0 34.2px; }
.recruit-ycc__text p:last-child { margin-bottom: 0; }
.recruit-ycc__photo {
  display: block;
  object-fit: cover;
}
.recruit-ycc__photo--desk { width: 519px; height: 458px; margin-bottom: 69.42px; }
.recruit-ycc__photo--office { width: 425px; height: 290px; margin-top: 23.99px; }
.recruit-ycc__closing {
  margin: 34.2px 0 0;
  font-size: 32px;
  line-height: 1.8em;
  color: #FFFFFF;
}

.recruit-ycc__closing-ja,
.recruit-ycc__closing-en {
  display: block;
  font-weight: 800;
}
.recruit-ycc__closing-ja { font-family: var(--font-heading); }
.recruit-ycc__closing-en { font-family: 'Orbitron', sans-serif; }

/* SERVICE 事業内容（黒） */
.recruit-service {
  background-color: #000000;
  color: #FFFFFF;
}

.recruit-service__bg {
  position: absolute;
  inset: 0;
  background-image: url(../images/office-building-exterior.webp);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-repeat: no-repeat;
  opacity: 0.5;
  pointer-events: none;
}
.recruit-service__crowd {
  position: absolute;
  left: calc(50% - 720px + 571px);
  top: -328px;
  width: 584px;
  height: 357px;
  z-index: 1;
  pointer-events: none;
}
.recruit-service__inner {
  position: relative;
  z-index: 1;
  width: 980px;
  margin-inline: auto;
  padding: 100px 0 198.11px;
  text-align: center;
}
.recruit-service__en {
  margin: 0;
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 70px;
  line-height: 1.1em;
  color: #FFFFFF;
}
.recruit-service__ja {
  margin: 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4em;
  color: #FFFFFF;
}
.recruit-service__title {
  margin: 50px 0 24px;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 40px;
  line-height: 1.1em;
  color: #FFFFFF;
}
.recruit-service__body {
  max-width: 953px;
  margin-inline: auto;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.8em;
  color: #FFFFFF;
  text-align: left;
}
.recruit-service__body p { margin: 0 0 32.4px; }
.recruit-service__body p:last-child { margin-bottom: 0; }

/* INTERVIEW 社員インタビュー（黄） */
.recruit-interview {
  background-color: rgb(244, 208, 31);
  color: #000000;
}
.recruit-interview__team {
  position: absolute;
  left: calc(50% - 720px + 210px);
  top: -153px;
  width: 1017px;
  height: 265px;
  z-index: 1;
  pointer-events: none;
}
.recruit-interview__inner {
  position: relative;
  z-index: 1;
  width: 980px;
  margin-inline: auto;
  padding: 349.1px 0 176.9px;
}

.recruit-interview__video {
  width: 818px;
  height: 509px;
  margin-left: 81px;
  background-color: #000000;
}
.recruit-interview__video iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* 旗（リボン）見出し: INTERVIEW／RECRUIT 共通 */

.recruit-flag {
  position: absolute;
  left: calc(50% - 720px + 230px);
  width: 522px;
  height: 223px;
  z-index: 2;
}
.recruit-flag--interview { top: 148px; }
.recruit-flag--recruit { top: -90px; }
.recruit-flag__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.recruit-flag__en {
  position: absolute;
  left: 89px;
  top: 16px;
  margin: 0;
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 50px;
  line-height: 1.4em;
  color: #FFFFFF;
}
.recruit-flag__ja {
  position: absolute;
  left: 89px;
  top: 84px;
  margin: 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4em;
  color: #FFFFFF;
}

.recruit-flag.js-motion {
  animation: motion-fadeIn 600ms 1ms cubic-bezier(0.47, 0, 0.745, 0.715) backwards 1 paused,
    motion-turnIn-precise 1000ms 1ms cubic-bezier(0.175, 0.885, 0.32, 1.275) backwards 1 paused;
  animation-composition: replace, replace;
  --motion-origin: -50%, 50%;
  --motion-origin-invert: 50%, -50%;
  --motion-rotate-z: -50deg;
}

/* RECRUIT 採用情報（青） */
.recruit-cta {
  background-color: rgb(72, 165, 222);
  color: #000000;
}

.recruit-cta__frame {
  position: absolute;
  inset: 0;
  width: 1440px;
  margin-inline: auto;
  pointer-events: none;
}

.recruit-cta__baton {
  position: absolute;
  left: 853px;
  top: -80px;
  width: 587px;
  height: 403px;
  z-index: 0;
}

.recruit-cta__rocket {
  position: absolute;
  left: 967px;
  top: 429px;
  width: 140px;
  height: 104px;
  z-index: 2;
  pointer-events: auto;
}
.recruit-cta__rocket-img {
  position: absolute;
  left: 0;
  top: 1px;
  width: 123px;
  height: 103px;
  transition: opacity 0.2s ease-out, visibility 0.2s ease-out;
}
.recruit-cta__rocket-img--hover {
  top: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease-in-out, visibility 0.4s ease-in-out;
}
.recruit-cta__rocket:hover .recruit-cta__rocket-img--base { opacity: 0; visibility: hidden; }
.recruit-cta__rocket:hover .recruit-cta__rocket-img--hover { opacity: 1; visibility: visible; }
.recruit-cta__inner {
  position: relative;
  z-index: 1;
  width: 980px;
  margin-inline: auto;
  padding: 105px 0 40px 60px;
  box-sizing: border-box;
}

.recruit-cta__lead.js-motion {
  animation: motion-floatIn 1200ms 1ms cubic-bezier(0.445, 0.05, 0.55, 0.95) backwards 1 paused;
  animation-composition: replace;
  --motion-translate-x: 0px;
  --motion-translate-y: 60px;
}
.recruit-cta__title {
  margin: 0 0 46px;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 85px;
  line-height: 1.1em;
  color: #000000;
}
.recruit-cta__text {
  margin: 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.8em;
  color: #000000;
}
.recruit-cta__inner .recruit-btn { margin-top: 41px; }

/* 街並み（青セクション末尾。ドーム型ディバイダーはfooter.phpが出力） */
.recruit-town {
  position: relative;
  z-index: 1;
}
.recruit-town__img {
  display: block;
  width: 100%;
  height: 598px;
  object-fit: cover;
}

.recruit-town__frame {
  position: absolute;
  inset: 0;
  width: 1440px;
  margin-inline: auto;
  pointer-events: none;
}
.recruit-town__para {
  position: absolute;
  left: 208px;
  top: 13px;
  width: 173px;
  height: 217px;
  pointer-events: auto;
}

.recruit-town__para.js-motion {
  animation: motion-breathe-1 4000ms 1ms linear infinite paused;
  animation-composition: replace;
  --motion-breathe-distance: 25px;
  --motion-breathe-x: 0;
  --motion-breathe-y: 1;
  --motion-breathe-z: 0;
}
.recruit-town__para-img {
  position: absolute;
  left: 0;
  top: 1px;
  width: 158px;
  height: 210px;
  transition: opacity 0.2s ease-out, visibility 0.2s ease-out;
}
.recruit-town__para-img--hover {
  top: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease-in-out, visibility 0.4s ease-in-out;
}
.recruit-town__para:hover .recruit-town__para-img--base { opacity: 0; visibility: hidden; }
.recruit-town__para:hover .recruit-town__para-img--hover { opacity: 1; visibility: visible; }
.recruit-town__superman {
  position: absolute;
  left: 779px;
  top: 223px;
  width: 201px;
  height: 140px;
  pointer-events: auto;
}
.recruit-town__superman-img {
  position: absolute;
  left: 0;
  top: 0;
  width: 201px;
  height: 125px;
  transition: opacity 0.2s ease-out, visibility 0.2s ease-out;
}
.recruit-town__superman-img--hover {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease-in-out, visibility 0.4s ease-in-out;
}
.recruit-town__superman:hover .recruit-town__superman-img--base { opacity: 0; visibility: hidden; }
.recruit-town__superman:hover .recruit-town__superman-img--hover { opacity: 1; visibility: visible; }

@keyframes recruit-page-baton-scale {
  from { transform: translateY(0vh) translate(50%, 0%) scale(1) translate(-50%, 0%); }
  to { transform: translateY(30vh) translate(50%, 0%) scale(1.7) translate(-50%, 0%); }
}
@keyframes recruit-page-rocket-scroll {
  from { transform: translateX(400px); }
  to { transform: translateX(-400px); }
}
@supports (animation-timeline: scroll()) {
  #recruit-baton {
    view-timeline-name: --recruit-page-baton-timeline;
    view-timeline-axis: block;
    animation: recruit-page-baton-scale linear forwards;
    animation-timeline: --recruit-page-baton-timeline;
    animation-range: cover 50% cover 100%;
  }
  #recruit-rocket {
    view-timeline-name: --recruit-page-rocket-timeline;
    view-timeline-axis: block;
    animation: recruit-page-rocket-scroll linear both;
    animation-timeline: --recruit-page-rocket-timeline;
  }
}

/* CONTACT（お問い合わせ、PC版） */

.contact-hero {
  position: relative;
  width: 100%;
  height: 455px;
  overflow: visible;
}

.contact-hero__bg { position: absolute; top: -108px; left: 0; right: 0; bottom: 0; background: #000; }
.contact-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.7; }

.contact-hero__inner {
  position: relative;
  width: var(--site-width);
  margin-inline: auto;
  padding-inline: 22px;
  padding-top: 70px;
}
.contact-hero__title {
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  color: #fff;
  font-size: 70px;
  line-height: 1.1em;
}
.contact-hero__subtitle { margin-top: 2px; }

.contact-hero__subtitle h1 {
  font-family: var(--font-base);
  font-weight: 400;
  color: #fff;
  font-size: 14px;
}

.op-contact-track {
  position: relative;
  width: 100%;
  height: 170px;
}

.op-contact-track__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.op-contact-track__runners {
  position: absolute;
  left: 50%;
  right: 0;
  bottom: 37px;
  z-index: 1;
  display: flex;
  justify-content: center;
  width: 1230px;

  margin-left: -615px;
}
.op-contact-track__runners-img {
  display: block;
  max-width: 100%;
  height: auto;
}

.op-contact-track__runners-img.js-motion {
  --motion-scale: 1.3;
  animation: motion-fadeIn 1200ms 1ms linear backwards 1 paused,
    motion-dropIn 1200ms 1ms cubic-bezier(0.175, 0.885, 0.32, 1.275) backwards 1 paused;
}

.op-contact-form-section {
  position: relative;
  width: 100%;
  padding-block: 27px 140px;
  box-sizing: border-box;
}
.op-contact-form-section__inner {
  width: var(--site-width);
  margin-inline: auto;
  padding-inline: 22px;
}

.op-contact-disclaimer { max-width: 904px; font-size: 15px; line-height: 1.8em; margin: 0 0 46px 40px; }

.op-contact-card { background: #fff; padding: 40px; }

.op-contact-error { max-width: 904px; font-size: 15px; line-height: 1.8em; margin: 0 0 24px 40px; color: #e63946; }

.op-contact-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.op-contact-form { max-width: 900px; }
.op-contact-field { margin-bottom: 24px; }
.op-contact-label { display: block; font-size: 16px; margin-bottom: 8px; }

.op-contact-required { color: crimson; margin-left: 4px; }

.op-contact-checkbox-group { display: flex; flex-wrap: wrap; gap: 12px 16px; }

.op-contact-checkbox { display: flex; align-items: center; gap: 12px; font-size: 16px; cursor: pointer; }
.op-contact-checkbox input[type="checkbox"] { width: 16px; height: 16px; border: 1px solid rgba(0, 0, 0, 0.6); }

.op-contact-input, .op-contact-textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(0, 0, 0, 0.6);
  background: #fff;
  font-size: 16px;
  padding: 8px 12px;
  font-family: inherit;
}
.op-contact-textarea { min-height: 74px; resize: vertical; }

.op-contact-field--checkbox .op-contact-checkbox a { color: rgb(0, 87, 225); text-decoration: underline; }
.op-contact-submit {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: rgb(0, 87, 225);
  color: #fff;
  border: 0;
  border-radius: 0;
  padding: 11px 15px;
  font-size: 16px;
  cursor: pointer;
}

/* MEMBER（スタッフ紹介、PC版） */
.member-hero,
.member-track,
.member-story,
.member-list {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}

/* HERO */

.member-hero { height: 480px; margin-top: -106.6875px; }
.member-hero__bg {
  position: absolute;
  inset: 0;
  background-color: #000000;
  overflow: hidden;
  pointer-events: none;
}
.member-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.6; }
.member-hero__inner {
  position: relative;
  z-index: 1;
  width: 980px;
  margin-inline: auto;
  padding: 140px 0 0;
}

.member-hero__title {
  margin: 0;
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 70px;
  line-height: 77px;
  color: #FFFFFF;
}

.member-hero__subtitle {
  margin: 2px 0 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 14px;
  line-height: 19.6px;
  color: #FFFFFF;
}

/* 走路帯（整列イラスト） */

.member-track { height: 170px; overflow: visible; }
.member-track__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.member-track__runners {
  position: absolute;
  left: calc(50% - 720px + 105px);
  top: -187px;
  width: 1230px;
  height: 323px;
  z-index: 1;
}
.member-track__runners-img { display: block; width: 100%; height: 100%; }

.member-track__runners-img.js-motion {
  --motion-scale: 2;
  animation: motion-fadeIn 960ms 1ms cubic-bezier(0.25, 0.46, 0.45, 0.94) backwards 1 paused,
    motion-dropIn 1200ms 1ms cubic-bezier(0.175, 0.885, 0.32, 1.275) backwards 1 paused;
}

/* 旗（リボン）見出し: OUR STORY / MEMBER 共通 */

.member-flag {
  position: absolute;
  left: calc(50% - 720px + 230px);
  width: 522px;
  height: 223px;
  z-index: 2;
}
.member-flag__bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.member-flag__en {
  position: absolute;
  top: 16px;
  margin: 0;
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 50px;
  line-height: 70px;
  color: #FFFFFF;
  white-space: nowrap;
}

.member-flag__ja {
  position: absolute;
  top: 84px;
  margin: 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 14px;
  line-height: 19.6px;
  color: #FFFFFF;
  white-space: nowrap;
}
.member-flag--story { top: -30px; }
.member-flag--story .member-flag__en,
.member-flag--story .member-flag__ja { left: 79px; }
.member-flag--list { top: -92px; }
.member-flag--list .member-flag__en,
.member-flag--list .member-flag__ja { left: 89px; }

.member-flag.js-motion {
  animation: motion-fadeIn 600ms 1ms cubic-bezier(0.47, 0, 0.745, 0.715) backwards 1 paused,
    motion-turnIn-precise 1000ms 1ms cubic-bezier(0.175, 0.885, 0.32, 1.275) backwards 1 paused;
  animation-composition: replace, replace;
  --motion-origin: -50%, 50%;
  --motion-origin-invert: 50%, -50%;
  --motion-rotate-z: -50deg;
}

/* OUR STORY（緑／黄の2セクション） */
.member-story { color: #000000; overflow: visible; }
.member-story--green { background-color: rgb(80, 180, 64); padding: 165px 0 31px; }

.member-story--yellow { background-color: rgb(244, 208, 31); padding: 80px 0 133.16px; }

.member-story__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.2;
  z-index: 0;
  pointer-events: none;
}
.member-story__inner {
  position: relative;
  z-index: 1;
  width: 976px;
  margin-inline: auto;
}

.member-story__photo {
  display: block;
  margin: 11px 0 64px auto;
  width: 830px;
  height: 374px;
  object-fit: cover;
}

.member-story__photo.js-motion {
  --motion-scale: 0.8;
  animation: motion-fadeIn 1200ms 600ms linear backwards 1 paused,
    motion-expandIn 1200ms 600ms cubic-bezier(0.645, 0.045, 0.355, 1) backwards 1 paused;
}

.member-story__tagline {
  margin: 0 0 20px;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 50px;
  line-height: 70px;
  color: #000000;
}
.member-story__body { font-size: 18px; line-height: 1.8em; color: #000000; }
.member-story__body p { margin: 0; }

.member-story__body.js-motion {
  --motion-translate-x: 0px;
  --motion-translate-y: 60px;
  animation: motion-floatIn 1200ms 1ms cubic-bezier(0.445, 0.05, 0.55, 0.95) backwards 1 paused;
}

.member-story__runner {
  position: relative;
  z-index: 1;
  width: 1034px;
  height: 187px;
  margin: 57px 0 0 calc(50% - 720px + 230px);
}
.member-story__runner-img { display: block; width: 100%; height: 100%; object-fit: cover; }
@keyframes member-story-runner-slide {
  from { transform: translateX(calc(100vw - var(--motion-left, 0px))); }
  to { transform: translateX(calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)); }
}
@supports (animation-timeline: scroll()) {
  .member-story__runner {
    view-timeline-name: --member-story-runner-timeline;
    view-timeline-axis: block;
    animation: member-story-runner-slide linear both;
    animation-timeline: --member-story-runner-timeline;
  }
}

.member-story__row { display: flex; align-items: flex-start; gap: 46px; margin: 0 0 40px; }
.member-story__row--top { gap: 32px; margin-bottom: 73px; }
.member-story__col-text { flex: 1 1 auto; font-size: 19px; line-height: 1.8em; text-align: justify; color: #000000; }
.member-story__col-text p { margin: 0; }
.member-story__photo2 { flex: 0 0 519px; width: 519px; height: 458px; object-fit: cover; }

.member-story__col-photo-left { position: relative; flex: 0 0 489px; }
.member-story__photo3 { display: block; width: 489px; height: 500px; object-fit: cover; }

.member-story__photo2.js-motion,
.member-story__photo3.js-motion {
  --motion-translate-y: 0px;
  animation: motion-floatIn 1200ms 1ms cubic-bezier(0.445, 0.05, 0.55, 0.95) backwards 1 paused;
}
.member-story__photo2.js-motion { --motion-translate-x: 60px; }
.member-story__photo3.js-motion { --motion-translate-x: -60px; }

.member-story__body--full { font-size: 18px; text-align: justify; margin-top: 40px; }
.member-story__body--full p { margin: 0; }
.member-story__highlight { font-family: var(--font-heading); font-weight: 800; font-size: 21px; line-height: 1.6em; margin: 0; }
.member-story__body--full p:not(.member-story__highlight) { margin-top: 28.59px; }

.member-story__audience { position: absolute; z-index: 2; left: 108px; top: -178px; width: 317px; height: 194px; pointer-events: none; }
.member-story__audience img { display: block; width: 100%; height: 100%; object-fit: contain; }
@keyframes member-audience-wobble {
  0% { transform: none; }
  7.74% { transform: rotate(10deg) translateY(-10px); }
  15.05% { transform: rotate(-8deg) translateY(0px); }
  22.79% { transform: rotate(6deg) translateY(0px); }
  31.39% { transform: rotate(-4deg) translateY(0px); }
  43% { transform: rotate(0deg) translateY(0px); }
  100% { transform: none; }
}
.member-story__audience.js-motion { animation: member-audience-wobble 1400ms 1ms linear infinite paused; }

.member-story__shape-bottom {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 50px;
  background-image: var(--svg-diorama-blue);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  pointer-events: none;
}

/* MEMBER 選手紹介（青） */
.member-list {
  padding: 200px 0 0;
  background-color: rgb(72, 165, 222);
  color: #FFFFFF;
  overflow: visible;
}
.member-list__inner { position: relative; z-index: 1; width: 984px; margin-inline: auto; }

.member-list__photographer {
  position: absolute;
  left: calc(50% - 720px + 971px);
  top: -120px;
  width: 193px;
  height: 244px;
  object-fit: contain;
  z-index: 2;
  pointer-events: none;
}

.member-list__deco { position: absolute; inset: 0; overflow: visible; pointer-events: none; z-index: 0; }
.member-list__cloud,
.member-list__balloon {
  position: absolute;
  display: block;
  --motion-breathe-distance: 25px;
  --motion-breathe-x: 0;
  --motion-breathe-y: 1;
  --motion-breathe-z: 0;
}
.member-list__cloud.js-motion,
.member-list__balloon.js-motion { animation: motion-breathe-1 4000ms 1ms linear infinite paused; }
.member-list__balloon { --motion-breathe-distance: 60px; --motion-breathe-x: 1; --motion-breathe-y: 0; }
.member-list__cloud--1 { left: calc(50% - 720px + 11px); top: 99px; width: 233px; height: 101px; }
.member-list__cloud--2 { left: calc(50% - 720px + 150px); top: 357px; width: 182px; height: 78px; }
.member-list__cloud--3 { left: calc(50% - 720px + 16px); top: 623px; width: 165px; height: 73px; }
.member-list__cloud--4 { left: calc(50% - 720px + 82px); top: 789px; width: 239px; height: 101px; }
.member-list__cloud--5 { left: calc(50% - 720px + 240px); top: 1048px; width: 159px; height: 66px; }
.member-list__cloud--6 { left: calc(50% - 720px + 99px); top: 1234px; width: 214px; height: 85px; }
.member-list__cloud--7 { left: calc(50% - 720px + 1127px); top: 8px; width: 239px; height: 101px; }
.member-list__cloud--8 { left: calc(50% - 720px + 1265px); top: 337px; width: 159px; height: 66px; }
.member-list__cloud--9 { left: calc(50% - 720px + 1064px); top: 523px; width: 214px; height: 85px; }
.member-list__cloud--10 { left: calc(50% - 720px + 1184px); top: 782px; width: 233px; height: 101px; }
.member-list__cloud--11 { left: calc(50% - 720px + 1083px); top: 1040px; width: 182px; height: 78px; }
.member-list__cloud--12 { left: calc(50% - 720px + 1249px); top: 1306px; width: 165px; height: 73px; }
.member-list__balloon--1 { left: calc(50% - 720px + 39px); top: 862px; width: 141px; height: 186px; }
.member-list__balloon--2 { left: calc(50% - 720px + 1244px); top: 121px; width: 141px; height: 186px; }

.member-grid { display: flex; flex-direction: column; gap: 98.3px; }
.member-grid__row { display: flex; justify-content: center; gap: 12px; }

.member-grid__row.js-motion {
  animation: motion-fadeIn 720ms 1ms cubic-bezier(0.645, 0.045, 0.355, 1) backwards 1 paused,
    motion-growIn 1200ms 1ms cubic-bezier(0.645, 0.045, 0.355, 1) backwards 1 paused;
  animation-composition: replace, replace;
}

.member-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 320px;
  background-color: #FFFFFF;
  color: #000000;
  border: 2px solid rgb(0, 87, 225);
  border-radius: 15px;
  padding: 20px 20px 24px;
  box-sizing: border-box;
  text-align: center;
  transition: transform 0.4s ease-in-out;
}
.member-card:hover { transform: scale(1.03); z-index: 1; }

.member-card.js-motion {
  animation: motion-fadeIn 600ms 1ms cubic-bezier(0.445, 0.05, 0.55, 0.95) backwards 1 paused;
}

.member-card__badge {
  position: absolute;
  left: 0;
  top: -61px;
  display: flex;
  align-items: flex-start;
  gap: 4px;
  margin: 0;
  line-height: 1;
  letter-spacing: -0.1em;
}

.member-card__badge.js-motion {
  animation: motion-fadeIn 1200ms 600ms cubic-bezier(0.445, 0.05, 0.55, 0.95) backwards 1 paused;
}
.member-card__hash { font-size: 36px; color: rgb(0, 87, 225); font-family: 'Saira', sans-serif; font-weight: 800; }
.member-card__no { font-size: 60px; color: rgb(0, 87, 225); font-family: 'Saira', sans-serif; font-weight: 700; line-height: 0.8; }

.member-card__role { font-size: 21px; font-family: var(--font-heading); font-weight: 800; margin: 4px 0 12px; }
.member-card__photo { width: 92px; height: 227px; margin: 0 auto 12px; overflow: hidden; }
.member-card__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.member-card__tagline { font-size: 13px; line-height: 1.4em; font-weight: 700; color: var(--color-dark-red); margin: 0; text-align: justify; }

.member-card__footer { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: 23px; }
.member-card__meta { display: flex; align-items: baseline; gap: 13px; min-width: 0; }
.member-card__position { font-size: 13px; color: #000000; margin: 0; white-space: nowrap; }
.member-card__name { font-size: 24px; color: #000000; margin: 0; white-space: nowrap; }

.member-card__profile-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 90px;
  height: 30px;
  padding: 0;
  background: rgb(0, 87, 225);
  color: #FFFFFF;
  border: 0;
  border-radius: 7px;
  font-family: var(--font-base);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 1.3px;
  white-space: nowrap;
  cursor: pointer;
}

.member-list__note { text-align: right; margin: 25px 26px 0 0; font-size: 16px; line-height: 1.8em; color: #000000; }

/* 街並み（青セクション末尾） */

.member-town { position: relative; width: 100%; height: 598px; margin-top: 42px; overflow: hidden; }
.member-town__img { display: block; width: 100%; height: 100%; object-fit: cover; }

.member-town__bottom {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 50px;
  background-image: var(--svg-diorama-green);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  pointer-events: none;
}
.member-town__airship { position: absolute; left: calc(50% - 720px + 40px); top: 14px; width: 636px; height: 118px; }
@keyframes member-airship-slide {
  from { transform: translateX(calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)) skewX(17deg); }
  to { transform: translateX(calc(100vw - var(--motion-left, 0px))) skewX(-17deg); }
}
@supports (animation-timeline: scroll()) {
  .member-town__airship {
    view-timeline-name: --member-airship-timeline;
    view-timeline-axis: block;
    animation: member-airship-slide linear both;
    animation-timeline: --member-airship-timeline;
  }
}

/* PROFILEポップアップ */

.member-modal { position: fixed; inset: 0; z-index: 100001; display: none; overflow-y: auto; overflow-x: auto; background: #FFFFFF; }

.member-modal.is-open { display: flex; flex-direction: column; }

.member-modal__overlay { position: absolute; inset: 0; min-height: 100%; }

.member-modal__viewport {
  margin: auto 0;
  display: flex;
  justify-content: center;
}
body:not(.device-mobile-optimized) .member-modal__viewport { min-width: var(--site-width); }
.member-modal__dialog { position: relative; width: 980px; }

.member-modal__close {
  position: absolute;
  top: 43px;
  right: 0;
  width: 40px;
  height: 40px;
  border: 0;
  background: transparent;
  -webkit-appearance: none;
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 1;
}
.member-modal__close svg { display: block; width: 40px; height: 40px; }

.member-modal__card {
  position: relative;
  margin: 101px 0 41px 0;
  background-color: rgb(80, 180, 64);
  border-radius: 15px;
  padding: 10px;
  box-sizing: border-box;
}
.member-modal__card-inner {
  background-color: rgb(177, 210, 95);
  border-radius: 13px;
  padding: 65px 40px 49px 98px;
  box-sizing: border-box;
  color: #FFFFFF;
  display: flex;
  gap: 92px;
  align-items: flex-start;
}

.member-modal__flag { position: absolute; left: 29px; top: -87px; width: 522px; height: 223px; }
.member-modal__flag-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.member-modal__flag-text { position: relative; z-index: 1; padding-top: 18px; margin: 0; font-family: 'Orbitron', sans-serif; font-size: 50px; font-weight: 800; text-align: center; color: #FFFFFF; }

.member-modal__photo { display: block; flex: 0 0 var(--member-modal-photo-width-pc, 205px); width: var(--member-modal-photo-width-pc, 205px); height: 536px; object-fit: cover; }
.member-modal__content { flex: 1 1 auto; min-width: 0; }

.member-modal__dept-name { font-size: 12px; line-height: 1.6em; color: rgb(50, 50, 50); text-align: justify; margin: 0 0 16px; }
.member-modal__items { text-align: left; }

.member-modal__item-label {
  display: block;
  background: rgb(80, 180, 64);
  border-radius: 7px;
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 400;
  padding: 8px 16px 10px;
  margin: 0 0 6px;
}

.member-modal__item-body { font-size: 12px; line-height: 1.6em; color: rgb(50, 50, 50); text-align: justify; margin: 0 0 16px; }
.member-modal__item-body:last-child { margin-bottom: 0; }

.rr-hero {
  position: relative;
  width: 100%;
  height: 387px;
  overflow: visible;
}

.rr-hero__bg {
  position: absolute;
  top: -108px;
  left: 0;
  right: 0;
  height: 495px;
  overflow: hidden;
  pointer-events: none;
}
.rr-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rr-hero__inner {
  position: relative;
  z-index: 1;
  width: var(--site-width);
  margin-inline: auto;
  padding: 119px 22px 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.rr-hero__title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 70px;
  line-height: 1.1em;
  color: #FFFFFF;
}
.rr-hero__subtitle {
  margin: 4px 0 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 14px;
  color: #FFFFFF;
}

.rr-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 300px;
  height: 60px;
  margin-top: 150px;
  background: #FFFFFF;
  border: 1px solid var(--color-dark-red);
  border-radius: 7px;
  color: var(--color-dark-red);
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 24px;
  letter-spacing: 0.1em;
  text-decoration: none;
}

/* 冒頭キャッチコピー */

.rr-intro {
  position: relative;
  width: 100%;
  background: #FFFFFF;
}
.rr-intro__inner {
  width: var(--site-width);
  margin-inline: auto;
  padding: 100px 22px 80px;
  box-sizing: border-box;
}
.rr-intro__title {
  margin: 0 0 40px;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 60px;
  line-height: 1.1em;
  color: #000000;
}
.rr-intro__body {
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.8em;
  color: #000000;
  text-align: justify;
}
.rr-intro__body p { margin: 0 0 34px; }
.rr-intro__body p:last-child { margin-bottom: 0; }

/* REQUIREMENTS 募集要項リスト */
.rr-list {
  position: relative;
  width: 100%;
  background: var(--color-bg);
  padding: 80px 0 0;
}
.rr-list__inner {
  width: var(--site-width);
  margin-inline: auto;
  padding: 0 22px 160px;
  box-sizing: border-box;
}
.rr-list__heading {
  margin: 0 0 60px;
  display: flex;
  align-items: baseline;
  gap: 48px;
}
.rr-list__heading-en {
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 48px;
  color: #000000;
}
.rr-list__heading-ja {
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.01em;
  color: #000000;
}
.rr-row {
  display: flex;
  gap: 40px;
  padding: 26px 0;
  border-top: 1px solid rgb(50, 50, 50);
}
.rr-row:last-child { border-bottom: 1px solid rgb(50, 50, 50); }
.rr-row__label {
  flex: 0 0 214px;
  width: 214px;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.4em;
  color: #000000;
}
.rr-row__value {
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8em;
  color: #000000;
  text-align: justify;
}
.rr-row__value p { margin: 0 0 20px; }
.rr-row__value p:last-child { margin-bottom: 0; }
.rr-row__value ul { list-style: none; margin: 0 0 20px; padding: 0; }
.rr-row__value ul:last-child { margin-bottom: 0; }
.rr-row__value li { margin-bottom: 4px; }

.rr-row__subhead {
  display: block;
  margin: 0 0 16px;

  font-weight: 400;
}
.rr-row__subhead:not(:first-child) { margin-top: 28px; }
.rr-row__subhead span {display: inline-block;padding-bottom: 8px;border-bottom: 1px solid rgb(50, 50, 50);}

/* 福利厚生フォトキャプション */
.rr-photos {
  display: flex;
  gap: 40px;
  margin: 20px 0 60px;
  flex-wrap: wrap;
}
.rr-photos__item { flex: 1 1 460px; min-width: 0; }
.rr-photos__img { display: block; width: 100%; height: auto; }
.rr-photos__caption {
  margin: 16px 0 0;
  font-size: 16px;
  line-height: 1.6em;
  color: #000000;
}
.rr-photos__caption strong { font-weight: 700; }
.rr-list__cta { display: flex; justify-content: center; margin-top: 20px; }
.rr-list__cta .rr-btn { margin-top: 0; }

.entry-hero {
  position: relative;
  width: 100%;
  height: 555px;
  overflow: visible;
}

.entry-hero__bg { position: absolute; top: -108px; left: 0; right: 0; bottom: 0; background: #000; }
.entry-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.7; }
.entry-hero__inner {
  position: relative;
  width: var(--site-width);
  margin-inline: auto;
  padding-inline: 22px;
  padding-top: 173px;
}
.entry-hero__title {
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  color: #fff;
  font-size: 70px;
  line-height: 1.1em;
}
.entry-hero__subtitle {
  margin-top: 3px;
  font-family: var(--font-base);
  font-weight: 400;
  color: #fff;
  font-size: 14px;
}

/* 走路帯（整列イラスト、MEMBERの.member-track__runnersと同一値） */
.entry-track {
  position: relative;
  width: 100%;
  height: 170px;
  overflow: visible;
}
.entry-track__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.entry-track__runners {
  position: absolute;
  left: calc(50% - 720px + 105px);
  top: -187px;
  width: 1230px;
  height: 323px;
  z-index: 1;
}
.entry-track__runners-img { display: block; width: 100%; height: 100%; }

select.op-contact-input { appearance: auto; cursor: pointer; }

.entry-field-row { display: flex; gap: 24px; }
.entry-field-row .op-contact-field:first-child { flex: 0 0 284px; min-width: 0; }
.entry-field-row .op-contact-field:last-child { flex: 1 1 592px; min-width: 0; }
.entry-dob-row { display: flex; gap: 24px; }
.entry-dob-row .op-contact-field { flex: 1 1 0; min-width: 0; }

.news-hero {
  position: relative;
  width: 100%;
  height: 355px;
  margin-bottom: 181px;
}
.news-hero__bg { position: absolute; top: -108px; left: 0; right: 0; bottom: 0; background: #000; }
.news-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.6; }
.news-hero__inner {
  position: relative;
  width: var(--site-width);
  margin-inline: auto;
  padding-inline: 22px;
  padding-top: 36px;
}
.news-hero__title {
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: 70px;
  line-height: 1.1em;
  color: #fff;
}
.news-hero__subtitle {
  margin: 2px 0 0;
  font-family: var(--font-base);
  font-weight: 400;
  font-size: 14px;
  color: #fff;
}
.news-hero__lineup {
  position: absolute;
  left: calc(50% - 720px + 223px);
  top: 249px;
  width: 996px;
  height: 257px;
  max-width: none;
  pointer-events: none;
}
