@charset "UTF-8"; /* /css/style-fix.css */ 
/* ========== Header Nav 微調整 ========== */
.site-header .main-nav a:hover, .site-header .main-nav a.is-active{
  color:#fff; background: var(--accent-hover, #16692c); border-color: transparent;
}

/* PC: ハンバーガー消す／横並び */
@media (min-width:641px){
  #nav-toggle{ display:none !important; }
  .site-header .main-nav{
    display:flex !important; position:static !important; background:transparent !important;
    padding:0 !important; border:0 !important;
  }
}

/* SP: 右下バーガー＋ドロップダウン */
@media (max-width:640px){
  .site-header{ position:sticky; top:0; padding:10px 14px; display:flex; align-items:center; overflow:visible; min-height:60px; }
  #nav-toggle{
    all:unset; position:absolute; right:12px; bottom:10px;
    width:44px; height:44px; border-radius:12px;
    border:1px solid rgba(255,255,255,.30); background:rgba(0,0,0,.22);
    box-shadow:0 2px 8px rgba(0,0,0,.20); cursor:pointer; z-index:60; display:block;
  }
  #nav-toggle::before{
    content:""; display:block; margin:0 auto; width:22px; height:2px; background:#fff; border-radius:2px;
    box-shadow:0 -6px 0 0 #fff, 0 6px 0 0 #fff;
  }
  .site-header .main-nav{
    display:none !important; position:absolute; left:0; right:0; top:100%;
    background:#1f2937; border-bottom:1px solid rgba(255,255,255,.15);
    padding:10px 14px 12px; z-index:55;
  }
  .site-header .main-nav.is-open{ display:block !important; }
  .site-header .main-nav ul{ flex-direction:column; gap:8px; }
  .site-header .main-nav a{
    display:block; width:100%; padding:12px 14px; border-radius:10px;
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:#fff; font-weight:800;
  }
  /* SP時はフッターナビ非表示 */
  .footer-nav { display: none !important; }
}

