@charset "UTF-8";
/* _home-bg.scss
   背景画像 共通mixin + ページ別背景
*/
/* 背景画像共通 mixin */
/* TOP */
.home__bg--top {
  background-image: url(/img/home/top_pc.webp);
  background-image: -webkit-image-set(url(/img/home/top_pc.webp) 1x, url(/img/home/top_pc@2x.webp) 2x);
  background-image: image-set(url(/img/home/top_pc.webp) 1x, url(/img/home/top_pc@2x.webp) 2x);
}
@media (max-width: 767px) {
  .home__bg--top {
    background-image: url(/img/home/top_sp.webp);
    background-image: -webkit-image-set(url(/img/home/top_sp.webp) 1x, url(/img/home/top_sp@2x.webp) 2x);
    background-image: image-set(url(/img/home/top_sp.webp) 1x, url(/img/home/top_sp@2x.webp) 2x);
  }
}

/* history */
.home__bg--history {
  background-image: url(/img/history/history_pc.webp);
  background-image: -webkit-image-set(url(/img/history/history_pc.webp) 1x, url(/img/history/history_pc@2x.webp) 2x);
  background-image: image-set(url(/img/history/history_pc.webp) 1x, url(/img/history/history_pc@2x.webp) 2x);
}
@media (max-width: 767px) {
  .home__bg--history {
    background-image: url(/img/history/history_sp.webp);
    background-image: -webkit-image-set(url(/img/history/history_sp.webp) 1x, url(/img/history/history_sp@2x.webp) 2x);
    background-image: image-set(url(/img/history/history_sp.webp) 1x, url(/img/history/history_sp@2x.webp) 2x);
  }
}

/* About */
.home__bg--about {
  background-image: url(/img/about/about_pc.webp);
  background-image: -webkit-image-set(url(/img/about/about_pc.webp) 1x, url(/img/about/about_pc@2x.webp) 2x);
  background-image: image-set(url(/img/about/about_pc.webp) 1x, url(/img/about/about_pc@2x.webp) 2x);
}
@media (max-width: 767px) {
  .home__bg--about {
    background-image: url(/img/about/about_sp.webp);
    background-image: -webkit-image-set(url(/img/about/about_sp.webp) 1x, url(/img/about/about_sp@2x.webp) 2x);
    background-image: image-set(url(/img/about/about_sp.webp) 1x, url(/img/about/about_sp@2x.webp) 2x);
  }
}

/* 営業時間 */
.home__bg--hours {
  background-image: url(/img/hours/hour_pc.webp);
  background-image: -webkit-image-set(url(/img/hours/hour_pc.webp) 1x, url(/img/hours/hour_pc@2x.webp) 2x);
  background-image: image-set(url(/img/hours/hour_pc.webp) 1x, url(/img/hours/hour_pc@2x.webp) 2x);
}
@media (max-width: 767px) {
  .home__bg--hours {
    background-image: url(/img/hours/hour_sp.webp);
    background-image: -webkit-image-set(url(/img/hours/hour_sp.webp) 1x, url(/img/hours/hour_sp@2x.webp) 2x);
    background-image: image-set(url(/img/hours/hour_sp.webp) 1x, url(/img/hours/hour_sp@2x.webp) 2x);
  }
}

/* メニュー */
.home__bg--menu {
  background-image: url(/img/menu/menu_pc.webp);
  background-image: -webkit-image-set(url(/img/menu/menu_pc.webp) 1x, url(/img/menu/menu_pc@2x.webp) 2x);
  background-image: image-set(url(/img/menu/menu_pc.webp) 1x, url(/img/menu/menu_pc@2x.webp) 2x);
}
@media (max-width: 767px) {
  .home__bg--menu {
    background-image: url(/img/menu/menu_sp.webp);
    background-image: -webkit-image-set(url(/img/menu/menu_sp.webp) 1x, url(/img/menu/menu_sp@2x.webp) 2x);
    background-image: image-set(url(/img/menu/menu_sp.webp) 1x, url(/img/menu/menu_sp@2x.webp) 2x);
  }
}

