/* =========================================================
   GoEnインフィニティ UI改善 追加CSS（統合版）
   ========================================================= */

/* --------------------------------------------------
   1. ヘッダー屋号の視認性
   -------------------------------------------------- */
#site-header .logo-text span{
  color: #fff !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.35);
  letter-spacing: .02em;
}
/* スクロール後（main.jsが付与する .scrolled クラス）
   背景がネイビーなので白文字を維持 */
#site-header.scrolled .logo-text span{
  color: #fff !important;
  text-shadow: none;
}

/* --------------------------------------------------
   2. 空の.badge（意図しない表示崩れ）を非表示
   -------------------------------------------------- */
.badge:empty,
.badge.badge-navy:empty{
  display: none !important;
}

/* --------------------------------------------------
   3. フッター
   -------------------------------------------------- */
/* 対応エリア注釈の誤認防止 */
#site-footer .footer-top p.footer-nav-title{ cursor: default; }
#site-footer .footer-area-note{ cursor: default; }

/* 屋号リンク */
#site-footer a.footer-brand-link{
  color: inherit; text-decoration: none; display: inline-block;
}
#site-footer a.footer-brand-link:hover{ opacity: .85; }

/* フッター4カラム：左(会社情報)と右(ナビ3列)を分離・右寄せ */
@media (min-width: 900px){
  #site-footer .footer-top{
    display: grid !important;
    grid-template-columns: minmax(280px, 440px) 1fr auto auto auto;
    column-gap: 3rem;
    row-gap: 2rem;
    align-items: start;
  }
  #site-footer .footer-top > div:nth-child(1){ grid-column: 1; }
  #site-footer .footer-top > div:nth-child(2){ grid-column: 3; }
  #site-footer .footer-top > div:nth-child(3){ grid-column: 4; }
  #site-footer .footer-top > div:nth-child(4){ grid-column: 5; }
  #site-footer .footer-top > div:nth-child(2){
    border-left: 0 !important;
    padding-left: 0 !important;
  }
  #site-footer .footer-top > div:nth-child(4){ min-width: 12.5rem; }
  #site-footer .footer-top .footer-nav-list{ white-space: nowrap; }
  #site-footer .footer-top .footer-nav-title{ margin-bottom: .75rem; }
}
@media (min-width: 900px) and (max-width: 1100px){
  #site-footer .footer-top{ column-gap: 2.25rem; }
}
#site-footer .footer-top{ align-items: flex-start; }
#site-footer .footer-nav-list li{
  line-height: 1.5;
  margin-bottom: 1rem;
}

/* --------------------------------------------------
   4. ページトップへ戻るボタン
   -------------------------------------------------- */
#scroll-to-top{
  position: fixed; right: 20px; bottom: 24px;
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(13,31,60,.88); color: #fff;
  border: 1px solid rgba(201,168,76,.6);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
  cursor: pointer; z-index: 900;
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
}
#scroll-to-top.is-visible{ opacity: 1; visibility: visible; transform: translateY(0); }
#scroll-to-top:hover{ background: #c9a84c; color: #0d1f3c; }
#scroll-to-top svg{ width: 20px; height: 20px; }
@media (max-width: 767px){
  #scroll-to-top{ bottom: 76px; right: 14px; width: 44px; height: 44px; }
}

/* --------------------------------------------------
   5. モバイル追従フッター（電話 / お問い合わせ の2分割）
   -------------------------------------------------- */
#mobile-sticky-footer{
  display: none; position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 950; background: rgba(13,31,60,.96);
  backdrop-filter: blur(6px);
  border-top: 1px solid rgba(201,168,76,.35);
  box-shadow: 0 -4px 16px rgba(0,0,0,.22);
}
#mobile-sticky-footer .msf-inner{ display: grid; grid-template-columns: 1fr 1fr; }
#mobile-sticky-footer a{
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px; padding: 10px 4px 12px;
  color: #fff; font-size: 10px; letter-spacing: .04em;
  text-decoration: none; background: transparent; border: 0; cursor: pointer;
}
#mobile-sticky-footer a + a{ border-left: 1px solid rgba(255,255,255,.08); }
#mobile-sticky-footer .msf-tel{ background: #c9a84c; color: #0d1f3c; font-weight: 700; }
#mobile-sticky-footer .msf-tel:hover{ background: #d6b860; }
#mobile-sticky-footer svg{ width: 20px; height: 20px; }
@media (max-width: 767px){
  #mobile-sticky-footer{ display: block; }
  body{ padding-bottom: 62px; }
}
/* メニューボタンを非表示 */
#msf-menu{ display: none !important; }

/* --------------------------------------------------
   6. モバイル時の電話アイコン（ヘッダー）
   -------------------------------------------------- */
.header-tel-icon{
  display: none; width: 40px; height: 40px;
  align-items: center; justify-content: center;
  color: #c9a84c; margin-right: 4px;
}
.header-tel-icon svg{ width: 22px; height: 22px; }
@media (max-width: 767px){ .header-tel-icon{ display: inline-flex; } }

/* --------------------------------------------------
   7. ブログカード共通（works/ & トップ統一）
   -------------------------------------------------- */

/* グリッド：モバイル1列 → PC3列 */
.blog-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px){
  .blog-grid{
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.75rem;
  }
}

/* カード：縦並び・白背景・角丸・影 */
.blog-list-card{
  display: block !important;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  text-decoration: none !important;
  color: inherit !important;
  transition: transform 0.3s, box-shadow 0.3s;
}
.blog-list-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.1);
}

/* サムネイル：カード幅いっぱいに覆う（左右余白なし） */
.blog-list-thumb{
  width: 100% !important;
  height: 200px !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center;
}
/* スマホではやや低めに */
@media (max-width: 767px){
  .blog-list-thumb{
    height: 180px !important;
  }
}
/* タブレット縦 */
@media (min-width: 768px) and (max-width: 1024px){
  .blog-list-thumb{
    height: 180px !important;
  }
}

/* No Image プレースホルダー */
.blog-list-thumb--empty{
  height: 180px !important;
  background: #e0ddd8;
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 0.8rem;
}

/* テキスト部分の余白 */
.blog-list-card > div{
  padding: 1rem 1.2rem 1.3rem;
}

/* --------------------------------------------------
   8. ブログ一覧・カテゴリページ
   -------------------------------------------------- */

/* CTA セクションを非表示（ブログ一覧 & カテゴリページ） */
body.blog .cta-sec,
body.archive .cta-sec{
  display: none !important;
}

/* 「すべて」ボタン：ネイビー背景の時に白文字 */
body.blog .sec .container > .fade-up > a:first-child{
  color: #fff !important;
}

/* --------------------------------------------------
   9. ブログ カテゴリナビ
   -------------------------------------------------- */
.blog-cat-nav{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 2rem;
}
.blog-cat-btn{
  display: inline-block;
  padding: 8px 20px;
  border-radius: 40px;
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.25s;
  background: #f4f7fb;
  color: #1B2A4A;
}
.blog-cat-btn:hover{
  background: #e2e8f0;
}
.blog-cat-btn.is-active{
  background: #0d1f3c;
  color: #fff !important;
}