@charset "UTF-8";


/********** base **********/
/* ========================================
    初期設定
    ======================================== */

html {
  scroll-behavior: smooth;
  scroll-padding-top: 120px;

}

/* variables */
:root {
  --color-primary: #313131;
  --color-secondary: #E83331;
  --white: #fff;
  --black: #000;
  --blue: #003C8B;
  --red: #E83331;
  --gray: #818181;
  --gray-light: #F9F9F9;
}

:root {
  --font-primary: "Noto Sans", sans-serif;
  --font-secondary: "Poppins", sans-serif;
  --font-accent: "Syncopate", sans-serif;
  --font-history: "Albert Sans", sans-serif;
}

body {
  -webkit-font-smoothing: antialiased;
  font-family: var(--font-primary);
  color: var(--color-primary);
  font-weight: 400;
  line-height: 1.5;
  font-size: 16px;
  padding-top: 100px;
}

@media (max-width: 600px) {
  body {
    padding-top: 80px;
  }
}


/* ========================================
    コンテナ幅
    ======================================== */
.contents {
  padding: 80px 0 0 0;
}

@media (max-width: 600px) {
  .contents {
    padding: 120px 0 0 0;
  }
}

.container-sm {
  width: 100%;
  padding: 0 16px;
  margin: 0 auto;
  max-width: calc(800px + 32px);
}

.container-md {
  width: 100%;
  padding: 0 16px;
  margin: 0 auto;
  max-width: calc(940px + 32px);
}

.container {
  width: 100%;
  padding: 0 16px;
  margin: 0 auto;
  max-width: calc(1080px + 32px);
}

.container-lg {
  width: 100%;
  padding: 0 16px;
  margin: 0 auto;
  max-width: calc(1200px + 32px);
}

.container-xl {
  width: 85vw;
  padding: 0 16px;
  margin: 0 auto;
}

@media (max-width: 600px) {
  .container-xl {
    width: 100%;
  }
}

/* ========================================
    共通
    ======================================== */
.m-grid-3-col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media (max-width: 768px) {
  .m-grid-3-col {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .m-grid-3-col {
    gap: 40px;
    grid-template-columns: repeat(1, 1fr);
  }
}

.m-grid-2-col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

@media (max-width: 600px) {
  .m-grid-2-col {
    grid-template-columns: repeat(1, 1fr);
  }
}

.m-section-ttl {
  font-family: var(--font-secondary);
  font-size: clamp(48px, 8.2vw, 120px);
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-primary);
  margin-bottom: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.m-section-ttl--left {
  align-items: flex-start;
}

.m-section-ttl--white {
  color: var(--white);
}

@media (max-width: 600px) {
  .m-section-ttl {
    margin-bottom: 20px;
  }
}

.m-section-ttl span {
  font-family: var(--font-primary);
  font-size: clamp(18px, 1.8vw, 25px);
  font-weight: 500;
  color: var(--red);
}

.m-section-ttl--white span {
  color: var(--white);
}

.m-section-ttl--B {
  display: flex;
  flex-direction: column;

}

.m-section-ttl--B__en {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--blue);
  font-family: var(--font-secondary);
  font-size: 16px;
  font-weight: 700;
  text-transform: uppercase;
}

.m-section-ttl--B__en::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background-color: var(--blue);
  border-radius: 50%;
}

.m-section-ttl--B__ja {
  font-size: clamp(22px, 4.5vw, 50px);
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.2;
}

@media (max-width: 600px) {
  .m-section-ttl--B {
    gap: 0px;
  }

  .m-section-ttl--B__ja {
    font-size: 22px;
  }

  .m-section-ttl--B__en {
    font-size: 13px;
    gap: 4px;
  }

  .m-section-ttl--B__en::before {
    width: 8px;
    height: 8px;
  }
}


/* ========================================
    共通ボタン
    ======================================== */
.m-more-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  max-width: 256px;
  height: 60px;
  border-radius: 100px;
  font-size: 16px;
  font-weight: 400;
  transition: all 0.3s ease;
  padding: 0 50px 0 25px;
}

@media (max-width: 600px) {
  .m-more-btn {
    height: 50px;
    font-size: 14px;
    padding: 0 40px 0 20px;
  }
}

/* 白枠バージョン */
.m-more-btn--white {
  border: 1px solid var(--white);
  color: var(--white);
}

.m-more-btn--white:hover {
  background-color: var(--white);
  border-color: var(--red);
  color: var(--red);
}

/* 赤枠バージョン */
.m-more-btn--red {
  border: 1px solid #E0E0E0;
  color: var(--color-primary);
}

.m-more-btn--red:hover {
  background-color: var(--white);
  color: var(--red);
  border-color: var(--red);
}

.m-more-btn__icon {
  position: absolute;
  right: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  transition: transform 0.3s ease;
}

@media (max-width: 600px) {
  .m-more-btn__icon {
    width: 20px;
    height: 20px;
    right: 15px;
  }
}

/* 白枠用アイコン */
.m-more-btn--white .m-more-btn__icon {
  background-color: var(--white);
}

.m-more-btn--white .m-more-btn__icon svg path {
  stroke: var(--red);
}

/* 赤枠用アイコン */
.m-more-btn--red .m-more-btn__icon {
  background-color: var(--red);
}

.m-more-btn:hover .m-more-btn__icon {
  transform: scale(1.1);
}

.m-more-btn--red:hover .m-more-btn__icon,
.m-more-btn--white:hover .m-more-btn__icon {
  background-color: var(--red);
}

.m-more-btn__icon svg,
.m-more-btn__icon img {
  width: 100%;
  height: auto;
}

.m-more-btn__icon svg rect {
  display: none;
}

.m-more-btn--red .m-more-btn__icon svg path {
  stroke: var(--white);
}

.m-more-btn--white:hover .m-more-btn__icon svg path,
.m-more-btn--red:hover .m-more-btn__icon svg path {
  stroke: var(--white);
}


/* ========================================
    ヘッダー
    ======================================== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background-color: var(--white);
  z-index: 1000;
  display: flex;
  align-items: center;
}

@media (max-width: 600px) {
  .header {
    height: 80px;
  }
}

.header__inner {
  width: 100%;
  padding: 0 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

@media (max-width: 1200px) {
  .header__inner {
    padding: 0 20px;
  }
}

.header__logo {
  flex-shrink: 0;
  width: clamp(160px, 17vw, 300px);
}

/* -----------------------------------------
   ヘッダーロゴの切り替え
----------------------------------------- */
.header__logo-wrap {
  position: relative;
}

.header__logo-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  /* JSで制御される。最初は見えないようにしておく */
  clip-path: circle(0 at 0 0);
}

.header__logo-overlay svg path:not([fill="#E83331"]) {
  fill: #fff;
}

.header__logo-wrap svg path {
  transition: fill 0.3s;
}

/* 赤い部分はそのまま（SVGのfill="#E83331"が優先される） */

.header__logo a {
  display: block;
}

.header__nav {
  margin-left: auto;
  margin-right: 30px;
}

@media (max-width: 1200px) {
  .header__nav {
    display: none;
  }
}

.header__nav-list {
  display: flex;
  align-items: center;
  gap: 30px;
}

.header__nav-item {
  flex-shrink: 0;
}

.header__nav-item a {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  transition: opacity 0.3s;
  white-space: nowrap;
}

.header__nav-item a:hover {
  opacity: 0.7;
}

.header__btns {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

@media (max-width: 1200px) {
  .header__btns {
    margin-left: auto;
    margin-right: 30px;
  }
}

@media (max-width: 768px) {
  .header__btns {
    display: none;
  }
}

.header__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: clamp(160px, 12vw, 180px);
  height: 40px;
  border-radius: 100px;
  color: var(--white);
  font-size: 14px;
  font-weight: 600;
  transition: opacity 0.3s;
  flex-shrink: 0;
}

.header__btn:hover {
  opacity: 0.8;
}

.header__btn img {
  width: 18px;
  height: auto;
  filter: brightness(0) invert(1);
}

.header__btn--contact {
  background-color: var(--red);
}

.header__btn--recruit {
  background-color: var(--blue);
}

/* トップページのみ採用情報の背景色を変更 */
.home .header__btn--recruit,
.front-page .header__btn--recruit,
.is-recruit-page .header__btn--recruit {
  background-color: #C20200;
}

.header__hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 50px;
  height: 50px;
  background-color: var(--red);
  border-radius: 50%;
  cursor: pointer;
  z-index: 1001;
  transition: background-color 0.3s;
}

.is-recruit-page .header__hamburger span {
  background-color: var(--white);
}

@media (max-width: 1200px) {
  .header__hamburger {
    display: flex;
  }

  .is-recruit-page .header__hamburger {
    background-color: var(--blue);
  }
}

@media (max-width: 600px) {
  .header__hamburger {
    width: 45px;
    height: 45px;
  }
}

.header__hamburger span {
  width: 24px;
  height: 2px;
  background-color: var(--white);
  transition: 0.3s;
}

@media (max-width: 600px) {
  .header__hamburger span {
    width: 20px;
  }
}

/* ハンバーガー開閉用のアニメーション */
.header__hamburger.is-active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

@media (max-width: 600px) {
  .header__hamburger.is-active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
}

.header__hamburger.is-active span:nth-child(2) {
  opacity: 0;
}

.header__hamburger.is-active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 600px) {
  .header__hamburger.is-active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
}

/* ========================================
    オーバーレイ
    ======================================== */
.header__overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s;
}

.header__overlay.is-active {
  opacity: 1;
  visibility: visible;
}

/* ========================================
    フッター
    ======================================== */
.footer {
  padding: 80px 0 40px;
  background-color: var(--white);
  border-top: 1px solid #e0e0e0;
  position: relative;
}

@media (max-width: 600px) {
  .footer {
    padding: 60px 0 30px;
  }
}

.footer__inner {
  width: 100%;
  margin: 0 auto;
  max-width: 85vw;
}

@media (max-width: 600px) {
  .footer__inner {
    max-width: 100%;
  }
}

.footer__content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 64px;
}

@media (max-width: 768px) {
  .footer__content {
    flex-direction: column;
    gap: 60px;
  }
}

@media (max-width: 600px) {
  .footer__content {
    align-items: center;
  }
}

.footer__left {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  margin-right: 20px;
}

@media (max-width: 600px) {
  .footer__left {
    align-items: center;
    margin-right: 0;
  }
}



.footer__logo {
  width: clamp(220px, 20vw, 300px);
}

.footer__logo a {
  display: block;
}

.footer__logo img {
  width: 100%;
  height: auto;
}

.footer__sns {
  margin-top: 24px;
}

.footer__sns-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background-color: var(--blue);
  padding: 10px 15px;
  border-radius: 4px;
  transition: opacity 0.3s;
}

.footer__sns-link:hover {
  opacity: 0.8;
}

.footer__sns-text {
  font-family: var(--font-secondary);
  color: var(--white);
  font-size: 16px;
  font-weight: 600;
  padding-right: 12px;
  border-right: 1px solid var(--white);
}

.footer__sns-icon {
  display: flex;
  align-items: center;
  width: 25px;
  height: 25px;
}

.footer__sns-icon img {
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
}

.footer__nav {
  display: flex;
  gap: 60px;
}

@media (max-width: 1200px) {
  .footer__nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px 20px;
  }
}

@media screen and (max-width: 1080px) {
  .footer__nav {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .footer__nav {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .footer__nav {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 40px;
    justify-content: center;
    width: fit-content;
    margin: 0 auto;
  }
}

.footer__nav-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.footer__nav-item {
  position: relative;
  padding-left: calc(7px + 6px);
  /* dot size + gap */
}

.footer__nav-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 7px;
  background-color: var(--blue);
  border-radius: 50%;
}

.footer__nav-item a {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  transition: color 0.3s;
}

.footer__nav-item a:hover {
  color: var(--blue);
}

@media (max-width: 600px) {
  .footer__bottom {
    text-align: center;
  }
}

.footer__copyright {
  font-family: var(--font-secondary);
  font-size: 13px;
  font-weight: 500;
  color: var(--color-primary);
}

.footer__to-top {
  position: absolute;
  right: 50px;
  bottom: 40px;
  width: 70px;
  height: 70px;
}

@media (max-width: 1200px) {
  .footer__to-top {
    right: 20px;
    bottom: 30px;
  }
}

@media (max-width: 600px) {
  .footer__to-top {
    width: 50px;
    height: 50px;
    right: 15px;
    bottom: 64px;
  }
}

.footer__to-top a {
  display: block;
  transition: transform 0.3s;
}

.footer__to-top a:hover {
  transform: translateY(-5px);
}

.footer__to-top img {
  width: 100%;
  height: auto;
}

/* ========================================
    メインビジュアル
    ======================================== */
/* -----------------------------------------
   全体のラップとスクロール制御
----------------------------------------- */
.top-hero-content {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
}

/* -----------------------------------------
   背景画像グリッド（スライダー）
----------------------------------------- */
.mainv {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  z-index: 0;
}

.mainv__bg-clip {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  /* JSで上書きされるが初期値を設定 */
  clip-path: circle(30vmax at 55% 50%);
}

@media (max-width: 600px) {
  .mainv__bg-clip {
    clip-path: circle(42vmax at 50% 50%);
  }
}

.mainv__bg-clip::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
}

.mainv__bg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 150vmax;
  height: 150vmax;
  transform: translate(-50%, -50%) rotate(15deg);
}

/* 6列のグリッド設定（ここが重要） */
.mainv__columns {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 30px;
  height: 100%;
  width: 104vw;
  margin: 0 auto;
}

@media (max-width: 600px) {
  .mainv__columns {
    grid-template-columns: repeat(4, 1fr);
    width: 180vw;
    gap: 12px;
  }

  .mainv__col:nth-child(n+5) {
    display: none;
  }
}

.mainv__col-inner {
  display: flex;
  flex-direction: column;
  gap: 30px;
  will-change: transform;
}

.mainv__img {
  width: 100%;
  aspect-ratio: 240 / 340;
  flex-shrink: 0;
}

.mainv__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
  filter: brightness(0.8);
}

/* 無限ループアニメーション */
@keyframes slideDown {
  0% {
    transform: translate3d(0, -33.33%, 0);
  }

  100% {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideUp {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(0, -33.33%, 0);
  }
}

.mainv__col.is-down .mainv__col-inner {
  animation: slideDown 30s linear infinite;
}

.mainv__col.is-up .mainv__col-inner {
  animation: slideUp 30s linear infinite;
}

/* -----------------------------------------
   MVテキストとAboutの白文字
----------------------------------------- */
.mainv__content {
  position: relative;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
}

.mainv__content-inner {
  position: absolute;
  width: 100%;
  padding: 0 5vw;
}

@media screen and (max-width: 600px) {
  .mainv__content-inner {
    top: 55%;
  }
}

.mainv__content-inner svg {
  width: clamp(300px, 42vw, 600px);
  height: auto;
}

.mainv__content-inner.is-base {
  z-index: 1;
  color: #313131;
}

.mainv__content-inner.is-overlay {
  z-index: 2;
  color: #fff;
  clip-path: circle(30vmax at 55% 50%);
}

/* ユーティリティの SP 改行用 */
.u-sp {
  display: none;
}

@media (max-width: 600px) {
  .u-sp {
    display: block;
  }
}

.u-30 {
  width: 30% !important;
}

.u-40 {
  width: 40% !important;
}

.u-50 {
  width: 50% !important;
}

.u-60 {
  width: 60% !important;
}

@media screen and (max-width: 600px) {

  .u-40,
  .u-50,
  .u-60 {
    width: 100% !important;
  }
}

/* ========================================
    ナビゲーションドロワー
    ======================================== */
.header__drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 80%;
  max-width: 400px;
  height: 100vh;
  background-color: var(--white);
  z-index: 1000;
  transform: translateX(100%);
  transition: transform 0.4s ease;
}

.header__drawer.is-active {
  transform: translateX(0);
}

.header__drawer-inner {
  height: 100%;
  overflow-y: auto;
  padding: 140px 20px 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (max-width: 600px) {
  .header__drawer-inner {
    padding-top: 120px;
  }
}

.header__drawer-nav {
  width: 100%;
  margin-bottom: 40px;
}

.header__drawer-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
}

.header__drawer-item a {
  font-size: 18px;
  font-weight: 600;
  color: var(--color-primary);
}

.header__drawer-btns {
  display: flex;
  flex-direction: column;
  gap: 15px;
  width: 100%;
  max-width: 300px;
}

.header__drawer-btns .header__btn {
  width: 100%;
  height: 50px;
  font-size: 16px;
}

.header__drawer-sns {
  margin-top: 40px;
}

.header__drawer-sns-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background-color: var(--blue);
  padding: 10px 20px;
  border-radius: 4px;
  transition: opacity 0.3s;
}

.header__drawer-sns-link:hover {
  opacity: 0.8;
}

.header__drawer-sns-text {
  font-family: var(--font-secondary);
  color: var(--white);
  font-size: 16px;
  font-weight: 600;
  padding-right: 12px;
  border-right: 1px solid var(--white);
}

.header__drawer-sns-icon {
  display: flex;
  align-items: center;
  width: 25px;
  height: 25px;
}

.header__drawer-sns-icon img {
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
}



.m-main-contents {
  padding-top: 140px;
  padding-bottom: 120px;
  position: relative;
  overflow: hidden;
}

@media (max-width: 1080px) {
  .m-main-contents {
    padding-top: 100px;
    padding-bottom: 60px;
  }
}

@media (max-width: 600px) {
  .m-main-contents {
    padding-top: 80px;
    padding-bottom: 50px;
  }
}

.m-page-accent {
  position: absolute;
  top: 100px;
  right: -5vw;
  width: 45vw;
  z-index: -1;
  pointer-events: none;
}

@media (max-width: 600px) {
  .m-page-accent {
    width: 80vw;
    top: 0px;
    right: -20vw;
  }
}

/* ========================================
    投稿一覧ページ
    ======================================== */
/* ========================================
    投稿詳細ページ
    ======================================== */

.p-single__header {
  padding-bottom: 100px;
  border-bottom: 1px solid #E0E0E0;
  margin-bottom: 80px;
}

@media (max-width: 600px) {
  .p-single__header {
    padding-bottom: 40px;
    margin-bottom: 24px;
  }
}

.p-single__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 24px;
}

@media (max-width: 600px) {
  .p-single__meta {
    gap: 10px;
    margin-bottom: 16px;
  }
}

.p-single__cat {
  display: inline-block;
  padding: 0 1.5em;
  height: 30px;
  line-height: 28px;
  border: 1px solid var(--red);
  color: var(--red);
  font-size: 14px;
  font-weight: 600;
  border-radius: 4px;
  text-align: center;
}

.p-single__date {
  font-family: var(--font-secondary);
  font-size: 20px;
  font-weight: 500;
  color: var(--color-primary);
  display: flex;
  align-items: center;
}

.p-single__date::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  background-color: var(--blue);
  border-radius: 50%;
  margin-right: 12px;
}

@media (max-width: 600px) {
  .p-single__date {
    font-size: 16px;
  }

  .p-single__date::before {
    width: 5px;
    height: 5px;
    margin-right: 10px;
  }
}

.p-single__title {
  font-size: clamp(18px, 2.75vw, 40px);
  font-weight: 700;
  line-height: 1.4;
  color: var(--color-primary);
}

.p-single__body {
  margin-bottom: 120px;
}

@media (max-width: 600px) {
  .p-single__body {
    margin-bottom: 80px;
  }
}

.m-post-main img {
  object-fit: contain;
  width: auto;
  max-width: 100%;
  height: auto;
  margin-bottom: 20px;
}

.m-post-main p {
  margin-bottom: 20px;
  line-height: 2;
}

@media (max-width: 600px) {
  .m-post-main p {
    font-size: 14px;
  }
}

.m-post-main a {
  display: inline-block;
  margin-bottom: 20px;
  color: #00AFED;
  text-decoration: underline;
}

.m-post-main h1 {
  font-size: 32px;
  font-weight: 500;
  margin-bottom: 20px;
}

@media (max-width: 600px) {
  .m-post-main h1 {
    font-size: 28px;
  }
}

.m-post-main h2 {
  font-size: 28px;
  font-weight: 500;
  margin-bottom: 20px;
}

