@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .dm-header / .dm-topbar / .dm-navbar 系  - 2段組ヘッダー（グラデ上帯＋白ナビ帯＋金枠電話＋CTA）
 * .dm-gnav 系                              - デスクトップグローバルナビ（現在ページ強調）
 * .nav-toggle / .sp-nav 系                 - SPスライドインナビ（当サイト用ブレイクポイント1040pxで上書き）
 * .dm-cta 系                               - フッター上お問い合わせCTA帯（背景写真＋濃紺グラデ）
 * .dm-footer 系 / .dm-phonebar 系          - フッター本体・コピーライト・SP固定電話バー
 * .dm-wrap / .dm-bg-* / .dm-sechead 系     - セクション幅・背景・見出し（英ラベル＋日本語タイトル）
 * .dm-btn 系                               - ボタン（indigo/outline/gold/white・サイズ）
 * .dm-hero / .dm-phero 系                  - トップMV・下層ページヒーロー
 * .dm-shopcard / .dm-ratecard / .dm-newsbox / .dm-campcard 系 - TOP各セクション
 * .dm-catgrid / .dm-voicecard / .dm-faqcard 系               - TOP品目・お客様の声・FAQ
 * .dm-featcard / .dm-itemcard 系           - 買取品目一覧ページ
 * .dm-filter / .dm-workcard / .dm-darkcta 系                 - 買取実績ページ
 * .dm-flow 系 / .dm-bring 系               - 買取方法ページ（ステップタイムライン・持ち物）
 * .dm-shopitem / .dm-form 系 / .dm-snsbox  - 店舗案内・お問い合わせフォーム
 * .dm-bloglayout / .dm-postcard / .dm-side / .dm-article / .dm-pricebox 系 - ブログ（一覧・詳細・実績詳細）
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：2段組ヘッダー（グラデ上帯＋白ナビ帯）／金枠付き電話ブロック／SP固定電話バー（店舗名＋番号＋相談）
 * ・装飾パターン不足：ペンタゴン型STEPバッジ＋点線コネクターのフロー図（買取方法）
 * ・値の粒度不足：セクション余白 clamp() 指定・カード角丸18〜20px・max-width:1160px 等、参考デザイン固有値
 * ・状態不足：現在ページナビの inset 下線ゴールド強調
 * ・装飾パターン不足：写真＋濃紺グラデ暗幕のCTA帯／金グラデ電話ボタン
 */

:root {
  /* メイン：大吉らしい信頼感のある青 */
  --dm-indigo: #100169;
  --dm-indigo-l: #1D109C;
  --dm-indigo-d: #08285E;
  /* 濃色：見出し・フッター・帯 */
  --dm-navy: #08285E;
  /* アクセント（旧ゴールド枠のトークン名を流用し、青系に統一） */
  --dm-gold: #100169;
  --dm-gold-b: #D6E1F0;
  --dm-gold-ink: #08285E;
  /* 薄い背景：淡い青みグレー */
  --dm-cream: #F3F7FC;
  /* 本文：黒に近い濃いグレー */
  --dm-ink: #20242A;
  /* 背景：白 */
  --dm-paper: #FFFFFF;
  /* 罫線：淡い青グレー */
  --dm-line: #D6E1F0;
  --dm-muted: #5A6472;
  --dm-lav: #F3F7FC;
  --dm-lav-1: #E8F0FA;
  --dm-lav-2: #A8C2E6;
  --dm-lav-3: #C8DAF0;
  /* LINE（LINEボタンのみに使用） */
  --dm-line-green: #06C755;
}

/* 本文フォント：PC・SPともに16px前後／行間1.7（main.css の 14px・12px 指定を上書き） */
body { background: var(--dm-paper); color: var(--dm-ink); font-size: 1.6rem; line-height: 1.7; }
a { color: var(--dm-indigo); }
img { max-width: 100%; }

/* =========================================================
   ヘッダー
   ========================================================= */
.dm-header { position: sticky; top: 0; z-index: 260; }

.dm-topbar { background: linear-gradient(90deg, var(--dm-indigo), var(--dm-indigo-l)); color: var(--dm-lav-1); font-size: 1.3rem; letter-spacing: .04em; }
.dm-topbar__inner { max-width: 1440px; margin: 0 auto; padding: 7px 22px; display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.dm-topbar__shop { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.dm-topbar__dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--dm-gold-b); }
.dm-topbar__hours { color: var(--dm-lav-2); font-family: "Noto Sans JP", sans-serif; font-weight: 700; }

