/*-------post------*/
.archive-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.single-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.breadcrumb {
  background: #1a1a1a;
  padding-inline: 5.55%;
  display: flex;
  padding-top: 10px;
  padding-bottom: 10px;
}
.breadcrumb li::after {
  content: ">";
  margin: 0 1em;
  display: inline-block;
}
.breadcrumb li:last-child::after {
  content: none;
}
.breadcrumb li a,
.breadcrumb li {
  color: #fff;
}
.p-single__body {
  max-width: 950px;
  width: 100%;
  margin-inline: auto;
}
.pagination-area {
  margin-top: clamp(40px, var(--px-80), 80px);
}
.nav-links {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1em;
}
/*-------hd------*/
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}
.l-header__inner {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: clamp(56px, var(--px-90), 90px);
  padding-inline: 5.55%;
}
.fixed-wrap.is-fixed {
  background: rgba(0, 0, 0, 0.85);
}
.c-nav__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(20px, var(--px-40), 40px);
}
.c-nav__item a {
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.06em;
  font-size: clamp(1.4rem, var(--px-20), 2rem);
}
.c-tel {
  position: absolute;
  right: 5.55%;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #000;
  color: #fff;
  padding: 10px 16px;
}
.c-tel:hover {
  opacity: 1;
}
.c-tel__icon {
  display: flex;
}
.c-tel__icon svg {
  width: clamp(20px, var(--px-24), 24px);
  height: auto;
}
.c-tel__num {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  letter-spacing: 0.02em;
  font-size: clamp(1.8rem, var(--px-24), 2.4rem);
}
/*-------telbox（黒い電話ボックス／フッター・本文で再利用）------*/
.c-telbox {
  width: fit-content;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #000;
  color: #fff;
  padding: 12px 28px;
}
.c-telbox:hover {
  opacity: 1;
}
.c-telbox__icon {
  display: flex;
}
.c-telbox__icon svg {
  width: clamp(22px, var(--px-24), 24px);
  height: auto;
}
.c-telbox__num {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.4;
  font-size: clamp(2.2rem, var(--px-32), 3.2rem);
}
/*-------ft-----*/
.l-footer {
  background: #000080;
  color: #fff;
  padding-block: clamp(50px, var(--px-80), 80px);
}
.l-footer__inner {
  padding-inline: 5.55%;
}
.c-footer-nav__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: clamp(16px, var(--px-40), 40px);
  margin-bottom: clamp(24px, var(--px-40), 40px);
}
.c-footer-nav__item a {
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.06em;
  font-size: clamp(1.4rem, var(--px-20), 2rem);
}
.c-footer-lead {
  text-align: center;
  color: #fff;
  letter-spacing: 0.03em;
  font-size: clamp(1.4rem, var(--px-20), 2rem);
  margin-bottom: clamp(14px, var(--px-24), 24px);
}
.l-footer .c-telbox {
  margin-bottom: clamp(28px, var(--px-50), 50px);
}
.c-copyright__text {
  color: #fff;
  letter-spacing: 0.03em;
  font-size: clamp(1.2rem, var(--px-15), 1.5rem);
}
/*-------btn------*/
.c-pagetop__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, var(--px-48), 48px);
  height: clamp(44px, var(--px-48), 48px);
  background: #000;
  color: #fff;
}
.c-pagetop__link:hover {
  opacity: 0.7;
}
.c-pagetop__link svg {
  width: clamp(18px, var(--px-20), 20px);
  height: auto;
}
/*-------SP追従の電話ボタン（PCは非表示）------*/
.c-fixtel {
  display: none; /* PCでは電話ボタン非表示 */
}
@media screen and (max-width: 680px) {
  /* 中央下に固定するコンテナ。中身の幅で自動センタリングされる */
  .c-spfixbar {
    position: fixed;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    z-index: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    gap: 10px;
  }
  /* 電話ボタン（ピル） */
  .c-fixtel {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px 10px 14px;
    background: #000;
    color: #fff;
    line-height: 1;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
  }
  .c-fixtel__icon {
    display: flex;
  }
  .c-fixtel__icon svg {
    width: 22px;
    height: 22px;
  }
  .c-fixtel__num {
    font-family: "EB Garamond", serif;
    font-weight: 700;
    letter-spacing: 0.02em;
    font-size: 1.8rem;
  }
  /* ページトップ：コンテナ内で横並びに（固定・オフセットを解除） */
  #page-top {
    position: static;
    right: auto;
    bottom: auto;
    transform: none;
    z-index: auto;
    display: block;
    opacity: 1 !important;
    visibility: visible !important;
  }
}
/*-------fv------*/
.p-index-fv {
  position: relative;
  overflow: hidden;
}
.p-index-fv__slide {
  min-height: clamp(480px, 45.7vw, 658px); /* 658 / 1440 */
  background-size: cover;
  background-position: center;
}
.p-index-fv__slide--placeholder {
  background-color: #1a1a1a; /* 2・3枚目の画像が入るまでの仮背景 */
}
/* キャッチコピー（縦書き・右上） */
.p-index-fv__catch {
  position: absolute;
  top: clamp(90px, 9.8vw, 141px);
  right: clamp(100px, var(--px-208), 208px);
  z-index: 2;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start; /* せり上がりマスクが伸びないよう上揃え */
  gap: clamp(8px, 1.1vw, 16px);
}
.p-index-fv__catch-line {
  writing-mode: vertical-rl;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.12em;
  color: #fff;
  text-shadow: 0 0 12px rgba(0, 0, 0, 0.8);
  font-size: clamp(2.4rem, 2.78vw, 4rem); /* 40 / 1440 */
}
/* TRUST WORKS ロゴ（左下・透かし）＋ネイビー半透明ボックス */
.p-index-fv__logobox {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
  width: clamp(280px, 35.5vw, 511px); /* 511 / 1440 */
  height: clamp(120px, 14vw, 201px); /* 201 / 1440 */
  background: #000080;
  opacity: 0.66;
}
.p-index-fv__logo {
  position: absolute;
  left: clamp(16px, 1.94vw, 28px);
  bottom: 0;
  z-index: 1;
  font-family: "EB Garamond", serif;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0.06em;
  white-space: nowrap;
  color: #fff;
  opacity: 0.3;
  font-size: clamp(4.4rem, 8.9vw, 12.8rem); /* 128 / 1440 */
}
/*-------sp------*/
@media screen and (max-width: 680px) {
  /* SPはヘッダーバーを追従させない（ハンバーガーボタンだけ固定）。
     is-fixed の黒背景・スライドダウンのアニメも無し */
  .l-header.fixed-wrap,
  .l-header.fixed-wrap.is-fixed {
    position: absolute;
    background: transparent;
    animation: none;
  }
  .l-header__inner {
    justify-content: flex-end;
    min-height: 56px;
  }
  .c-tel {
    display: none;
  }
  #main-menu-container .c-nav__list {
    gap: 2em;
  }
  #main-menu-container .c-nav__item a {
    color: #000;
    font-size: 1.8rem;
  }
}