@media (max-width: 600px) {
  .m-post-main h2 {
    font-size: 22px;
  }
}

.m-post-main h3 {
  font-size: 24px;
  font-weight: 500;
  margin-bottom: 20px;
}

@media (max-width: 600px) {
  .m-post-main h3 {
    font-size: 18px;
  }
}

.p-single__nav-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

@media (max-width: 768px) {
  .p-single__nav-inner {
    gap: 15px;
  }
}

.p-single__nav-item {
  width: 100%;
  max-width: 200px;
}

@media (max-width: 768px) {
  .p-single__nav-item {
    max-width: 100%;
  }
}

.p-single__nav-item a,
.p-single__nav-item .is-disabled {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
  border: 1px solid #E0E0E0;
  border-radius: 4px;
  font-size: 18px;
  font-weight: 500;
  color: var(--color-primary);
  transition: all 0.3s ease;
  text-decoration: none;
}

.p-single__nav-item .is-disabled {
  border-color: #C4C5C5;
  color: #C4C5C5;
}

@media (max-width: 600px) {

  .p-single__nav-item a,
  .p-single__nav-item .is-disabled {
    height: 50px;
    font-size: 14px;
  }
}

.p-single__nav-item--archive a {
  background-color: #313131;
  color: var(--white);
  border-color: #313131;
}

.p-single__nav-item a:hover {
  opacity: 0.8;
}

.p-single__nav-item--prev a:hover,
.p-single__nav-item--next a:hover {
  background-color: var(--gray-light);
}

@media (max-width: 768px) {
  .p-single__nav-item--archive {
    order: 2;
  }

  .p-single__nav-item--prev {
    order: 1;
  }

  .p-single__nav-item--next {
    order: 3;
  }
}

@media (max-width: 430px) {

  /* 文言の省略制御 */
  .p-single__nav-item a span,
  .p-single__nav-item .is-disabled span {
    display: none;
  }

  /* 「〜へ」の追加 */
  .p-single__nav-item--prev a::after,
  .p-single__nav-item--prev .is-disabled::after {
    content: "へ";
  }

  .p-single__nav-item--next a::after,
  .p-single__nav-item--next .is-disabled::after {
    content: "へ";
  }

  /* 並び順の変更（次 -> 一覧 -> 前） */
  .p-single__nav-item--next {
    order: 1;
  }

  .p-single__nav-item--archive {
    order: 2;
  }

  .p-single__nav-item--prev {
    order: 3;
  }
}

/* ========================================
    トップページ
    ======================================== 
*/
.home .main {
  position: relative;
  background-color: #fff;
}

/* 工場紹介 */
.top-factory {
  padding: 180px 0;
  background-color: var(--gray-light);
  border-radius: 30px 30px 0 0;
}

@media (max-width: 1080px) {
  .top-factory {
    padding: 100px 0;
  }
}

@media (max-width: 600px) {
  .top-factory {
    padding: 60px 0;
  }
}

.top-factory__inner {
  width: 90vw;
  margin: 0 0 0 auto;
}

@media (max-width: 1080px) {
  .top-factory__inner {
    width: 85vw;
    margin: 0 auto;
  }
}

@media (max-width: 600px) {
  .top-factory__inner {
    width: 100%;
    padding: 0 16px;
    margin: 0 auto;
  }
}

.top-factory__content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 60px;
  width: 90vw;
  margin: 0 0 0 auto;
}

@media (max-width: 600px) {
  .top-factory__content {
    flex-direction: column;
    gap: 40px;
  }
}

@media (max-width: 600px) {
  .top-factory__content {
    display: flex;
    gap: 5px;
    width: 100%;
  }
}

.top-factory__left {
  flex: .8;
}

@media (max-width: 600px) {
  .top-factory__left {
    display: contents;
  }
}

@media (max-width: 1080px) {
  .top-factory__left {
    width: 100%;
  }
}

.top-factory .m-section-ttl {
  align-items: flex-start;
  margin-bottom: 60px;
}

@media (max-width: 600px) {
  .top-factory .m-section-ttl {
    margin-bottom: 40px;
  }
}

.top-factory__list {
  display: flex;
  flex-direction: column;
}

@media (max-width: 600px) {
  .top-factory__list {
    display: contents;
  }
}

.top-factory__item {
  position: relative;
  transition: border-color 0.3s;
}

.top-factory__item::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--color-primary);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.top-factory__item:hover::after,
.top-factory__item.is-active::after {
  transform: scaleX(1);
}

@media (max-width: 768px) {

  .top-factory__item:hover::after,
  .top-factory__item.is-active::after {
    transform: scaleX(0);
  }
}

.top-factory__item:not(:last-child) {
  border-bottom: 1px solid #E0E0E0;
}

@media (max-width: 600px) {
  .top-factory__item {
    width: 100%;
    border-top: none !important;
    border-bottom: 1px solid #E0E0E0;
    margin-bottom: 20px;
  }
}

.top-factory__item:last-child {
  border-bottom: 1px solid #E0E0E0;
}

@media (max-width: 600px) {
  .top-factory__item:last-child {
    margin-bottom: 0;
  }
}

.top-factory__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 30px 0;
  transition: opacity 0.3s;
}

@media (max-width: 600px) {
  .top-factory__link {
    padding: 10px 0;
  }
}

.top-factory__item-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.top-factory__item-jp {
  font-size: clamp(17px, 2vw, 28px);
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1.2;
}

.top-factory__item-en {
  font-family: var(--font-secondary);
  font-size: 18px;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}

@media (max-width: 600px) {
  .top-factory__item-en {
    font-size: 14px;
  }
}

.top-factory__arrow {
  position: relative;
  width: 30px;
  height: 30px;
  display: block;
  flex-shrink: 0;
}



.top-factory__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 18px;
  height: 18px;
  border-top: 3px solid #939394;
  border-right: 3px solid #939394;
  transform: translateY(-50%) rotate(45deg);
}

.top-factory__right {
  flex: 1;
  position: sticky;
  top: 140px;
}

@media (max-width: 1080px) {
  .top-factory__right {
    position: static;
    width: 100%;
  }
}

@media (max-width: 600px) {
  .top-factory__right {
    display: contents;
  }
}

.top-factory__image-container {
  position: relative;
  width: 100%;
  aspect-ratio: 580 / 440;
  background-color: #E0E0E0;
  overflow: hidden;
}

@media (max-width: 600px) {
  .top-factory__image-container {
    display: contents;
  }
}

@media (max-width: 600px) {
  .top-factory__image-container {
    aspect-ratio: 1 / 1;
  }
}

.top-factory__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

@media (max-width: 600px) {
  .top-factory__image {
    position: static;
    opacity: 1;
    visibility: visible;
    aspect-ratio: 1 / .6;
    margin-bottom: 0px;
  }
}

.top-factory__image.is-active {
  opacity: 1;
  visibility: visible;
}

@media (max-width: 600px) {
  .top-factory__image[data-index="0"] {
    order: 1;
  }

  .top-factory__item[data-index="0"] {
    order: 2;
  }

  .top-factory__image[data-index="1"] {
    order: 3;
  }

  .top-factory__item[data-index="1"] {
    order: 4;
  }

  .top-factory__image[data-index="2"] {
    order: 5;
  }

  .top-factory__item[data-index="2"] {
    order: 6;
  }

  .top-factory__image[data-index="3"] {
    order: 7;
  }

  .top-factory__item[data-index="3"] {
    order: 8;
  }
}

.top-factory__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}



.top-factory__item.is-active .top-factory__link {
  opacity: 1;
}



.top-factory__item.is-active .top-factory__item-jp,
.top-factory__item.is-active .top-factory__item-en {
  color: var(--red);
}

@media (max-width: 600px) {

  .top-factory__item.is-active .top-factory__item-jp,
  .top-factory__item.is-active .top-factory__item-en {
    color: var(--color-primary);
  }
}



.top-solution {
  padding-top: 180px;
}

@media screen and (max-width: 1080px) {
  .top-solution {
    padding-top: 100px;
  }
}

@media (max-width: 768px) {
  .top-solution {
    padding: 80px 0;
  }
}

.top-solution__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 60px;
}

@media (max-width: 1080px) {
  .top-solution__inner {
    flex-direction: column;
    gap: 40px;
  }
}

.top-solution__header {
  flex: 1;
  flex-shrink: 0;
}

.top-solution .m-section-ttl {
  align-items: flex-start;
  margin-bottom: 20px;
}

.top-solution__btn {
  display: flex;
  justify-content: flex-end;
}

.top-solution__btn--sp {
  margin-top: 64px;
  text-align: center;
}

.top-solution__content {
  flex: 1;
  padding-top: 40px;
}

@media (max-width: 1080px) {
  .top-solution__content {
    padding-top: 0;
  }
}

.top-solution__text {
  font-size: 16px;
  line-height: 2;
  margin-bottom: 40px;
}

@media (max-width: 600px) {
  .top-solution__text {
    font-size: 14px;
    margin-bottom: 30px;
  }
}

.top-solution__image {
  margin-top: 80px;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  position: relative;
  z-index: 2;
}

.top-solution__svg {
  width: 100%;
  height: auto;
  display: block;
}

.top-solution__map {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 5;
}

.top-solution__area {
  position: absolute;
  pointer-events: auto;
}


@media (max-width: 1080px) {
  .top-solution__image {
    width: 100%;
    margin-left: 0;
    margin-top: 60px;
  }
}

@media (max-width: 768px) {
  .top-solution__image {
    margin-top: 40px;

  }
}

@media screen and (max-width: 600px) {
  .top-solution__image {
    width: calc(100% + 30px);
    transform: translateX(-17px);
  }
}

.top-solution__txt {
  overflow: hidden;
  width: 100%;
  margin-top: -50px;
  position: relative;
  z-index: 1;
}

@media screen and (max-width: 600px) {
  .top-solution__txt {
    margin-top: -10px;
  }
}



.top-solution__txt .splide__slide {
  width: auto;
}

.top-solution__txt img {
  width: auto;
  height: clamp(80px, 12vw, 180px);
  max-width: none;
  display: block;
}

/* -----------------------------------------
   全体のラップとスクロール制御
----------------------------------------- */
.top-hero-wrap {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background-color: #fff;
  z-index: 0;
}


/* 上に乗ってくるコンテンツの器 */
.main-content {
  position: relative;
  z-index: 10;
  background-color: var(--white);
}


.home,
.is-recruit-page {
  padding-top: 0;
}



@media (max-width: 600px) {
  .home {
    padding-top: 0;
  }
}

.top-about {
  color: #fff;
  text-align: center;
  padding-bottom: 25vh;
}

/* About内のタイトル等を強制的に白にする */
.top-about .m-section-ttl,
.top-about .m-section-ttl span,
.top-about__desc {
  color: #fff !important;
}

.top-about__desc {
  width: fit-content;
  margin: 0 auto;
  max-width: 680px;
}

.top-about__desc p {
  text-align: left;
  line-height: 2;
  margin-bottom: 1em;


}

.top-about__btn-wrap {
  margin-top: 40px;
}


.home .header,
.is-recruit-page .header {
  background-color: transparent;
  transition: background-color 0.3s;
  border-bottom: none;
}

.home .header.is-scrolled,
.is-recruit-page .header.is-scrolled {
  background-color: var(--white);
}

.header.is-scrolled .header__logo-wrap svg path:not([fill="#E83331"]) {
  fill: var(--color-primary);
}

.home .header__nav-item a {
  color: var(--white);
  transition: color 0.3s;
}

.is-recruit-page .header__nav-item a {
  color: var(--color-primary);
  transition: color 0.3s;
}

.home .header.is-scrolled .header__nav-item a,
.is-recruit-page .header.is-scrolled .header__nav-item a {
  color: #313131;
}

/* ========================================
    下層ページ
    ======================================== */
.m-breadcrumbs {
  position: absolute;
  top: 130px;
  left: 0;
  z-index: 10;
  padding-left: 2.5vw;
}

.m-breadcrumbs__nav {
  font-size: 14px;
  color: var(--gray);
  line-height: 1;
}

.m-breadcrumbs__nav a {
  color: var(--blue);
  text-decoration: underline;
  transition: opacity 0.3s;
}

.m-breadcrumbs__nav a:hover {
  opacity: 0.7;
}


@media (max-width: 600px) {
  .m-breadcrumbs {
    top: 90px;

  }

  .m-breadcrumbs__nav {
    font-size: 12px;
  }
}

.m-lower-visual {
  width: 100%;
  height: 480px;
  background-color: var(--white);
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
}

@media (max-width: 1080px) {
  .m-lower-visual {
    height: 400px;
  }
}

@media (max-width: 768px) {
  .m-lower-visual {
    height: 320px;
  }
}

@media (max-width: 600px) {
  .m-lower-visual {
    height: auto;
    flex-direction: column-reverse;
    align-items: flex-start;
  }
}

.m-lower-visual__inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

@media (max-width: 600px) {
  .m-lower-visual__inner {
    display: contents;
  }
}

.m-lower-visual__content {
  padding-left: 5vw;
  flex-shrink: 0;
}

@media (max-width: 600px) {
  .m-lower-visual__content {
    padding: 5px 16px 40px;
  }
}

.m-lower-visual__ttl {
  display: flex;
  align-items: center;
  gap: 30px;
}

@media (max-width: 768px) {
  .m-lower-visual__ttl {
    gap: 20px;
  }
}

.m-lower-visual__ttl-ja {
  font-size: clamp(28px, 4.8vw, 70px);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.2;
}

.m-lower-visual__line {
  width: 80px;
  height: 1px;
  background-color: var(--gray);
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .m-lower-visual__line {
    width: 40px;
  }
}

.m-lower-visual__ttl-en {
  font-family: var(--font-secondary);
  font-size: clamp(16px, 1.75vw, 25px);
  font-weight: 400;
  color: var(--red);
  line-height: 1;
  text-transform: uppercase;
}

.m-lower-visual__img {
  width: 55vw;
  height: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  position: relative;
}

@media (max-width: 600px) {
  .m-lower-visual__img {
    width: 60%;
    height: auto;
    aspect-ratio: 1 / 0.6;
    margin: 0 0 0 auto;
    margin-bottom: 20px;
  }
}

.m-lower-visual__img-inner {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}

.m-lower-visual__img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: top right;
}



/* ========================================
    プライバシーポリシー
    ======================================== */


.p-policy__header {
  margin-bottom: 160px;
}

@media screen and (max-width: 1080px) {
  .p-policy__header {
    margin-bottom: 120px;
  }
}

@media screen and (max-width: 768px) {
  .p-policy__header {
    margin-bottom: 80px;
  }
}

@media screen and (max-width: 600px) {
  .p-policy__header {
    margin-bottom: 40px;
  }
}

@media (max-width: 600px) {
  .p-policy__header {
    margin-bottom: 40px;
  }
}

.p-policy__title {
  font-size: clamp(32px, 4.8vw, 70px);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.2;
  display: flex;
  align-items: center;
  gap: 30px;
}

@media (max-width: 1080px) {
  .p-policy__title {
    gap: 20px;
  }
}

@media (max-width: 600px) {
  .p-policy__title {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
}

.p-policy__title-line {
  flex-shrink: 0;
  width: 80px;
  height: 1px;
  background-color: #E0E0E0;
}

@media (max-width: 1080px) {
  .p-policy__title-line {
    width: 40px;
  }
}

@media (max-width: 600px) {
  .p-policy__title-line {
    display: none;
  }
}

.p-policy__title-en {
  font-family: var(--font-secondary);
  font-size: clamp(16px, 1.75vw, 25px);
  font-weight: 400;
  color: var(--red);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.p-policy__body {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.75;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-policy__body {
    font-size: 14px;
  }
}

/* 番号付き項目（①など） */
.p-policy__num-item {
  display: flex;
  gap: .5em;
  margin-bottom: 1em;
}

.p-policy__circle-num {
  flex-shrink: 0;
  width: 25px;
  height: 25px;
  border: 1px solid var(--red);
  color: var(--red);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  margin-top: 0.15em;
}

@media (max-width: 600px) {
  .p-policy__circle-num {
    width: 20px;
    height: 20px;
    font-size: 12px;
    margin-top: 0.15em;
  }
}

/* 赤ドットリスト（共通） */
.p-policy__section-content p {
  font-weight: 600;

}

.p-policy__list {
  list-style: none;
  padding: 0;
  margin-left: 2em;
  margin-bottom: 1.5em;
}

@media (max-width: 600px) {
  .p-policy__list {
    margin-left: 1em;
  }
}


.p-policy__list li {
  position: relative;
  padding-left: 1.25em;
  margin-bottom: 0.8em;
  font-weight: 600;
}

.p-policy__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  background-color: var(--red);
  border-radius: 50%;
}

/* グレーボックス */
.p-policy__gray-box {
  background-color: #F9F9F9;
  padding: 30px;
  margin: 0 0 1.5em 2.5em;
}

@media (max-width: 600px) {
  .p-policy__gray-box {
    padding: 20px;
    margin-left: 2em;
  }
}

.p-policy__gray-box .p-policy__list {
  margin-left: 0;
  margin-bottom: 0;
}

.p-policy__gray-box .p-policy__list li {
  padding-left: 0;
}

.p-policy__gray-box .p-policy__list li::before {
  display: none;
}

.p-policy__intro {
  margin-bottom: 90px;
  font-weight: 600;
}

.p-policy__section {
  margin-bottom: 90px;
}

@media (max-width: 1080px) {

  .p-policy__intro,
  .p-policy__section {
    margin-bottom: 60px;
  }
}

@media (max-width: 768px) {

  .p-policy__intro,
  .p-policy__section {
    margin-bottom: 50px;
  }
}

@media (max-width: 600px) {

  .p-policy__intro,
  .p-policy__section {
    margin-bottom: 40px;
  }
}

.p-policy__section-title {
  font-size: clamp(20px, 2.75vw, 40px);
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 20px;
}

@media (max-width: 600px) {
  .p-policy__section-title {
    margin-bottom: 16px;
  }
}

.p-policy__contact-box {
  background-color: #F9F9F9;
  padding: 40px;
  margin-top: 32px;
}

@media (max-width: 600px) {
  .p-policy__contact-box {
    padding: 30px 20px;
    margin-top: 24px;
  }
}

.p-policy__contact-name {
  font-weight: 700;
  margin-bottom: 20px;
}

.p-policy__contact-box a {
  color: inherit;
  text-decoration: underline;
}

.p-policy__contact-box a:hover {
  text-decoration: none;
}

/* ========================================
    会社概要
    ======================================== */
.m-lower-visual--company .m-lower-visual__img,
.m-lower-visual--history .m-lower-visual__img,
.m-lower-visual--factory .m-lower-visual__img,
.m-lower-visual--about .m-lower-visual__img,
.m-lower-visual--contact .m-lower-visual__img {
  width: 50vw;
  height: 100%;
}

@media (max-width: 1080px) {

  .m-lower-visual--company .m-lower-visual__img,
  .m-lower-visual--history .m-lower-visual__img,
  .m-lower-visual--factory .m-lower-visual__img,
  .m-lower-visual--about .m-lower-visual__img,
  .m-lower-visual--contact .m-lower-visual__img {
    width: 45vw;
  }
}

@media (max-width: 600px) {

  .m-lower-visual--company .m-lower-visual__img,
  .m-lower-visual--history .m-lower-visual__img,
  .m-lower-visual--factory .m-lower-visual__img,
  .m-lower-visual--about .m-lower-visual__img,
  .m-lower-visual--contact .m-lower-visual__img {
    width: 60%;
    aspect-ratio: 1 / 0.8;
    margin-bottom: 0;
  }
}

.m-lower-visual--business .m-lower-visual__img,
.m-lower-visual--bending .m-lower-visual__img,
.m-lower-visual--canning .m-lower-visual__img,
.m-lower-visual--machining .m-lower-visual__img,
.m-lower-visual--assembling .m-lower-visual__img,
.m-lower-visual--inspection .m-lower-visual__img,
.m-lower-visual--packing .m-lower-visual__img {
  width: 55vw;
  height: 100%;
}

@media (max-width: 1080px) {

  .m-lower-visual--business .m-lower-visual__img,
  .m-lower-visual--bending .m-lower-visual__img,
  .m-lower-visual--canning .m-lower-visual__img,
  .m-lower-visual--machining .m-lower-visual__img,
  .m-lower-visual--assembling .m-lower-visual__img,
  .m-lower-visual--inspection .m-lower-visual__img,
  .m-lower-visual--packing .m-lower-visual__img {
    width: 50vw;
  }
}

@media (max-width: 600px) {

  .m-lower-visual--business .m-lower-visual__img,
  .m-lower-visual--bending .m-lower-visual__img,
  .m-lower-visual--canning .m-lower-visual__img,
  .m-lower-visual--machining .m-lower-visual__img,
  .m-lower-visual--assembling .m-lower-visual__img,
  .m-lower-visual--inspection .m-lower-visual__img,
  .m-lower-visual--packing .m-lower-visual__img {
    width: 60%;
    aspect-ratio: 1 / 0.8;
    margin-bottom: 0;
  }
}

.p-history__body {
  padding-top: 90px;
  padding-bottom: 85px;
}

@media (max-width: 1080px) {
  .p-history__body {
    padding-top: 80px;
    padding-bottom: 120px;
  }
}

@media (max-width: 600px) {
  .p-history__body {
    padding-top: 60px;
    padding-bottom: 20px;
  }
}

.p-company__body,
.p-factory__body {
  padding-top: 90px;
  padding-bottom: 170px;
}



@media (max-width: 1232px) {

  .p-company__body,
  .p-factory__body {
    padding-top: 100px;
  }

}


@media (max-width: 600px) {

  .p-company__body,
  .p-factory__body {
    padding-top: 0px;
    padding-bottom: 60px;
  }

  .p-about__body {
    padding-top: 0;
  }
}



/* ========================================
    沿革
    ======================================== */
.p-history-timeline {
  margin: 0 auto;
  position: relative;
}

.p-history-timeline::before {
  content: "";
  position: absolute;
  top: 30px;
  bottom: 30px;
  left: 260px;
  /* 180px(year) + 80px(gap) */
  width: 1px;
  background-color: #D9D9D9;
}

@media (max-width: 1080px) {
  .p-history-timeline::before {
    left: 196px;
    /* 140px(year) + 40px(gap) + 16px(container padding) */
  }
}

@media (max-width: 600px) {
  .p-history-timeline::before {
    display: none;
  }
}

@media (max-width: 1080px) {
  .p-history-timeline {
    padding: 0 16px;
  }
}

.p-history-timeline__item {
  display: flex;
  gap: 80px;
  margin-bottom: 30px;
  position: relative;
  align-items: baseline;
}

@media (max-width: 1080px) {
  .p-history-timeline__item {
    gap: 40px;
    margin-bottom: 30px;
  }
}

@media (max-width: 600px) {
  .p-history-timeline__item {
    flex-direction: column;
    gap: 20px;
    margin-bottom: 30px;
  }
}

.p-history-timeline__year {
  font-family: var(--font-history);
  font-size: clamp(32px, 5.5vw, 80px);
  font-weight: 700;
  color: var(--blue);
  line-height: 1;
  width: 180px;
  flex-shrink: 0;
  background-color: var(--white);
  z-index: 1;
  transform: translateY(20%);
}

@media (max-width: 1080px) {
  .p-history-timeline__year {
    width: 140px;
    transform: translateY(0%);
  }
}

@media (max-width: 600px) {
  .p-history-timeline__year {
    width: 100%;
  }
}

.p-history-timeline__body {
  flex-grow: 1;
  position: relative;
  padding-left: 60px;
}

@media (max-width: 1080px) {
  .p-history-timeline__body {
    padding-left: 40px;
  }
}

@media (max-width: 600px) {
  .p-history-timeline__body {
    padding-left: 30px;
  }
}

.p-history-timeline__event {
  position: relative;
  margin-bottom: 30px;
  display: flex;
  gap: 40px;
  align-items: baseline;
}

@media (max-width: 600px) {
  .p-history-timeline__event {
    margin-bottom: 16px;
    flex-direction: column;
    gap: 10px;
  }
}

.p-history-timeline__date {
  font-family: var(--font-secondary);
  font-size: clamp(18px, 2vw, 30px);
  font-weight: 700;
  color: var(--red);
  display: flex;
  align-items: center;
  flex-shrink: 0;
  width: 3.5em;
  line-height: 1;
  padding-top: 0.35em;
  /* テキストの1.8倍行間との調整 */
}

@media (max-width: 600px) {
  .p-history-timeline__date {
    width: 100%;
  }
}

.p-history-timeline__date::before {
  content: "";
  position: absolute;
  left: -60px;
  top: 0.5em;
  transform: translateX(-50%);
  width: 15px;
  height: 15px;
  background-color: var(--red);
  border-radius: 50%;
}

@media (max-width: 1080px) {
  .p-history-timeline__date::before {
    left: -40px;
  }
}

@media (max-width: 600px) {
  .p-history-timeline__date::before {
    left: -11px;
    width: 12px;
    height: 12px;
    top: 0.5em;
  }
}

.p-history-timeline__content {
  flex-grow: 1;
}

.p-history-timeline__list {
  list-style: none;
  padding: 0;
}

.p-history-timeline__list li {
  font-size: 18px;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1.8;
  position: relative;
  padding-left: 1.5em;
}

@media (max-width: 600px) {
  .p-history-timeline__list li {
    font-size: 15px;
  }
}

.p-history-timeline__list li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: #D9D9D9;
  font-weight: 400;
}

