/*
 * 店舗詳細ページ(single-shop.php)専用CSS。
 * is_singular('shop')のときだけfunctions.phpのwp_enqueue_scriptsで読み込む。
 * デザインはshop.html(Claude Designの見本)を再現したもの。
 */
.bn-shop-standalone { background:#ffffff; }
.bn-shop-standalone,
.bn-shop-standalone * { box-sizing:border-box; }
.bn-shop-standalone {
  color:#202723; font-family:"Zen Kaku Gothic New","Noto Sans JP",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.6;
}
/* ※ここは意図的に「.bn-shop-standalone a」ではなく素の「a」にしている。
   スコープを付けると詳細度が上がり、.bn-btn-primaryなど単一クラスの
   ボタン系セレクタ(詳細度0,1,0)より強くなってしまい、ボタンの文字色(白)が
   この緑色で上書きされて見えなくなる不具合が出るため。 */
a { color:#1F5134; text-decoration:none; }
a:hover { color:#2E7A4D; text-decoration:underline; }
.bn-shop-standalone .bn-list { list-style:none; }

.bn-container { max-width:1160px; margin:0 auto; padding:0 24px; }
.bn-breadcrumb { padding-top:16px; font-size:12px; color:#6B7673; }
.bn-section { padding:24px 0 8px; }

.bn-h2 { font-size:22px; font-weight:900; margin:0 0 16px; display:flex; align-items:center; gap:10px; }
.bn-h2-bar { width:6px; height:22px; background:#1F5134; border-radius:3px; display:inline-block; }

/* ヒーロー */
.bn-hero {
  display:flex; gap:28px; align-items:center; border:1px solid #E3E9E4; border-radius:18px;
  padding:24px; background:#fff; box-shadow:0 2px 16px rgba(31,81,52,0.05);
}
.bn-hero-logo {
  width:132px; height:132px; flex:0 0 auto; border-radius:16px; background:#F2F7F3;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.bn-hero-logo img { width:100%; height:100%; object-fit:cover; display:block; }
.bn-hero-body { flex:1 1 0; min-width:0; }
.bn-h1 { font-size:34px; font-weight:900; margin:0 0 10px; letter-spacing:0.01em; }
.bn-rating { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:14px; }
.bn-rating-stars { font-size:18px; letter-spacing:2px; }
.bn-rating-num { font-weight:900; font-size:20px; }
.bn-rating-count { color:#6B7673; font-size:13px; }

/* クイック問い合わせ */
.bn-quickbox {
  background:#F2F7F3; border-radius:18px; padding:22px 24px; display:flex; gap:20px;
  align-items:center; flex-wrap:wrap; justify-content:space-between;
}
.bn-quickbox-title { font-weight:900; font-size:19px; margin-bottom:4px; }
.bn-quickbox-sub { color:#54605A; font-size:13px; }
.bn-quickbox-buttons { display:flex; gap:12px; flex-wrap:wrap; }

.bn-btn-primary {
  display:flex; align-items:center; justify-content:center; gap:10px; background:#1F5134; color:#fff;
  padding:15px 26px; border-radius:12px; font-weight:900; font-size:17px;
  box-shadow:0 6px 18px rgba(31,81,52,0.25);
}
.bn-btn-primary:hover { color:#fff; text-decoration:none; background:#26653F; }
.bn-btn-outline {
  display:flex; align-items:center; justify-content:center; gap:8px; background:#fff; color:#1F5134;
  border:2px solid #1F5134; padding:15px 22px; border-radius:12px; font-weight:900; font-size:16px;
}
.bn-btn-outline:hover { text-decoration:none; background:#F2F7F3; }

/* 安心ポイント */
.bn-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.bn-card { border:1px solid #E3E9E4; border-radius:16px; padding:20px; }
.bn-card-title { font-weight:900; font-size:16px; margin:0 0 12px; }
.bn-card-text { margin:0; font-size:14px; line-height:1.9; color:#3C4741; }
.bn-pills { display:flex; flex-wrap:wrap; gap:8px; }
.bn-pill {
  border:1px solid #CFDED4; color:#1F5134; font-size:13px; font-weight:500;
  padding:6px 12px; border-radius:999px;
}
.bn-list { font-size:14px; line-height:2; color:#3C4741; margin:0; padding:0; }
.bn-list li { padding-left:1.1em; position:relative; }
.bn-list li::before { content:"・"; position:absolute; left:0; }

/* 料金
   ※base_priceは「8,000円〜」のような短い数字だけでなく、業者によっては
   「植木剪定 高さ1mあたり1100円〜/伐採 高さ1mあたり3500円〜...」のような
   長い説明文が入ることがあるため、大きな見出し級の文字サイズにはせず、
   長文でも折り返して読める大きさ・太さにしている。 */
.bn-price-banner {
  background:#1F5134; color:#fff; border-radius:16px; padding:22px 24px; display:flex;
  flex-direction:column; gap:6px; margin-bottom:16px;
}
.bn-price-label { font-size:14px; opacity:0.85; }
.bn-price-num { font-size:20px; font-weight:700; line-height:1.5; overflow-wrap:break-word; }
.bn-plans { border:1px solid #E3E9E4; border-radius:16px; overflow:hidden; }
.bn-plan-row {
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:18px 22px; border-bottom:1px solid #EDF2EE;
}
.bn-plan-row:last-child { border-bottom:none; }
.bn-plan-row-alt { background:#F8FBF9; }
.bn-plan-name { font-weight:900; font-size:16px; margin:0; }
.bn-plan-price { font-weight:900; font-size:18px; color:#1F5134; text-align:right; overflow-wrap:break-word; }

/* 基本情報 */
.bn-info-table { border:1px solid #E3E9E4; border-radius:16px; overflow:hidden; font-size:15px; }
.bn-info-row {
  display:grid; grid-template-columns:180px 1fr; gap:16px; padding:16px 22px;
  border-bottom:1px solid #EDF2EE;
}
.bn-info-row:last-child { border-bottom:none; }
.bn-info-label { font-weight:700; color:#1F5134; }
.bn-info-value { color:#3C4741; line-height:1.8; word-break:break-word; }
.bn-info-value a.bn-info-tel { font-weight:900; font-size:18px; }

/* 口コミ */
.bn-grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.bn-review-card { border:1px solid #E3E9E4; border-radius:16px; padding:20px; background:#fff; }
.bn-review-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
.bn-review-score { background:#1F5134; color:#fff; font-weight:900; font-size:15px; padding:4px 10px; border-radius:8px; }
.bn-review-stars { letter-spacing:1px; }
.bn-review-meta { font-size:13px; color:#6B7673; margin-bottom:10px; }
.bn-review-body { margin:0; font-size:14px; line-height:1.9; color:#3C4741; }

/* 最終CTA */
.bn-cta-box { border:2px solid #1F5134; border-radius:20px; padding:32px 28px; text-align:center; }
.bn-cta-title { font-size:24px; font-weight:900; margin:0 0 20px; }
.bn-cta-buttons { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.bn-cta-phone { flex-direction:column; padding:16px 40px; }
.bn-cta-phone-sub { font-size:12px; opacity:0.85; font-weight:500; }
.bn-cta-phone-num { font-size:26px; font-weight:900; line-height:1.3; }

.bn-footnote { padding:10px 2px 0; font-size:12px; color:#6B7673; }
.bn-copyright { padding:28px 24px 40px; text-align:center; color:#8A948E; font-size:12px; }

/* モバイル追従バー */
.bn-sticky-cta {
  display:none; position:fixed; left:0; right:0; bottom:0; background:rgba(255,255,255,0.96);
  border-top:1px solid #E3E9E4; padding:10px 12px; gap:10px; box-shadow:0 -4px 16px rgba(0,0,0,0.06); z-index:50;
}
.bn-sticky-cta a { flex:1 1 0; text-align:center; padding:14px; border-radius:12px; font-weight:900; font-size:15px; }
.bn-sticky-cta .bn-btn-primary { flex:1.4 1 0; }

@media (max-width:860px) {
  .bn-grid2, .bn-grid3 { grid-template-columns:1fr !important; }
  /* ヒーローはPCと同じ「画像+情報を横並び」を維持(画像を縮小して確保) */
  .bn-hero { flex-wrap:nowrap !important; align-items:flex-start !important; gap:14px !important; padding:16px !important; }
  .bn-hero-logo { width:80px !important; height:80px !important; flex:0 0 80px !important; }
  .bn-hero-body { flex:1 1 auto !important; min-width:0 !important; }
  /* プランの価格行もPCと同じく名前・価格を横並びのまま(空きが少ないので余白だけ調整) */
  .bn-plan-row { gap:10px !important; padding:12px 14px !important; }
  .bn-plan-name { font-size:14px !important; }
  .bn-plan-price { font-size:16px !important; }
  .bn-container { padding-left:16px !important; padding-right:16px !important; }
  .bn-h1 { font-size:20px !important; margin:0 0 6px !important; }
  .bn-sticky-cta { display:flex !important; }
  .bn-shop-standalone { padding-bottom:96px; }
  .bn-info-row { grid-template-columns:1fr !important; gap:4px !important; }
  .bn-review-head { flex-wrap:wrap !important; }
}
