/* ======================================
   Base
====================================== */
:root{
  --bg:#0e0e0e;
  --text:#111;
  --muted:#6b7280;
  --accent:#d1ff2a;
  --surface:#fff;
  --border:#e5e7eb;
  --radius:14px;
  --shadow:0 10px 30px rgba(0,0,0,.08);
  --max:1200px;
  --gutter:24px;
  --header-h:64px;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html,body{
  margin:0;
  padding:0;
  height:100%;
}

body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,
    "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,Arial,sans-serif;
  line-height:1.8;
  color:var(--text);
  background:#fff;
  padding-top:var(--header-h); /* 固定ヘッダー分を確保 */
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

.container{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
}

.section-alt{
  background:#f7f8fb;
}

.sec-title{
  font-size:clamp(22px,3vw,26px);
  font-weight:800;
  margin:0 0 6px;
}

.sec-desc{
  margin:0;
  color:var(--muted);
}

/* ======================================
   Header & Global Nav
====================================== */

.site-header{
  position:fixed;
  inset:0 0 auto 0;
  height:var(--header-h);
  z-index:1000;
  background:#000;
  backdrop-filter:blur(14px);
  color:#fff;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%;
  padding:0 var(--gutter);
}

.brand{
  display:inline-flex;
  align-items:center;
}

.brand img{
  width:150px;
  height:auto;
}

/* ハンバーガー */
.nav-toggle{
  position:fixed;
  top:8px;
  right:24px;
  width:50px;
  height:50px;
  background:rgba(0,0,0,.7);
  border:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:8px;
  cursor:pointer;
  z-index:1000000;
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}

.nav-toggle:hover{
  background:rgba(0,0,0,.9);
  transform:translateY(-1px);
  box-shadow:0 0 0 1px rgba(255,255,255,.25);
}

.nav-toggle-bar{
  width:32px;
  height:2px;
  border-radius:999px;
  background:#fff;
  transition:transform .25s ease, opacity .25s ease;
}

.nav-toggle-label{
  display:none;
}

/* X 変形 */
.nav-toggle.open .nav-toggle-bar:nth-of-type(1){
  transform:translateY(10px) rotate(45deg);
}
.nav-toggle.open .nav-toggle-bar:nth-of-type(2){
  opacity:0;
}
.nav-toggle.open .nav-toggle-bar:nth-of-type(3){
  transform:translateY(-10px) rotate(-45deg);
}

/* フルスクリーンナビ本体 */
nav.primary,
#primaryNav{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  margin:0;
  background:rgba(0,0,0,0.96);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease;
  z-index:999999;
}

nav.primary.open,
#primaryNav.open{
  opacity:1;
  pointer-events:auto;
}

/* body スクロールロック */
body.nav-open,
body.scroll-lock{
  overflow:hidden;
}

/* ナビ中身フルスクリーン３列 */
/*
.primary-inner{
  max-width:960px;
  width:100%;
  padding:40px 24px;
}
*/

/*
.primary-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(140px,1fr));
  gap:64px 120px;
  text-align:center;
  color:#fff;
}
*/
/* ==============================
   フルスクリーンナビ本体
   ============================== */

/* オーバーレイ本体 */
/*
nav.primary,
#primaryNav{
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  margin: 0;
  background: rgba(0,0,0,0.96);
  display: flex;
  align-items: flex-start;        ← 上から並べて中身側で中央寄せ 
  justify-content: center;
*/
/*
  padding: 60px 16px 80px;        ← 上下の余白もさらに圧縮 
  box-sizing: border-box;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  z-index: 999999;
*/
/*
  overflow-y: auto;               ★ ここで縦スクロールを許可 
}
*/

/* 開いた時だけ有効 */
/*
nav.primary.open,
#primaryNav.open{
  opacity: 1;
  pointer-events: auto;
}
*/

/* 中身ラッパー */
/*
#primaryNav .primary-inner{
  max-width: 720px;               ← 幅も少し細めに 
*/
/*
  width: 100%;
  margin: 0 auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;        ← 画面が十分高いときは中央寄せ 
*/
/*
  min-height: calc(100vh - 120px);  上下padding分を引いた高さで中央寄せ 
}
*/

/* メインリスト（ul） */
/*
#primaryNav .primary-list,
nav.primary > ul,
#primaryNav > ul{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;                      ← さらに詰める 
  align-items: center;
}
*/

/* 各ブロック */
/*
#primaryNav .primary-item,
nav.primary > ul > li,
#primaryNav > ul > li{
  text-align: center;
}
*/

/* メインリンク（日本語 + 英語） */
/*
#primaryNav .primary-link{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;                       ← 行間もかなりタイトに 
  padding: 2px 0;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  text-decoration: none;
  color: #fff;
  transition: transform .25s ease, opacity .25s ease;
}
*/

/* 日本語ラベル */
/*
#primaryNav .nav-jp{
  font-size: 16px;                ← かなり小さめに 
  letter-spacing: .14em;
}
*/

/* 英語ラベル */
/*
#primaryNav .nav-en{
  font-size: 9px;
  opacity: .7;
}
*/

/* サブメニュー */
/*
#primaryNav .primary-sub{
  margin-top: 4px;
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2px 8px;                  ← かなりコンパクト 
  font-size: 10px;
}
#primaryNav .primary-sub li{
  margin: 0;
}
#primaryNav .primary-sub a{
  opacity: .8;
}
#primaryNav .primary-sub a:hover{
  opacity: 1;
}
*/

/* SP 調整 */
/*
@media (max-width: 640px){
  nav.primary,
  #primaryNav{
    padding: 48px 12px 72px;      スマホ時もギュッと 
  }
*/

/*
  #primaryNav .primary-inner{
    max-width: 100%;
    min-height: calc(100vh - 120px);
  }

  #primaryNav .nav-jp{
    font-size: 15px;
    letter-spacing: .12em;
  }
  #primaryNav .nav-en{
    font-size: 9px;
  }

  #primaryNav .primary-list,
  nav.primary > ul,
  #primaryNav > ul{
    gap: 12px;
  }

  #primaryNav .primary-sub{
    font-size: 9px;
    gap: 2px 6px;
  }
}
*/
/* ==============================
   フルスクリーンナビ（確定版）
   ============================== */

/* オーバーレイ本体 */
nav.primary,
#primaryNav{
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  margin: 0;
  background: #000000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 72px 16px 40px;
  box-sizing: border-box;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  z-index: 999999;
  overflow-y: auto;
}

/* 開いた時だけ有効 */
nav.primary.open,
#primaryNav.open{
  opacity: 1;
  pointer-events: auto;
}

/* 中身ラッパー */
#primaryNav .primary-inner{
  max-width: 640px;
  width: 100%;
}

/* メインリスト（縦1列） */
#primaryNav .primary-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* カード全体 */
#primaryNav .primary-item{
  background: #05060b;
  border-radius: 20px;
  overflow: hidden;
  color: #f9fafb;
}

/* ===== 見出し行（has-sub 用） ===== */
#primaryNav .primary-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  background: #111111;
}

/* 見出しのリンク部分 */
#primaryNav .primary-link{
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-decoration: none;
  color: inherit;
}

/* サブのない単体リンク用（ブログ・お知らせ・お問い合わせ） */
#primaryNav .primary-link--single{
  padding: 18px 22px;
}

/* 日本語ラベル */
#primaryNav .nav-jp{
  font-size: 18px;
  letter-spacing: .06em;
}

/* 英語ラベル */
#primaryNav .nav-en{
  font-size: 11px;
  opacity: .65;
  text-transform: uppercase;
}

/* 矢印ボタン */
#primaryNav .primary-toggle{
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  margin-left: 12px;
  border: none;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* 矢印アイコン */
#primaryNav .primary-toggle::before{
  content: "";
  width: 12px;
  height: 12px;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(45deg);      /* ▼ */
  transition: transform .2s ease;
}

/* 開いた時は▲に回転 */
#primaryNav .primary-item.is-open .primary-toggle::before{
  transform: rotate(-135deg);    /* ▲ */
}

/* ===== サブメニュー ===== */
#primaryNav .primary-sub{
  display: none;
  margin: 0;
  padding: 10px 26px 18px;
  list-style: none;
  background: #0b0f19;
  border-top: 1px solid rgba(148,163,184,0.35);
}

/* 開いている時だけ表示 */
#primaryNav .primary-item.is-open .primary-sub{
  display: block;
}

#primaryNav .primary-sub li + li{
  margin-top: 4px;
}

#primaryNav .primary-sub a{
  display: block;
  padding: 6px 0;
  font-size: 16px;
  line-height: 1.7;
  font-weight: 600;
  opacity: .95;
}

#primaryNav .primary-sub a::before{
  content: "・";
  margin-right: 4px;
  opacity: .8;
}

/* ===== お問い合わせ + SNS ===== */
#primaryNav .primary-item-contact{
  margin-top: 24px;
  padding: 18px 22px 20px;
}

#primaryNav .primary-item-contact .primary-contact-wrap{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

#primaryNav .primary-item-contact .sns{
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 2px;
}

#primaryNav .primary-item-contact .sns a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.8);
  color: #fff;
  transition:
    transform .22s ease,
    background .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

#primaryNav .primary-item-contact .sns a:hover{
  transform: translateY(-3px) scale(1.05);
  background: rgba(255,255,255,0.08);
  border-color: #fff;
  box-shadow: 0 8px 18px rgba(0,0,0,0.55);
}

/* ===== PCホバー ===== */
@media (hover:hover){
  #primaryNav .primary-item.has-sub.is-open .primary-head{
    background: #1f2933;
  }
}