.p-history-timeline__images {
  margin: 24px 0;
}

.p-history-timeline__img {
  margin-bottom: 24px;
}

.p-history-timeline__img:last-child {
  margin-bottom: 0;
}

.p-history-timeline__img img {
  width: 100%;
  height: auto;
  border-radius: 4px;
  aspect-ratio: 1 / 0.6;
  object-fit: cover;
}

.p-company__profile-inner {
  display: flex;
  justify-content: space-between;
  gap: 60px;
}

@media (max-width: 1080px) {
  .p-company__profile-inner {
    flex-direction: column;
    gap: 40px;
  }
}

.p-company__profile-left {
  flex-shrink: 0;
}

.p-company__profile-right {
  flex: 1;
  max-width: 750px;
}

.p-company__info {
  display: flex;
  flex-direction: column;
}

.p-company__info-item {
  padding: 40px 0;
  border-bottom: 1px solid #E0E0E0;
  position: relative;
}

.p-company__info-item>div {
  display: flex;
}

.p-company__info-item::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 200px;
  height: 1px;
  background-color: var(--red);
  z-index: 1;
}

@media (max-width: 600px) {
  .p-company__info-item {
    padding: 20px 0;
  }

  .p-company__info-item>div {
    flex-direction: column;
    gap: 10px;
  }

  .p-company__info-item::after {
    display: none;
  }
}

.p-company__info dt {
  width: 200px;
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-company__info dt {
    width: 100%;
    font-size: 14px;
  }
}

.p-company__info dd {
  flex: 1;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.6;
}

@media (max-width: 600px) {
  .p-company__info dd {
    width: 100%;
    font-size: 14px;
  }
}

/* 保有資格 */
.p-company__certificate {
  margin-top: 160px;
  padding: 120px 0;
  background-color: var(--gray-light);
  width: 100vw;
  margin-left: calc(50% - 50vw);
  border-radius: 30px 30px 0 0;

}

@media (max-width: 1080px) {
  .p-company__certificate {
    margin-top: 100px;
    padding: 80px 0;
    padding-bottom: 100px;
  }
}

@media (max-width: 600px) {
  .p-company__certificate {
    margin-top: 60px;
    padding: 60px 0;
    padding-bottom: 80px;
  }
}

.p-company__certificate .m-section-ttl--B {
  margin-bottom: 60px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 16px;
}

@media (max-width: 600px) {
  .p-company__certificate .m-section-ttl--B {
    margin-bottom: 40px;
  }
}

.p-company__certificate-flex {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

.p-company__certificate-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

@media (max-width: 1080px) {
  .p-company__certificate-flex {
    gap: 20px;
  }

  .p-company__certificate-col {
    gap: 30px;
  }
}

@media (max-width: 768px) {
  .p-company__certificate-flex {
    flex-direction: column;
    gap: 20px;
  }

  .p-company__certificate-col {
    gap: 20px;
  }
}

.p-company__certificate-card {
  background-color: var(--white);
  border-radius: 10px;
  overflow: hidden;
  height: fit-content;
}

.p-company__certificate-header {
  display: flex;
  align-items: center;
  gap: 15px;
  background-color: var(--blue);
  padding: 18px 30px;
}

@media (max-width: 600px) {
  .p-company__certificate-header {
    padding: 15px 20px;
    gap: 12px;
  }
}

.p-company__certificate-icon {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}

.p-company__certificate-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-company__certificate-title {
  color: var(--white);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
}

@media (max-width: 600px) {
  .p-company__certificate-title {
    font-size: 18px;
  }
}

.p-company__certificate-list {
  padding: 10px 40px 30px;
}

@media (max-width: 600px) {
  .p-company__certificate-list {
    padding: 10px 20px 20px;
  }
}

.p-company__certificate-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px dashed #E0E0E0;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
}

.p-company__certificate-item:last-child {
  border-bottom: none;
}

@media (max-width: 600px) {
  .p-company__certificate-item {
    font-size: 14px;
    padding: 15px 0;
  }
}

.p-company__certificate-bottom {
  margin-top: 96px;
  display: flex;
  justify-content: center;
  padding: 0 16px;
}

@media (max-width: 600px) {
  .p-company__certificate-bottom {
    margin-top: 50px;
  }
}

.m-btn-type2:not(.wp-block-button),
.wp-block-button.m-btn-type2 .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  padding: 0 60px;
  background-color: var(--white);
  border: 1px solid #E0E0E0;
  border-radius: 100px;
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
  transition: all 0.3s ease;
  text-decoration: none;
}

.wp-block-button.m-btn-type2 {
  background-color: transparent !important;
  border: none !important;
}

.wp-block-button.m-btn-type2 .wp-block-button__link {
  background-color: var(--white) !important;
  color: var(--color-primary) !important;
  border: 1px solid #E0E0E0 !important;
  padding: 0 60px !important;
  height: 60px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 100px !important;
}

.m-btn-type2:not(.wp-block-button):hover,
.wp-block-button.m-btn-type2 .wp-block-button__link:hover {
  background-color: var(--color-primary) !important;
  color: var(--white) !important;
  border-color: var(--color-primary) !important;
}

@media (max-width: 600px) {

  .m-btn-type2:not(.wp-block-button),
  .wp-block-button.m-btn-type2 .wp-block-button__link {
    height: 50px !important;
    padding: 0 40px !important;
    font-size: 14px !important;
  }
}

/* アクセス */
.p-company__access {
  padding: 120px 0;
  border-radius: 30px 30px 0 0;
  background-color: var(--white);
  transform: translateY(-30px);
  padding-top: 160px;
  padding-bottom: 0px;
}

@media (max-width: 1080px) {
  .p-company__access {
    padding: 80px 0;
  }
}

@media (max-width: 600px) {
  .p-company__access {
    padding: 60px 0;
    padding-bottom: 0;
  }
}

.p-company__access-content {
  margin-top: 60px;
  display: flex;
  gap: 60px;
  align-items: center;
}

@media (max-width: 1080px) {
  .p-company__access-content {
    flex-direction: column;
    gap: 40px;
    align-items: stretch;
  }
}

.p-company__access-map {
  flex: 1;
  width: 100%;
}

.p-company__access-map .p-company__access-map-iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 1/.6;
  display: block;
}

.p-company__access-info {
  flex: 1;
}

.p-company__access-block {
  padding: 32px 0;
}



@media (max-width: 600px) {
  .p-company__access-block {
    padding: 24px 0;
  }
}

.p-company__access-ttl {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid #C6C6C7;
}

@media (max-width: 600px) {
  .p-company__access-ttl {
    font-size: 16px;
    margin-bottom: 16px;
    padding-bottom: 13px;
  }
}

.p-company__access-icon {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}

.p-company__access-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-company__access-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.p-company__access-list li {
  font-size: 16px;
  line-height: 1.6;
  position: relative;
  padding-left: 20px;
}

@media (max-width: 600px) {
  .p-company__access-list li {
    font-size: 14px;
  }
}

.p-company__access-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--red);
  border-radius: 50%;
}

/* ========================================
    事業内容（詳細）
    ======================================== */
.p-business-bending__body {
  padding-top: 100px;
}

@media (max-width: 1080px) {
  .p-business-bending__body {
    padding-top: 80px;
  }
}

@media (max-width: 600px) {
  .p-business-bending__body {
    padding-top: 60px;
  }
}

.p-business-feature {
  margin-top: 120px;
}

@media (max-width: 600px) {
  .p-business-feature {
    margin-top: 60px;
  }
}

.p-business-feature__inner {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

@media (max-width: 768px) {
  .p-business-feature__inner {
    flex-direction: column;
    align-items: stretch;
  }
}

.p-business-feature__content {
  flex: 1;
  padding-left: calc((100% - 1200px) / 2 + 16px);
  padding-right: 60px;
  box-sizing: border-box;
}

@media (max-width: 1232px) {
  .p-business-feature__content {
    padding-left: 16px;
  }
}

@media (max-width: 768px) {
  .p-business-feature__content {
    flex: 1;
    padding-right: 16px;
    margin-bottom: 20px;
  }
}

.p-business-feature__img {
  flex: 0 0 40%;
  height: 100%;
}

.p-business-feature__img img {
  width: 100%;
  height: 440px;
  object-fit: cover;
  border-radius: 4px 0 0 4px;
}

@media (max-width: 768px) {
  .p-business-feature__img img {
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 4px;
  }
}

/* 1500px以上は通常のlgコンテナ内に収める */
@media (min-width: 1500px) {
  .p-business-feature {
    max-width: calc(1200px + 32px);
    margin-left: auto;
    margin-right: auto;
    padding: 0 16px;
  }

  .p-business-feature__inner {
    gap: 60px;
  }

  .p-business-feature__content {
    flex: 1;
    padding-left: 0;
    padding-right: 0;
  }

  .p-business-feature__img img {
    border-radius: 4px;
  }
}

.p-business-feature__text {
  margin-top: 32px;
}

.p-business-feature__text p {
  font-size: 16px;
  line-height: 2;
  font-weight: 500;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-business-feature__text {
    margin-top: 24px;
  }

  .p-business-feature__text p {
    font-size: 14px;
  }
}

/* 設備・概要 */
.p-business-equipment {
  margin-top: 80px;
  margin-bottom: 120px;
}

@media (max-width: 600px) {
  .p-business-equipment {
    margin-top: 40px;
    margin-bottom: 100px;
  }
}

.p-business-equipment__inner {
  background-color: #FAFAFA;
  padding: 80px 8%;
  border-radius: 10px;
}

@media (max-width: 1080px) {
  .p-business-equipment__inner {
    padding: 60px 30px;
  }
}

@media (max-width: 600px) {
  .p-business-equipment__inner {
    padding: 40px 20px;
  }
}

.p-business-equipment__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 64px;
}

@media (max-width: 768px) {
  .p-business-equipment__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
    margin-bottom: 40px;
  }
}

.p-business-equipment .m-section-ttl--B__en {
  margin-top: 5px;
}

.p-business-equipment .m-section-ttl--B__en::before {
  display: none;
}

.p-business-equipment__btn {
  flex-shrink: 0;
}

@media (max-width: 600px) {
  .p-business-equipment__btn.u-sp-only {
    width: 100%;
    margin-top: 40px;
    display: flex;
    justify-content: center;
  }
}

.p-business-equipment__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px 40px;
}

.p-business-equipment__grid--2col {
  grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 600px) {
  .p-business-equipment__grid--2col {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1080px) {
  .p-business-equipment__grid {
    gap: 40px 30px;
  }
}

@media (max-width: 768px) {
  .p-business-equipment__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .p-business-equipment__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.p-business-equipment__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.p-business-equipment__item-head {
  display: flex;
  align-items: center;
  gap: 15px;
}

.p-business-equipment__item-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}

.p-business-equipment__item-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-business-equipment__item-ttl {
  font-size: 25px;
  font-weight: 600;
  color: var(--blue);
  line-height: 1.2;
}

@media (max-width: 1080px) {
  .p-business-equipment__item-ttl {
    font-size: 20px;
  }
}

@media (max-width: 600px) {
  .p-business-equipment__item-ttl {
    font-size: 18px;
  }
}

.p-business-equipment__item-body p {
  font-size: 15px;
  line-height: 1.6;
  font-weight: 500;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-business-equipment__item-body p {
    font-size: 14px;
  }
}

.p-business-equipment__item--end {
  margin-top: 40px;
}

.p-business-nav {
  width: 100%;
  padding-top: 20px;
}

.p-business-nav__inner {
  max-width: 100%;
  margin: 0 auto;
}

.p-business-nav__img {
  position: relative;
}

.p-business-nav__img img {
  width: 100%;
  height: auto;
  display: block;
}

.p-business-nav__area {
  position: absolute;
  top: auto;
  bottom: 0;
  height: 75%;
  box-sizing: border-box;
  z-index: 10;
  transition: background-color 0.3s ease;
}

.p-business-nav__area:hover {
  background-color: rgba(255, 0, 0, 0.1);
}


/* ========================================
    事業内容
    ======================================== */
.p-business__body {
  padding-top: 0px;
  padding-bottom: 160px;
}

@media (max-width: 600px) {
  .p-business__body {
    padding-top: 0px;
    padding-bottom: 60px;
  }
}

.p-business__strength-content {
  margin-top: 48px;
}

@media (max-width: 600px) {
  .p-business__strength-content {
    margin-top: 20px;
  }
}

.p-business__strength-text p {
  font-size: 16px;
  line-height: 2;
  font-weight: 500;
}

@media (max-width: 600px) {
  .p-business__strength-text p {
    font-size: 14px;
  }
}

/* -----------------------------------------
    事業内容アイテム
   ----------------------------------------- */
.p-business__items {
  margin-top: 120px;
  border-top: 1px solid #E0E0E0;
  padding-top: 64px;
}

@media (max-width: 1080px) {
  .p-business__items {
    margin-top: 90px;
  }
}

@media (max-width: 768px) {
  .p-business__items {
    margin-top: 64px;
  }
}

@media (max-width: 600px) {
  .p-business__items {
    margin-top: 40px;
  }
}

.p-business__items-inner {
  margin-top: 120px;
}

@media screen and (max-width: 600px) {
  .p-business__items-inner {
    margin-top: 40px;
  }
}

.p-business__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
}

.p-business__item:not(:first-child) {
  margin-top: 120px;
}

@media (max-width: 1080px) {
  .p-business__item:not(:first-child) {
    margin-top: 90px;
  }
}

@media (max-width: 768px) {
  .p-business__item {
    flex-direction: column-reverse;
    gap: 40px;
    align-items: stretch;
  }

  .p-business__item:not(:first-child) {
    margin-top: 64px;
  }
}

@media (max-width: 600px) {
  .p-business__item:not(:first-child) {
    margin-top: 50px;
  }
}

.p-business__item-content {
  flex: 1;
}

.p-business__item-ttl {
  font-size: clamp(20px, 2.8vw, 40px);
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.2;
}

.p-business__item-en {
  font-family: var(--font-secondary);
  font-size: 20px;
  font-weight: 600;
  color: #CCCCCC;
  margin-top: 5px;
  line-height: 1;
}

@media (max-width: 600px) {
  .p-business__item-en {
    font-size: 16px;
  }
}

.p-business__item-text {
  margin-top: 20px;
}

.p-business__item-text p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-business__item-text p {
    font-size: 14px;
  }
}

.p-business__item-btn {
  margin-top: 40px;
}

@media screen and (max-width: 600px) {
  .p-business__item-btn {
    margin-top: 32px;
    text-align: center;
  }
}

.p-business__item-img-wrap {
  flex: 1;
  position: relative;
  width: 100%;
}

.p-business__item-img {
  width: 100%;
  aspect-ratio: 580 / 400;
  background-color: #E0E0E0;
  border-radius: 4px;
  overflow: hidden;
}

.p-business__item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-business__item-icon {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 35%;
  min-width: 180px;
  max-width: 220px;
  transform: translate(15%, 25%);
  z-index: 1;
}

@media (max-width: 1080px) {
  .p-business__item-icon {
    transform: translate(10%, 20%);
  }
}