/* アクセス */
.home__bg--access {
  background-image: url(/img/access/access_pc.webp);
  background-image: -webkit-image-set(url(/img/access/access_pc.webp) 1x, url(/img/access/access_pc@2x.webp) 2x);
  background-image: image-set(url(/img/access/access_pc.webp) 1x, url(/img/access/access_pc@2x.webp) 2x);
}
@media (max-width: 767px) {
  .home__bg--access {
    background-image: url(/img/access/access_sp.webp);
    background-image: -webkit-image-set(url(/img/access/access_sp.webp) 1x, url(/img/access/access_sp@2x.webp) 2x);
    background-image: image-set(url(/img/access/access_sp.webp) 1x, url(/img/access/access_sp@2x.webp) 2x);
  }
}

/* リクルート */
.home__bg--recruit {
  background-image: url(/img/recruit/recruit_pc.webp);
  background-image: -webkit-image-set(url(/img/recruit/recruit_pc.webp) 1x, url(/img/recruit/recruit_pc@2x.webp) 2x);
  background-image: image-set(url(/img/recruit/recruit_pc.webp) 1x, url(/img/recruit/recruit_pc@2x.webp) 2x);
}
@media (max-width: 767px) {
  .home__bg--recruit {
    background-image: url(/img/recruit/recruit_sp.webp);
    background-image: -webkit-image-set(url(/img/recruit/recruit_sp.webp) 1x, url(/img/recruit/recruit_sp@2x.webp) 2x);
    background-image: image-set(url(/img/recruit/recruit_sp.webp) 1x, url(/img/recruit/recruit_sp@2x.webp) 2x);
  }
}

/* サービス */
.home__bg--service {
  background-image: url(/img/service/service_pc.webp);
  background-image: -webkit-image-set(url(/img/service/service_pc.webp) 1x, url(/img/service/service_pc@2x.webp) 2x);
  background-image: image-set(url(/img/service/service_pc.webp) 1x, url(/img/service/service_pc@2x.webp) 2x);
}
@media (max-width: 767px) {
  .home__bg--service {
    background-image: url(/img/service/service_sp.webp);
    background-image: -webkit-image-set(url(/img/service/service_sp.webp) 1x, url(/img/service/service_sp@2x.webp) 2x);
    background-image: image-set(url(/img/service/service_sp.webp) 1x, url(/img/service/service_sp@2x.webp) 2x);
  }
}

/* ========================================
   _home-common.scss
   ホーム系ページ共通レイアウト
   - SP：スクロールOK
   - PC：1画面固定（低い画面だけ本文スクロール）
   ======================================== */
/* ========================================
   ルート
   ======================================== */
.home {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  color: #fff;
  /* SP：全ページスクロールOK */
}
@media (max-width: 767px) {
  .home {
    overflow: auto;
  }
}
.home {
  /* PC：1画面固定 */
}
@media (min-width: 768px) {
  .home {
    height: 100svh;
    min-height: auto;
    overflow: hidden;
  }
}

/* ========================================
   背景
   ======================================== */
.home__bg {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  filter: brightness(1.05) saturate(1.05);
  z-index: 1;
}

/* 前面レイヤー */
.home__logo,
.home__topics,
.home__about,
.home__nav,
.home__copy {
  position: relative;
  z-index: 3;
}

/* ========================================
   ロゴ
   ======================================== */
.home__logo {
  /* PC */
  position: absolute;
  left: clamp(16px, 2.1vw, 36px);
  top: clamp(10px, 2vw, 20px);
  display: grid;
  place-items: start;
  text-decoration: none;
}
.home__logo img {
  width: min(20vw, 180px);
  height: auto;
}
.home__logo:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.5333333333);
  outline-offset: 4px;
}
.home__logo {
  /* SP：中央配置（TOPなど） */
}
@media (max-width: 767px) {
  .home__logo {
    left: 50%;
    top: 50%;
    translate: -50% -50%;
    width: min(65.3vw, 320px);
  }
  .home__logo img {
    max-width: none;
    width: 100%;
    height: auto;
  }
}

