:root{
  --ink:#1d1c1a; --sub:#7a766f; --line:#e7e2d9; --paper:#ffffff;
  --bg:#faf8f4; --bg2:#f1ece3; --gold:#6a655c; --gold-soft:rgba(106,101,92,.12); --red:#bc2f2f;
}
*{ box-sizing:border-box; }
body{ margin:0; background:var(--paper); color:var(--ink);
  font-family:"Noto Sans JP","メイリオ",Meiryo,sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img{ display:block; }
.preview-note{ position:fixed; top:0; left:0; right:0; z-index:999; background:#1d1c1a; color:#fff;
  font-size:11px; letter-spacing:.04em; text-align:center; padding:7px 16px; }
.preview-note b{ color:#d8b878; }
.ph-tag{ position:absolute; top:16px; right:16px; z-index:5; font-family:"Josefin Sans",sans-serif;
  font-size:10px; letter-spacing:.16em; color:#fff; background:rgba(0,0,0,.42);
  padding:4px 10px; border-radius:2px; }

.fmx{ font-family:"Noto Sans JP",sans-serif; color:var(--ink); overflow-x:clip; }
.fmx .en{ font-family:"Josefin Sans",sans-serif; }
.fmx .serif{ font-family:"Zen Kaku Gothic New",sans-serif; }
.fmx .wrap{ max-width:1180px; margin:0 auto; padding-left:40px; padding-right:40px; }
.fmx .kicker{ font-family:"Josefin Sans",sans-serif; font-weight:400; letter-spacing:.34em;
  font-size:12px; color:var(--gold); text-transform:uppercase; }
.fmx .rule{ width:1px; height:70px; background:linear-gradient(var(--gold),transparent); margin:0 auto 36px; }
/* ---- editorial: section index (罫線+採番) & circular ↗ link ---- */
.fmx-idx{ display:flex; justify-content:space-between; align-items:center; border-top:1px solid #d9d2c5;
  padding-top:13px; margin-bottom:42px; font-family:"Josefin Sans",sans-serif; text-transform:uppercase;
  letter-spacing:.22em; font-size:11px; }
.fmx-idx .lbl{ color:var(--ink); }
.fmx-idx .no{ color:var(--gold); letter-spacing:.06em; }
.fmx-arrow{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; flex:none;
  border:1px solid #d2cbbe; border-radius:50%; font-size:14px; line-height:1; transition:border-color .25s, background .25s, color .25s; }
.fmx-other-all:hover .fmx-arrow, .fmx-pick:hover .fmx-arrow{ border-color:var(--ink); background:var(--ink); color:#fff; }
.fmx-variation .fmx-idx{ border-top-color:rgba(255,255,255,.28); }
.fmx-variation .fmx-idx .lbl{ color:#fff; }
.fmx-variation .fmx-idx .no{ color:rgba(255,255,255,.55); }

/* ---- HERO ---- */
.fmx-hero{ position:relative; height:74vh; min-height:480px; overflow:hidden; }
.fmx-hero img, .fmx-hero video{ width:100%; height:100%; object-fit:cover; display:block; }
.fmx-hero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.42) 0%, rgba(0,0,0,.05) 45%, transparent 70%); }
.fmx-hero-cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:0 40px 56px; }
.fmx-hero-cap .inner{ max-width:1180px; margin:0 auto; color:#fff; }
.fmx-hero-kik{ font-family:"Josefin Sans",sans-serif; letter-spacing:.3em; font-size:12px; margin-bottom:18px; opacity:.92; }
.fmx-hero-ttl{ font-family:"Josefin Sans",sans-serif; font-weight:300; font-size:clamp(48px,9vw,104px);
  line-height:1; letter-spacing:.06em; margin:0; }
.fmx-hero-sub{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:300; letter-spacing:.22em;
  font-size:clamp(13px,1.6vw,16px); margin:22px 0 0; }

/* ---- FEATURES: 選ばれる6つの特徴 ---- */
.fmx-feat{ background:var(--bg); padding:120px 0; }
.fmx-feat-head{ text-align:center; margin-bottom:62px; }
.fmx-feat-head .kicker{ display:block; margin-bottom:18px; }
.fmx-feat-ttl{ font-family:"Josefin Sans",sans-serif; font-weight:300; font-size:clamp(34px,5vw,54px); letter-spacing:.06em; line-height:1.1; margin:0; }
.fmx-feat-ttl em{ font-style:normal; color:var(--gold); }
.fmx-feat-sub{ font-size:13px; color:var(--sub); letter-spacing:.08em; margin:16px 0 0; }
.fmx-feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:54px 40px; }
.fmx-feat-img{ position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:6px; }
.fmx-feat-img img{ width:100%; height:100%; object-fit:cover; transition:transform 1s ease; }
.fmx-feat-card:hover .fmx-feat-img img{ transform:scale(1.05); }
.fmx-feat-img .ph-tag{ top:10px; right:10px; font-size:8px; padding:3px 8px; }
.fmx-feat-no{ font-family:"Josefin Sans",sans-serif; font-size:26px; line-height:1; color:var(--gold); margin:18px 0 0; }
.fmx-feat-cttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:500; font-size:18px; letter-spacing:.04em; line-height:1.5; margin:6px 0 11px; }
.fmx-feat-desc{ font-size:13px; line-height:1.95; letter-spacing:.04em; color:var(--sub); }