@media (max-width: 600px) {
  .p-business__item-icon {
    width: 40%;
    min-width: 150px;
    transform: translate(5%, 15%);
  }
}

/* ========================================
    お問い合わせ
    ======================================== */
.contact {
  padding: 40px 0 120px;
}

@media (max-width: 600px) {
  .contact {
    padding: 80px 0;
  }
}

.contact__info {
  font-size: 14px;
  text-align: center;
  line-height: 2;
}

@media (max-width: 600px) {
  .contact__info {
    font-size: 13px;
  }
}

.contact__form {
  margin-top: 64px;
  width: 100%;
}

.form-unit {
  width: 100%;
  margin-bottom: 2em;
}

.form-unit__head {
  display: flex;
  align-items: center;
  margin-bottom: 0.5em;
}

.m-required::after {
  content: "必須";
  color: red;
  font-size: 10px;
  margin-left: 2px;
  border-radius: 4px;
  padding: 0 5px;
}

.form-unit__input,
.form-unit__input-wrap,
select.wpcf7-form-control {
  width: 100%;
  height: auto;
  padding: 8px;
  border: 1px solid #ccc;
  background: #f9f9f9;
  border-radius: 4px;
  font-size: 16px;
}

select.wpcf7-form-control {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20d%3D%22M0%200l6%206%206-6%22%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  background-size: 12px 8px;
  padding-right: 40px;
  cursor: pointer;
}

.form-unit__textarea,
.form-unit__textarea-wrap {
  width: 100%;
  padding: 8px;
  height: 210px;
  border: 1px solid #ccc;
  background: #f9f9f9;
  border-radius: 4px;
  font-size: 16px;
}

.form-unit__radio {
  margin-top: 20px;
}

.form-unit__date {
  width: 40%;
  height: 70px;
  padding: 8px;
  border: 1px solid #ccc;
  background: #f9f9f9;
  border-radius: 4px;
  font-size: 16px;
}

@media screen and (max-width: 768px) {
  .form-unit__date {
    width: 50%;
    height: 54px;
  }
}

.wpcf7-list-item {
  display: block;
  margin-left: 0;
  margin-right: 20px;
}

.wpcf7-submit {
  text-align: center;
  display: block;
  width: 100%;
  margin: 40px auto 0;
  padding: 20px;
  border-radius: 4px;
  border: 1px solid #ccc;
  transition: 0.3s;
}

.wpcf7-radio {
  -webkit-appearance: button !important;
  appearance: button !important;
  display: flex;
}

.wpcf7-radio input:hover,
.wpcf7-radio label:hover {
  cursor: pointer;
}

.wpcf7-response-output {
  border-color: transparent !important;
  text-align: center !important;
}

input[type=radio] {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid #555;
  position: relative;
  background-color: white;
  cursor: pointer;
  transition: all 0.3s ease;
  transform: translateY(-2px);
}

input[type=radio]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #555;
  transform: translate(-50%, -50%);
}

.form-checkbox {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 1px solid #555;
  position: relative;
  background-color: white;
  cursor: pointer;
  transition: all 0.3s ease;
  transform: translateY(-2px);
}

.form-checkbox:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 25%;
  width: 5px;
  height: 10px;
  border-right: 1px solid #555;
  border-bottom: 1px solid #555;
  transform: rotate(45deg) translate(-50%, -50%);
}

.form-unit__policy-link {
  border-bottom: 1px solid #555;
}

@media screen and (max-width: 768px) {
  .form-unit__policy-link {
    font-size: 15px;
  }
}

.form-consent {
  margin-top: 50px;
  margin-bottom: 50px;
  text-align: center;
}



input.wpcf7-form-control.wpcf7-previous {
  display: block;
  margin: 0 auto;
}

/* 会社概要 */
.top-company {
  padding: 180px 0;
  padding-top: 220px;
  border-radius: 0 0 30px 30px;
}

@media (max-width: 1080px) {
  .top-company {
    padding: 100px 0;
  }
}

@media (max-width: 600px) {
  .top-company {
    padding: 60px 0;
  }
}

.top-company__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 72px;
}

@media screen and (max-width: 1080px) {
  .top-company__list {
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .top-company__list {
    gap: 20px;
    margin-top: 40px;
  }
}

@media (max-width: 600px) {
  .top-company__list {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 40px;
  }
}

.top-company__item {
  display: block;
  text-decoration: none;
  transition: opacity 0.3s;
  position: relative;
}

.top-company__item:hover {
  opacity: 0.8;
}

.top-company__image {
  width: 100%;
  aspect-ratio: 1 / 1.2;
  overflow: hidden;
  border-radius: 10px;
  position: relative;
}

@media screen and (max-width: 600px) {
  .top-company__image {
    aspect-ratio: 1/.6;
  }
}

.top-company__image::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.2);
  transition: background-color 0.6s ease;
  pointer-events: none;
  z-index: 1;
}

.top-company__item:hover .top-company__image::after {
  background-color: rgba(0, 0, 0, 0);
}

.top-company__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
  transition: transform 0.6s ease;
}

.top-company__item:hover .top-company__image img {
  transform: scale(1.1);
}

.top-company__text {
  display: flex;
  flex-direction: column;
  gap: 5px;
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: var(--white);
  padding: 30px 35px;
  border-radius: 0 10px 0 0px;
  z-index: 1;
  min-width: 240px;
}

@media screen and (max-width: 1080px) {
  .top-company__text {
    padding: 15px 15px;
  }
}

.top-company__en {
  font-family: var(--font-secondary);
  font-size: clamp(18px, 2vw, 30px);
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1.2;
}

.top-company__jp {
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 500;
  color: var(--red);
  line-height: 1.2;
}

/* 沿革 */
.top-history {
  background-color: var(--red);
  padding: 180px 0;
  overflow: hidden;
  border-radius: 30px 30px 0 0;
}

@media (max-width: 768px) {
  .top-history {
    padding: 100px 0;
  }
}

.top-history__inner {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: center;
  gap: 80px;
}

@media (max-width: 1080px) {
  .top-history__inner {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .top-history__inner {
    grid-template-columns: 1fr;
    gap: 60px;
  }
}

.top-history__images {
  position: relative;
  aspect-ratio: 1.5 / 1;
  width: 100%;
}

@media (max-width: 768px) {
  .top-history__images {
    max-width: 500px;
    margin: 0 auto;
  }
}

.top-history__image-item {
  position: absolute;
  top: 5%;
  left: 5%;
  width: 90%;
  height: 90%;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
  transform-origin: center center;
}

.top-history__image-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-history__content {
  color: var(--white);
}

.top-history__desc {
  margin-bottom: 40px;
  font-size: 16px;
  line-height: 1.8;
}

@media (max-width: 600px) {
  .top-history__desc {
    font-size: 14px;
    margin-bottom: 30px;
  }
}

.top-history__btn-wrap {
  display: flex;
  justify-content: flex-start;
}

.top-history__btn-wrap:hover a {
  background-color: var(--white);
  color: var(--red);
  border-color: var(--white);
}

/* ========================================
    トップ：ニュース
    ======================================== */
.top-news {
  padding: 120px 0;
  background-color: var(--white);
}

@media (max-width: 768px) {
  .top-news {
    padding: 80px 0;
  }
}

.top-news__inner {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 80px;
  align-items: flex-start;
}

@media (max-width: 1080px) {
  .top-news__inner {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .top-news__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

.top-news__desc {
  margin-bottom: 40px;
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .top-news__desc {
    font-size: 14px;
    margin-bottom: 30px;
  }
}

.top-news__btn-wrap--sp {
  margin-top: 64px;
  text-align: center;
}


/* ========================================
    共通：ニュースリスト
    ======================================== */
.m-news-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.m-news-item {
  border-bottom: 1px solid #E0E0E0;
  transition: border-color 0.3s;
}

.m-news-item:hover {
  border-bottom-color: var(--color-primary);
}


.m-news-item__link {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 30px 0;
  text-decoration: none;
  color: inherit;
}

@media (max-width: 768px) {
  .m-news-item__link {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    padding: 20px 0;
  }
}

@media screen and (max-width: 600px) {
  .m-news-item__link {
    gap: 10px;
  }
}

.p-news-list .m-news-item__link {
  padding: 50px 0;
}

@media (max-width: 768px) {
  .p-news-list .m-news-item__link {
    padding: 20px 0;
  }
}

/* ニュースアイテムのホバー効果は親要素の .m-news-item で処理 */

.m-news-item__meta {
  display: flex;
  align-items: center;
  gap: 30px;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .m-news-item__meta {
    gap: 10px;
    /* スマホでも日付とカテゴリの間隔は30pxを維持 */
  }
}

.m-news-item__date {
  font-family: var(--font-secondary);
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .m-news-item__date {
    font-size: 14px;
    /* スマホでは少し小さく調整 */
  }
}

.m-news-item__cat {
  display: inline-block;
  padding: 0 1em;
  border: 1px solid var(--red);
  color: var(--red);
  font-size: 16px;
  font-weight: 500;
  border-radius: 5px;
  text-align: center;
  min-width: 120px;
}

@media (max-width: 600px) {
  .m-news-item__cat {
    font-size: 14px;
    /* スマホでは少し小さく調整 */
    min-width: 100px;
  }
}

.m-news-item__title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .m-news-item__title {
    white-space: normal;
  }
}


/* ========================================
    ユーティリティ
    ======================================== */
.u-pc-only {
  display: block;
}

@media (max-width: 600px) {
  .u-pc-only {
    display: none !important;
  }
}

.u-sp-only {
  display: none;
}

@media (max-width: 600px) {
  .u-sp-only {
    display: block;
  }
}

.u-text-center {
  text-align: center;
}

.u-text-left {
  text-align: left;
}

.u-text-right {
  text-align: right;
}

.u-pb-100 {
  padding-bottom: 100px;
}

@media (max-width: 600px) {
  .u-pb-100 {
    padding-bottom: 60px;
  }
}

/* ========================================
    共通：ページネーション
    ======================================== */
.m-pager-wrap {
  margin-top: 120px;
}

@media (max-width: 1080px) {
  .m-pager-wrap {
    margin-top: 80px;
  }
}

@media (max-width: 600px) {
  .m-pager-wrap {
    margin-top: 60px;
  }
}

.m-pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  list-style: none;
  padding: 0;
  margin: 0;
}

@media (max-width: 600px) {
  .m-pager {
    gap: 10px;
  }
}

.m-pager__item {
  width: 48px;
  height: 48px;
}

@media (max-width: 600px) {
  .m-pager__item {
    width: 40px;
    height: 40px;
  }
}

.m-pager__link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  border: 1px solid #E0E0E0;
  border-radius: 4px;
  text-decoration: none;
  color: var(--color-primary);
  font-family: var(--font-secondary);
  font-size: 16px;
  font-weight: 500;
  transition: all 0.3s;
}

@media (max-width: 600px) {
  .m-pager__link {
    font-size: 14px;
  }
}

.m-pager__link:hover:not(.current) {
  border-color: var(--color-primary);
  opacity: 0.7;
}

.m-pager__item.is-active .m-pager__link {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.m-pager__item--prev .m-pager__link,
.m-pager__item--next .m-pager__link {
  font-size: 20px;
}

/* ========================================
    トップ：採用情報
    ======================================== */
.top-recruit {
  position: relative;
  padding: 64px 0;
  overflow: hidden;
  background-color: var(--blue);
  border-radius: 30px 30px 0 0;
  transform: translateY(-30px);
}


.top-recruit__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.top-recruit__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-recruit__bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 60, 139, 0.4);
  /* 青いオーバーレイ */
  z-index: 1;
}

.top-recruit__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 40px;
  min-height: 600px;
  padding: 20px;
}

@media (max-width: 1080px) {
  .top-recruit__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

.top-recruit__side {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  gap: 40px;
}

@media (max-width: 1080px) {
  .top-recruit__side {
    gap: 20px;
    flex-direction: row;
  }
}

@media screen and (max-width: 1080px) {
  .top-recruit__side--right {
    display: none;
  }
}

.top-recruit__image img {
  aspect-ratio: 1 / 1.4;
  object-fit: cover;
  border-radius: 10px;
  width: 15vw;
  max-width: 280px;
}

@media screen and (max-width: 768px) {
  .top-recruit__image img {
    width: 35vw;
  }
}

.top-recruit__image--1 img {
  transform: translateX(0%) rotate(-15deg);
}

.top-recruit__image--2 img {
  margin-top: 50px;
  transform: translateX(0%) rotate(15deg);
}

.top-recruit__image--4 img {
  transform: translateX(0%) rotate(15deg);
}

.top-recruit__image--5 img {
  margin-top: 50px;
  transform: translateX(0%) rotate(-7deg);
}

.top-recruit__content {
  max-width: 600px;
  width: 100%;
  text-align: center;
  color: var(--white);
  margin: 0 auto;
}

.top-recruit__desc {
  margin-bottom: 50px;
  font-size: 16px;
  line-height: 2;
  text-align: center;
}

@media (max-width: 600px) {
  .top-recruit__desc {
    font-size: 14px;
    margin-bottom: 64px;
    text-align: left;
  }
}

.top-recruit__btn-wrap {
  display: flex;
  justify-content: center;
}

.top-recruit__btn-wrap a {
  color: var(--white);
}

/* ========================================
    トップ：お問い合わせ
    ======================================== */
.top-contact {
  padding: 120px 0;
  padding-top: 150px;
  background-color: var(--white);
  border-radius: 30px 30px 0 0;

  transform: translateY(-30px);
}

@media (max-width: 1080px) {
  .top-contact {
    padding: 100px 0;
  }
}

@media (max-width: 600px) {
  .top-contact {
    padding: 60px 0;
  }
}

.top-contact__inner {
  gap: 30px;
}

@media (max-width: 768px) {
  .top-contact__inner {
    gap: 20px;
  }
}

.top-contact__item {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 512 / 340;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
}

@media (max-width: 600px) {
  .top-contact__item {
    aspect-ratio: 1 / .6;
  }
}

.top-contact__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.top-contact__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.top-contact__filter {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(67, 67, 67, 0.8);
  z-index: 2;
  transition: background-color 0.6s ease;
}

.top-contact__item:hover .top-contact__bg img {
  transform: scale(1.1);
}

.top-contact__item:hover .top-contact__filter {
  background-color: rgba(67, 67, 67, 0.3);
}

.top-contact__content {
  position: relative;
  height: 100%;
  padding: 40px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  z-index: 3;
}

@media (max-width: 768px) {
  .top-contact__content {
    padding: 30px;
  }
}

.top-contact__ttl.m-section-ttl {
  color: var(--white);
  margin-bottom: 0;
  font-size: clamp(40px, 6.5vw, 85px);
  gap: 0;
}

.top-contact__ttl.m-section-ttl span {
  font-size: clamp(14px, 1.8vw, 20px);
  color: var(--red);
  margin-top: 5px;
}

.top-contact__btn-wrap {
  margin-top: auto;
  align-self: flex-end;
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

@media screen and (max-width: 600px) {
  .top-contact__btn-wrap {
    justify-content: center;
  }
}

.top-contact .m-more-btn {
  max-width: 310px;
  height: 56px;
  font-size: 14px;
  font-weight: 500;
}

@media (max-width: 768px) {
  .top-contact .m-more-btn {
    max-width: 240px;
    height: 48px;
    font-size: 12px;
    padding: 0 40px 0 20px;
  }
}

.top-contact .m-more-btn__icon {
  background-color: var(--red);
}

.top-contact .m-more-btn__icon svg path {
  stroke: var(--white);
}

.top-contact__item:hover .m-more-btn {
  background-color: var(--white);
  border-color: var(--red);
  color: var(--red);
}

.top-contact__item:hover .m-more-btn .m-more-btn__icon {
  transform: scale(1.1);
  background-color: var(--red);
}

.top-contact__item:hover .m-more-btn .m-more-btn__icon svg path {
  stroke: var(--white);
}

.top-contact .m-more-btn:hover .m-more-btn__icon {
  background-color: var(--red);
}

.top-contact .m-more-btn:hover .m-more-btn__icon svg path {
  stroke: var(--white);
}

/* 底部無限スクロール */
.top-bottom-marquee {
  width: 100%;
  overflow: hidden;
  padding-bottom: 0;
}

.top-bottom-marquee .splide__slide {
  width: calc(100% / 3);
}

@media (max-width: 768px) {
  .top-bottom-marquee .splide__slide {
    width: calc(100% / 2);
  }
}

@media (max-width: 600px) {
  .top-bottom-marquee .splide__slide {
    width: 100%;
  }
}

.top-bottom-marquee img {
  width: 100%;
  aspect-ratio: 1 / 0.6;
  object-fit: cover;
  display: block;
}

/* ブロックエディタ対応用の調整 */
.m-block-editor-dl p {
  display: flex;
  padding: 40px 0;
  border-bottom: 1px solid #E0E0E0;
  position: relative;
  margin: 0 !important;
}

.m-block-editor-dl p::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 200px;
  height: 1px;
  background-color: var(--red);
  z-index: 1;
}

.m-block-editor-dl p strong {
  width: 200px;
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
}

.m-block-editor-dl p span {
  flex: 1;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.6;
}

@media (max-width: 600px) {
  .m-block-editor-dl p {
    flex-direction: column;
    gap: 10px;
    padding: 20px 0;
  }

  .m-block-editor-dl p::after {
    display: none;
  }

  .m-block-editor-dl p strong,
  .m-block-editor-dl p span {
    width: 100%;
    font-size: 14px;
  }
}

.m-block-editor-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px dashed #E0E0E0 !important;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  margin: 0 !important;
}

.m-block-editor-list li:last-child {
  border-bottom: none !important;
}

@media (max-width: 600px) {
  .m-block-editor-list li {
    font-size: 14px;
    padding: 15px 0;
  }
}

.m-section-ttl--B p {
  margin: 0 !important;
}

/* 標準ブロック構成用の最終調整 */
.p-company__info-item {
  padding: 40px 0;
  border-bottom: 1px solid #E0E0E0;
  position: relative;
}

.p-company__info-item>div {
  display: flex;
}

.p-company__info-item::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 200px;
  height: 1px;
  background-color: var(--red);
  z-index: 1;
}

.p-company__info-dt {
  width: 200px;
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
}

.p-company__info-dd {
  flex: 1;
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1.6;
}

@media (max-width: 600px) {
  .p-company__info-item {
    padding: 20px 0;
  }

  .p-company__info-item>div {
    flex-direction: column;
    gap: 10px;
  }

  .p-company__info-item::after {
    display: none;
  }

  .p-company__info-dt,
  .p-company__info-dd {
    width: 100%;
    font-size: 14px;
  }
}

.p-company__certificate-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px dashed #E0E0E0;
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
}

.p-company__certificate-item p {
  margin: 0 !important;
}

.p-company__certificate-item:last-child {
  border-bottom: none;
}

@media (max-width: 600px) {
  .p-company__certificate-item {
    font-size: 14px;
    padding: 15px 0;
  }
}


/* ========================================
    曲げ加工 動画セクション
    ======================================== */
.p-bending-movie {
  padding: 100px 0 0;
  margin-bottom: 180px;
}

@media (max-width: 768px) {
  .p-bending-movie {
    padding: 80px 0 0;
  }
}

@media (max-width: 600px) {
  .p-bending-movie {
    padding: 60px 0 0;
    margin-bottom: 100px;
  }
}

.p-bending-movie__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 40px;
}

@media (max-width: 600px) {
  .p-bending-movie__header {
    margin-bottom: 24px;
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
  }
}

.p-bending-movie__nav {
  display: flex;
  gap: 20px;
  margin-bottom: 10px;
}

@media (max-width: 600px) {
  .p-bending-movie__nav {
    gap: 12px;
    margin-bottom: 0;
    align-self: flex-end;
  }
}

.p-bending-movie__prev,
.p-bending-movie__next {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  margin-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  cursor: pointer;
  transition: opacity 0.3s;
  z-index: 10;
  opacity: 1;
}

.p-bending-movie__prev::after,
.p-bending-movie__next::after {
  display: none !important;
}

.p-bending-movie__prev:hover svg rect,
.p-bending-movie__prev:hover svg path,
.p-bending-movie__next:hover svg rect,
.p-bending-movie__next:hover svg path {
  stroke: #9C9C9C;
}