/* SP：ロゴ上寄せページ */
@media (max-width: 767px) {
  .home--logoTop {
    padding-top: 254px;
    padding-bottom: 64px;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) {
  .home--logoTop .home__logo {
    top: 34px;
    translate: -50% 0;
    width: min(70vw, 320px);
  }
  .home--logoTop .home__logo img {
    width: 100%;
    height: auto;
  }
}

/* ========================================
   左コンテンツ
   ======================================== */
.home__contentBox {
  /* PC */
}
@media (min-width: 768px) {
  .home__contentBox {
    position: relative;
    z-index: 3;
    margin-left: clamp(48px, 4.6vw, 72px);
    padding-top: clamp(160px, 20vh, 180px); /* ★全ページ20vh基準 */
    padding-bottom: clamp(20px, 5vh, 40px);
    color: #fff;
  }
}
.home__contentBox {
  /* SP */
}
@media (max-width: 767px) {
  .home__contentBox {
    position: relative;
    z-index: 3;
    margin: 0 auto;
    width: min(84vw, 520px);
    text-align: left;
  }
}

/* SP：logoTopじゃないページ（TOPなど）は下寄せ */
@media (max-width: 767px) {
  .home:not(.home--logoTop) .home__contentBox {
    position: absolute;
    left: 50%;
    translate: -50% 0;
    bottom: clamp(72px, 12vh, 140px);
    width: min(64vw, 320px);
  }
  /* menuだけ例外：static */
  .home--menu .home__contentBox {
    position: static;
    left: auto;
    translate: none;
    bottom: auto;
    width: min(64vw, 320px);
    margin-inline: auto;
  }
}
/* PC：幅（大／中／小） */
@media (min-width: 768px) {
  .home__contentBox--lg {
    width: clamp(520px, 44vw, 680px);
  }
}

@media (min-width: 768px) {
  .home__contentBox--md {
    width: clamp(420px, 36vw, 520px);
  }
}

@media (min-width: 768px) {
  .home__contentBox--mdNarrow {
    width: clamp(240px, 26vw, 320px);
  }
}

@media (min-width: 768px) {
  .home__contentBox--sm {
    width: clamp(80px, 20vw, 180px);
  }
}

/* ========================================
   見出し / 罫線 / 本文（共通）
   ======================================== */
.home__sectionHeader {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 4px;
}

.home__sectionTitle {
  margin: 0;
  font-size: 0;
}
.home__sectionTitle .home__sectionTitleImg {
  display: block;
}

.home__sectionLabel {
  margin: 0 0 0 auto;
}

/* 罫線：高さ0化を絶対させない */
.home__sectionLine {
  display: block;
  height: 1px;
  min-height: 1px;
  background: rgba(255, 255, 255, 0.85);
  flex: 0 0 auto;
  margin: 0 0 22px;
}

/* 本文 */
.home__sectionBody {
  display: grid;
  row-gap: 18px;
  line-height: 1.9;
  max-width: 100%;
}

/* PC通常：スクロール禁止（変な上書きを防ぐ） */
@media (min-width: 768px) {
  .home__sectionBody {
    overflow: visible;
  }
}
/* ========================================
   PC：低い画面だけ「中身スクロール」発動（全ページ共通）
   ※ IMPORTANT：このブロックは必ず下（後）に置く
   ======================================== */
@media (min-width: 768px) and (max-height: 820px) {
  .home__contentBox {
    display: flex;
    flex-direction: column;
    /* ここは“雑に引かない”。本文側にスクロールを任せる */
    max-height: 100svh;
    padding-bottom: clamp(12px, 2vh, 24px);
  }
  .home__sectionLine {
    margin-bottom: clamp(12px, 1.6vh, 18px);
  }
  .home__sectionBody {
    flex: 1;
    overflow: auto;
    padding-right: 8px;
    -webkit-overflow-scrolling: touch;
    line-height: 1.65;
    row-gap: clamp(10px, 1.2vh, 14px);
  }
}
/* ========================================
   SP：本文の見え方
   ======================================== */
@media (max-width: 767px) {
  .home__sectionHeader {
    gap: 12px;
  }
  .home__sectionLine {
    margin-bottom: 20px;
  }
  .home__sectionBody {
    row-gap: 16px;
    letter-spacing: 0.05em;
    max-width: 84vw;
    text-align: center;
  }
  .home--about .home__sectionBody {
    letter-spacing: 0.05em;
    line-height: 2.36;
  }
  .home--recruit .home__sectionBody {
    text-align: left;
  }
}
/* ========================================
   右端の縦ナビ
   ======================================== */
.home__nav {
  position: absolute;
  right: clamp(12px, 2.4vw, 32px);
  top: 50%;
  translate: 0 -50%;
  font-size: 10px;
  text-align: right;
}
.home__nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 30px;
}
.home__nav a {
  color: #fff;
  text-decoration: none;
  opacity: 0.85;
  letter-spacing: 0.08em;
}
.home__nav a:hover {
  opacity: 1;
  text-decoration: underline;
}
@media (max-width: 767px) {
  .home__nav {
    display: none;
  }
}

