/*-------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------*/
/* 通常時はFVに重なる。スクロール後は .is-fixed が付いて common.css で position:fixed になる */
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 500;
}
.l-header__inner {
  display: flex;
  align-items: center;
  min-height: clamp(64px, 6.94vw, 100px);
  padding-left: clamp(10px, 1.18vw, 17px);
}
.c-logo {
  flex: none;
}
.c-logo__img {
  display: block;
  width: clamp(200px, 28.68vw, 413px);
  height: auto;
}
/* 通常時＝白ヌキロゴ、固定時＝通常ロゴ */
.c-logo__img--color {
  display: none;
}
.l-header.is-fixed .c-logo__img--white {
  display: none;
}
.l-header.is-fixed .c-logo__img--color {
  display: block;
}
.l-header__right {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: clamp(2px, 0.69vw, 10px);
  padding-right: clamp(16px, 2.57vw, 37px);
}
.c-header-tel {
  display: flex;
  align-items: center;
  gap: clamp(4px, 0.42vw, 6px);
  color: var(--b-navy);
}
.c-header-tel__icon {
  flex: none;
  width: clamp(20px, 2.22vw, 32px);
  height: auto;
}
.c-header-tel__num {
  font-size: clamp(1.8rem, 2.22vw, 3.2rem);
  line-height: 1.2;
}
.c-nav__list {
  display: flex;
  gap: clamp(14px, 3.26vw, 47px);
}
.c-nav a {
  display: block;
  text-align: center;
}
.c-nav__en {
  display: block;
  font-family: var(--b-font-en);
  color: #99e3ff;
  font-size: clamp(1.1rem, 1.04vw, 1.5rem);
  line-height: 1.4;
}
.c-nav__ja {
  display: block;
  color: #fff;
  font-size: clamp(1.3rem, 1.25vw, 1.8rem);
  line-height: 1.4;
}
/* 追従時：白70%の下地に合わせて文字色を反転 */
.l-header.is-fixed {
  background: rgba(255, 255, 255, 0.7);
}
.l-header.is-fixed .c-nav__en {
  color: var(--b-blue);
}
.l-header.is-fixed .c-nav__ja {
  color: var(--b-color);
}
/* 下層は最初から白70%の下地が乗る（カンプの Rectangle 8） */
body:not(.home) .l-header {
  background: rgba(255, 255, 255, 0.7);
}
body:not(.home) .c-logo__img--white {
  display: none;
}
body:not(.home) .c-logo__img--color {
  display: block;
}
body:not(.home) .c-nav__en {
  color: var(--b-blue);
}
body:not(.home) .c-nav__ja {
  color: var(--b-color);
}
.c-header-contact {
  flex: none;
  align-self: stretch;
  display: grid;
  place-content: center;
  justify-items: center;
  width: clamp(72px, 6.94vw, 100px);
  padding: clamp(6px, 0.83vw, 12px) 2px;
  background: var(--b-navy);
  color: #fff;
  text-align: center;
}
.c-header-contact__icon {
  width: clamp(22px, 2.22vw, 32px);
  height: auto;
  margin-bottom: clamp(5px, 0.69vw, 10px);
}
.c-header-contact__en {
  display: block;
  font-family: var(--b-font-en);
  font-size: clamp(1rem, 0.97vw, 1.4rem);
  line-height: 1.2;
  letter-spacing: 0;
}
.c-header-contact__ja {
  display: block;
  font-size: clamp(1.1rem, 1.11vw, 1.6rem);
  line-height: 1.2;
  letter-spacing: 0;
  white-space: nowrap;
}
/*-------ft-----*/
/* COMPANY / CONTACT（全ページ共通） */
.l-ftparts {
  padding-block: clamp(60px, 8.4vw, 121px) clamp(60px, 8.13vw, 117px);
  background:
    linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)),
    url(../img/ft-bg.jpg) center / cover no-repeat;
  color: #fff;
  margin-top: clamp(60px, var(--px-80), 80px);
}
.l-ftparts__inner {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
/* 中央の縦罫（装飾） */
.l-ftparts__inner::before {
  content: "";
  position: absolute;
  top: -20px;
  bottom: -14px;
  left: 50%;
  width: 1px;
  background: rgba(255, 255, 255, 0.6);
}
.c-ftinfo {
  width: clamp(280px, 33.68vw, 485px);
  margin-inline: auto;
}
.c-ftinfo .c-title__en {
  --en-w: 358;
}
.c-ftinfo__list {
  margin-top: clamp(20px, 2.92vw, 42px);
  font-size: clamp(1.3rem, 1.11vw, 1.6rem);
  line-height: 1.45;
}
.c-ftinfo__list .row {
  gap: clamp(8px, 1.67vw, 24px);
  padding-block: clamp(8px, 0.83vw, 12px);
  border-bottom: 1px dotted rgba(255, 255, 255, 0.7);
}
.c-ftinfo__list dt {
  flex: none;
  width: clamp(64px, 6.94vw, 100px);
}
.c-ftinfo__list a {
  color: inherit;
}
.c-ftinfo__btn {
  margin-top: clamp(24px, 3.4vw, 49px);
}
.c-ftcontact {
  width: clamp(280px, 29.93vw, 431px);
  margin-inline: auto;
}
.c-ftcontact .c-title__en {
  --en-w: 330;
}
.c-ftcontact__lead {
  margin-top: clamp(14px, 1.46vw, 21px);
}
.c-ftcontact__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 1.25vw, 18px);
  width: clamp(250px, 22.22vw, 320px);
  min-height: clamp(60px, 5.42vw, 78px);
  margin-inline: auto;
  padding: 0.5em 1em;
  color: #fff;
}
.c-ftcontact__btn--tel {
  margin-top: clamp(30px, 4.79vw, 69px);
  background: var(--b-green-border);
}
.c-ftcontact__btn--mail {
  margin-top: clamp(20px, 3.13vw, 45px);
  background: var(--b-navy);
}
/* 矢印の無いボタン（TEL / メール / ヘッダーCONTACT / PAGE TOP）は
   inset box-shadow で地色だけを沈ませる。文字は暗くならず、
   緑・紺どちらの地色にも同じ指定で効く */