/* ===== SP 調整 ===== */
@media (max-width: 640px){
  nav.primary,
  #primaryNav{
    padding: 64px 12px 32px;
  }

  #primaryNav .primary-inner{
    max-width: 100%;
  }

  #primaryNav .nav-jp{
    font-size: 19px;
  }

  #primaryNav .nav-en{
    display: none; /* SPは日本語のみでシンプルに */
  }

  #primaryNav .primary-sub{
    padding: 10px 22px 18px;
  }

  #primaryNav .primary-sub a{
    font-size: 16px;
    padding: 8px 0;
  }
}

/* =========================
   RESET（白い余白防止）
========================= */
/* 全ページ共通のベース（白） */
html, body{
  margin:0;
  padding:0;
  background:#fff;
  color:#111;
}

/* =========================
   Header（共通）
========================= */
.site-header{
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #000;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.10);
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:74px;
  padding: 0 20px;
}

.brand img{
  width: 170px;
  height: auto;
  display:block;
  /* ロゴが黒想定なら白化（不要なら削除） */
  filter: brightness(0) invert(1);
}

/* =========================
   PC：右側（電話/営業時間/CTA/LINE）
========================= */
.head-right{
  display:flex;
  align-items:center;
  gap:18px;
}

.head-tel{
  text-align:right;
  line-height:1.1;
}
.tel-num{
  color:#fff;
  font-weight:900;
  font-size:20px;
  text-decoration:none;
  letter-spacing:.02em;
}
.tel-meta{
  margin-top:6px;
  font-size:12px;
  opacity:.75;
  display:flex;
  gap:8px;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.head-cta{
  display:flex;
  align-items:center;
  gap:10px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  padding:0 14px;
  border-radius:999px;
  font-weight:800;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.35);
  color:#fff;
  white-space:nowrap;
}

.btn-outline{
  background: transparent;
}
.btn-outline:hover{
  background: rgba(255,255,255,.10);
}

.btn-line{
  border-color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.06);
}
.btn-line:hover{
  background: rgba(255,255,255,.14);
}

/* =========================
   PC：下カテゴリ
========================= */
.header-bottom{
  border-top: 1px solid rgba(255,255,255,.10);
  background:#000;
}
.pc-cats{
  display:flex;
  justify-content:center;
  gap:22px;
  padding: 12px 0;
}
.pc-cats a{
  color:#fff;
  text-decoration:none;
  font-weight:800;
  font-size:14px;
  padding: 6px 2px;
  opacity:.95;
}
.pc-cats a:hover{ opacity:.7; }

/* =========================
   SP：既存ハンバーガーを使う
   → PCではハンバーガー非表示
========================= */
@media (min-width: 901px){
  .nav-toggle{ display:none; }
}

/* SPでは右側と下カテゴリを隠す（既存SPナビに任せる） */
@media (max-width: 900px){
  .head-right{ display:none; }
  .header-bottom{ display:none; }
  .nav-toggle{ display:flex; }
}


/* ======================================
   Header FINAL PATCH（末尾にコピペ）
   旧定義の fixed/height/100% を無効化して安定化
====================================== */

/* ヘッダー本体：stickyで統一、height変数系を殺す */
.site-header{
  position: sticky !important;
  top: 0 !important;
  inset: auto !important;
  height: auto !important;
  background: #000 !important;
  color:#fff !important;
  z-index: 2000 !important;
  backdrop-filter: blur(10px) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

/* 上段：高さを固定、100%縛りを殺す */
.site-header .topbar{
  height: auto !important;          /* ← 旧 height:100% を無効 */
  min-height: 92px !important;
  padding: 0 28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap: 22px !important;
}

/* ロゴの左寄りを解消（“見た目の芯”を作る） */
.site-header .brand{
  padding-left: 16px !important;
}
.site-header .brand img{
  width: 170px !important;
  height:auto !important;
  display:block !important;
  filter: brightness(0) invert(1) !important; /* 白化（不要なら消してOK） */
}

/* 右側（電話 + 営業時間 + CTA）をきっちり揃える */
.site-header .head-right{
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
  gap: 16px !important;
}

/* 電話ブロック全体 */
.site-header .head-tel{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;   /* 全体は右寄せ */
  text-align: left !important;        /* 行の開始位置を揃える */
}

/* 電話番号（基準ライン） */
.site-header .tel-num{
  display: inline-block !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  color:#fff !important;
  letter-spacing: .04em !important;
  text-decoration:none !important;
}

/* 営業時間・定休日（番号と同じ左端から開始） */
.site-header .tel-meta{
  display: inline-block !important;
  margin-top: 4px !important;
  font-size: 8px !important;
  line-height: 1.3 !important;
  opacity: .78 !important;
  white-space: nowrap !important;
}

.site-header .tel-meta{
  display: inline-flex !important;
  align-items: center;
  justify-content: flex-end !important;
  gap: 12px !important;

  margin-top: 4px !important;   /* 上段との距離を固定 */
  white-space: nowrap !important;

  font-size: 11px !important;
  line-height: 1.2 !important;
  opacity: .78 !important;
  text-align: right;
}


/* CTAボタン：見た目を揃える（フォーム=ガラス、LINE=白ベタ） */
.site-header .head-cta{
  display:flex !important;
  align-items:center !important;
  gap: 10px !important;
}

.site-header .btn{
  height: 44px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  font-weight: 900 !important;
  letter-spacing: .02em !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.35) !important;
  text-decoration:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
  transition: transform .18s ease, opacity .18s ease, background .18s ease, border-color .18s ease !important;
}

.site-header .btn-outline{
  background: rgba(255,255,255,.06) !important;
  color:#fff !important;
  border-color: rgba(255,255,255,.38) !important;
}
.site-header .btn-outline:hover{
  transform: translateY(-1px) !important;
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.58) !important;
}

.site-header .btn-line{
  background:#fff !important;
  color:#000 !important;
  border-color:#fff !important;
}
.site-header .btn-line:hover{
  transform: translateY(-1px) !important;
  opacity: .92 !important;
}

/* 下段カテゴリ：上段と隙間なく一体化 */
.site-header .header-bottom{
  background:#000 !important;
  border-top: 1px solid rgba(255,255,255,.10) !important;
}
.site-header .pc-cats{
  display:flex !important;
  justify-content:center !important;
  gap: 24px !important;
  padding: 14px 0 !important;
}
.site-header .pc-cats a{
  color:#fff !important;
  text-decoration:none !important;
  font-weight: 900 !important;
  font-size: 14px !important;
  opacity: .92 !important;
}
.site-header .pc-cats a:hover{ opacity:.7 !important; }

/* SP：既存ハンバーガーを使う（PCでは非表示） */
@media (min-width: 901px){
  .nav-toggle{ display:none !important; }
}

/* SP：右情報と下段は消す。ハンバーガーはヘッダー内基準に固定 */
@media (max-width: 900px){
  .head-right{ display:none !important; }
  .header-bottom{ display:none !important; }

  .nav-toggle{
    display:flex !important;
    position: absolute !important; /* ← fixed を殺してヘッダー内基準へ */
    top: 14px !important;
    right: 14px !important;
    z-index: 3000 !important;
  }

  .site-header .topbar{
    min-height: 72px !important;
    padding: 0 16px !important;
  }
}

/* ======================================
   SPではヘッダー右側（電話・営業時間・CTA）を非表示
====================================== */
@media (max-width: 900px){
  .site-header .head-right{
    display: none !important;
  }
}

/* ======================================
   Hamburger × 表示修正（SP専用）
====================================== */
@media (max-width: 900px){

  /* ボタン自体を確実に表示 */
  .nav-toggle{
    display: flex !important;
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    width: 48px !important;
    height: 48px !important;
    background: rgba(0,0,0,.85) !important;
    border-radius: 10px !important;
    z-index: 5000 !important;
  }

  /* 線を必ず表示 */
  .nav-toggle-bar{
    display: block !important;
    width: 28px !important;
    height: 2px !important;
    background: #fff !important;
    border-radius: 999px !important;
    opacity: 1 !important;
    transition: transform .25s ease, opacity .25s ease !important;
  }

  /* × 変形（open時） */
  .nav-toggle.open .nav-toggle-bar:nth-child(1){
    transform: translateY(8px) rotate(45deg) !important;
  }

  .nav-toggle.open .nav-toggle-bar:nth-child(2){
    opacity: 0 !important;
  }

  .nav-toggle.open .nav-toggle-bar:nth-child(3){
    transform: translateY(-8px) rotate(-45deg) !important;
  }
}
/* ======================================
   Hamburger × が消える問題：最終上書き
====================================== */
@media (max-width: 900px){

  /* ボタンを確実に表示・最前面に */
  #navToggle.nav-toggle{
    display:flex !important;
    position:absolute !important;
    top:10px !important;
    right:14px !important;
    width:52px !important;
    height:52px !important;
    padding:0 !important;
    border:0 !important;
    background:rgba(0,0,0,.85) !important;
    border-radius:12px !important;
    gap:6px !important;
    z-index:9999999 !important;
  }

  /* 3本線を確実に“見える状態”に固定 */
  #navToggle .nav-toggle-bar{
    display:block !important;
    width:35px !important;
    height:1.5px !important;
    background:#fff !important;
    border-radius:999px !important;
    opacity:1 !important;
    transform:none !important;
    transition:transform .25s ease, opacity .25s ease !important;
  }

  /* open時に×へ */
  #navToggle.open .nav-toggle-bar:nth-of-type(1){
    transform:translateY(10px) rotate(45deg) !important;
  }
  #navToggle.open .nav-toggle-bar:nth-of-type(2){
    opacity:0 !important;
  }
  #navToggle.open .nav-toggle-bar:nth-of-type(3){
    transform:translateY(-10px) rotate(-45deg) !important;
  }

  /* ラベルは完全に無効化（影響排除） */
  #navToggle .nav-toggle-label{
    display:none !important;
  }
}
/* ======================================
   SP：ヘッダーを常時固定
====================================== */
@media (max-width: 900px){
  .site-header{
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 999999 !important;
  }

  /* ヘッダー分だけ本文を下げる */
  body{
    padding-top: 72px; /* ← SPヘッダー高さに合わせて調整 */
  }
}