/* 現在地マーク */
.home__nav .is-current > a {
  position: relative;
  font-weight: 700;
}

.home__nav .is-current > a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -16px;
  width: 6px;
  height: 6px;
  transform: translateY(-50%);
  background: url("/img/common/active.svg") no-repeat center/contain;
  pointer-events: none;
}

/* ========================================
   コピーライト
   ======================================== */
.home__copy {
  margin-top: auto;
  margin-bottom: 16px;
  width: 100%;
  text-align: center;
  font-size: 0.75em;
  line-height: 1;
  letter-spacing: 0.04em;
  opacity: 0.9;
  /* SP：基本は画面下固定 */
}
@media (max-width: 767px) {
  .home__copy {
    position: absolute;
    left: 50%;
    bottom: 12px;
    translate: -50% 0;
    margin: 0;
    font-size: 0.7em;
    white-space: nowrap;
  }
}

/* SP：伸びる可能性が高いページは固定をやめて「下に流す」 */
@media (max-width: 767px) {
  .home--about .home__copy,
  .home--recruit .home__copy,
  .home--service .home__copy {
    position: static;
    translate: none;
    margin: 24px 0 12px;
  }
}
/* セクションタイトル画像 */
.home__sectionTitleImg {
  display: block;
  width: 88px;
  height: auto;
}
.home__sectionTitleImg.about {
  width: 110px;
}

/* ========================================
   SP：ハンバーガー & ドロワー
   ======================================== */