.c-ftcontact__btn:hover,
.c-header-contact:hover,
.c-pagetop__link:hover,
.c-footer-icons__item:hover {
  opacity: 1;
  box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.18);
}
.c-ftcontact__icon {
  flex: none;
  width: clamp(24px, 2.22vw, 32px);
  height: auto;
}
.c-ftcontact__num {
  font-size: clamp(2rem, 2.22vw, 3.2rem);
  line-height: 1.2;
}
.c-ftcontact__label {
  display: block;
  text-align: center;
  line-height: 1.2;
}
.c-ftcontact__en {
  display: block;
  font-family: var(--b-font-en);
  font-size: clamp(1.1rem, 0.97vw, 1.4rem);
}
.c-ftcontact__ja {
  display: block;
  font-size: clamp(1.7rem, 1.67vw, 2.4rem);
}

/* MAP */
.l-map {
  height: clamp(220px, 27.01vw, 389px);
}
.l-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* フッター本体 */
.l-footer {
  padding-top: clamp(30px, 3.06vw, 44px);
}
.l-footer__inner {
  display: flex;
  align-items: flex-start;
  gap: clamp(20px, 5.76vw, 83px);
  padding-bottom: clamp(30px, 3.89vw, 56px);
}
.l-footer__brand {
  flex: none;
}
.c-logo-ft img {
  display: block;
  width: clamp(220px, 27.78vw, 400px);
  height: auto;
}
.c-footer-hours {
  margin-top: clamp(14px, 1.6vw, 23px);
  padding-left: clamp(10px, 2.85vw, 41px);
  font-size: clamp(1.3rem, 1.11vw, 1.6rem);
  line-height: 1.45;
}
.c-footer-hours .row {
  gap: 1em;
}
.c-footer-hours dt {
  flex: none;
  width: clamp(56px, 4.44vw, 70px);
}
.c-footer-sns {
  flex: none;
  margin-top: clamp(20px, 3.4vw, 49px);
}
.c-footer-sns img {
  display: block;
  width: clamp(40px, 3.89vw, 56px);
  height: auto;
}
.c-footer-nav {
  margin-top: clamp(20px, 4.38vw, 63px);
  margin-left: auto;
}
.c-footer-nav__list {
  display: flex;
  gap: clamp(14px, 3.13vw, 45px);
}
.c-footer-nav a {
  display: block;
  text-align: center;
}
.c-footer-nav__en {
  display: block;
  font-family: var(--b-font-en);
  color: var(--b-navy);
  font-size: clamp(1.1rem, 0.97vw, 1.4rem);
  line-height: 1.4;
}
.c-footer-nav__ja {
  display: block;
  font-size: clamp(1.3rem, 1.11vw, 1.6rem);
  line-height: 1.4;
}