/*-------もっと見るボタン c-more（本文・カード・パネルで再利用）------*/
.c-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  width: clamp(200px, 15.6vw, 225px);
  padding-block: clamp(10px, var(--px-12), 12px);
  border-top: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  color: rgba(0, 0, 0, 0.8);
  font-weight: 500;
  letter-spacing: 0.03em;
  font-size: clamp(1.4rem, var(--px-16), 1.6rem);
}
.c-more--light {
  color: rgba(255, 255, 255, 0.9);
}
.c-more__arrow {
  position: relative;
  flex: none;
  width: clamp(22px, 2vw, 29px);
  height: 1px;
  background: currentColor;
}
.c-more__arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

/*-------TOP：事業内容 SERVICE------*/
.p-index-service {
  background-size: cover;
  background-position: center;
  padding-block: clamp(50px, var(--px-80), 80px);
}
.p-index-service__inner {
  padding-inline: 5.55%;
}
.p-index-service__head {
  margin-bottom: clamp(30px, var(--px-50), 50px);
}
.p-index-service__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(12px, var(--px-24), 24px);
  max-width: 1156px;
  margin-inline: auto;
}
.p-index-service__card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, var(--px-24), 24px);
  aspect-ratio: 376 / 283;
  padding: 20px;
  border: 1px solid #fff;
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}
.p-index-service__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  transition: 0.25s;
}
.p-index-service__card:hover {
  opacity: 1;
}
.p-index-service__card:hover::before {
  background: rgba(0, 0, 0, 0.5);
}
.p-index-service__card > * {
  position: relative;
  z-index: 1;
}
.p-index-service__card-title {
  font-weight: 600;
  letter-spacing: 0.08em;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.6);
  font-size: clamp(2rem, var(--px-32), 3.2rem);
}
.p-index-service__card .c-more {
  width: clamp(140px, 14vw, 200px);
}