@media (max-width: 767px) {
  .home__burger {
    position: fixed;
    right: 16px;
    top: 14px;
    z-index: 31;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    display: grid;
    place-items: center;
    cursor: pointer;
  }
  .home__burger span {
    position: absolute;
    left: 10px;
    width: 24px;
    height: 2px;
    background: #fff;
    border-radius: 1px;
    transition: transform 0.25s ease, opacity 0.2s ease;
    transform-origin: 50% 50%;
  }
  .home__burger span:nth-child(1) {
    top: 13px;
  }
  .home__burger span:nth-child(2) {
    top: 21px;
  }
  .home__burger span:nth-child(3) {
    top: 29px;
  }
  .home__burger.is-open span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  .home__burger.is-open span:nth-child(2) {
    opacity: 0;
  }
  .home__burger.is-open span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
  .home__overlay[hidden] {
    display: none;
  }
  .home__overlay {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: grid;
    grid-template-rows: auto 1fr;
    background: rgba(0, 0, 0, 0.9);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
  }
  .home__overlay.is-open {
    opacity: 1;
    pointer-events: auto;
  }
  .home__overlayClose {
    display: none !important;
  }
  .home__overlayNav {
    display: grid;
    place-items: center;
    padding: 8vh 24px 8vh;
    text-align: center;
  }
  .home__overlayNav ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    row-gap: 58px;
  }
  .home__overlayNav a {
    display: block;
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 0.06em;
    opacity: 0.95;
    -webkit-tap-highlight-color: transparent;
  }
  .home__overlayNav a:hover {
    opacity: 1;
    text-decoration: underline;
  }
}
/* チラつき対策 */
.kv__bg,
.kv__logo,
.home__bg,
.home__scrim {
  will-change: opacity, transform, filter;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* 省モーション */
@media (prefers-reduced-motion: reduce) {
  .home__overlay {
    transition: none;
  }
}
.home--top .home__topicsList li {
  padding-top: 0;
  padding-bottom: 18px;
}

.home__sectionLine.home__homeLine {
  margin-bottom: 10px;
}

@media (max-width: 767px) {
  .home--top .home__topicsList li {
    text-align: left;
  }
}
/* _home-about.scss
   About / 会社概要専用の見た目（レイアウトは _home-common.scss で管理）
*/
/* ========================
   PC / SP 共通
   ======================== */
/* キャッチコピー */
.home__aboutCatch {
  margin: 0 0 4px;
  line-height: 1.8;
}

/* 小見出し（コンセプト/運営会社など） */
.home__aboutHeading {
  margin: 0 0 4px;
  font-size: 14px;
}

/* 通常段落テキスト */
.home__aboutText {
  margin: 0;
}
@media (min-width: 768px) {
  .home__aboutText {
    font-size: 10px;
  }
}

/* 運営会社ブロック全体 */
.home__aboutCompanyBlock {
  margin-top: 20px;
}

/* テーブル風レイアウトの土台 */
.home__aboutCompany {
  margin: 0;
  padding: 0;
  line-height: 1.8;
}

/* 1 行 = dt + dd の 2 カラム */
.home__aboutCompanyRow {
  display: flex;
  align-items: flex-start;
  margin: 0 0 4px;
}

.home__aboutCompanyRow dt,
.home__aboutCompanyRow dd {
  margin: 0; /* UA デフォルトの margin を殺す */
}

/* 左カラム：dt（ラベル） */
.home__aboutCompanyRow dt {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* 右カラム：dd（内容） */
.home__aboutCompanyRow dd {
  flex: 0 1 auto;
  white-space: nowrap; /* 右にはみ出し OK */
  overflow: visible;
}

/* 社名の行だけ：dt を隠して、dd を左端から出す */
.home__aboutCompanyRow--name dt {
  display: none;
}

.home__aboutCompanyRow--name dd {
  flex-basis: auto;
}

/* ========================
   SP 調整
   ======================== */
@media (max-width: 767px) {
  .home--about {
    /* 共通では text-align: center; */
  }
  .home--about .home__sectionBody {
    text-align: left;
  }
  .home__sectionHeader {
    gap: 12px;
  }
  .home__sectionLine {
    margin-bottom: 20px;
  }
  .home__aboutBody {
    row-gap: 16px;
    letter-spacing: 0.05em;
  }
  /* [運営会社] 以下をまるごと非表示 */
  .home__aboutCompanyBlock {
    display: none;
  }
}
/* リクルート本文の字間：PCだけ VA80 にする */
@media (min-width: 768px) {
  .home--recruit .home__sectionBody {
    letter-spacing: 0.08em;
  }
}

.recruit__heading {
  font-size: 12px;
}

/* 「社員」の下に1文字分ぐらいの余白 */
.recruit__text {
  font-size: 1em;
  margin: 0;
}
@media (min-width: 768px) {
  .recruit__text {
    font-size: 12px;
  }
}

.recruit__text--label {
  margin-bottom: 1em;
}

/* CTA の位置 */
.home--recruit .recruit__cta {
  z-index: 3;
  text-align: center;
}
@media (max-width: 767px) {
  .home--recruit .recruit__cta {
    /* SP: 下部・中央寄せ、普通に流れの中に置く */
    position: static;
    display: flex;
    justify-content: center;
    margin: 0px auto 20px;
  }
}

/* ボタン本体 */
.recruit__ctaBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 250px;
  height: 50px;
  border-radius: 5px;
  background: #000;
  border: 1px solid #fff;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  letter-spacing: 0.16em;
  text-indent: 0.16em;
  transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
@media (max-width: 767px) {
  .recruit__ctaBtn {
    width: 250px;
  }
}
.recruit__ctaBtn:hover, .recruit__ctaBtn:focus-visible {
  background: #fff;
  color: #000;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
  transform: translateY(-1px);
}
.recruit__ctaBtn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.home__sectionLine.home__hoursLine {
  margin-bottom: 10px;
}

/* =========================
   Menu：本文レイアウト
   ========================= */
.home__menuBody {
  display: flex;
  flex-direction: column;
  row-gap: 0;
}

.home__sectionLine.home__menuLine {
  margin-bottom: 10px;
}

.home__menu .home__sectionBody {
  row-gap: 0;
}

.menuSection__title {
  text-align: left;
}

.menuSection__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(100px, 1fr));
  gap: 12px;
}

