/*-------post------*/
.archive-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.single-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.breadcrumb {
  background: #1a1a1a;
  padding-inline: 5.55%;
  display: flex;
  padding-top: 10px;
  padding-bottom: 10px;
}
.breadcrumb li::after {
  content: ">";
  margin: 0 1em;
  display: inline-block;
}
.breadcrumb li:last-child::after {
  content: none;
}
.breadcrumb li a,
.breadcrumb li {
  color: #fff;
}
.p-single__body {
  max-width: 950px;
  width: 100%;
  margin-inline: auto;
}
.pagination-area {
  margin-top: clamp(40px, var(--px-80), 80px);
}
.nav-links {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1em;
}
/*-------見出し（EN＋JP＋波線）------*/
.c-heading {
  display: flex;
  align-items: flex-start;
  gap: clamp(10px, 1.806vw, 26px);
}
/* WORKS / COMPANY の右寄せ版 */
.c-heading--right {
  flex-direction: row-reverse;
  justify-content: flex-start;
}
.c-heading__text {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  flex-shrink: 0;
}
.c-heading__en {
  font-size: clamp(30px, 3.472vw, 50px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  background-image: linear-gradient(
    166.19deg,
    var(--c-cyan) 46.85%,
    var(--c-green) 93.26%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.c-heading__ja {
  margin-top: clamp(1px, 0.139vw, 2px);
  font-size: clamp(15px, var(--px-20), 20px);
  font-weight: 500;
  line-height: 2;
  color: var(--c-text);
}
/* RECRUIT はグラデーションではなく濃い緑の単色 */
.c-heading--solid .c-heading__en {
  background-image: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  color: var(--c-green-dark);
}
.c-heading--solid .c-heading__ja {
  color: var(--c-green-dark);
}
.c-heading__wave {
  flex-shrink: 0;
  width: clamp(140px, 36.53vw, 526px);
  height: auto;
  margin-top: clamp(10px, 1.389vw, 20px);
}
/*-------btn------*/
.c-btn {
  position: relative;
  display: flex;
  align-items: center;
  width: clamp(180px, 16.111vw, 232px);
  height: clamp(46px, 3.889vw, 56px);
  padding-left: clamp(10px, 1.111vw, 16px);
  border-radius: 55px;
  background: var(--c-orange);
  color: var(--c-white);
  overflow: hidden;
}
/* 短いラベル（事業案内）用に字下げを深くする版 */
.c-btn--indent {
  padding-left: clamp(24px, 2.986vw, 43px);
}
/* 右側の明るいオレンジのあしらい */
.c-btn::before {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: 44.83%;
  border-radius: 84px 55px 55px 0;
  background: var(--c-orange-light);
}
/* 矢印 */
.c-btn::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 76.29%;
  width: 16.81%;
  aspect-ratio: 39 / 9;
  transform: translateY(-50%);
  background: url(../img/common/arrow.svg) no-repeat center / contain;
}
.c-btn__label {
  letter-spacing: var(--b-ls-label);
  position: relative;
  z-index: 1;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.55;
}
/*-------index 共通------*/
/* ページ全体を貫く蛇行グラデーション帯。background-size の % は要素の実高さに
   追従するので、セクションが増えて縦に伸びても帯が最後まで届く。 */
.p-index {
  position: relative;
  /* 画面外へブリードする装飾で横スクロールが出ないように切る
     （clip はスクロールコンテナを作らないので縦の重なりを壊さない） */
  overflow-x: clip;
  /* ヘッダーは absolute で浮いているので、重なる分をここで確保する（MVは110pxから） */
  padding-top: clamp(78px, var(--px-110), 110px);
  background-color: var(--c-base);
  background-image: url(../img/common/bg-shape.svg);
  background-repeat: no-repeat;
  background-position: 40.5% 0;
  /* 帯は 2173x6565。幅は 2173/1440、高さは 6565/4903(=footer手前までの本文高さ) */
  background-size: 150.9% 133.9%;
}
/*-------fv------*/
.p-index-fv {
  position: relative;
  padding-inline: 5.556%;
}
.p-index-fv .main-slider {
  border-radius: clamp(20px, 3.049vw, 43.9px) clamp(20px, 3.049vw, 43.9px) 0 0;
  overflow: hidden;
}
.p-index-fv .splide__slide img {
  display: block;
  width: 100%;
  aspect-ratio: 1280 / 800;
  object-fit: cover;
}
/*----- 縦書きキャッチ -----*/
.p-index-fv__catch {
  position: absolute;
  top: 21.1%;
  left: 13.75%;
  z-index: 2;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: clamp(12px, 2.569vw, 37px);
  margin: 0;
}
.p-index-fv__catch-line {
  writing-mode: vertical-rl;
  font-feature-settings: "vert" 1;
  font-size: clamp(24px, 3.472vw, 50px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  color: var(--c-white);
  text-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
}
.p-index-fv__catch-line:nth-child(2) {
  margin-top: clamp(16px, 3.333vw, 48px);
}
/*----- 英字コピー -----*/
.p-index-fv__en {
  position: absolute;
  top: 7.4%;
  right: 7.1%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 1.389vw, 20px);
  text-align: right;
  color: var(--c-white);
}
.p-index-fv__en-title {
  font-size: clamp(22px, 3.333vw, 48px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-index-fv__en-lead {
  font-size: clamp(11px, 1.528vw, 22px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
}
/*----- MV右下に重なる松のイラスト -----*/
.p-index-fv__illust {
  position: absolute;
  top: 75.5%;
  right: 0;
  z-index: 3;
  width: 34.72%;
  height: auto;
  pointer-events: none;
}
/*-------greeting------*/
.p-index-greeting {
  position: relative;
  padding-top: clamp(60px, 10.556vw, 152px);
}
.p-index-greeting__mark {
  position: absolute;
  top: clamp(24px, 5vw, 72px);
  left: 9.93%;
  width: clamp(60px, 7.57vw, 109px);
  height: auto;
  pointer-events: none;
}
.c-panel {
  position: relative;
  width: 70.56%;
  margin-left: 14.72%;
  padding: clamp(20px, 2.292vw, 33px) clamp(20px, 4.375vw, 63px)
    clamp(100px, 15.139vw, 218px) clamp(20px, 4.444vw, 64px);
  border-radius: clamp(14px, 1.875vw, 27px);
  background: var(--c-white);
}
.c-panel__body {
  margin-top: clamp(18px, 2.639vw, 38px);
}
.c-panel__body p {
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.94;
}
/*----- カード下端の松と家並の帯 -----*/
/* 既定はカードの中に収まる版（会社概要ページ）。1470x236 の絵をカード幅の
   50%（=508px相当）で2枚ぶん敷く。aspect-ratio はタイル2枚分の横 : 1枚分の縦。 */
.c-panel__band {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 100%;
  aspect-ratio: 1470 / 118;
  border-bottom-right-radius: clamp(14px, 1.875vw, 27px);
  border-bottom-left-radius: clamp(14px, 1.875vw, 27px);
  overflow: hidden;
  pointer-events: none;
  background: url(../img/index/illust-townscape.webp) repeat-x left bottom / 50%
    auto;
}
/* TOPのGREETINGだけ：カードの左外までブリードさせ、無限ループで流す。
   ::before に repeat-x で敷き、タイル1枚分ちょうど動かすので継ぎ目が出ない。 */
.c-panel__band--loop {
  width: 122.34%;
  aspect-ratio: 1243 / 118;
  border-bottom-left-radius: 0;
  background: none;
}
.c-panel__band--loop::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 200%;
  background: url(../img/index/illust-townscape.webp) repeat-x left bottom /
    51.042vw auto;
  animation: band-scroll 40s linear infinite;
}
@keyframes band-scroll {
  to {
    /* タイル1枚分（1440pxのとき735px）ちょうど */
    transform: translateX(-51.042vw);
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-panel__band--loop::before {
    animation: none;
  }
}
/*-------business------*/
.p-index-business {
  position: relative;
  padding-top: clamp(50px, 9.167vw, 132px);
}
.p-index-business__mark {
  position: absolute;
  top: clamp(30px, 5.278vw, 76px);
  left: 81.875%;
  width: clamp(60px, 7.57vw, 109px);
  height: auto;
  transform: scaleX(-1);
  pointer-events: none;
}
.p-index-business__person {
  position: absolute;
  top: clamp(10px, 1.667vw, 24px);
  left: 64.17%;
  width: clamp(46px, 5.764vw, 83px);
  height: auto;
  pointer-events: none;
}
.p-index-business__heading {
  margin-left: 5.14%;
}
.p-index-business__cols {
  display: flex;
  align-items: flex-start;
  gap: 6.6%;
  margin-top: clamp(20px, 3.125vw, 45px);
  padding-right: 5.556%;
  padding-left: 5.625%;
}
.p-index-business__text {
  flex: 1;
  min-width: 0;
}
.p-index-business__body p {
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.875;
}
.p-index-business__btn {
  margin-top: clamp(30px, 7.222vw, 104px);
  margin-inline: auto;
}
.p-index-business__photo {
  flex-shrink: 0;
  width: 41.45%;
  aspect-ratio: 533 / 396;
  object-fit: cover;
  /* 画像は見出しの行に少し食い込ませる（Figma準拠） */
  margin-top: calc(-1 * clamp(20px, 4.514vw, 65px));
}
/*-------works------*/
.p-index-works {
  position: relative;
  padding-top: clamp(70px, 13.264vw, 191px);
}
.p-index-works__pine {
  position: absolute;
  top: clamp(24px, 4.583vw, 66px);
  left: -2.71%;
  width: 25.42%;
  height: auto;
  pointer-events: none;
}
.p-index-works__person {
  position: absolute;
  top: clamp(50px, 9.167vw, 132px);
  left: 32.36%;
  width: 10.28%;
  height: auto;
  pointer-events: none;
}
.p-index-works__heading {
  padding-right: 5.556%;
}
/* Figmaの注記「←　スライダー無限ループ」に従い、4枚を無限ループさせる */
.p-index-works__slider {
  margin-top: clamp(16px, 2.569vw, 37px);
}
.works-slider .splide__list {
  align-items: flex-start;
}
.p-index-works__slide img {
  display: block;
  width: 100%;
  aspect-ratio: 352 / 258;
  object-fit: cover;
}
/* 1枚おきに下げてジグザグに並べる */
.p-index-works__slide.is-down {
  margin-top: clamp(20px, 5.278vw, 76px);
}
.p-index-works__btn {
  margin-top: clamp(30px, 4.931vw, 71px);
  margin-inline: auto;
}
/*-------recruit------*/
.p-index-recruit {
  position: relative;
  padding-top: clamp(80px, 14.028vw, 202px);
}
.p-index-recruit__pine {
  position: absolute;
  top: clamp(6px, 1.111vw, 16px);
  left: 76.67%;
  width: 29.51%;
  height: auto;
  pointer-events: none;
}
.p-index-recruit__person {
  position: absolute;
  top: clamp(60px, 10.764vw, 155px);
  left: 66.18%;
  width: 8.47%;
  height: auto;
  pointer-events: none;
}
.p-index-recruit__mark {
  position: absolute;
  top: clamp(30px, 6.181vw, 89px);
  left: 2.85%;
  width: clamp(60px, 7.57vw, 109px);
  height: auto;
  pointer-events: none;
}
.p-index-recruit__heading {
  padding-left: 5.556%;
}
.p-index-recruit__lead {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 1.389vw, 20px);
  margin-top: clamp(24px, 4.236vw, 61px);
  padding-inline: 5.556%;
}
.p-index-recruit__lead-text {
  font-size: clamp(17px, 2.222vw, 32px);
  font-weight: 600;
  line-height: 1.4;
  color: var(--c-text);
}
.p-index-recruit__slash {
  flex-shrink: 0;
  width: clamp(20px, 2.837vw, 41px);
  height: auto;
}
.p-index-recruit__slash--left {
  transform: scaleX(-1);
}
.p-index-recruit__cols {
  display: flex;
  align-items: flex-start;
  gap: clamp(20px, 2.361vw, 34px);
  margin-top: clamp(24px, 3.819vw, 55px);
  padding-right: 5.972%;
}
.p-index-recruit__photo {
  flex-shrink: 0;
  width: 56.94%;
  aspect-ratio: 820 / 499;
  object-fit: cover;
}
.p-index-recruit__text {
  flex: 1;
  min-width: 0;
  padding-top: clamp(30px, 7.5vw, 108px);
}
.p-index-recruit__body p {
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.875;
}
.p-index-recruit__btn {
  margin-top: clamp(30px, 6.389vw, 92px);
  margin-inline: auto;
}
/*-------company（トップ・下層で共通。上余白だけページ側で調整する）------*/
.p-company {
  position: relative;
  padding-top: clamp(90px, 17.986vw, 259px);
  padding-bottom: clamp(40px, 9.653vw, 139px);
}
/* 装飾は「見出しの位置」を基準に置く。こうするとセクション上余白が
   ページごとに変わっても、装飾と見出しの関係が崩れない。 */
.p-company__inner {
  position: relative;
}
.p-company__pine {
  position: absolute;
  top: calc(-1 * clamp(70px, 14.306vw, 206px));
  left: -2.15%;
  width: 26.35%;
  height: auto;
  transform: scaleX(-1);
  pointer-events: none;
}
.p-company__clouds {
  position: absolute;
  top: calc(-1 * clamp(74px, 15.069vw, 217px));
  left: 42.36%;
  width: 29.31%;
  height: auto;
  pointer-events: none;
}
.p-company__person {
  position: absolute;
  top: calc(-1 * clamp(26px, 5.139vw, 74px));
  left: 28.54%;
  width: 9.65%;
  height: auto;
  pointer-events: none;
}
.p-company__mark {
  position: absolute;
  top: calc(-1 * clamp(48px, 9.861vw, 142px));
  left: 87.36%;
  width: clamp(60px, 7.57vw, 109px);
  height: auto;
  transform: scaleX(-1);
  pointer-events: none;
}
.p-company__birds {
  position: absolute;
  /* セクション下端より少し下まではみ出す（footerが上に重なって隠す） */
  bottom: clamp(-45px, -3.125vw, 0px);
  left: 56.88%;
  width: 36.94%;
  height: auto;
  pointer-events: none;
}
.p-company__heading {
  padding-right: 5.069%;
}
.p-company__cols {
  display: flex;
  align-items: flex-start;
  gap: 7.6%;
  margin-top: clamp(16px, 1.667vw, 24px);
  padding-right: 5.625%;
  padding-left: 9.44%;
}
.p-company__info {
  flex-shrink: 0;
  width: 38.1%;
  padding-top: clamp(10px, 1.667vw, 24px);
}
.p-company__map {
  flex: 1;
  min-width: 0;
  aspect-ratio: 664 / 498;
}
.p-company__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.p-company__tel {
  margin-top: clamp(24px, 4.306vw, 62px);
  margin-inline: auto;
}
.p-company__btn {
  margin-top: clamp(14px, 2.014vw, 29px);
  margin-inline: auto;
}
/*-------定義リスト（会社概要など）------*/
.c-deflist .row {
  display: flex;
  align-items: center;
  min-height: clamp(44px, 4.722vw, 68px);
  padding-left: clamp(4px, 0.625vw, 9px);
  /* Figmaの点線（stroke-dasharray 2 4）を背景で再現 */
  background-image: linear-gradient(
    to right,
    var(--c-green-dark) 2px,
    transparent 2px
  );
  background-repeat: repeat-x;
  background-position: bottom;
  background-size: 6px 1px;
}
.c-deflist dt {
  flex-shrink: 0;
  width: clamp(80px, 10.903vw, 157px);
  font-size: clamp(13px, var(--px-16), 16px);
  font-weight: 500;
}
.c-deflist dd {
  flex: 1;
  min-width: 0;
  font-size: clamp(13px, var(--px-16), 16px);
}
/* CSS Document */

/* =========================================================
  SP（Figma SP_TOP 375px 基準）
========================================================= */
@media screen and (max-width: 680px) {
  /* 下部固定バーの分だけ余白を確保する */
  body {
    padding-bottom: 57px;
  }

  /*----- 見出しは中央・縦積み -----*/
  .c-heading,
  .c-heading--right {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }
  .c-heading__text {
    align-items: center;
  }
  .c-heading__en {
    font-size: 40px;
    line-height: 1;
  }
  .c-heading__ja {
    margin-top: 17px;
    font-size: 20px;
    line-height: 2;
  }
  .c-heading__wave {
    width: 73.6%;
    margin-top: 21px;
  }

  /*----- ボタン -----*/
  .c-btn {
    width: min(232px, 82%);
    height: 56px;
    margin-inline: auto;
    padding-left: 16px;
  }
  .c-btn--indent {
    padding-left: 43px;
  }

  /* SPはMVが50pxから始まる */
  .p-index,
  .p-sub {
    padding-top: 50px;
  }

  /*----- 背景の帯（SPは4本に分かれた専用シェイプ。PC用を引き伸ばすと
         見出しが帯に重なって読めなくなるため差し替える） -----*/
  .p-index {
    background-image: url(../img/common/bg-shape-sp.svg);
    background-position: 44.29% 0;
    background-size: 137.33% 107.75%;
  }

  /*----- FV -----*/
  .p-index-fv {
    padding-inline: 5.333%;
  }
  .p-index-fv .main-slider {
    border-radius: 12px 12px 0 0;
  }
  .p-index-fv .splide__slide img {
    aspect-ratio: 335 / 670;
  }
  .p-index-fv__catch {
    top: 29.1%;
    left: 12.53%;
    gap: 21px;
  }
  .p-index-fv__catch-line {
    font-size: 29px;
  }
  .p-index-fv__catch-line:nth-child(2) {
    margin-top: 37px;
  }
  .p-index-fv__en {
    top: 1.64%;
    right: auto;
    left: 10.4%;
    gap: 10px;
    text-align: left;
  }
  .p-index-fv__en-title {
    font-size: 24px;
  }
  .p-index-fv__en-lead {
    font-size: 16px;
  }
  .p-index-fv__illust {
    top: 80.9%;
    right: auto;
    left: 10.4%;
    width: 95.5%;
    transform: scaleX(-1);
  }

  /*----- GREETING -----*/
  .p-index-greeting {
    padding-top: 251px;
  }
  .p-index-greeting__mark {
    top: 164px;
    left: 2.13%;
    width: 109px;
  }
  .c-panel {
    width: 89.33%;
    margin-inline: auto;
    padding: 43px 6.57% 121px 6.87%;
    border-radius: 14px;
  }
  .c-panel__body {
    margin-top: 21px;
  }
  .c-panel__body p {
    font-size: 16px;
    line-height: 1.94;
  }
  /* SPはどちらもカード幅ぴったりに収める。絵は帯の高さに合わせて敷く */
  .c-panel__band,
  .c-panel__band--loop {
    width: 100%;
    height: 118px;
    aspect-ratio: auto;
    border-bottom-right-radius: 14px;
    border-bottom-left-radius: 14px;
    background: url(../img/index/illust-townscape.webp) repeat-x right bottom /
      auto 118px;
  }
  /* SPカンプにループの指定は無いので流さない */
  .c-panel__band--loop::before {
    content: none;
  }

  /*----- BUSINESS（SPは写真が見出しより先に来る） -----*/
  .p-index-business {
    display: flex;
    flex-direction: column;
    padding-top: 200px;
  }
  .p-index-business__cols {
    display: contents;
  }
  .p-index-business__photo {
    order: 1;
    width: 89.33%;
    margin: 0 auto;
    aspect-ratio: 335 / 249;
  }
  .p-index-business__heading {
    order: 2;
    margin-top: 33px;
    margin-left: 0;
  }
  .p-index-business__text {
    order: 3;
    padding-inline: 5.6%;
  }
  .p-index-business__body {
    margin-top: 33px;
  }
  .p-index-business__body p {
    font-size: 16px;
    line-height: 1.875;
  }
  .p-index-business__btn {
    margin-top: 60px;
  }
  .p-index-business__mark {
    top: 75px;
    left: auto;
    right: 0;
    width: 109px;
  }
  .p-index-business__person {
    top: 40px;
    left: 5.6%;
    width: 22.13%;
  }

  /*----- WORKS（SPカンプでは見出しがグラデーションではなく濃緑の単色） -----*/
  .p-index-works .c-heading__en {
    background-image: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    color: var(--c-green-dark);
  }
  .p-index-works .c-heading__ja {
    color: var(--c-green-dark);
  }
  .p-index-works {
    padding-top: 224px;
  }
  .p-index-works__pine {
    top: 108px;
    left: -7.2%;
    width: 57.3%;
  }
  .p-index-works__person {
    top: 45px;
    left: 60.5%;
    width: 39.5%;
  }
  .p-index-works__heading {
    padding-right: 0;
  }
  .p-index-works__slider {
    margin-top: 37px;
    padding-inline: 5.333%;
  }
  .p-index-works__slide img {
    aspect-ratio: auto;
  }
  .p-index-works__slide.is-down {
    margin-top: 0;
  }
  .p-index-works__btn {
    margin-top: 38px;
  }

  /*----- RECRUIT -----*/
  .p-index-recruit {
    padding-top: 308px;
  }
  .p-index-recruit__pine {
    top: 61px;
    left: 42.7%;
    width: 76.5%;
  }
  .p-index-recruit__person {
    top: 126px;
    left: 2.9%;
    width: 32.5%;
  }
  .p-index-recruit__mark {
    top: 289px;
    left: -2.9%;
    width: 109px;
  }
  .p-index-recruit__heading {
    padding-left: 0;
  }
  .p-index-recruit__lead {
    gap: 10px;
    margin-top: 38px;
    padding-inline: 2.7%;
  }
  .p-index-recruit__lead-text {
    max-width: 306px;
    font-size: 24px;
    line-height: 1.67;
  }
  .p-index-recruit__slash {
    width: 41px;
  }
  .p-index-recruit__cols {
    flex-direction: column;
    gap: 0;
    margin-top: 38px;
    padding-right: 0;
  }
  .p-index-recruit__photo {
    width: 89.33%;
    margin-inline: auto;
    aspect-ratio: 335 / 204;
  }
  .p-index-recruit__text {
    width: 100%;
    padding-top: 44px;
    padding-inline: 5.067%;
  }
  .p-index-recruit__body p {
    font-size: 16px;
    line-height: 1.875;
  }
  .p-index-recruit__btn {
    margin-top: 50px;
  }

  /*----- COMPANY -----*/
  /* Figmaでは鳥がセクション最下部の余白を飛ぶ。実装は地図が最後に来るので
     その下に余白を作り、そこに配置する */
  .p-company {
    padding-top: 333px;
    padding-bottom: 120px;
  }
  /* Figma(SP)では松は左に21pxはみ出す。PCと同じく左右反転して使う
     （transform は配置に影響しないので left は反転前の左端＝-21/375 で指定する） */
  .p-company__pine {
    top: -183px;
    left: -5.6%;
    width: 62.9%;
  }
  .p-company__clouds {
    top: -289px;
    left: 47.7%;
    width: 42.7%;
  }
  .p-company__person {
    top: -183px;
    left: 64%;
    width: 28.5%;
  }
  /* Figma(SP)では丸マークは x=284（右端393で見出しに重なる）。
     PCから引き継ぐ scaleX(-1) はそのまま活かす */
  .p-company__mark {
    top: -56px;
    left: 75.733%;
    width: 109px;
  }
  .p-company__birds {
    bottom: 18px;
    left: 26.1%;
    width: 72.3%;
  }
  .p-company__heading {
    padding-right: 0;
  }
  .p-company__cols {
    flex-direction: column;
    gap: 0;
    margin-top: 39px;
    padding-inline: 0;
  }
  .p-company__info {
    width: 100%;
    padding-top: 0;
    padding-inline: 5.067%;
  }
  .p-company__map {
    width: 100%;
    margin-top: 73px;
    aspect-ratio: 375 / 281;
  }
  .p-company__tel {
    margin-top: 61px;
  }
  .p-company__btn {
    margin-top: 41px;
  }

  /*----- 定義リスト（ラベルと値を縦に積む） -----*/
  .c-deflist .row {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    min-height: 0;
    padding-left: 0;
    padding-block: 20px;
  }
  .c-deflist dt,
  .c-deflist dd {
    width: 100%;
    font-size: 16px;
    line-height: 2;
  }
}

/* =========================================================
  人物イラストのゆらぎ（足元を軸にグラグラ揺れ続ける）
========================================================= */
.p-index-business__person,
.p-index-works__person,
.p-index-recruit__person,
.p-company__person {
  transform-origin: 50% 100%;
  animation: person-sway 1.5s ease-in-out infinite;
  will-change: transform;
}
/* 4体が同時に同じ動きにならないよう位相をずらす（負の delay で即座に途中から開始） */
.p-index-works__person {
  animation-delay: -0.9s;
}
.p-index-recruit__person {
  animation-delay: -1.8s;
}
.p-company__person {
  animation-delay: -2.7s;
}
@keyframes person-sway {
  0%,
  100% {
    transform: rotate(-3.5deg);
  }
  50% {
    transform: rotate(3.5deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-index-business__person,
  .p-index-works__person,
  .p-index-recruit__person,
  .p-company__person {
    animation: none;
  }
}

/* =========================================================
  ボタンのホバー（opacityのフェードではなく、弾んで浮くポップな動き）
  ※ common.css の a:hover{opacity:.6} を打ち消す
========================================================= */
.c-btn,
.c-tel {
  /* 最後に少し行き過ぎて戻る cubic-bezier で "ぷるん" とした弾みを出す */
  transition:
    transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 0.35s ease;
}
.c-btn:hover,
.c-tel:hover {
  opacity: 1;
  transform: translateY(-4px) scale(1.04);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.18);
}
.c-btn:active,
.c-tel:active {
  transform: translateY(-1px) scale(1.01);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.16);
}
/* 明るいオレンジのあしらいが伸びて全面を満たす */
.c-btn::before {
  transition:
    width 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
    border-radius 0.35s ease;
}
.c-btn:hover::before {
  width: 100%;
  border-radius: 55px;
}
/* 矢印は右へスッと進む（base の translateY(-50%) を保持したまま動かす） */
.c-btn::after {
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.c-btn:hover::after {
  transform: translate(18%, -50%);
}
/* 受話器アイコンはちょっと傾いて跳ねる */
.c-tel__icon {
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.c-tel:hover .c-tel__icon {
  transform: rotate(-14deg) scale(1.12);
}
@media (prefers-reduced-motion: reduce) {
  .c-btn,
  .c-tel,
  .c-btn::before,
  .c-btn::after,
  .c-tel__icon {
    transition: none;
  }
  .c-btn:hover,
  .c-tel:hover {
    transform: none;
  }
}
