:root {
  --color-white: #fff;
  --color-txt: #1e2855;
  --color-accent: #1e78eb;
  --color-accent02: #5e9cf8;
  --color-accent03: #2b7ade;
  --color-gray: #aaa;
  --color-gray02: #c8c8c8;
  --color-gray03: #f6f6f6;
  --color-consulting: #5e9cf8;
  --color-bg: #f4f3ef;
  --color-yellow: #e2f174;
  --color-navy: #47505f;
  --color-dark-navy: #1e2855;
  --color-beige: #f4f3ef;
  --color-red: #e15555;
}

/* =======================================================
common
======================================================= */
@media screen and (min-width: 769px) {
  /* Figma 採用情報 269:2413：英字見出しは上220 */
  .l-lower-mv {
    padding: 13.75rem 0 1.875rem;
  }
}

/* =======================================================
btn
======================================================= */
.c-recruit__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 22.125rem;
  padding: 0.9375rem 1.5625rem 1.0625rem;
  font-size: 1.125rem;
  line-height: calc(28/18);
  color: var(--color-white);
  background: var(--color-accent);
  border-radius: 3.125rem;
}
@media screen and (min-width: 769px) {
  .c-recruit__btn {
    letter-spacing: 0.1em;
  }
}
@media screen and (max-width: 768px) {
  .c-recruit__btn {
    max-width: 16.0625rem;
    padding: 0.625rem 1.0625rem 0.75rem;
    font-size: 0.875rem;
    line-height: calc(26/14);
  }
}
.c-recruit__btn::after {
  width: 0.9375rem;
  height: 0.75rem;
  content: "";
  background: url("../images/common/arrow--white.svg") top center/contain no-repeat;
}

/* =======================================================
message
======================================================= */
.l-message {
  /* Figma 269:2413：見出し帯下331→MESSAGEパネル上391（上1.875rem） */
  padding: 1.875rem 0 11.25rem;
}
@media screen and (max-width: 768px) {
  .l-message {
    /* Figma SP：見出し帯下250→タイトル上320（上4.375rem） */
    padding: 4.375rem 0 3.75rem;
  }
}

.p-message__column {
  display: grid;
  grid-template-columns: 39.875rem 1fr;
}
@media screen and (min-width: 769px) {
  /* B13: MESSAGEは薄灰色パネルで囲む（Figma 269:2443） */
  .p-message__column {
    grid-template-columns: 29.3125rem auto;
    align-items: center;
    justify-content: space-between;
    padding: 5rem;
    background: var(--color-gray03);
    border-radius: 1.875rem;
  }
}
@media screen and (max-width: 768px) {
  .p-message__column {
    grid-template-columns: auto;
  }
  /* SPは本文・ボタンの.p-message__column-bodyだけが画面幅いっぱいの灰色パネルになる（Figma 269:2742） */
  /* Figma SP：本文テキスト上はhgroupの余白のみ（本文自体にはパディングを追加しない。背景は::beforeで上に2.5rem分広げて見た目の余白を出す） */
  .p-message__column-body {
    position: relative;
    z-index: 0;
    padding: 0 1.5625rem 2.1875rem;
  }
  .p-message__column-body::before {
    position: absolute;
    top: -2.5rem;
    left: 50%;
    z-index: -1;
    width: 100vw;
    height: calc(100% + 2.5rem);
    content: "";
    background: var(--color-gray03);
    border-radius: 1.875rem;
    transform: translateX(-50%);
  }
}
.p-message__column-body-txt {
  padding-left: 0.625rem;
  margin-bottom: 3.625rem;
  font-size: 1.125rem;
  line-height: calc(46/18);
}
/* Figma 269:2449：PCは16px・行送り36px・改行位置固定 */
@media screen and (min-width: 769px) {
  .p-message__column-body-txt {
    padding-left: 0;
    margin-bottom: 2.5rem;
    font-size: 1rem;
    line-height: calc(36/16);
    white-space: nowrap;
  }
  .l-message {
    padding-bottom: 5rem;
  }
}
@media screen and (max-width: 768px) {
  .p-message__column-body-txt {
    padding-left: 0;
    margin-bottom: 3.125rem;
    font-size: 0.875rem;
    line-height: calc(36/14);
  }
}
.p-message__column-body-btn-wrapper {
  display: grid;
  gap: 1.25rem;
}
@media screen and (max-width: 768px) {
  .p-message__column-body-btn-wrapper {
    gap: 0.9375rem;
  }
}
.p-message__column-body-btn-inner {
  display: flex;
  gap: 0.3125rem;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .p-message__column-body-btn-inner {
    gap: 0.1875rem;
  }
}
.p-message__column-body-btn-inner::after {
  content: "";
}
.p-message__column-body-btn.--casual-apply .p-message__column-body-btn-inner::after {
  width: 1.875rem;
  height: 1.875rem;
  background: url("../images/recruit/anim/smile.webp") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-message__column-body-btn.--casual-apply .p-message__column-body-btn-inner::after {
    width: 1.25rem;
    height: 1.25rem;
  }
}
.p-message__column-body-btn.--job {
  background: var(--color-accent02);
}
.p-message__column-body-btn.--job::after {
  width: 0.8125rem;
  height: 1rem;
  background: url("../images/common/arrow--white-toptobottom.svg") top center/contain no-repeat;
}
.p-message__column-body-btn.--job .p-message__column-body-btn-inner::after {
  width: 1.5rem;
  height: 1.5rem;
  background: url("../images/recruit/anim/check.webp") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-message__column-body-btn.--job .p-message__column-body-btn-inner::after {
    width: 1.125rem;
    height: 1.125rem;
  }
}
@media screen and (max-width: 768px) {
  .p-message__hgroup {
    margin-bottom: 1.875rem;
  }
}
.p-message__hgroup-ttl {
  margin-bottom: 0.625rem;
  font-size: 2rem;
  line-height: calc(60/32);
}
@media screen and (max-width: 768px) {
  .p-message__hgroup-ttl {
    margin-bottom: 0.625rem;
    font-size: 1.375rem;
    line-height: calc(38/22);
  }
}
.p-message__hgroup-txt {
  font-size: 1rem;
  line-height: calc(50/16);
  color: var(--color-gray);
}
@media screen and (max-width: 768px) {
  .p-message__hgroup-txt {
    font-size: 0.75rem;
    line-height: calc(20/12);
  }
}