/* =========================
   SP：ヘッダーロゴを小さくする
====================================== */
@media (max-width: 900px){
  .site-header .brand img{
    width: 120px !important;  /* ← おすすめ：110〜130px */
  }
}

/* ======================================
   Hamburger：×をキレイにする（最終安定版）
====================================== */
@media (max-width: 900px){

  #navToggle.nav-toggle{
    position:absolute !important;
    top:10px !important;
    right:14px !important;
    width:52px !important;
    height:52px !important;
    padding:0 !important;
    border:0 !important;
    background:rgba(0,0,0,.85) !important;
    border-radius:12px !important;
    z-index:9999999 !important;

    /* ★ gap方式をやめる */
    display:block !important;
  }

  /* 3本線：中央基準で絶対配置（×が必ず綺麗） */
  #navToggle .nav-toggle-bar{
    position:absolute !important;
    left:50% !important;
    width:32px !important;
    height:2px !important;
    background:#fff !important;
    border-radius:999px !important;
    opacity:1 !important;

    transform:translateX(-50%) !important;
    transition:transform .25s ease, top .25s ease, opacity .2s ease !important;
  }

  /* 3本の位置（通常時） */
  #navToggle .nav-toggle-bar:nth-of-type(1){ top: 16px !important; }
  #navToggle .nav-toggle-bar:nth-of-type(2){ top: 25px !important; }
  #navToggle .nav-toggle-bar:nth-of-type(3){ top: 34px !important; }

  /* open時：交点を中央(25px)に揃えて回転 */
  #navToggle.open .nav-toggle-bar:nth-of-type(1){
    top:25px !important;
    transform:translateX(-50%) rotate(45deg) !important;
  }
  #navToggle.open .nav-toggle-bar:nth-of-type(2){
    opacity:0 !important;
  }
  #navToggle.open .nav-toggle-bar:nth-of-type(3){
    top:25px !important;
    transform:translateX(-50%) rotate(-45deg) !important;
  }

  /* 余計なラベルは消す */
  #navToggle .nav-toggle-label{ display:none !important; }
}



/* ======================================
   Hero Slider（画像スライダー）
====================================== */

.hero{
  position:relative;
  background:#000;
  color:#fff;
}

.hero-slider{
  position:relative;
  width:100%;
  overflow:hidden;
}

.hero-slides{
  position:relative;
  height:clamp(260px,52vw,520px);
  min-height:260px;
}

.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transition:opacity .7s ease-in-out;
}

.hero-slide.is-active{
  opacity:1;
  pointer-events:auto;
}

.hero-slide > img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* オーバーレイ */
.hero-slide::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,0.55),
    rgba(0,0,0,0.25) 55%,
    rgba(0,0,0,0.05)
  );
  pointer-events:none;
  z-index:1;
}

/* キャプション */
.hero-caption{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction: column;  /* ★縦並びにする */
  align-items:center;
  justify-content:center;
  text-align:center;
  z-index:2;
  gap: 10px;               /* ★見出しと本文の間に少し余白 */
}


.hero-caption.container{
  max-width:100%;
  padding:0 24px;
}

.hero-caption h1{
  font-size:clamp(22px,2.4vw + 10px,32px);
  margin:0 0 12px;
}

.hero-caption p{
  font-size:clamp(12px,1vw,16px);
  max-width:42em;
  margin:0 auto;
  line-height:1.8;
}

/* Hero controls */
.hero-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.55);
  background:rgba(0,0,0,0.35);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:3;
  transition:background .2s ease, border-color .2s ease;
}

.hero-prev{ left:24px; }
.hero-next{ right:24px; }

.hero-nav:hover{
  background:rgba(255,255,255,0.15);
  border-color:#fff;
}

.hero-dots{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  z-index:3;
}

.hero-dots button{
  width:8px;
  height:8px;
  padding:0;
  border-radius:999px;
  border:none;
  background:rgba(255,255,255,0.35);
  cursor:pointer;
}

.hero-dots button[aria-selected="true"]{
  width:18px;
  background:#fff;
}

/* Hero responsive */
@media (max-width:768px){
  .hero-slides{
    height: clamp(220px, 62vw, 420px);
  }

  /* ★文字ブロックをきれいに中央寄せ＆下に寄りすぎないように */
  .hero-caption{
    align-items: center;          /* ← flex-end から center に */
    justify-content: center;
    padding: 0 13px 28px;         /* 下の余白を少し減らす */
    text-align: center;
  }
  .hero-caption.container{
    max-width: 100%;
    padding: 0 16px 0;            /* 左右だけにして位置ズレを防止 */
  }

  .hero-caption h1{
    font-size: 16px;
    line-height: 1.4;
    margin: 0 0 8px;
  }

  .hero-caption p{
    font-size: 10px;
    line-height: 1.6;
    max-width: 95%;
    margin: 0 auto 6px;
  }

  .hero-nav{
    width: 38px;
    height: 38px;
  }

  .hero-dots{
    bottom: 8px;
  }
}

/* Hero ボタン共通 */
.hero-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 20px;
  font-size:11px;        /* ← ここで文字サイズを調整 */
  font-weight:700;
  border-radius:999px;
  text-decoration:none;
}

/* 色違い */
.hero-btn.primary{
  background:#fff;
  color:#000;
}

.hero-btn.ghost{
  border:1px solid #fff;
  color:#fff;
}

/* スマホだけさらに小さくしたい場合 */
@media (max-width:768px){
  .hero-btn{
    font-size:12px;      /* ← SP 用のサイズ */
    padding:8px 16px;
  }
}


/* =============
   Business 
============= */


/* 事業内容セクションの見出し・説明文を中央揃え */
.biz-section .sec-head{
  text-align: center;
}

.biz-section .sec-head .sec-title{
  text-align: center;
}

.biz-section .sec-head .sec-desc{
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
/* ヒーロースライダーと事業内容の間に余白をつける （余白の色を背景色と同化）*/
.biz-section{
  padding-top: 50px;   /* ← 余白をmarginではなくpaddingに */
  margin-top: 0;       /* ← 追加していた margin があれば削除 or 0 に */
}

/* スマホ用 */
@media (max-width: 768px){
  .biz-section{
    padding-top: 56px;
  }
}

/* 事業内容セクションを明るく戻す（クラス名は実物に合わせて） */
#biz, .biz-section, .biz-area, .section-biz{
  background: #f5f7fb;
  color: #111;
}
#biz .sec-title, .biz-section .sec-title{ color:#111; }
#biz .sec-desc,  .biz-section .sec-desc{ color:#4b5563; }

/* ============================
   事業内容（黒グラデ 8枚カード）
============================ */

/* PC: 4列 / タブレット: 3列 / スマホ: 2列 */
.biz-grid-alt{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
  margin-top:40px;
}

/* カード本体 */
.biz-box{
  background: radial-gradient(circle at 25% 15%, #3f3f3f 0%, #111111 55%, #000000 100%);
  border-radius:24px;
  padding:40px 20px;
  text-align:center;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .25s ease, box-shadow .25s ease, filter .2s ease;
  box-shadow:0 8px 22px rgba(0,0,0,0.45);
  border:1px solid rgba(255,255,255,0.04);
}

.biz-box:hover{
  transform:translateY(-6px);
  box-shadow:0 12px 30px rgba(0,0,0,0.55);
  filter:saturate(1.05);
}

.biz-box-inner{
  max-width:220px;
}

/* SVGアイコン */
.biz-icon-svg{
  width:64px;
  height:64px;
  margin:0 auto 14px;
}

.biz-icon-svg svg{
  width:100%;
  height:100%;
  stroke:#ffffff;
  stroke-width:2.2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,0.6));
}

/* 円アイコンだけは塗りつぶしで表示 */
.biz-icon-svg svg.biz-icon-yen{
  fill:#ffffff;
  stroke:none;
}

/* タイトルとテキスト */
.biz-box h3{
  font-size:20px;
  font-weight:800;
  margin:6px 0 10px;
}

.biz-box p{
  font-size:14px;
  line-height:1.6;
  opacity:.9;
}

/* セクション見出し中央寄せ */
.biz-section .sec-head{
  text-align:center;
}
.biz-section .sec-head .sec-desc{
  margin-left:auto;
  margin-right:auto;
}
/* 円アイコンだけ個別サイズ調整（PC） */
.biz-icon-svg svg.biz-icon-yen{
  width: 50px;   /* ← ここを好みに変更 */
  height: 60px;  /* ← ここを好みに変更 */
  fill: #ffffff;
  stroke: none;
  filter: drop-shadow(0 3px 4px rgba(0,0,0,0.6));
}

/* スマホ時の円アイコンサイズ */
@media (max-width: 640px){
  .biz-icon-svg svg.biz-icon-yen{
    width: 35px;  /* スマホ向け */
    height: 36px;
  }
}

/* ---------- レスポンシブ ---------- */