/*-------TOP：会社概要 COMPANY------*/
.p-index-company {
  background-size: cover;
  background-position: center;
  padding-block: clamp(50px, var(--px-90), 90px);
}
.p-index-company__inner {
  padding-inline: 5.55%;
}
.p-index-company__head {
  margin-bottom: clamp(24px, var(--px-40), 40px);
}
/* 見出し＋左テキスト＋右画像のブロックを中央配置 */
.p-index-company__cols {
  display: flex;
  align-items: center;
  gap: clamp(30px, 5vw, 71px);
  max-width: 1106px;
  margin-inline: auto;
  margin-bottom: clamp(30px, var(--px-50), 50px);
}
.p-index-company__left {
  flex: 1 1 auto;
}
.p-index-company__info {
  margin-bottom: clamp(20px, var(--px-30), 30px);
  line-height: 2.2;
  letter-spacing: 0.03em;
  font-size: clamp(1.4rem, var(--px-20), 2rem);
}
/* お電話リード・電話ボックスは左カラム内で中央寄せ */
.p-index-company__tellead {
  margin-bottom: clamp(10px, var(--px-16), 16px);
  text-align: center;
  letter-spacing: 0.03em;
  font-size: clamp(1.4rem, var(--px-20), 2rem);
}
.p-index-company__more {
  margin-block: clamp(24px, var(--px-40), 40px) clamp(30px, var(--px-50), 50px);
  margin-inline: auto;
}
.p-index-company__img {
  flex: 0 0 47%; /* 520 / 1106 */
  aspect-ratio: 520 / 358;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}
.p-index-company__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-index-company__map {
  width: 100%;
  aspect-ratio: 1280 / 490;
  background: #e9e9e9;
}
.p-index-company__map iframe,
.p-index-company__map img {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
}

/*-------TOP：施工事例 OUR CASES（無限ループ・全幅）------*/
.p-index-works {
  overflow: hidden; /* 全幅スライダーのはみ出しを抑える */
  background-size: cover;
  background-position: center;
  padding-block: clamp(50px, var(--px-80), 80px);
}
.p-index-works__panel {
  padding: clamp(40px, var(--px-60), 60px) 0;
  position: relative;
  z-index: 1;
}
.p-index-works__panel::before {
  content: "";
  background: #fff;
  max-width: 1280px;
  width: 85%;
  height: 100%;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.p-index-works__head {
  margin-bottom: clamp(30px, var(--px-50), 50px);
}
.p-index-works__slider {
  margin-block: clamp(24px, var(--px-40), 40px);
}
.p-index-works__more {
  margin-inline: auto;
}

/*-------TOP：求人情報 RECRUIT------*/
.p-index-recruit {
  position: relative;
  background-size: cover;
  background-position: center;
  padding-block: clamp(50px, var(--px-80), 80px);
  overflow: hidden;
}
.p-index-recruit__inner {
  position: relative;
}
.p-index-recruit__panel {
  width: 70%; /* 1009 / 1440 */
  min-height: clamp(360px, 41.7vw, 601px); /* 601 / 1440。画像より大きく */
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(20px, var(--px-30), 30px);
  padding: clamp(40px, var(--px-60), 60px) 15% clamp(40px, var(--px-60), 60px)
    7.2%;
  background: #000080;
  color: #fff;
}
.p-index-recruit__text {
  line-height: 2.2;
  letter-spacing: 0.03em;
  font-size: clamp(1.4rem, var(--px-20), 2rem);
}
.p-index-recruit__img {
  position: absolute;
  right: 5.55%;
  top: 50%;
  transform: translateY(-50%);
  width: 36%; /* 520 / 1440。右へはみ出す */
  aspect-ratio: 520 / 358;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}
.p-index-recruit__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*-------TOP：SP------*/
@media screen and (max-width: 680px) {
  /* FV */
  .p-index-fv__slide {
    min-height: clamp(500px, 150vw, 600px);
  }
  .p-index-fv__catch {
    top: clamp(40px, 15vw, 60px);
    right: auto;
    left: 50%;
    transform: translateX(-50%);
  }
  .p-index-fv__catch-line {
    font-size: clamp(2.4rem, 8.5vw, 3.2rem);
  }
  .p-index-fv__logo {
    font-size: clamp(4.4rem, 17vw, 6.4rem);
  }
  /* 電話ボックスはSPで数字大きめ（32px） */
  .c-telbox__num {
    font-size: clamp(2.4rem, 8.5vw, 3.2rem);
  }
  /* 事業内容：カード縦積み（266px相当） */
  .p-index-service__cards {
    grid-template-columns: 1fr;
    max-width: 280px;
  }
  /* 会社概要：すべて中央、画像は73% */
  .p-index-company__cols {
    flex-direction: column;
    align-items: stretch;
  }
  .p-index-company__img {
    flex: none;
    width: 73%;
    margin-inline: auto;
  }
  .p-index-company__map {
    aspect-ratio: 1 / 1;
  }
  /* 求人：全幅ネイビー、画像はネイビー内で中央 */
  .p-index-recruit__inner {
    display: block;
  }
  .p-index-recruit__panel {
    width: 100%;
    min-height: 0;
    padding: clamp(32px, 8vw, 48px) 6%;
  }
  .p-index-recruit__img {
    position: static;
    transform: none;
    width: 73%;
    margin: clamp(20px, 5vw, 30px) auto 0;
  }
}
/* CSS Document */