.p-bending-movie__prev.swiper-button-disabled,
.p-bending-movie__next.swiper-button-disabled {
  opacity: 1;
  cursor: not-allowed;
}

.p-bending-movie__prev svg,
.p-bending-movie__next svg {
  width: 100%;
  height: 100%;
}

.p-bending-movie__prev svg rect,
.p-bending-movie__prev svg path,
.p-bending-movie__next svg rect,
.p-bending-movie__next svg path {
  stroke: #E3E3E3;
  transition: stroke 0.3s;
}

@media (max-width: 600px) {

  .p-bending-movie__prev,
  .p-bending-movie__next {
    width: 40px;
    height: 40px;
  }

  .p-bending-movie__prev:not(.swiper-button-disabled) svg rect,
  .p-bending-movie__prev:not(.swiper-button-disabled) svg path,
  .p-bending-movie__next:not(.swiper-button-disabled) svg rect,
  .p-bending-movie__next:not(.swiper-button-disabled) svg path {
    stroke: #9C9C9C;
  }
}

.p-bending-movie__slider {
  overflow: hidden;
}

.p-bending-movie__video-wrap {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: #D9D9D9;
  position: relative;
  cursor: pointer;
}

.p-bending-movie__play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  background-color: rgba(0, 0, 0, 0.5);
  border: 2px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  transition: opacity 0.3s, visibility 0.3s;
  pointer-events: none;
}

.p-bending-movie__play-btn::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 10px 0 10px 18px;
  border-color: transparent transparent transparent #ffffff;
  margin-left: 4px;
}

.p-bending-movie__video-wrap.is-playing .p-bending-movie__play-btn {
  opacity: 0;
  visibility: hidden;
}

.p-bending-movie__placeholder {
  width: 100%;
  height: 100%;
}

.p-bending-movie__video-wrap img,
.p-bending-movie__video-wrap video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* -------------------------------------------
 * page-business-canning
 * ------------------------------------------- */


.p-business-machining {
  margin-bottom: 160px;
}

@media (max-width: 768px) {
  .p-business-machining {
    margin-bottom: 100px;
  }
}

@media (max-width: 600px) {
  .p-business-machining {
    margin-bottom: 80px;
  }
}

/* .p-business-canning .p-business-equipment,
.p-business-machining .p-business-equipment,
.p-business-assembling .p-business-equipment,
.p-business-inspection .p-business-equipment {
  margin-bottom: 160px;
}

@media (max-width: 768px) {

  .p-business-canning .p-business-equipment,
  .p-business-machining .p-business-equipment,
  .p-business-assembling .p-business-equipment,
  .p-business-inspection .p-business-equipment {
    margin-bottom: 100px;
  }
}

@media (max-width: 600px) {

  .p-business-canning .p-business-equipment,
  .p-business-machining .p-business-equipment,
  .p-business-assembling .p-business-equipment,
  .p-business-inspection .p-business-equipment {
    margin-bottom: 80px;
  }
} */

/* -------------------------------------------
 * page-business-packing
 * ------------------------------------------- */
.p-packing-truck {
  padding: 100px 0 0;
  margin-bottom: 220px;
}

@media (max-width: 768px) {
  .p-packing-truck {
    padding: 80px 0 0;
  }
}

@media (max-width: 600px) {
  .p-packing-truck {
    padding: 60px 0 0;
    margin-bottom: 100px;
  }
}

.p-packing-truck__list {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.p-packing-truck__list li {
  position: relative;
  padding-left: 20px;
  font-size: 18px;
  font-weight: 600;
}

.p-packing-truck__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--color-primary);
  border-radius: 50%;
}

/* -------------------------------------------
 * page-factory
 * ------------------------------------------- */
.p-factory-map {
  padding: 60px 0;
}

.p-factory-map__inner {
  position: relative;
  width: 100%;
}

.p-factory-map__img img {
  width: 100%;
  height: auto;
  display: block;
}

.p-factory-map__areas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  /* 下の要素をクリックできるようにするが、子要素で pointer-events: auto する */
}

.p-factory-map__area {
  position: absolute;
  z-index: 10;
  pointer-events: auto;
  /* ここでクリックを有効にする */
}

.p-factory-map__hotspot {
  display: block;
  width: 100%;
  height: 100%;
  cursor: pointer;
  transition: background-color 0.3s;
}

/* .p-factory-map__hotspot:hover {
  background-color: rgba(232, 51, 49, 0.3);
} */

/* -------------------------------------------
 * page-factory
 * ------------------------------------------- */
.p-factory-map {
  padding: 60px 0;
}

@media screen and (max-width: 600px) {
  .p-factory-map {
    padding: 10px 0;
  }
}

.p-factory-map__inner {
  position: relative;
  width: 100%;
}

.p-factory-map__img svg {
  width: 100%;
  height: auto;
  display: block;
}

.p-factory-map__area {
  position: absolute;
  z-index: 10;
}

/* SVGボタンの初期状態とトランジション */
.svg-btn {
  transition: all 0.3s ease;
}

/* 透明なホットスポットにホバーした時、隣接するSVG内の該当ボタンを反転 */
/* B棟 */
.p-factory-map__area--b:hover~.p-factory-map__img .svg-btn--b {
  fill: #fff !important;
  stroke: #313131;
  stroke-width: 1px;
}

/* A棟 */
.p-factory-area {
  padding: 80px 0;
  padding-bottom: 0;
}

@media (max-width: 768px) {
  .p-factory-area {
    padding: 60px 0;
    padding-bottom: 0;
  }
}

@media (max-width: 600px) {
  .p-factory-area {
    padding: 40px 0;
    padding-bottom: 0;
  }
}

.p-factory-area__img {
  margin-bottom: 40px;
  aspect-ratio: 1 / 0.38;
  overflow: hidden;
}

@media (max-width: 600px) {
  .p-factory-area__img {
    margin-bottom: 16px;
    aspect-ratio: 1 / 0.5;
  }
}

.p-factory-area__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-factory-area__head {
  margin-bottom: 60px;
}

@media (max-width: 600px) {
  .p-factory-area__head {
    margin-bottom: 32px;
  }
}

.p-factory-area__equipment {
  margin-top: 0 !important;
}

.p-factory-area__equipment .p-business-equipment__grid {
  gap: 40px 40px;
}

@media screen and (max-width: 600px) {
  .p-factory-area__equipment .p-business-equipment__grid {
    gap: 30px 30px;
  }

}

.p-business-equipment__item-wrap {
  height: fit-content;
}

.p-business-equipment__item-wrap img {
  aspect-ratio: 16/9;
  object-fit: cover;
  margin-bottom: 6px;
}


.p-business-equipment__item-simple {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}

.p-business-equipment__item-name {
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
  margin: 0;
}

.p-business-equipment__item-value {
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
  white-space: nowrap;
  margin: 0;
}

@media (max-width: 600px) {

  .p-business-equipment__item-name,
  .p-business-equipment__item-value {
    font-size: 14px;
  }
}

.p-factory-map__area--a:hover~.p-factory-map__img .svg-btn--a {
  fill: #fff !important;
  stroke: #313131;
  stroke-width: 1px;
}


.p-business-equipment__item-simple--column {
  flex-direction: column;
  align-items: flex-start;
  gap: 0px;
}

/* .p-business-equipment__item-simple--column .p-business-equipment__item-name {
  font-weight: 600;
} */


/* ========================================
    私たちについて
    ======================================== */
.p-about__concept {
  padding-bottom: 160px;
  overflow: hidden;
}

@media (max-width: 600px) {
  .p-about__concept {
    padding-bottom: 20px;
  }
}

.p-about__concept-inner {
  position: relative;
}

.p-about__concept-img01 {
  width: 40vw;
  margin-left: 0;
}

@media (max-width: 600px) {
  .p-about__concept-img01 {
    width: 100%;
  }
}

.p-about__concept-img01 img {
  width: 100%;
  height: auto;
}

.p-about__concept-bottom {
  display: flex;
  align-items: flex-start;
  margin-top: 80px;
  /* 画像１と２の余白を80pxに設定 */
}

@media (max-width: 1232px) {
  .p-about__concept-bottom {
    margin-top: 60px;
  }
}

@media (max-width: 600px) {
  .p-about__concept-bottom {
    display: flex;
    flex-direction: column;
    margin-top: 40px;
  }
}

.p-about__concept-img02 {
  width: 34vw;
  margin-left: 0;
}

.p-about__concept-img02 img {
  width: 100%;
  height: auto;
}

@media (max-width: 600px) {
  .p-about__concept-img02 {
    width: 60vw;
    /* スマホでも幅を維持 */
    margin-bottom: 0;
  }
}

.p-about__concept-img03 {
  width: 40vw;
  margin-left: auto;
  margin-top: 180px;
}

.p-about__concept-img03 img {
  width: 100%;
  height: auto;
}

@media (max-width: 1232px) {
  .p-about__concept-img03 {
    margin-top: 100px;
  }
}

@media (max-width: 600px) {
  .p-about__concept-img03 {
    width: 60vw;
    /* スマホでも幅を維持 */
    margin-top: 20px;
    /* 位置を少し下げる（お好みで調整） */
  }
}

.p-about__concept-content-wrap {
  position: absolute;
  top: 7vw;
  right: 0;
  width: 100%;
  z-index: 10;
  pointer-events: none;
}

@media (max-width: 1232px) {
  .p-about__concept-content-wrap {
    position: static;
    margin-top: 40px;
    pointer-events: auto;
  }
}

.p-about__concept-content {
  margin-left: auto;
  width: 100%;
  max-width: 680px;
  pointer-events: auto;
}

@media (max-width: 1232px) {
  .p-about__concept-content {
    max-width: 100%;
    margin-left: 0;
  }
}

.p-about__concept-ttl {
  font-size: 56px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 40px;
  color: var(--color-primary);
}

@media (max-width: 1232px) {
  .p-about__concept-ttl {
    font-size: 40px;
  }
}

@media (max-width: 600px) {
  .p-about__concept-ttl {
    font-size: 28px;
    margin-bottom: 24px;
  }
}

.p-about__concept-text {
  font-size: 16px;
  line-height: 2;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-about__concept-text {
    font-size: 14px;
  }
}

/* 代表挨拶セクション */
.m-section-ttl--B--red .m-section-ttl--B__en {
  color: var(--red);
}

.m-section-ttl--B--red .m-section-ttl--B__en::before {
  background-color: var(--red);
}

.p-about__greeting {
  background-color: #fff;
}

@media (max-width: 1080px) {
  .p-about__greeting {
    padding: 100px 0;
  }
}

@media (max-width: 600px) {
  .p-about__greeting {
    padding: 20px 0;
  }
}

.p-about__greeting-inner {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 580px;
}

@media (max-width: 600px) {
  .p-about__greeting-inner {
    gap: 20px;
    flex-direction: column-reverse;
    min-height: auto;
  }
}

.p-about__greeting-content {
  width: 100%;
  max-width: 600px;
  position: relative;
  z-index: 2;
}

@media (max-width: 1080px) {
  .p-about__greeting-content {
    max-width: 50%;
  }
}

@media (max-width: 600px) {
  .p-about__greeting-content {
    max-width: 100%;
  }
}

.p-about__greeting-text {
  margin-top: 40px;
  font-size: 16px;
  line-height: 2;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-about__greeting-text {
    font-size: 14px;
    margin-top: 24px;
  }
}

.p-about__greeting-signature {
  margin-top: 60px;
  text-align: right;
  font-weight: 700;
  font-size: 20px;
  color: var(--color-primary);
  padding-right: 40px;
}

@media (max-width: 1080px) {
  .p-about__greeting-signature {
    padding-right: 0;
    font-size: 18px;
  }
}

@media (max-width: 600px) {
  .p-about__greeting-signature {
    margin-top: 32px;
    font-size: 16px;
  }
}

.p-about__greeting-img {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 38vw;
  line-height: 0;
}

.p-about__greeting-img img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

@media (min-width: 1600px) {
  .p-about__greeting-img {
    right: calc((100% - 1600px) / 2);
    width: 600px;
    /* 1600px * 0.42 */
  }
}

@media (max-width: 600px) {
  .p-about__greeting-img {
    position: static;
    transform: none;
    width: calc(100% + 16px);
    margin: 40px -16px 0;
  }
}

/* 経営理念セクション */
.p-about__philosophy {
  padding: 120px 0;
  background-color: #fff;
}

@media (max-width: 1080px) {
  .p-about__philosophy {
    padding: 80px 0;
  }
}

@media (max-width: 600px) {
  .p-about__philosophy {
    padding: 40px 0;
  }
}

.p-about__philosophy-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

@media (max-width: 1080px) {
  .p-about__philosophy-flex {
    gap: 40px;
  }
}

@media (max-width: 600px) {
  .p-about__philosophy-flex {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 32px;
  }
}

.p-about__philosophy-content {
  flex-shrink: 0;
}

.p-about__philosophy-body {
  margin-top: 60px;
}

@media (max-width: 600px) {
  .p-about__philosophy-body {
    margin-top: 32px;
  }
}

.p-about__philosophy-subttl {
  font-family: var(--font-secondary);
  font-size: 40px;
  font-weight: 900;
  color: var(--red);
  line-height: 1.2;
  margin-bottom: 40px;
}

@media (max-width: 600px) {
  .p-about__philosophy-subttl {
    font-size: 20px;
    margin-bottom: 4px;
  }
}

.p-about__philosophy-text {
  font-size: 16px;
  line-height: 2;
  color: var(--color-primary);
  font-weight: 500;
}

.p-about__philosophy-text p+p {
  margin-top: 2em;
}

@media (max-width: 600px) {
  .p-about__philosophy-text {
    font-size: 14px;
  }
}

.p-about__philosophy-img {
  width: 100%;
  max-width: 760px;
  line-height: 0;
}

@media (max-width: 1080px) {
  .p-about__philosophy-img {
    max-width: 45%;
  }
}

@media (max-width: 600px) {
  .p-about__philosophy-img {
    max-width: 100%;
    margin: 0 auto;
  }
}

.p-about__philosophy-img img {
  width: 100%;
  height: auto;
}

/* 経営基本方針セクション */
.p-about__policy {
  padding: 120px 0;
  background-color: #fff;
}

@media (max-width: 1080px) {
  .p-about__policy {
    padding: 80px 0;
  }
}

@media (max-width: 600px) {
  .p-about__policy {
    padding: 20px 0;
  }
}

.p-about__policy-list {
  margin-top: 80px;
}

@media (max-width: 600px) {
  .p-about__policy-list {
    margin-top: 20px;
  }
}

.p-about__policy-item {
  display: flex;
  align-items: flex-start;
  padding: 60px 0;
  border-top: 1px solid #D9D9D9;
}

.p-about__policy-item:last-child {
  border-bottom: 1px solid #D9D9D9;
}

@media (max-width: 768px) {
  .p-about__policy-item {
    flex-direction: column;
    gap: 24px;
    padding: 20px 0;
  }
}

.p-about__policy-item:first-child {
  border-top: none;
}

@media screen and (max-width: 600px) {
  .p-about__policy-item:last-child {
    border-bottom: none;
  }

}

.p-about__policy-head {
  width: 100%;
  max-width: 340px;
}

@media (max-width: 1080px) {
  .p-about__policy-head {
    max-width: 280px;
  }
}

@media (max-width: 768px) {
  .p-about__policy-head {
    max-width: 100%;
  }
}

.p-about__policy-en {
  font-family: var(--font-secondary);
  font-size: 20px;
  font-weight: 700;
  color: var(--red);
  margin-bottom: 8px;
  line-height: 1.2;
}

@media (max-width: 600px) {
  .p-about__policy-en {
    font-size: 15px;
    margin-bottom: 4px;
  }
}

.p-about__policy-ttl {
  font-size: 35px;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.2;
}

@media (max-width: 600px) {
  .p-about__policy-ttl {
    font-size: 20px;
  }
}

.p-about__policy-body {
  flex: 1;
}

.p-about__policy-main {
  font-size: 30px;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.4;
  margin-bottom: 16px;
}

@media (max-width: 600px) {
  .p-about__policy-main {
    font-size: 18px;
    margin-bottom: 12px;
  }
}

.p-about__policy-text {
  font-size: 16px;
  line-height: 1.8;
  font-weight: 500;
  color: var(--color-primary);
}

.p-about__policy-text p+p {
  margin-top: 0.5em;
}

@media (max-width: 600px) {
  .p-about__policy-text {
    font-size: 14px;
  }
}

/* その他の方針セクション */
.p-about__other {
  padding: 120px 0;
  background-color: #F9F9F9;
}

@media (max-width: 1080px) {
  .p-about__other {
    padding: 80px 0;
  }
}

@media (max-width: 600px) {
  .p-about__other {
    padding: 60px 0;
  }
}

.p-about__other-head {
  text-align: center;
  margin-bottom: 60px;
}

@media (max-width: 600px) {
  .p-about__other-head {
    margin-bottom: 32px;
  }
}

.p-about__other-en {
  font-family: var(--font-secondary);
  font-size: 16px;
  font-weight: 700;
  color: var(--red);
  text-transform: uppercase;
  margin-bottom: 10px;
}

.p-about__other-ttl {
  font-size: clamp(32px, 4.5vw, 40px);
  font-weight: 700;
  color: var(--color-primary);
}

.p-about__other-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

@media (max-width: 1080px) {
  .p-about__other-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
}

@media (max-width: 768px) {
  .p-about__other-grid {
    grid-template-columns: 1fr;
  }
}

.p-about__other-card {
  background-color: #fff;
  padding: 60px 40px;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

@media (max-width: 600px) {
  .p-about__other-card {
    padding: 40px 20px;
  }
}

.p-about__other-card-head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-bottom: 30px;
  padding-bottom: 30px;
  border-bottom: 1px dashed #D9D9D9;
  width: 100%;
}

@media (max-width: 600px) {
  .p-about__other-card-head {
    margin-bottom: 20px;
    padding-bottom: 20px;
    gap: 10px;
  }
}

.p-about__other-card-ttl {
  font-size: 30px;
  font-weight: 700;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-about__other-card-ttl {
    font-size: 20px;
  }
}

.p-about__other-card-en {
  font-family: var(--font-secondary);
  font-size: 20px;
  font-weight: 700;
  color: var(--blue);
}

@media (max-width: 600px) {
  .p-about__other-card-en {
    font-size: 15px;
  }
}

.p-about__other-card-text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-primary);
  margin-bottom: 20px;
  text-align: left;
  font-weight: 500;
  min-height: 145px;
  /* 文を揃えるための高さ確保 */
}

@media (max-width: 940px) {
  .p-about__other-card-text {
    min-height: auto;
  }
}

@media (max-width: 600px) {
  .p-about__other-card-text {
    font-size: 14px;
    margin-bottom: 16px;
  }
}

.p-about__other-card-btn {
  width: 100%;
  display: flex;
  justify-content: center;
}

.p-about__other-card-btn .m-more-btn {
  max-width: 280px;
}

/* 取り組みセクション */
.p-about__activity {
  padding: 120px 0;
  background-color: #fff;
}

@media (max-width: 1080px) {
  .p-about__activity {
    padding: 80px 0;
  }
}

@media (max-width: 600px) {
  .p-about__activity {
    padding: 60px 0;
  }
}

.p-about__activity-sdgs {
  margin-top: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 80px;
}

@media (max-width: 1080px) {
  .p-about__activity-sdgs {
    gap: 40px;
  }
}

@media (max-width: 940px) {
  .p-about__activity-sdgs {
    flex-direction: column;
    text-align: center;
  }
}

.p-about__activity-sdgs-left {
  max-width: 320px;
}

.p-about__activity-sdgs-logo {
  max-width: 160px;
  margin: 0 auto 20px;
}

.p-about__activity-sdgs-logo img {
  width: 100%;
  height: auto;
}

.p-about__activity-sdgs-ttl {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 15px;
}

@media (max-width: 600px) {
  .p-about__activity-sdgs-ttl {
    font-size: 17px;
  }
}

.p-about__activity-sdgs-text {
  font-size: 16px;
  line-height: 1.6;
  font-weight: 500;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-about__activity-sdgs-text {
    font-size: 15px;
  }
}