.menuSection__item {
  /* いまのところ特になし。必要ならここに */
}

.menuThumb {
  width: 100%;
  aspect-ratio: 16/9;
  padding: 0;
  border: none;
  background: rgba(0, 0, 0, 0.28);
  overflow: hidden;
  cursor: pointer;
  display: block;
}

.menuThumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center center;
}

/* SP 時：2カラムにして少し大きめに */
@media (max-width: 767px) {
  .home__menuBody {
    row-gap: clamp(24px, 4vh, 32px);
  }
  .menuSection__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 4px;
    row-gap: 4px;
  }
}
/* =========================
   Menu：モーダル
   ========================= */
.menuModal[hidden] {
  display: none;
}

.menuModal {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 34px;
  background: rgba(0, 0, 0, 0.7);
  box-sizing: border-box;
}

.menuModal__backdrop {
  position: absolute;
  inset: 0;
}

.menuModal__dialog {
  position: relative;
  z-index: 1;
  width: min(100vw - 32px, 600px);
  max-height: 90vh;
  background: #000;
  border-radius: 10px;
  padding: 16px 16px 18px;
  box-sizing: border-box;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}

.menuModal__figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  row-gap: 8px;
}

.menuModal__img {
  width: 100%;
  height: auto;
  display: block;
}

.menuModal__caption {
  font-size: 13px;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: #fff;
  text-align: center;
}

.menuModal__figure {
  margin-top: 28px;
}