/* =======================================================
slider
======================================================= */
.p-slider {
  display: flex;
  will-change: transform;
}
.p-slider__wrapper {
  display: flex;
  overflow: hidden;
}
.p-slider__wrapper.--even {
  margin-top: 3.1875rem;
}
@media screen and (max-width: 768px) {
  .p-slider__wrapper.--even {
    margin-top: 1.9375rem;
  }
}
.p-slider__wrapper.--even .p-slider.--js-odd {
  animation: 100s linear -50s infinite normal none running scroll-odd-reverse;
}
.p-slider__wrapper.--even .p-slider.--js-even {
  animation: 100s linear 0s infinite normal none running scroll-even-reverse;
}
.p-slider.--js-odd {
  animation: 100s linear -50s infinite normal none running scroll-odd;
}
.p-slider.--js-even {
  animation: 100s linear 0s infinite normal none running scroll-even;
}
.p-slider__img {
  display: flex;
  flex-shrink: 0;
  width: 23.75rem;
  height: 14.875rem;
  object-fit: cover;
  margin-right: 2.5rem;
  overflow: hidden;
  border-radius: 0.9375rem;
}
.p-slider__img-wrapper {
  display: flex;
}
@media screen and (max-width: 768px) {
  .p-slider__img {
    width: 11.875rem;
    height: 7.5rem;
    margin-right: 1.25rem;
    border-radius: 0.625rem;
  }
}
.p-slider__img:nth-of-type(odd) {
  margin-bottom: 1.875rem;
}
@media screen and (max-width: 768px) {
  .p-slider__img:nth-of-type(odd) {
    margin-bottom: 0.9375rem;
  }
}
.p-slider__img:nth-of-type(even) {
  margin-top: 1.875rem;
}
@media screen and (max-width: 768px) {
  .p-slider__img:nth-of-type(even) {
    margin-top: 0.9375rem;
  }
}
/* --flat: 1列のみのループ（2026リニューアル・採用情報チームフォト）。段差はFigma 269:2681どおり30pxの互い違いを残す */

@keyframes scroll-odd {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
@keyframes scroll-even {
  0% {
    transform: translateX(-200%);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes scroll-odd-reverse {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}
@keyframes scroll-even-reverse {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-200%);
  }
}
/* =======================================================
about
======================================================= */
.l-about {
  padding: 10rem 0 7.5rem;
}
@media screen and (max-width: 768px) {
  .l-about {
    padding: 3.75rem 0 3.125rem;
  }
}

.p-about__hgroup {
  display: flex;
  gap: 1.875rem;
  align-items: center;
  justify-content: center;
  margin-bottom: 4.375rem;
}
@media screen and (max-width: 768px) {
  .p-about__hgroup {
    display: grid;
    gap: 0;
    margin-bottom: 1.875rem;
  }
}
.p-about__hgroup-txt {
  font-size: 4.0625rem;
  font-weight: 200;
  line-height: calc(70/65);
  letter-spacing: 0;
}
@media screen and (max-width: 768px) {
  .p-about__hgroup-txt {
    font-size: 2.5rem;
    font-weight: 250;
    line-height: calc(50/40);
  }
}
.p-about__hgroup-ttl {
  display: inline-flex;
  gap: 0.3125rem;
  align-items: center;
  line-height: calc(26/20);
}
@media screen and (min-width: 769px) {
  .p-about__hgroup-ttl {
    padding-bottom: 1rem;
    font-size: 1.25rem;
    letter-spacing: 0.1em;
  }
}
@media screen and (max-width: 768px) {
  .p-about__hgroup-ttl {
    gap: 0.125rem;
    line-height: calc(26/14);
  }
}
.p-about__hgroup-ttl::after {
  width: 1.75rem;
  height: 1.75rem;
  content: "";
  background: url("../images/recruit/anim/bulb.webp") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-about__hgroup-ttl::after {
    width: 1.25rem;
    height: 1.25rem;
  }
}
.p-about__def {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.875rem;
}
@media screen and (max-width: 768px) {
  .p-about__def {
    grid-template-columns: auto;
    gap: 0.9375rem;
  }
}
.p-about__dwrap {
  display: grid;
  grid-template-columns: 5.625rem 1fr;
  gap: 1.5625rem;
  align-items: center;
  padding: 1.875rem 2.5rem 1.875rem 1.875rem;
  background: var(--color-gray03);
  border-radius: 1.875rem;
}
@media screen and (max-width: 768px) {
  .p-about__dwrap {
    grid-template-columns: 3.625rem 1fr;
    gap: 0.8125rem;
    padding: 1.5625rem 1.5rem 1.5625rem 1.25rem;
    border-radius: 0.9375rem;
  }
}
.p-about__dttl {
  display: grid;
  place-content: center;
  height: 5.625rem;
  padding-bottom: 0.125rem;
  font-size: 1.125rem;
  line-height: 1;
  color: var(--color-white);
  letter-spacing: 0.1em;
  background: var(--color-accent02);
  border-radius: 50%;
}
@media screen and (max-width: 768px) {
  .p-about__dttl {
    height: 3.625rem;
    padding-bottom: 0;
    font-size: 0.8125rem;
    line-height: calc(14/13);
  }
}
.p-about__ditem {
  line-height: calc(28/16);
}
@media screen and (min-width: 769px) {
  .p-about__ditem {
    font-size: 1rem;
  }
}
@media screen and (max-width: 768px) {
  .p-about__ditem {
    line-height: calc(26/14);
  }
}

/* =======================================================
identity（2026リニューアルで新設・採用ページ⑤）
======================================================= */
.l-identity {
  /* Figma 269:2413：ABOUT下2011→IDENTITY見出し上2049（上2.375rem） */
  padding: 2.375rem 0 0;
}
@media screen and (min-width: 769px) {
  .l-identity {
    /* Figma 269:2413：IDENTITYカード下→MIND背景上まで170px */
    margin-bottom: 10.625rem;
  }
}
@media screen and (max-width: 768px) {
  .l-identity {
    /* Figma SP：ABOUT下→IDENTITY見出し上まで約60px（ABOUT側のpbと合わせて） */
    padding: 0 0 0;
    /* Figma SP：IDENTITYカード下→MIND背景上まで60px */
    margin-bottom: 3.75rem;
  }
}
.p-identity__hgroup {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  justify-content: center;
  margin-bottom: 4.875rem;
}
@media screen and (max-width: 768px) {
  .p-identity__hgroup {
    display: grid;
    justify-items: center;
    gap: 0.25rem;
    margin-bottom: 1.5rem;
  }
}
.p-identity__hgroup-txt {
  font-size: 4.0625rem;
  font-weight: 200;
  line-height: calc(70/65);
}
@media screen and (max-width: 768px) {
  .p-identity__hgroup-txt {
    font-size: 2.5rem;
    line-height: calc(50/40);
  }
}
.p-identity__hgroup-ttl {
  display: inline-flex;
  gap: 0.3125rem;
  align-items: center;
  font-size: 1.25rem;
  line-height: calc(26/20);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .p-identity__hgroup-ttl {
    font-size: 1rem;
  }
}
.p-identity__hgroup-ttl::after {
  width: 1.25rem;
  height: 1.25rem;
  content: "";
  background: url("../images/recruit/anim/star.webp") top center/contain no-repeat;
}

.p-identity__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}
@media screen and (max-width: 768px) {
  .p-identity__list {
    grid-template-columns: auto;
    gap: 0.9375rem;
    margin-bottom: 0.9375rem;
  }
}
.p-identity__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* Figma 269:2413：タイトル〜本文は20px。アイコン〜タイトルは52px（下の.p-identity__icon側で+2rem補う） */
  gap: 1.25rem;
  /* Figma 269:2413：本文列265px＝カード幅393-左右4remずつ。アイコン上まで61px */
  padding: 3.8125rem 4rem 3.5rem;
  text-align: center;
  background: var(--color-gray03);
  border-radius: 1.875rem;
}
@media screen and (min-width: 769px) {
  .p-identity__item .p-identity__icon {
    margin-bottom: 2rem;
  }
}
@media screen and (max-width: 768px) {
  .p-identity__item {
    gap: 1.25rem;
    padding: 2rem 1.25rem 2.5rem;
    border-radius: 1.25rem;
  }
}
.p-identity__wide {
  display: flex;
  gap: 2.5rem;
  align-items: center;
  justify-content: center;
  /* Figma 269:2413：タイトル上2865・本文上2888（カード上端から） */
  padding: 5.625rem 2rem 2.8125rem;
  text-align: left;
  background: var(--color-gray03);
  border-radius: 1.875rem;
}
@media screen and (max-width: 768px) {
  .p-identity__wide {
    flex-direction: column;
    gap: 1.25rem;
    padding: 2rem 1.25rem 2.5rem;
    text-align: center;
    border-radius: 1.25rem;
  }
}
.p-identity__icon {
  flex-shrink: 0;
  /* Figma 269:2413：アイコン実寸119px相当 */
  width: 7.5rem;
  height: 7.5rem;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  border-radius: 50%;
}
@media screen and (max-width: 768px) {
  .p-identity__icon {
    width: 6.25rem;
    height: 6.25rem;
  }
}
.p-identity__icon--01 {
  background-image: url("../images/recruit/identity-icon-01.png");
}
.p-identity__icon--02 {
  background-image: url("../images/recruit/identity-icon-02.png");
}
.p-identity__icon--03 {
  background-image: url("../images/recruit/identity-icon-03.png");
}
.p-identity__icon--04 {
  background-image: url("../images/recruit/identity-icon-04.png");
}
.p-identity__ttl {
  font-size: 1.5rem;
  line-height: calc(36/24);
  letter-spacing: 0.05em;
  color: var(--color-txt);
}
@media screen and (max-width: 768px) {
  .p-identity__ttl {
    font-size: 1.125rem;
    line-height: calc(30/18);
  }
}
.p-identity__wide .p-identity__ttl {
  flex-shrink: 0;
}
@media screen and (min-width: 769px) {
  .p-identity__wide .p-identity__txt {
    /* Figma 269:2413：本文列456px */
    max-width: 28.5rem;
  }
}
.p-identity__txt {
  font-size: 1rem;
  line-height: calc(28/16);
  letter-spacing: 0.05em;
  color: var(--color-txt);
}
@media screen and (max-width: 768px) {
  .p-identity__txt {
    font-size: 0.875rem;
    line-height: calc(26/14);
  }
}

