/*
Theme Name: Minpaku Map
Theme URI: https://minpaku-map.com/
Description: 全国の民泊・古民家・一棟貸しを目的別に探せる紹介メディア用テーマ。CPT/ACFは mu-plugins(プラグイン)側で定義。
Author: MASUTO
Version: 1.2.9
Text Domain: minpaku-map
*/

/* ===== デザイントークン（既存テンプレートの変数名は互換維持） ===== */
:root{
  --mm-accent:#1f7a6d;          /* プライマリ（テンプレ互換） */
  --mm-ink:#1d2a27;             /* 本文色（テンプレ互換） */
  --mm-sub:#5d6b67;             /* 補助色（テンプレ互換） */
  --mm-line:#e6ecea;            /* 罫線（テンプレ互換） */
  --mm-bg:#f4f8f6;             /* セクション背景（テンプレ互換） */

  --teal:#1f7a6d;
  --teal-dark:#14564c;
  --teal-darker:#0e3b34;
  --amber:#f4a83a;
  --amber-deep:#e7951c;
  --card-shadow:0 6px 22px rgba(16,59,52,.08);
  --card-shadow-hover:0 16px 40px rgba(16,59,52,.16);
  --radius:14px;
  --maxw:1120px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; color:var(--mm-ink); background:#fff;
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic","Segoe UI",Meiryo,sans-serif;
  line-height:1.85; -webkit-font-smoothing:antialiased; letter-spacing:.01em;
}
a{ color:var(--teal); text-decoration:none; transition:color .15s, opacity .15s; }
a:hover{ color:var(--teal-dark); }
img{ max-width:100%; height:auto; display:block; }
.mm-container{ max-width:var(--maxw); margin:0 auto; padding:0 22px; }

/* ===== セクション共通 ===== */
.mm-section{ padding:74px 0; }
.mm-section > .mm-container > h2,
.mm-section .mm-container > h2{
  font-size:clamp(1.5rem,2.4vw,2rem); text-align:center; margin:0 0 10px; letter-spacing:.02em;
}
.mm-section h2::after{
  content:""; display:block; width:48px; height:4px; border-radius:2px;
  background:linear-gradient(90deg,var(--teal),var(--amber)); margin:14px auto 0;
}
.mm-section .lead{ color:var(--mm-sub); text-align:center; max-width:640px; margin:0 auto 36px; }

/* ===== ヘッダー ===== */
.mm-header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(1.2) blur(8px); border-bottom:1px solid var(--mm-line); }
.mm-header .inner{ display:flex; align-items:center; justify-content:space-between; height:66px; }
.mm-logo{ font-weight:800; font-size:1.25rem; color:var(--teal-dark); letter-spacing:.02em; }
.mm-nav{ display:flex; flex-wrap:wrap; }
.mm-nav a{ margin-left:20px; color:var(--mm-ink); font-size:.92rem; font-weight:600; }
.mm-nav a:hover{ color:var(--teal); }

/* ===== ヒーロー ===== */
.mm-hero{
  position:relative; padding:104px 0 96px; text-align:center; color:#fff;
  background:
    linear-gradient(180deg, rgba(8,40,35,.42) 0%, rgba(8,40,35,.58) 55%, rgba(8,40,35,.72) 100%),
    url('hero.webp') center 60% / cover no-repeat;
}
.mm-hero h1{
  font-size:clamp(1.9rem,4.4vw,3.1rem); line-height:1.32; margin:0 0 16px;
  text-shadow:0 2px 18px rgba(0,0,0,.35); letter-spacing:.02em;
}
.mm-hero p{ color:rgba(255,255,255,.94); margin:0 auto 32px; max-width:660px;
  font-size:clamp(.95rem,1.4vw,1.08rem); text-shadow:0 1px 10px rgba(0,0,0,.35); }