/* PAGE TOP（common.css で fixed 配置ずみ） */
.c-pagetop__link {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(56px, 4.86vw, 70px);
  aspect-ratio: 1;
  padding-top: clamp(8px, 1.11vw, 16px);
  border-radius: 50%;
  background: var(--b-green);
  color: #fff;
  font-family: var(--b-font-en);
  font-weight: 700;
  font-size: clamp(1.1rem, 1.11vw, 1.6rem);
  line-height: 1.05;
  text-align: center;
}
.c-pagetop__link::before {
  content: "";
  position: absolute;
  top: clamp(12px, 1.32vw, 19px);
  left: 50%;
  translate: -50% 0;
  width: clamp(9px, 0.83vw, 12px);
  aspect-ratio: 1;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  rotate: -45deg;
}
.c-copyright {
  background: var(--b-navy);
  color: #fff;
  padding-block: clamp(14px, 1.88vw, 27px);
  font-size: clamp(1.3rem, 1.11vw, 1.6rem);
  line-height: 1.45;
}
/*-------btn------*/
/*-------fv------*/
/* スライダーは通常フローのまま。高さは画像が決める */
.p-index-fv {
  position: relative;
  overflow: hidden;
}
.p-index-fv__img {
  display: block;
  width: 100%;
  height: min(63.2vw, 100svh);
  object-fit: cover;
}
/* 写真に乗せる黒30% */
.p-index-fv::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.3);
}
.p-index-fv__catch {
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  z-index: 2;
}
/* 飾りの楕円。キャッチコピーの重ね装飾なので absolute で可 */
.p-index-fv__deco {
  position: absolute;
  top: calc(50% + 2.9vw);
  left: 50%;
  translate: -50% -50%;
  width: clamp(330px, 51.03vw, 735px);
  max-width: none;
  height: auto;
}
.p-index-fv__copy {
  position: relative;
  color: #fff;
  font-size: clamp(2.8rem, 4.44vw, 6.4rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-align: center;
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
.p-index-fv__row {
  display: block;
}
/* 送り仮名は一回り小さく（Figma: 64px / 50px） */
.p-index-fv__copy small {
  font-size: 0.78em;
}
/* 青文字は白フチ付き。paint-order で線を文字の下に描くので字が痩せない */
.p-index-fv__copy em {
  color: var(--b-blue);
  -webkit-text-stroke: 0.09em #fff;
  paint-order: stroke fill;
}

/*-------about------*/
.p-index-about {
  position: relative;
  color: #fff;
  padding-block: clamp(80px, 11.53vw, 166px) clamp(80px, 13.89vw, 200px);
}
/* 紺ベース（右下がり）。写真が紺の外にはみ出すのでセクションごと切り抜かない */
.p-index-about__base {
  position: absolute;
  inset: 0;
  background: var(--b-navy);
}
/* 写真は紺と逆向き（右上がり）に傾く。左下と右上で紺からはみ出すのが正 */
.p-index-about__photo {
  position: absolute;
  inset: clamp(20px, 3.33vw, 48px) 0;
  background:
    linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)),
    url(../img/about.jpg) center / cover no-repeat;
  clip-path: polygon(0 5.7vw, 100% 0, 100% calc(100% - 5.7vw), 0 100%);
}
.p-index-about__inner {
  position: relative;
}
.p-index-about .c-title__en {
  --en-w: 325;
}
.p-index-about .c-title__line {
  margin-top: clamp(20px, 2.71vw, 39px);
}
.p-index-about__text {
  max-width: clamp(300px, 64.86vw, 934px);
  margin: clamp(30px, 4.44vw, 64px) auto 0;
}