/* =======================================================
job（2026リニューアルでタブ切替カードに刷新）
======================================================= */
.l-job {
  padding: 7.1875rem 0 8.0625rem;
}
@media screen and (max-width: 768px) {
  .l-job {
    padding: 3.75rem 0 3.75rem;
  }
}

/* B09・B14: MINDの後・タブの前の「JOB／募集要項」見出し（Figma 269:2574／269:2906） */
.p-job__hgroup {
  display: flex;
  align-items: center;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 4.375rem;
}
@media screen and (max-width: 768px) {
  .p-job__hgroup {
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 2.5rem;
    text-align: center;
  }
}
.p-job__hgroup-txt {
  font-size: 4.0625rem;
  font-weight: 200;
  line-height: 1.1;
  color: var(--color-txt);
}
@media screen and (max-width: 768px) {
  .p-job__hgroup-txt {
    font-size: 2.8125rem;
  }
}
.p-job__hgroup-ttl {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 1.25rem;
  letter-spacing: 0.1em;
  color: var(--color-txt);
}
@media screen and (max-width: 768px) {
  .p-job__hgroup-ttl {
    font-size: 0.875rem;
  }
}
.p-job__hgroup-icon {
  width: 1.5rem;
  height: 1.5rem;
  background: url("../images/recruit/anim/check.webp") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-job__hgroup-icon {
    width: 1.25rem;
    height: 1.25rem;
  }
}

.p-job__tabs {
  display: flex;
  /* Figma 269:2413：タブ間11px */
  gap: 0.6875rem;
}
.p-job__tab {
  /* Figma 269:2413：タブ1枚420px固定・中央寄せ */
  width: 26.25rem;
  padding: 1.6875rem 2.5rem 1.5625rem;
  font-size: 1.5rem;
  line-height: calc(28/24);
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--color-txt);
  cursor: pointer;
  background: var(--color-gray03);
  border: none;
  border-radius: 1rem 1rem 0 0;
}
@media screen and (max-width: 768px) {
  .p-job__tab {
    width: auto;
    flex: 1 1 0;
    padding: 1.125rem 0.5rem 1rem;
    font-size: 1rem;
    text-align: center;
  }
}
.p-job__tab.--active {
  padding-top: 1.875rem;
  font-weight: 500;
  background: var(--color-bg);
  text-decoration: underline;
  text-underline-offset: 0.4375rem;
}
@media screen and (max-width: 768px) {
  .p-job__tab.--active {
    padding-top: 1.25rem;
  }
}

.p-job__panel {
  /* Figma 269:2413：パネル上端から内容上まで120px・左100px・右60px */
  padding: 7.5rem 3.75rem 3.75rem 6.25rem;
  background: var(--color-bg);
  border-radius: 0 1.875rem 1.875rem 1.875rem;
}
@media screen and (max-width: 768px) {
  .p-job__panel {
    /* Figma SP：パネル上端から内容上まで104px・左16px */
    padding: 6.5rem 1.25rem 2.5rem 1rem;
    border-radius: 0 0 1.25rem 1.25rem;
  }
}

.p-job__intro {
  display: flex;
  gap: 2.5rem;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}
@media screen and (max-width: 768px) {
  .p-job__intro {
    flex-direction: column;
    gap: 1.5rem;
    align-items: flex-start;
    margin-bottom: 1.25rem;
  }
}
.p-job__intro-hgroup {
  flex-shrink: 0;
}
.p-job__intro-eyebrow {
  font-size: 3.125rem;
  font-weight: 200;
  line-height: calc(70/50);
  color: var(--color-txt);
}
@media screen and (max-width: 768px) {
  .p-job__intro-eyebrow {
    font-size: 1.75rem;
    line-height: calc(40/28);
  }
}
.p-job__intro-label {
  font-size: 1.25rem;
  line-height: calc(26/20);
  letter-spacing: 0.1em;
  color: var(--color-txt);
}
@media screen and (max-width: 768px) {
  .p-job__intro-label {
    font-size: 1rem;
  }
}
.p-job__intro-msg {
  font-size: 1.5rem;
  line-height: calc(56/24);
  letter-spacing: 0.05em;
  color: var(--color-txt);
}
@media screen and (max-width: 768px) {
  .p-job__intro-msg {
    font-size: 0.9375rem;
    line-height: calc(28/15);
  }
}