.p-about__activity-sdgs-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.p-about__activity-sdgs-item {
  display: flex;
  align-items: center;
  gap: 20px;
  text-align: left;
}

.p-about__activity-sdgs-goal {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 60px;
  border-radius: 4px;
  border: 1px solid #313131;
  font-size: 14px;
  color: var(--color-primary);
  flex-shrink: 0;
  font-weight: 600;
}

.p-about__activity-sdgs-en {
  font-size: 18px;
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.2;
}

@media (max-width: 600px) {
  .p-about__activity-sdgs-en {
    font-size: 16px;
  }
}

.p-about__activity-sdgs-ja {
  font-size: 16px;
  color: var(--color-primary);
  margin-top: 4px;
  font-weight: 500;
}

@media (max-width: 600px) {
  .p-about__activity-sdgs-ja {
    font-size: 15px;
  }
}

.p-about__activity-certs {
  margin-top: 100px;
}

@media (max-width: 600px) {
  .p-about__activity-certs {
    margin-top: 60px;
  }
}

.p-about__activity-certs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px 80px;
}

@media (max-width: 1080px) {
  .p-about__activity-certs-grid {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .p-about__activity-certs-grid {
    grid-template-columns: 1fr;
  }
}

.p-about__activity-certs-img {
  margin-bottom: 24px;
  line-height: 0;
  text-align: center;
}

@media (max-width: 600px) {
  .p-about__activity-certs-img {
    margin-bottom: 16px;
  }
}

.p-about__activity-certs-img img {
  max-width: 320px;
  height: auto;
}

@media (max-width: 600px) {
  .p-about__activity-certs-img img {
    max-width: 240px;
  }
}

.p-about__activity-certs-ttl {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 12px;
}

@media (max-width: 600px) {
  .p-about__activity-certs-ttl {
    font-size: 17px;
  }
}

.p-about__activity-certs-text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-primary);
  font-weight: 500;
}

@media (max-width: 600px) {
  .p-about__activity-certs-text {
    font-size: 15px;
  }
}

/* ========================================
    お問合せページ
    ======================================== */
.p-contact__body {
  padding-top: 100px;
}

@media (max-width: 600px) {
  .p-contact__body {
    padding-top: 0px;
  }
}

.p-contact__intro {
  margin-bottom: 100px;
}

@media (max-width: 1080px) {
  .p-contact__intro {
    margin-bottom: 80px;
  }
}

.p-contact__intro-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 120px;
}

@media (max-width: 1200px) {
  .p-contact__intro-flex {
    gap: 60px;
  }
}

@media (max-width: 900px) {
  .p-contact__intro-flex {
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
  }
}

.p-contact__intro-ttl {
  width: 500px;
  flex-shrink: 0;
}

@media (max-width: 1080px) {
  .p-contact__intro-ttl {
    width: 320px;
  }
}

@media (max-width: 768px) {
  .p-contact__intro-ttl {
    width: 100%;
  }
}

.p-contact__intro-box {
  background: #FFFFFF;
  border: 1px solid #E0E0E0;
  border-radius: 12px;
  padding: 40px 60px;
  flex: 1;
  box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05);
}

@media (max-width: 1080px) {
  .p-contact__intro-box {
    padding: 30px 40px;
  }
}

@media (max-width: 900px) {
  .p-contact__intro-box {
    padding: 30px 20px;
    width: 100%;
    max-width: 100%;
  }
}

.p-contact__intro-tel-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 20px;
}

@media (max-width: 600px) {
  .p-contact__intro-tel-wrap {
    gap: 15px;
    margin-bottom: 15px;
  }
}

.p-contact__intro-tel-icon {
  width: 35px;
  flex-shrink: 0;
}

.p-contact__intro-tel-icon img {
  width: 100%;
  height: auto;
}

.p-contact__intro-tel-num {
  font-size: 40px;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1;
  text-decoration: none;
}

@media (max-width: 600px) {
  .p-contact__intro-tel-num {
    font-size: 32px;
  }
}

.p-contact__intro-info {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  font-size: 16px;
  color: var(--color-primary);
  font-weight: 600;
}

@media (max-width: 600px) {
  .p-contact__intro-info {
    font-size: 14px;
    flex-wrap: wrap;
    gap: 10px;
  }
}

.p-contact__intro-info-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-contact__intro-label {
  border: 1px solid #E0E0E0;
  border-radius: 4px;
  padding: 2px 10px;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-primary);
}

.p-contact__intro-info-sep {
  color: #E0E0E0;
}

@media (max-width: 600px) {
  .p-contact__intro-info-sep {
    display: none;
  }
}

/* フォームセクション */
.p-contact__form-section {
  padding: 100px 0 160px;
}

@media (max-width: 600px) {
  .p-contact__form-section {
    padding: 20px 0 100px;
  }
}

.p-contact__form-flex {
  display: flex;
  gap: 120px;
}

@media (max-width: 1200px) {
  .p-contact__form-flex {
    gap: 60px;
  }
}

@media (max-width: 900px) {
  .p-contact__form-flex {
    flex-direction: column;
    gap: 40px;
  }
}

.p-contact__form-left {
  width: 500px;
  flex-shrink: 0;
}



@media (max-width: 1080px) {
  .p-contact__form-left {
    width: 320px;
  }
}

@media (max-width: 900px) {
  .p-contact__form-left {
    width: 100%;
  }

  .p-contact__form-left .m-section-ttl--B__ja {
    white-space: normal;
  }
}

.p-contact__form-right {
  flex: 1;
}

.p-contact__form-intro {
  margin-top: 30px;
}

@media (max-width: 600px) {
  .p-contact__form-intro {
    margin-top: 20px;
  }
}

.p-contact__form-text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-primary);
  font-weight: 500;
}

@media (max-width: 600px) {
  .p-contact__form-text {
    font-size: 14px;
  }
}

/* フォーム内パーツ */
.p-contact__form .form-unit {
  margin-bottom: 30px;
}

.p-contact__form .form-unit__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-primary);
}

/* 必須タグ */
.p-contact__form .form-unit__head.m-required::after {
  content: "必須";
  background-color: var(--blue);
  color: #fff;
  font-size: 16px;
  padding: 4px 30px;
  border-radius: 4px;
  font-weight: 700;
  line-height: 1;
}

@media screen and (max-width: 600px) {
  .p-contact__form .form-unit__head.m-required::after {
    font-size: 15px;
    padding: 3px 15px;
  }
}

.p-contact__form .form-unit__input,
.p-contact__form .form-unit__textarea,
.p-contact__form select.wpcf7-form-control {
  width: 100%;
  background-color: #fff;
  border: 1px solid #E0E0E0;
  border-radius: 6px;
  padding: 15px 20px;
  font-size: 16px;
  color: var(--color-primary);
  transition: all 0.3s;
}

.p-entry__form-section .p-contact__form .form-unit__input,
.p-entry__form-section .p-contact__form .form-unit__textarea,
.p-entry__form-section .p-contact__form select.wpcf7-form-control {
  background-color: transparent;
  border-color: rgba(196, 197, 197, 1);
}

.p-contact__form select.wpcf7-form-control {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20d%3D%22M0%200l6%206%206-6%22%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 20px center;
  background-size: 12px 8px;
  padding-right: 50px;
  cursor: pointer;
}

.p-contact__form .form-unit__input:focus,
.p-contact__form .form-unit__textarea:focus,
.p-contact__form select.wpcf7-form-control:focus {
  border-color: var(--blue);
  outline: none;
  background-color: #fcfcfc;
}

.p-contact__form .form-unit__textarea {
  height: 240px;
}

/* 同意チェックボックス */
.p-contact__form .form-consent {
  margin-top: 50px;
  text-align: center;
}

@media screen and (max-width: 600px) {
  .p-contact__form .form-consent {
    margin-top: 20px;
    margin-bottom: 30px;
  }
}

.p-contact__form .form-consent label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 16px;
  font-weight: 500;
}

.p-contact__form .form-checkbox {
  width: 20px;
  height: 20px;
  cursor: pointer;
  margin: 0;
}

.p-contact__form .form__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 400px;
  height: 64px;
  margin: 40px auto 0;
  background-color: #fff;
  border: 1px solid #E0E0E0;
  border-radius: 100px;
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
  padding: 0 40px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("../img/icon/red-arrow.webp");
  background-repeat: no-repeat;
  background-position: right 25px center;
  background-size: 30px;
}

.p-contact__form .form__submit:hover {
  background-color: transparent;
  color: var(--red);
  border-color: var(--red);
  background-image: url("../img/icon/red-arrow.webp");
}

/* Contact Form 7 等のデフォルトスタイル上書き */
.wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.wpcf7-list-item {
  margin: 0;
}

.wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: 20px;
  margin: 0;
  transform: translateY(-50%);
}

@media (max-width: 600px) {
  .p-contact__form .form-unit {
    margin-bottom: 16px;
  }

  .p-contact__form .form-unit__head {
    font-size: 15px;
    margin-bottom: 8px;
  }

  .p-contact__form .form-unit__input,
  .p-contact__form .form-unit__textarea {
    padding: 12px 15px;
    font-size: 16px;
  }

  .p-contact__form .form__submit {
    height: 56px;
    font-size: 16px;
  }
}

/* ========================================
    確認画面用
    ======================================== */
.p-contact--confirm .form-unit__input-wrap,
.p-contact--confirm .form-unit__textarea-wrap {
  width: 100%;
  background-color: #f5f5f5;
  border: 1px solid #E0E0E0;
  border-radius: 6px;
  padding: 15px 20px;
  font-size: 16px;
  color: var(--color-primary);
  min-height: 54px;
  display: flex;
  align-items: center;
}

.p-contact--confirm .form-unit__textarea-wrap {
  min-height: 160px;
  align-items: flex-start;
}