/* 閉じるボタン */
.menuModal__close {
  position: absolute;
  top: 12px;
  right: 8px;
  width: auto;
  height: auto;
  border: none;
  background: none;
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

/* 左右ナビゲーション */
.menuModal__nav {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  border: none;
  background: none;
  padding: 24px 16px;
  min-width: 44px;
  min-height: 44px;
  color: #fff;
  font-size: clamp(28px, 4vw, 40px);
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.menuModal__nav--prev {
  left: -40px;
}

.menuModal__nav--next {
  right: -40px;
}

/* SP は矢印を少し内側に */
@media (max-width: 767px) {
  .menuModal__dialog {
    max-width: min(480px, 100vw - 24px);
  }
  .menuModal__nav--prev {
    left: -32px;
  }
  .menuModal__nav--next {
    right: -32px;
  }
}
.home--access .home__sectionBody.home__accessBody {
  display: flex;
  flex-direction: column;
  row-gap: 32px;
}

.home--access .access__map {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
}

.home--access .access__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  filter: grayscale(1);
  -webkit-filter: grayscale(1);
}

.home--access .access__info {
  line-height: 1.8;
}

.home--access .access__name {
  margin-bottom: 0;
}

.home--access .access__routes {
  margin-top: 16px;
}

/* ========== Access SP（ロゴ下・幅広） ========== */
@media (max-width: 767px) {
  .home--access .access__info {
    text-align: center;
  }
}
@media (min-width: 768px) {
  .home--service .home__sectionBody.home__serviceBody {
    row-gap: 0px;
  }
}
.home--service .service__planTitle {
  font-size: 10px;
}
@media (min-width: 768px) {
  .home--service .service__planTitle {
    font-size: 14px;
  }
}
.home--service .service__lead {
  margin-bottom: 16px;
}
.home--service .service__lead p {
  font-size: 8px;
}
@media (min-width: 768px) {
  .home--service .service__lead p {
    font-size: 10px;
  }
}
.home--service .service__lead p + p {
  margin-top: 1em;
}
.home--service .service__casesLabel {
  margin-bottom: 8px;
  font-size: 12px;
}
.home--service {
  /* ---------- PC：導入事例スライダー ---------- */
}
@media (min-width: 768px) {
  .home--service .serviceSlider {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    column-gap: 4px;
  }
}
.home--service .serviceSlider__trackWrapper {
  overflow: hidden;
}
.home--service .serviceSlider__track {
  display: flex;
  transition: transform 0.4s ease;
}
@media (min-width: 768px) {
  .home--service .serviceSlider__slide {
    flex: 0 0 50%;
    padding: 0 8px;
    box-sizing: border-box;
  }
}
.home--service .serviceCard {
  background: #fff;
  color: #000;
  padding: 12px;
  position: relative;
  overflow: hidden;
}
.home--service .serviceCard--recruit::before {
  content: "募集中";
  position: absolute;
  top: 12px;
  right: 12px;
  bottom: 12px;
  left: 12px;
  background: rgba(0, 0, 0, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  z-index: 1;
  text-align: center;
  pointer-events: none;
}
.home--service .serviceCard__thumb {
  background: #d8d8d8;
  aspect-ratio: 16/9;
  margin-bottom: 16px;
  position: relative;
  overflow: hidden;
}
.home--service .serviceCard__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.home--service .serviceSlider__nav {
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #fff;
  font-size: 32px;
  line-height: 1;
  padding: 16px 12px;
}
.home--service .serviceCard__text {
  font-size: 8px;
}
@media (min-width: 768px) {
  .home--service .serviceCard__text {
    font-size: 10px;
  }
}
.home--service .service__cta {
  text-align: center;
}
.home--service .cta-buttons {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 24px;
}
.home--service .cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  line-height: 1;
}
.home--service .cta-btn__icon {
  display: inline-flex;
}
.home--service .cta-btn__icon svg {
  display: block;
  width: 18px;
  height: 18px;
}
@media (min-width: 760px) {
  .home--service .cta-buttons {
    flex-direction: row;
    justify-content: center;
  }
  .home--service .cta-buttons .service__ctaBtn {
    text-align: center;
  }
}
.home--service {
  /* 電話ボタンは “常に有効” に固定*/
}
.home--service .recruit__ctaBtn--tel {
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer;
}

/* ---------- SP：スライダー無効 ＋ 左揃え ---------- */
@media (max-width: 767px) {
  .home--service {
    /* 共通では text-align: center; なので Service だけ左揃えに */
  }
  .home--service .home__sectionBody {
    text-align: left;
  }
  .home--service .serviceSlider {
    display: block;
    margin-top: 16px;
  }
  .home--service .serviceSlider__nav {
    display: none;
  }
  .home--service .serviceSlider__trackWrapper {
    overflow: visible;
  }
  .home--service .serviceSlider__track {
    flex-direction: column;
    row-gap: 24px;
    transform: none !important;
  }
  .home--service .serviceSlider__slide {
    flex: none;
    width: 100%;
    padding: 0;
  }
  .home--service .serviceCard {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .home--service .home__bg {
    background-size: 100% auto;
    background-position: center top;
  }
}
/* _home-history.scss
   history / ヒストリー専用の見た目（レイアウトは _home-common.scss で管理）
*/
/* ========================
   PC / SP 共通
   ======================== */
/* キャッチコピー */
.home__historyCatch {
  margin: 0 0 4px;
  line-height: 1.8;
}

/* 小見出し（コンセプト/運営会社など） */
.home__historyHeading {
  margin: 0 0 4px;
  font-size: 14px;
}

/* 通常段落テキスト */
.home__historyText {
  margin: 0;
}
@media (min-width: 768px) {
  .home__historyText {
    font-size: 12px;
  }
}

.home__historyText + .home__historyText {
  margin-top: 24px;
}

/* ========================
   SP 調整
   ======================== */
@media (max-width: 767px) {
  .home--history {
    /* 共通では text-align: center; */
  }
  .home--history .home__sectionBody {
    text-align: left;
  }
  .home__sectionHeader {
    gap: 12px;
  }
  .home__sectionLine {
    margin-bottom: 20px;
  }
  .home__historyBody {
    row-gap: 16px;
    letter-spacing: 0.05em;
  }
}
