/* =========================================================
   hn-v2.css — トップページ改修版（2026-09-12）
   front-page.php が使う追加スタイル。assets/top.css の後に読み込む。
   ========================================================= */
.hn-v2{font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;
  font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased;color:#1f2b33}
.hn-v2 .wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.hn-v2 :focus-visible{outline:2px solid #ed6103;outline-offset:2px}
:root{--orange:#ed6103;--orange-s:#fff5ee;--ink:#1f2b33;--ink2:#4f5f6a;--ink3:#8695a0;--line:#e3e9ee;--line2:#eef2f6}
/* --- フォントスケール・地方色 --- */
/* =========================================================
   決定版E 組み替え版
   - 白カードの囲い・重複見出し・2ブロックCTAを撤去し、ヒーロー直下に地図
   - フォントは8段のスケールに乗せる
   - 青を排除（県名リンクは墨色、ホバーで地方色）
   ========================================================= */
:root{
  --fs-xs:11px; --fs-s:12px; --fs-base:14px; --fs-m:15px;
  --fs-l:17px; --fs-xl:20px; --fs-2xl:26px; --fs-3xl:32px;
}
.esec{padding:40px 0 44px}
.esec--map{background:#fff}
.esec--list{background:#faf8f3;border-top:1px solid #ece5d8}
.esec__h{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.esec__h h2{margin:0;font-size:var(--fs-xl);font-weight:900;letter-spacing:.02em;
  border-left:5px solid var(--orange);padding-left:12px;line-height:1.3}
.esec__h p{margin:0;font-size:var(--fs-s);color:var(--ink3)}
.esec__all{margin-left:auto;font-size:var(--fs-base);font-weight:700;color:#3f4a52;
  text-decoration:underline;text-underline-offset:3px;text-decoration-color:#d6cec0}
.esec__all:hover{color:var(--orange);text-decoration-color:currentColor}

/* =========================================================
   DB版（f.html）
   地方の色は「北＝寒色 → 南＝暖色」の連続した並び。
   色そのものが緯度を表すので、凡例なしで地図と一覧がつながる。
   ========================================================= */
:root{
  /* 地方の色：青を使わず、北＝深い緑 → 南＝赤へ連続させる。
     砂色の地図・クリームの面と同じ暖色系にそろえた */
  --r-hokkaido_tohoku:#3f6b52;
  --r-kanto:#57794a;
  --r-hokuriku:#6f8645;
  --r-tokai:#8d8a3d;
  --r-kinki:#a8823a;
  --r-chugoku:#b87336;
  --r-shikoku:#bd5f30;
  --r-kyushu_okinawa:#b4472b;
}
/* --- ヒーロー --- */
/* =========================================================
   ヒーロー（全案共通）を作り直し
   文字だけだったのを「絵＋検索＋根拠つきの数字」に
   ========================================================= */
.hero{background:linear-gradient(180deg,#fffdf9 0%,#f7f2e8 100%);border-bottom:1px solid #e7dcc6;
  overflow:hidden}
.hero__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:48px;
  align-items:center;padding:40px 24px 42px}
.hero__eye{margin:0 0 10px;font-size:11.5px;font-weight:700;letter-spacing:.1em;color:#8a7c5f;
  display:flex;align-items:center;gap:8px}
.hero__eye::before{content:"";width:22px;height:1px;background:#c9b78f}
.hero h1{margin:0;font-size:31px;font-weight:900;line-height:1.5;letter-spacing:.01em}
.hero h1 .em{color:var(--orange)}
.hero .lead{margin:12px 0 0;font-size:14px;color:#4f5b62;line-height:1.9}

.hero__form{margin-top:20px;display:grid;grid-template-columns:1fr 1fr auto;gap:10px;
  background:#fff;border:1px solid #e3dcd0;border-radius:10px;padding:14px;
  box-shadow:0 4px 16px rgba(80,64,40,.10)}
.hero__f{display:grid;gap:5px;min-width:0}
.hero__f span{font-size:11px;font-weight:700;color:var(--ink3);letter-spacing:.04em}
.hero__f select{font:inherit;font-size:14.5px;padding:10px 11px;border:1px solid #d8d0c2;
  border-radius:6px;background:#fff;color:var(--ink);width:100%}
.hero__form button{align-self:end;font:inherit;font-size:15px;font-weight:900;color:#fff;
  background:var(--orange);border:0;border-radius:6px;padding:11px 22px;cursor:pointer;
  box-shadow:0 3px 0 #c25102;white-space:nowrap}
.hero__form button:hover{background:#d55603}
.hero__trust{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px}
.hero__trust li{font-size:12px;color:#5d6b6f;padding-left:17px;position:relative}
.hero__trust li::before{content:"";position:absolute;left:2px;top:5px;width:5px;height:9px;
  border-right:2px solid #7a9a5e;border-bottom:2px solid #7a9a5e;transform:rotate(40deg)}

.hero__fig{margin:0;border-radius:10px;overflow:hidden;border:1px solid #e7dcc6;
  box-shadow:0 6px 20px rgba(80,64,40,.14);aspect-ratio:3/2}
.hero__fig img{width:100%;height:100%;object-fit:cover;object-position:58% 45%}

/* =========================================================
   ヒーロー再構成：絵をやめ、右側を検索カードに（役割が明確な2カラム）
   ========================================================= */
.hero__in{grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:40px;align-items:center}
.hero__form{margin-top:0;grid-template-columns:1fr;gap:12px;padding:20px 20px 16px}
.hero__form button{align-self:stretch;padding:13px;font-size:16px}
.hero__form .hero__trust{margin:4px 0 0;gap:5px 14px;padding-top:12px;border-top:1px solid #efe8dc}
.hero__form .hero__trust li{font-size:11.5px}
.logo img{width:38px;height:38px;border-radius:9px}
.ft2__brand img{width:28px;height:28px;border-radius:7px}
@media (max-width:960px){
  .hero__in{grid-template-columns:1fr;gap:20px}
}

/* --- 地図と地方カード --- */
/* jres.jp と同じ作り：16:9 の面に地図画像を敷き、空いた海の上に地方カードを % で置く */
.jmap{padding:18px}
.jmap__wrap{position:relative;width:100%;aspect-ratio:16/9;padding:16px;overflow:hidden;
  background:linear-gradient(180deg,#fffdf9 0%,#f8f3e9 100%);
  border:1px solid #e7dcc6;border-radius:12px;container-type:inline-size}
.jmap__label{position:absolute;top:12px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:7px;
  font-size:clamp(11px,1.5cqw,14px);font-weight:900;color:var(--ink);pointer-events:none;
  text-shadow:0 0 2px rgba(255,255,255,.95),0 0 10px rgba(255,255,255,.85)}
.jmap__label svg{color:var(--navy)}
.jmap__bg{position:absolute;inset:16px;display:grid;place-items:center;opacity:.9;
  transform:translate(0,-8px) scale(1.10);transform-origin:center center;user-select:none;pointer-events:none}
.jmap__bg img{width:110%;height:110%;max-width:none;object-fit:contain;filter:saturate(.85)}
.jmap__ov{position:absolute;inset:16px;z-index:1}

.jrc{position:absolute;background:rgba(255,255,255,.97);border:1px solid #e0d8c9;border-radius:8px;
  padding:5px 6px 6px;box-shadow:0 2px 8px rgba(80,64,40,.12);
  backdrop-filter:saturate(140%) blur(3px);-webkit-backdrop-filter:saturate(140%) blur(3px);
  min-width:clamp(96px,15.5cqw,126px)}
.jrc__h{display:inline-block;font-size:clamp(8px,1.35cqw,10px);font-weight:900;letter-spacing:.06em;
  color:#fff;background:var(--navy);padding:2px 6px;border-radius:4px;margin-bottom:4px;white-space:nowrap}
.jrc__p{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}
.jc{display:flex;align-items:center;justify-content:center;gap:3px;
  font-size:clamp(8.5px,1.35cqw,10px);font-weight:800;line-height:1.2;
  padding:3px 4px;border-radius:4px;background:#fff;border:1px solid transparent;
  color:#4f5f6a;white-space:nowrap;transition:.12s}
.jc i{font-style:normal;font-size:.86em;color:var(--orange);font-variant-numeric:tabular-nums}
.jc.on{color:var(--orange);border-color:#f6cfae;background:#fff8f3}
.jc.on:hover{background:var(--orange);border-color:var(--orange);color:#fff}
.jc.on:hover i{color:#ffe0cb}
.jc.off{color:#9aa7b1}
.jc.off:hover{background:#eef2f6}

/* --- 地方カードの見出しを地方の色に（紺一色をやめる） --- */
.jrc[data-region="hokkaido_tohoku"] .jrc__h{background:var(--r-hokkaido_tohoku)}
.jrc[data-region="kanto"]           .jrc__h{background:var(--r-kanto)}
.jrc[data-region="hokuriku"]        .jrc__h{background:var(--r-hokuriku)}
.jrc[data-region="tokai"]           .jrc__h{background:var(--r-tokai)}
.jrc[data-region="kinki"]           .jrc__h{background:var(--r-kinki)}
.jrc[data-region="chugoku"]         .jrc__h{background:var(--r-chugoku)}
.jrc[data-region="shikoku"]         .jrc__h{background:var(--r-shikoku)}
.jrc[data-region="kyushu_okinawa"]  .jrc__h{background:var(--r-kyushu_okinawa)}
/* 決定版でも同じ色を使う（先に書いた紺の上書きを解除） */
.abox .jrc__h{background:inherit}
.abox .jrc[data-region="hokkaido_tohoku"] .jrc__h{background:var(--r-hokkaido_tohoku)}
.abox .jrc[data-region="kanto"]           .jrc__h{background:var(--r-kanto)}
.abox .jrc[data-region="hokuriku"]        .jrc__h{background:var(--r-hokuriku)}
.abox .jrc[data-region="tokai"]           .jrc__h{background:var(--r-tokai)}
.abox .jrc[data-region="kinki"]           .jrc__h{background:var(--r-kinki)}
.abox .jrc[data-region="chugoku"]         .jrc__h{background:var(--r-chugoku)}
.abox .jrc[data-region="shikoku"]         .jrc__h{background:var(--r-shikoku)}
.abox .jrc[data-region="kyushu_okinawa"]  .jrc__h{background:var(--r-kyushu_okinawa)}
/* ---- 地図：面を詰め、カードを読める大きさに、位置は CSS で管理 ---- */
.jmap--clean{padding:0}
.jmap--clean .jmap__wrap{aspect-ratio:16/9.2;padding:14px;border-radius:12px;
  background:linear-gradient(180deg,#fffdf9 0%,#f6f0e4 100%);border:1px solid #e3d9c6}
.jmap--clean .jmap__bg{inset:14px;transform:translate(0,-34px) scale(1.0);opacity:.95}
.jmap--clean .jmap__bg img{filter:none}
.jmap--clean .jmap__ov{inset:14px}
.jmap--clean .jrc{min-width:clamp(118px,15.2cqw,148px);padding:6px 7px 7px;border-radius:8px;
  border:1px solid #e0d6c4;box-shadow:0 3px 10px rgba(80,64,40,.12)}
.jmap--clean .jrc__h{font-size:clamp(10px,1.2cqw,11.5px);padding:2px 7px;margin-bottom:5px;border-radius:4px}
.jmap--clean .jrc__p{gap:3px}
.jmap--clean .jc{font-size:clamp(10.5px,1.32cqw,12px);padding:4px 5px;border-radius:4px;
  color:#3b4a55;background:#fff;border-color:#e3dbcb}
.jmap--clean .jc.on:hover{background:var(--orange);border-color:var(--orange);color:#fff}
/* 位置：地図のピクセルを数えて決めた値。
   カードの下の陸地は最大3.9%、カード同士の重なりなし、地理の並び順（西→東・日本海側/太平洋側）を維持。
   上段＝中国 → 近畿 → 北陸 → 北海道・東北、下段＝九州・沖縄 → 四国 → 東海 → 関東 */
.jmap--clean .jrc[data-region="chugoku"]{left:20%;top:34%}
.jmap--clean .jrc[data-region="kinki"]{left:35%;top:38%}
.jmap--clean .jrc[data-region="hokuriku"]{left:50%;top:20%}
.jmap--clean .jrc[data-region="hokkaido_tohoku"]{left:74%;top:36%}
.jmap--clean .jrc[data-region="kyushu_okinawa"]{left:3%;top:60%}
.jmap--clean .jrc[data-region="shikoku"]{left:34.3%;top:79.5%}
.jmap--clean .jrc[data-region="tokai"]{left:48.5%;top:76.6%}
.jmap--clean .jrc[data-region="kanto"]{left:64.5%;top:62.4%}

/* --- 業者カード --- */
/* 業者カード */
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.vcard{background:#fff;border:1px solid #e3e7ea;border-radius:9px;padding:16px 16px 14px;
  display:grid;gap:9px;align-content:start;box-shadow:0 1px 3px rgba(15,50,70,.05)}
.vcard__hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vcard__hd h3{margin:0;font-size:15.5px;font-weight:900;letter-spacing:.01em}
.vbadge{font-size:10px;font-weight:900;color:#fff;background:var(--orange);
  border-radius:3px;padding:2px 6px;letter-spacing:.04em}
.vcard__catch{margin:0;font-size:12.5px;color:var(--ink2);line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vcard__feat{margin:0;padding:0;list-style:none;display:grid;gap:3px}
.vcard__feat li{font-size:11.5px;color:#4f5f6a;padding-left:15px;position:relative;line-height:1.6}
.vcard__feat li::before{content:"";position:absolute;left:2px;top:6px;width:4px;height:7px;
  border-right:2px solid var(--orange);border-bottom:2px solid var(--orange);transform:rotate(40deg)}
.vcard__prices{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #e6eaed;
  border-radius:6px;overflow:hidden}
.vp{padding:6px 4px;text-align:center;border-right:1px solid #e6eaed}
.vp:last-child{border-right:0}
.vp span{display:block;font-size:9.5px;color:var(--ink3);font-weight:700}
.vp b{font-size:12.5px;color:var(--orange);font-weight:900;font-variant-numeric:tabular-nums}
.vcard__meta{display:flex;flex-wrap:wrap;gap:5px}
.vm{font-size:10.5px;font-weight:700;color:#4f5f6a;background:#f2f5f7;border-radius:3px;padding:2px 7px}
.vm--hot{background:#fff2e8;color:#b4491c}
.vcard__act{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:2px}
.vtel{display:grid;text-align:center;background:var(--orange);color:#fff;border-radius:6px;
  padding:7px 6px;box-shadow:0 2px 0 #c25102}
.vtel small{font-size:9.5px;font-weight:700;opacity:.92}
.vtel b{font-size:15px;font-weight:900;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.vtel:hover{background:#d55603}
.vmore{display:grid;place-items:center;padding:0 14px;font-size:12.5px;font-weight:700;
  color:#1f5c78;border:1px solid #cdd8de;border-radius:6px}
.vmore:hover{background:#1f5c78;color:#fff;border-color:#1f5c78}

/* --- 背景（フラットな六角形） --- */
/* =========================================================
   背景画像（生成）：フラットな六角形＝蜂の巣。Noto Sans JP と同じ「平ら・くっきり」のテイストに合わせる
   ========================================================= */
/* ヒーロー：右側にオレンジのハニカムが浮かぶ。左の見出しは無地の上に置く */
.hero{background:#faf6ee url("bg-hero-hex.webp") right center / auto 100% no-repeat;position:relative}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(250,246,238,1) 0%,rgba(250,246,238,.85) 42%,rgba(250,246,238,0) 70%)}
.hero__in{position:relative;padding-top:40px}
.hero__form{box-shadow:0 8px 28px rgba(237,97,3,.12),0 2px 6px rgba(80,64,40,.08)}
/* 地図・フッター上段：薄いハニカムの格子 */
.esec--map{background:#fbf8f2 url("bg-hex-tile.webp") center / 640px auto repeat}
.ft3__pref{background:#f7f4ee url("bg-hex-tile.webp") center / 640px auto repeat}
.jmap--clean .jmap__wrap{background:rgba(255,253,249,.78);backdrop-filter:saturate(120%)}
@media (max-width:960px){
  .hero{background-size:auto 60%;background-position:right bottom}
  .hero::before{background:linear-gradient(180deg,rgba(250,246,238,1) 0%,rgba(250,246,238,.9) 55%,rgba(250,246,238,.4) 100%)}
}

/* --- スマホ --- */
/* =========================================================
   スマホ（〜760px）
   ヘッダーはロゴ＋緊急ボタンを1段目、ナビを2段目の横スクロールに分ける。
   1行に詰め込むと日本語が縦組みに潰れ、緊急ボタンが画面外へ出てしまうため。
   ========================================================= */
@media (max-width:760px){
  .wrap{padding:0 16px}
  .hd__in{flex-wrap:wrap;gap:8px 12px;padding:10px 16px}
  .logo{flex:1 1 auto;min-width:0;gap:8px}
  .logo img{width:30px;height:30px}
  .logo b{font-size:15px;white-space:nowrap;letter-spacing:0}
  .logo i{display:none}
  .urgent{flex:0 0 auto;font-size:12px;padding:8px 13px;border-radius:5px}
  .gnav{order:3;flex:1 0 100%;margin-left:0;gap:18px;overflow-x:auto;white-space:nowrap;
    padding:2px 0 3px;scrollbar-width:none}
  .gnav::-webkit-scrollbar{display:none}
  .gnav a{white-space:nowrap;font-size:13px;flex:0 0 auto}
  .gnav a.soon em{display:none}

  /* 案の切替バー（デモ専用） */
  .switch .wrap{gap:5px;padding:7px 16px}
  .switch a{font-size:11.5px;padding:3px 9px}

  /* ヒーロー */
  .hero__in{padding:24px 16px 26px}
  .hero h1{font-size:22px;line-height:1.55}
  .hero__eye{font-size:10.5px;letter-spacing:.06em}
  .hero__trust{gap:5px 14px}
  .hero__trust li{font-size:11.5px}
  .hstats__in{gap:12px 20px;padding:12px 16px}
  .hstat b{font-size:20px}
  .hstat i{display:none}

  /* DB版 */
  .fhero__in{padding:24px 16px 26px}
  .fh1{font-size:23px}
  .fstats__in{gap:12px 20px;padding:12px 16px}
  .fstats i{display:none}
  .fstats .upd{margin-left:0;width:100%}
  .fsec{padding:30px 0 34px}
  .fsec__h h2{font-size:19px}
  .fsec__all{margin-left:0;flex:0 0 100%}
  .area2__map .jp{height:290px}
  .rrow{padding-left:12px}
  .ftable{overflow-x:auto}
  .ftable table{min-width:520px}

  /* 決定版 */
  .ah2{font-size:20px;line-height:1.5}
  .alead{font-size:13.5px;line-height:1.95}
  .acta b{font-size:17px}
  .ahd{font-size:15px;padding:10px 13px}

  /* 一覧テーブル（案B） */
  .row{padding:12px 14px}
  .row__n{font-size:13px}
  .sec{padding:28px 0 36px}
  .sec__h h2{font-size:19px}

  /* 機能ページ */
  .card{padding:18px}
  .simout__v b{font-size:24px}
}


/* --- レスポンシブ（地図の縦積み・業者カードの列数） --- */
@media (max-width:900px){
  .panel--tabs{grid-template-columns:1fr}
  .tabs{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}
  .tab{border-bottom:0;border-right:1px solid var(--line);padding:13px 16px;white-space:nowrap}
  .jmap__wrap{aspect-ratio:auto;padding:12px;background:transparent;border:0}
  .jmap__bg,.jmap__label{display:none}
  .jmap__ov{position:static;inset:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .jrc{position:static!important;min-width:0;padding:7px 8px 8px}
  .jc{font-size:12px;padding:5px 4px}
  .rg{width:auto}

  .row{grid-template-columns:1fr;gap:9px}
  .sec__meta{position:static;margin-top:8px}
}
@media (max-width:1000px){
  .fhero__in{grid-template-columns:1fr;gap:24px}
  .vgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .area2{grid-template-columns:1fr;gap:28px}
  .area2__map .jp{height:340px}
}
@media (max-width:640px){
  .vgrid{grid-template-columns:1fr}
  .rrow{grid-template-columns:1fr;gap:6px}
  .fsearch__row{grid-template-columns:1fr}
}

/* --- 1.8.1：ヒーローの余白。`.hn-v2 .wrap` の padding:0 24px に負けていたので詳細度を揃えて上書き --- */
.hn-v2 .hero{border-bottom:1px solid #eadfcd}
.hn-v2 .hero__in{padding:72px 24px 76px;gap:56px;min-height:0}
.hn-v2 .hero__copy{padding-right:8px}
.hn-v2 .hero h1{font-size:36px;line-height:1.5}
.hn-v2 .hero .lead{margin-top:14px;font-size:15px}
.hn-v2 .hero__eye{margin-bottom:14px}
@media (max-width:960px){
  .hn-v2 .hero__in{padding:32px 16px 34px;gap:22px}
  .hn-v2 .hero h1{font-size:24px}
}

/* --- 1.8.2：スマホで地方カードが枠に隠れて切れていた ---
   `.jmap--clean .jmap__wrap`（2クラス）が `@media` 内の `.jmap__wrap`（1クラス）に勝ち、
   aspect-ratio:16/9.2 と overflow:hidden が残っていたため。詳細度を上げて解除する。 */
@media (max-width:900px){
  .hn-v2 .jmap--clean .jmap__wrap{aspect-ratio:auto;overflow:visible;padding:0;
    background:transparent;border:0;border-radius:0}
  .hn-v2 .jmap--clean .jmap__bg{display:none}
  .hn-v2 .jmap--clean .jmap__ov{position:static;inset:auto;
    display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .hn-v2 .jmap--clean .jrc{position:static!important;min-width:0;width:auto;
    padding:8px 9px 9px;box-shadow:0 1px 4px rgba(80,64,40,.10)}
  .hn-v2 .jmap--clean .jrc__h{font-size:11.5px}
  .hn-v2 .jmap--clean .jc{font-size:12.5px;padding:6px 4px}
}
@media (max-width:480px){
  .hn-v2 .jmap--clean .jmap__ov{grid-template-columns:1fr}
}

/* --- 1.9.0：業者カードに所在地と対応範囲を出す（全国対応と地元業者の区別） --- */
.hn-v2 .vm--place{background:#eef1f3;color:#3f4a52;font-weight:800}
.hn-v2 .vm--wide{background:#f0ece2;color:#7a6a4a}
.hn-v2 .vcard__meta{gap:5px}