.p-job__divider {
  /* Figma 269:2413：見出し下から概要文上まで86px（1.25remとこの下4.0625remで構成） */
  margin: 0 0 4.0625rem;
  border: none;
  border-top: 0.0625rem solid var(--color-gray02);
}
@media screen and (max-width: 768px) {
  .p-job__divider {
    margin-bottom: 1.5rem;
  }
}

.p-job__overview {
  max-width: 45rem;
  /* Figma 269:2413：概要文下から募集職種見出し上まで80px */
  margin-bottom: 5rem;
  font-size: 1rem;
  line-height: calc(28/16);
  letter-spacing: 0.05em;
  color: var(--color-txt);
}
@media screen and (max-width: 768px) {
  .p-job__overview {
    margin-bottom: 2rem;
    font-size: 0.875rem;
    line-height: calc(26/14);
  }
}

/* 長期インターンの条件（10/10谷回答 I5：すべて書く）。概要の下に1行で並べる */
.p-job__conditions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 2.5rem;
  margin: -1.5rem 0 3.5rem;
  font-size: 1rem;
  letter-spacing: 0.05em;
  color: var(--color-txt);
}
.p-job__conditions-item {
  display: flex;
  gap: 0.75rem;
}
.p-job__conditions-item dt {
  padding-left: 0.75rem;
  color: var(--color-accent);
  border-left: 2px solid var(--color-accent);
}
@media screen and (max-width: 768px) {
  .p-job__conditions {
    flex-direction: column;
    margin: -0.75rem 0 2rem;
    font-size: 0.875rem;
  }
}

@media screen and (min-width: 769px) {
  /* Figma 269:2413：PCは「募集職種」見出しと求人カードが横並び（見出し列14.75rem） */
  .p-job__list {
    display: flex;
    align-items: flex-start;
  }
  .p-job__list-head {
    flex: 0 0 14.75rem;
    margin-bottom: 0;
  }
  .p-job__grid {
    flex: 1 1 auto;
  }
}
.p-job__list-head {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-bottom: 1.875rem;
}
.p-job__list-ttl {
  position: relative;
  padding-left: 1.25rem;
  font-size: 1.625rem;
  line-height: calc(45/26);
  letter-spacing: 0.05em;
  color: var(--color-txt);
}
.p-job__list-ttl::before {
  position: absolute;
  top: 0.3125rem;
  left: 0;
  width: 0.25rem;
  height: 1.875rem;
  content: "";
  background: var(--color-accent);
}
@media screen and (max-width: 768px) {
  .p-job__list-ttl {
    font-size: 1.125rem;
  }
}

.p-job__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.875rem;
}
@media screen and (max-width: 768px) {
  .p-job__grid {
    grid-template-columns: auto;
    gap: 0.75rem;
  }
}
.p-job__grid.--single {
  grid-template-columns: 1fr;
}
.p-job__grid-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding: 1.5625rem 1.875rem;
  color: var(--color-white);
  background: var(--color-navy);
  border-radius: 1.25rem;
}
@media screen and (max-width: 768px) {
  .p-job__grid-link {
    padding: 1.125rem 1.5rem;
  }
}
.p-job__grid-link-inner {
  font-size: 1.25rem;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .p-job__grid-link-inner {
    font-size: 1rem;
  }
}
.p-job__grid-link-arrow {
  display: block;
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  background: url("../images/common/arrow-circle--white.svg") top center/contain no-repeat;
  border: 1px solid var(--color-white);
  border-radius: 50%;
}
@media screen and (max-width: 768px) {
  .p-job__grid-link-arrow {
    width: 2.25rem;
    height: 2.25rem;
  }
}

.p-job__cta {
  padding: 5rem 0 4.6875rem;
  /* Figma 269:2413：求人カード下→CTA帯RECRUIT上まで約27pxに調整 */
  margin-top: 1.6875rem;
  text-align: center;
  background: var(--color-white);
  border-radius: 1.875rem;
}
@media screen and (max-width: 768px) {
  .p-job__cta {
    padding: 1.875rem 1.5rem;
    margin-top: 2.5rem;
    border-radius: 0.9375rem;
  }
}
.p-job__cta-ttl {
  margin-bottom: 1.25rem;
  text-align: center;
}
.p-job__cta-ttl-inner {
  position: relative;
  padding-bottom: 0.3125rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .p-job__cta-ttl-inner {
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
  }
}
.p-job__cta-ttl-inner::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100%;
  height: 0.0625rem;
  content: "";
  background: var(--color-txt);
  transform: translateX(-50%);
}
.p-job__cta-txt {
  margin-bottom: 2.1875rem;
  text-align: center;
}
@media screen and (min-width: 769px) {
  .p-job__cta-txt {
    font-size: 1.25rem;
    line-height: 2;
  }
}
@media screen and (max-width: 768px) {
  .p-job__cta-txt {
    margin-bottom: 1.25rem;
    line-height: calc(24/14);
  }
}
.p-job__cta-btn {
  margin: 0 auto;
}
.p-job__cta-btn-inner {
  display: flex;
  gap: 0.3125rem;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .p-job__cta-btn-inner {
    gap: 0.1875rem;
  }
}
.p-job__cta-btn-inner::after {
  width: 1.875rem;
  height: 1.875rem;
  content: "";
  background: url("../images/recruit/anim/smile.webp") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-job__cta-btn-inner::after {
    width: 1.25rem;
    height: 1.25rem;
  }
}

/* =======================================================
recruit-cta
======================================================= */
.l-recruit-cta {
  padding: 7.5rem 0 9.375rem;
}
@media screen and (max-width: 768px) {
  .l-recruit-cta {
    padding: 3.75rem 0 5rem;
  }
}

.p-recruit-cta__box {
  padding: 5rem 0 4.6875rem;
  background: var(--color-navy);
  border-radius: 1.875rem;
  color: var(--color-white);
}
@media screen and (max-width: 768px) {
  .p-recruit-cta__box {
    padding: 1.875rem 1.5rem;
    border-radius: 0.9375rem;
  }
}
.p-recruit-cta__ttl {
  margin-bottom: 1.25rem;
  text-align: center;
}
.p-recruit-cta__ttl-inner {
  position: relative;
  padding-bottom: 0.3125rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .p-recruit-cta__ttl-inner {
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
  }
}
.p-recruit-cta__ttl-inner::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100%;
  height: 0.0625rem;
  content: "";
  background: var(--color-white);
  transform: translateX(-50%);
}
.p-recruit-cta__txt {
  margin-bottom: 2.1875rem;
  text-align: center;
}
@media screen and (min-width: 769px) {
  .p-recruit-cta__txt {
    font-size: 1.25rem;
    line-height: 2;
  }
}
@media screen and (max-width: 768px) {
  .p-recruit-cta__txt {
    margin-bottom: 1.25rem;
    line-height: calc(24/14);
  }
}
.p-recruit-cta__btn {
  margin: 0 auto;
}
.p-recruit-cta__btn-inner {
  display: flex;
  gap: 0.3125rem;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .p-recruit-cta__btn-inner {
    gap: 0.1875rem;
  }
}
.p-recruit-cta__btn-inner::after {
  width: 1.875rem;
  height: 1.875rem;
  content: "";
  background: url("../images/recruit/anim/smile.webp") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-recruit-cta__btn-inner::after {
    width: 1.25rem;
    height: 1.25rem;
  }
}