.p-contact--confirm .form-submit-wrap {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.p-contact--confirm .form__submit {
  margin-top: 0;
  /* ラッパーで調整するため */
}

.p-contact--confirm .wpcf7-previous {
  display: block;
  width: 100%;
  max-width: 400px;
  height: 64px;
  background-color: transparent;
  border: none;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 5px;
  cursor: pointer;
  transition: all 0.3s;
  -webkit-appearance: none;
  appearance: none;
  text-align: center;
}

.p-contact--confirm .wpcf7-previous:hover {
  color: var(--blue);
}

@media (max-width: 600px) {

  .p-contact--confirm .form-unit__input-wrap,
  .p-contact--confirm .form-unit__textarea-wrap {
    padding: 12px 15px;
    font-size: 16px;
  }

  .p-contact--confirm .form-submit-wrap {
    margin-top: 40px;
    gap: 15px;
  }

  .p-contact--confirm .wpcf7-previous {
    height: 50px;
    font-size: 15px;
  }
}

/* ========================================
    送信完了画面用
    ======================================== */
.p-thanks__flex {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

@media (max-width: 768px) {
  .p-thanks__flex {
    gap: 40px;
  }
}

.p-thanks__flex .p-contact__form-left {
  width: 100%;
}

.p-thanks__text-wrap {
  margin-bottom: 60px;
}

@media (max-width: 768px) {
  .p-thanks__text-wrap {
    margin-bottom: 40px;
  }
}

.p-thanks__text {
  font-size: 18px;
  line-height: 2;
  color: var(--color-primary);
  font-weight: 600;
}

.p-thanks__text+.p-thanks__text {
  margin-top: 24px;
}

.p-thanks__sub-text {
  margin-top: 40px;
  font-size: 14px;
  color: #666;
  font-weight: 500;
}


.p-entry__form-section {
  padding-top: 0px;
}

.p-entry__body {
  padding-bottom: 120px;
}

@media screen and (max-width: 600px) {
  .p-entry__body {
    padding-bottom: 60px;
  }
}

/* ========================================
    採用情報
    ======================================== */
.m-recruit-bg {
  --bg-x: 71%;
  --bg-y: 29%;
  background: radial-gradient(52% 27% at var(--bg-x) var(--bg-y), rgba(159, 218, 249, 0.8) 0%, rgba(228, 251, 255, 0.8) 100%), #fff;
  background-attachment: fixed;
}

/* 採用ページ メインビジュアル */
.p-recruit-mv {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.p-recruit-mv__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* 流れるバー（画面右→左下 45deg で無限に流れる） */
.p-recruit-mv__bars {
  position: absolute;
  inset: 0;
  overflow: visible;
  pointer-events: none;
}

.p-recruit-mv__bar {
  position: absolute;
  right: 0;
  animation: p-recruit-mv-bar-flow 22s linear infinite;
}

@media (max-width: 600px) {
  .p-recruit-mv__bar {
    animation-duration: 30s;
  }
}

/* 画面上端中央の端から（45degで左下へ） */
.p-recruit-mv__bar--from-center {
  right: auto;
  left: 50%;
  top: 0;
  animation-name: p-recruit-mv-bar-flow-from-center;
}

@media screen and (max-width: 600px) {
  .p-recruit-mv__bar--from-center {
    left: 90%;
  }
}

.p-recruit-mv__bar--01 {
  animation-delay: -0s;
}

.p-recruit-mv__bar--02 {
  animation-delay: -5.5s;
}

.p-recruit-mv__bar--03 {
  animation-delay: -11s;
}

.p-recruit-mv__bar--04 {
  animation-delay: -16.5s;
}

/* 画面右上の外から入ってくる（45degで左下へ） */
.p-recruit-mv__bar--from-top-right {
  right: 0;
  top: 0;
  animation-name: p-recruit-mv-bar-flow-from-top-right;
}

@media screen and (max-width: 600px) {
  .p-recruit-mv__bar--from-top-right {
    top: 10%;
    right: -200%;
  }
}

.p-recruit-mv__bar--05 {
  animation-delay: -2s;
}

.p-recruit-mv__bar--06 {
  animation-delay: -9s;
}

.p-recruit-mv__bar--07 {
  animation-delay: -18s;
}

/* 画面右端の中央から（左端を右端に合わせ、中央で縦揃え） */
.p-recruit-mv__bar--from-right-center {
  right: auto;
  right: 0%;
  top: 0%;
  animation-name: p-recruit-mv-bar-flow-from-right-center;
}

.p-recruit-mv__bar--08 {
  animation-delay: -4s;
}

.p-recruit-mv__bar--09 {
  animation-delay: -12s;
}

.p-recruit-mv__bar--10 {
  animation-delay: -20s;
}

@keyframes p-recruit-mv-bar-flow {
  0% {
    transform: translate(100vw, -100vh);
  }

  100% {
    transform: translate(-40vw, 100vh);
  }
}

/* 画面上端中央の端→左下 45deg（上端から出てくる） */
@keyframes p-recruit-mv-bar-flow-from-center {
  0% {
    transform: translate(100%, -100vh);
  }

  100% {
    transform: translate(calc(-50% - 140vw), 100vh);
  }
}

/* 画面右上の外（上）→左下 45deg・外から入ってくる */
@keyframes p-recruit-mv-bar-flow-from-top-right {
  0% {
    transform: translate(50vw, -100vh);
  }

  100% {
    transform: translate(-140vw, 100vh);
  }
}

/* 画面右端やや上から→左下 45deg・上寄りから入って画面に表示される */
@keyframes p-recruit-mv-bar-flow-from-right-center {
  0% {
    transform: translate(100vw, -100vh);
  }

  100% {
    transform: translate(-40vw, 100vh);
  }
}

@media (max-width: 600px) {
  @keyframes p-recruit-mv-bar-flow {
    0% {
      transform: translate(160vw, -100vh);
    }

    100% {
      transform: translate(-160vw, 100vh);
    }
  }

  @keyframes p-recruit-mv-bar-flow-from-center {
    0% {
      transform: translate(150%, -100vh);
    }

    100% {
      transform: translate(calc(-50% - 320vw), 100vh);
    }
  }

  @keyframes p-recruit-mv-bar-flow-from-top-right {
    0% {
      transform: translate(120vw, -100vh);
    }

    100% {
      transform: translate(-320vw, 100vh);
    }
  }

  @keyframes p-recruit-mv-bar-flow-from-right-center {
    0% {
      transform: translate(160vw, -100vh);
    }

    100% {
      transform: translate(-160vw, 100vh);
    }
  }
}

.p-recruit-mv__bar img {
  display: block;
  transform: scale(0.75) rotate(-45deg);
  transform-origin: center center;
}

@media (max-width: 600px) {
  .p-recruit-mv__bar img {
    transform: scale(0.35) rotate(-45deg);
  }
}

/* 波 SVG（右上・左下） 50%サイズ */
.p-recruit-mv__weave {
  position: absolute;
  height: auto;
  opacity: .8;
  perspective: 1200px;
}

/* 画面右上にピッタリ（はみ出しOK） */
/* 右上 */
.p-recruit-mv__weave--tr {
  top: 0;
  right: 0;
}

.p-recruit-mv__weave--tr .p-recruit-mv__weave-svg {
  animation-delay: 0s;
}

/* 左下（右上より半周期遅らせてタイミングをずらす） */
.p-recruit-mv__weave--bl {
  bottom: 0;
  left: 0;
  transform: rotate(-6deg);
}

.p-recruit-mv__weave--bl .p-recruit-mv__weave-svg {
  animation-delay: -30s;
}

/* 垂直軸（Y軸）でくるくる回転＝奥行きのある3D回転 */
.p-recruit-mv__weave-svg {
  width: 50vw;
  height: auto;
  display: block;
  transform-style: preserve-3d;
  animation: p-recruit-mv-weave-rotate 60s linear infinite;
}

@media screen and (max-width: 600px) {
  .p-recruit-mv__weave-svg {
    width: 100vw;
  }
}

@keyframes p-recruit-mv-weave-rotate {
  from {
    transform: rotateY(0deg);
  }

  to {
    transform: rotateY(360deg);
  }
}

.p-recruit-mv__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 100vh;
  padding-top: 120px;
  padding-bottom: 80px;
}

@media (max-width: 600px) {
  .p-recruit-mv__inner {
    padding-top: 80px;
    padding-bottom: 40px;
    min-height: auto;
  }
}

.p-recruit-mv__content {
  display: grid;
  grid-template-columns: 1fr 70vw 1fr;
  grid-template-rows: auto 1fr;
  gap: 24px 16px;
  align-items: center;
  min-height: 70vh;
}

@media (max-width: 1080px) {
  .p-recruit-mv__content {
    grid-template-columns: 1fr 60vw 1fr;
    gap: 16px;
  }
}

@media (max-width: 768px) {
  .p-recruit-mv__content {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: 24px;
    min-height: auto;
    text-align: center;
  }
}

@media (max-width: 600px) {
  .p-recruit-mv__content {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
}

.p-recruit-mv__slide-wrap {
  grid-column: 2;
  grid-row: 1 / 3;
  width: 70vw;
  max-width: 100%;
  justify-self: center;
  position: relative;
}

@media (max-width: 768px) {
  .p-recruit-mv__slide-wrap {
    grid-column: 1;
    grid-row: 1;
    width: 80vw;
    max-width: 400px;
    justify-self: center;
  }
}

@media (max-width: 600px) {
  .p-recruit-mv__slide-wrap {
    width: 100%;
    max-width: 100%;
  }
}

.p-recruit-mv__slides {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 8px;
}

@media screen and (max-width: 600px) {
  .p-recruit-mv__slides {
    aspect-ratio: 1/1;
  }
}

.p-recruit-mv__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s ease;
}

.p-recruit-mv__slide--active {
  opacity: 1;
  z-index: 1;
}

.p-recruit-mv__slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.p-recruit-mv__copy {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  position: absolute;
  bottom: 18%;
  left: 60px;
}

@media (max-width: 768px) {
  .p-recruit-mv__copy {
    grid-column: 1;
    grid-row: 2;
    align-self: auto;
    text-align: center;
    position: absolute;
    bottom: 5%;
    left: 16px;
    right: 16px;
  }
}

@media (max-width: 600px) {
  .p-recruit-mv__copy {
    position: static;
    text-align: left;
    padding: 0;
  }
}

.p-recruit-mv__copy-ja {
  font-family: var(--font-primary);
  font-size: clamp(32px, 5.5vw, 80px);
  font-weight: 700;
  line-height: 1.35;
  color: var(--color-primary);
  padding-bottom: 12px;
}

@media (max-width: 600px) {
  .p-recruit-mv__copy-ja {
    font-size: clamp(32px, 10vw, 48px);
    text-align: left;
  }
}

.p-recruit-mv__copy-en {
  font-family: var(--font-accent);
  font-size: clamp(22px, 3.1vw, 45px);
  font-weight: 700;
  line-height: 1.4;
  color: var(--blue);
}

@media (max-width: 600px) {
  .p-recruit-mv__copy-en {
    font-size: clamp(20px, 6vw, 24px);
    text-align: left;
  }
}

/* 各行をpositionで配置し、改行されないようにする */
.p-recruit-mv__copy-line {
  display: block;
  white-space: nowrap;
  position: relative;
  left: 0;
}

.p-recruit-mv__right {
  position: fixed;
  bottom: 0;
  right: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 20px;
  max-width: 400px;
  transition: opacity 0.3s, visibility 0.3s;
}

.p-recruit-mv__right.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@media (max-width: 768px) {
  .p-recruit-mv__right {
    position: fixed;
    bottom: 0;
    right: 0;
    width: auto;
    max-width: 100%;
  }
}

@media (max-width: 600px) {
  .p-recruit-mv__right {
    width: 100%;
    max-width: 100%;
    align-items: center;
    gap: 24px;
    display: none;
  }
}

.p-recruit-mv__instagram {
  position: relative;
  bottom: auto;
  right: 24px;
  display: block;
  line-height: 0;
  width: 21vw;
  max-width: 280px;
  z-index: 10;
}

@media (max-width: 768px) {
  .p-recruit-mv__instagram {
    right: 24px;
  }
}

@media (max-width: 600px) {
  .p-recruit-mv__instagram {
    position: relative;
    bottom: auto;
    right: auto;
    width: 100%;
    max-width: 300px;
  }
}

.p-recruit-mv__entry {
  position: relative;
  bottom: 0;
  right: 0px;
  width: 380px;
  min-height: 200px;
  background-size: contain;
  background-position: center bottom;
  background-repeat: no-repeat;
  border-radius: 8px;
  padding: 24px 40px 24px 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 12px;
  z-index: 10;
}

@media (max-width: 768px) {
  .p-recruit-mv__entry {
    width: min(380px, calc(100vw - 32px));
    right: 16px;
    left: auto;
  }
}

@media (max-width: 600px) {
  .p-recruit-mv__entry {
    position: relative;
    bottom: auto;
    right: auto;
    width: 100%;
    max-width: 100%;
    min-height: auto;
    padding: 32px 24px;
    background-size: cover;
    align-items: center;
    border-radius: 12px;
  }
}

.p-recruit-mv__entry-label {
  margin: 0 0 8px 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--white);
  text-align: center;
  width: 64%;
}

@media (max-width: 600px) {
  .p-recruit-mv__entry-label {
    width: 100%;
    font-size: 15px;
    margin-bottom: 12px;
  }
}

.p-recruit-mv__entry-btn {
  display: block;
  width: 64%;
  margin-right: 0;
  transition: opacity 0.3s;
}

@media (max-width: 600px) {
  .p-recruit-mv__entry-btn {
    width: 100%;
    max-width: 280px;
  }
}

/* SCROLL */
.p-recruit-mv__scroll {
  position: absolute;
  right: 64px;
  top: 50%;
  transform: translateY(-100%);
  padding-top: 96px;
  writing-mode: vertical-rl;
  font-family: var(--font-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #003C8B;
}

@media screen and (max-width: 600px) {
  .p-recruit-mv__scroll {
    right: 20px;
    transform: translateY(25%);
  }
}

/* 線エリア：グレーからはみ出した青は見せない */
.p-recruit-mv__scroll-line {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 80px;
  overflow: hidden;
}

/* SCROLL上：グレー80pxのボーダー（固定） */
.p-recruit-mv__scroll-line::before {
  content: "";
  position: absolute;
  top: 0;
  right: 50%;
  transform: translateX(50%);
  width: 2px;
  height: 80px;
  background-color: #B4B4B4;
  border-radius: 1px;
}

/* SCROLL上：青い線が伸びて、下に消えていく → リセット */
.p-recruit-mv__scroll-line::after {
  content: "";
  position: absolute;
  top: 0;
  right: 50%;
  transform: translateX(50%);
  width: 2px;
  height: 0;
  background-color: #003C8B;
  border-radius: 1px;
  transform-origin: top center;
  animation: p-recruit-mv-scroll-flow 2s ease-in-out infinite;
}

/* 青い線：上から伸びる → 下にスライド（グレー外は見切れる）→ リセット */
@keyframes p-recruit-mv-scroll-flow {
  0% {
    height: 0;
    transform: translateX(50%) translateY(0);
  }

  35% {
    height: 80px;
    transform: translateX(50%) translateY(0);
  }

  55% {
    height: 80px;
    transform: translateX(50%) translateY(80px);
  }

  55.01% {
    height: 0;
    transform: translateX(50%) translateY(0);
  }

  100% {
    height: 0;
    transform: translateX(50%) translateY(0);
  }
}

/* 採用ページ：技術力で未来を創るセクション（MV直下・マージンでかぶせ） */
.p-recruit-intro {
  padding: 0 0 20px 0;
}

@media (max-width: 768px) {
  .p-recruit-intro {
    margin-top: -80px;
    padding-bottom: 0px;
  }
}

@media (max-width: 600px) {
  .p-recruit-intro {
    margin-top: 0px;
    padding-bottom: 0px;
  }
}

.p-recruit-intro__inner {
  display: grid;
  grid-template-columns: 0.45fr 0.55fr;
  gap: 40px;
  align-items: center;
}

@media (max-width: 768px) {
  .p-recruit-intro__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

@media (max-width: 600px) {
  .p-recruit-intro__inner {
    gap: 0px;
  }
}

.p-recruit-intro__img-block {
  position: relative;
}

.p-recruit-intro__img-wrap {
  overflow: hidden;
}

.p-recruit-intro__img-wrap--01 {
  width: 100%;
}

.p-recruit-intro__img-wrap--01>img,
.p-recruit-intro__img-wrap--01>picture {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 0.65;
  object-fit: cover;
  object-position: center;
}

.p-recruit-intro__img-wrap--01>picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-recruit-intro__img-wrap--02 {
  margin-top: 16px;
  width: 70%;
  aspect-ratio: 16 / 9;
  margin: 0 8% 0 auto;
  margin-top: -20%;
}

@media (max-width: 600px) {
  .p-recruit-intro__img-wrap--02 {
    width: 80%;
    margin: 16px 0 0 auto;
  }
}

.p-recruit-intro__img-wrap--02 img,
.p-recruit-intro__img-wrap--02 picture {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  vertical-align: top;
}

.p-recruit-intro__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 64px 0 64px 0;
}

@media (max-width: 768px) {
  .p-recruit-intro__content {
    padding: 48px 0 64px 0;
  }
}

@media (max-width: 600px) {
  .p-recruit-intro__content {
    padding: 32px 0 20px 0;
  }
}

.p-recruit-intro__copy {
  margin: 0 0 32px 0;
  font-family: var(--font-primary);
  font-size: clamp(32px, 4vw, 60px);
  font-weight: 600;
  line-height: 1.35;
  color: var(--color-primary);
}

@media (max-width: 768px) {
  .p-recruit-intro__copy {
    margin-bottom: 24px;
  }
}

@media (max-width: 600px) {
  .p-recruit-intro__copy {
    margin-bottom: 20px;
    font-size: 28px;
  }
}

.p-recruit-news {
  padding-top: 220px;
  padding-bottom: 80px;
}

.p-recruit-news__ttl {
  text-align: center;
  margin-bottom: 80px;
}

.p-recruit-news__ttl-en {
  display: block;
  font-family: var(--font-accent);
  font-size: clamp(60px, 8vw, 100px);
  font-weight: 400;
  color: var(--blue);
  line-height: 1;
}

.p-recruit-news__ttl-ja {
  display: block;
  font-size: 30px;
  font-weight: 500;
  color: var(--blue);
  margin-bottom: 10px;
}

@media screen and (max-width: 600px) {
  .p-recruit-news__ttl-ja {
    font-size: 16px;
  }
}

@media (max-width: 768px) {
  .p-recruit-news {
    padding-top: 150px;
    padding-bottom: 80px;
  }


  .p-recruit-news__ttl {
    margin-bottom: 40px;
  }
}

@media screen and (max-width: 600px) {
  .p-recruit-news {

    padding-bottom: 20px;
  }
}



/* 記事一覧 */
.p-recruit-news__list {
  margin-bottom: 80px;
}

.p-recruit-news__item-link {
  display: block;
  height: 100%;
  transition: opacity 0.3s;
}

.p-recruit-news__item-link:hover {
  opacity: 0.7;
}

.p-recruit-news__item-img {
  aspect-ratio: 340 / 220;
  overflow: hidden;
  background-color: #ddd;
  margin-bottom: 15px;
}

@media screen and (max-width: 600px) {
  .p-recruit-news__item-img {
    margin-bottom: 10px;
  }
}

.p-recruit-news__item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.p-recruit-news__item-link:hover .p-recruit-news__item-img img {
  transform: scale(1.1);
}

.p-recruit-news__item-info {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 5px;
}

@media screen and (max-width: 600px) {
  .p-recruit-news__item-info {
    gap: 10px;
  }
}

.m-tag-recruit {
  display: inline-block;
  padding: 2px 10px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: 12px;
  font-weight: 500;
  background-color: transparent;
  text-align: center;
  min-width: 80px;
  border-radius: 3px;
}

@media (max-width: 600px) {
  .m-tag-recruit {
    font-size: 11px;
    padding: 1px 8px;
    min-width: 70px;
  }
}

.p-recruit-news__item-date {
  font-size: 14px;
  font-family: var(--font-secondary);
  color: var(--color-primary);
  font-weight: 500;
}

.p-recruit-news__item-title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-primary);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

@media (max-width: 600px) {
  .p-recruit-news__item-title {
    font-size: 14px;
  }
}

/* 採用詳細ページ */
.p-recruit-single {
  padding-bottom: 120px;
}

.p-recruit-single__inner {
  max-width: 800px;
  margin: 0 auto;
}

.p-recruit-single__header {
  margin-bottom: 40px;
}

.p-recruit-single__thumb {
  margin-bottom: 30px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

@media screen and (max-width: 600px) {
  .p-recruit-single__thumb {
    margin-bottom: 16px;
  }
}

.p-recruit-single__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-recruit-single__meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 15px;
}

@media screen and (max-width: 600px) {
  .p-recruit-single__meta {
    margin-bottom: 10px;
  }
}

.p-recruit-single__date {
  font-size: 14px;
  font-family: var(--font-secondary);
  color: var(--color-primary);
  font-weight: 500;
}

.p-recruit-single__title {
  font-size: 30px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-recruit-single__title {
    font-size: 18px;
  }
}

.p-recruit-single__body {
  margin-bottom: 80px;
  line-height: 2;
}

.p-recruit-single__body h2 {
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: 500;
  color: var(--blue);
  padding-left: 15px;
  border-left: 4px solid var(--blue);
  margin-top: 60px;
  margin-bottom: 30px;
  font-weight: 600;
}

.p-recruit-single__body h3 {
  font-size: clamp(18px, 2vw, 20px);
  font-weight: 600;
  color: var(--color-primary);
  margin-top: 40px;
  margin-bottom: 20px;
}

.p-recruit-single__body p {
  margin-bottom: 1.5em;
}

/* 記事ナビゲーション */
.p-recruit-single__nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 60px;
}

@media (max-width: 768px) {
  .p-recruit-single__nav {
    gap: 15px;
  }
}

.p-recruit-single__nav-item {
  width: 100%;
  max-width: 200px;
}

@media (max-width: 768px) {
  .p-recruit-single__nav-item {
    max-width: 100%;
  }
}

.p-recruit-single__nav-item a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
  border: 1px solid #e0eef5;
  border-radius: 4px;
  font-size: 15px;
  font-weight: 500;
  color: var(--blue);
  background-color: #f0faff;
  transition: all 0.3s ease;
  text-decoration: none;
  text-align: center;
}

@media (max-width: 600px) {
  .p-recruit-single__nav-item a {
    height: 50px;
    font-size: 13px;
  }
}

.p-recruit-single__nav-item--archive a {
  background-color: var(--blue);
  color: var(--white);
  border-color: var(--blue);
}

.p-recruit-single__nav-item a:hover {
  opacity: 0.8;
}

.p-recruit-single__nav-item--prev a:hover,
.p-recruit-single__nav-item--next a:hover {
  background-color: var(--blue);
  color: var(--white);
  border-color: var(--blue);
}

@media (max-width: 768px) {
  .p-recruit-single__nav-item--archive {
    order: 2;
  }

  .p-recruit-single__nav-item--prev {
    order: 1;
  }

  .p-recruit-single__nav-item--next {
    order: 3;
  }
}

/* ========================================
   インタビュー詳細ページ
   ======================================== */
.p-interview-mv {
  position: relative;
  width: 100%;
  padding-top: 130px;
}

@media (max-width: 600px) {
  .p-interview-mv {
    padding-top: 108px;
  }
}

.p-interview-mv__inner {
  position: relative;
  width: 100%;
  aspect-ratio: 1080 / 500;
}

@media (max-width: 1080px) {
  .p-interview-mv__inner {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 600px) {
  .p-interview-mv__inner {
    aspect-ratio: 375 / 250;
  }
}

.p-interview-mv__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.p-interview-mv__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-interview-mv__content {
  position: absolute;
  top: 50%;
  transform: translateY(-35%);
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
}

.p-interview-mv__text-wrap {
  color: var(--white);
  max-width: 800px;
  padding-left: 80px;
}

@media (max-width: 1080px) {
  .p-interview-mv__text-wrap {
    padding-left: 40px;
  }
}

@media (max-width: 600px) {
  .p-interview-mv__text-wrap {
    padding-left: 20px;
  }
}

.p-interview-mv__label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

@media (max-width: 600px) {
  .p-interview-mv__label {
    margin-bottom: 12px;
  }
}

.p-interview-mv__label-dot {
  display: block;
  width: 8px;
  height: 8px;
  background-color: var(--red);
  border-radius: 50%;
}

.p-interview-mv__label-text {
  font-family: var(--font-accent);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
}

.p-interview-mv__cat {
  display: inline-block;
  background-color: var(--white);
  color: var(--blue);
  font-size: 16px;
  font-weight: 700;
  padding: 10px 20px;
  border-radius: 5px;
  margin-bottom: 30px;
  line-height: 1;
}

@media (max-width: 600px) {
  .p-interview-mv__cat {
    font-size: 14px;
    padding: 8px 16px;
    margin-bottom: 20px;
  }
}

.p-interview-mv__ttl {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
}

@media (max-width: 600px) {
  .p-interview-mv__ttl {
    font-size: 18px;
  }
}

.p-interview__body {
  padding-bottom: 40px;
  padding-top: 120px;

}

@media screen and (max-width: 600px) {
  .p-interview__body {
    padding-bottom: 0px;
    padding-top: 30px;
  }
}



.p-interview__inner {
  display: flex;
  gap: 60px;
  align-items: flex-start;
}

@media (max-width: 1080px) {
  .p-interview__inner {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .p-interview__inner {
    flex-direction: column;
    gap: 40px;
  }
}

.p-interview__sidebar {
  width: 45%;
  position: sticky;
  top: 120px;
}

@media (max-width: 768px) {
  .p-interview__sidebar {
    width: 100%;
    position: static;
  }
}

.p-interview__profile-img {
  width: 100%;
  margin-bottom: 25px;
}

.p-interview__profile-img img {
  width: 100%;
  height: auto;
}

.p-interview__profile-role {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 15px;
  line-height: 1;
}

@media screen and (max-width: 600px) {
  .p-interview__profile-role {
    margin-bottom: 10px;
  }
}

.p-interview__profile-year {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 15px;
  line-height: 1;
}

@media screen and (max-width: 600px) {
  .p-interview__profile-year {
    margin-bottom: 10px;
  }
}

.p-interview__profile-name {
  font-size: 24px;
  font-weight: 600;
  display: flex;
  align-items: baseline;
  gap: 15px;
  line-height: 1;
}

@media (max-width: 600px) {
  .p-interview__profile-name {
    font-size: 20px;
  }
}

.p-interview__profile-en {
  font-size: 14px;
  font-weight: 600;
  color: var(--blue);
}

.p-interview__main {
  width: 55%;
}

@media (max-width: 768px) {
  .p-interview__main {
    width: 100%;
  }
}

.p-interview__qa-item {
  margin-bottom: 50px;
}

@media (max-width: 600px) {
  .p-interview__qa-item {
    margin-bottom: 30px;
  }
}

.p-interview__qa-item:last-child {
  margin-bottom: 0;
}

.p-interview__qa-q {
  display: flex;
  align-items: center;
  gap: 15px;
  background-color: var(--white);
  padding: 15px 25px;
  border-radius: 5px;
  font-size: 24px;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 15px;
}

@media (max-width: 600px) {
  .p-interview__qa-q {
    font-size: 16px;
    gap: 8px;
    padding: 12px 15px;
  }
}

.p-interview__qa-img {
  margin-top: 40px;
}

@media screen and (max-width: 600px) {
  .p-interview__qa-img {
    margin-top: 20px;
  }
}

.p-interview__qa-icon {
  flex-shrink: 0;
  width: 30px;
  display: flex;
  align-items: center;
}

.p-interview__qa-icon img {
  width: 100%;
  height: auto;
}

.p-interview__qa-a {
  line-height: 1.8;
  padding-left: 5px;
}

@media (max-width: 600px) {
  .p-interview__qa-a {
    font-size: 14px;
  }
}

.p-interview-other {
  padding: 150px 0;
  padding-bottom: 100px;
}

@media (max-width: 600px) {
  .p-interview-other {
    padding: 100px 0;
    padding-bottom: 64px;
  }
}

.p-interview-other__head {
  margin-bottom: 10px;
}

.p-interview-other__head-ja {
  font-size: 20px;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 5px;
}

.p-interview-other__head-en {
  font-family: var(--font-accent);
  font-size: 60px;
  line-height: 1;
  color: var(--blue);
}

@media (max-width: 600px) {
  .p-interview-other__head-ja {
    font-size: 16px;
  }

  .p-interview-other__head-en {
    font-size: 40px;
  }
}

/* 汎用セクションタイトル（p-interview-other__head と同じスタイル） */


.m-section-head {
  text-align: left;
  margin-bottom: 80px;
}

.m-section-head-ja {
  display: block;
  font-size: 30px;
  font-weight: 500;
  color: var(--blue);
  margin-bottom: 10px;
}

@media screen and (max-width: 600px) {
  .m-section-head-ja {
    font-size: 16px;
  }
}


.m-section-head-en {
  display: block;
  font-family: var(--font-accent);
  font-size: clamp(40px, 8vw, 100px);
  font-weight: 400;
  color: var(--blue);
  line-height: 1;
}

@media (max-width: 768px) {
  .m-section-head {
    margin-bottom: 40px;
  }
}

@media screen and (max-width: 600px) {
  .m-section-head {
    margin-bottom: 28px;
  }
}

.p-interview-other__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

@media (max-width: 1080px) {
  .p-interview-other__grid {
    gap: 20px;
  }
}

@media screen and (max-width: 768px) {
  .p-interview-other__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .p-interview-other__grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 40px;
  }
}

.p-interview-other__card {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}

.p-interview-other__card:hover {
  opacity: 0.8;
}

.p-interview-other__card-img {
  width: 100%;
  margin-bottom: 20px;
}

.p-interview-other__card-img img {
  width: 100%;
  height: auto;
  border-radius: 5px;
}

.p-interview-other__card-ttl {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 10px;
}

.p-interview-other__card-ttl-line {
  display: inline-block;
  background-color: var(--color-primary);
  color: var(--white);
  padding: 4px 10px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 5px;
  border-radius: 3px;
}

.p-interview-other__card-ttl-line:last-child {
  margin-bottom: 0;
}

@media (max-width: 600px) {
  .p-interview-other__card-ttl-line {
    font-size: 16px;
  }
}

.p-interview-other__card-info {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-primary);
}

/* 採用ページ おしらせセクション */
.p-recruit-news-section {
  padding: 80px 0 100px;
  padding-bottom: 40px;
}