/* ========== Back to Top（全ページ統一・常時表示版） ========== */
#back-to-top{
  position:fixed !important;
  /* コンテナ幅に沿って右端に寄せる。フォールバック付き */
  right:max(12px, calc((100vw - var(--container-w, min(960px, 92vw)))/2 - 44px - 12px)) !important;
  bottom:16px !important;
  z-index:999 !重要;
  display:block; /* ← JSで出し入れするなら none にして下のJSを使う */
}
#back-to-top a{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:999px;
  background:var(--accent, #1f8a3a); color:#fff; font-weight:900; font-size:18px;
  box-shadow:var(--shadow, 0 6px 18px rgba(0,0,0,.18));
  border:1px solid color-mix(in oklab, var(--accent, #1f8a3a) 80%, #000 20%);
  text-decoration:none;
}
#back-to-top a:hover{ background:var(--accent-hover, #16692c); }
@media (max-width:640px){
  #back-to-top{ right:12px !important; bottom:12px !important; }
}

/* ========== Trust Slider（必要最小限のfix） ========== */
.trust-slider{
  width:100%; max-width: var(--container-w, min(960px, 92vw)); aspect-ratio:16/9;
  margin:12px auto 4px; border-radius:var(--radius-lg, 14px);
  overflow:hidden; background:#fff; border:1px solid var(--border, #e5e7eb);
  box-shadow:var(--shadow, 0 2px 10px rgba(0,0,0,.06)); position:relative; box-sizing:border-box;
}
.trust-slider .slides{ height:100%; display:flex; transform:translateX(0); transition:transform .6s ease; }
.trust-slider img{ flex:0 0 100%; width:100%; height:100%; object-fit:contain; background:#fff; }
.trust-slider .dots{ position:absolute; left:0; right:0; bottom:10px; display:flex; justify-content:center; gap:6px; z-index:2; }
.trust-slider .dot{ width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.85); border:1px solid rgba(0,0,0,.15); cursor:pointer; }
.trust-slider .dot.active{ background:var(--accent, #1f8a3a); border-color:var(--accent, #1f8a3a); }

/* コンテナ幅 900px に合わせたいセクション用（任意） */
#trust .trust-slider{ max-width: 900px !important; margin-left:auto !important; margin-right:auto !important; }
@media (max-width: 940px){ #trust .trust-slider{ max-width: 100% !important; } }

/* ========== Slider Captions（統一・重複排除） ========== */
.hero-slider .caption,
.trust-slider .caption{
  position:absolute; left:16px; right:16px; bottom:18px;
  max-width:min(720px, 92%);
  display:inline-flex; flex-direction:column; gap:6px;
  color:#fff; z-index:4; pointer-events:none;
  background:rgba(0,0,0,.55); padding:12px 14px; border-radius:12px;
  white-space:normal; overflow-wrap:anywhere; word-break:break-word;
  text-shadow:0 2px 6px rgba(0,0,0,.35);
}
.hero-slider .caption.pos-right,
.trust-slider .caption.pos-right{ margin-left:auto; text-align:right; }

.hero-slider .caption .cap-title,
.trust-slider .caption .cap-title{
  margin:0; font-weight:900; font-size:clamp(16px, 2.2vw, 20px); line-height:1.35;
}
.hero-slider .caption .cap-sub,
.trust-slider .caption .cap-sub{
  margin:0; font-weight:700; font-size:clamp(13px, 1.6vw, 16px); line-height:1.55;
  display:inline-block; align-self:flex-start; background:rgba(0,0,0,.55);
  padding:6px 10px; border-radius:8px;
}
.hero-slider .caption.pos-right .cap-sub,
.trust-slider .caption.pos-right .cap-sub{ align-self:flex-end; }

@media (max-width:640px){
  .hero-slider .caption, .trust-slider .caption{
    left:12px; right:12px; bottom:12px; max-width:96%; padding:10px 12px; border-radius:10px;
  }
  .hero-slider .caption .cap-title, .trust-slider .caption .cap-title{
    font-size:clamp(15px, 4.2vw, 18px);
  }
  .hero-slider .caption .cap-sub, .trust-slider .caption .cap-sub{
    font-size:clamp(12px, 3.6vw, 15px);
  }
}

/* === TEL CTA（電話導線） ============================== */
.main-nav .nav-phone { margin-left: 8px; }
.main-nav .tel-link{
  display:inline-block; padding:8px 12px; border-radius:9999px;
  background:#17a34a; color:#fff; font-weight:700; text-decoration:none;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
.main-nav .tel-link:hover{ filter:brightness(1.05); }

/* スマホ固定（PCでは非表示） */
.call-fixed{
  position:fixed; right:16px; bottom:16px; padding:14px 18px;
  border-radius:9999px; box-shadow:0 6px 18px rgba(0,0,0,.18);
  background:#17a34a; color:#fff; font-weight:800; text-decoration:none;
  z-index:9999; line-height:1;
}
@media (min-width: 768px){
  .call-fixed{ display:none; }
}

/* ========== TEL CTA（電話導線） ========== */

/* PC/共通：ヘッダー右側に電話。SPでは隠す */
.main-nav .nav-phone { margin-left: auto; }         /* 電話を右端へ */
.main-nav .tel-link{
  display:inline-block; padding:8px 12px; border-radius:9999px;
  background:#17a34a; color:#fff; font-weight:700; text-decoration:none;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
.main-nav .tel-link:hover{ filter:brightness(1.05); }

/* SPでヘッダー内の電話は隠す（固定ボタンと重複しないように） */
@media (max-width: 767.98px){
  .main-nav .nav-phone{ display:none !important; }
}

/* SP固定ボタン：右下に常時表示（PCでは完全非表示） */
.call-fixed{
  position:fixed !important; right:16px !important; bottom:16px !important;
  display:inline-flex !important; align-items:center; justify-content:center;
  padding:14px 18px !important; border-radius:9999px !important;
  box-shadow:0 6px 18px rgba(0,0,0,.18) !important;
  background:#17a34a !important; color:#fff !important; font-weight:800 !important;
  text-decoration:none !important; line-height:1 !important; z-index:10000 !important;
}

/* PCでは固定ボタンを出さない（!importantで確実に隠す） */
@media (min-width: 768px){
  .call-fixed{ display:none !important; }
}

/* === TEL: 強制サイズ & レイアウト保護（他CSSに勝つ） === */

/* どこかのグローバル svg ルール対策 */
svg.icon, .icon svg{
  width:1em !important;
  height:1em !important;
  display:inline-block !important;
  fill:currentColor !important;
}

/* ヘッダー内のアイコン＋番号 */
.tel-link--header{ 
  display:inline-flex !important; align-items:center !important; gap:.45em !important;
  height:40px !important; padding:8px 12px !important; border-radius:9999px !important;
  background:#17a34a !important; color:#fff !important; font-weight:700 !important; text-decoration:none !important;
  box-shadow:0 4px 12px rgba(0,0,0,.12) !重要;
}
.tel-link--header .icon{ width:18px !important; height:18px !important; }

/* SPではヘッダー電話を非表示（固定ボタンと重複させない） */
@media (max-width: 767.98px){
  .main-nav .nav-phone{ display:none !important; }
}