.mm-hero .cta-row{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ===== ボタン ===== */
.mm-btn{
  display:inline-flex; align-items:center; gap:.4em; padding:13px 26px; border-radius:999px;
  background:linear-gradient(135deg,var(--amber),var(--amber-deep)); color:#3a2600; font-weight:700;
  box-shadow:0 8px 22px rgba(231,149,28,.32); transition:transform .15s, box-shadow .15s, opacity .15s;
}
.mm-btn:hover{ color:#3a2600; transform:translateY(-2px); box-shadow:0 12px 28px rgba(231,149,28,.42); text-decoration:none; }
.mm-btn.outline{
  background:rgba(255,255,255,.14); color:#fff; border:1.5px solid rgba(255,255,255,.7);
  box-shadow:none; backdrop-filter:blur(2px);
}
.mm-btn.outline:hover{ background:#fff; color:var(--teal-dark); border-color:#fff; }
/* 明るい背景の上のoutlineボタン（記事下部など） */
.mm-section .mm-btn.outline{ background:#fff; color:var(--teal); border-color:var(--teal); }
.mm-section .mm-btn.outline:hover{ background:var(--teal); color:#fff; }

/* ===== こだわりチップ ===== */
.mm-chips{ display:flex; flex-wrap:wrap; gap:11px; justify-content:center; }
.mm-chip{ display:inline-block; padding:9px 18px; border:1.5px solid var(--mm-line); border-radius:999px;
  font-size:.9rem; color:var(--mm-ink); background:#fff; font-weight:600; transition:all .15s; }
.mm-chip:hover{ border-color:var(--teal); color:#fff; background:var(--teal); text-decoration:none; transform:translateY(-2px); }

/* ===== 都道府県・市区町村リンク ===== */
.mm-linklist{ display:flex; flex-wrap:wrap; gap:12px; list-style:none; padding:0; margin:0; justify-content:center; }
.mm-linklist a{ display:inline-block; padding:10px 20px; background:#fff; border:1px solid var(--mm-line);
  border-radius:10px; font-size:.95rem; font-weight:600; color:var(--mm-ink); box-shadow:var(--card-shadow); transition:all .15s; }
.mm-linklist a:hover{ color:var(--teal); border-color:var(--teal); transform:translateY(-2px); box-shadow:var(--card-shadow-hover); }

/* ===== 施設・記事カードグリッド ===== */
.mm-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(276px,1fr)); gap:26px; }
.mm-card{ border:1px solid var(--mm-line); border-radius:var(--radius); overflow:hidden; background:#fff;
  display:flex; flex-direction:column; box-shadow:var(--card-shadow); transition:transform .18s, box-shadow .18s; }
.mm-card:hover{ transform:translateY(-4px); box-shadow:var(--card-shadow-hover); }
.mm-card .thumb{ aspect-ratio:16/10; background:var(--mm-bg); overflow:hidden; display:block; }
.mm-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.mm-card:hover .thumb img{ transform:scale(1.06); }
.mm-card .body{ padding:16px 18px 20px; display:flex; flex-direction:column; gap:7px; flex:1; }
.mm-card .area{ font-size:.78rem; color:var(--teal); font-weight:700; letter-spacing:.03em; }
.mm-card h3{ font-size:1.08rem; margin:0; line-height:1.45; }
.mm-card h3 a{ color:var(--mm-ink); }
.mm-card h3 a:hover{ color:var(--teal); }
.mm-card .tags{ display:flex; flex-wrap:wrap; gap:6px; margin:2px 0; }
.mm-card .tags span{ font-size:.72rem; background:var(--mm-bg); padding:3px 9px; border-radius:6px; color:var(--mm-sub); }
.mm-card .meta{ font-size:.84rem; color:var(--mm-sub); }
.mm-card .catch{ font-size:.9rem; color:var(--mm-sub); }
.mm-card .price{ font-weight:800; color:var(--mm-ink); font-size:1.02rem; }
.mm-card .more{ margin-top:auto; padding-top:6px; }
.mm-card .more a{ font-weight:700; font-size:.9rem; }

/* ===== 記事個別 ===== */
.mm-article-body{ font-size:1.02rem; }
.mm-article-body h2{ font-size:1.4rem; margin:2.2em 0 .7em; padding-left:14px; border-left:5px solid var(--amber); line-height:1.5; }
.mm-article-body h3{ font-size:1.15rem; margin:1.8em 0 .5em; color:var(--teal-dark); }
.mm-article-body p{ margin:1em 0; }
.mm-article-body ul,.mm-article-body ol{ padding-left:1.4em; margin:1em 0; }
.mm-article-body li{ margin:.4em 0; }
.mm-article-body figure{ margin:1.6em 0; }
.mm-article-body img{ border-radius:12px; box-shadow:var(--card-shadow); }
.mm-article-body table{ width:100%; border-collapse:collapse; margin:1.4em 0; font-size:.95rem; box-shadow:var(--card-shadow); border-radius:10px; overflow:hidden; }
.mm-article-body th,.mm-article-body td{ padding:11px 14px; border-bottom:1px solid var(--mm-line); text-align:left; }
.mm-article-body thead th{ background:var(--teal); color:#fff; font-weight:700; }
.mm-article-body tbody tr:nth-child(even){ background:var(--mm-bg); }
.mm-article-body a{ font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.mm-article-body h1{ font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.4; }

/* ===== 施設個別 ===== */
.mm-stay-gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:20px 0; }
.mm-stay-gallery img{ aspect-ratio:1/1; object-fit:cover; border-radius:10px; box-shadow:var(--card-shadow); }
.mm-spec{ width:100%; border-collapse:collapse; margin:20px 0; box-shadow:var(--card-shadow); border-radius:10px; overflow:hidden; }
.mm-spec th,.mm-spec td{ text-align:left; padding:12px 14px; border-bottom:1px solid var(--mm-line); vertical-align:top; }
.mm-spec th{ width:160px; color:var(--mm-sub); font-weight:700; white-space:nowrap; background:var(--mm-bg); }
.mm-book{ display:flex; gap:12px; flex-wrap:wrap; margin:20px 0; }
.mm-legal{ background:var(--mm-bg); border-radius:12px; padding:16px 18px; font-size:.86rem; color:var(--mm-sub); border:1px solid var(--mm-line); }
.mm-note{ font-size:.85rem; color:var(--mm-sub); }
.mm-stay-body{ font-size:1.02rem; }

/* ===== ページネーション ===== */
.mm-pager{ margin-top:36px; text-align:center; }
.mm-pager .page-numbers{ display:inline-block; padding:8px 14px; margin:0 3px; border:1px solid var(--mm-line);
  border-radius:8px; color:var(--mm-ink); font-weight:600; }
.mm-pager .page-numbers.current{ background:var(--teal); color:#fff; border-color:var(--teal); }

/* ===== フッター ===== */
.mm-footer{ background:var(--teal-darker); color:rgba(255,255,255,.78); margin-top:0; padding:44px 0 36px; font-size:.88rem; }
.mm-footer a{ color:#fff; }
.mm-footer p{ margin:.5em 0; }

/* ===== レスポンシブ ===== */
@media(max-width:680px){
  .mm-section{ padding:52px 0; }
  .mm-hero{ padding:72px 0 64px; }
  .mm-header .inner{ height:auto; flex-direction:column; gap:6px; padding:10px 0; }
  .mm-nav{ width:100%; justify-content:center; gap:0; }
  .mm-nav a{ margin:0 9px; font-size:.82rem; }
  .mm-stay-gallery{ grid-template-columns:repeat(2,1fr); }
  .mm-spec th{ width:110px; }
}

/* ===== 施設ページ（魅力訴求デザイン） ===== */
.mm-stay .stay-head .stay-area{ font-size:.85rem; color:var(--teal); font-weight:700; margin:0 0 6px; }
.mm-stay .stay-head .stay-area a{ color:var(--teal); margin-right:10px; }
.mm-stay h1{ font-size:clamp(1.5rem,3vw,2.1rem); margin:0 0 8px; line-height:1.35; }
.mm-stay .stay-catch{ font-size:1.05rem; color:var(--mm-sub); margin:0 0 14px; }
.stay-collage{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:128px; gap:10px; margin:18px 0 8px; }
.stay-collage img{ width:100%; height:100%; object-fit:cover; border-radius:12px; box-shadow:var(--card-shadow); }
.stay-collage img:first-child{ grid-column:span 2; grid-row:span 2; }
.stay-facts{ display:flex; flex-wrap:wrap; gap:8px 28px; margin:24px 0; padding:18px 22px; background:var(--mm-bg); border-radius:14px; }
.stay-facts .fact{ display:flex; flex-direction:column; gap:2px; }
.stay-facts .fact span{ font-size:.72rem; color:var(--mm-sub); letter-spacing:.04em; }
.stay-facts .fact strong{ font-size:1.05rem; color:var(--mm-ink); }
.stay-facts .fact.price strong{ color:var(--teal-dark); }
.stay-intro{ margin:24px 0; font-size:1.02rem; }
.stay-block{ margin:42px 0; }
.stay-block > h2{ font-size:1.3rem; margin:0 0 20px; padding-left:13px; border-left:5px solid var(--amber); line-height:1.4; }
.feat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.feat-card{ position:relative; background:#fff; border:1px solid var(--mm-line); border-radius:14px; padding:24px 20px 20px; box-shadow:var(--card-shadow); }
.feat-card .num{ position:absolute; top:-13px; left:18px; width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg,var(--teal),var(--amber)); color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; font-size:.95rem; }
.feat-card h3{ font-size:1.05rem; margin:4px 0 8px; color:var(--teal-dark); }
.feat-card p{ font-size:.92rem; color:var(--mm-sub); margin:0; line-height:1.7; }
.amenity-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:4px 18px; list-style:none; padding:0; margin:0; }
.amenity-grid li{ position:relative; padding:9px 0 9px 28px; border-bottom:1px solid var(--mm-line); font-size:.95rem; }
.amenity-grid li::before{ content:""; position:absolute; left:5px; top:50%; width:7px; height:12px; margin-top:-8px; border:solid var(--teal); border-width:0 2.5px 2.5px 0; transform:rotate(45deg); }
.stay-booking{ margin:36px 0; background:linear-gradient(135deg,#f3faf8,#edf6f2); border:1px solid var(--mm-line); border-radius:16px; padding:24px 26px; box-shadow:var(--card-shadow); }
.stay-booking .bk-inner{ display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.stay-booking .bk-price{ font-size:1.5rem; font-weight:800; color:var(--teal-dark); }
.stay-booking .bk-btns{ display:flex; gap:12px; flex-wrap:wrap; }
.stay-booking .mm-note{ margin:14px 0 0; }
@media(max-width:680px){
  .stay-collage{ grid-template-columns:repeat(2,1fr); grid-auto-rows:120px; }
  .stay-collage img:first-child{ grid-column:span 2; grid-row:span 1; }
  .stay-booking .bk-inner{ flex-direction:column; align-items:flex-start; }
}


/* ===== 日本地図（行きたい地域から探す 2026-06-11） ===== */
.mm-map-wrap{position:relative;max-width:460px;margin:8px auto 0}
.mm-map-wrap svg{width:100%;height:auto;display:block}
.mm-map-wrap .prefecture{stroke:#fff;stroke-width:1.4;cursor:pointer;transition:filter .15s ease,opacity .3s ease}
.mm-map-wrap .prefecture path{vector-effect:non-scaling-stroke}
.mm-map-wrap .prefecture:hover{filter:brightness(.93) saturate(1.15)}
/* 8地方パステル配色（旅行誌トーン） */
.mm-map-wrap .hokkaido{fill:#a6d5e8}
.mm-map-wrap .tohoku{fill:#a9d8c5}
.mm-map-wrap .kanto{fill:#f6be7e}
.mm-map-wrap .chubu{fill:#f2dc91}
.mm-map-wrap .kinki{fill:#f2a6a0}
.mm-map-wrap .chugoku{fill:#c4b4e3}
.mm-map-wrap .shikoku{fill:#b0d898}
.mm-map-wrap .kyushu-okinawa{fill:#f4bfd7}
/* ズーム時: 選択県以外を淡く・ピン非表示 */
.mm-map-wrap svg.is-zoomed .prefecture{opacity:.25}
.mm-map-wrap svg.is-zoomed .prefecture.is-selected{opacity:1}
.mm-map-wrap > svg.is-zoomed .mm-pin{display:none} /* 全国地図のみ。市町村ビューのピンは表示維持 */
/* 県情報パネル */
.mm-map-panel{max-width:460px;margin:10px auto 0;background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--card-shadow);padding:14px 18px}
.mm-map-back{background:none;border:none;color:var(--link);font-size:13px;cursor:pointer;padding:0 0 8px;text-decoration:underline;text-underline-offset:3px}
.mm-map-panel-body{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mm-map-panel-body strong{font-size:18px;color:var(--ink)}
.mm-map-panel-body span{font-size:13px;color:var(--muted)}
.mm-map-panel-body .mm-btn{margin-left:auto}
.mm-panel-cities{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mm-panel-cities-label{font-size:12px;color:var(--muted);white-space:nowrap}
.mm-chip-city{font-size:13px;padding:5px 12px}
/* 市町村ビュー（県クリック後） */
.mm-muni-host{animation:mmFadeIn .35s ease both}
@keyframes mmFadeIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.mm-muni-host svg{width:100%;height:auto;display:block}
.mm-muni-host .municipality{stroke:#fff;stroke-width:1;cursor:pointer;transition:filter .15s ease,opacity .3s ease}
/* 市町村ズーム時: 選択以外を淡く（ピンは表示維持＝宿の位置が主役） */
.mm-muni-host svg.is-zoomed .municipality{opacity:.22}
.mm-muni-host svg.is-zoomed .municipality.is-selected{opacity:1}
.mm-muni-host .municipality path{vector-effect:non-scaling-stroke}
.mm-muni-host .municipality:hover{filter:brightness(.92) saturate(1.15)}
/* パッチワーク4色ローテーション（視認性確保） */
.mm-muni-host .municipality:nth-of-type(4n+1){fill:#cfe3db}
.mm-muni-host .municipality:nth-of-type(4n+2){fill:#e3edd2}
.mm-muni-host .municipality:nth-of-type(4n+3){fill:#f0e6cb}
.mm-muni-host .municipality:nth-of-type(4n){fill:#d4e4ec}
.mm-muni-host .municipality.has-stay{fill:#8ec7b6 !important;cursor:pointer}
.mm-muni-host .municipality.has-stay:hover{fill:#76b9a6 !important}
.mm-pin-stay circle{fill:#fff}
/* 宿ピン */
.mm-pin{cursor:pointer;outline:none}
.mm-pin path{fill:var(--amber-deep);stroke:#fff;stroke-width:3;filter:drop-shadow(0 2px 2px rgba(16,59,52,.35))}
.mm-pin text{fill:#fff;font-size:22px;font-weight:700;font-family:inherit;pointer-events:none}
.mm-pin:hover path,.mm-pin:focus path{fill:var(--amber)}
.mm-pin-inner{animation:mmPinDrop .45s ease both}
@keyframes mmPinDrop{from{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}
.mm-map-wrap .boundary-line{stroke:#b9c6c2}
.mm-map-tooltip{display:none;position:fixed;z-index:60;background:#fff;color:var(--ink);
  border:1px solid var(--teal);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:700;
  box-shadow:var(--card-shadow);pointer-events:none;white-space:nowrap}
.mm-map-chips{margin-top:18px;justify-content:center}
.mm-map-recruit{margin-top:22px;padding:16px 20px;background:var(--soft);border:1px dashed var(--amber-deep);
  border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.mm-map-recruit p{margin:0;font-size:14px}
.mm-footer-nav{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 14px}
.mm-footer-nav a{color:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px}
@media (max-width:640px){
  .mm-map-recruit{flex-direction:column;align-items:flex-start}
}

.mm-map-credit{text-align:center;font-size:11px;color:var(--muted);margin-top:14px}

/* アニメーション抑制設定の尊重（a11y / ヘッドレス検証用） */
@media (prefers-reduced-motion: reduce){
  .mm-muni-host,.mm-pin-inner,.mm-stay-pop{animation:none}
}

/* ===== 宿ピンのラベル＋写真ポップアップ（市町村ビュー 2026-06-13） ===== */
.mm-muni-host{position:relative}
/* 施設名ラベルは常時表示しない（情報はピンのタップで写真ポップアップに集約）。
   再有効化する場合は .mm-pin-label を visibility:visible に戻すか is-zoomed ルールを足す。 */
.mm-pin-label{visibility:hidden}
/* 文字色・サイズは .mm-pin text{fill:#fff;font-size:22px}（県ピン件数用）より
   詳細度を上げて上書きする（白文字で見えなくなる不具合の修正）。 */
.mm-pin .mm-pin-label-bg{fill:rgba(255,255,255,.96);stroke:var(--teal);stroke-width:1.5}
.mm-pin .mm-pin-label-name{fill:var(--mm-ink);font-size:30px;font-weight:700;font-family:inherit}
.mm-pin .mm-pin-label-rec{fill:var(--amber-deep);font-size:24px;font-weight:700;font-family:inherit}
/* タップで出る写真ポップアップ */
.mm-stay-pop{position:absolute;z-index:65;width:206px;transform:translate(-50%,-100%);
  background:#fff;border:1px solid var(--mm-line);border-radius:13px;box-shadow:var(--card-shadow-hover);
  animation:mmFadeIn .18s ease both}
.mm-stay-pop.below{transform:translate(-50%,0)}
.mm-stay-pop::after{content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);
  border:8px solid transparent;border-top-color:#fff;filter:drop-shadow(0 2px 1px rgba(16,59,52,.12))}
.mm-stay-pop.below::after{top:-8px;bottom:auto;border-top-color:transparent;border-bottom-color:#fff;
  filter:drop-shadow(0 -2px 1px rgba(16,59,52,.12))}
.mm-pop-img{display:block;aspect-ratio:16/10;background:var(--mm-bg);border-radius:13px 13px 0 0;overflow:hidden}
.mm-pop-img img{width:100%;height:100%;object-fit:cover}
.mm-pop-body{display:block;padding:11px 13px 13px}
.mm-pop-body strong{display:block;font-size:14px;line-height:1.4;color:var(--mm-ink)}
.mm-pop-rec{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:700;font-style:normal;
  color:var(--amber-deep);background:#fff6e9;border-radius:6px;padding:2px 9px}
.mm-pop-catch{display:block;margin-top:7px;font-size:12px;color:var(--mm-sub);line-height:1.55}
.mm-pop-link{display:flex;margin-top:11px;width:100%;justify-content:center;padding:9px 10px;font-size:13px}

/* ===== お問い合わせ（オリジナル 2026-06-13） ===== */
.mm-contact .lead{max-width:760px;margin:0 auto 32px}
.mm-contact-grid{display:grid;grid-template-columns:336px 1fr;gap:30px;align-items:start;max-width:980px;margin:0 auto}
.mm-contact-card{background:var(--mm-bg);border:1px solid var(--mm-line);border-radius:var(--radius);padding:24px 22px;box-shadow:var(--card-shadow)}
.mm-contact-card h2{font-size:1.1rem;margin:0 0 14px;text-align:left}
.mm-contact-card h2::after{display:none}
.mm-contact-list{list-style:none;padding:0;margin:0 0 18px}
.mm-contact-list li{position:relative;padding:8px 0 8px 26px;border-bottom:1px dashed var(--mm-line);font-size:.92rem}
.mm-contact-list li:last-child{border-bottom:none}
.mm-contact-list li::before{content:"";position:absolute;left:4px;top:14px;width:7px;height:12px;border:solid var(--teal);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.mm-contact-list strong{color:var(--teal-dark)}
.mm-contact-meta{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 16px;font-size:.9rem;padding-top:14px;border-top:1px solid var(--mm-line)}
.mm-contact-meta dt{color:var(--mm-sub);font-weight:700}
.mm-contact-meta dd{margin:0;font-weight:700;color:var(--mm-ink)}
.mm-contact-note{font-size:.8rem;color:var(--mm-sub);line-height:1.7;margin:8px 0 0}
/* フォーム枠 */
.mm-contact-form{background:#fff;border:1px solid var(--mm-line);border-radius:var(--radius);padding:28px 26px;box-shadow:var(--card-shadow)}
.mm-cf .mm-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.mm-cf .mm-field{margin:0 0 16px}
.mm-cf .mm-field label{display:block;font-size:.86rem;font-weight:700;color:var(--mm-ink);margin:0 0 6px}
.mm-cf .req{display:inline-block;font-size:.68rem;color:#b3261e;background:#fde8e6;border-radius:4px;padding:1px 7px;margin-left:4px;font-weight:700}
.mm-cf .opt{display:inline-block;font-size:.68rem;color:var(--mm-sub);background:#fff;border:1px solid var(--mm-line);border-radius:4px;padding:0 7px;margin-left:4px;font-weight:700}
.mm-cf input[type=text],.mm-cf input[type=email],.mm-cf input[type=tel],.mm-cf input[type=url],.mm-cf select,.mm-cf textarea{
  width:100%;padding:11px 13px;border:1.5px solid var(--mm-line);border-radius:10px;font-size:1rem;font-family:inherit;color:var(--mm-ink);background:#fff;transition:border-color .15s,box-shadow .15s}
.mm-cf textarea{min-height:140px;resize:vertical}
.mm-cf input:focus,.mm-cf select:focus,.mm-cf textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,122,109,.15)}
.mm-fieldset{border:1px solid var(--mm-line);border-radius:12px;padding:16px 16px 2px;margin:0 0 16px;background:#fafcfb}
.mm-fieldset legend{font-size:.82rem;font-weight:700;color:var(--teal-dark);padding:0 8px}
.mm-consent{font-size:.88rem;margin:4px 0 18px}
.mm-consent .wpcf7-list-item{margin:0}
.mm-submit{margin:0;text-align:center}
.mm-cf .wpcf7-submit{display:inline-flex;align-items:center;gap:.4em;padding:14px 44px;border:0;border-radius:999px;cursor:pointer;
  background:linear-gradient(135deg,var(--amber),var(--amber-deep));color:#3a2600;font-weight:800;font-size:1rem;
  box-shadow:0 8px 22px rgba(231,149,28,.32);transition:transform .15s,box-shadow .15s}
.mm-cf .wpcf7-submit:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(231,149,28,.42)}
.mm-cf .wpcf7-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}
/* ハニーポット（人間には不可視） */
.mm-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
/* CF7メッセージ・バリデーション */
.wpcf7-response-output{border-radius:10px;padding:12px 16px!important;margin:18px 0 0!important;font-size:.9rem}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.spam .wpcf7-response-output{border:1.5px solid var(--amber-deep);background:#fff7ea;color:#7a4b00}
.wpcf7 form.sent .wpcf7-response-output{border:1.5px solid var(--teal);background:#eef7f4;color:var(--teal-dark)}
.wpcf7-not-valid-tip{color:#b3261e;font-size:.8rem;margin-top:4px}
.wpcf7-spinner{margin:0 0 0 10px}
@media(max-width:820px){
  .mm-contact-grid{grid-template-columns:1fr}
  .mm-cf .mm-2col{grid-template-columns:1fr}
  .mm-contact-form{padding:22px 18px}
}

/* ===== こだわりから探す ===== */
.mm-feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:32px}
.mm-feature-card{display:flex;flex-direction:column;padding:28px 24px;background:#fff;border:1.5px solid var(--mm-line);border-radius:14px;text-decoration:none;color:var(--mm-ink);box-shadow:var(--card-shadow);transition:all .2s ease}
.mm-feature-card:hover{border-color:var(--teal);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.1)}
.mm-feature-icon{font-size:2rem;margin-bottom:8px}
.mm-feature-name{font-size:1.15rem;font-weight:700;margin:0 0 8px}
.mm-feature-desc{font-size:.88rem;color:var(--mm-sub);line-height:1.65;flex:1;margin:0 0 12px}
.mm-feature-count{font-size:.82rem;font-weight:600;color:var(--teal);align-self:flex-start}
@media(max-width:600px){.mm-feature-grid{grid-template-columns:1fr;gap:14px}.mm-feature-card{padding:20px 18px}}