.dm-navbar { background: #fff; border-bottom: 1px solid var(--dm-line); box-shadow: 0 2px 14px rgba(8,40,94,.06); }
.dm-navbar__inner { max-width: 1440px; margin: 0 auto; padding: 12px 22px; display: flex; align-items: center; gap: 22px; }

.dm-logo { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; text-decoration: none; }
/* ロゴはお客様支給画像のため、ホバー時も色味・不透明度を変えない（main.css の a:hover{opacity:.8} を打ち消す） */
.dm-logo, .dm-logo:hover, .dm-logo:focus, .dm-logo:active { opacity: 1; }
.dm-logo__img, .dm-logo:hover .dm-logo__img { filter: none; opacity: 1; }
.dm-logo__mark { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; background: linear-gradient(150deg, var(--dm-navy), var(--dm-indigo)); color: var(--dm-gold-b); font-size: 2rem; flex: 0 0 auto; }
.dm-logo__body { display: flex; flex-direction: column; line-height: 1.15; }
.dm-logo__ja { font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 2.4rem; color: var(--dm-navy); letter-spacing: .04em; }
.dm-logo__ja b { font-weight: 900; }
.dm-logo__en { font-family: "Montserrat", sans-serif; font-weight: 600; font-size: 1.1rem; color: var(--dm-gold); letter-spacing: .14em; margin-top: 2px; }
.dm-logo__img { display: block; height: 48px; width: auto; }
/* ロゴ右横の店舗名（上下ボーダー付き） */
.dm-logo__shop { margin-left: 6px; padding: 6px 0; border-top: 1px solid var(--dm-navy); border-bottom: 1px solid var(--dm-navy); font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.4rem; line-height: 1.2; letter-spacing: .04em; color: #000; white-space: nowrap; }

.dm-gnav { flex: 1; display: flex; justify-content: center; gap: 4px; flex-wrap: nowrap; }
.dm-gnav__link { font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.5rem; padding: 10px 10px; border-radius: 9px; white-space: nowrap; line-height: 1; color: #2E3742; text-decoration: none; transition: background .25s ease, color .25s ease; }
.dm-gnav__link:hover { color: var(--dm-navy); background: var(--dm-lav); }
.dm-gnav__link.is-current { color: var(--dm-navy); background: var(--dm-cream); box-shadow: inset 0 -3px 0 var(--dm-gold); }

.dm-navbar__right { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; }
.dm-telbox { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.1; border: 2px solid var(--dm-gold); border-radius: 12px; padding: 7px 14px; background: linear-gradient(180deg, #FFFFFF, var(--dm-cream)); text-decoration: none; }
.dm-telbox__label { font-size: 1.1rem; font-weight: 700; color: var(--dm-gold-ink); letter-spacing: .08em; }
.dm-telbox__num { font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 2.6rem; color: var(--dm-navy); letter-spacing: .01em; }

.dm-headcta { display: inline-flex; align-items: center; justify-content: center; background: var(--dm-indigo); color: #fff; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.5rem; padding: 12px 18px; border-radius: 12px; white-space: nowrap; text-decoration: none; box-shadow: 0 6px 16px rgba(16,1,105,.28); transition: background .25s ease; }
.dm-headcta:hover { background: var(--dm-indigo-l); color: #fff; }

/* ハンバーガー & SPナビ（当サイト用に main.css を上書き） */
.nav-toggle { display: none; position: static; top: auto; right: auto; z-index: auto; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 48px; height: 44px; border: 1px solid var(--dm-line); border-radius: 10px; background: #fff; backdrop-filter: none; cursor: pointer; margin-left: auto; padding: 0; }
.nav-toggle__line { display: block; position: static; left: auto; top: auto; transform: none; width: 22px; height: 2.5px; background: var(--dm-navy); border-radius: 2px; transition: transform .3s ease, opacity .3s ease; }
.nav-toggle.is-active .nav-toggle__line:nth-child(1) { top: auto; transform: translateY(7.5px) rotate(45deg); }
.nav-toggle.is-active .nav-toggle__line:nth-child(2) { opacity: 0; }
.nav-toggle.is-active .nav-toggle__line:nth-child(3) { top: auto; transform: translateY(-7.5px) rotate(-45deg); }

/* 全画面表示。flex 縦並びでナビ項目を上下いっぱいに均等配置し、スクロールなしで収める。
   上部の padding は X（閉じる）ボタン分の余白。 */
.sp-nav { display: flex; flex-direction: column; align-items: stretch; position: fixed; inset: 0; width: 100%; height: 100vh; height: 100dvh; background: linear-gradient(160deg, var(--dm-navy), var(--dm-indigo)); z-index: 250; transform: translateX(100%); transition: transform .35s cubic-bezier(.4,0,.2,1); overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 72px 0 max(20px, env(safe-area-inset-bottom)); box-shadow: none; }
.sp-nav.is-open { transform: translateX(0); }
/* メニュー展開時の背景バックドロップ（ヘッダー260より下・メニュー250より下） */
.sp-nav__backdrop { position: fixed; inset: 0; z-index: 240; background: rgba(8,40,94,.5); opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility .35s ease; }
.sp-nav__backdrop.is-open { opacity: 1; visibility: visible; }
/* max-width:none / text-align:left で main.css の max-width:320px・中央寄せを打ち消す（右側の空白対策） */
.sp-nav__list { list-style: none; margin: 0; padding: 0; width: 100%; max-width: none; text-align: left; flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; }
.sp-nav__item { border-bottom: 1px solid rgba(255,255,255,.12); }
.sp-nav__link { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; padding: clamp(10px, 2vh, 18px) 28px; color: #fff; text-decoration: none; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.6rem; }
/* main.css が付与する疑似要素の「＞」を無効化（矢印はプルダウンの下向きのみとする） */
.sp-nav__link::after { content: none; }
.sp-nav__label { display: flex; flex-direction: column; }
.sp-nav__en { font-family: "Montserrat", sans-serif; font-size: 1.1rem; font-weight: 600; color: var(--dm-gold-b); letter-spacing: .12em; margin-bottom: 2px; margin-right: 0; padding-left: 0; }
/* margin-top/width/text-align は main.css の値を打ち消す */
.sp-nav__bottom { flex: 0 0 auto; padding: 20px 28px 0; display: flex; flex-direction: column; gap: 12px; margin-top: 0; width: auto; max-width: none; text-align: left; }
.dm-telbox--spmenu { align-items: center; width: 100%; }
.dm-headcta--full { width: 100%; padding: 14px; font-size: 1.6rem; }
/* SPメニュー内CTA：暗い背景で埋もれないようゴールド系に */
.dm-headcta--spmenu { gap: 8px; background: linear-gradient(180deg, var(--dm-gold-b), var(--dm-gold)); color: var(--dm-navy); font-weight: 900; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.dm-headcta--spmenu:hover { background: linear-gradient(180deg, #C9DBF2, var(--dm-gold-b)); color: var(--dm-navy); }
body.is-nav-open { overflow: hidden; }
/* メニュー展開中はヘッダーの背景・ロゴを隠し、Xボタンだけ残して全画面表示に */
body.is-nav-open .dm-topbar { display: none; }
body.is-nav-open .dm-navbar { background: transparent; box-shadow: none; border-bottom-color: transparent; }
body.is-nav-open .dm-logo { visibility: hidden; }

/* =========================================================
   汎用レイアウト・見出し・ボタン
   ========================================================= */
.dm-wrap { max-width: 1160px; margin: 0 auto; padding: clamp(40px,5vw,60px) 22px; }
.dm-wrap--narrow { max-width: 1135px; }
.dm-wrap--sm { max-width: 840px; }
.dm-wrap--md { max-width: 1080px; }
.dm-wrap--form { max-width: 820px; }
.dm-wrap--tight { padding-top: 0; padding-bottom: clamp(30px,4vw,44px); }
.dm-wrap--wide { max-width: 1440px; }

.dm-bg-white { background: #fff; }
.dm-bg-paper { background: var(--dm-paper); }
.dm-bg-lav { background: var(--dm-lav); }
.dm-bg-navy { background: var(--dm-navy); }
.dm-bg-indigograd { background: linear-gradient(120deg, var(--dm-indigo), var(--dm-indigo-l)); color: #fff; }
.dm-bg-cream { background: linear-gradient(var(--dm-cream), var(--dm-paper)); border-top: 1px solid #D6E1F0; border-bottom: 1px solid #D6E1F0; }
.dm-border-b { border-bottom: 1px solid #E3ECF7; }

.dm-eyebrow { display: block; font-family: "Montserrat", sans-serif; font-size: 1.3rem; letter-spacing: .18em; color: var(--dm-gold); font-weight: 700; text-transform: uppercase; }
.dm-eyebrow--onindigo { color: var(--dm-gold-b); }

/* SP専用改行（デフォルト非表示・SPで有効化） */
.br-sp { display: none; }
.dm-sechead { text-align: center; margin-bottom: 32px; }
.dm-sechead__title { margin: 6px 0 0; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(24px,3.6vw,36px); color: var(--dm-navy); line-height: 1.35; }
.dm-sechead__desc { margin: 10px 0 0; color: var(--dm-muted); font-size: 1.5rem; }
.dm-sechead--onindigo .dm-sechead__title { color: #fff; }
.dm-sechead--onindigo .dm-sechead__desc { color: var(--dm-lav-2); }

/* 左右振り分け見出し（左：ラベル＋タイトル／右：リンク・注記） */
.dm-sechead--row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 22px; text-align: left; }
.dm-sechead--row .dm-sechead__title { margin-top: 6px; }
.dm-morelink { font-weight: 700; font-size: 1.4rem; color: var(--dm-indigo); text-decoration: none; border-bottom: 2px solid var(--dm-gold); padding-bottom: 2px; white-space: nowrap; }
.dm-note { margin: 18px 0 0; text-align: center; font-size: 1.3rem; color: #6B7684; }
.dm-note--left { text-align: left; }

.dm-btnrow { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

.dm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.7rem; padding: 15px 30px; border-radius: 13px; text-decoration: none; line-height: 1.3; text-align: center; border: 2px solid transparent; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease; cursor: pointer; }
.dm-btn:hover { transform: translateY(-2px); }
.dm-btn--indigo { background: var(--dm-indigo); color: #fff; box-shadow: 0 8px 20px rgba(16,1,105,.3); }
.dm-btn--indigo:hover { background: var(--dm-indigo-l); color: #fff; }
.dm-btn--outline { background: #fff; border-color: var(--dm-indigo); color: var(--dm-indigo); padding: 13px 28px; }
.dm-btn--outline:hover { background: var(--dm-lav); }
.dm-btn--white { background: #fff; color: var(--dm-indigo); }
.dm-btn--gold { background: linear-gradient(180deg,#FFFFFF,#EAF1FB); border-color: var(--dm-gold-b); color: var(--dm-navy); font-weight: 900; }
.dm-btn--lg { font-size: 2.2rem; padding: 15px 34px; }
.dm-btn--sm { font-size: 1.5rem; padding: 12px 22px; }

/* =========================================================
   トップ メインビュー
   ========================================================= */
.dm-hero-band { position: relative; }
.dm-hero { position: relative; overflow: hidden; background: #08285E; }
.dm-hero__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 52px; height: 52px; border-radius: 50%; border: 0; display: flex; align-items: center; justify-content: center; cursor: pointer; background: rgba(8,40,94,.55); color: #fff; font-size: 1.9rem; transition: background .3s, transform .3s; }
.dm-hero__arrow:hover { background: var(--dm-navy); transform: translateY(-50%) scale(1.08); }
.dm-hero__arrow--prev { left: 2vw; }
.dm-hero__arrow--next { right: 2vw; }
.dm-hero__track { display: flex; transition: transform .7s cubic-bezier(.4,0,.2,1); will-change: transform; }
.dm-hero__slide { flex: 0 0 100%; display: block; aspect-ratio: 1774 / 887; background-position: center center; background-size: cover; background-repeat: no-repeat; background-color: #08285E; }
.dm-hero__dots { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 10px; z-index: 2; }
.dm-hero__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.5); cursor: pointer; transition: background .3s, transform .3s; }
.dm-hero__dot.is-active { background: var(--dm-gold-b); transform: scale(1.2); }
/* PC時：ヘッダーを除いた1画面内にMV全体が収まるよう最大幅を制限（比率1774:887=2:1のため見切れなし） */
@media (min-width: 768px) {
  .dm-hero { max-width: calc((100vh - var(--dm-header-h, 104px)) * 2); margin-left: auto; margin-right: auto; }
}
/* MV上のCTA：PC時のみ、画像の左下に2カラムで重ねる */
.dm-herocta { display: none; }
@media (min-width: 768px) {
  .dm-herocta {
    position: absolute;
    left: clamp(20px, 4%, 56px);
    bottom: clamp(20px, 15%, 115px);
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    width: min(52%, 500px);
  }
}
.dm-herocta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 1.7rem;
  line-height: 1.3;
  padding: 16px 18px;
  border-radius: 12px;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 8px 20px rgba(8,40,94,.28);
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.dm-herocta__btn i { font-size: 1.9rem; color: #fff; }
.dm-herocta__btn:hover { transform: translateY(-2px); color: #fff; box-shadow: 0 10px 24px rgba(8,40,94,.34); }
.dm-herocta__btn--navy { background: var(--dm-navy); }
.dm-herocta__btn--navy:hover { background: var(--dm-indigo); }
.dm-herocta__btn--line { background: var(--dm-line-green); }
.dm-herocta__btn--line:hover { background: #05B24C; }

/* トップMV：PC用画像（1774×887）。SP用は下記メディアクエリで差し替える */
.dm-hero__slide--main { background-image: url(https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28396/mv.webp); }
/* スマホ時：MVの矢印ボタンは非表示／MVはSP用の縦画像（864×1433）に差し替え */
@media (max-width: 767px) {
  .dm-hero__arrow { display: none; }
  .dm-hero__slide--main { background-image: url(https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28396/mv_sp.webp); aspect-ratio: 864 / 1433; }
}

/* =========================================================
   下層ページヒーロー
   ========================================================= */
.dm-phero { position: relative; background: var(--dm-navy); color: #fff; overflow: hidden; }
.dm-phero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.dm-phero__overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(8,40,94,.92), rgba(8,40,94,.78) 42%, rgba(8,40,94,.55)); }
.dm-phero__inner { position: relative; z-index: 1; max-width: 1160px; margin: 0 auto; padding: clamp(34px,5vw,56px) 22px; }
.dm-phero__crumb { margin: 0 0 6px; font-size: 1.3rem; color: var(--dm-lav-2); }
.dm-phero__crumb a { color: var(--dm-lav-2); text-decoration: none; }
.dm-phero__crumb a:hover { text-decoration: underline; }
.dm-phero__en { display: block; font-family: "Montserrat", sans-serif; font-size: 1.3rem; letter-spacing: .2em; color: var(--dm-gold-b); font-weight: 700; }
.dm-phero__title { margin: 6px 0 10px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(28px,4.6vw,46px); }
.dm-phero__lead { margin: 0; color: var(--dm-lav-1); font-size: clamp(14px,1.7vw,17px); line-height: 1.85; max-width: 880px; }

/* =========================================================
   TOP：店舗アクセス要約カード
   ========================================================= */
.dm-shopcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 18px; }
.dm-shopcard { border: 2px solid var(--dm-line); border-radius: 16px; padding: 22px 20px; background: linear-gradient(#fff, var(--dm-paper)); display: flex; flex-direction: column; }
.dm-shopcard__head { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.dm-shopcard__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--dm-indigo); flex: 0 0 auto; }
.dm-shopcard__name { margin: 0; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.9rem; color: var(--dm-navy); }
.dm-shopcard__addr { margin: 0 0 6px; font-size: 1.4rem; color: #3C4653; line-height: 1.7; flex: 1; }
.dm-shopcard__access { margin: 0 0 14px; font-size: 1.3rem; color: var(--dm-gold-ink); font-weight: 700; min-height: 1em; }
.dm-shopcard__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dm-shopcard__tel { text-align: center; background: var(--dm-indigo); color: #fff; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.5rem; padding: 11px 6px; border-radius: 10px; text-decoration: none; }
.dm-shopcard__more { text-align: center; border: 2px solid var(--dm-indigo); color: var(--dm-indigo); font-weight: 700; font-size: 1.4rem; padding: 9px 6px; border-radius: 10px; text-decoration: none; display: flex; align-items: center; justify-content: center; }
.dm-shopcard__tel:hover { background: var(--dm-indigo-l); }
.dm-shopcard__more:hover { background: var(--dm-lav); }

/* =========================================================
   TOP：本日の相場表
   ========================================================= */
.dm-rategrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 14px; }
.dm-ratecard { background: rgba(255,255,255,.06); border: 1px solid rgba(214,225,240,.45); border-radius: 14px; padding: 20px; }
.dm-ratecard__label { margin: 0 0 6px; font-size: 1.4rem; color: var(--dm-gold-b); font-weight: 700; letter-spacing: .03em; }
.dm-ratecard__val { margin: 0; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(22px,2.6vw,30px); }
.dm-ratecard__unit { font-size: 1.4rem; font-weight: 500; color: var(--dm-lav-2); }
.dm-rate-fine { margin: 18px 0 0; font-size: 1.2rem; color: #A8C2E6; }

/* =========================================================
   TOP：お知らせ（埋め込みCMS想定）
   ========================================================= */
.dm-newsbox { background: #fff; border: 1px solid #E3ECF7; border-radius: 16px; overflow: hidden; }
.dm-newsrow { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 18px 22px; border-bottom: 1px solid #E8EFF8; text-decoration: none; transition: background .2s ease; }
.dm-newsrow:last-child { border-bottom: none; }
.dm-newsrow:hover { background: var(--dm-paper); }
.dm-newsrow__date { font-size: 1.3rem; color: #6B7684; width: 104px; }
.dm-newsrow__cat { font-size: 1.2rem; font-weight: 700; color: #fff; background: var(--dm-indigo); padding: 3px 10px; border-radius: 20px; }
.dm-newsrow__cat--camp { background: var(--dm-gold); }
.dm-newsrow__cat--shop { background: #08285E; }
.dm-newsrow__title { flex: 1; min-width: 200px; font-size: 1.5rem; font-weight: 500; color: #20242A; }

/* =========================================================
   TOP：キャンペーンバナー
   ========================================================= */
.dm-campgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 16px; }
.dm-campcard { position: relative; border-radius: 18px; overflow: hidden; min-height: 180px; display: flex; }
.dm-campcard__bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-color: var(--dm-navy); transition: transform .5s ease; }
.dm-campcard:hover .dm-campcard__bg { transform: scale(1.06); }
.dm-campcard__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,40,94,.86), rgba(8,40,94,.25)); pointer-events: none; }
.dm-campcard__body { position: relative; padding: 26px; color: #fff; align-self: center; }
.dm-campcard__badge { display: inline-block; background: var(--dm-gold-b); color: var(--dm-navy); font-weight: 700; font-size: 1.2rem; padding: 3px 10px; border-radius: 4px; }
.dm-campcard__title { margin: 12px 0 6px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(20px,2.6vw,26px); }
.dm-campcard__text { margin: 0; font-size: 1.4rem; color: #DCE6F4; }

/* =========================================================
   TOP：高価買取リード帯
   ========================================================= */
.dm-lead { text-align: center; }
.dm-lead__title { margin: 0 0 16px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(26px,4.4vw,44px); color: var(--dm-navy); line-height: 1.3; }
.dm-lead__title em { font-style: normal; color: var(--dm-gold); }
.dm-lead__text { margin: 0 0 26px; font-size: clamp(15px,1.9vw,18px); line-height: 1.95; color: #2E3742; }

/* =========================================================
   TOP：買取品目カテゴリグリッド
   ========================================================= */
.dm-catgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px,1fr)); gap: 12px; }
.dm-catcard { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 12px; border: 2px solid var(--dm-line); border-radius: 14px; padding: 18px 10px; background: #fff; min-height: 172px; text-decoration: none; transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.dm-catcard:hover { border-color: var(--dm-indigo); transform: translateY(-3px); box-shadow: 0 10px 22px rgba(8,40,94,.1); }
.dm-catcard__icon { display: flex; align-items: center; justify-content: center; height: 92px; }
.dm-catcard__img { display: block; width: 130px; height: 92px; background-size: contain; background-position: center; background-repeat: no-repeat; }
.dm-catcard__name { font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.5rem; color: var(--dm-navy); line-height: 1.4; }

/* =========================================================
   お客様の声
   ========================================================= */
.dm-voicegrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 18px; }
.dm-voicegrid--wide { grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); }
.dm-voicecard { background: #fff; border-radius: 18px; padding: 26px 24px; box-shadow: 0 8px 22px rgba(8,40,94,.06); display: flex; flex-direction: column; }
.dm-voicecard__stars { margin: 0 0 12px; color: var(--dm-gold); font-size: 2rem; letter-spacing: 2px; }
.dm-voicecard__title { margin: 0 0 10px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.7rem; color: var(--dm-navy); line-height: 1.5; }
.dm-voicecard__text { margin: 0 0 16px; font-size: 1.5rem; line-height: 1.9; color: #3C4653; flex: 1; }
.dm-voicecard__meta { margin: 0; font-size: 1.3rem; color: #6B7684; font-weight: 700; }
.dm-voicecard__foot { display: flex; align-items: center; gap: 12px; border-top: 1px solid #E8EFF8; padding-top: 14px; }
.dm-voicecard__avatar { width: 44px; height: 44px; border-radius: 50%; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; background: #EAF1FB; color: var(--dm-indigo); font-size: 2rem; }

/* =========================================================
   よくある質問
   ========================================================= */
.dm-faqlist { display: flex; flex-direction: column; gap: 12px; }
.dm-faqcard { border: 2px solid var(--dm-line); border-radius: 14px; overflow: hidden; background: #fff; }
.dm-faqcard__q, .dm-faqcard__a { display: flex; gap: 12px; padding: 18px 20px; align-items: flex-start; }
.dm-faqcard__a { padding: 16px 20px 18px; border-top: 1px dashed var(--dm-line); }
.dm-faqcard__mark { font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 2rem; line-height: 1; flex: 0 0 auto; }
.dm-faqcard__q .dm-faqcard__mark { color: var(--dm-indigo); }
.dm-faqcard__a .dm-faqcard__mark { color: var(--dm-gold); }
.dm-faqcard__qt { margin: 0; font-weight: 700; font-size: 1.6rem; color: var(--dm-navy); line-height: 1.6; }
.dm-faqcard__at { margin: 0; font-size: 1.5rem; color: #3C4653; line-height: 1.85; }

/* =========================================================
   買取品目一覧ページ
   ========================================================= */
.dm-featgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px,1fr)); gap: 20px; }
.dm-featcard { background: #fff; border: 2px solid var(--dm-line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; }
.dm-featcard__img { position: relative; height: 190px; background-size: cover; background-position: center; background-repeat: no-repeat; background-color: var(--dm-paper); }
.dm-featcard__badge { position: absolute; top: 12px; left: 12px; background: var(--dm-gold); color: #FFFFFF; font-weight: 700; font-size: 1.2rem; padding: 4px 12px; border-radius: 5px; }
.dm-featcard__body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.dm-featcard__title { margin: 0 0 6px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 2.1rem; color: var(--dm-navy); }
.dm-featcard__text { margin: 0 0 14px; font-size: 1.4rem; color: #4A5462; line-height: 1.75; flex: 1; }
.dm-featcard__chips { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 18px; }
.dm-chip { font-size: 1.2rem; font-weight: 500; color: var(--dm-indigo-d); background: #EEF4FC; border: 1px solid #D6E1F0; padding: 4px 11px; border-radius: 20px; }
.dm-featcard__btn { text-align: center; background: var(--dm-indigo); color: #fff; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.5rem; padding: 12px; border-radius: 11px; text-decoration: none; transition: background .25s ease; }
.dm-featcard__btn:hover { background: var(--dm-indigo-l); }

.dm-itemsgrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.dm-itemcard { background: #fff; border: 1px solid var(--dm-line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.dm-itemcard__img { height: 170px; background-size: contain; background-position: center; background-repeat: no-repeat; background-color: var(--dm-paper); border-bottom: 1px solid #E3ECF7; }
.dm-itemcard__body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.dm-itemcard__title { margin: 0 0 8px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.8rem; color: var(--dm-navy); line-height: 1.4; }
.dm-itemcard__text { margin: 0; font-size: 1.4rem; color: #4A5462; line-height: 1.85; }

.dm-ctacenter { text-align: center; }
.dm-ctacenter__title { margin: 0 0 10px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(22px,3.2vw,32px); color: var(--dm-navy); }
.dm-ctacenter__text { margin: 0 0 24px; color: #4A5462; font-size: 1.5rem; }
/* CTAのボタン行：横幅を大きい方に揃える（等幅トラック） */
.dm-ctacenter .dm-btnrow,
.dm-darkcta .dm-btnrow { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
.dm-ctacenter .dm-btnrow .dm-btn,
.dm-darkcta .dm-btnrow .dm-btn { width: 100%; }
@media (max-width: 520px) {
  .dm-ctacenter .dm-btnrow,
  .dm-darkcta .dm-btnrow { grid-auto-flow: row; }
}

/* =========================================================
   買取実績ページ
   ========================================================= */
.dm-filter { display: grid; grid-template-columns: repeat(6, 1fr); gap: 9px; justify-content: center; margin-bottom: 30px; }
.dm-filter--left { justify-content: flex-start; }
.dm-filter__link { display: flex; align-items: center; justify-content: center; text-align: center; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.4rem; padding: 9px 12px; border-radius: 22px; border: 2px solid #D6E1F0; background: #fff; color: var(--dm-indigo-d); text-decoration: none; transition: all .2s ease; }
.dm-filter__link:hover { border-color: var(--dm-indigo); }
.dm-filter__link.is-on { border-color: var(--dm-indigo); background: var(--dm-indigo); color: #fff; }
.dm-filter--sm .dm-filter__link { font-size: 1.3rem; padding: 8px 16px; border-radius: 20px; }

.dm-worksgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap: 18px; }
.dm-workcard { text-align: left; background: #fff; border: 1px solid var(--dm-line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.dm-workcard:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(8,40,94,.1); }
.dm-workcard__thumb { position: relative; height: 180px; overflow: hidden; }
.dm-workcard__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.dm-workcard:hover .dm-workcard__img { transform: scale(1.06); }
.dm-workcard__cat { position: absolute; top: 10px; left: 10px; background: var(--dm-indigo); color: #fff; font-size: 1.1rem; font-weight: 700; padding: 4px 10px; border-radius: 20px; }
.dm-workcard__body { padding: 16px 16px 18px; }
.dm-workcard__meta { margin: 0 0 6px; font-size: 1.2rem; color: #6B7684; }
.dm-workcard__title { margin: 0 0 8px; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.7rem; color: var(--dm-navy); line-height: 1.4; }
.dm-workcard__text { margin: 0; font-size: 1.3rem; color: #4A5462; line-height: 1.7; }

.dm-darkcta { background: linear-gradient(120deg, var(--dm-navy), var(--dm-indigo-d)); color: #fff; text-align: center; }
.dm-darkcta__title { margin: 0 0 12px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(22px,3.2vw,32px); }
.dm-darkcta__text { margin: 0 0 24px; color: var(--dm-lav-3); font-size: 1.5rem; line-height: 1.85; }

/* =========================================================
   買取方法ページ（フロー）
   ========================================================= */
.dm-flowband { background: linear-gradient(100deg, var(--dm-navy) 0%, var(--dm-indigo-d) 50%, var(--dm-indigo) 100%); border-radius: 6px; padding: 18px 24px; text-align: center; margin-bottom: clamp(34px,4.5vw,54px); }
.dm-flowband__title { margin: 0; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(20px,3vw,28px); color: #fff; letter-spacing: .06em; }
.dm-flow { position: relative; }
.dm-flow__line { position: absolute; left: 48px; top: 24px; bottom: 56px; width: 2px; background: #D6E1F0; }
.dm-flowrow { display: grid; grid-template-columns: 96px 56px 300px 1fr; align-items: start; padding: 0 0 56px; position: relative; }
.dm-flowrow:last-child { padding-bottom: 0; }
.dm-flowstepwrap { position: relative; z-index: 1; display: flex; justify-content: center; padding-top: 12px; }
.dm-flowstep { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 74px; height: 74px; background: linear-gradient(160deg, var(--dm-indigo-d), var(--dm-navy)); color: #fff; line-height: 1; clip-path: polygon(0 0,100% 0,100% 68%,50% 100%,0 68%); padding-bottom: 6px; }
.dm-flowstep__label { font-size: 1.1rem; font-weight: 700; letter-spacing: .12em; color: var(--dm-lav-2); }
.dm-flowstep__num { font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 2.6rem; }
.dm-flowconn { display: flex; align-items: flex-start; height: 200px; padding-top: 45px; }
.dm-flowconn__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--dm-indigo); flex: 0 0 auto; }
.dm-flowconn__line { flex: 1; border-top: 2px dashed #A8C2E6; margin-top: 3px; }
.dm-flowphoto { border-radius: 8px; overflow: hidden; height: 200px; background: #EAF1FB; }
.dm-flowphoto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dm-flowtext { padding: 6px 0 0 clamp(20px,2.4vw,36px); }
.dm-flowtext__title { margin: 0 0 14px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(20px,2.4vw,26px); color: var(--dm-indigo); }
.dm-flowtext p { margin: 0 0 10px; font-size: 1.5rem; color: #20242A; line-height: 1.95; }

.dm-bring { background: var(--dm-cream); border: 1px solid #D6E1F0; border-radius: 18px; padding: clamp(24px,3.4vw,34px); }
.dm-bring__title { margin: 0 0 16px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(20px,2.8vw,26px); color: var(--dm-gold-ink); }
.dm-bringgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 14px; }
.dm-bringitem { display: flex; gap: 10px; align-items: flex-start; }
.dm-bringitem__check { color: var(--dm-gold); font-weight: 900; font-size: 1.8rem; line-height: 1.4; }
.dm-bringitem__name { margin: 0 0 2px; font-weight: 700; font-size: 1.5rem; color: #08285E; }
.dm-bringitem__note { margin: 0; font-size: 1.3rem; color: #3A5C8A; line-height: 1.6; }
.dm-bring__fine { margin: 16px 0 0; font-size: 1.3rem; color: #3A5C8A; }

/* =========================================================
   店舗案内ページ
   ========================================================= */
.dm-shoplist { display: flex; flex-direction: column; gap: 22px; }
.dm-shopitem { background: #fff; border: 2px solid var(--dm-line); border-radius: 20px; overflow: hidden; display: flex; flex-wrap: wrap; }
.dm-shopitem__map { flex: 1 1 380px; min-height: 260px; position: relative; background: #EAF1FB; display: flex; align-items: center; justify-content: center; color: #6B7684; font-size: 1.4rem; }
.dm-shopitem__badge { position: absolute; top: 14px; left: 14px; background: var(--dm-gold); color: var(--dm-ink); font-weight: 700; font-size: 1.2rem; padding: 4px 12px; border-radius: 5px; }
.dm-shopitem__body { flex: 1 1 380px; padding: clamp(24px,3vw,32px); display: flex; flex-direction: column; }
.dm-shopitem__name { margin: 0 0 12px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(22px,3vw,28px); color: var(--dm-navy); }
.dm-shopitem__dl { margin: 0 0 18px; display: grid; grid-template-columns: auto 1fr; gap: 9px 16px; font-size: 1.4rem; font-family: "Noto Sans JP", sans-serif; font-weight: 700; }
.dm-shopitem__dl dt { color: #6B7684; font-weight: 700; }
.dm-shopitem__dl dd { margin: 0; color: #2E3742; line-height: 1.6; }
.dm-shopitem__btns { margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dm-shopitem__tel { text-align: center; background: var(--dm-indigo); color: #fff; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.6rem; padding: 13px 8px; border-radius: 12px; line-height: 1.3; text-decoration: none; }
.dm-shopitem__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.dm-shopitem__mapbtn { text-align: center; border: 2px solid var(--dm-indigo); color: var(--dm-indigo); font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.5rem; padding: 12px 8px; border-radius: 12px; display: flex; align-items: center; justify-content: center; text-decoration: none; }
.dm-shopitem__tel:hover { background: var(--dm-indigo-l); }
.dm-shopitem__mapbtn:hover { background: var(--dm-lav); }

/* お問い合わせフォーム */
.dm-form { background: #fff; border-radius: 20px; padding: clamp(24px,3.4vw,38px); box-shadow: 0 10px 30px rgba(8,40,94,.07); display: flex; flex-direction: column; gap: 20px; }
.dm-field__label { display: block; font-weight: 700; font-size: 1.4rem; color: var(--dm-navy); margin-bottom: 7px; }
.dm-req { color: #C05252; font-size: 1.2rem; margin-left: 4px; }
.dm-input, .dm-textarea, .dm-select { width: 100%; padding: 13px 14px; border: 1.5px solid #C6D6EA; border-radius: 11px; font-size: 1.5rem; font-family: inherit; background: #fff; color: var(--dm-ink); }
.dm-input:focus, .dm-textarea:focus, .dm-select:focus { outline: none; border-color: var(--dm-indigo); }
.dm-textarea { resize: vertical; }
.dm-field2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 16px; }
.dm-filedrop { display: flex; flex-direction: column; align-items: center; gap: 8px; border: 2px dashed #A8C2E6; border-radius: 14px; padding: 26px; cursor: pointer; background: #F8FBFF; text-align: center; }
.dm-filedrop__icon { font-size: 3rem; }
.dm-filedrop__main { font-size: 1.4rem; color: var(--dm-indigo); font-weight: 700; }
.dm-filedrop__sub { font-size: 1.2rem; color: #7C8794; }
.dm-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 1.3rem; color: #4A5462; line-height: 1.6; }
.dm-agree input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; }
.dm-submit { background: var(--dm-indigo); color: #fff; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.8rem; padding: 16px; border: none; border-radius: 13px; cursor: pointer; box-shadow: 0 8px 20px rgba(16,1,105,.28); transition: background .25s ease; }
.dm-submit:hover { background: var(--dm-indigo-l); }
.dm-form__note { margin: 0; text-align: center; font-size: 1.2rem; color: #6B7684; }
.dm-form__note a { font-weight: 700; }

/* CMSフォーム（design_pattern=1）の上書き */
/* 送信ボタンをサイトのボタンデザインに合わせて中央配置 */
.submit-btn {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 24px auto 0 !important;
  background: var(--dm-indigo) !important;
  color: #fff !important;
  font-family: "Noto Sans JP", sans-serif !important;
  font-weight: 900 !important;
  font-size: 1.8rem !important;
  line-height: 1.3 !important;
  text-align: center !important;
  padding: 16px 44px !important;
  border: 2px solid transparent !important;
  border-radius: 13px !important;
  box-shadow: 0 8px 20px rgba(16,1,105,.28) !important;
  cursor: pointer !important;
  transition: transform .25s ease, background .25s ease !important;
}
.submit-btn:hover {
  background: var(--dm-indigo-l) !important;
  transform: translateY(-2px) !important;
}
/* 必須マークをサイトの色に合わせ、表記を「＊」に */
.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  content: '＊' !important;
  color: #fff !important;
  background: #C05252 !important;
}

/* 送信完了ページ */
.dm-thanks__icon { margin: 0 0 8px; font-size: 5.6rem; line-height: 1; color: var(--dm-indigo); }

.dm-snsbox { margin-top: 26px; background: #fff; border-radius: 18px; padding: 26px; text-align: center; box-shadow: 0 8px 22px rgba(8,40,94,.05); }
.dm-snsbox__title { margin: 0 0 6px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.8rem; color: var(--dm-navy); }
.dm-snsbox__desc { margin: 0 0 18px; font-size: 1.3rem; color: var(--dm-muted); }
.dm-snsbox__qrs { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.dm-snsbox__qr { text-align: center; }
.dm-snsbox__qrbox { width: 96px; height: 96px; border-radius: 14px; background: var(--dm-lav); border: 1px solid #D6E1F0; display: flex; align-items: center; justify-content: center; color: #7C8794; font-size: 1.2rem; }
.dm-snsbox__qrlabel { display: block; margin-top: 8px; font-size: 1.3rem; font-weight: 700; color: var(--dm-indigo-d); }

/* =========================================================
   ブログ（一覧・詳細・実績詳細）
   ========================================================= */
.dm-crumb { margin: 0 0 22px; font-size: 1.3rem; color: #6B7684; }
.dm-crumb a { color: #6B7684; text-decoration: none; }
.dm-crumb a:hover { text-decoration: underline; }

.dm-bloglayout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 34px; align-items: start; }
.dm-bloglayout--wide { grid-template-columns: minmax(0,1fr) 300px; }

.dm-postlist { display: flex; flex-direction: column; gap: 16px; }
.dm-postcard { display: flex; flex-wrap: wrap; gap: 18px; background: #fff; border: 1px solid var(--dm-line); border-radius: 16px; overflow: hidden; text-decoration: none; transition: box-shadow .25s ease; }
.dm-postcard:hover { box-shadow: 0 10px 24px rgba(8,40,94,.08); }
.dm-postcard__thumb { flex: 0 0 190px; min-height: 130px; position: relative; overflow: hidden; }
.dm-postcard__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dm-postcard__body { flex: 1; min-width: 220px; padding: 18px 20px 18px 0; }
.dm-postcard__meta { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.dm-postcard__date { font-size: 1.2rem; color: #6B7684; }
.dm-postcard__cat { font-size: 1.1rem; font-weight: 700; color: #fff; padding: 3px 10px; border-radius: 20px; background: var(--dm-indigo); }
.dm-postcard__cat--camp { background: var(--dm-gold); }
.dm-postcard__cat--shop { background: #08285E; }
.dm-postcard__title { margin: 0 0 8px; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.8rem; color: var(--dm-navy); line-height: 1.5; }
.dm-postcard__text { margin: 0; font-size: 1.4rem; color: #4A5462; line-height: 1.7; }

.dm-pager { display: flex; justify-content: center; gap: 8px; margin-top: 34px; }
.dm-pager__link { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 10px; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.5rem; border: 1.5px solid #D6E1F0; background: #fff; color: var(--dm-indigo-d); text-decoration: none; transition: all .2s ease; }
.dm-pager__link:hover { border-color: var(--dm-indigo); }
.dm-pager__link.is-on { border-color: var(--dm-indigo); background: var(--dm-indigo); color: #fff; }

.dm-side { display: flex; flex-direction: column; gap: 24px; }
.dm-sidebox { background: #fff; border: 1px solid var(--dm-line); border-radius: 16px; padding: 22px; }
.dm-sidebox__title { margin: 0 0 14px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.6rem; color: var(--dm-navy); border-left: 4px solid var(--dm-gold); padding-left: 10px; }
.dm-catnav { display: flex; flex-direction: column; }
.dm-catnav__link { display: flex; justify-content: space-between; padding: 10px 2px; border-bottom: 1px solid #E8EFF8; font-size: 1.4rem; color: #2E3742; text-decoration: none; }
.dm-catnav__link span:last-child { color: #6B7684; font-size: 1.3rem; }
.dm-catnav__link:hover { color: var(--dm-indigo); }
.dm-recent { display: flex; flex-direction: column; gap: 14px; }
.dm-recent__item { display: flex; gap: 11px; align-items: center; text-decoration: none; }
.dm-recent__thumb { width: 56px; height: 56px; border-radius: 9px; overflow: hidden; flex: 0 0 auto; }
.dm-recent__thumb--lg { width: 64px; height: 64px; }
.dm-recent__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dm-recent__title { font-size: 1.3rem; color: #2E3742; line-height: 1.5; font-weight: 700; }
.dm-recent__price { display: block; font-size: 1.2rem; color: #6B7684; margin-top: 2px; }
.dm-archive { display: flex; flex-direction: column; }
.dm-archive__link { padding: 9px 2px; border-bottom: 1px solid #E8EFF8; font-size: 1.4rem; color: #2E3742; text-decoration: none; }
.dm-archive__link:hover { color: var(--dm-indigo); }
.dm-sidecta { background: linear-gradient(135deg, var(--dm-navy), var(--dm-indigo)); border-radius: 16px; padding: 24px; color: #fff; text-align: center; }
.dm-sidecta__title { margin: 0 0 12px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.6rem; }
.dm-sidecta__tel { display: block; background: linear-gradient(180deg,#FFFFFF,#EAF1FB); border: 2px solid var(--dm-gold-b); color: var(--dm-navy); font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.9rem; padding: 12px; border-radius: 11px; text-decoration: none; }

/* 記事本文 */
.dm-article__meta { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.dm-article__cat { font-size: 1.2rem; font-weight: 700; color: #fff; background: var(--dm-indigo); padding: 4px 14px; border-radius: 20px; }
.dm-article__date, .dm-article__shop { font-size: 1.3rem; color: #6B7684; }
.dm-article__title { margin: 0 0 22px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(24px,3.8vw,36px); color: var(--dm-navy); line-height: 1.4; }
.dm-article__hero { border-radius: 18px; overflow: hidden; height: clamp(220px,38vw,400px); margin-bottom: 28px; }
.dm-article__hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dm-article__body p { line-height: 1.95; margin: 0 0 18px; font-size: 1.6rem; color: #20242A; }
.dm-article__body h2 { font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 2.4rem; color: var(--dm-navy); margin: 36px 0 16px; padding-left: 12px; border-left: 5px solid var(--dm-gold); }
.dm-article__body ul { margin: 0 0 18px; padding-left: 22px; color: #20242A; line-height: 1.9; }
.dm-article__h2 { margin: 0 0 14px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 2.2rem; color: var(--dm-navy); padding-left: 12px; border-left: 5px solid var(--dm-gold); }

.dm-inlinecta { margin-top: 34px; background: linear-gradient(120deg, var(--dm-navy), var(--dm-indigo)); border-radius: 18px; padding: 28px; color: #fff; text-align: center; }
.dm-inlinecta__title { margin: 0 0 8px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(18px,2.4vw,22px); }
.dm-inlinecta__text { margin: 0 0 18px; font-size: 1.4rem; color: var(--dm-lav-3); }

.dm-postnav { display: flex; justify-content: space-between; margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--dm-line); }
.dm-postnav a { font-weight: 700; font-size: 1.4rem; text-decoration: none; color: var(--dm-indigo); }

/* 実績詳細 */
.dm-galsub { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 30px; }
.dm-galsub__img { border-radius: 10px; overflow: hidden; height: 150px; }
.dm-galsub__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dm-pricebox { background: linear-gradient(120deg, var(--dm-indigo), var(--dm-indigo-l)); border-radius: 16px; padding: 24px 26px; color: #fff; margin-bottom: 30px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.dm-pricebox__label { margin: 0 0 4px; font-size: 1.3rem; color: var(--dm-gold-b); font-weight: 700; letter-spacing: .06em; }
.dm-pricebox__val { margin: 0; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(30px,4.4vw,44px); line-height: 1; }
.dm-pricebox__val small { font-size: 1.8rem; font-weight: 700; }
.dm-spec { margin: 0 0 30px; display: grid; grid-template-columns: auto 1fr; gap: 12px 20px; font-size: 1.5rem; border: 1px solid var(--dm-line); border-radius: 12px; padding: 20px 22px; background: #fff; }
.dm-spec dt { color: #6B7684; font-weight: 700; }
.dm-spec dd { margin: 0; color: #20242A; }
.dm-point { background: var(--dm-cream); border: 1px solid #D6E1F0; border-radius: 14px; padding: 20px 22px; margin-bottom: 34px; }
.dm-point__title { margin: 0 0 8px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 1.5rem; color: var(--dm-gold-ink); }
.dm-point__text { margin: 0; font-size: 1.5rem; color: #08285E; line-height: 1.9; }

/* =========================================================
   フッター上CTA
   ========================================================= */
.dm-cta { position: relative; background: var(--dm-navy); color: #fff; overflow: hidden; }
.dm-cta__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.dm-cta__overlay { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(8,40,94,.88), rgba(16,1,105,.78)); }
.dm-cta__inner { position: relative; z-index: 1; max-width: 1100px; margin: 0 auto; padding: 52px 22px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px 44px; }
.dm-cta__lead { flex: 1 1 320px; min-width: 280px; }
.dm-cta__en { margin: 0 0 8px; font-family: "Montserrat", sans-serif; font-size: 1.4rem; letter-spacing: .14em; color: var(--dm-gold-b); font-weight: 700; }
.dm-cta__title { margin: 0 0 10px; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: clamp(26px,3.4vw,38px); line-height: 1.3; }
.dm-cta__desc { margin: 0; color: var(--dm-lav-3); font-size: 1.5rem; line-height: 1.8; }
/* PC時：見出しが指定の改行どおり2行で収まるよう、文字サイズを抑えてリード側の幅を確保する */
@media (min-width: 897px) {
  .dm-cta__lead { flex: 1 1 560px; }
  .dm-cta__title { font-size: clamp(22px, 2.3vw, 30px); }
}
.dm-cta__actions { flex: 0 0 auto; display: flex; flex-direction: column; gap: 12px; align-items: stretch; min-width: 280px; }
.dm-goldbtn { background: linear-gradient(180deg,#FFFFFF,#EAF1FB); border: 2px solid var(--dm-gold-b); border-radius: 16px; padding: 14px 22px; text-align: center; line-height: 1.15; text-decoration: none; }
.dm-goldbtn__label { display: block; font-size: 1.2rem; font-weight: 700; color: var(--dm-gold-ink); letter-spacing: .06em; }
.dm-goldbtn__num { display: block; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 3.2rem; color: var(--dm-navy); }
.dm-goldbtn__note { display: block; font-size: 1.2rem; color: var(--dm-gold-ink); }
.dm-whitebtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #fff; color: var(--dm-indigo); font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 1.7rem; padding: 14px; border-radius: 14px; text-align: center; text-decoration: none; transition: opacity .25s ease; }
.dm-whitebtn:hover { opacity: .9; color: var(--dm-indigo); }

/* =========================================================
   フッター本体
   ========================================================= */
.dm-footer { font-family: "Noto Sans JP", sans-serif; }
.dm-footer__inner { background: var(--dm-indigo); color: #DCE6F4; }
.dm-footer__inner { max-width: 100%; }
.dm-footer__cols { max-width: 1100px; margin: 0 auto; padding: 48px 22px 0; display: flex; flex-wrap: wrap; gap: 36px 48px; }
.dm-footer__about { flex: 1 1 320px; min-width: 280px; }
/* フッター上部のロゴ帯（背景白・ロゴ＋店舗名はヘッダーと同じ .dm-logo を流用） */
/* フリーダイヤルマーク：500×500の余白込み画像のため、文字サイズ基準でやや大きめに取る */
.dm-freedial { height: 1.6em; width: auto; vertical-align: middle; flex: 0 0 auto; }
/* 濃紺背景（白文字）のボタンではマークを白抜きにする */
.dm-shopcard__tel .dm-freedial,
.dm-shopitem__tel .dm-freedial { filter: brightness(0) invert(1); }

.dm-footerlogo { background: #fff; }
.dm-footerlogo__logo { max-width: 1100px; margin: 0 auto; padding: 24px 22px; justify-content: center; }
.dm-footerlogo .dm-logo__img { height: 65px; }
.dm-footer__name { margin: 0 0 6px; font-weight: 700; color: #fff; font-size: 1.5rem; }
.dm-footer__addr { margin: 0 0 4px; font-size: 1.4rem; line-height: 1.8; font-family: "Noto Sans JP", sans-serif; font-weight: 700; }
.dm-footer__runby { margin: 14px 0 0; font-size: 1.3rem; color: #9FB8DA; }
.dm-footer__map iframe { flex: 1 1 auto; align-self: stretch; width: 100%; border: 0; display: block; }
.dm-footer__map { margin-top: 16px; border: 1px solid var(--dm-indigo-l); border-radius: 14px; overflow: hidden; height: 150px; background: #08285E; display: flex; align-items: center; justify-content: center; color: #7F9AC4; font-size: 1.3rem; }
.dm-footer__menu { flex: 0 0 auto; min-width: 170px; }
.dm-footer__sns { flex: 0 0 auto; min-width: 220px; }
.dm-footer__heading { margin: 0 0 14px; font-weight: 700; color: var(--dm-gold-b); font-size: 1.4rem; letter-spacing: .08em; }
.dm-footer__nav { display: flex; flex-direction: column; gap: 11px; }
.dm-footer__nav a { color: #DCE6F4; font-size: 1.4rem; text-decoration: none; }
.dm-footer__nav a:hover { color: #fff; }
.dm-footer__snsbtns { display: flex; gap: 14px; flex-wrap: wrap; }
.dm-snsbtn { display: flex; width: 48px; height: 48px; border-radius: 50%; align-items: center; justify-content: center; color: #fff; font-size: 2rem; text-decoration: none; transition: transform .2s ease, opacity .2s ease; }
.dm-snsbtn:hover { transform: translateY(-2px); opacity: .88; }
.dm-snsbtn--insta { background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF); }
.dm-snsbtn--line { background: #06C755; }
.dm-snsbtn--google { background: #4285F4; }
.dm-footer__snsnote { margin: 14px 0 0; font-size: 1.2rem; color: #9FB8DA; line-height: 1.7; }
.dm-footer__copy { max-width: 1100px; margin: 34px auto 0; padding: 18px 22px 26px; border-top: 1px solid var(--dm-indigo-l); font-size: 1.2rem; color: #C8DAF0; text-align: center; letter-spacing: .04em; }

/* =========================================================
   SP固定電話バー
   ========================================================= */
.dm-phonebar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 300; grid-template-columns: 1fr auto; gap: 8px; padding: 9px 10px; background: linear-gradient(180deg, var(--dm-indigo-d), var(--dm-navy)); box-shadow: 0 -6px 18px rgba(8,40,94,.32); font-family: "Noto Sans JP", sans-serif; }
.dm-phonebar__tel { display: flex; align-items: center; gap: 10px; background: linear-gradient(180deg,#FFFFFF,#EAF1FB); border: 2px solid var(--dm-gold-b); border-radius: 12px; padding: 8px 12px; line-height: 1.05; text-decoration: none; }
.dm-phonebar__tel .dm-freedial { height: 3.4rem; }
.dm-phonebar__label { display: block; font-size: 1rem; font-weight: 700; color: var(--dm-gold-ink); }
.dm-phonebar__num { display: block; font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 2.2rem; color: var(--dm-navy); }
.dm-phonebar__mail { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; background: #fff; color: var(--dm-indigo); border-radius: 12px; padding: 6px 14px; font-weight: 700; font-size: 1.2rem; line-height: 1.2; text-align: center; text-decoration: none; }
.dm-phonebar__mail i { font-size: 1.6rem; }

/* ページトップ */
.page-top { position: fixed; right: 20px; bottom: 20px; z-index: 90; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .3s ease, transform .3s ease, visibility .3s ease; }
.page-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.page-top__link { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--dm-indigo); color: #fff; text-decoration: none; box-shadow: 0 6px 16px rgba(8,40,94,.28); }
.page-top__link:hover { background: var(--dm-indigo-l); color: #fff; }

/* =========================================================
   レスポンシブ
   ========================================================= */
@media (max-width: 1040px) {
  .dm-gnav { display: none; }
  .nav-toggle { display: flex; }
  .dm-navbar__right { display: none; }
}
@media (max-width: 820px) {
  .dm-flowrow { grid-template-columns: 80px 1fr; column-gap: 16px; row-gap: 14px; padding-bottom: 40px; }
  .dm-flow__line { display: none; }
  .dm-flowconn { display: none; }
  .dm-flowphoto { grid-column: 2; height: 180px; }
  .dm-flowtext { grid-column: 1 / -1; padding-left: 0; }
  .dm-itemsgrid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 860px) {
  .dm-bloglayout, .dm-bloglayout--wide { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  /* ロゴ横の店舗名はSPで縮小（ハンバーガーとの折り返し防止） */
  .dm-logo__shop { margin-left: 4px; padding: 4px 0; font-size: 1.15rem; letter-spacing: .02em; }
  .dm-footerlogo .dm-logo__img { height: 52px; }
  .dm-topbar__hours { display: none; }
  .dm-phonebar { display: grid; }
  /* メニュー展開中はSP固定電話バー（z-index:300）がメニュー下部に重なるため隠す */
  body.is-nav-open .dm-phonebar { display: none; }
  body { padding-bottom: 76px; }
  .dm-postcard__thumb { flex: 0 0 130px; }
  .dm-postcard__body { padding: 16px 16px 16px 0; }
  /* フッターのサイトメニューナビはSPで非表示 */
  .dm-footer__menu { display: none; }
  /* 高価買取リードの本文はSPで左寄せ */
  .dm-lead__text { text-align: left; }
  /* 買取フローのダークCTA本文はSPで左寄せ */
  .dm-darkcta__text { text-align: left; }
  /* SNS見出しはSPで1行に収まるようフォント調整 */
  .dm-snsbox__title { font-size: 1.55rem; }
  /* お問い合わせ（CONTACT）セクションの説明文はSPで左寄せ */
  #form .dm-sechead__desc { text-align: left; }
  /* SP専用の改行を有効化 */
  .br-sp { display: inline; }
  /* カテゴリタブは3カラム */
  .dm-filter { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 380px) {
  /* 極小幅ではロゴ・店舗名をさらに縮小して1行に収める */
  .dm-logo__img { height: 40px; }
  .dm-footerlogo .dm-logo__img { height: 44px; }
  .dm-logo__shop { font-size: 1rem; letter-spacing: 0; }
}
@media (max-width: 520px) {
  .dm-itemsgrid { grid-template-columns: 1fr; }
  .dm-shopcard__btns, .dm-shopitem__btns { grid-template-columns: 1fr; }
  .dm-topbar__inner { justify-content: center; }
  /* カテゴリタブは2カラム */
  .dm-filter { grid-template-columns: repeat(2, 1fr); }
  .dm-filter__link { font-size: 1.3rem; padding: 8px 8px; }
}

/* =========================================================
   グローバルナビ：プルダウン（PCはホバー展開／SPはアコーディオン）
   ========================================================= */
.dm-gnav__item { position: relative; }
.dm-gnav__link { display: inline-flex; align-items: center; gap: 5px; }
.dm-gnav__caret { font-size: 1rem; color: var(--dm-muted); transition: transform .25s ease; }
.dm-gnav__item:hover .dm-gnav__caret { transform: rotate(180deg); color: var(--dm-indigo); }

.dm-gnav__sub {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 210px;
  background: #fff;
  border: 1px solid var(--dm-line);
  border-radius: 12px;
  box-shadow: 0 12px 26px rgba(8,40,94,.14);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease;
  z-index: 5;
}
.dm-gnav__item--has-sub:hover .dm-gnav__sub,
.dm-gnav__item--has-sub:focus-within .dm-gnav__sub {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.dm-gnav__sublink {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1.4;
  color: #2E3742;
  padding: 9px 12px;
  border-radius: 8px;
  text-decoration: none;
  white-space: nowrap;
}
.dm-gnav__sublink:hover { background: var(--dm-cream); color: var(--dm-indigo); }

/* SPナビ：アコーディオン */
.sp-nav__item { position: relative; }
.sp-nav__toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 62px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
  padding: 0;
}
.sp-nav__toggle i { transition: transform .25s ease; }
.sp-nav__toggle.is-open i { transform: rotate(180deg); }
/* プルダウンを持つ項目のみ、開閉ボタン分の余白を確保する */
.sp-nav__item:has(.sp-nav__toggle) .sp-nav__link { padding-right: 68px; }
.sp-nav__sub {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 0;
  overflow: hidden;
  background: rgba(255,255,255,.08);
  transition: max-height .3s ease;
}
.sp-nav__sub.is-open { max-height: 400px; }
.sp-nav__sublink {
  display: block;
  padding: 11px 28px 11px 42px;
  color: var(--dm-lav-1);
  font-size: 1.4rem;
  font-weight: 500;
  text-decoration: none;
  border-top: 1px solid rgba(255,255,255,.1);
}
.sp-nav__sublink:hover { color: #fff; }

/* =========================================================
   買取品目：このような状態でもご相談ください
   ========================================================= */
/* PCは5カラム固定。幅が足りなくなる中間サイズ以下で段階的に折り返す */
.dm-condgrid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
@media (max-width: 1100px) {
  .dm-condgrid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .dm-condgrid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}
@media (max-width: 520px) {
  .dm-condgrid { grid-template-columns: 1fr; }
}
.dm-condcard {
  background: var(--dm-cream);
  border: 1px solid var(--dm-line);
  border-radius: 16px;
  padding: 24px 18px 22px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.dm-condcard__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--dm-line);
  color: var(--dm-indigo);
  font-size: 2.2rem;
  margin-bottom: 12px;
}
.dm-condcard__title {
  margin: 0 0 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 1.7rem;
  color: var(--dm-navy);
  line-height: 1.4;
}
.dm-condcard__text { margin: 0; font-size: 1.6rem; line-height: 1.7; color: #4A5462; text-align: left; }

/* =========================================================
   TOP：選ばれる理由
   ========================================================= */
.dm-reasongrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 18px; }
.dm-reasoncard {
  position: relative;
  background: #fff;
  border: 2px solid var(--dm-line);
  border-radius: 18px;
  padding: 30px 24px 26px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.dm-reasoncard__num {
  position: absolute;
  top: 12px;
  left: 16px;
  font-family: "Montserrat", sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--dm-lav-2);
  letter-spacing: .06em;
}
.dm-reasoncard__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: var(--dm-cream);
  color: var(--dm-indigo);
  font-size: 2.8rem;
  margin-bottom: 14px;
}
.dm-reasoncard__title {
  margin: 0 0 10px;
  font-family: "Noto Serif JP", "Noto Serif CJK JP", serif;
  font-weight: 600;
  font-size: 2.1rem;
  color: var(--dm-navy);
  line-height: 1.4;
}
.dm-reasoncard__text { margin: 0; font-size: 1.6rem; line-height: 1.7; color: #4A5462; text-align: left; }

/* =========================================================
   TOP：はじめての方へ
   ========================================================= */
.dm-firstguide {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px 40px;
  background: var(--dm-cream);
  border: 1px solid var(--dm-line);
  border-radius: 20px;
  padding: clamp(24px,3.4vw,36px);
}
.dm-firstguide__body { flex: 1 1 320px; min-width: 280px; }
.dm-firstguide__title {
  margin: 6px 0 12px;
  font-family: "Noto Serif JP", "Noto Serif CJK JP", serif;
  font-weight: 600;
  font-size: clamp(22px,3.2vw,32px);
  color: var(--dm-navy);
  line-height: 1.35;
}
.dm-firstguide__text { margin: 0; font-size: 1.6rem; line-height: 1.7; color: #2E3742; }
.dm-firstguide__actions { flex: 0 0 auto; display: flex; flex-direction: column; gap: 12px; min-width: 260px; }
.dm-firstguide__actions .dm-btn { width: 100%; }

/* =========================================================
   トップ メインビュー：1枚固定（スライドなし）
   ========================================================= */
.dm-hero--static .dm-hero__track { transform: none !important; transition: none; }

/* =========================================================
   お客様の声：イラストアバター
   ========================================================= */
.dm-voicecard__avatar {
  width: 52px;
  height: 52px;
  background: transparent;
  overflow: hidden;
}
.dm-voiceillust { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

/* =========================================================
   よくある質問：アコーディオン（details/summary）
   ========================================================= */
.dm-faqcard__q {
  cursor: pointer;
  list-style: none;
  align-items: center;
  transition: background .2s ease;
}
.dm-faqcard__q::-webkit-details-marker { display: none; }
.dm-faqcard__q:hover { background: var(--dm-cream); }
.dm-faqcard__qt { flex: 1; font-weight: 700; font-size: 1.6rem; color: var(--dm-navy); line-height: 1.6; }
.dm-faqcard__icon {
  flex: 0 0 auto;
  color: var(--dm-indigo);
  font-size: 1.4rem;
  transition: transform .28s ease;
}
.dm-faqcard[open] .dm-faqcard__q { background: var(--dm-cream); }
.dm-faqcard[open] .dm-faqcard__icon { transform: rotate(180deg); }

/* プルダウンから飛ぶアンカー：固定ヘッダー分のオフセット */
#featured, #allitems, #condition,
#voice, #faq,
#shop-flow, #visit-flow, #bring,
#shop01, #shop02, #shop03, #form {
  scroll-margin-top: calc(var(--dm-header-h, 104px) + 14px);
}

/* =========================================================
   タイポグラフィ（大見出し＝明朝／本文＝ゴシック16px・行間1.7）
   ※既存ルールを上書きするためファイル末尾に配置
   ========================================================= */
/* 大見出し：Noto Serif JP（高級感を出しつつ読みやすさを確保） */
.dm-sechead__title,
.dm-phero__title,
.dm-lead__title,
.dm-ctacenter__title,
.dm-darkcta__title,
.dm-cta__title,
.dm-flowband__title,
.dm-shopitem__name,
.dm-bring__title,
.dm-article__title {
  font-family: "Noto Serif JP", "Noto Serif CJK JP", serif;
  font-weight: 600;
  letter-spacing: .02em;
}

/* 小見出し・ボタン：Noto Sans JP Bold（明確で押しやすく） */
.dm-btn,
.dm-headcta,
.dm-shopcard__tel, .dm-shopcard__more,
.dm-shopitem__tel, .dm-shopitem__mapbtn,
.dm-featcard__btn,
.dm-whitebtn,
.submit-btn,
.dm-sechead__desc,
.dm-featcard__title,
.dm-itemcard__title,
.dm-voicecard__title,
.dm-faqcard__qt,
.dm-snsbox__title,
.dm-sidebox__title {
  font-family: "Noto Sans JP", sans-serif;
}
.dm-btn, .dm-headcta, .dm-featcard__btn, .dm-whitebtn { font-weight: 700; }

/* 本文：16px前後・行間1.7前後 */
.dm-sechead__desc,
.dm-lead__text,
.dm-voicecard__text,
.dm-faqcard__at,
.dm-featcard__text,
.dm-itemcard__text,
.dm-flowtext p,
.dm-shopcard__addr,
.dm-shopitem__dl,
.dm-ctacenter__text,
.dm-darkcta__text,
.dm-cta__desc,
.dm-phero__lead {
  font-size: 1.6rem;
  line-height: 1.7;
}
/* SPでも本文は16px以上を維持 */
@media (max-width: 896px) {
  body { font-size: 1.6rem; }
  .dm-sechead__desc,
  .dm-lead__text,
  .dm-voicecard__text,
  .dm-faqcard__at,
  .dm-featcard__text,
  .dm-itemcard__text,
  .dm-flowtext p,
  .dm-shopcard__addr,
  .dm-ctacenter__text,
  .dm-darkcta__text,
  .dm-cta__desc,
  .dm-phero__lead {
    font-size: 1.6rem;
    line-height: 1.7;
  }
}

/* ==========================================================
   ロゴ差し替え（logo_new.png・店舗名入り）に伴うサイズ調整
   参考：筑前前原駅北口店サイトと同じ幅指定（height は自動）
   ========================================================== */
.dm-logo__img { display: block; width: 380px; height: auto; max-width: 100%; }
.dm-footerlogo .dm-logo__img { width: 400px; height: auto; }
@media (max-width: 1400px) { .dm-logo__img { width: 320px; } }
@media (max-width: 1240px) { .dm-logo__img { width: 250px; } }
@media (max-width: 1120px) { .dm-logo__img { width: 196px; } }
@media (max-width: 1040px) { .dm-logo__img { width: 320px; } }
@media (max-width: 680px) { .dm-logo__img { width: 285px; } .dm-footerlogo .dm-logo__img { width: 320px; } }
@media (max-width: 380px) { .dm-logo__img { width: 250px; } .dm-footerlogo .dm-logo__img { width: 280px; } }