/* =======================================================
business（谷決定2026-10-10で復元。本番 css/recruit.css commit 23bbc21 のまま。
Figmaに本セクションは無いため本番と同じクラス名・値を使う。
margin-topのみ、本番でSCSSのrem()が未コンパイルのまま残っていた-rem(10px)を-0.625remへ補正）
======================================================= */
.l-business {
  padding: 1.875rem 0 6.25rem;
}
@media screen and (max-width: 768px) {
  .l-business {
    padding: 0 0 3.75rem;
    margin-top: -0.625rem;
  }
}

.p-business__column {
  display: grid;
}
@media screen and (min-width: 769px) {
  .p-business__column {
    grid-template: "hgroup list" "message list";
    grid-template-rows: 1fr auto;
    grid-template-columns: 1fr 37.1875rem;
  }
}
@media screen and (min-width: 769px) {
  .p-business__hgroup {
    grid-area: hgroup;
  }
}
@media screen and (max-width: 768px) {
  .p-business__hgroup {
    margin-bottom: 2.5rem;
  }
}
.p-business__hgroup-txt {
  margin-bottom: 0.625rem;
  font-size: 4.0625rem;
  font-weight: 200;
  line-height: calc(70/60);
}
@media screen and (max-width: 768px) {
  .p-business__hgroup-txt {
    margin-bottom: 0;
    font-size: 2.5rem;
    line-height: calc(50/40);
  }
}
.p-business__hgroup-ttl {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  line-height: calc(26/20);
}
@media screen and (min-width: 769px) {
  .p-business__hgroup-ttl {
    font-size: 1.25rem;
    letter-spacing: 0.1em;
  }
}
@media screen and (max-width: 768px) {
  .p-business__hgroup-ttl {
    gap: 0.3125rem;
    line-height: calc(26/14);
  }
}
.p-business__hgroup-ttl::after {
  width: 1.875rem;
  height: 1.875rem;
  content: "";
  background: url("../images/recruit/anim/dove.webp") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-business__hgroup-ttl::after {
    width: 1.5rem;
    height: 1.5rem;
  }
}
@media screen and (min-width: 769px) {
  .p-business__message {
    grid-area: message;
  }
}
.p-business__message-ttl {
  margin-bottom: 1.6875rem;
  font-size: 2rem;
  line-height: calc(60/32);
}
.p-business__message-txt {
  font-size: 1rem;
  line-height: 1;
  color: var(--color-gray);
}
@media screen and (min-width: 769px) {
  .p-business__list {
    grid-area: list;
  }
}
.p-business__item {
  padding: 1.5625rem 0;
  line-height: calc(30/18);
  border-top: 0.0625rem solid var(--color-gray02);
}
@media screen and (min-width: 769px) {
  .p-business__item {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 768px) {
  .p-business__item {
    padding: 0.9375rem 0.3125rem;
    line-height: calc(26/14);
    border-width: 0.05rem;
  }
}
.p-business__item:last-of-type {
  border-bottom: 0.0625rem solid var(--color-gray02);
}
@media screen and (max-width: 768px) {
  .p-business__item:last-of-type {
    border-width: 0.05rem;
  }
}

/* =======================================================
mind
======================================================= */
.l-mind {
  position: relative;
  padding: 6.875rem 0 7.5rem;
  background: var(--color-navy);
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .l-mind {
    padding: 3.125rem 0;
  }
}
/* B13: MIND背景の既存意匠（Figma 361:3763／361:3848）。角丸の濃淡2枚を重ねた飾り */
.l-mind::before,
.l-mind::after {
  position: absolute;
  z-index: 0;
  content: "";
  background: rgba(0, 0, 0, 0.14);
  border-radius: 3rem;
  mix-blend-mode: multiply;
  pointer-events: none;
}
.l-mind::before {
  top: -8rem;
  right: 3%;
  width: 34rem;
  height: 34rem;
  transform: rotate(24deg);
}
.l-mind::after {
  top: 11rem;
  left: 2%;
  width: 24rem;
  height: 24rem;
  transform: rotate(-18deg);
}
@media screen and (max-width: 768px) {
  .l-mind::before {
    top: -4rem;
    right: -4%;
    width: 16rem;
    height: 16rem;
  }
  .l-mind::after {
    top: 6rem;
    left: -6%;
    width: 11rem;
    height: 11rem;
  }
}

.p-mind__column {
  position: relative;
  z-index: 1;
  display: grid;
}
@media screen and (min-width: 769px) {
  .p-mind__column {
    grid-template-columns: 1fr 37.1875rem;
  }
}
@media screen and (max-width: 768px) {
  .p-mind__hgroup {
    margin-bottom: 2.5rem;
  }
}
.p-mind__hgroup-txt {
  margin-bottom: 0.625rem;
  font-size: 4.0625rem;
  font-weight: 200;
  line-height: calc(70/65);
  color: var(--color-white);
}
@media screen and (max-width: 768px) {
  .p-mind__hgroup-txt {
    margin-bottom: 0;
    font-size: 2.5rem;
    line-height: calc(50/40);
  }
}
.p-mind__hgroup-ttl {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  line-height: calc(26/20);
  color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .p-mind__hgroup-ttl {
    font-size: 1.25rem;
    letter-spacing: 0.1em;
  }
}
@media screen and (max-width: 768px) {
  .p-mind__hgroup-ttl {
    gap: 0.3125rem;
    line-height: calc(26/14);
  }
}
.p-mind__hgroup-ttl::after {
  width: 1.875rem;
  height: 1.875rem;
  content: "";
  background: url("../images/recruit/anim/flame.webp") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-mind__hgroup-ttl::after {
    width: 1.25rem;
    height: 1.25rem;
  }
}
.p-mind__details {
  counter-increment: details-num;
  border-top: 0.0625rem solid var(--color-gray02);
}
.p-mind__details-wrapper {
  content: counter(details-num);
  counter-reset: details-num;
}
@media screen and (max-width: 768px) {
  .p-mind__details {
    border-width: 0.05rem;
  }
}
.p-mind__details[open] summary::after {
  transform: scale(1, -1);
}
.p-mind__details:last-of-type {
  border-bottom: 0.0625rem solid var(--color-gray02);
}
@media screen and (max-width: 768px) {
  .p-mind__details:last-of-type {
    border-width: 0.05rem;
  }
}
.p-mind__details-summary {
  display: grid;
  grid-template-columns: 3.75rem 27.8125rem 1fr;
  padding: 1.5625rem 0;
  color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .p-mind__details-summary {
    font-size: 1.125rem;
    line-height: calc(30/18);
  }
}
@media screen and (max-width: 768px) {
  .p-mind__details-summary {
    grid-template-columns: 2.5rem 15.25rem 1fr;
    padding: 1.0625rem 0;
    line-height: calc(26/14);
  }
}
.p-mind__details-summary::before {
  padding-top: 0.5rem;
  margin-left: 0.625rem;
  font-family: Overpass, sans-serif;
  font-size: 1.25rem;
  font-weight: 300;
  line-height: 1;
  content: counter(details-num, decimal-leading-zero);
}
@media screen and (max-width: 768px) {
  .p-mind__details-summary::before {
    padding-top: 0.40625rem;
    margin-left: 0.3125rem;
    font-size: 0.9375rem;
    font-weight: 200;
    line-height: calc(20/15);
  }
}
.p-mind__details-summary::after {
  justify-self: end;
  width: 1.3125rem;
  height: 0.625rem;
  margin: 0.625rem 1.125rem 0 0;
  content: "";
  background: url("../images/recruit/mind-arrow.svg") top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-mind__details-summary::after {
    width: 1rem;
    height: 0.5rem;
    margin: 0.5625rem 0.375rem 0 0;
    background: url("../images/recruit/mind-arrow-sp.svg") top center/contain no-repeat;
  }
}
.p-mind__details-content-inner {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0 0 1.5625rem 3.75rem;
  font-weight: 400;
  color: var(--color-white);
}
@media screen and (max-width: 768px) {
  .p-mind__details-content-inner {
    gap: 0.625rem;
    padding: 0 0 1.375rem 2.5rem;
  }
}
.p-mind__details-content-lead {
  font-size: 1rem;
  line-height: calc(28/16);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .p-mind__details-content-lead {
    font-size: 0.9375rem;
    line-height: calc(26/15);
  }
}
.p-mind__details-content-txt {
  font-size: 0.875rem;
  line-height: calc(26/14);
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.8);
}
@media screen and (max-width: 768px) {
  .p-mind__details-content-txt {
    font-size: 0.8125rem;
    line-height: calc(24/13);
  }
}