/*-------business------*/
.p-index-business {
  padding-block: clamp(40px, 2.85vw, 41px) clamp(60px, 6.94vw, 100px);
}
.p-index-business .c-title__en {
  --en-w: 290;
}
.p-index-business__lead {
  max-width: clamp(300px, 62.57vw, 901px);
  margin: clamp(30px, 3.82vw, 55px) auto 0;
  text-align: center;
}
/* 見出し「基礎工事」の見た目は sub.css の .c-headline。ここでは位置だけ */
.p-index-business__cat {
  margin-top: clamp(30px, 3.75vw, 54px);
}
.p-index-business__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px, 7.01vw, 101px);
  max-width: clamp(300px, 64.38vw, 927px);
  margin: clamp(40px, 4.65vw, 67px) auto 0;
}
.p-index-business__thumb {
  display: block;
  width: 100%;
  aspect-ratio: 413 / 287;
  object-fit: cover;
}
.p-index-business__label {
  background: var(--b-navy);
  color: #fff;
  text-align: center;
  font-size: clamp(1.7rem, 1.67vw, 2.4rem);
  line-height: 1.7;
  padding: clamp(8px, 0.9vw, 13px) 0.5em;
}
.p-index-business__card--nuno .p-index-business__label {
  background: var(--b-green-deep);
}
.p-index-business__btn {
  margin-top: clamp(40px, 4.65vw, 67px);
}

/*-------area------*/
.p-index-area {
  background: url(../img/area-bg.jpg) center / cover no-repeat;
  padding-block: clamp(60px, 6.18vw, 89px) clamp(60px, 6.53vw, 94px);
}
.p-index-area .c-title__en {
  --en-w: 180;
}
.p-index-area__lead {
  margin-top: clamp(20px, 2.85vw, 41px);
  text-align: center;
  line-height: 1.6;
}
/* 日本地図・吹き出し・東海3県は1枚のWebPに合成ずみ */
.p-index-area__map {
  width: clamp(300px, 60.63vw, 873px);
  margin: clamp(20px, 2.5vw, 36px) auto 0;
}
.p-index-area__map img {
  display: block;
  width: 100%;
  height: auto;
}