/* タブレット：3列 */
@media (max-width: 1024px){
  .biz-grid-alt{
    grid-template-columns:repeat(3,1fr);
    gap:24px;
  }
}

/* スマホ：2列（カード小さめ） */
@media (max-width: 640px){
  .biz-grid-alt{
    grid-template-columns:repeat(2,1fr);
    gap:16px;
  }

  .biz-box{
    padding:22px 14px;
    border-radius:16px;
  }

  .biz-box-inner{
    max-width:100%;
  }

  .biz-icon-svg{
    width:40px;
    height:40px;
    margin-bottom:8px;
  }

  .biz-icon-svg svg{
    stroke-width:2;
  }

  .biz-box h3{
    font-size:15px;
    margin-bottom:4px;
  }

  .biz-box p{
    font-size:11px;
    line-height:1.45;
  }
}

/* ======================================
   Inventory Slider
====================================== */

.inventory-section{
  padding:48px 0 56px;
}

.inventory-section .sec-head{
  position:relative;
  text-align:center;
  margin-bottom:16px;
}

.inventory-section .sec-title,
.inventory-section .sec-desc{
  margin-left:auto;
  margin-right:auto;
}

.sec-all{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:700;
  opacity:.9;
}

.sec-all:hover{ opacity:1; }

.sec-all-top{
  position:absolute;
  top:50%;
  right:0;
  transform:translateY(-50%);
}

.sec-all-bottom{
  display:none;
}

/* Slider layout */
.inv-slider{
  --gap:16px;
  --per:4;
  position:relative;
  max-width:var(--max);
  margin:0 auto;
  padding-bottom:40px;
}

.inv-viewport{
  position:relative;
  overflow:hidden;
  width:100%;
  padding-bottom:28px;
}

.inv-track{
  display:flex;
  gap:var(--gap);
  will-change:transform;
  transition:transform .45s ease;
}

.inv-slide{
  flex:0 0 calc((100% - (var(--gap) * (var(--per) - 1))) / var(--per));
  min-width:calc((100% - (var(--gap) * (var(--per) - 1))) / var(--per));
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
}

.inv-slide .thumb{
  aspect-ratio:16 / 9;
  background:#000;
  overflow:hidden;
}
.inv-slide .thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.inv-slide .meta{
  padding:12px 14px 8px;
  min-height:84px;
}
.inv-slide .meta h4{
  font-size:16px;
  font-weight:700;
  margin:0 0 4px;
  line-height:1.4;
}
.inv-slide .spec{
  color:var(--muted);
  font-size:13px;
}

.inv-slide .price{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 14px 14px;
}
.inv-slide .price strong{
  font-size:20px;
}
.inv-slide .btn{
  display:inline-block;
  padding:8px 12px;
  border-radius:10px;
  background:#111;
  color:#fff;
  font-weight:700;
}

/* Slider arrows */
.inv-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(0,0,0,0.6);
  color:#fff;
  border:none;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  cursor:pointer;
  z-index:10;
  transition:background .3s ease;
}
.inv-nav:hover{
  background:rgba(0,0,0,0.8);
}
.inv-prev{ left:8px; }
.inv-next{ right:8px; }
.inv-nav[disabled]{
  opacity:.35;
  cursor:not-allowed;
}

/* Slider dots */
.inv-dots{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:12px;
}
.inv-dots button{
  width:8px;
  height:8px;
  border-radius:50%;
  border:1px solid #9ca3af;
  background:#fff;
  cursor:pointer;
  transition:all .25s ease;
}
.inv-dots button[aria-selected="true"]{
  background:#111;
  border-color:#111;
  width:20px;
  border-radius:8px;
}

/* Inventory responsive */
@media (max-width:1200px){
  .inv-slider{ --per:3; }
}
@media (max-width:820px){
  .inv-slider{ --per:2; }
  .inv-prev{ left:-28px; }
  .inv-next{ right:-28px; }
}
@media (max-width:520px){
  .inv-slider{ --per:1; }
  .inv-prev{ left:6px; }
  .inv-next{ right:6px; }
}

/* 在庫セクションの「すべて見る」位置＆ドットとの距離 */
@media (min-width:821px){
  .inventory-section .sec-all-top{
    display:inline-flex;
  }
  .inventory-section .sec-all-bottom{
    display:none;
  }
}

@media (max-width:820px){
  /* 在庫セクション全体を中央寄せ */
  .inventory-section{
    text-align:center;
  }

  /* スライダー下の余白を詰める（ここが一番効きます） */
  .inventory-section .inv-slider{
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  /* ドットの上下余白をかなり少なめに */
  .inventory-section .inv-pagination,
  .inventory-section .inv-dots{
    margin: 4px 0 4px !important;  /* ここで微調整 */
  }

  /* SPでは下の「すべて見る」だけ表示 */
  .inventory-section .sec-all-top{
    display:none;
  }

  .inventory-section .sec-all-bottom{
    display:inline-flex;
    margin: 8px auto 0 !important; /* ブログに近い距離感 */
  }
}


/* TOP 在庫スライダー用カード調整 */
.inv-slide .car{
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(15,23,42,.18);
  text-decoration:none;
}

.inv-slide .thumb{
  max-height:260px;
  overflow:hidden;
}

.inv-slide .thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.inv-slide .meta{
  padding:14px 18px 10px;
}

.inv-slide .car-title{
  font-size:16px;
  font-weight:800;
  margin:0 0 4px;
}

.inv-slide .car-spec{
  margin:0;
  font-size:13px;
  color:var(--muted);
}

.inv-slide .price-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:0 18px 16px;
}

.inv-slide .price-badge{
  display:inline-flex;
  align-items:baseline;
  gap:4px;
  padding:6px 14px;
  border-radius:12px;
  background:#fee2e2;
  color:#b91c1c;
  font-weight:800;
  box-shadow:0 6px 14px rgba(248,113,113,.4);
}

.inv-slide .price-badge strong{
  font-size:18px;
}

.inv-slide .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 18px;
  border-radius:999px;
  background:#111827;
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.03em;
  box-shadow:0 6px 18px rgba(15,23,42,.35);
}
/* 関連在庫セクションの余白調整 */
.inventory-related{
  padding-top: 40px;   /* 上のスペース */
  padding-bottom: 80px; /* 下のスペース（フッターと離す） */
}

/* ------------------------------------------------
   TOP在庫スライダー：高さそろえ調整
   ------------------------------------------------ */
.inv-slide {
  /* 枠は薄くしてラッパーに専念させる */
  border: none;
  box-shadow: none;
  background: transparent;
}

/* カードをスライド枠いっぱいに伸ばす */
.inv-slide .car{
  height: 100%;
}

/* 価格行を一番下に固定して、タイトルの行数差で崩れにくくする */
.inv-slide .price-row{
  margin-top: auto;
}

/* 応相談バッジが折れにくいように */
.inv-slide .price-badge{
  white-space: nowrap;
}

/* ===============================
   在庫スライダー：スマホで2台並べる
   =============================== */
@media (max-width: 640px){

  /* 2枚表示に変更（画面幅50%） */
  .inv-slider{
    --per: 2; /* ← ここが重要 */
  }

  /* カード横幅を2枚表示用に計算 */
  .inv-slide{
    flex: 0 0 calc(50% - 10px);  /* 余白を含めて2枚 */
    max-width: calc(50% - 10px);
    margin-right: 10px;
  }

  /* カード全体を小型に */
  .inv-slide .car{
    border-radius: 14px;
  }

  /* 画像を小さめに（正方形に近づけると見栄えが良い） */
  .inv-slide .thumb{
    max-height: 120px;
    border-radius: 14px 14px 0 0;
  }

  /* テキスト類もコンパクトに */
  .inv-slide .meta{
    padding: 6px 8px;
  }
  .inv-slide .car-title{
    font-size: 12px;
    margin-bottom: 2px;
  }
  .inv-slide .car-spec{
    font-size: 10px;
  }

  .inv-slide .price-row{
    padding: 6px 8px;
    gap: 6px;
  }
  .inv-slide .price-badge{
    padding: 4px 8px;
    font-size: 10px;
  }
  .inv-slide .price-badge strong{
    font-size: 13px;
  }

  .inv-slide .btn{
    padding: 4px 8px;
    font-size: 10px;
  }

  /* 矢印ボタンは非表示にしたほうが見やすい（任意） */
/*
  .inv-nav{
    display: none;
  }
}
*/
}

/* =========================
   関連在庫（詳細ページ）
   ========================= */
.inventory-related .rel-inv-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:16px;
}

@media (max-width: 1024px){
  .inventory-related .rel-inv-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px){
  .inventory-related .rel-inv-grid{
    grid-template-columns: 1fr;
  }
}

.inventory-related .rel-car{
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(15,23,42,.16);
  text-decoration:none;
}

.inventory-related .rel-car .thumb{
  max-height:220px;
  overflow:hidden;
}
.inventory-related .rel-car .thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.inventory-related .rel-car .meta{
  padding:14px 18px 10px;
}
.inventory-related .rel-car .car-title{
  font-size:15px;
  font-weight:800;
  margin:0 0 4px;
}
.inventory-related .rel-car .car-spec{
  margin:0;
  font-size:13px;
  color:var(--muted);
}

.inventory-related .rel-car .price-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:0 18px 16px;
}

.inventory-related .rel-car .price-badge{
  display:inline-flex;
  align-items:baseline;
  gap:4px;
  padding:6px 14px;
  border-radius:12px;
  background:#fee2e2;
  color:#b91c1c;
  font-weight:800;
  box-shadow:0 6px 14px rgba(248,113,113,.4);
}
.inventory-related .rel-car .price-badge strong{
  font-size:18px;
}