/* =======================================================
blog
======================================================= */
.l-blog {
  padding-top: 7.5rem;
}
@media screen and (max-width: 768px) {
  .l-blog {
    padding-top: 3.75rem;
  }
}

.p-blog__column {
  display: grid;
}
@media screen and (min-width: 769px) {
  .p-blog__column {
    grid-template-columns: 1fr 50rem;
  }
}
.p-blog__hgroup {
  display: inline-block;
}
@media screen and (max-width: 768px) {
  .p-blog__hgroup {
    margin-bottom: 3.125rem;
  }
}
.p-blog__hgroup-link {
  display: inline-flex;
  align-self: start;
}
.p-blog__hgroup-ttl {
  margin-bottom: 1.0625rem;
  font-size: 4.0625rem;
  font-weight: 200;
  line-height: calc(70/65);
}
@media screen and (max-width: 768px) {
  .p-blog__hgroup-ttl {
    margin-bottom: 0;
    font-size: 2.5rem;
    line-height: calc(50/40);
  }
}
.p-blog__hgroup-txt {
  display: flex;
  gap: 0.9375rem;
  align-items: center;
  line-height: calc(26/20);
}
@media screen and (min-width: 769px) {
  .p-blog__hgroup-txt {
    font-size: 1.25rem;
    letter-spacing: 0.1em;
  }
}
@media screen and (max-width: 768px) {
  .p-blog__hgroup-txt {
    gap: 0.625rem;
    line-height: calc(26/14);
  }
}
.p-blog__hgroup-txt::after {
  width: 2.5rem;
  height: 2.5rem;
  content: "";
  background: url(../images/common/arrow-circle.svg) top center/contain no-repeat;
}
@media screen and (max-width: 768px) {
  .p-blog__hgroup-txt::after {
    width: 2.25rem;
    height: 2.25rem;
  }
}
.p-blog__article-wrapper {
  display: grid;
  gap: 2.5rem;
}
@media screen and (min-width: 769px) {
  .p-blog__article-wrapper {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-blog__article-img-wrapper {
  margin-bottom: 1.125rem;
  overflow: hidden;
  border-radius: 0.625rem;
}
@media screen and (max-width: 768px) {
  .p-blog__article-img-wrapper {
    margin-bottom: 0.9375rem;
  }
}
.p-blog__article-img-wrapper img {
  height: 12.5rem;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .p-blog__article-img-wrapper img {
    height: 10.75rem;
  }
}
.p-blog__article-ttl {
  margin-bottom: 0.75rem;
  font-size: 1.125rem;
  line-height: calc(30/18);
}
@media screen and (max-width: 768px) {
  .p-blog__article-ttl {
    margin-bottom: 0.625rem;
    font-size: 1rem;
    line-height: calc(26/16);
  }
}
.p-blog__article-author {
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0.5rem;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .p-blog__article-author {
    grid-template-columns: 1.5rem 1fr;
    gap: 0.375rem;
  }
}
.p-blog__article-author-icon {
  position: relative;
  overflow: hidden;
  border-radius: 50%;
}
.p-blog__article-author-icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  content: "";
  border: 0.0625rem solid var(--color-gray02);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.p-blog__article-author-name {
  line-height: 2;
}
@media screen and (max-width: 768px) {
  .p-blog__article-author-name {
    font-size: 0.75rem;
    line-height: calc(26/12);
  }
}
/* SP：JOBのボタン文言が1文字だけ次の行に落ちないようにする（10/10確認） */
@media screen and (max-width: 768px) {
  .p-job__grid-link-inner,
  .p-job__cta-btn-inner {
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .p-job__grid-link-inner {
    font-size: 0.9375rem;
  }
  .p-job__cta-btn-inner {
    font-size: 0.8125rem;
  }
}

/* 10/10: MIND各行はFigma 361:3775/3860の下罫線・Medium本文へ合わせる。 */
.p-mind__details { border-top: 0; border-bottom: .0625rem solid var(--color-gray02); }
.p-mind__details-content-inner { font-weight: 500; }
.p-mind__details-content-txt { color: var(--color-white); }
/* 10/10: Figma 269:2742/2748（SP MESSAGE）、355:3678〜3755（SP IDENTITY）。 */
@media screen and (max-width: 768px) {
  .l-message { padding-bottom: 3.125rem; }
  .p-message__column { position: relative; z-index: 0; }
  .p-message__column::before { position: absolute; top: -3rem; left: 50%; z-index: -1; width: 100vw; height: calc(100% + 3rem); content: ''; background: var(--color-gray03); border-radius: 1.875rem; transform: translateX(-50%); }
  .p-message__column-body { padding: 0 0 4.5rem; }
  .p-message__column-body::before { display: none; }
  .p-message__column-body-btn-wrapper { margin-left: -.1875rem; }
  .p-message__column-body-btn { padding-block: .625rem; }
  .l-about { padding-bottom: 3.75rem; }
  .p-identity__hgroup { gap: 0; margin-bottom: 1.875rem; }
  .p-identity__hgroup-ttl { line-height: calc(26/16); }
  .p-identity__list { gap: 1rem; margin-bottom: 1rem; }
  .p-identity__item, .p-identity__wide { gap: .75rem; }
  .p-identity__icon { margin-bottom: .25rem; }
  /* 361:3860。仮原稿のステータス欄は公開HTMLへ含めず、見出し後のgap30を維持。 */
  .p-mind__hgroup { margin-bottom: 1.875rem; }
  .p-mind__details-summary { grid-template-columns: 2.5rem minmax(0, 1fr) 1.8125rem; padding-block: 1.25rem; }
  .p-mind__details[open] .p-mind__details-summary { padding-bottom: .75rem; }
  .p-mind__details-summary::before { padding-top: .1875rem; }
  .p-mind__details-summary::after { width: .875rem; height: .625rem; margin: .5rem .3125rem 0 0; }
  .p-mind__details-content-inner { gap: .75rem; padding: 0 .3125rem 1.25rem 2.5rem; }
  .p-mind__details-content-lead, .p-mind__details-content-txt { font-size: .875rem; line-height: calc(26/14); }
}
/* Figma 269:2418: ABOUT and Japanese heading are separated by 16px. */
@media screen and (min-width: 769px) { .p-about__hgroup { gap: 1rem; } }
/* PC: 355:3605（3カードの383/382/384列）、355:3661（横長カード）、361:3775（MIND展開行）。 */
@media screen and (min-width: 769px) {
  .l-identity { margin-bottom: 10rem; }
  .p-identity__list { grid-template-columns: 23.9375rem 23.875rem 24rem; gap: 2.21875rem; margin-bottom: 1.8125rem; }
  .p-identity__item { padding: 2.5rem 2rem 5.875rem; }
  .p-identity__item .p-identity__icon { margin-bottom: .75rem; }
  .p-identity__icon { width: 10rem; height: 10rem; }
  .p-identity__item .p-identity__ttl { width: 100%; }
  .p-identity__item .p-identity__txt { width: 16.5625rem; }
  .p-identity__item:last-child .p-identity__txt { width: 16.625rem; }
  .p-identity__wide { height: 13.6875rem; gap: 4.375rem; padding: 2.8125rem 2rem; }
  .p-identity__wide .p-identity__ttl { width: 11rem; height: 8.0625rem; text-align: center; }
  .p-mind__details-summary { grid-template-columns: 3.8125rem 30rem 1fr; padding-top: 1.5rem; letter-spacing: .05em; }
  .p-mind__details[open] .p-mind__details-summary { padding-bottom: .75rem; }
  .p-mind__details-summary::before { padding-top: .3125rem; font-weight: 200; }
  .p-mind__details-content-inner { padding: 0 .625rem 1.5rem 3.8125rem; }
}

/* チームフォト：同じ並びを2組つなげ、1組分だけ左へ流して途切れなく回す（10/10谷「写真はリピート」） */
@keyframes recruit-photo-marquee { to { transform: translateX(-50%); } }
.p-slider__wrapper.--flat .p-slider.--marquee { width: max-content; animation: recruit-photo-marquee 60s linear infinite; }
.p-slider__wrapper.--flat .p-slider.--marquee .p-slider__img-wrapper { width: max-content; }
@media (prefers-reduced-motion: reduce) {
  .p-slider__wrapper.--flat .p-slider.--marquee { animation: none; }
}

/* 10/10谷FB：JOBのパネルは余白が大きすぎる → 上・区切り線の下・概要の下を詰める。「募集職種」は見出しの下にカードを並べる（横並びをやめる） */
.p-job__panel { padding-top: 4.5rem; }
.p-job__divider { margin-bottom: 2.5rem; }
.p-job__overview { margin-bottom: 3rem; }
.p-job__conditions { margin: -1.25rem 0 3rem; }
@media screen and (min-width: 769px) {
  .p-job__list { display: block; }
  .p-job__list-head { margin-bottom: 1.5rem; }
}
@media screen and (max-width: 768px) {
  .p-job__panel { padding-top: 4rem; }
}
/* BUSINESS：MISSIONの文は見出しのすぐ下に置く（左の列の下端に離して置いていた旧テーマの配置をやめる） */
@media screen and (min-width: 769px) {
  .p-business__column { grid-template-rows: auto 1fr; }
  .p-business__message { align-self: start; margin-top: 3.75rem; }
}

/* IDENTITYの動き（js/recruit.js が is-rm／is-rm-in を付ける）。TOP FVのカードと同じ「下から少し傾いて着地」の語彙で、うるさくしない */
.p-identity__item.is-rm, .p-identity__wide.is-rm { opacity: 0; transform: translateY(1.5rem) rotate(-1deg); transition: opacity .6s cubic-bezier(.16, 1, .3, 1), transform .6s cubic-bezier(.16, 1, .3, 1), box-shadow .3s ease; transition-delay: calc(var(--rm-i, 0) * 110ms); }
.p-identity__item.is-rm-in, .p-identity__wide.is-rm-in { opacity: 1; transform: none; }
.p-identity__item.is-rm .p-identity__icon, .p-identity__wide.is-rm .p-identity__icon { transform: scale(.82); opacity: 0; transition: transform .7s cubic-bezier(.34, 1.56, .64, 1), opacity .4s ease; transition-delay: calc(var(--rm-i, 0) * 110ms + 220ms); }
.p-identity__item.is-rm-in .p-identity__icon, .p-identity__wide.is-rm-in .p-identity__icon { transform: none; opacity: 1; }
@media (hover: hover) {
  .p-identity__item.is-rm-in:hover, .p-identity__wide.is-rm-in:hover { transform: translateY(-0.25rem); box-shadow: 0 0.75rem 1.75rem rgba(30, 40, 85, .08); transition-delay: 0s; }
  .p-identity__item.is-rm-in:hover .p-identity__icon, .p-identity__wide.is-rm-in:hover .p-identity__icon { transform: scale(1.06) rotate(-4deg); transition-delay: 0s; }
}

/* 10/10谷FB：写真の流れを速く（60→35秒）。IDENTITYの見出しは<br>の位置だけで折る（「ライフワー／カー」を防ぐ）。
   JOB概要などの日本語の本文は文節で折り返し、行頭に「は、」等が来ないようにする */
.p-slider__wrapper.--flat .p-slider.--marquee { animation-duration: 35s; }
.p-identity__ttl { word-break: keep-all; }
.p-job__overview, .p-job__intro-msg, .p-identity__txt, .p-message__column-body-txt { word-break: auto-phrase; text-wrap: pretty; }
/* JOB：メッセージを右端に寄せず、見出しの右に一定の間（100）で置く（10/10谷「余白気になる」） */
@media screen and (min-width: 769px) {
  .p-job__intro { justify-content: flex-start; gap: 6.25rem; }
}

/* 10/11谷FB
   ・IDENTITY：4枚目まで1画面（約900）に収める。アイコン120→88、上下の余白・アイコン下の間を詰める。4枚目の見出し列に幅を持たせ「ライフワーカー」を1行に
   ・MESSAGE：左（見出し＋MESSAGE）と右（本文＋ボタン）の縦の範囲をそろえる。左は上端を本文に、MESSAGEを下のボタンにそろえる */
@media screen and (min-width: 769px) {
  .l-identity { padding-top: 5rem; padding-bottom: 5rem; }
  .p-identity__hgroup { margin-bottom: 2.5rem; }
  .p-identity__item { padding: 2.25rem 2.5rem 2.5rem; gap: 0.75rem; }
  .p-identity__item .p-identity__icon { margin-bottom: 0.75rem; }
  .p-identity__icon { width: 5.5rem; height: 5.5rem; }
  .p-identity__wide { padding: 1.75rem 2.5rem; gap: 3rem; }
  .p-identity__wide .p-identity__ttl { min-width: 13rem; white-space: nowrap; }
  .p-message__column { align-items: stretch; }
  .p-message__hgroup { display: flex; flex-direction: column; justify-content: space-between; }
}

/* IDENTITYの本文：中央そろえ＋文節改行で行の長さがばらついていた → 14pxに下げ、左そろえで普通に折り返す（10/11谷） */
.p-identity__item .p-identity__txt, .p-identity__wide .p-identity__txt { font-size: 0.875rem; line-height: 1.85; text-align: left; word-break: normal; text-wrap: wrap; }

/* 10/13谷：募集の概要は横に長く取って3行程度に。** で囲んだ大事なところは青で強調 */
.p-job__overview { max-width: none; }
.p-job__overview strong { font-weight: 700; color: var(--color-accent); }

/* 10/13谷：MESSAGEのボタン。募集要項（キャリア＝濃い青／長期インターン＝鮮やかな青）を上に横並び、その下にカジュアル面談を横長・中央揃えに。絵文字はNotoの動く絵文字（images/recruit/anim/） */
.p-message__column-body-btn-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; width: min(100%, 32rem); }
.p-message__column-body-btn-wrapper > .p-message__column-body-btn { width: auto; max-width: none; margin: 0; }
.p-message__column-body-btn.--job { height: auto; min-height: 4.75rem; padding: 0.875rem 1.375rem 0.875rem 1.5rem; align-items: center; gap: 0.75rem; }
.p-message__column-body-btn.--job.--career { background: var(--color-dark-navy, #1e2855); }
.p-message__column-body-btn.--job.--intern { background: var(--color-accent, #1e78eb); }
.p-message__column-body-btn.--job .p-message__column-body-btn-inner { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: center; column-gap: 0.375rem; row-gap: 0.25rem; line-height: 1.35; }
.p-message__column-body-btn.--job small { grid-column: 1 / -1; font-size: 0.6875rem; letter-spacing: .12em; opacity: .75; line-height: 1; }
.p-message__column-body-btn.--job { position: relative; padding-right: 3rem; }
.p-message__column-body-btn.--job::after { position: absolute; right: 1.5rem; top: 50%; width: 0.75rem; height: 0.875rem; margin: 0; background-position: center; transform: translateY(-50%); } /* 2つのボタンで矢印を右端・縦中央の同じ位置にそろえる */
.p-message__column-body-btn.--casual-apply { grid-column: 1 / -1; order: 3; justify-content: center; gap: 1rem; min-height: 3.75rem; }
@media screen and (max-width: 768px) {
  .p-message__column-body-btn-wrapper { width: 100%; gap: 0.5rem; }
  .p-message__column-body-btn.--job { min-height: 4rem; padding: 0.625rem 2rem 0.625rem 1rem; gap: 0.5rem; }
  .p-message__column-body-btn.--job::after { right: 0.875rem; }
  .p-message__column-body-btn.--job small { font-size: 0.625rem; }
  .p-message__column-body-btn.--job .p-message__column-body-btn-inner { font-size: 0.8125rem; letter-spacing: .04em; white-space: nowrap; column-gap: 0.25rem; }
  .p-message__column-body-btn.--job .p-message__column-body-btn-inner::after { width: 1rem; height: 1rem; }
  .p-message__column-body-btn.--casual-apply { min-height: 3.25rem; }
}

/* 10/13谷：カジュアル面談は長期インターン（鮮やかな青）と区別して少し透かす。カジュアル面談のボタンは全部、矢印なし・中央揃え */
.p-message__column-body-btn.--casual-apply { background: rgba(30, 120, 235, .72); }
.c-recruit__btn:not(.--job) { justify-content: center; }
.c-recruit__btn:not(.--job)::after { display: none; }
.p-job__intro-emoji { display: inline-block; width: 1.4em; height: 1.4em; margin: 0 0.05em 0 0.1em; vertical-align: -0.3em; }

/* 10/14谷「改行できない？『す。』」：行動指針の説明文で、最後の行に1〜2文字だけ残らないようにする */
/* 10/11の「左そろえで普通に折り返す」は保ったまま、最後の行の取り残しだけ防ぐ */
.p-identity__item .p-identity__txt, .p-identity__wide .p-identity__txt { text-wrap: pretty; }

/* BUSINESS：写真・一言・リンク付き（10/14谷「うまく足したい」） */
.p-business__group { margin: 0 0 0.75rem; font-size: 0.8125rem; letter-spacing: .08em; color: var(--color-gray); }
.p-business__items + .p-business__group { margin-top: 2.25rem; }
.p-business__items { margin: 0; padding: 0; list-style: none; border-bottom: 0.0625rem solid var(--color-gray02); }
.p-business .p-business__item, .l-business .p-business__item { padding: 0; font-size: inherit; border-bottom: 0; }
.p-business__link { display: grid; grid-template-columns: 8.75rem 1fr 2rem; gap: 1.25rem; align-items: center; padding: 1rem 0; color: inherit; }
.p-business__thumb { display: block; overflow: hidden; border-radius: 0.5rem; aspect-ratio: 5 / 3; background: #eef1f6; }
.p-business__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.p-business__body { display: flex; flex-direction: column; gap: 0.375rem; min-width: 0; }
.p-business__name { font-size: 1.0625rem; font-weight: 500; line-height: 1.6; letter-spacing: .05em; word-break: auto-phrase; text-wrap: pretty; }
.p-business__desc { font-size: 0.8125rem; line-height: 1.8; letter-spacing: .04em; color: #666; word-break: auto-phrase; text-wrap: pretty; }
.p-business__arrow { width: 2rem; height: 2rem; background: url("../images/common/arrow-circle.svg") center / contain no-repeat; }
.p-business__note { margin-top: 1.5rem; font-size: 0.8125rem; line-height: 1.8; letter-spacing: .04em; color: #666; word-break: auto-phrase; text-wrap: pretty; }
@media (hover: hover) {
  .p-business__link:hover .p-business__thumb img { transform: scale(1.05); }
  .p-business__link:hover .p-business__arrow { background-image: url("../images/common/arrow-circle--hover.svg"); }
}
@media screen and (max-width: 768px) {
  .p-business__link { grid-template-columns: 4.5rem 1fr 1.25rem; gap: 0.75rem; padding: 0.875rem 0; }
  .p-business__thumb { aspect-ratio: 1 / 1; }
  .p-business__name { font-size: 0.9375rem; letter-spacing: .02em; }
  .p-business__desc { font-size: 0.75rem; }
  .p-business__arrow { width: 1.25rem; height: 1.25rem; }
  .p-business__items + .p-business__group { margin-top: 1.75rem; }
}