/* ---- TOTAL COORDINATE (seat cover x floor mat) ---- */
.fmx-coord{ background:var(--paper); padding:120px 0; }
.fmx-coord-in{ display:grid; grid-template-columns:0.82fr 1fr; gap:64px; align-items:center; }
.fmx-coord-media{ position:relative; border-radius:6px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(0,0,0,.4); }
.fmx-coord-media img{ width:100%; display:block; aspect-ratio:3/4; object-fit:cover; }
.fmx-coord-media .ph-tag{ top:12px; left:12px; right:auto; }
.fmx-coord-tx{ text-align:left; }
.fmx-coord-tx .kicker{ display:block; margin-bottom:18px; color:var(--gold); }
.fmx-coord-ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:400; font-size:clamp(23px,3vw,33px);
  line-height:1.55; letter-spacing:.04em; margin:0 0 26px; color:var(--ink); }
.fmx-coord-ttl em{ font-style:normal; color:var(--ink); }
.fmx-coord-lead{ font-size:13.5px; line-height:2.15; letter-spacing:.05em; color:var(--sub); margin:0 0 36px; }
.fmx-coord-combo{ display:flex; justify-content:center; align-items:center; gap:20px; margin-bottom:40px; }
.fmx-coord-chip{ text-align:center; }
.fmx-coord-chip-img{ position:relative; display:block; width:188px; height:136px; border-radius:4px;
  overflow:hidden; border:1px solid var(--line); background:#fff; }
.fmx-coord-chip-img img{ width:100%; height:100%; object-fit:cover; }
.fmx-coord-chip .ph-tag{ top:6px; right:6px; font-size:8px; padding:2px 6px; }
.fmx-coord-chip-lbl{ display:block; margin-top:11px; font-size:12.5px; letter-spacing:.06em; font-weight:500; color:var(--ink); }
.fmx-coord-x{ font-family:"Josefin Sans",sans-serif; font-size:38px; color:var(--gold); align-self:flex-start; height:136px; line-height:136px; }
.fmx-coord-btn{ display:flex; width:fit-content; margin:0 auto; align-items:center; gap:10px; padding:16px 38px;
  background:var(--ink); color:#fff !important; text-decoration:none; font-size:13px; letter-spacing:.12em; border-radius:999px; transition:opacity .25s; }
.fmx-coord-btn:hover{ opacity:.82; }
.fmx-coord-btn i{ font-size:11px; }


/* ---- VARIATION full-bleed ---- */
.fmx-variation{ position:relative; padding:150px 0; text-align:center; overflow:hidden; }
.fmx-variation img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.fmx-variation::after{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.34); }
.fmx-variation-in{ position:relative; z-index:2; color:#fff; }
.fmx-variation-ttl{ font-family:"Josefin Sans",sans-serif; font-weight:300; font-size:clamp(40px,7vw,80px);
  letter-spacing:.1em; margin:20px 0 24px; line-height:1; }
.fmx-variation-lead{ max-width:560px; margin:0 auto; font-size:14.5px; line-height:2.4;
  letter-spacing:.08em; opacity:.95; }
.fmx-variation .kicker{ color:rgba(255,255,255,.6); }

/* ---- SELECTOR (車種→全体図) ---- */
.fmx-finder{ position:relative; padding:100px 0; }
.fmx-finder::before{ content:""; position:absolute; top:0; bottom:0; left:50%; transform:translateX(-50%);
  width:100vw; z-index:-1; background:linear-gradient(180deg,#f4efe6 0%,#ede7db 100%); }
/* かんたん検索 バッジ + 案内 */
.fmx-finder-head{ text-align:center; margin-bottom:30px; }
.fmx-finder-badge{ display:inline-block; background:var(--ink); color:#fff; font-family:"Noto Sans JP",sans-serif;
  font-weight:700; font-size:clamp(20px,2.6vw,28px); letter-spacing:.14em; padding:13px 44px; border-radius:999px;
  box-shadow:0 10px 26px rgba(29,28,26,.16); }
.fmx-finder-badge .st{ font-family:"Josefin Sans",sans-serif; color:var(--red); letter-spacing:.08em; margin-right:.22em; }
.fmx-finder-guide{ font-size:clamp(14px,1.6vw,17px); font-weight:700; color:#3d3933; letter-spacing:.06em; margin:20px 0 0; word-break:keep-all; }
.fmx-finder-guide span{ display:inline-block; white-space:nowrap; }
.fmx-finder-guide b{ font-weight:700; }
.fmx-finder-guide i{ font-style:normal; margin:0 9px; font-size:.82em; color:var(--gold); }
/* 白カード */
.fmx-finder-card{ max-width:960px; margin:0 auto; background:#fff; border-radius:14px;
  padding:44px 44px 48px; box-shadow:0 18px 48px rgba(0,0,0,.18); }
/* STEP arrows (chevron フロー) */
.fmx-steps{ display:flex; gap:10px; margin:0 0 44px; }
.fmx-step-arrow{ position:relative; flex:1; display:flex; align-items:center; justify-content:center; gap:14px;
  background:#f1ece3; color:#9c968b; padding:16px 16px 16px 34px; border-radius:4px; transition:background .35s, color .35s;
  clip-path:polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%, 18px 50%); }
.fmx-step-arrow:first-child{ padding-left:24px;
  clip-path:polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%); }
.fmx-step-num{ display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:54px; height:54px; flex:none; background:#cbc2b2; color:#fff; border-radius:7px; line-height:1; transition:background .35s, color .35s; }
.fmx-step-num i{ font-style:normal; font-family:"Josefin Sans",sans-serif; font-size:10px; letter-spacing:.14em; }
.fmx-step-num b{ font-family:"Josefin Sans",sans-serif; font-size:25px; font-weight:700; letter-spacing:0; margin-top:1px; }
.fmx-step-lbl{ font-family:"Noto Sans JP",sans-serif; font-size:clamp(14px,1.5vw,17px); letter-spacing:.04em; font-weight:700; }
.fmx-step-lbl .lx{ white-space:nowrap; }
.fmx-step-arrow.is-active{ background:var(--ink); color:#fff; }
.fmx-step-arrow.is-active .fmx-step-num{ background:var(--red); color:#fff; }
.fmx-step-arrow.is-done{ background:var(--ink); color:#fff; }
.fmx-step-arrow.is-done .fmx-step-num{ background:#fff; color:var(--ink); }
.fmx-sel{ max-width:900px; margin:0 auto; }
.fmx-sel-row{ margin-bottom:40px; }
.fmx-sel-row.is-locked{ display:none; }
.fmx-sel-label{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; font-family:"Josefin Sans",sans-serif;
  letter-spacing:.16em; font-size:12px; color:var(--gold); text-transform:uppercase; margin-bottom:22px; }
.fmx-sel-label .n{ width:26px; height:26px; border:1px solid var(--gold); border-radius:50%;
  display:grid; place-items:center; font-size:11px; flex:none; }
.fmx-sel-eg{ flex-basis:100%; margin:6px 0 0 40px; text-align:left;
  font-family:"Noto Sans JP",sans-serif; font-size:12px; letter-spacing:.02em;
  color:var(--sub); text-transform:none; font-weight:400; }
.fmx-chips{ display:flex; flex-wrap:wrap; gap:14px; }
.fmx-chip{ font-family:"Noto Sans JP",sans-serif; font-size:14px; letter-spacing:.04em; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); padding:14px 28px; border-radius:2px;
  cursor:pointer; transition:all .25s; }
.fmx-chip:hover{ border-color:var(--ink); }
.fmx-chip.active{ background:var(--ink); color:#fff; border-color:var(--ink); }
.fmx-chip-code{ display:block; }
.fmx-chip-sub{ display:block; margin-top:5px; font-size:11px; line-height:1.4; color:var(--sub); letter-spacing:.02em; max-width:24em; }
.fmx-chip.active .fmx-chip-sub{ color:#cfc8bb; }
.fmx-chip-tag{ display:inline-block; margin-top:7px; font-family:"Noto Sans JP",sans-serif; font-size:10.5px; font-weight:700; letter-spacing:.06em; color:var(--gold); background:rgba(201,162,75,.12); border-radius:99px; padding:2px 9px; }
.fmx-chip.active .fmx-chip-tag{ color:#fff; background:rgba(255,255,255,.18); }
.fmx-chip-oc{ display:inline-block; margin-top:7px; font-family:"Noto Sans JP",sans-serif; font-size:10.5px; font-weight:700; letter-spacing:.08em; color:#b9852b; background:rgba(185,133,43,.13); border-radius:99px; padding:2px 11px; }
.fmx-chip.is-oc{ border-style:dashed; }
.fmx-chip.active .fmx-chip-oc{ color:#fff; background:rgba(255,255,255,.2); }
.fmx-chips.as-stack{ display:block; }
.fmx-chips-inner{ display:flex; flex-wrap:wrap; gap:14px; }
.fmx-kata-back{ display:inline-flex; align-items:center; gap:7px; font-family:"Noto Sans JP",sans-serif; font-size:12.5px; font-weight:700; color:var(--sub); background:none; border:none; cursor:pointer; padding:2px 0; margin:0 0 16px; letter-spacing:.04em; }
.fmx-kata-back:hover{ color:var(--ink); }
.fmx-kata-back i{ font-size:11px; }
.fmx-kata-genlabel{ display:flex; align-items:center; gap:10px; font-family:"Noto Sans JP",sans-serif; font-weight:700; font-size:14px; color:var(--ink); letter-spacing:.04em; padding:10px 16px; margin:0 0 18px; background:var(--bg); border-left:3px solid var(--gold); border-radius:0 7px 7px 0; }
.fmx-kata-genlabel i{ color:var(--gold); font-size:15px; }
.fmx-kata-genlabel span{ font-family:"Josefin Sans",sans-serif; font-weight:600; color:var(--sub); font-size:13px; letter-spacing:.03em; }
.fmx-chips.as-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fmx-chips.as-grid2 .fmx-chip{ padding-left:8px; padding-right:8px; min-height:94px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.fmx-chips.as-grid2 .fmx-chip-code{ font-size:15px; font-weight:700; letter-spacing:0; line-height:1.3; }
.fmx-chips-inner .fmx-chip{ flex:1 1 100%; min-height:86px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.fmx-chips-inner .fmx-chip .fmx-chip-sub{ min-height:2.6em; }
/* PC/タブレットで世代・仕様カードの列を増やして間延びを防ぐ（モバイルは既定の2列/全幅） */
@media (min-width:760px){
  .fmx-chips.as-grid2{ grid-template-columns:repeat(3,1fr); }
  .fmx-chips-inner .fmx-chip{ flex:1 1 calc(50% - 7px); }
}
@media (min-width:1040px){
  .fmx-chips.as-grid2{ grid-template-columns:repeat(4,1fr); }
}
.fmx-chips-inner .fmx-chip .fmx-chip-sub{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fmx-kata-found{ font-family:"Noto Sans JP",sans-serif; font-size:13.5px; color:var(--sub); letter-spacing:.03em; margin:0 0 18px; }
.fmx-kata-found b{ font-family:"Josefin Sans",sans-serif; font-size:23px; font-weight:700; color:var(--ink); margin-right:5px; }
.fmx-kata-found:empty{ display:none; }
#result .fmx-found{ display:none; }

/* メーカー: ロゴタイル */
.fmx-makers{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.fmx-maker{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:11px;
  background:var(--paper); border:1px solid var(--line); border-radius:5px; padding:24px 12px; cursor:pointer; transition:all .25s; }
.fmx-maker:hover{ border-color:var(--ink); }
.fmx-maker.active{ border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); background:var(--bg); }
.fmx-maker-logo{ width:78px; height:78px; border-radius:50%; background:#fff; border:1px solid var(--line); display:grid; place-items:center; overflow:hidden; }
.fmx-maker-logo img{ width:80%; height:80%; object-fit:contain; }
.fmx-maker-logo i{ font-size:24px; color:var(--gold); }
.fmx-maker-name{ font-size:13px; letter-spacing:.04em; }
.fmx-maker .ph-tag{ position:absolute; top:7px; right:7px; font-size:8px; padding:2px 6px; background:rgba(0,0,0,.34); }

/* 選択後の折りたたみ summary (grace 風) */
.fmx-sel-row.is-done > .fmx-sel-label,
.fmx-sel-row.is-done > .fmx-makers,
.fmx-sel-row.is-done > .fmx-models,
.fmx-sel-row.is-done > .fmx-chips{ display:none; }
.fmx-sel-sum{ display:none; align-items:center; gap:16px; padding:13px 18px;
  border:1px solid var(--line); border-radius:6px; background:var(--paper); }
.fmx-sel-row.is-done > .fmx-sel-sum{ display:flex; }
.fmx-sel-sum .ss-step{ font-family:"Josefin Sans",sans-serif; font-size:11px; letter-spacing:.16em;
  color:var(--gold); text-transform:uppercase; white-space:nowrap; }
.fmx-sel-sum .ss-thumb{ width:48px; height:36px; object-fit:contain; border-radius:3px; background:#fff; border:1px solid var(--line); }
.fmx-sel-sum .ss-thumb.is-veh{ object-fit:cover; }
.fmx-sel-sum .ss-val{ flex:1; font-size:15px; font-weight:600; letter-spacing:.04em; color:var(--ink); }
.fmx-sel-sum .ss-change{ font-family:"Noto Sans JP",sans-serif; font-size:12px; letter-spacing:.06em; color:var(--sub);
  border:1px solid var(--line); background:var(--bg); padding:7px 17px; border-radius:999px; cursor:pointer; transition:all .2s; }
.fmx-sel-sum .ss-change:hover{ border-color:var(--ink); color:var(--ink); }

/* 車種: 画像カード */
.fmx-models{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.fmx-models-wrap{ display:block; }
.fmx-group{ margin-bottom:6px; }
.fmx-group-head{ display:flex; align-items:center; gap:10px; width:100%; cursor:pointer; background:#fff; border:0; border-bottom:2px solid var(--gold); font-family:"Noto Sans JP",sans-serif; font-size:14px; font-weight:700; color:var(--ink); letter-spacing:.05em; margin:0; padding:13px 4px 10px; text-align:left; }
.fmx-group-head:hover{ background:#fbf7ee; }
.fmx-group-cnt{ font-family:"Josefin Sans",sans-serif; font-size:11px; font-weight:600; color:#fff; background:var(--gold); border-radius:999px; padding:1px 9px; line-height:1.7; }
.fmx-group-chev{ margin-left:auto; font-size:13px; color:var(--gold); transition:transform .25s; }
.fmx-group.is-collapsed .fmx-group-chev{ transform:rotate(-90deg); }
.fmx-group-grid{ margin:14px 0 22px; }
.fmx-group.is-collapsed .fmx-group-grid{ display:none; }
/* 実データ版：車種は検索＋テキストチップ */
.fmx-models.as-list{ display:block; }
.fmx-model-search{ display:block; width:100%; max-width:440px; margin:0 auto 18px; padding:12px 16px;
  border:1px solid var(--line); border-radius:9px; font-size:14px; font-family:inherit; letter-spacing:.02em; }
.fmx-model-search:focus{ outline:none; border-color:var(--ink); }
.fmx-model-list{ display:flex; flex-wrap:wrap; gap:9px; justify-content:center; max-height:330px; overflow-y:auto; padding:3px; }
.fmx-model-empty{ color:var(--sub); font-size:13px; padding:22px; }
.fmx-fit{ display:inline-block; margin:18px 30px 2px; padding:7px 16px; border-radius:20px; font-size:14px; font-weight:700; letter-spacing:.03em; }
.fmx-fit.is-yes{ background:#e9f5ec; color:#2e8b50; }
.fmx-fit.is-order{ background:#fdf2e2; color:#b9852b; }
.fmx-spec-tbl td b{ font-family:"Josefin Sans",sans-serif; font-size:19px; color:var(--ink); letter-spacing:.02em; }
.fmx-model{ position:relative; display:block; background:var(--paper); border:1px solid var(--line); border-radius:5px;
  overflow:hidden; cursor:pointer; transition:all .25s; text-align:center; }
.fmx-model:hover{ border-color:var(--ink); }
.fmx-model.active{ border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
.fmx-model-img{ display:block; position:relative; aspect-ratio:4/3; overflow:hidden; background:#fff; }
.fmx-model-ph{ display:none; }
.fmx-model.no-img .fmx-model-img img{ display:none; }
.fmx-model.no-img .fmx-model-ph{ display:flex; align-items:center; justify-content:center; position:absolute; inset:0; color:#d6d0c3; font-size:30px; }
.fmx-model-img img{ width:100%; height:100%; object-fit:contain; padding:6px; box-sizing:border-box; }
.fmx-model-name{ display:block; font-size:13px; font-weight:500; letter-spacing:.03em;
  padding:10px 6px 12px; border-top:1px solid var(--line); background:var(--bg); color:var(--ink); }
.fmx-model .ph-tag{ position:absolute; top:7px; right:7px; font-size:8px; padding:2px 6px; }

/* 結果カード (grace-cts 風) */
.fmx-result{ margin-top:8px; max-height:0; opacity:0; overflow:hidden;
  transition:max-height .6s ease, opacity .45s ease; }
.fmx-result.show{ max-height:1600px; opacity:1; }
.fmx-found{ display:flex; align-items:center; justify-content:space-between; padding:4px 6px 22px; }
.fmx-found-tx{ font-size:14px; letter-spacing:.04em; color:var(--ink); }
.fmx-found-tx b{ font-family:"Josefin Sans",sans-serif; font-size:28px; color:var(--gold); margin-right:7px; }
.fmx-found-thumb{ width:90px; height:58px; object-fit:cover; border-radius:3px; }
.fmx-spec{ border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--paper); }
.fmx-spec-head{ font-family:"Zen Kaku Gothic New",sans-serif; font-size:21px; letter-spacing:.04em; padding:24px 30px; border-bottom:1px solid var(--line); }
.fmx-spec-head b{ font-family:"Josefin Sans",sans-serif; color:var(--gold); letter-spacing:.06em; margin-left:8px; }
.fmx-spec-tbl{ width:100%; border-collapse:collapse; }
.fmx-spec-tbl th, .fmx-spec-tbl td{ text-align:left; font-size:14px; padding:16px 30px; border-bottom:1px solid var(--line); vertical-align:top; letter-spacing:.04em; }
.fmx-spec-tbl th{ width:128px; color:var(--gold); font-weight:500; background:var(--bg); white-space:nowrap; }
.fmx-spec-tbl td{ color:var(--ink); }
.fmx-spec-band{ background:var(--ink); color:#fff; text-align:center; font-size:14px; letter-spacing:.18em; padding:15px; }
.fmx-spec-fig{ padding:44px; display:flex; align-items:center; justify-content:center; background:var(--bg); }
.fmx-spec-fig svg{ width:100%; height:auto; max-width:240px; }
.fmx-fig-prep{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; min-height:96px; color:#b8b2a4; font-family:"Noto Sans JP",sans-serif; font-size:13px; font-weight:600; letter-spacing:.14em; }
.fmx-fig-prep i{ font-size:32px; color:#dcd6c8; }
.fmx-result-foot{ padding:28px 30px 32px; }
.fmx-result-note{ font-size:12px; line-height:2; color:var(--sub); margin:0 0 24px; }
.fmx-result-note b{ color:var(--ink); }
.fmx-result-btn{ display:flex; width:fit-content; max-width:100%; margin:0 auto; align-items:center; justify-content:center; gap:10px; white-space:nowrap; text-decoration:none; color:#fff;
  background:var(--ink); font-size:14px; font-weight:500; letter-spacing:.04em; padding:15px 26px; border-radius:999px;
  transition:opacity .3s; }
.fmx-result-btn:hover{ opacity:.82; }
.fmx-result-btn i{ font-size:11px; }
.fmx-result-btn.is-buy{ background:var(--red); }
.fmx-result-na{ text-align:center; color:#a8472a; font-size:13px; font-weight:600; line-height:1.6; background:#fbeee9; border:1px solid #e9c9bd; border-radius:10px; padding:14px 16px; margin:0; }
.fmx-hinban-callout{ display:flex; align-items:center; gap:14px; margin:12px 16px 16px; padding:14px 18px; background:#fbf7ee; border:2px solid var(--gold); border-radius:10px; }
.fmx-hinban-callout .hbc-lbl{ font-family:"Noto Sans JP",sans-serif; font-size:11.5px; font-weight:700; color:var(--gold); letter-spacing:.08em; white-space:nowrap; }
.fmx-hinban-callout .hbc-code{ font-family:"Josefin Sans",sans-serif; font-size:26px; font-weight:700; color:var(--ink); letter-spacing:.04em; line-height:1; }
.fmx-hinban-callout.is-order{ border-color:#e3cf9f; }
.fmx-hinban-callout.is-order .hbc-code{ font-size:15px; color:#b9852b; }
.fmx-brandpick-lbl{ display:block; text-align:center; font-family:"Noto Sans JP",sans-serif; font-size:12px; font-weight:700; color:var(--ink); margin-bottom:12px; }
.fmx-brandpick-lbl small{ display:block; font-weight:400; font-size:10.5px; color:#9a9384; margin-top:3px; letter-spacing:.02em; }
.fmx-brandpick-row{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:13px; }
.fmx-brandcard{ display:block; text-decoration:none; border:1.5px solid #e7e0d2; border-radius:12px; overflow:hidden; background:#fff; transition:.16s; }
.fmx-brandcard:hover{ box-shadow:0 6px 18px rgba(0,0,0,.09); transform:translateY(-2px); }
.fmx-brandcard-img{ display:block; width:100%; aspect-ratio:3/2; overflow:hidden; background:#f2efe8; }
.fmx-brandcard-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 1s ease; }
.fmx-brandcard:hover .fmx-brandcard-img img{ transform:scale(1.05); }
.fmx-brandcard-meta{ display:block; text-align:center; padding:9px 8px 10px; }
.fmx-brandcard-meta b{ display:block; font-family:"Josefin Sans",sans-serif; font-size:17px; font-weight:700; color:var(--ink); letter-spacing:.08em; line-height:1.1; }
.fmx-brandcard-meta small{ display:block; font-family:"Noto Sans JP",sans-serif; font-size:10px; color:#9a9384; margin-top:2px; letter-spacing:.04em; }
.fmx-brandcard-go{ display:flex; align-items:center; justify-content:center; gap:6px; padding:8px 6px; border-top:1px solid #f0ebe0; font-family:"Noto Sans JP",sans-serif; font-size:11px; font-weight:700; color:var(--gold); }
.fmx-brandcard-go i{ font-size:9px; }
.fmx-brandcard.is-refinad:hover{ border-color:#2b2b2b; }
.fmx-brandcard.is-sandii:hover{ border-color:#7fb1cf; }
.fmx-sel-hint{ text-align:center; color:var(--sub); font-size:13px; letter-spacing:.06em; margin-top:30px; }
.mat-body{ fill:#fff; stroke:#d9d2c5; stroke-width:1.4; }
.mat-piece{ fill:var(--gold-soft); stroke:var(--gold); stroke-width:1.4; }
.mat-seat{ fill:none; stroke:#d0c9bc; stroke-width:1.2; }
.mat-label{ fill:var(--gold); font-family:"Josefin Sans",sans-serif; font-size:8px; letter-spacing:1px; }

/* ---- OTHER LINE UP (カテゴリ横断) ---- */
.fmx-other{ background:var(--bg); padding:140px 0; text-align:center; }
.fmx-other-ttl{ font-family:"Josefin Sans",sans-serif; font-weight:300; font-size:clamp(34px,5vw,56px);
  letter-spacing:.08em; margin:16px 0 12px; }
.fmx-other-sub{ font-size:13px; color:var(--sub); letter-spacing:.08em; margin:0 0 56px; }
.fmx-other-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.fmx-cat{ position:relative; display:block; overflow:hidden; border-radius:4px; text-decoration:none; color:#fff !important;
  aspect-ratio:4/3; background:#ddd; }
.fmx-cat img{ width:100%; height:100%; object-fit:cover; transition:transform 1s ease; }
.fmx-cat:hover img{ transform:scale(1.06); }
.fmx-cat::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.62), rgba(0,0,0,.08) 60%, transparent); }
.fmx-cat-cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:26px 24px; text-align:left; }
.fmx-cat-en{ font-family:"Josefin Sans",sans-serif; letter-spacing:.14em; font-size:18px; }
.fmx-cat-jp{ font-size:12px; letter-spacing:.06em; margin-top:5px; opacity:.92; }
.fmx-other-all{ display:inline-flex; align-items:center; gap:16px; margin-top:50px; text-decoration:none;
  color:var(--ink); font-size:14px; letter-spacing:.08em;
  transition:gap .25s; }
.fmx-other-all:hover{ gap:18px; }

.fmx-result-kata{ display:inline-block; font-size:12px; letter-spacing:.04em; color:var(--ink);
  background:var(--bg2); border-radius:2px; padding:5px 12px; margin-top:14px; }
.fmx-result-kata b{ font-family:"Josefin Sans",sans-serif; letter-spacing:.08em; }

/* ---- POPULAR vehicle sets ---- */
.fmx-pop{ padding:150px 0; text-align:center; }
.fmx-pop-ttl{ font-family:"Josefin Sans",sans-serif; font-weight:300; font-size:clamp(34px,5vw,56px);
  letter-spacing:.08em; margin:16px 0 12px; }
.fmx-pop-sub{ font-size:13px; color:var(--sub); letter-spacing:.08em; margin:0 0 64px; }
.fmx-pop-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.fmx-pop-card{ position:relative; display:block; overflow:hidden; border-radius:4px; text-decoration:none;
  color:#fff; aspect-ratio:4/3; background:#ddd; }
.fmx-pop-card img{ width:100%; height:100%; object-fit:cover; transition:transform 1s ease; }
.fmx-pop-card:hover img{ transform:scale(1.06); }
.fmx-pop-card::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.66), rgba(0,0,0,.05) 60%, transparent); }
.fmx-pop-cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px 22px; text-align:left;
  display:flex; align-items:flex-end; justify-content:space-between; }
.fmx-pop-name{ font-family:"Zen Kaku Gothic New",sans-serif; font-size:19px; letter-spacing:.04em; }
.fmx-pop-kata{ font-family:"Josefin Sans",sans-serif; font-size:11px; letter-spacing:.06em; opacity:.85; margin-top:3px; }
.fmx-pop-card .arr{ font-size:12px; opacity:.9; }

/* ---- BRAND COLLECTION ---- */
.fmx-lineup{ padding:150px 0; text-align:center; }
.fmx-lineup-ttl{ font-family:"Josefin Sans",sans-serif; font-weight:300; font-size:clamp(34px,5vw,56px);
  letter-spacing:.08em; margin:16px 0 12px; }
.fmx-lineup-sub{ font-size:13px; color:var(--sub); letter-spacing:.08em; margin:0 0 56px; }
.fmx-pick-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:40px; }
.fmx-pick{ display:block; text-decoration:none; color:var(--ink); text-align:left; }
.fmx-pick-img{ aspect-ratio:5/4; overflow:hidden; border-radius:4px; }
.fmx-pick-img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s ease; }
.fmx-pick:hover .fmx-pick-img img{ transform:scale(1.06); }
.fmx-pick-brand{ font-family:"Josefin Sans",sans-serif; letter-spacing:.2em; font-size:12px; color:var(--gold); margin-top:24px; }
.fmx-pick-name{ font-family:"Zen Kaku Gothic New",sans-serif; font-size:22px; letter-spacing:.04em; margin:8px 0 14px; }
.fmx-pick-more{ display:flex; justify-content:flex-end; align-items:center; gap:12px; font-family:"Josefin Sans",sans-serif; font-size:12px; letter-spacing:.14em; color:var(--ink); }
.fmx-pick:hover .fmx-pick-more{ border-color:var(--gold); }

/* ---- responsive ---- */
@media (max-width:820px){
  .fmx .wrap{ padding-left:24px; padding-right:24px; }
  .fmx-hero{ height:100vh; height:100dvh; min-height:0; }
  .fmx-hero-cap{ padding:0 24px 56px; }
  .fmx-feat{ padding:72px 0; }
  .fmx-coord{ padding:72px 0 80px; }
  .fmx-coord-in{ grid-template-columns:1fr; gap:36px; }
  .fmx-coord-ttl{ font-size:19px; letter-spacing:.01em; line-height:1.5; }
  .fmx-coord-media img{ aspect-ratio:4/3; }
  .fmx-coord-combo{ gap:16px; }
  .fmx-coord-chip-img{ width:130px; height:94px; }
  .fmx-coord-x{ height:94px; line-height:94px; }
  .fmx-feat-head{ margin-bottom:38px; }
  .fmx-feat-ttl{ letter-spacing:.04em; }
  .fmx-feat-grid{ grid-template-columns:1fr 1fr; gap:30px 16px; }
  .fmx-feat-no{ font-size:21px; margin-top:14px; }
  .fmx-feat-cttl{ font-size:14.5px; margin:5px 0 8px; }
  .fmx-feat-desc{ font-size:12px; line-height:1.8; }
  .fmx-variation{ padding:90px 0; }
  .fmx-finder{ padding:72px 0; }
  .fmx-finder-badge{ font-size:22px; padding:11px 34px; letter-spacing:.1em; }
  .fmx-finder-guide{ font-size:13px; letter-spacing:.02em; margin-top:14px; }
  .fmx-finder-guide i{ margin:0 6px; }
  .fmx-finder-card{ padding:26px 16px 30px; border-radius:10px; }
  .fmx-steps{ gap:5px; margin:0 0 30px; }
  .fmx-step-arrow{ flex-direction:column; gap:9px; padding:14px 6px 14px 14px;
    clip-path:polygon(0 0, calc(100% - 11px) 0, 100% 50%, calc(100% - 11px) 100%, 0 100%, 11px 50%); }
  .fmx-step-arrow:first-child{ padding-left:8px;
    clip-path:polygon(0 0, calc(100% - 11px) 0, 100% 50%, calc(100% - 11px) 100%, 0 100%); }
  .fmx-step-num{ width:40px; height:40px; border-radius:5px; }
  .fmx-step-num i{ font-size:8px; }
  .fmx-step-num b{ font-size:18px; }
  .fmx-step-lbl{ font-size:11px; letter-spacing:.01em; text-align:center; line-height:1.35; }
  .fmx-step-lbl .lx{ display:block; }
  .fmx-makers{ grid-template-columns:repeat(3,1fr); gap:10px; }
  .fmx-maker{ padding:16px 8px; gap:9px; }
  .fmx-maker-logo{ width:64px; height:64px; }
  .fmx-maker-logo i{ font-size:24px; }
  .fmx-maker-name{ font-size:12px; }
  .fmx-models{ grid-template-columns:repeat(3,1fr); gap:12px; }
  .fmx-model-name{ font-size:12px; padding:10px 4px; }
  .fmx-result.show{ max-height:2000px; }
  .fmx-spec-head{ font-size:18px; padding:20px 22px; }
  .fmx-spec-tbl th, .fmx-spec-tbl td{ padding:14px 22px; font-size:13px; }
  .fmx-spec-tbl th{ width:96px; }
  .fmx-spec-fig{ padding:32px; }
  .fmx-spec-fig svg{ max-width:200px; }
  .fmx-result-foot{ padding:24px 22px 26px; }
  .fmx-found-thumb{ width:74px; height:48px; }
  .fmx-other{ padding:80px 0; }
  .fmx-other-grid{ grid-template-columns:1fr; gap:18px; }
  .fmx-cat{ aspect-ratio:16/9; }
  .fmx-pop{ padding:90px 0; }
  .fmx-pop-grid{ grid-template-columns:1fr; gap:18px; }
  .fmx-pop-card{ aspect-ratio:16/9; }
  .fmx-sel-row{ margin-bottom:32px; }
  .fmx-lineup{ padding:80px 0; }
  .fmx-pick-grid{ grid-template-columns:1fr; gap:30px; }
}
@media (max-width:520px){
  .fmx-makers{ grid-template-columns:repeat(3,1fr); gap:9px; }
  .fmx-maker-logo{ width:54px; height:54px; }
  .fmx-models{ grid-template-columns:repeat(2,1fr); gap:11px; }
}