/*-------recruit------*/
.p-index-recruit {
  padding-top: clamp(30px, 3.05vw, 44px);
}
.p-index-recruit__top {
  position: relative;
  color: #fff;
}
/* 紺ベース。写真が上下にはみ出すので、ベースだけを別レイヤーにして切り抜く */
.p-index-recruit__base {
  position: absolute;
  left: 0;
  right: 0;
  top: clamp(6px, 0.76vw, 11px);
  bottom: clamp(20px, 2.78vw, 40px);
  background: var(--b-navy);
}
.p-index-recruit__inner {
  position: relative;
  display: grid;
  grid-template-columns: 53.33% 38.06%;
  align-items: center;
}
.p-index-recruit__body {
  width: clamp(280px, 31.53vw, 454px);
  margin-inline: auto;
}
.p-index-recruit .c-title__en {
  --en-w: 266;
}
.p-index-recruit__text {
  margin-top: clamp(30px, 4.65vw, 67px);
  font-weight: 700;
}
.p-index-recruit__btn {
  margin-top: clamp(30px, 2.92vw, 42px);
}
.p-index-recruit__photo {
  display: block;
  width: 100%;
  aspect-ratio: 548 / 774;
  object-fit: cover;
}
/* 格子背景 + 紹介動画 */
.p-index-recruit__movie {
  position: relative;
  margin-top: clamp(20px, 2.92vw, 42px);
  padding-top: clamp(8px, 1.11vw, 16px);
}
.p-index-recruit__movie-bg {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: clamp(160px, 24.03vw, 346px);
  background: url(../img/recruit-grid.png) center / cover no-repeat;
  opacity: 0.54;
}
.p-index-recruit__movie-inner {
  position: relative;
  width: clamp(300px, 53.75vw, 774px);
  margin-inline: auto;
}
.p-index-recruit__movie-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 774 / 436;
  object-fit: cover;
}
/*-------ipad----*/
@media screen and (max-width: 1180px) {
  .l-header__right {
    padding-right: 16px;
  }
  .c-nav__list {
    gap: 20px;
  }
}
/*-------ipad-air----*/
@media screen and (max-width: 820px) {
  .p-index-recruit__body {
    width: min(90%, 454px);
  }
  /* 横幅が足りなくなるのでTELは非表示（メールボタンは残す） */
  .c-header-tel {
    display: none;
  }
  .l-footer__inner {
    flex-wrap: wrap;
    gap: 30px;
  }
  .c-footer-nav {
    margin: 0;
    width: 100%;
  }
  .c-footer-nav__list {
    justify-content: space-between;
  }
}
/*-------iphone----*/
@media screen and (max-width: 680px) {
  :root {
    /* ABOUTの傾き（SPカンプ 47px / 375） */
    --b-slant: 12.53vw;
    /* 本文の行送りは SPカンプが 16px / 35px */
    --b-lh: 2.19;
  }
  /* SPはヘッダー自体を追従させない。固定するのはハンバーガーだけ。
     is-fixed は JS が付けるが SP では見た目を一切変えない。
     common.css の .fixed-wrap / .fixed-wrap.is-fixed を上書きするため
     .l-header.is-fixed まで含めて詳細度を揃えている */
  .l-header,
  .l-header.is-fixed {
    position: absolute;
    background: none;
    animation: none;
    /* ドロワーとハンバーガーを下部固定バー(701)より前に出す */
    z-index: 800;
  }
  /* ロゴは白ヌキのまま固定。下層も同じ扱いにする */
  .l-header.is-fixed .c-logo__img--white,
  body:not(.home) .c-logo__img--white {
    display: block;
  }
  .l-header.is-fixed .c-logo__img--color,
  body:not(.home) .c-logo__img--color {
    display: none;
  }
  body:not(.home) .l-header {
    background: none;
  }
  /* ロゴ199px / ハンバーガー44px（右3px）だけの構成 */
  .l-header__inner {
    min-height: 50px;
    padding: 0 47px 0 1.33vw;
  }
  .c-logo__img {
    width: 53.07vw;
  }
  .l-header__right {
    padding-right: 0;
  }
  .c-header-tel {
    display: none;
  }
  /* ドロワー（#main-menu-container）は薄いグレー地なので文字色を戻す */
  .c-nav__en,
  .l-header.is-fixed .c-nav__en {
    color: var(--b-blue);
  }
  .c-nav__ja,
  .l-header.is-fixed .c-nav__ja {
    color: var(--b-color);
  }
  .c-nav__list {
    gap: 24px;
  }
  .c-header-contact {
    display: none;
  }
  /* 見出しの日本語サブは SP では罫線から少し離す */
  .c-title__ja {
    margin-top: 4vw;
  }

  /* ---- FV : 55px/40px で4行に折り返す ---- */
  .p-index-fv__img {
    height: 100svh;
  }
  .p-index-fv__catch {
    top: 55%;
    width: 94.67vw;
  }
  .p-index-fv__copy {
    font-size: 14.67vw;
    line-height: 1.42;
  }
  .p-index-fv__copy small {
    font-size: 0.727em;
  }
  .p-index-fv__deco {
    width: 97.2vw;
    top: calc(50% + 9.73vw);
  }

  /* ---- ABOUT ---- */
  .p-index-about {
    padding-block: 27.2vw 14.6vw;
  }
  .p-index-about__photo {
    inset: 3.2vw 0;
    clip-path: polygon(0 18.27vw, 100% 0, 100% calc(100% - 21.73vw), 0 100%);
  }
  .p-index-about .c-title__line {
    margin-top: 12.1vw;
  }
  .p-index-about__text {
    max-width: 88.8vw;
    margin-block: 14.93vw;
  }

  /* ---- BUSINESS ---- */
  .p-index-business {
    padding-block: 60px 80px;
  }
  .p-index-business .c-title__line {
    margin-top: 9.7vw;
  }
  .p-index-business__lead {
    max-width: 88.5vw;
    margin-top: 10.67vw;
    text-align: left;
  }
  .p-index-business__cat {
    margin-top: 20.8vw;
  }
  .p-index-business__list {
    grid-template-columns: 1fr;
    gap: 10.7vw;
    max-width: 89.33vw;
    margin-top: 10.67vw;
  }
  .p-index-business__thumb {
    aspect-ratio: 335 / 233;
  }
  .p-index-business__btn {
    margin-top: 14.8vw;
  }

  /* ---- AREA ---- */
  .p-index-area {
    padding-block: 15.5vw 13.4vw;
    background: url(../img/area-bg-sp.jpg) center / cover no-repeat;
  }
  .p-index-area__lead {
    margin-top: 8.3vw;
  }
  /* 地図はSP用の縦長WebPに差し替わる（picture の source で切替） */
  .p-index-area__map {
    width: 94.67vw;
    margin-top: 5.1vw;
  }

  /* ---- RECRUIT : 写真はテキストの下、紺ベースから下にはみ出す ---- */
  .p-index-recruit {
    padding-top: 11.2vw;
  }
  .p-index-recruit__base {
    --b-slant: 18.27vw;
    top: 0;
    bottom: 19.6vw;
  }
  .p-index-recruit__inner {
    grid-template-columns: 1fr;
    padding-top: 19.7vw;
  }
  .p-index-recruit__body {
    width: 89.6vw;
  }
  .p-index-recruit .c-title__line {
    margin-top: 12.4vw;
  }
  .p-index-recruit__text {
    margin-top: 9.07vw;
  }
  .p-index-recruit__btn {
    margin-top: 11.5vw;
  }
  .p-index-recruit__photo {
    width: 89.33vw;
    margin: 14.4vw auto 0;
    aspect-ratio: 335 / 474;
  }
  .p-index-recruit__movie {
    margin-top: 16.3vw;
    padding-top: 0;
  }
  .p-index-recruit__movie-bg {
    height: 115%;
  }
  .p-index-recruit__movie-inner {
    width: 89.33vw;
  }
  /* ---- COMPANY / CONTACT : 1カラムに積む ---- */
  .l-ftparts {
    padding-block: 14.9vw 15.2vw;
  }
  .l-ftparts__inner {
    grid-template-columns: 1fr;
    gap: 30.1vw;
  }
  .l-ftparts__inner::before {
    content: none;
  }
  .c-ftinfo,
  .c-ftcontact {
    width: 89.33vw;
  }
  .c-ftinfo .c-title__line,
  .c-ftcontact .c-title__line {
    margin-top: 10.8vw;
  }
  .c-ftinfo__list {
    margin-top: 9.3vw;
  }
  /* dl .row は common.css で縦積みになるので、ラベル幅を解除 */
  .c-ftinfo__list dt,
  .c-footer-hours dt {
    width: auto;
    font-weight: 700;
  }
  .c-ftinfo__list .row {
    gap: 0;
  }
  .c-ftinfo__btn {
    margin-top: 10.7vw;
  }
  .c-ftcontact__lead {
    margin-top: 7.7vw;
  }
  .c-ftcontact__btn {
    width: 85.33vw;
  }
  .c-ftcontact__btn--tel {
    margin-top: 7.7vw;
  }
  .c-ftcontact__btn--mail {
    margin-top: 12.5vw;
  }

  /* ---- MAP ---- */
  .l-map {
    height: 83.7vw;
  }

  /* ---- フッター ---- */
  .l-footer {
    padding-top: 12.8vw;
  }
  .l-footer__inner {
    flex-direction: column;
    align-items: center;
    gap: 0;
    text-align: center;
    padding-bottom: 17.1vw;
  }
  .c-logo-ft img {
    width: 89.33vw;
  }
  .c-footer-hours {
    margin-top: 9.6vw;
    padding-left: 0;
  }
  .c-footer-hours .row {
    gap: 0;
  }
  .c-footer-sns {
    margin: 11.7vw 0 0;
  }
  .c-footer-nav {
    width: 72.27vw;
    margin: 13.6vw 0 0;
  }
  .c-footer-nav__list {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8.3vw 12.5vw;
  }
  .c-copyright {
    padding-block: 6.3vw;
  }

  /* ---- 下部固定バー（TEL / お問い合わせ / PAGE TOP） ---- */
  .c-footer-icons {
    /* 右端の PAGE TOP ぶんを空けておく */
    padding-right: 17.85vw;
  }
  .c-footer-icons__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 18.13vw;
    color: #fff;
    line-height: 1;
    letter-spacing: 0.06em;
  }
  .c-footer-icons__item--tel {
    flex: 176;
    background: #0634a9;
  }
  .c-footer-icons__item--mail {
    flex: 131;
    background: #052f9a;
  }
  .c-footer-icons__icon {
    width: 6.93vw;
    height: auto;
  }
  .c-footer-icons__item--mail .c-footer-icons__icon {
    width: 8vw;
  }
  .c-footer-icons__text {
    font-size: 1.6rem;
  }
  .c-footer-icons__item--tel .c-footer-icons__text {
    font-size: 2rem;
  }
  /* PAGE TOP は固定バーの右端に常時表示（is-show の出し分けはしない） */
  #page-top {
    right: 0;
    bottom: 0;
    opacity: 1;
    visibility: visible;
    transition: none;
  }
  .c-pagetop__link {
    width: 17.85vw;
  }
  /* 固定バーに本文が隠れないぶんの余白 */
  body {
    padding-bottom: 18.13vw;
  }
}
/* CSS Document */