.inventory-related .rel-car .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 18px;
  border-radius:999px;
  background:#111827;
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.03em;
  box-shadow:0 6px 18px rgba(15,23,42,.35);
}
/* ============================
   関連在庫カード（小さめデザイン）
   ============================ */
.inventory-related .inv-slide .car{
  border-radius: 14px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.08);
}

.inventory-related .inv-slide .thumb{
  height: 140px; /* ← メイン画像を小さく */
}

.inventory-related .inv-slide .thumb img{
  object-fit: cover;
}

.inventory-related .inv-slide .meta{
  padding: 10px 14px;
}

.inventory-related .inv-slide .car-title{
  font-size: 14px;          /* ← タイトル小さめ */
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 4px;
}

.inventory-related .inv-slide .car-spec{
  font-size: 12px;          /* ← スペック文字も少し小さく */
  color: var(--muted);
}

.inventory-related .inv-slide .price-row{
  padding: 8px 14px 14px;
}

.inventory-related .inv-slide .price-badge{
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 10px;
}

.inventory-related .inv-slide .btn{
  padding: 6px 14px;
  font-size: 12px;
  border-radius: 20px;
}

	/* ============================
   TOPページ：在庫一覧とブログの余白を調整
============================ */

/* 在庫一覧（すべて見る）ボタン下の余白を詰める */
.inventory-section{
  padding-bottom: 20px !important;  /* ← ここを小さくすると改善 */
}

/* ブログセクションの上余白も詰める */
.blog-section{
  padding-top: 20px !important;     /* ← 必要に応じて10〜30で調整 */
}

.price-card .btn:not(.primary){
  background:#f3f4f6;
  color:#374151;
  border:1px solid #e5e7eb;
}
.price-card .btn:not(.primary):hover{
  background:#e5e7eb;
}


/* =========================
   車両詳細：メインCTAを強調
   ========================= */
.price-card .btn.primary{
  background:#111827;           /* K2 GARAGE基調のブラック */
  color:#fff;
  border:1px solid #111827;
  font-weight:800;
  letter-spacing:.04em;
  padding:14px 16px;
  border-radius:12px;
  box-shadow:0 8px 20px rgba(17,24,39,.35);
  transition:.2s ease;
}

/* ホバー */
.price-card .btn.primary:hover{
  background:#000;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(0,0,0,.45);
}



/* =========================
   ブログ一覧レイアウト
   ========================= */

.blog-list-section{
  background: #f5f7fb;
  padding: 72px 0 88px;
}

.blog-list-head{
  text-align: center;
  margin-bottom: 36px;
}

.blog-list-label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 14px;
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: .18em;
  background: rgba(15,23,42,.06);
  color: #6b7280;
  text-transform: uppercase;
  margin: 0 0 10px;
}

.blog-list-title{
  font-size: clamp(26px, 3.2vw, 32px);
  font-weight: 800;
  margin: 0 0 6px;
}

.blog-list-desc{
  margin: 0;
  font-size: 14px;
  color: #6b7280;
}

/* カードグリッド */
.topics-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 26px;
}

/* カード本体 */
.topic-card{
  background: #ffffff;
  border-radius: 24px;
  box-shadow: 0 14px 40px rgba(15,23,42,.12);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}

.topic-link{
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

/* 画像エリア：ここで横長画像もキレイに収まる */
.topic-thumb{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;   /* ここで縦横比を固定 */
  overflow: hidden;
  background: #000;
}

.topic-thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;       /* どんなサイズでもトリミングしてフィット */
  display: block;
}

/* テキストエリア */
.topic-content{
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* pill */
.topic-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  align-self: flex-start;
  color: #fff;
}