@media (max-width: 600px) {
  .p-recruit-news-section {
    padding: 40px 0 60px;
  }
}

.p-recruit-news-section__inner {
  margin-left: 8%;
  padding: 100px 5%;
  background-image: url('../img/recruit/news-bg.webp');
  background-size: contain;
  background-repeat: repeat;
}

@media (max-width: 600px) {
  .p-recruit-news-section__inner {
    margin-left: 0;
    padding: 60px 16px;
  }

  .p-recruit-news-section__btn-wrap {
    margin-top: 32px;
    width: 100%;
  }
}

.p-recruit-news-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

@media (max-width: 600px) {
  .p-recruit-news-section__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 0px;
  }
}

.p-recruit-news-section__head-left {
  flex-shrink: 0;
}

.m-btn-all-articles {
  display: inline-block;
  font-size: 16px;
  padding: 20px 60px;
  border-radius: 100px;
  background-color: var(--white);
  border: 1px solid var(--gray);
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 500;
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}

@media (max-width: 600px) {
  .m-btn-all-articles {
    font-size: 14px;
    padding: 12px 32px;
    width: 100%;
    text-align: center;
  }
}

.m-btn-all-articles:hover {
  background-color: #003C8B;
  color: var(--white);
  border-color: #003C8B;
}

.p-recruit-news-section__slider-wrap {
  position: relative;
  /* 親の右padding(5%)を打ち消し、スライダーを画面右端ピッタリまで表示 */
  margin-right: -5%;
}

@media (max-width: 600px) {
  .p-recruit-news-section__slider-wrap {
    margin-right: -16px;
  }
}

.p-recruit-news-section__list {
  margin-bottom: 30px;
}

.p-recruit-news-section__nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 15px;
  padding-right: 5%;
}

@media (max-width: 600px) {
  .p-recruit-news-section__nav {
    padding-right: 16px;
    margin-top: 18px;
  }
}

.p-recruit-news-section__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: 1px solid var(--gray);
  background-color: var(--white);
  color: var(--color-primary);
  transition: opacity 0.3s, background-color 0.3s, border-color 0.3s, color 0.3s;
}

@media (max-width: 600px) {
  .p-recruit-news-section__nav-btn {
    width: 50px;
    height: 50px;
  }
}

.p-recruit-news-section__nav-btn:hover {
  opacity: 0.8;
}

.p-recruit-news-section__nav-btn svg {
  width: 70px;
  height: 70px;
}

@media (max-width: 600px) {
  .p-recruit-news-section__nav-btn svg {
    width: 50px;
    height: 50px;
  }
}

/* 採用ページ INTERVIEWセクション */
.p-recruit-interview {
  padding: 80px 0 100px;
  overflow: hidden;
  padding-bottom: 20px;
}


@media (max-width: 768px) {
  .p-recruit-interview {
    padding: 60px 0 80px;
  }
}

@media (max-width: 600px) {
  .p-recruit-interview {
    padding: 0px 0 60px;
  }
}

.p-recruit-interview__inner {
  padding: 0 16px;
}

.p-recruit-interview__head {
  margin-bottom: 10px;
}

@media (max-width: 600px) {
  .p-recruit-interview__head {
    margin-bottom: 14px;
  }
}


.p-recruit-interview__title-en {
  font-family: var(--font-accent);
  font-size: 60px;
  line-height: 1;
  color: #003C8B;
}

@media (max-width: 600px) {
  .p-recruit-interview__title-en {
    font-size: 40px;
  }
}

/* スライダーエリア：右余白0で見切れ・拡大画像のすぐ右隣に紹介文 */
.p-recruit-interview__slider-outer {
  width: 100%;
  margin-left: 0;
  padding-top: 120px;
  padding-left: calc((100% - 85vw) / 2 + 16px);
  padding-right: 0;
  overflow: visible;
}

@media (max-width: 600px) {
  .p-recruit-interview__slider-outer {
    padding-top: 0;
    padding-left: 16px;
  }
}

/* スライダー全幅で3枚表示・紹介文は拡大画像のすぐ右隣に絶対配置 */
.p-recruit-interview__slider-content {
  position: relative;
  width: 100%;
  overflow-x: clip;
}

@media (max-width: 600px) {
  .p-recruit-interview__slider-content {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
}

.p-recruit-interview__slider-wrap {
  width: 100%;
  overflow: visible;
}

.p-recruit-interview__slider-wrap .swiper {
  overflow: visible;
}

.p-recruit-interview__text-block {
  position: absolute;
  left: calc(((100% - 20px * 2.8) / 3.8) * 1.3 + 20px);
  top: 0;
  transform: translateY(-100%);
  max-width: 320px;
  min-width: 0;
  text-decoration: none;
  display: block;
  opacity: 1;
  transition: opacity 0.4s ease;
}

@media (max-width: 768px) {
  .p-recruit-interview__text-block {
    left: calc(45.6% + 20px);
  }
}

@media (max-width: 600px) {
  .p-recruit-interview__text-block {
    position: static;
    left: auto;
    top: auto;
    transform: none;
    max-width: 100%;
    padding-right: 16px;
  }
}

.p-recruit-interview__quote {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--white);
  background-color: #313131;
  padding: 8px;
  margin-bottom: 0;
  border-radius: 3px;
  width: fit-content;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .p-recruit-interview__quote {
    font-size: 22px;
    padding: 8px;
  }
}

@media (max-width: 600px) {
  .p-recruit-interview__quote {
    font-size: 18px;
    padding: 6px 10px;
  }
}

.p-recruit-interview__quote+.p-recruit-interview__quote {
  margin-top: 8px;
}

.p-recruit-interview__quote:last-of-type {
  margin-bottom: 12px;
}

.p-recruit-interview__role {
  font-size: 16px;
  font-weight: 400;
  color: var(--black);
  line-height: 1.5;
  width: fit-content;
  white-space: nowrap;
  margin-top: 10px;
}

@media (max-width: 768px) {
  .p-recruit-interview__role {
    font-size: 14px;
  }
}

@media (max-width: 600px) {
  .p-recruit-interview__role {
    font-size: 13px;
    margin-top: 8px;
  }
}


/* 下端揃えにすることで、アクティブだけ高さ1.5倍がはっきり見える */
.p-recruit-interview__slider-wrap .swiper-wrapper {
  align-items: flex-end;
}

/* スライド：3枚表示（通常28%、アクティブ40%）・1:1アスペクト */
.p-recruit-interview__slider-wrap .swiper-slide {
  width: calc((100% - 20px * 2.8) / 3.8);
  min-width: 200px;
  height: auto;
  will-change: transform;
  backface-visibility: hidden;
  transition: transform 800ms cubic-bezier(0.25, 0.1, 0.25, 1);
}

@media (max-width: 768px) {
  .p-recruit-interview__slider-wrap .swiper-slide {
    width: 38%;
    min-width: 160px;
  }
}

@media (max-width: 600px) {
  .p-recruit-interview__slider-wrap .swiper-slide {
    width: 88%;
    min-width: auto;
    transition: none;
  }
}

/* アクティブなスライドの拡大 (1.3倍) */
.p-recruit-interview__slider-wrap .swiper-slide-active {
  transform: scale(1.3);
  transform-origin: left bottom;
  z-index: 2;
}

/* 2枚目以降の押し出し量調整 (3.5枚表示に合わせて再計算) */
.p-recruit-interview__slider-wrap .swiper-slide-active~.swiper-slide {
  transform: translateX(30%);
}

@media (max-width: 768px) {
  .p-recruit-interview__slider-wrap .swiper-slide-active {
    transform: scale(1.2);
  }

  .p-recruit-interview__slider-wrap .swiper-slide-active~.swiper-slide {
    transform: translateX(20%);
  }
}

@media (max-width: 600px) {
  .p-recruit-interview__slider-wrap .swiper-slide-active {
    transform: none;
  }

  .p-recruit-interview__slider-wrap .swiper-slide-active~.swiper-slide {
    transform: none;
  }
}

.p-recruit-interview__slide-inner {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  display: block;
}

@media (max-width: 768px) {
  .p-recruit-interview__slide-inner {
    aspect-ratio: 1 / 1;
  }
}

@media (max-width: 600px) {
  .p-recruit-interview__slide-inner {
    aspect-ratio: 1 / 1;
    border-radius: 8px;
  }
}

/* -------------------------------------------
   DATA
------------------------------------------- */
.p-recruit-data {
  background-color: var(--blue);
  border-radius: 50px;
  padding: 100px 0;
  margin: 100px 0px;
}

@media (max-width: 1080px) {
  .p-recruit-data {
    margin: 80px 0px;
  }
}

@media (max-width: 600px) {
  .p-recruit-data {
    border-radius: 24px;
    padding: 60px 0px;
    margin: 60px 0;
    margin-top: 20px;
  }
}

.p-recruit-data .m-section-head {
  text-align: center;
  margin-bottom: 60px;
}

@media (max-width: 768px) {
  .p-recruit-data .m-section-head {
    margin-bottom: 40px;
  }
}

@media (max-width: 600px) {
  .p-recruit-data .m-section-head {
    margin-bottom: 40px;
  }
}

.p-recruit-data .m-section-head-ja,
.p-recruit-data .m-section-head-en {
  color: var(--white);
}

.p-recruit-data__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px;
}

@media (max-width: 1080px) {
  .p-recruit-data__grid {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .p-recruit-data__grid {
    gap: 30px;
  }
}

@media (max-width: 600px) {
  .p-recruit-data__grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 24px;
  }
}

.p-recruit-data__item-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px;
  margin-top: 60px;
}

@media (max-width: 1080px) {
  .p-recruit-data__item-wrap {
    gap: 40px;
    margin-top: 40px;
  }
}

@media (max-width: 768px) {
  .p-recruit-data__item-wrap {
    gap: 30px;
    margin-top: 30px;
  }
}

@media (max-width: 600px) {
  .p-recruit-data__item-wrap {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-top: 24px;
  }
}

.p-recruit-data__item img {
  width: 100%;
  height: auto;
}

/* -------------------------------------------
   BENEFITS
------------------------------------------- */
.p-recruit-benefits {
  padding-bottom: 100px;
}

@media (max-width: 600px) {
  .p-recruit-benefits {
    padding-bottom: 60px;
  }
}

.p-recruit-benefits__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 64px;
}

@media (max-width: 1080px) {
  .p-recruit-benefits__grid {
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .p-recruit-benefits__grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 30px;
  }
}

.p-recruit-benefits__card {
  background-color: var(--white);
  padding: 50px 60px;
  border-radius: 10px;
}

@media (max-width: 600px) {
  .p-recruit-benefits__card {
    padding: 30px 20px;
  }
}

.p-recruit-benefits__card-head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

.p-recruit-benefits__card-icon {
  width: 40px;
  flex-shrink: 0;
}

.p-recruit-benefits__card-icon img {
  width: 100%;
  height: auto;
}

.p-recruit-benefits__card-title {
  font-size: 24px;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.4;
}

@media (max-width: 600px) {
  .p-recruit-benefits__card-title {
    font-size: 18px;
  }
}

.p-recruit-benefits__card-border {
  width: 50px;
  height: 3px;
  background-color: var(--blue);
  margin: 30px auto;
}

@media (max-width: 600px) {
  .p-recruit-benefits__card-border {
    margin: 20px auto;
  }
}

.p-recruit-benefits__card-text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-primary);
  text-align: left;
  font-weight: 500;

}

@media (max-width: 600px) {
  .p-recruit-benefits__card-text {
    font-size: 15px;
  }
}

/* -------------------------------------------
   RECRUIT BOTTOM IMAGE (Parallax)
------------------------------------------- */
.m-bg-accent {
  position: relative;
  z-index: 1;
}

.m-gb-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-clip-path: inset(0);
  clip-path: inset(0);
}

.m-bg-img {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-size: cover;
  background-position: bottom;
  pointer-events: none;
}

.m-bg-accent--recruit,
.m-gb-inner--recruit {
  height: 50vh;
}

.m-bg-img--recruit {
  background-image: url("../img/recruit/recruit-btm-img.webp");
}

@media (max-width: 600px) {

  .m-bg-accent--recruit,
  .m-gb-inner--recruit {
    height: 30vh;
  }
}

/* -------------------------------------------
   RECRUIT CAREER
------------------------------------------- */
.p-recruit-career {
  padding: 100px 0;
}

@media (max-width: 768px) {
  .p-recruit-career {
    padding: 60px 0;
  }
}

@media (max-width: 600px) {
  .p-recruit-career {
    padding: 40px 0;
  }
}

.p-recruit-career__note {
  font-size: 16px;
  color: var(--color-primary);
  margin-top: 30px;
  margin-bottom: 60px;
}

@media (max-width: 768px) {
  .p-recruit-career__note {
    font-size: 14px;
    margin-bottom: 40px;
  }
}

@media (max-width: 600px) {
  .p-recruit-career__note {
    margin-top: 20px;
    margin-bottom: 32px;
  }
}

.p-recruit-career__timeline {
  position: relative;
}

.p-recruit-career__timeline::before {
  content: "";
  position: absolute;
  top: 0;
  left: 45px;
  bottom: 0;
  width: 0;
  border-left: 2px dotted #003C8B;
}

@media (max-width: 600px) {

  .p-recruit-career__timeline::before {
    left: 16px;
  }
}

.p-recruit-career__step {
  position: relative;
  margin-bottom: 80px;
}

.p-recruit-career__step:last-child {
  margin-bottom: 0;
}

@media (max-width: 600px) {
  .p-recruit-career__step {
    margin-bottom: 40px;
  }
}

.p-recruit-career__label-wrap {
  margin-bottom: 25px;
}

@media (max-width: 600px) {
  .p-recruit-career__label-wrap {
    margin-bottom: 16px;
  }
}

.p-recruit-career__label {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 10px 30px;
  border-radius: 100px;
  color: var(--white);
  font-size: 20px;
  font-weight: 600;
  min-width: 300px;
  position: relative;
  z-index: 1;
}

@media (max-width: 600px) {
  .p-recruit-career__label {
    font-size: 16px;
    min-width: auto;
    width: fit-content;
    padding: 8px 24px;
  }
}

.p-recruit-career__label-sub {
  font-size: 16px;
  margin-left: 4px;
}

@media (max-width: 600px) {
  .p-recruit-career__label-sub {
    font-size: 14px;
  }
}

.p-recruit-career__label--01 {
  background-color: #3780DF;
}

.p-recruit-career__label--02 {
  background-color: #2067C5;
}

.p-recruit-career__label--03 {
  background-color: #003C8B;
}

.p-recruit-career__content {
  padding-left: 80px;
}

@media (max-width: 600px) {
  .p-recruit-career__content {
    padding-left: 30px;
  }
}

.p-recruit-career__item-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 15px;
  line-height: 1.4;
}

@media (max-width: 600px) {
  .p-recruit-career__item-title {
    font-size: 17px;
    margin-bottom: 10px;
  }
}

.p-recruit-career__item-text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .p-recruit-career__item-text {
    font-size: 15px;
  }
}

/* -------------------------------------------
   RECRUIT JOB DESCRIPTION (Accordion)
------------------------------------------- */
.p-recruit-job {
  padding: 100px 0;
}

@media (max-width: 768px) {
  .p-recruit-job {
    padding: 60px 0;
  }
}

.p-recruit-job__list {
  margin-top: 60px;
  margin: 0 auto;
}

@media (max-width: 1080px) {
  .p-recruit-job__list {
    max-width: 90%;
  }
}

@media (max-width: 768px) {
  .p-recruit-job__list {
    margin-top: 40px;
    max-width: 100%;
  }
}

.p-recruit-job__item {
  background-color: var(--white);
  padding: 60px;
  margin-bottom: 40px;
  box-shadow: 5px 5px 10px 0px rgba(0, 0, 0, 0.15);
}

@media (max-width: 768px) {
  .p-recruit-job__item {
    padding: 30px 20px;
  }
}

.p-recruit-job__item:last-child {
  margin-bottom: 0;
}

.p-recruit-job__content {
  padding: 0;
}

.p-recruit-job__detail-list {
  width: 100%;
}

.p-recruit-job__detail-item {
  display: flex;
  padding: 30px 0;
  border-bottom: 1px dashed rgba(163, 163, 163, 1);
}

@media (max-width: 768px) {
  .p-recruit-job__detail-item {
    flex-direction: column;
    padding: 20px 0;
  }
}

@media (max-width: 600px) {
  .p-recruit-job__detail-item {
    padding: 16px 0;
  }
}

.p-recruit-job__detail-label {
  width: 200px;
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 600;
  color: #003C8B;
}

@media (max-width: 768px) {
  .p-recruit-job__detail-label {
    width: 100%;
    margin-bottom: 10px;
  }
}

@media (max-width: 600px) {
  .p-recruit-job__detail-label {
    font-size: 15px;
    margin-bottom: 6px;
  }
}

.p-recruit-job__detail-content {
  flex-grow: 1;
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-primary);
  font-weight: 500;
}

@media (max-width: 600px) {
  .p-recruit-job__detail-content {
    font-size: 14px;
    line-height: 1.6;
  }
}

/* ========================================
    エントリーCTA
    ======================================== */
.l-entry-cta__wrap {
  padding-bottom: 30px;
}

@media screen and (max-width: 600px) {
  .l-entry-cta__wrap {
    padding-bottom: 20px;
  }
}

.l-entry-cta {
  position: relative;
  padding-top: 80px;
  padding-bottom: 56px;
  padding-left: 5%;
  padding-right: 5%;
  overflow: hidden;
  width: 100%;
  border-radius: 10px;
  z-index: 1;
}

@media (max-width: 600px) {
  .l-entry-cta {
    padding-top: 50px;
    padding-bottom: 40px;
  }
}

.l-entry-cta__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}



.l-entry-cta__bg img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.l-entry-cta__inner {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
}

@media (max-width: 768px) {
  .l-entry-cta__inner {
    flex-direction: column;
    gap: 0;
  }
}

.l-entry-cta .m-section-head {
  margin-bottom: 0;
  flex-shrink: 0;
}

.l-entry-cta .m-section-head-ja,
.l-entry-cta .m-section-head-en {
  color: var(--white);
}

@media (max-width: 1080px) {
  .l-entry-cta .m-section-head {
    margin-bottom: 40px;
  }
}

.l-entry-cta__cards {
  display: flex;
  flex-direction: column;
  gap: 34px;
  flex-grow: 1;
  max-width: 560px;
}



@media (max-width: 600px) {
  .l-entry-cta__cards {
    gap: 18px;
    width: 100%;
  }
}

.l-entry-cta__card {
  display: block;
  background-color: var(--white);
  border-radius: 10px;
  padding: 36px 80px;
  text-decoration: none;
  color: var(--color-primary);
  transition: opacity 0.3s;
}

.l-entry-cta__card:hover {
  opacity: 0.8;
}



@media (max-width: 1080px) {
  .l-entry-cta__card {
    padding: 30px 40px;
  }
}

@media (max-width: 600px) {
  .l-entry-cta__card {
    padding: 30px 20px;
  }
}

.l-entry-cta__card-head {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  gap: 50px;
}

.l-entry-cta__card-ttl {
  font-size: 26px;
  font-weight: 600;
  line-height: 1.2;
}

@media screen and (max-width: 1080px) {
  .l-entry-cta__card-ttl {
    font-size: 22px;
  }
}



@media (max-width: 600px) {
  .l-entry-cta__card-ttl {
    font-size: 20px;
  }
}

@media screen and (max-width: 430px) {
  .l-entry-cta__card-head {
    gap: 20px;
    font-size: 18px;
  }
}

.l-entry-cta__card-icon {
  line-height: 1;
}

.l-entry-cta__card-icon--arrow svg {
  width: 45px;
  height: auto;
}

.l-entry-cta__card-icon--link svg {
  width: 25px;
  height: auto;
}

@media screen and (max-width: 600px) {
  .l-entry-cta__card-icon--link svg {
    width: 18px;
  }
}

@media (max-width: 600px) {
  .l-entry-cta__card-icon--arrow svg {
    width: 35px;
  }
}

.l-entry-cta__card-sub {
  font-size: 18px;
  font-weight: 500;
  color: var(--color-primary);
}

@media (max-width: 600px) {
  .l-entry-cta__card-sub {
    font-size: 14px;
  }
}