/* pill カラー */
.topic-pill--orange{ background: #f97316; }
.topic-pill--blue{   background: #2563eb; }
.topic-pill--red{    background: #dc2626; }

.topic-heading{
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  margin: 2px 0 0;
}

.topic-meta{
  font-size: 12px;
  color: #9ca3af;
  margin: 0;
}

.topic-text{
  font-size: 13px;
  color: #4b5563;
  line-height: 1.8;
  margin: 4px 0 0;
  flex: 1 1 auto;
}

.topic-link-more{
  margin-top: 10px;
  font-size: 13px;
  font-weight: 600;
  color: #2563eb;
}

/* hover */
.topic-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 58px rgba(15,23,42,.18);
}
.topic-card:hover .topic-link-more{
  text-decoration: underline;
}

/* SP 調整 */
@media (max-width: 768px){
  .blog-list-section{
    padding: 56px 0 72px;
  }
  .topic-content{
    padding: 16px 16px 18px;
  }
}
/* =========================
   BLOG SECTION
   ========================= */

/* 見出しを他より少し小さめに */
.home-blog .sec-title.sec-title--sm{
  font-size: clamp(20px, 3.4vw, 24px);
  font-weight: 800;
}

/* 共通レイアウト */
.home-blog{
  padding: 56px 0;
}

/* スライダーの枠 */
.blog-slider{
  position: relative;
}

/* 中身の横並び */
.blog-viewport{
  overflow: hidden;
}

.blog-track{
  display: flex;
  flex-wrap: wrap;      /* PCでは折り返す → 3列グリッド兼用 */
  gap: 20px;
}

/* ブログカード：PCは3列 */
.blog-item{
  flex: 0 0 calc(33.333% - 13.4px); /* gapを引いた3列 */
}
/* ブログセクションの見出しを中央寄せにする */
.home-blog .sec-head {
  text-align: center;
}

.home-blog .sec-head .sec-title,
.home-blog .sec-head .sec-eyebrow {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* ===== SP：スライダー表示 ===== */
@media (max-width: 768px){

  .home-blog{
    padding: 46px 0;
  }

  .blog-track{
    flex-wrap: nowrap;      /* 折り返さず横1列に */
    gap: 0;
    transition: transform 0.5s ease;
  }

  .blog-item{
    flex: 0 0 100%;
    max-width: 100%;
  }

  .blog-nav{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid rgba(148,163,184,.5);
    background: rgba(255,255,255,.95);
    color: #0f172a;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(15,23,42,.18);
    cursor: pointer;
    z-index: 2;
  }
  .blog-prev{ left: 6px; }
  .blog-next{ right: 6px; }

  .blog-dots{
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 14px;
  }
  .blog-dots button{
    width: 8px;
    height: 8px;
    border-radius: 999px;
    border: none;
    background: #cbd5e1;
    padding: 0;
    cursor: pointer;
  }
  .blog-dots button[aria-selected="true"]{
    width: 18px;
    background: #0f172a;
  }
}

/* ===== PC：3枚並び / ナビ非表示 ===== */
@media (min-width: 769px){

  .blog-slider{
    overflow: visible;
  }

  .blog-nav,
  .blog-dots{
    display: none;
  }
}

/* ブログの説明文の下に余白を追加（背景色と同色） */
.home-blog .sec-desc {
  margin-bottom: 40px;
  color: #6b7280;
}

/* ブログセクション背景と統一 */
.home-blog {
  background: #f5f7fb;
}

/* セクション全体の上下余白を調整 */
.home-blog {
  padding: 72px 0 88px;
}

/* BLOG 見出しの中央寄せ（再定義） */
.home-blog .sec-head {
  text-align: center;
}
.home-blog .sec-title,
.home-blog .sec-eyebrow,
.home-blog .sec-desc {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* =========================
   HOME BLOG – すべて見る配置
   ========================= */

/* 見出しエリアを絶対配置の親にする */
.home-blog .sec-head{
  position: relative;
  text-align: center;
}

/* すべて見るの共通スタイル（在庫と合わせる＋黒字） */
.home-blog .sec-all{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  opacity: .9;
  color: #000;
}
.home-blog .sec-all:hover{
  opacity: 1;
}

/* PC：見出し右上に表示 */
@media (min-width: 821px){
  .home-blog .sec-all-top{
    display: inline-flex;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
  }
  .home-blog .sec-all-bottom{
    display: none;
  }
}

/* SP：スライダーの下・中央に表示 */
@media (max-width: 820px){
  .home-blog .sec-all-top{
    display: none;
  }
  .home-blog .sec-all-bottom{
    display: block;
    width: max-content;
    margin: 18px auto 0; /* ドットとの距離はここで調整 */
  }
}

/* ======================================
   News & Topics (TOP)
====================================== */

/* セクション全体の余白（下を多めに） */
.news-section{
  padding:48px 0 80px;
}

/* 見出し行（PC/SP共通のベース） */
.sec-head-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.sec-head-row .head-inner{
  flex:1;
}

.news-section .sec-title{
  margin:0 0 4px;
  font-size:22px;
  font-weight:800;
}
.news-section .sec-desc{
  margin:0;
  font-size:14px;
  color:var(--muted);
}

/* News list (TOP) */
.news-list{
  list-style:none;
  display:grid;
  gap:14px;
  margin:0 0 24px;   /* ▼リスト下に余白 */
  padding:0;
}

.news-item{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.news-link{
  display:grid;
  grid-template-columns:220px 1fr 32px;
  align-items:center;
  gap:16px;
  padding:18px 20px;
}

.news-meta{
  display:flex;
  align-items:center;
  gap:10px;
}
.news-date{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-weight:600;
}

.cal-ic{
  width:18px;
  height:18px;
  border:2px solid var(--muted);
  border-radius:4px;
  position:relative;
}
.cal-ic::after{
  content:"";
  position:absolute;
  left:-2px;
  right:-2px;
  top:-2px;
  height:5px;
  background:var(--muted);
  border-top-left-radius:4px;
  border-top-right-radius:4px;
}

.news-tag{
  display:inline-flex;
  align-items:center;
  height:24px;
  padding:3px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.75);
  color:#fff;
  font-size:11px;
  font-weight:700;
}

.news-title{
  font-size:18px;
  font-weight:800;
  margin:0 0 6px;
}
.news-excerpt{
  margin:0;
  color:var(--muted);
  font-size:15px;
}

.news-go{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:999px;
  color:#9ca3af;
  transition:transform .2s ease, color .2s ease, background .2s ease;
}

.news-link:hover{
  background:#fafafa;
}
.news-link:hover .news-go{
  transform:translateX(2px);
  color:#6b7280;
}

/* SPサイズ調整（カードと文字を小さめに） */
@media (max-width:820px){
  .news-link{
    grid-template-columns:1fr 28px;
    grid-template-rows:auto auto;
    gap:10px 14px;
    padding:14px 16px;      /* ちょっとコンパクトに */
  }
  .news-meta{
    grid-column:1 / 2;
  }
  .news-main{
    grid-column:1 / 2;
  }
  .news-go{
    grid-column:2 / 3;
    grid-row:1 / 3;
  }

  .news-title{
    font-size:10px;
  }
  .news-excerpt{
    font-size:7px;
  }
}
/* ===============================
   お知らせ（TOP）SPをコンパクトに
   =============================== */
@media (max-width: 640px){

  /* セクション余白自体を少し詰める */
  .news-section.section-alt{
    padding: 32px 0 40px;
  }

  /* 各カードの間隔を詰める */
  .news-list{
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  /* カード本体を小さめ＆影を弱く */
  .news-item{
    border-radius: 16px;
    box-shadow: 0 6px 14px rgba(15,23,42,.12);
  }

  /* 内側余白を縮小 */
  .news-link{
    padding: 12px 14px;
    gap: 8px 10px;
  }

  /* 日付＆タグ部分も少し小さく */
  .news-meta{
    gap: 8px;
  }
  .news-date{
    font-size: 11px;
  }
  .news-tag{
    height: 22px;
    padding: 2px 8px;
    font-size: 10px;
  }

  /* タイトル・本文の文字サイズをコンパクトに */
  .news-title{
    font-size: 14px;
    margin-bottom: 2px;
  }
  .news-excerpt{
    font-size: 12px;
    line-height: 1.5;
    
    /* 行数を2行までに抑えて高さを出しすぎないように */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* →アイコンも少しだけ小さく */
  .news-go{
    width: 28px;
    height: 28px;
    font-size: 14px;
  }
}


/* ==============================
   セクション見出し + すべて見る 共通
============================== */

/* 見出し行（PC/SP共通ベース） */
.sec-head-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.sec-head-row .head-inner{
  flex:1;
  text-align:center;
}

.sec-head-row .sec-title{
  margin:0 0 4px;
  font-size:22px;
  font-weight:800;
}
.sec-head-row .sec-desc{
  margin:0;
  font-size:14px;
  color:var(--muted);
}

/* 「すべて見る」ボタン共通デザイン（お知らせと同じ） */
.sec-all{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:700;
  font-size:14px;
  opacity:.9;
  color:#000;
  text-decoration:none;
  padding:8px 16px;
  border-radius:999px;
  border:1px solid #e5e7eb;
  background:#fff;
}
.sec-all:hover{
  opacity:1;
  background:#f9fafb;
}

/* PC：右上に表示（トップのみ） */
@media (min-width:821px){
  .sec-head{
    position:relative;
  }

  .sec-all-top{
    display:inline-flex;
    position:absolute;
    top:50%;
    right:0;
    transform:translateY(-50%);
  }

  .sec-all-bottom{
    display:none;
  }
}

/* SP：タイトル＆説明を中央／すべて見るは下に中央 */
@media (max-width:820px){
  .sec-head-row{
    flex-direction:column;
    align-items:center;
    text-align:center;
  }

  .sec-head-row .sec-title{
    font-size:20px;
  }
  .sec-head-row .sec-desc{
    font-size:13px;
  }

  /* 上のボタンは非表示 */
  .sec-all-top{
    display:none;
  }

  /* 下のボタンを中央寄せ */
  .sec-all-bottom{
    display:flex;
    justify-content:center;
    align-items:center;
    width:max-content;
    margin:20px auto 0;
    font-size:14px;   /* お知らせと同じサイズ */
    padding:8px 16px;
  }
}

/* =========================
   NEWS 詳細ページ
   ========================= */
body.news-detail{
  background:#0f172a; /* 外側は少し濃いめ */
}

/* 全体レイアウト */
.news-detail-main{
  padding:48px 0 80px;
  background:linear-gradient(180deg,#e5e7eb 0,#f9fafb 38%,#f9fafb 100%);
}
.news-detail-container{
  max-width:960px;
  margin:0 auto;
  padding:0 20px;
}

/* パンくず */
.news-detail-breadcrumbs{
  font-size:13px;
  color:#6b7280;
  margin-bottom:18px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.news-detail-breadcrumbs a{
  color:inherit;
  text-decoration:none;
}
.news-detail-breadcrumbs a:hover{
  text-decoration:underline;
}
.news-detail-breadcrumbs .sep{
  opacity:.5;
}

/* 見出しカード */
.news-detail-card{
  background:#ffffff;
  border-radius:22px;
  box-shadow:0 18px 45px rgba(15,23,42,.18);
  padding:26px 26px 30px;
}

/* 上部メタ情報 */
.news-detail-meta{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  font-size:14px;
  color:#6b7280;
  font-weight:700;
}
.news-detail-date{
  font-size:15px;
  font-weight:800;
  color:#1f2937;
}
.news-detail-label{
  padding:4px 12px;
  border-radius:999px;
  background:#111827;
  color:#f9fafb;
  font-size:11px;
  letter-spacing:.12em;
}

/* タイトル */
.news-detail-title{
  font-size:clamp(22px,3vw,28px);
  font-weight:900;
  line-height:1.5;
  margin-bottom:20px;
}

/* 本文 */
.news-detail-body{
  border-top:1px solid #e5e7eb;
  padding-top:20px;
  margin-top:4px;
  font-size:15px;
  line-height:1.9;
  color:#111827;
}
.news-detail-body p{
  margin:0 0 1.3em;
}
.news-detail-body strong{
  font-weight:800;
}
.news-detail-body h2{
  font-size:18px;
  font-weight:900;
  margin:1.8em 0 .6em;
}
.news-detail-body ul{
  margin:0 0 1.4em 1.4em;
  padding:0;
}
.news-detail-body li{
  margin-bottom:.45em;
}

/* 下部「一覧へ戻る」 */
.news-detail-back{
  margin-top:26px;
  display:flex;
  justify-content:flex-start;
}
.news-detail-back a,
.news-detail-back button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 18px;
  border-radius:999px;
  border:1px solid #d1d5db;
  background:#ffffff;
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  color:#111827;
  box-shadow:0 8px 20px rgba(15,23,42,.08);
}
.news-detail-back a:hover,
.news-detail-back button:hover{
  background:#f3f4f6;
}
.news-detail-back a::before,
.news-detail-back button::before{
  content:"←";
  font-size:15px;
}

/* 右ボタン（公式サイト）のクラス：← を消す */
.news-ext-btn::before {
  content: none !important;
}

/* 右側に寄せる */
.news-ext-btn {
  margin-left: auto;
  background:#111827;
  color:#fff;
  border-color:#111827;
}
.news-ext-btn:hover{
  opacity:.9;
}

/* SP調整 */
@media (max-width:640px){
  .news-detail-main{
    padding:32px 0 60px;
  }
  .news-detail-card{
    padding:20px 18px 24px;
    border-radius:18px;
  }
  .news-detail-title{
    font-size:20px;
  }
}



/* ======================================
   Buttons & Pager (共通)
====================================== */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:12px 22px;
  border-radius:999px;
  font-size:15px;
  font-weight:700;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:all .2s ease;
}

.btn-primary{
  background:#ffffff;
  color:#0f172a;
  border-color:#e2e8f0;
  box-shadow:0 12px 28px rgba(15,23,42,0.45);
}
.btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(15,23,42,0.6);
}

.btn-ghost{
  background:transparent;
  color:#e5e7eb;
  border-color:rgba(148,163,184,.7);
}
.btn-ghost:hover{
  background:rgba(15,23,42,.7);
}

/* Pager */
.pager{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  margin-top:24px;
}
.pager .page{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:36px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:#fff;
  color:#111;
  box-shadow:var(--shadow);
  font-weight:700;
}
.pager .page:hover{
  background:#fafafa;
}
.pager .is-current{
  background:#111;
  color:#fff;
  border-color:#111;
}
.pager .prev,
.pager .next{
  font-weight:800;
}
/* ===========================
   FOOTER base
   =========================== */

.footer{
  background:#141414;
  color:#f9fafb;
  font-size:14px;
  padding:48px 0 32px;
}

.foot-inner{
  max-width:1100px;
  margin:0 auto;
  padding:0 24px;
}

/* 3 カラム（左：ロゴ / 中央：ナビ / 右：TOP） */
.foot-nav-flex{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:40px;
}

/* 左ブロック（ロゴ + 住所） */
.foot-nav-bloc:first-child{
  flex:0 0 260px;
}

.foot-nav-bloc:first-child h2 img{
  display:block;
  max-width:170px;   /* ロゴの横幅調整はここ */
  height:auto;
  margin-bottom:16px;
}

.foot-nav-bloc:first-child p{
  margin:0;
  line-height:1.8;
  color:#cbd5e1;
  font-size:13px;
}

/* 右ブロック（ページトップ） */
.pagetop a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* TO TOP アイコンのサイズ調整 */
.pagetop img{
  width: 14px;      /* ←アイコンの横幅（ここを変える） */
  height: auto;
  opacity: 0.85;
  transition: opacity .2s ease;
}

.pagetop img:hover{
  opacity: 1;
}


/* ===========================
   中央ナビ部分（事業内容 / インフォメーション / LINK / SNS）
   =========================== */

.foot-nav{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  column-gap:30px;
}

/* セクション見出し */
.foot-nav nav h3{
  font-size:14px;
  font-weight:700;
  letter-spacing:.14em;
  margin:0 0 10px;
}

/* リスト共通 */
.foot-nav nav ul{
  list-style:none;
  margin:0;
  padding:0;
}

.foot-nav nav li{
  margin-bottom:6px;
}

.foot-nav nav a{
  color:#f9fafb;
  text-decoration:none;
  font-size:12px;
}

.foot-nav nav a:hover{
  text-decoration:underline;
}

/* ===========================
   LINK（MOTA） / SNS
   =========================== */

/* LINK */
.footer-links li{
  margin-bottom:8px;
}

.mota-logo{
  width:200px;      /* MOTA バナーのサイズ */
  max-width:100%;
  height:auto;
  display:block;
}

/* SNS */
.footer-sns{
  display:flex;
  gap:12px;
  align-items:center;
}

.footer-sns li{
  margin-bottom:0;
}

.sns-icon{
  width:25px;       /* Insta / X アイコンの大きさ */
  height:auto;
  display:block;
  opacity:0.9;
  transition:opacity .2s ease;
}

.sns-icon:hover{
  opacity:1;
}

/* ===========================
   コピーライト部
   =========================== */

.copy{
  border-top:1px solid #111827;
  margin-top:32px;
  padding-top:16px;
  font-size:12px;
  color:#9ca3af;
}

.copy-inner{
  max-width:1100px;
  margin:0 auto;
  padding:0 25px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}

.copy-inner .law ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:0;
  padding:0;
}

.copy-inner .law a{
  color:#9ca3af;
  text-decoration:none;
}

.copy-inner .law a:hover{
  text-decoration:underline;
}
.copy {
  background-color: #000000; /* 好きな色に変更 */
}

/* ===========================
   Responsive
   =========================== */

@media (max-width:900px){
  .foot-nav-flex{
    flex-direction:column;
    gap:32px;
  }
  .foot-nav-bloc:first-child{
    flex:1 1 auto;
  }
  .foot-nav{
    grid-template-columns:repeat(2,minmax(0,1fr));
    row-gap:24px;
  }
}

@media (max-width:600px){
  .footer{
    padding:32px 0 24px;
  }
  .foot-nav{
    grid-template-columns:1fr;
  }
  .copy-inner{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* ---------------------------------
   トップページ専用フッター
--------------------------------- */
.footer-top .footer-logo img {
  width: 160px; /* 下層より少し大きめ */
  height: auto;
}

.footer-top .foot-inner {
  padding: 50px 0 40px;
}

/* SNSをLINKの直下にまとめる（PC時） */
@media (min-width: 960px) {
  .footer-top .footer-col--link {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
}

/* SNSアイコンの調整 */
.footer-top .sns-icon {
  width: 26px;
  opacity: 0.9;
  transition: opacity .2s ease;
}
.footer-top .sns-icon:hover {
  opacity: 1;
}

/* MOTAロゴ */
.footer-top .mota-logo {
  width: 180px;
  height: auto;
}

/* COPY 部分をスッキリ */
.copy-top {
  background:#0f0f0f;
  padding: 20px 0;
}

.copy-top .copy-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #cbd5e1;
}

.copy-top .copy-inner a {
  color:#cbd5e1;
}

.copy-top .law ul {
  display: flex;
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.rental-gallery{
  margin-bottom:16px;
}

.rental-gallery-main img{
  width:100%;
  border-radius:12px;
}

.rental-gallery-thumbs{
  display:flex;
  gap:6px;
  overflow-x:auto;
  padding:6px 0;
}

.rental-gallery-thumbs img{
  width:110px;
  height:80px;
  object-fit:cover;
  border-radius:8px;
  flex-shrink:0;
  cursor:pointer;
  opacity:.9;
}

.rental-gallery-thumbs img:hover{
  opacity:1;
}
/* =========================
   Footer レイアウト調整
   ========================= */

/* PC共通：中央寄せ + 横パディング */
.footer {
  padding: 32px 0 24px;
}

.foot-inner {
  max-width: 1060px;          /* 他の .container と同じ幅に */
  margin: 0 auto;             /* 中央寄せ */
  padding: 0 24px;            /* 左右に少しゆとり */
}

/* フッター内の3カラムを横並びにしている前提 */
.foot-nav-flex {
  display: flex;
  gap: 32px;
}

/* =========================
   SP（～768px）用レイアウト
   ========================= */
@media (max-width: 768px) {

  /* コンテンツ全体に左右余白をしっかり付ける */
  .foot-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* 3カラム → 縦積み + 中央寄せ気味に */
  .foot-nav-flex {
    flex-direction: column;
    gap: 28px;
  }

  .foot-nav-bloc {
    width: 100%;
  }

  /* ロゴ＆住所ブロックだけ少しセンター寄せにしたい場合 */
  .foot-nav-bloc:first-child {
    text-align: left;         /* 中央にしたければ center に変更 */
  }
}

/* フッター最下段の黒背景を全幅で安定させる */
.footer .copy{
  background:#000 !important;
  width: 100% !important;
}

.footer .copy-inner{
  max-width: 1040px;      /* あるならお好み */
  margin: 0 auto;
  padding: 14px 20px;
}

/* フッターは必ず一番下で終わらせる */
footer{
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}


/* =========================
   Fixed Contact Bar (PC/SP) - FINAL
========================= */
:root{
  --fc-h: 74px;
  --fc-gap: 12px;
  --fc-radius: 18px;
  --fc-bg: rgba(0,0,0,.88);
  --fc-border: rgba(255,255,255,.10);
  --fc-shadow: 0 18px 38px rgba(0,0,0,.35);
}

.fixed-contact{
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 14px;
  z-index: 999999;
  pointer-events: none;
  transition: transform .22s ease, opacity .22s ease;
}
.fixed-contact__inner{
  pointer-events: auto;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 16px;
  min-height: var(--fc-h);
  padding: 14px 16px;
  border-radius: var(--fc-radius);
  background: var(--fc-bg);
  border: 1px solid var(--fc-border);
  box-shadow: var(--fc-shadow);
  backdrop-filter: blur(10px);
}

/* 左 */
.fixed-contact__left{
  min-width: 0;
  display:flex;
  flex-direction: column;
  gap: 6px;
}
.fixed-contact__tel{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  color:#fff;
  text-decoration:none;
  font-weight: 900;
  line-height: 1.05;
}
.fixed-contact__tel-ic{
  display:inline-flex;
  width: 22px;
  height: 22px;
  align-items:center;
  justify-content:center;
  border-radius: 8px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  font-size: 14px;
}
.fixed-contact__tel-num{
  font-size: 22px;
  letter-spacing: .04em;
}
.fixed-contact__meta{
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items:center;
  font-size: 12px;
  line-height: 1.2;
  color: rgba(255,255,255,.78);
  white-space: nowrap;
}
.fixed-contact__sep{ opacity:.55; }

/* 右 */
.fixed-contact__right{
  display:flex;
  align-items:center;
  gap: var(--fc-gap);
  flex: 0 0 auto;
}
.fixed-contact__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .02em;
  text-decoration:none;
  white-space: nowrap;
  border: 1px solid rgba(255,255,255,.18);
  transition: transform .18s ease, opacity .18s ease, background .18s ease, border-color .18s ease;
}
.fixed-contact__btn:hover{ transform: translateY(-1px); opacity: .95; }

.fixed-contact__btn--form{
  background: rgba(255,255,255,.06);
  color:#fff;
  border-color: rgba(255,255,255,.28);
}
.fixed-contact__btn--form:hover{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.45);
}
.fixed-contact__btn--line{
  background: #fff;
  color:#000;
  border-color: #fff;
}

.fixed-contact__top{
  width: 46px;
  height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
  color:#fff;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.fixed-contact__top-ic{
  font-size: 18px;
  font-weight: 900;
  transform: translateY(-1px);
}

/* バー分の余白：JSが付ける class がある時だけ */
body.has-fixed-contact{
  padding-bottom: calc(var(--fc-h) + 36px);
}

/* フッター付近は収納（↑だけ残す） */
.fixed-contact.is-collapse .fixed-contact__inner{
  justify-content: flex-end;
  padding: 10px;
  min-height: 0;
}
.fixed-contact.is-collapse .fixed-contact__left,
.fixed-contact.is-collapse .fixed-contact__btn{
  display:none;
}

/* ナビ（ハンバーガー）開いてる時はバーを隠す */
body.scroll-lock .fixed-contact{
  opacity: 0;
  transform: translateY(18px);
  pointer-events: none;
}

/* SP */
@media (max-width: 900px){
  :root{ --fc-h: 82px; }

  .fixed-contact{ left: 12px; right: 12px; bottom: 10px; }
  .fixed-contact__inner{ padding: 12px; gap: 10px; }
  .fixed-contact__tel-num{ font-size: 18px; }

  .fixed-contact__meta{
    font-size: 11px;
    gap: 6px;
    max-width: 52vw;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .fixed-contact__right{
    display:grid;
    grid-template-columns: 1fr 46px;
    grid-template-rows: auto auto;
    gap: 8px;
    align-items:center;
  }
  .fixed-contact__btn{ height: 40px; padding: 0 12px; font-size: 13px; }
  .fixed-contact__btn--form{ grid-column: 1; grid-row: 1; }
  .fixed-contact__btn--line{ grid-column: 1; grid-row: 2; }
  .fixed-contact__top{ grid-column: 2; grid-row: 1 / span 2; }
}
/* =========================
   Fixed Contact Bar: 기본は固定表示
========================= */
.fixed-contact{
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 14px;
  z-index: 900;              /* nav(999999)より下でOK */
  transition: opacity .18s ease, transform .18s ease;
}

/* 重要：ハンバーガー（オーバーレイ）を開いたら完全に消す */
body.scroll-lock .fixed-contact,
#primaryNav.open ~ .fixed-contact{
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
}

/* バーに隠れない余白（必要なら） */
body.has-fixed-contact main,
body.has-fixed-contact footer{
  padding-bottom: 120px;
}


/* =========================
   Fixed Contact Bar 表示制御
========================= */
.fixed-contact{
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 14px;
  z-index: 900;
  transition: opacity .2s ease, transform .2s ease;
}

/* ハンバーガーOPEN中は消す */
body.scroll-lock .fixed-contact{
  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
}

/* フッターに入ったら：バーを畳んで↑だけ残す */
body.is-footer-in .fixed-contact{
  opacity: 1;
  transform: none;
  pointer-events: none; /* 外枠は触れない */
}

body.is-footer-in .fixed-contact__inner{
  pointer-events: auto; /* ↑だけ押せるように */
  justify-content: flex-end;
  gap: 0;
  padding: 10px;
  min-height: 0;
  width: fit-content;
  margin-left: auto;   /* 右寄せ */
}

/* 左（TEL/営業時間）とCTAボタンは消す */
body.is-footer-in .fixed-contact__left,
body.is-footer-in .fixed-contact__btn{
  display: none;
}

/* ↑ボタンは残す（サイズはそのまま） */
body.is-footer-in .fixed-contact__top{
  display: inline-flex;
}


/* フッターに隠れないための余白 */
body.has-fixed-contact main,
body.has-fixed-contact footer{
  padding-bottom: 120px;
}

/* 電話グループ */
.fixed-contact__tel-group{
  display:flex;
  flex-direction:column;
  gap:4px;
}

/* ラベル */
.fixed-contact__label{
  font-size:11px;
  opacity:.75;
}

/* 緊急用ラベル */
.fixed-contact__label.urgent{
  color:#fbbf24; /* 黄色で注意喚起 */
  font-weight:700;
}

/* 緊急TEL */
.fixed-contact__tel.urgent{
  color:#fbbf24;
  font-weight:900;
}

/* SPで少し詰める */
@media (max-width: 640px){
  .fixed-contact__tel-num{
    font-size:15px;
  }
}

/* =========================
   Fixed Contact Bar - Balance Patch
========================= */
.fixed-contact{
  left: 16px;
  right: 16px;
  bottom: 16px;
}

.fixed-contact__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 18px 18px;
}

/* ---- LEFT ---- */
.fixed-contact__left{
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.fixed-contact__tel-group{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fixed-contact__label{
  font-size: 12px;
  opacity: .72;
  letter-spacing: .02em;
}

.fixed-contact__tel{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.fixed-contact__tel-ic{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.08);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10);
  font-size: 16px;
}

.fixed-contact__tel-num{
  font-size: 28px;
  font-weight: 900;
  letter-spacing: .03em;
  line-height: 1.05;
  color: #fff;
}

/* 急ぎ（色だけ強めに） */
.fixed-contact__tel-group.is-urgent .fixed-contact__label{
  opacity: 1;
  color: #fbbf24; /* amber */
  font-weight: 800;
}
.fixed-contact__tel.urgent .fixed-contact__tel-num{
  color: #fbbf24;
}
.fixed-contact__tel.urgent .fixed-contact__tel-ic{
  background: rgba(251,191,36,.14);
  box-shadow: inset 0 0 0 1px rgba(251,191,36,.22);
}

/* 営業時間行 */
.fixed-contact__meta{
  font-size: 13px;
  opacity: .78;
  line-height: 1.35;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* ---- RIGHT ---- */
.fixed-contact__right{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex: 0 0 auto;
}

.fixed-contact__btn{
  height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .02em;
  white-space: nowrap;
}

.fixed-contact__top{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ---- PCで横に広すぎるのを防ぐ ---- */
@media (min-width: 901px){
  .fixed-contact__left{
    max-width: 680px;  /* 左を伸ばしすぎない */
  }
}

/* ---- SP：縦積みで崩れ防止 ---- */
@media (max-width: 900px){
  .fixed-contact{
    left: 12px;
    right: 12px;
    bottom: 12px;
  }

  .fixed-contact__inner{
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    padding: 16px 14px;
  }

  .fixed-contact__right{
    width: 100%;
    justify-content: space-between;
  }

  .fixed-contact__btn{
    flex: 1;
  }

  .fixed-contact__top{
    flex: 0 0 44px;
  }

  .fixed-contact__tel-num{
    font-size: 24px;
  }
}

/* ======================================
   Fixed Contact Bar - Size Down Patch
   約50〜55%サイズに圧縮（PC / SP 共通）
====================================== */

/* 全体 */
.fixed-contact{
  left: 12px;
  right: 12px;
  bottom: 12px;
}

.fixed-contact__inner{
  padding: 12px 14px;          /* ← 元18px → 圧縮 */
  gap: 14px;                   /* ← 元22px */
}

/* ----------------
   LEFT（電話）
---------------- */
.fixed-contact__left{
  gap: 10px;
}

.fixed-contact__label{
  font-size: 12px;
}

.fixed-contact__tel-ic{
  width: 26px;
  height: 26px;
  font-size: 13px;
}

.fixed-contact__tel-num{
  font-size: 16px;             /* ← 元28px */
  letter-spacing: .02em;
}

.fixed-contact__tel-group.is-urgent .fixed-contact__tel-num{
  font-size: 16px;             /* 急ぎだけ少し強調 */
}

/* 営業時間 */
.fixed-contact__meta{
  font-size: 8px;
  gap: 6px;
}

/* ----------------
   RIGHT（ボタン）
---------------- */
.fixed-contact__right{
  gap: 8px;
}

.fixed-contact__btn{
  height: 36px;                /* ← 元44px */
  padding: 0 14px;
  font-size: 13px;
}

.fixed-contact__top{
  width: 36px;
  height: 36px;
  border-radius: 10px;
}

/* ----------------
   SP（さらに少しだけ詰める）
---------------- */
@media (max-width: 900px){
  .fixed-contact{
    left: 10px;
    right: 10px;
    bottom: 10px;
  }

  .fixed-contact__inner{
    padding: 10px 12px;
    gap: 10px;
  }

  .fixed-contact__tel-num{
    font-size: 18px;
  }

  .fixed-contact__tel-group.is-urgent .fixed-contact__tel-num{
    font-size: 20px;
  }

  .fixed-contact__btn{
    height: 34px;
    font-size: 12px;
  }
}

/* === Fixed Contact: SIZE ONLY (最後に追加) === */
.fixed-contact__inner{
  padding: 8px 18px !important;
  gap: 10px !important;
  border-radius: 16px !important;
}
.fixed-contact__tel-num{ font-size: 16px !important; }
.fixed-contact__btn{ height: 34px !important; font-size: 12px !important; }
.fixed-contact__top{ width: 34px !important; height: 34px !important; }

@media (max-width: 900px){
  .fixed-contact__inner{ padding: 9px 11px !important; }
  .fixed-contact__tel-num{ font-size: 18px !important; }
}

/* ======================================
   Fixed Contact：上の余白だけ詰める（末尾に追加）
====================================== */

/* 黒カード内の上paddingを下より小さくする */
.fixed-contact__inner{
  padding-top: 1px !important;   /* ←ここで上の余白が減る */
  padding-bottom: 16px !important;
}

/* 左ブロックの縦間隔を詰める */
.fixed-contact__left{
  gap: 4px !important;
}
.fixed-contact__tel-group{
  gap: 2px !important;
}

/* 「通常のお問い合わせ」ラベルが余白っぽく見える場合は少し詰める */
.fixed-contact__label{
  margin-bottom: -2px !important;
  line-height: 1.1 !important;
}


/* ======================================
   Fixed Contact：収納時（↑のみ）を完全に中央揃え
====================================== */

/* 収納時は外枠の役割を消す */
body.is-footer-in .fixed-contact{
  pointer-events: none;
}

/* 黒カードを↑ボタンサイズに変形 */
body.is-footer-in .fixed-contact__inner{
  pointer-events: auto;

  width: 44px;                 /* ← ↑ボタンと同じ */
  height: 44px;
  padding: 0 !important;

  display: flex;
  align-items: center;
  justify-content: center;

  margin-left: auto;           /* 右下に寄せる */
  border-radius: 14px;

  box-shadow: 0 10px 26px rgba(0,0,0,.45);
}

/* 左側・CTAは完全に消す */
body.is-footer-in .fixed-contact__left,
body.is-footer-in .fixed-contact__btn{
  display: none !important;
}

/* ↑ボタンを中央に */
body.is-footer-in .fixed-contact__top{
  width: 44px;
  height: 44px;
  border-radius: 14px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: transparent;     /* 二重背景防止 */
  border: none;                /* 枠ズレ防止 */
}
